﻿/*------------------------------------------------------------------------------
//  Warning : This computer program is protected by copying law and international treaties.
//  unauthorized reproduction program or any portion of it will be prosecuted to the maximum extent possible under law .
//  Forbidding : Redistribution of this code, whole or in part, as source code  or in binary form, alone or 
//  as part of a larger distribution or product, is forbidden for any commercial or for-profit or Non-commercial
//  use without the author's explicit written permission.
//  Author : email:ruihade@hotmail.com , ruihade@gmail.com ,location: taiwan, cellphone:0919910435
-----------------------------------------------------------------------------*/
function CirStart() {
try
{
    advertising({ id: 'redhot pos',
        border: '',
        size_mode: 'image',
        width: 80,
        height: 100,
        sides: 7,
        steps: 23,
        speed: 5,
        direction: 'left',
        images: ['images/kanpos/01.gif',
                  'images/kanpos/02.gif',
                  'images/kanpos/03.gif',
									'images/kanpos/04.gif'],
        links: ['http://www.redhot.com.tw/download/default.aspx',
									'http://www.redhot.com.tw/customer/teaching/Films/',
									'http://www.redhot.com.tw/softmenu/pos/',
									'http://www.redhot.com.tw/buy/price/'],
        titles: ['pos',
									'POS軟體',
									'網咖管理',
									'飯店管理'],
        image_border_width: 0,
        image_border_color: ''

    });
    }
    catch (err) {
        //Handle errors here
    }
}
function advertising(params) {
  if (params != null)
  {
    if (!(params.width > 0 && isFinite(params.width))) params.width = 50;
    if (!(params.height > 0 && isFinite(params.height))) params.height = 50;
    if (!(params.sides > 2 && isFinite(params.sides))) params.sides = 4;
    if (!(params.steps > 0 && params.steps < 100 && isFinite(params.steps))) params.steps = 20;
    if (!(params.speed > 0 && isFinite(params.speed))) params.speed = 8;
    if (!(params.image_border_width >= 0 && isFinite(params.image_border_width))) params.image_border_width = 0;
    if (isFinite(params.id) || !params.id) params.id = 'bad_id_given_' + Math.random();

    document.write("<div style='position:relative;overflow:hidden;' id='" + params.id.replace(/[\r\n\t ]+/g, '_') + "'></div>");
    var cdiv = document.getElementById(params.id.replace(/[\r\n\t ]+/g, '_'))
    cdiv.style.width = params.width + 'px';
    cdiv.style.height = params.height + 'px';
    cdiv.style.border = params.border;
    cdiv.style.position = 'relative';
    cdiv.style.overflow = 'hidden';
    cdiv.title = params.id;

    var counter = 0, spinning = true, interval = Math.floor(60000 / params.sides / params.steps / params.speed) - 5;
    interval = isNaN(interval) ? 200 : interval;
    var img_position = [], images = [], img_dimension = [];
    var img_index = params.images.length + 1, img_index_cap = 2 * params.images.length;
    var faces = Math.ceil(params.sides / 2), dimension, direction;

    function initCirKanPos() {
        if (params.direction == "left" || params.direction == "right") {
            direction = params.direction;
            dimension = "width";
        }
        else if (params.direction == "top" || params.direction == "bottom") {
            direction = params.direction;
            dimension = "height";
        }
        else {
            direction = "left";
            dimension = "width";
        }
        cdiv.style[dimension] = params[dimension] / (params.size_mode == 'image' ? Math.sin(Math.PI / params.sides) : 1) + 'px';
        var img = new Image();
        img.style.position = 'absolute';
        img.style[direction] = '10000px';
        img.style.width = params.width - 2 * params.image_border_width + 'px';
        img.style.height = params.height - 2 * params.image_border_width + 'px';
        img.style.border = (params.image_border_width || 0) + 'px solid ' + params.image_border_color;
        for (var i = 0; i < params.images.length; i++) {
            images[i] = img.cloneNode(true);
            images[i].src = params.images[i];
            if (params.links && params.links[i] && params.links[i] != '') {
                images[i].onclick = new Function("window.location='" + params.links[i] + "'");
                images[i].style.cursor = document.all ? 'hand' : 'pointer';
            }
            if (params.titles && params.titles[i] && params.titles[i] != '')
                images[i].title = params.titles[i];
            images[i + params.images.length] = images[i];
            if (params.images.length == faces)
                images[i + 2 * params.images.length] = images[i];
            cdiv.appendChild(images[i]);
        }

        var face_size = params.size_mode == 'image' ? params[dimension] : params[dimension] * Math.sin(Math.PI / params.sides);
        var face_offset = params[dimension] * Math.cos(Math.PI / params.sides) / (params.size_mode == 'image' ? Math.sin(Math.PI / params.sides) : 1) / 2 - .5;
        var pi_piece = 2 * Math.PI / params.steps / params.sides;
        for (i = 0; i <= params.steps * faces; i++) {
            img_dimension[i] = face_size * Math.sin(pi_piece * i);
            img_position[i] = (i < params.steps * params.sides / 2) ? Math.floor(params[dimension] / 2 / (params.size_mode == 'image' ? Math.sin(Math.PI / params.sides) : 1) - face_offset * Math.cos(pi_piece * i) - img_dimension[i] / 2) + 'px' : '10000px';
            img_dimension[i] = img_dimension[i] - 2 * params.image_border_width > 1 ? Math.ceil(img_dimension[i]) - 2 * params.image_border_width + 'px' : '1px';
        }
    } //params!=null
    }
    initCirKanPos();

    cdiv.rotate = function() {
        setTimeout('document.getElementById("' + cdiv.id + '").rotate()', interval);
        if (!spinning) return;
        if (++counter >= params.steps) {
            counter = 0;
            if (++img_index >= img_index_cap)
                img_index = params.images.length;
        }
        images[img_index - faces].style[direction] = '20000px';
        for (var i = faces - 1; i >= 0; i--) {
            images[img_index - i].style[direction] = img_position[counter + i * params.steps];
            images[img_index - i].style[dimension] = img_dimension[counter + i * params.steps];
        }
    }
    cdiv.onmouseover = function() {
        spinning = false;
    }
    cdiv.onmouseout = function() {
        spinning = true;
    }
    setTimeout('document.getElementById("' + cdiv.id + '").rotate()', 200);
}
