//
// QUOSA Information Manager
// Copyright © 2000-2008 QUOSA, Inc.
// All Rights Reserved.
//
function xButton(xButtonId, xNorPic, xHovPic, xPrePic, xDisPic) {
	var x = this; x.xObjId = xGetElementById(xButtonId); x.xOnClick = null;
	x.xNorPic = (xIsString(xNorPic) && xNorPic.length > 0) ? xNorPic : '';
	x.xHovPic = (xIsString(xHovPic) && xHovPic.length > 0) ? xHovPic : xNorPic;
	x.xPrePic = (xIsString(xPrePic) && xPrePic.length > 0) ? xPrePic : xHovPic;
	x.xDisPic = (xIsString(xDisPic) && xDisPic.length > 0) ? xDisPic : xNorPic;
	x.xEnabled = true; x.xHovered = false; x.xPressed = false;
	
	x.xOnMouseExMouseUp = function (x) {
		if (x.xEnabled && !x.xHovered) {
			x.xPressed = false; x.xSetCurrentPicture();
		}		
	};
	
	x.xSetCurrentPicture = function () {
		var xPicture = x.xNorPic;
		if (!x.xEnabled) xPicture = x.xDisPic;
		else if (x.xPressed) xPicture = (x.xHovered) ? x.xPrePic : x.xNorPic;
		else if (x.xHovered) xPicture = (x.xPressed) ? x.xPrePic : x.xHovPic;
		xSetImageSource(x.xObjId, xPicture);
	};
	
	x.xEnableControl = function (xEnabled) {
		x.xEnabled = (xEnabled) ? true : false;
		x.xSetCurrentPicture();
	};
	
	x.xObjId.onmouseover = function () {
		x.xHovered = true;
		x.xSetCurrentPicture();
	};
	
	x.xObjId.onmouseout  = function () {
		x.xHovered = false;
		x.xSetCurrentPicture();
	};
	
	x.xObjId.onmousedown = function (event) {
		var xEvent = xIsDefined(event) ? event : window.event;
		if (xEvent.button != 1) return ;
		x.xHovered = true; x.xPressed = true;
		x.xSetCurrentPicture();
	};
	
	x.xObjId.onmouseup   = function () {
		x.xHovered = true; x.xPressed = false;
		x.xSetCurrentPicture();
	};
	
	x.xObjId.onclick = function () {
		if (x.xEnabled && x.xOnClick) x.xOnClick();
	};
	
	x.xOnDisabledHandler = function (event) {
		var xEvent = xIsDefined(event) ? event : window.event;
		xEvent.returnValue = false;		
		return false;
	};

	xMouseEvents.xSubscribe(xMouseEvent_OnUp, x.xObjId.id, 
		function () { x.xOnMouseExMouseUp(x) } );	
	
	x.xObjId.ondragstart   = x.xOnDisabledHandler;
	x.xObjId.onselectstart = x.xOnDisabledHandler;
	x.xObjId.oncontextmenu = x.xOnDisabledHandler;
	x.xSetCurrentPicture();
};

function xCreateButton(xButtonId, xPrefix) {
	var x_button = new xButton(
		xGetElementById(xButtonId),
		'images/' + xPrefix + '_normal.gif',
		'images/' + xPrefix + '_hover.gif',
		'images/' + xPrefix + '_pressed.gif',
		'images/' + xPrefix + '_disabled.gif'
	);
	return x_button;
}
