/*@cc_on _d=document;eval('var document=_d')@*/

//スクロール前の初期位置(default = 500)
topicsDefPadding = 500;
topicsPadding = topicsDefPadding;
//初期スクロール速度
addDefSpeed = 31;
addSpeed = addDefSpeed;
//表示したトピックスを表示し続ける時間(秒)
topicsDisplayTime = 15;
//実行間隔
scrollDelay = 30;

//文言の初期設定
topicsIndex = 0;

//トップページのトピックスを動かす
function moveTopics(){

  //文言の設定
  if(topicsDefPadding == topicsPadding){
    if(topicsIndex >= topics.length)topicsIndex = 0;
    document.getElementById("topicsText").innerHTML = topics[topicsIndex];
  }

  
  topicsPadding -= addSpeed;
  if(addSpeed != 1){addSpeed -= 1;}
  if(topicsPadding > 0){
    document.getElementById("topicsText").style.paddingLeft = topicsPadding + "px";
    setTimeout(moveTopics, scrollDelay);
  }
  else{
    document.getElementById("topicsText").style.paddingLeft = "0px";
    topicsPadding = topicsDefPadding;
    addSpeed = addDefSpeed;
    setTimeout(moveTopics, topicsDisplayTime * 1000);
    topicsIndex ++;
  }
}

/*
  ■IE かどうかを判定する ver 1.00
  ■関数名
  isIE()
  ■説明
  IE なら true を返し、IE 以外なら false を返す
  ■引数
  なし
  ■戻り値
  IE：true / IE 以外:false
*/
function isIE(){
  return (document.documentElement.getAttribute("style") == document.documentElement.style);
}

/*
  ■ブロックのサイズを徐々に変更する ver 1.00
  ■関数名
  smoothResizeHeight(size)
  ■引数
  obj     : 対象ブロック
  size    : 初期サイズ(%)
  maxSize : 最大の大きさ(px)
  step    : 速さ
  flg     : true / display を block に変更し、100% まで大きくなる
          : false/ 0% まで小さくし、display を none に変更する
*/
function smoothResizeHeight(obj, size, maxSize, step){
  var toSize;
  var endFlg;
  var func;

  if(step == 0){return false;}

  endFlg = false;

  toSize = size + step;

  if(step > 0){
    //大きくなる場合
    if(toSize > 100){
      toSize = 100;
      endFlg = true;
    }
    else{
      obj.style.display = "block";
    }

  }
  else{
    //小さくなる場合
    if(toSize < 0){
      toSize = 0;
      endFlg = true;
      obj.style.display = "none";
    }
  }

  //高さの設定
  obj.style.height = (( maxSize / 100 ) * toSize) + "px";

  //$("info").innerHTML = "obj.style.height = " + obj.style.height + " / toSize = " + toSize + " / step = " + step + " / maxSize = " + maxSize + "<br>";

  //処理終了まで自分自身を呼び出す
  if(!endFlg){
    func = function(){smoothResizeHeight(obj, toSize, maxSize, step * 1.5 )};
    setTimeout(func, 30);
  }
}
//ウインドウの幅を返す ver 1.0 ===
function getWindowWidth(){
  if(document.body.clientWidth){
    return document.body.clientWidth;
  }
  else if(innerWidth){
    return innerWidth;
  }
  else{
    return 0;
  }
}
//================================================

//ウインドウの高さを返す ver 1.0 ===
function getWindowHeight(){
  if(document.body.clientHeight){
    //IE 等
    return document.body.clientHeight;
  }
  else if(innerHeight){
    //NN 等
    return innerHeight;
  }
  else{
    //取得できない場合
    return 0;
  }
}
//================================================

//y 方向のスクロール量を返す ===
function getScrollPositionX(){
  if(document.documentElement){
    return document.documentElement.scrollTop;
  }
  else if(document.body){
    return document.body.scrollTop;
  }
  else if(self.pageYOffset){
    return self.pageYOffset;
  }
  else{
    return 0;
  }
}
//================================================





