/*----初期設定-----*/

// 値の単位を設定（必ずダブルクオートかクオートで括る）
var Unit = "%";

// 一回の操作で変化させる値を設定（ダブルクオートやクオートで括らない）
var perOrder = 20;

// 初期状態の値を設定（ダブルクオートやクオートで括らない）
var defaultSize = 100;

// cookieの名前
var ckName = "font_size";

// cookieの有効期限
var ckDays = 1;

// 最大値
var max = 200;

// 最小値
var min = 80;


// クッキーのパス（必ずダブルクオートかクオートで括る。指定が不要の場合は"/"にする）
var ckPath = "/";



/*----ページ読み込み時の値を設定----*/
var currentSize;
function GET_Cookie(Block){

	// クッキー読み出し(BODY全体用)
	if (!Block) {
		var fsCK = GetCookie( ckName );
		if ( isNaN ( fsCK ) ){
			currentSize = defaultSize;
		}else{
			currentSize = Number( fsCK );
			if ( currentSize < 1 ) { currentSize = defaultSize; }
		}


		// bodyオブジェクトのfontSizeプロパティを書き換える
		document.body.style.fontSize = currentSize + Unit;

	}
	else {
		var fsCK = GetCookie( Block );
		if ( isNaN ( fsCK ) ){
			currentSize = defaultSize;
		}else{
			currentSize = Number( fsCK );
		}
		// オブジェクトのfontSizeプロパティを書き換える
		document.getElementById(Block).style.fontSize =  currentSize + Unit;
	}


}
/*===================================
  引数MODEに渡される値に応じて
  変更後の値を算出しクッキーに書き込む。
====================================*/
function font_block( MODE , Block ){

	// 単位が入っている場合は消しとく
	currentSize = deleteUnit ( currentSize );

	// 拡大
	if ( MODE == "larger" ){
		var newSize = Number( currentSize + perOrder );
		if ( newSize > max ) { newSize = max; }
		document.getElementById(Block).style.fontSize =  newSize + Unit;
		SetCookie( Block , newSize );
	}

	// 縮小
	else if ( MODE == "smaller" ){
		var newSize = Number( currentSize - perOrder );
		if ( newSize < min ) { newSize = min; }
		document.getElementById(Block).style.fontSize =  newSize + Unit;
		SetCookie( Block , newSize );
	}

	// 元に戻す
	else if ( MODE == "default" ){
		currentSize = defaultSize;
		var newSize = Number( currentSize );
		document.getElementById(Block).style.fontSize =  newSize + Unit;
		DeleteCookie( Block );
	}

	// サイズ直接指定
	else {
		var newSize = MODE;
		document.getElementById(Block).style.fontSize = newSize;
		SetCookie( Block , newSize );
	}

	// フォントサイズ変更
	currentSize = newSize;
	return;
}


/*===================================
  引数MODEに渡される値に応じて
  変更後の値を算出しクッキーに書き込む。
====================================*/
function fontsize( MODE ){

	// 単位が入っている場合は消しとく
	currentSize = deleteUnit ( currentSize );

	// 拡大
	if ( MODE == "larger" ){
		var newSize = Number( currentSize + perOrder );
		if ( newSize > max ) { newSize = max; }
		document.body.style.fontSize = newSize + Unit;
		SetCookie( ckName , newSize );
	}

	// 縮小
	else if ( MODE == "smaller" ){
		var newSize = Number( currentSize - perOrder );
		if ( newSize < min ) { newSize = min; }
		document.body.style.fontSize = newSize + Unit;
		SetCookie( ckName , newSize );
	}

	// 元に戻す
	else if ( MODE == "default" ){
		currentSize = defaultSize;
		var newSize = Number( currentSize );
		document.body.style.fontSize = newSize + Unit;
		DeleteCookie( ckName );
	}

	// サイズ直接指定
	else {
		var newSize = MODE;
		document.body.style.fontSize = newSize;
		SetCookie( ckName , newSize );
	}

	// フォントサイズ変更
	currentSize = newSize;
	return;
}

// _______________________________________ end of function fsc() ___ 


/*===================================
  クッキーに値を書き込む
====================================*/
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;
}

/*===================================
  クッキーを取得する
====================================*/
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;
}

/*===================================
  クッキーの値を抽出する
====================================*/
function getCookieVal (offset){
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
  endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset,endstr));
}

/*===================================
  クッキーを削除する
====================================*/
function DeleteCookie(name){
  if (GetCookie(name)){
    document.cookie = name + '=' +
    '; expires=Thu, 01-Jan-70 00:00:01 GMT;path='+ckPath;
  }
}

/*===================================
  単位を消す
====================================*/
function deleteUnit ( data ) {
	data += "";
	data = data.replace ( /\D/g, "" );
	return ( parseInt ( data ) );
}


//EOF
