/**
 * turn_table
 *
 * @lalel       turn_table
 * @package     turn_table
 * @copyright   Copyright (c) 1997-2007 BitCash Inc. All Rights Reserved (http://www.bitcash.co.jp)
 * @version     20070815
 * @author      Yamada <shusuke@bitcash.co.jp>
 */


window.onload = function(){
    tTSetup();
    tTCreateItems();
    fTurnTable();
}


/**
 * アイテムの情報
 */
function tTSetup(){
    $("turnTable").items = simItems;

    if($("turnTable").items.length == 0){
        $("mSimilar").style.display = "none";
    }

    var radRandom = Math.random(); // 角度の初期値はランダムで。
    for(var i = 0; i < $("turnTable").items.length; i++){
        $("turnTable").items[i]["rad"] = (i / $("turnTable").items.length + radRandom) * (2 * Math.PI);
    }

// 回転半径
    $("turnTable").radiusX = 70;
    $("turnTable").radiusY = 15;

// 回転の中心座標(親要素からの相対)
    $("turnTable").centerX = 110;
    $("turnTable").centerY = 50;

// 停止用Timer変数。
    $("turnTable").scrollTimer; 

// 単位時間あたりに動く度数 Maxは最大
    $("turnTable").addAngle     = 0;
    $("turnTable").addAngleMax  = 15;

// 単位時間あたりに動くラジアンに変更
    $("turnTable").addRadian = ((2 * Math.PI) / 360);

// ズームの倍率 (最前 : 最奥 = 1 : n/n+1)
    $("turnTable").zoom = 4;
}

/**
 * アイテムの表示とコントローラの表示
 */
function tTCreateItems(){
    for(var i = 0; i < $("turnTable").items.length; i++){
        var div = document.createElement("div");
        div.setAttribute("id","items" + i);
        div.style.position = "absolute";
        div.style.border = "1px solid #009";
        div.number = i;

        div.onmouseover = function(){
            this.style.border = "1px solid red";
            $("turnTableLabel").innerHTML = "<a href='" + $("turnTable").items[this.number]["link"] + "' target='_blank'>" + $("turnTable").items[this.number]["title"] + "</a>";
        }

        div.onclick = function(){
            window.open($("turnTable").items[this.number]["link"],'_blank');
        }

        div.onmouseout = function(){
            this.style.border = "1px solid #009";
        }

        var img = document.createElement("img");
        img.setAttribute("id","scrollImg" + i);
        img.setAttribute("src",$("turnTable").items[i]["url"]);
        img.setAttribute("title",$("turnTable").items[i]["title"]);
        img.setAttribute("alt",$("turnTable").items[i]["alt"]);
        img.style.border = "0";

        div.appendChild(img);

        $("turnTable").appendChild(div);
    }

    $("turnR").onmouseover = function(){
        $("turnTable").addAngle = 0;
        clearInterval($("turnTable").scrollTimer);
        $("turnTable").scrollTimer = 0
        $("turnTable").scrollTimer = setInterval("fTurnTable('right')",64);
    }
    $("turnR").onmouseout = function(){
        clearInterval($("turnTable").scrollTimer);
        $("turnTable").scrollTimer = setInterval("fTurnTable('right','stop')",64);
    }
    $("turnL").onmouseover = function(){
        $("turnTable").addAngle = 0;
        clearInterval($("turnTable").scrollTimer);
        $("turnTable").scrollTimer = 0
        $("turnTable").scrollTimer = setInterval("fTurnTable('left')",64);
    }
    $("turnL").onmouseout = function(){
        clearInterval($("turnTable").scrollTimer);
        $("turnTable").scrollTimer = setInterval("fTurnTable('left','stop')",64);
    }

}


/**
 * 回転と拡大縮小の制御
 */
function fTurnTable(turn,type){
    // テーブルの加速 stopの時は減速。
    if(type != "stop"){
        if($("turnTable").addAngle < $("turnTable").addAngleMax){
            var angleP = $("turnTable").addAngle;
            $("turnTable").addAngle = $("turnTable").addAngle + 2;
        }
    }else{
        if($("turnTable").addAngle >= 0){
            $("turnTable").addAngle = $("turnTable").addAngle - 3;
        }else{
            clearInterval($("turnTable").scrollTimer);
            $("turnTable").addAngle = 0;
            $("turnTable").scrollTimer = 0;
        }
    }

    if(turn == "right"){
        for(var i = 0; i < $("turnTable").items.length; i++){
            $("turnTable").items[i]["rad"] = $("turnTable").items[i]["rad"] + $("turnTable").addRadian * $("turnTable").addAngle;
            if($("turnTable").items[i]["rad"] > 2 * Math.PI){
                $("turnTable").items[i]["rad"] = $("turnTable").items[i]["rad"] - (2 * Math.PI);
            }
        }
    }else if(turn == "left"){
        for(var i = 0; i < $("turnTable").items.length; i++){
            $("turnTable").items[i]["rad"] = $("turnTable").items[i]["rad"] - $("turnTable").addRadian * $("turnTable").addAngle;
            if($("turnTable").items[i]["rad"] < 0){
                $("turnTable").items[i]["rad"] =$("turnTable").items[i]["rad"] + (2 * Math.PI);
            }
        }
    }

    for(var i = 0; i < $("turnTable").items.length; i++){
        $("turnTable").items[i]["zoom"] = (Math.cos($("turnTable").items[i]["rad"]) * $("turnTable").radiusY + ($("turnTable").zoom - 1) * $("turnTable").radiusY) / ($("turnTable").zoom * $("turnTable").radiusY); 
        $("turnTable").items[i]["x"]    = Math.round($("turnTable").centerX - ($("turnTable").items[i]["width"] * $("turnTable").items[i]["zoom"] / 2) + Math.sin($("turnTable").items[i]["rad"]) * $("turnTable").radiusX);
        $("turnTable").items[i]["y"]    = Math.round($("turnTable").centerY - ($("turnTable").items[i]["height"] / 2) + Math.cos($("turnTable").items[i]["rad"]) * $("turnTable").radiusY);
        $("scrollImg" + i).style.width  = Math.round($("turnTable").items[i]["width"]  * $("turnTable").items[i]["zoom"]) + "px";
        $("scrollImg" + i).style.height = Math.round($("turnTable").items[i]["height"] * $("turnTable").items[i]["zoom"]) + "px";
        $("items" + i).style.zIndex     = Math.round($("turnTable").items[i]["zoom"] * 100);
        $("items" + i).style.left       = Math.round($("turnTable").items[i]["x"]) + "px";
        $("items" + i).style.top        = Math.round($("turnTable").items[i]["y"]) + "px";

        if ($("items" + i).style.zIndex > 95) {
            $("turnTableLabel").innerHTML = "<a href='" + $("turnTable").items[i]["link"] + "' target='_blank'>" + $("turnTable").items[i]["title"] + "</a>";
        }


    }
}

