/*
	メッセージ等の表示・非表示
	2006-10-26 版
	http://neko.dosanko.us/script/disp_obj/
*/

// ===== クラス ===============================================

function classToggleDisp()
{
	// 設定 ここから↓

	this.MES_EXEC = "お使いのブラウザでは利用できません。";

	this.CLASS_TARGET = ".toggle_disp";
	this.CSS_DISPLAY  = "block";

	// 設定 ここまで↑

	this.boolExec = false;

	this._Init();
}// classToggleDisp //


// ----- public な関数として扱う -----


//
// 表示/非表示切り替え
//
//	@param strId 表示/非表示を切り替える要素の id
//
classToggleDisp.prototype.Toggle = function(strId)
{
	if( this.boolExec )	return;
	this.boolExec = true;

	var class_pointer = this;
	var objInterval = setInterval(
						function()
						{
							class_pointer._Toggle(strId);
							clearInterval(objInterval);
						},
						200
					);
};// classToggleDisp.prototype.Toggle //


// ----- private な関数として扱う -----


//
// 初期化処理を window.onload に登録
//
classToggleDisp.prototype._Init = function()
{
	var class_pointer = this;
	if( window.addEventListener )
	{
		window.addEventListener("load",
								function(){ class_pointer._Reg_CSS(); }, false);
	}else if( window.attachEvent ){
		window.attachEvent("onload", function(){ class_pointer._Reg_CSS(); });
	}// if //
};// classToggleDisp.prototype.Init //

//
// “非表示メッセージに設定されているクラス”に適用する CSS を設定
//
classToggleDisp.prototype._Reg_CSS = function()
{
	if( window.addEventListener )
	{
		window.removeEventListener("load",
								function(){ class_pointer._Reg_CSS(); }, false);
	}else if( window.attachEvent ){
		window.detachEvent("onload", function(){ class_pointer._Reg_CSS(); });
	}// if //

	if( document.styleSheets )
	{
		for( var i = 0 ; i < document.styleSheets.length ; i ++ )
		{
			// 全 CSS に追加することで、CSS を切り替えた場合でも表示を維持

			if( document.styleSheets[i].insertRule )
			{
				document.styleSheets[i].insertRule(this.CLASS_TARGET + "{display:none;}",
												document.styleSheets[i].cssRules.length);
			}else if( document.styleSheets[i].addRule ){
				document.styleSheets[i].addRule(this.CLASS_TARGET, "display:none");
			}// if //
		}// for //
	}else{
		var elmStyle = document.createElement("style");
		elmStyle.type = "text/css";

		var nodeText = document.createTextNode(this.CLASS_TARGET + "{display:none;}");
		elmStyle.appendChild(nodeText);

		var elmHead = document.getElementsByTagName("head").item(0);
		elmHead.appendChild(elmStyle);
	}// if //
};// classToggleDisp.prototype._Reg_CSS //

//
// 表示/非表示切り替え
//
//	@param strId 表示/非表示を切り替える要素の id
//
classToggleDisp.prototype._Toggle = function(strId)
{
	if( !this.boolExec )	return;
	this.boolExec = false;

	if( !document.getElementById )
	{
		alert(this.MES_EXEC);
		return;
	}// if //

	var elm = document.getElementById(strId);
	elm.style.display = ( !elm.style.display || elm.style.display == "none" )
						? this.CSS_DISPLAY : "none";
};// classToggleDisp.prototype._Toggle //


var g_cToggleDisp = new classToggleDisp();


// ===== ボタンの関数 =========================================

//
// 要素の表示・非表示を切り替えるボタン
//
//	@param strId 表示/非表示を切り替える要素の id
//
function Button_ToggleDisp(strId)
{
	g_cToggleDisp.Toggle(strId);
}// Button_ToggleDisp //