/* -----------------------------------
共通設定（変更しないでください）
----------------------------------- */
// タイマー
var bodyTimer = null;
var defaultTimer = null;
var stopTimer = null;
// bodyサイズ
var bodySize = null;
// タイマー制御
var stopLimit = 0;


/* -----------------------------------
環境設定（適時変更ください）
----------------------------------- */
// default 文字サイズ（％）
var defaultSize = "100";
// 変更サイズ（％）
var changeSize = "10";
// 変更許可回数（null = 無制限)
var changeLimit = 3;

// cookie 保存名
var cookieName = "yao";
var cookieLimitName = "ChangeCnt";
// cookie 保存日数
var cookieSave = "1";

// フォント画像までのパス
var imagePath = "/images/";
// フォント画像の拡張子
var imageExt = ".gif";
// 大中小のid名
var fontBig = "font_big";
var fontMid = "font_mid";
var fontMin = "font_min";
// 選択画像の接尾後
var imageSelect = "_select";



/* --- 処理開始 --- */

//Bodyサイズ情報取得
subGetBodySize();

function subGetBodySize() {
  // クッキーにある場合は、クッキーに従う
  if (document.cookie && document.cookie.length > 0) {
    var cookie = document.cookie.split("; ");
    if (cookie.length > 0) {
      var match = false;
      for (i=0; i<cookie.length; i++) {
        if (cookie[i].substr(0,(cookieName.length+1)) == cookieName + "=") {
          bodySize = cookie[i].substr((cookieName.length+1), cookie[i].length);
          match = true;
          break;
        }
      }
      // クッキー配列になかった場合
      if (!match) {
        bodySize = defaultSize;
      }
    } else {
      bodySize = defaultSize; // クッキーが配列でない場合はデフォルト
    }
  } else {
    bodySize = defaultSize; // クッキーにない場合はデフォルト
  }
}

//Bodyタグチェック
subBodyTimer();

function subBodyTimer () {
  bodyTimer = setInterval("subGetBodyTag()", 5);
}

function subGetBodyTag () {
  if (document.body) {
    document.body.style.fontSize = bodySize + "%";
    clearInterval(bodyTimer);
    
    //Bodyタグセット後、文字デフォルトセット
    defaultTimer = setInterval("subGetFontVal()", 5);
  }
}

function subGetFontVal () {
  var font = null;
  if (parseInt(bodySize) == parseInt(defaultSize)) { //Mid
    if (document.getElementById(fontMid)) {
      font = document.getElementById(fontMid);
      font.src = imagePath + fontMid + imageSelect + imageExt;
      clearInterval(defaultTimer);
    }
  }
  else if (parseInt(bodySize) == parseInt(defaultSize) - parseInt(changeSize)) { // Min
    if (document.getElementById(fontMin)) {
      font = document.getElementById(fontMin);
      font.src = imagePath + fontMin + imageSelect + imageExt;
      clearInterval(defaultTimer);
    }
  }
  else if (parseInt(bodySize) == parseInt(defaultSize) + parseInt(changeSize)) { // Big
    if (document.getElementById(fontBig)) {
      font = document.getElementById(fontBig);
      font.src = imagePath + fontBig + imageSelect + imageExt;
      clearInterval(defaultTimer);
    }
  }
}



//onload 時、全タイマーのストップ
window.onload = subCheckIntervalStart;

function subCheckIntervalStart () {
  stopTimer = setInterval("subStopTimer()", 1000);
}

function subStopTimer () {
  if (stopLimit == 1) {
    if (bodyTimer) {
      clearInterval(bodyTimer);
    }
    if (defaultTimer) {
      clearInterval(defaultTimer);
    }
    clearInterval(stopTimer);
  }
  stopLimit = parseInt(stopLimit) + 1;
}



//onClickによるチェンジ
function subChangeFont (id) {
  document.getElementById(id).src = imagePath + id + imageSelect + imageExt;
  if (id == fontMid) { // Mid
    document.body.style.fontSize = defaultSize + "%";
  } else {
    document.getElementById(fontMid).src = imagePath + fontMid + imageExt;
  }
  if (id == fontMin) { // Min
    document.body.style.fontSize = (parseInt(defaultSize) - parseInt(changeSize)) + "%";
  } else {
    document.getElementById(fontMin).src = imagePath + fontMin + imageExt;
  }
  if (id == fontBig) { // Big
    document.body.style.fontSize = (parseInt(defaultSize) + parseInt(changeSize)) + "%";
  } else {
    document.getElementById(fontBig).src = imagePath + fontBig + imageExt;
  }
  
  // クッキーに保存
  subSetCookie(document.body.style.fontSize.replace("%",""));
}

function subSetCookie (size) {
  exp = new Date();
  exp.setTime(exp.getTime()+1000*60*60*24*parseInt(cookieSave));
  document.cookie = cookieName + "=" + size + "; expires=" + exp.toGMTString();
}
