/*
	Image Button Framework JS Engine
	Copyright (C) 2006, 2007. Chonla.

	Version: 1.1
	Author: Chonla
	Update: 13 mar. 2007

	More infomation, visit: http://www.siamexperts.net/
*/

// initialize button array
var $btn_var_name__ = "I3U770N___";
eval("var " + $btn_var_name__ + "0 = new Array()");	// normal
eval("var " + $btn_var_name__ + "1 = new Array()");	// hover
eval("var " + $btn_var_name__ + "2 = new Array()");	// selected
eval("var " + $btn_var_name__ + "G = new Array()");	// selected state group
var $btn_selected = "";

function $button(buttonname)
{
	var o = _$(buttonname);
	if (o.length > 0) return o[0];
	return null;
}

function $register_button(bindex, nstateimg, hstateimg, sstateimg, groupid)
{
	var b = $button(bindex);
	if (b == null)
	{
		alert("Unable to register button \"" + bindex + "\"");
		return;
	}
	if (groupid == null) groupid = "g" + (new Date()).getTime();
	$create_button(bindex, nstateimg, hstateimg, sstateimg, groupid);
	b.groupid = groupid;
	b.onmouseout = $callback_button_onmouseout;
	b.onmouseover = $callback_button_onmouseover;
	b.onclick = $callback_button_onclick;
}

function $create_button(bindex, nstateimg, hstateimg, sstateimg, groupid)
{
	eval($btn_var_name__ + "0['" + bindex + "'] = new Image()");
	eval($btn_var_name__ + "1['" + bindex + "'] = new Image()");
	eval($btn_var_name__ + "2['" + bindex + "'] = new Image()");
	eval($btn_var_name__ + "0['" + bindex + "'].src = \"" + nstateimg + "\"");
	eval($btn_var_name__ + "1['" + bindex + "'].src = \"" + hstateimg + "\"");
	eval($btn_var_name__ + "2['" + bindex + "'].src = \"" + sstateimg + "\"");
	eval($btn_var_name__ + "G['" + groupid + "'] = \"\"");
}

function $set_button_handler(bindex, callback_mouseout, callback_hover, callback_selected)
{
	var b = $button(bindex);
	if (b == null)
	{
		alert("Unable to bind handler to button \"" + bindex + "\"");
		return;
	}
	b.callback_onmouseout = callback_mouseout;
	b.callback_onmouseover = callback_hover;
	b.callback_onclick = callback_selected;
}

function $activate_button(bindex)
{
	var b = $button(bindex);
	if (b == null)
	{
		alert("Unable to activate button \"" + bindex + "\"");
		return;
	}
}

function $hilight_button(bindex)
{
	var b = $button(bindex);
	if (b == null)
	{
		alert("Unable to activate button \"" + bindex + "\"");
		return;
	}
	eval("var $former_selected = " + $btn_var_name__ + "G['" + b.groupid + "']");
	eval($btn_var_name__ + "G['" + b.groupid + "'] = \"" + b.getAttribute("name") + "\"");
	if ($former_selected!="")
	{
		var $former_btn = $button($former_selected);
		eval("$former_btn.src = " + $btn_var_name__ + "0['" + $former_selected + "'].src"); 
	}
	eval("b.src = " + $btn_var_name__ + "2['" + b.getAttribute("name") + "'].src"); 
}

function $callback_button_onmouseover()
{
	eval("this.src = " + $btn_var_name__ + "1['" + this.getAttribute("name") + "'].src");
	if (this.callback_onmouseover!=null)
		eval(this.callback_onmouseover + "(this)");
}

function $callback_button_onmouseout()
{
	eval("var $btn_selected = " + $btn_var_name__ + "G['" + this.groupid + "']");
	if ($btn_selected == this.getAttribute("name"))
		eval("this.src = " + $btn_var_name__ + "2['" + this.getAttribute("name") + "'].src");
	else
		eval("this.src = " + $btn_var_name__ + "0['" + this.getAttribute("name") + "'].src");
	if (this.callback_onmouseout!=null)
		eval(this.callback_onmouseout + "(this)");
}

function $callback_button_onclick()
{
	eval("var $former_selected = " + $btn_var_name__ + "G['" + this.groupid + "']");
	eval($btn_var_name__ + "G['" + this.groupid + "'] = \"" + this.getAttribute("name") + "\"");
	if ($former_selected!="")
	{
		var $former_btn = $button($former_selected);
		eval("$former_btn.src = " + $btn_var_name__ + "0['" + $former_selected + "'].src"); 
	}
	eval("this.src = " + $btn_var_name__ + "2['" + this.getAttribute("name") + "'].src"); 
	if (this.callback_onclick!=null)
		eval(this.callback_onclick + "(this)");
}
