// =============================================================================
// 表示切り替えクラス
// =============================================================================
/*
   DispalyChanger クラス

   最終更新日:2004年3月1日(月)
   -----------------------------------------------------------------------------

   依存
	sniffer.js
	broadcaster.js
	window.js
	window_onload.js

   -----------------------------------------------------------------------------

   コンストラクタの引数
	無し

   -----------------------------------------------------------------------------

   メソッド
	- init()
		初期化

	- changeTo(String name)
		そのカテゴリを表示、それ以外を非表示

	- onReady()
		イベント（windowからとんでくるイベント）

*/
// =============================================================================
if(sniffer.DOMable()) {



// -----------------------------------------------------------------------------
/*
   オブジェクト準備
*/
function DisplayChanger() {
	this.menus = new Array();

	this.init();
}
// -----------------------------------------------------------------------------



// -----------------------------------------------------------------------------
/*
   initメソッド
	Null displayChanger.init()
*/
DisplayChanger.prototype.init = function() {
	//タイミングがただのロールオーバーではないのでまたしても手動でMultipleImage作ります。
	this.menus["tvmaster"] = new MultipleImage();
	this.menus["tvmaster"].addState( "on", "images/servicemenu_01_on.gif" );
	this.menus["tvmaster"].addState( "off", "images/servicemenu_01.gif" );

	this.menus["kaisen"] = new MultipleImage();
	this.menus["kaisen"].addState( "on", "images/servicemenu_03_on.gif" );
	this.menus["kaisen"].addState( "off", "images/servicemenu_03.gif" );

	this.menus["jnnsng"] = new MultipleImage();
	this.menus["jnnsng"].addState( "on", "images/servicemenu_04_on.gif" );
	this.menus["jnnsng"].addState( "off", "images/servicemenu_04.gif" );

	this.menus["cmbank"] = new MultipleImage();
	this.menus["cmbank"].addState( "on", "images/servicemenu_05_on.gif" );
	this.menus["cmbank"].addState( "off", "images/servicemenu_05.gif" );

	this.menus["bs"] = new MultipleImage();
	this.menus["bs"].addState( "on", "images/servicemenu_06_on.gif" );
	this.menus["bs"].addState( "off", "images/servicemenu_06.gif" );

	this.menus["cs"] = new MultipleImage();
	this.menus["cs"].addState( "on", "images/servicemenu_07_on.gif" );
	this.menus["cs"].addState( "off", "images/servicemenu_07.gif" );

	//JavaScript有効ブラウザおよびスクリーンメディアのみ、表示カテゴリのdisplayを操作
	document.open();
	document.write('<link href="css/displaychangerjs.css" rel="stylesheet" type="text/css" media="screen" />\n');
	document.close();
}
// -----------------------------------------------------------------------------



// -----------------------------------------------------------------------------
/*
   メソッド
	Null displayChanger.changeTo()

		String name		-	押されたボタンのカテゴリ名
*/
DisplayChanger.prototype.changeTo = function(evt) {
	var evt = (typeof window.event != "undefined") ? window.event : evt;
	var firedImg = (typeof evt.target != "undefined") ? evt.target : (typeof evt.srcElement != "undefined") ? evt.srcElement : null ;
	for(var i in this.menus) {
		/* Tricky for unexpected objects being listed up from for-in on IE5.0 Win */
		if(typeof this.menus[i] == "object" && typeof this.menus[i].imageObject != "undefined") {
			if(this.menus[i].imageObject == firedImg) {
				this.menus[i].changeTo("on");
				document.getElementById(i).style.display = "block";
			}
			else {
				this.menus[i].changeTo("off");
				document.getElementById(i).style.display = "none";
			}
		}
 	}
	footer.setHeight();

	if(typeof evt.preventDefault != "undefined")
	{
		evt.preventDefault();
	}
	else
	{
		evt.returnValue = false;
	}
}
// -----------------------------------------------------------------------------



// -----------------------------------------------------------------------------
/*
   readyイベント（windowから教えてもらえるイベント）
	Null displayChanger.onReady()
*/
DisplayChanger.prototype.onReady = function() {
	for(var i in this.menus) {
		/* Tricky for unexpected objects being listed up from for-in on IE5.0 Win */
		if(typeof this.menus[i] == "object" && typeof this.menus[i].imageObject != "undefined") {
			this.menus[i].setImageObject(document.getElementById("menu_"+i).firstChild.firstChild);
			var parentAnchor = this.menus[i].imageObject.parentNode;

			var self = this;
			if(typeof parentAnchor.addEventListener != "undefined")	{
				parentAnchor.addEventListener("click", function(evt){self.changeTo(evt)}, false);
			}
			else if(typeof parentAnchor.attachEvent != "undefined")	{
				parentAnchor.attachEvent("onclick", function(){self.changeTo()});
			}
			else {
				parentAnchor["onclick"] = function() {self.changeTo();};
			}
		}
	}
	this.menus["tvmaster"].changeTo("on");
}
// -----------------------------------------------------------------------------



// -----------------------------------------------------------------------------
/*
   インスタンス化
*/
var displayChanger = new DisplayChanger();
// -----------------------------------------------------------------------------



// -----------------------------------------------------------------------------
/*
   windowさんにイベントを教えてもらえるようにする。
*/
window.addListener(displayChanger);
// -----------------------------------------------------------------------------
}
