///////////////////////////////////////////////////////////////////////////////
//	Button.class.js
//		イメージボタン処理クラス
//			Copyright (c) 2007 mochiZ.
//
//	author: mochiZ.
//	create: 2007/03/08
//	update: 2007/12/28 MANA Web用にカスタマイズ
//	update: 2008/01/08 MANA Web用にマウスアウト無効化 & set()/reset() 追加
///////////////////////////////////////////////////////////////////////////////

//=============================================================================
// class Button
//=============================================================================
Button.prototype.index = 0;
Button.prototype.regist = new Array();
Button.prototype.current;

//*************************
// コンストラクタ
//*************************
function Button(id, mouseover)
{
	var SUFFIX = "R";		// ハイライトファイル名サフィックス

	if(!mouseover) mouseover = false;
	this.mouseover = mouseover;

	// メンバ
	this.imgOrg = new Image();			// オリジナル画像
	this.imgHi  = new Image();			// ハイライト画像
	this.obj    = this.getObj(id);		// エレメントのオブジェクト

	if(!this.obj){
		//alert("Not found : " + id);
		return;
	}
	
	this.imgOrg.src = this.obj.src;

	// オリジナルファイル名にサフィックスを交換
	var pos = this.imgOrg.src.lastIndexOf(".");
	var ext = this.imgOrg.src.substr(pos);
	var img = this.imgOrg.src.substr(0, pos - 1);
	img_hi = img + SUFFIX + ext;
	// ハイライトイメージのロード
	this.imgHi.src = img_hi;
	
	// マウスイベント登録
	this.eventHandler(this);
	
	if(!mouseover) Button.prototype.regist[Button.prototype.index++] = this;
}

//*********************************************************
// ボタン状態のセット
//*********************************************************
Button.prototype.set = function()
{
	Button.prototype.current.MouseOver();
}

//*********************************************************
// ボタン状態のリセット
//*********************************************************
Button.prototype.reset = function()
{
	for(i=0; i<Button.prototype.index; i++){
		Button.prototype.regist[i].MouseOut();
	}
}

//*********************************************************
// イベントハンドラ(クラスメソッド)
//*********************************************************
Button.prototype.eventHandler = function(w)
{
	w.obj.onmouseover = function(){
		w.MouseOver();
	}
	w.obj.onmouseout = function(){
		if(w.mouseover) w.MouseOut();
	}
}

//*************************
// オブジェクト取得
//*************************
Button.prototype.getObj = function(name)
{
	if(document.getElementById){
		return document.getElementById(name);
	}else if(document.all){
		return document.all(name);
	}else if(document.layers){
		return document.layers[layName];
	}
	return null;
}

//*************************
//	MouseOver
//*************************
Button.prototype.MouseOver = function()
{
	this.obj.src = this.imgHi.src;
	Button.prototype.current = this;
}

//*************************
//	MouseOut
//*************************
Button.prototype.MouseOut = function()
{
	this.obj.src = this.imgOrg.src;
}

