//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
//
//　■製品詳細シミュレーションクラス
//　依存関係：commonlib.js
//　　　　　　setting.js
//
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//クラス定義
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
clsTopmain = new Object();
clsTopmain = function(){
  //*******************************************************
  //動作フラグ
  //*******************************************************
  this.blnDebug = 0;

  //*******************************************************
  //定数
  //*******************************************************
  this.ST_ROTATTIME   = 6000;
  this.ST_OVERTIME    = 25;
  
  this.ST_MENUMAX     = 6;
  
  this.ST_VISUALAREA    = "VisualArea";
  this.ST_VISUALCLASS   = "VisualParts";
  this.ST_MENUAREA      = "MenuArea";
  this.ST_MENUCLASS     = "MenuLine";
  this.ST_MENUCLASS_OV  = "MenuLineOn";

  //*******************************************************
  //プロパティ
  //*******************************************************
  //インスタンス名
  this.strInsName = "";
  
  //オブジェクト
  this.objVisualArea  = new Object();
  this.objVisuals     = new Array();
  //this.objVisual      = new Object();
  this.objMenuArea    = new Object();
  this.objMenus       = new Array();
  this.objSetting     = garyMenuSetting;

  //初期表示メニュー番号
  this.intDefID       = gintDefaultID;
  
  //タイマーID
  this.intOverTime    = null;
  //this.intRotatTime   = null;
  
  //表示画像ID
  this.intImgIndex    = 0;
  
  //*******************************************************
  //コンストラクタ
  //*******************************************************
  if (this.blnDebug){ com.setDebug(); }

  //*******************************************************
  //初期処理
  //*******************************************************
  this.init = function(vstrInsName){
    
    //インスタンス名記憶
    this.strInsName = vstrInsName;
    
    //表示領域出力
    this.write();
    
    //初期化処理実行
    com.addEvent(window, "load", com.getFnc("this.initobject();", this));
    
  }
  
  //*******************************************************
  //初期情報出力
  //*******************************************************
  this.write = function(){
    
    //初期IDチェック
    var intDefIdx = 0;
    for (var i=0; i<this.objSetting.length; i++){
      if (this.objSetting[i]["id"] != gintDefaultID){ continue; }
      intDefIdx = i;
      break;
    }
    
    var strVisualHtml = "";
    var strMenuHtml = "";
    for (var i=0; i<this.ST_MENUMAX; i++){

      //メインビジュアル
      if (i < this.objSetting.length){
        strStyle = "display:none;";
        if (i == intDefIdx){
          strStyle = "display:block;";
        }
        //strTarget = "";
        //if (this.objSetting[i]["target"] == "blank"){
        //  strTarget = "target=\"_blank\"";
        //}
        
        //strVisualHtml += "<a href=\"" + this.objSetting[i]["link"] + "\" " + strTarget + ">";
        strVisualHtml += "<img src=\"" + this.objSetting[i]["image"] + "\" ";
        strVisualHtml += "width=\"537\" height=\"205\" alt=\"\" ";
        strVisualHtml += "class=\"" + this.ST_VISUALCLASS + "\" style=\"" + strStyle + "\">\n";
        //strVisualHtml += "</a>";
      }
      
      //メニュー
      strTitle = "";
      strClass = "";
      strOver  = this.ST_MENUCLASS;
      if (i < this.objSetting.length){
        strTitle  = this.objSetting[i]["title"];
        strClass  = this.objSetting[i]["size"];
      }
      if (i == intDefIdx){
        strOver = this.ST_MENUCLASS_OV;
      }
      
      strMenuHtml += "<div class=\"" + strOver + "\">";
      strMenuHtml += "<p class=\"" + strClass + "\">" + strTitle + "</p>";
      strMenuHtml += "</div>\n";
    }

    var strHtml = "";

    strHtml += "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
    strHtml += "<tr>\n";
    strHtml += "<td colspan=\"4\"><img src=\"img/top_table_01.gif\" width=\"742\" height=\"6\" alt=\"\"></td>\n";
    strHtml += "</tr>\n";
    strHtml += "<tr>\n";
    strHtml += "<td><img src=\"img/top_table_02.gif\" width=\"7\" height=\"205\" alt=\"\"></td>\n";
    strHtml += "<td>\n";
    strHtml += "<div id=\"" + this.ST_VISUALAREA + "\">";
    strHtml += strVisualHtml;
    strHtml += "</div>";
    strHtml += "</td>\n";
    strHtml += "<td valign=\"top\" background=\"img/top_button_bg.gif\">\n";
    strHtml += "<div><img src=\"img/top_button_top.gif\" height=\"1\" width=\"191\"></div>\n";
    strHtml += "<div id=\"" + this.ST_MENUAREA + "\">\n";
    strHtml += strMenuHtml;
    strHtml += "</div>\n";
    strHtml += "</td>\n";
    strHtml += "<td><img src=\"img/top_table_03.gif\" width=\"7\" height=\"205\" alt=\"\"></td>\n";
    strHtml += "</tr>\n";
    strHtml += "<tr>\n";
    strHtml += "<td colspan=\"4\"><img src=\"img/top_table_04.gif\" width=\"742\" height=\"6\" alt=\"\"></td>\n";
    strHtml += "</tr>\n";
    strHtml += "</table>\n";
    
    document.write(strHtml);
  }

  //*******************************************************
  //オブジェクト取得、イベント定義
  //*******************************************************
  this.initobject = function(){
    
    //エリアオブジェクト取得
    this.objVisualArea  = document.getElementById(this.ST_VISUALAREA);
    this.objMenuArea    = document.getElementById(this.ST_MENUAREA);
    
    //ビジュアルオブジェクト取得
    //this.objVisual = com.getTag(this.objVisualArea, "img")[0];
    //this.objVisual.style.cursor = "pointer";
    this.objVisuals = com.getTag(this.objVisualArea, "img");
    for (var i=0; i<this.objVisuals.length; i++){
      this.objVisuals[i].style.cursor = "pointer";
      com.addEvent(this.objVisuals[i], "click", com.getFnc("this.link(" + i + ")", this));
    }

    //メニューオブジェクト取得
    var aryElements = com.getTag(this.objMenuArea, "div");
    for (var i=0; i<aryElements.length; i++){
      //該当オブジェクト以外は処理しない
      //if (aryElements[i].className != this.ST_MENUCLASS){ continue; }
      if (aryElements[i].className != this.ST_MENUCLASS 
          && aryElements[i].className != this.ST_MENUCLASS_OV){ continue; }
      
      //設定数に達したら後は処理しない
      if (this.objMenus.length >= this.objSetting.length){ break; }
      
      //オブジェクトをプロパティに格納
      this.objMenus.push(aryElements[i]);
      
      //スタイル定義
      aryElements[i].style.cursor = "pointer";
      
      //イベント定義
      com.addEvent(aryElements[i], "click",     com.getFnc("this.link(" + i + ")", this));
      //com.addEvent(aryElements[i], "mouseover", com.getFnc("this.menuOver(" + i + ")", this));
      com.addEvent(aryElements[i], "mouseover", com.getFnc("this.chgImage(" + i + ")", this));
      com.addEvent(aryElements[i], "mouseout",  com.getFnc("this.chgImage(-1)", this));
    }
    
    //初期表示メニュー取得
    this.intImgIndex = 0;
    for (var i=0; i<this.objSetting.length; i++){
      if (this.objSetting[i]["id"] != this.intDefID){ continue; }
      this.intImgIndex = i;
      break;
    }
    this.intImgIndex--;

    //ローテーション開始
    //this.rotation();
  }
  
  //*******************************************************
  //ローテーションセット
  //*******************************************************
  this.rotation = function(){
    
    //表示ID編集
    this.intImgIndex++;
    if (this.intImgIndex >= this.objSetting.length){
      this.intImgIndex = 0;
    }
    
    //画像切り替え
    this.chgImage_exec(this.intImgIndex);
    
    //  //ローテーションタイマーセット
    //  this.intRotatTime = setTimeout(this.strInsName + ".rotation();", this.ST_ROTATTIME);
  }

  //*******************************************************
  //メニューロールオーバー
  //*******************************************************
  this.menuOver = function(vintIndex){
    //全メニューを初期化
    for (var i=0; i<this.objMenus.length; i++){
      this.objMenus[i].className = this.ST_MENUCLASS;
    }
    this.objMenus[vintIndex].className = this.ST_MENUCLASS_OV;
    return false;
  }
  
  //*******************************************************
  //メニューリンク
  //*******************************************************
  this.link = function(vintIndex){
    
    if (this.objSetting[vintIndex]["target"] == "blank"){
      window.open(this.objSetting[vintIndex]["link"]);
    }else{
      document.location.href = this.objSetting[vintIndex]["link"];
    }
  }
  
  //*******************************************************
  //メインビジュアル切り替え
  //*******************************************************
  this.chgImage = function(vintIndex){
    //タイマーセット
    clearTimeout(this.intOverTime);
    //  clearTimeout(this.intRotatTime);
    //
    //  //マウスアウト時はローテーションタイマーをセットして処理終了
    //  if (vintIndex == -1){ 
    //    this.intRotatTime = setTimeout(this.strInsName + ".rotation();", this.ST_ROTATTIME);
    //    return; 
    //  }
    
    //切り替え実行
    this.intOverTime = setTimeout(this.strInsName + ".chgImage_exec(" + vintIndex + ");", this.ST_OVERTIME);
  }

  //*******************************************************
  //メインビジュアル切り替え実行
  //*******************************************************
  this.chgImage_exec = function(vintIndex){
    
    //マイナス値の場合は処理しない
    if (vintIndex == -1){
      return;
    }
    
    //全メニューを初期化
    for (var i=0; i<this.objMenus.length; i++){
      this.objMenus[i].className = this.ST_MENUCLASS;
      this.objVisuals[i].style.display = "none";
    }
    this.objMenus[vintIndex].className = this.ST_MENUCLASS_OV;
    this.objVisuals[vintIndex].style.display = "block";

    //画像インデックス記憶
    this.intImgIndex = vintIndex;
    
    //メニューカレント
    this.menuOver(vintIndex);
    
    ////画像パス設定
    //this.objVisual.src = this.objSetting[vintIndex]["image"];
    
    ////リンク更新
    //this.objVisual.onclick = com.getFnc("this.link(" + vintIndex + ")", this);

  }
  
}