//クラス名で指定された img 要素に onmouseover, onmouseout を設定する
//クラス名の指定方法
//class="chgImg"(over時画像ファイル名に_onがついたものになる)
//class="chgImg-InFileName"
//class="chgImg-OutFileName-InFileName"
function setChgImg(){
  //img要素を取得
  target = document.getElementsByTagName("img");

  //全ての img 要素にイベントを設定
  for(i = 0 ; i < target.length ; i++){
    //クラス名の取得
    tempClassNames = target[i].className.split(" ");
    for(j = 0 ; j < tempClassNames.length ; j++){
      //"chgImg クラスが設定されているか判別"
      if(tempClassNames[j].substring(0, 6) == "chgImg"){

        //初期画像を取得
        defImg = target[i].getAttribute("src");
        //拡張子を取得
        temp = defImg.split(".");
        imgExt = "." + temp[temp.length - 1];
        //画像のパスを取得
        temp = defImg.split("/");
        imgPath = "";
        for(k = 0 ; k < temp.length - 1; k++){
          imgPath += temp[k] + "/";
        }
        originalFile = temp[temp.length - 1].replace(imgExt, "_on" + imgExt);

        if(tempClassNames[j] == "chgImg"){
          //画像ファイル名の指定がなかった場合
          outImg = defImg;
          onImg = imgPath + originalFile;
        }
        else{
          chgImgClassValue = tempClassNames[j].split("-");

          //設定された画像数に応じて処理を分ける
          if(chgImgClassValue.length = 2){
            //設定された画像数が1つの時
            outImg = defImg;
            onImg = imgPath + chgImgClassValue[1] + imgExt;
          }
          else if(chgImgClassValue.length = 3){
            //設定された画像数が2つの時
            outImg = imgPath + chgImgClassValue[1] + imgExt;
            onImg = imgPath + chgImgClassValue[2] + imgExt;
          }
          else{
            //設定された画像数が不適切な場合
            outImg = "";
            onImg = "";
          }
        }
        //取得した画像に変更する様に設定

        //イベントの設定
        if(onImg != ""){
          Event.observe(target[i],
                        'mouseover',
                        setImg.bindAsEventListener(this, target[i], onImg),
                        false);
        }
        if(outImg != ""){
          Event.observe(target[i],
                        'mouseout',
                        setImg.bindAsEventListener(this, target[i], outImg),
                        false);
        }
      }
    }
  }
}


//対象の画像を変更する
function setImg(e, target, src){
  target.setAttribute("src", src);
}


var HBalloonHelp = Class.create();
HBalloonHelp.prototype = {
  //各設定の初期値

  width: "auto",

  //initialize
  initialize  : function(obj, settings) {
    //メンバ変数を初期化
    this.helpMessage = new Array();
    helpObj = document.getElementsByClassName("viewHelp");

    this.width = settings.width || this.width;

    //ヘルプ表示用のボックスを生成
    var helpBox = document.createElement("p");
    var str = document.createTextNode("test");
    helpBox.appendChild(str);
    document.getElementsByTagName("body")[0].appendChild(helpBox);
    helpBox.setAttribute("id", "helpBox");
    helpBox.style.width = this.width;

    //ヘルプを表示する要素を取得
    for (i = 0 ; i < helpObj.length ; i ++){
      //ヘルプ内容を取得
      this.helpMessage[i] = helpObj[i].getAttribute("title");
      //title 属性を空にする(ブラウザがツールチップを表示しない様に)
      helpObj[i].setAttribute("title", "");
      //イベントの設定
      Event.observe(helpObj[i],
                    'mousemove',
                    this.enableHelp.bindAsEventListener(this, i, helpObj[i]),
                    false);
      Event.observe(helpObj[i],
                    'mouseout',
                    this.disableHelp.bindAsEventListener(),
                    false);
    }
  },

  enableHelp  :  function(evnt, i, Target){
    //カーソルをヘルプに
    //Target.style.cursor = "help";

    //オブジェクトの設定
    objHelp = document.getElementById("helpBox");

    //座標設定(-5 は画面端からのマージン)
    if((evnt.clientX + Element.getWidth(objHelp) - 5) > getWindowWidth()){
      WidthAdd = (evnt.clientX + Element.getWidth(objHelp) - 5) - getWindowWidth();
    }
    else{
      WidthAdd =0;
    }
    objHelp.style.top = (evnt.clientY + 5 + getScrollPositionX()) + "px";
    objHelp.style.left = (evnt.clientX + 5 - WidthAdd) + "px";

    //文言設定
    var mes = this.helpMessage[i].replace("\\n", "<br>");  //\n を改行に置換
    objHelp.innerHTML = mes //+ "<br>width = " + Element.getWidth(objHelp) + "px";

    //非表示から表示
    objHelp.style.display = "block";
  },

  disableHelp  :  function(){
  //オブジェクトの設定
  objHelp = document.getElementById("helpBox");

  //ヘルプを非表示にする
  objHelp.style.display = "none";
}

}

