/*
===========================================================
フォントサイズ変更スクリプト（タイプA）

Last Updated:08/21/2001
　　　10/23/2001最終更新版より下記のURIのみ変更

insomnia!
http://insomnia.jp/
http://insomnia.jp/workshop/
===========================================================
*/


/*
========== ::: ブラウザ判別時に使用する変数 ::: ==========
*/
uaName = navigator.userAgent;
appName = navigator.appVersion;


/*
========== ::: 初期設定 ::: ==========
*/

// 値の単位を設定（必ずダブルクオートかクオートで括る）
var fontSizeUnit = "%";

// 一回の操作で変化させる値を設定（ダブルクオートやクオートで括らない）
var perOrder = 2;

// 初期状態の値を設定（ダブルクオートやクオートで括らない）
var defaultSize = 100;


/*
========== ::: 現時点の値に初期値を代入 ::: ==========
*/
var currentSize = defaultSize;


/*===================================
  [関数 fsc]
  引数CMDに渡される値に応じて
  html要素またはbody要素の
  スタイルプロパティを変更する
====================================*/

function fsc( CMD ){

  // 拡大：現時点の値に一回の操作で変化させる値を加えて操作後の値"newSize"に代入
  if( CMD == "larger" ){
    var newSize = Number(currentSize + perOrder);
  }

  // 縮小：現時点の値から一回の操作で変化させる値を引き操作後の値に代入
  // 現時点のサイズの値が一回の操作で変化させる値と同じならそのまま操作後の値に代入
  if( CMD == "smaller" ){
    if ( currentSize != perOrder ){
      var newSize = Number(currentSize - perOrder);
    }
    else{
      var newSize = Number(currentSize);
    }
  }

  // 元に戻す：操作後の値を初期値にする
  if( CMD == "default" ){
    var newSize = defaultSize;
  }


  // === ::: 変更を加えるオブジェクトの判定 ::: ===
  //
  // NN4用エラーメッセージダイアログ
  if( document.layers ){
    window.alert( "このスクリプトはNetscape Communicator4.xでは動作しません" );
    return false;
  }

  // MacIE4用エラーメッセージダイアログ
  else if(( appName.indexOf("Mac",0) != -1 ) && ( uaName.indexOf("MSIE 4.0",0) != -1 )){
    window.alert( "Sorry! MacIE4.0 is not supported." );
    return false;
  }

  else if( document.body ){

  // オブジェクトのfontSizeプロパティを書き換える
	var tables = null;
	if (cssFirstFlag){
		cssFirstFlag = false;
		tables = document.getElementsByTagName('table');
		for (tkey in tables) {
			tables[tkey].className = "fontSizeSwitcher";
		}
	}
	tables = getElementsByClass("fontSizeSwitcher",null,"table");
	for (tkey in tables) {
		tables[tkey].style.fontSize = newSize + fontSizeUnit;
	}
	document.body.style.fontSize = newSize + fontSizeUnit;
    currentSize = newSize;
  }

}
// _______________________________________ end of function fsc() ___

var cssFirstFlag = true;
function getElementsByClass(sC, n, t) {
	var cEs = new Array();
	var els = (((n == null) ? document : n)).getElementsByTagName(((t == null) ? '*' : t));
	if ((typeof t == "undefined") && (els.length == 0)) els = document.all;
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+sC+'(\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			cEs[j] = els[i];
			j++;
		}
	}
	return cEs;
}
//EOF