var EXT_OUT = "OUT";
var EXT_OVER = "OVR";
var EXT_GREY = "GRY";

var EXT_CLICK = "CLK";
var CLICK_DELAY = 75; //ms

function ClickButton(id, action, disabled)
{
	var action = (action == null) ? "" : action;
	var disabled = (disabled) ? true : false;
	var object = document.getElementById(id);
	if(object != null)
	{
		var src = new String(object.src);
		var baseSrc = "";
		if(src.lastIndexOf(EXT_OUT) > -1)
		{
			baseSrc = src.substring(0, src.lastIndexOf(EXT_OUT));
		}
		else if(src.lastIndexOf(EXT_OVER) > -1)
		{
			baseSrc = src.substring(0, src.lastIndexOf(EXT_OVER));
		}
		else if(src.lastIndexOf(EXT_CLICK) > -1)
		{
			baseSrc = src.substring(0, src.lastIndexOf(EXT_CLICK));
		}
		else if(src.lastIndexOf(EXT_GREY) > -1)
		{
			baseSrc = src.substring(0, src.lastIndexOf(EXT_GREY));
		}
		var extension = src.substring(src.lastIndexOf("."), src.length);

		if(baseSrc == "") alert("[" + src + "] The source does not apply to the button format.");
		
		if(disabled)
		{
			object.src = baseSrc + EXT_GREY + extension;
		}

		object.onmouseover = function()
		{
			if(!disabled)
			{
				object.src = baseSrc + EXT_OVER + extension;
				object.style.cursor = "pointer";
			}
		}
	
		object.onmouseout = function()
		{
			if(!disabled)
			{
				object.src = baseSrc + EXT_OUT + extension;
			}
		}
		
		object.onclick = function()
		{
			if(action != "" && !disabled)
			{
				object.src = baseSrc + EXT_CLICK + extension;
				window.setTimeout(action, CLICK_DELAY);
			}
		}
	}
	
	this.enable = function()
	{
		if(object != null)
		{
			disabled = false;
			object.src = baseSrc + EXT_OUT + extension;
		}
	}

	this.disable = function()
	{
		if(object != null)
		{
			disabled = true;
			object.src = baseSrc + EXT_GREY + extension;
		}
	}
}

function PlainButton(id, action, disabled)
{
	var action = (action == null) ? "" : action;
	var disabled = (disabled) ? true : false;
	var object = document.getElementById(id);
	
	if(object != null)
	{
		var src = new String(object.src);
		var baseSrc = "";
		if(src.lastIndexOf(EXT_OUT) > -1)
		{
			baseSrc = src.substring(0, src.lastIndexOf(EXT_OUT));
		}
		else if(src.lastIndexOf(EXT_OVER) > -1)
		{
			baseSrc = src.substring(0, src.lastIndexOf(EXT_OVER));
		}
		else if(src.lastIndexOf(EXT_GREY) > -1)
		{
			baseSrc = src.substring(0, src.lastIndexOf(EXT_GREY));
		}
		var extension = src.substring(src.lastIndexOf("."), src.length);

		if(baseSrc == "") alert("[" + src + "] The source does not apply to the button format.");
		
		if(disabled)
		{
			object.src = baseSrc + EXT_GREY + extension;
		}

		object.onmouseover = function()
		{
			if(!disabled)
			{
				object.src = baseSrc + EXT_OVER + extension;
				object.style.cursor = "pointer";
			}
		}
	
		object.onmouseout = function()
		{
			if(!disabled)
			{
				object.src = baseSrc + EXT_OUT + extension;
			}
		}
		
		object.onclick = function()
		{
			if(action != "" && !disabled)
			{
				eval(action);
			}
		}
	}
	
	this.enable = function()
	{
		if(object != null)
		{
			disabled = false;
			object.src = baseSrc + EXT_OUT + extension;
		}
	}

	this.disable = function()
	{
		if(object != null)
		{
			disabled = true;
			object.src = baseSrc + EXT_GREY + extension;
		}
	}
}

