/*
===========================
フォントサイズ変更スクリプト
===========================
*/


//==========初期設定==========
//ローカル変数に代入。

// 単位の設定（””で囲む）
var fontSizeUnit = "px";

// 一回の操作で変化させる値を設定（数値なので””はつけない）
var perOrder = 2;

// 初期状態の値を設定（数値なので””はつけない）
var defaultSize = 12;

// クッキーの名前（””で囲む）
var ckName = "FSCc";

// クッキーの有効期限（日）（数値なので””はつけない）
var ckDays = 2;

// クッキーのパス（””で囲む。指定が不要の場合は"/"にする）
var ckPath = "/"


//==========ページを読み込んだときの状態を設定==========


// クッキーの読み出し。
var fsCK = GetCookie( ckName );

if ( fsCK == null ){
  var currentSize = defaultSize;          //もしクッキーが無ければ現在の値を初期状態の値に設定
}
else{
  var currentSize = eval( fsCK );          //クッキーがあれば現在の値をクッキーの値に設定
}


//==========head内にstyle要素を出力==========

document.writeln( '<style type="text/css">' );
//document.write( 'body{font-size:' + currentSize + fontSizeUnit+ '}' );
//↑BODYタグ内の文字サイズを変更する場合　※これだけでは、TABLE内の文字サイズは変更されない。
document.write( 'td{font-size:' + currentSize + fontSizeUnit+ '}' );
//↑TDタグ内の文字サイズを変更する場合
//document.write( '.moji {font-size:' + currentSize + fontSizeUnit+ '}' );
//↑文字サイズを変更させるスタイルクラスを作成
document.writeln( '</style>' );


/*===================================
  [関数 fsc]
  引数CMDに渡される値に応じて（HTML内のボタンによって飛んでくる値、拡大・縮小・元のサイズ）
  変更後の値を算出しクッキーに書き込む。
====================================*/

function fsc( CMD ){

  // 拡大：現時点の値に一回の操作で変化させる値を加えて操作後の値"newSize"に代入
  if ( CMD == "larger" ){
    var newSize = Number( currentSize + perOrder );
    //↓リミットの設定。ここでは最大を20pxまでに設定。newSizeが20以上になったらクッキーに書き込まない。
    //↓値や単位を変えたらこの数値も変更すること。
    if ( newSize <= 20 ){
    SetCookie( ckName , newSize );          //クッキーに書き込み
    }
  }

  // 縮小：現時点の値から一回の操作で変化させる値を引き操作後の値に代入
  // 現時点のサイズの値が一回の操作で変化させる値と同じならそのまま操作後の値に代入
  if ( CMD == "smaller" ){
    if ( currentSize != perOrder ){
      var newSize = Number( currentSize - perOrder );
      //↓リミットの設定。ここでは最小を8pxまでに設定。newSizeが8以下になったらクッキーに書き込まない。
      //↓値や単位を変えたらこの数値もあわせて変更すること。
      if ( newSize >= 8 ){
      SetCookie( ckName , newSize );          //クッキーに書き込み
      }
    }
    else{
      var newSize = Number( currentSize );
    }
  }

  // 元に戻す：操作後の値を初期値にする
  if ( CMD == "default" ){
    DeleteCookie( ckName );          //クッキーを削除
  }

  // ページの再読み込み
  // 再読み込みをすることで変更後の値を反映したstyle要素が出力される
  location.reload();
}

//関数 


/*===================================
  [関数 SetCookie]
  クッキーに値を書き込む
====================================*/
function SetCookie( name , value ){
  var dobj = new Date();
  dobj.setTime(dobj.getTime() + 24 * 60 * 60 * ckDays * 1000);
  var expiryDate = dobj.toGMTString();
  document.cookie = name + '=' + escape(value) + ';expires=' + expiryDate + ';path=' + ckPath;
}

/*===================================
  [関数 GetCookie]
  クッキーを取得する
====================================*/
function GetCookie (name){
  var arg  = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen){
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
    return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
  }
  return null;
}

/*===================================
  [関数 getCookieVal]
  クッキーの値を抽出する
====================================*/
function getCookieVal (offset){
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
  endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset,endstr));
}

/*===================================
  [関数 DeleteCookie]
  クッキーを削除する
====================================*/
function DeleteCookie(name){
  if (GetCookie(name)){
    document.cookie = name + '=' +
    '; expires=Thu, 01-Jan-70 00:00:01 GMT;path='+ckPath;
  }
}

//EOF