/* Acme Profiling Technology (APT™) ©2001-2004 Acme Express, Inc. All rights reserved. */
/**********************************************
 * Highlight Elements
 **********************************************/
function btnHighlightByTag(evt, strTag)
{
	var vEvent, vButton;

	if (is_ie)
	{
		var objEvent	= window.event;
		vEvent			= objEvent.type;
		vButton			= objEvent.srcElement;
	}
	else
	{
		if (is_nav6up)
		{
			vEvent		= evt.type;
			vButton		= evt.target;
		}
		else
			return;		// browser does not support highlighting capability
	}

	while(vButton.tagName != strTag.toUpperCase())
	{
		vButton			= vButton.parentElement;
	}
	btnHighlightProcess(vButton, vEvent);
}

/**********************************************
 * Highlight Elements
 **********************************************/
function btnHighlight(evt)
{
	var vEvent, vButton;

	if (is_ie)
	{
		var objEvent	= window.event;
		vEvent			= objEvent.type;
		vButton			= objEvent.srcElement;
	}
	else
	{
		if (is_nav6up)
		{
			vEvent		= evt.type;
			vButton		= evt.target;
		}
		else
			return;		// browser does not support highlighting capability
	}
	btnHighlightProcess(vButton, vEvent);
}

/**********************************************
 * Process the highlight request
 **********************************************/
function btnHighlightProcess(vButton, vEvent, vExclude, vRemove, vAdd)
{
	if (vButton != null)
	{
		if (vEvent == null)
			vEvent		= '';
		var strEvent	= vEvent.toLowerCase();

		if (vExclude == null)
			vExclude	= '';
		if (vRemove == null)
			vRemove		= '';
		if (vAdd == null)
			vAdd		= '';

		if (vButton.disabled)
		{
			vButton.className		 	= getButtonClassName(vButton, 'Disabled', vExclude, vRemove, vAdd);
			vButton.style.cursor		= 'default';
		}
		else
		{
			if ((strEvent == 'mouseover') || (strEvent == 'mouseenter'))
			{
				vButton.className		= getButtonClassName(vButton, 'MouseOver', vExclude, vRemove, vAdd);
				vButton.style.cursor	= getButtonCursor();
			}
			if (strEvent == 'mousedown')
			{
				vButton.className		= getButtonClassName(vButton, 'MouseDown', vExclude, vRemove, vAdd);
				vButton.style.cursor	= getButtonCursor();
			}
			if (strEvent == 'mouseup')
			{
				vButton.className		= getButtonClassName(vButton, 'MouseOver', vExclude, vRemove, vAdd);
				vButton.style.cursor	= getButtonCursor();
			}
			if ((strEvent == 'mouseout') || (strEvent == 'mouseleave'))
			{
				vButton.className		= getButtonClassName(vButton, '', vExclude, vRemove, vAdd);
				vButton.style.cursor	= getButtonCursor();
			}
			if (strEvent == '')
			{
				vButton.className		= getButtonClassName(vButton, '', vExclude, vRemove, vAdd);
				vButton.style.cursor	= getButtonCursor();
			}
		}
	}
	for (var i=0; i < vButton.childNodes.length; i++)
	{
		var vChild						= vButton.childNodes[i];
		if (vChild.style != null)
			btnHighlightProcess(vChild, strEvent, vExclude, vRemove, vAdd)
	}
}

/**********************************************
 * Enable Elements
 **********************************************/
function btnSetEnable(vButton, bEnable)
{
	if (vButton != null)
	{
		vButton.disabled		= !bEnable;
		if (is_ie || is_nav6up)
			btnHighlightProcess(vButton);
	}
}

/**********************************************
 * Get button cursor type
 **********************************************/
function getButtonCursor()
{
	if (is_ie)		return 'hand';
	if (is_nav6up)	return 'pointer';
					return 'default';
}

/**********************************************
 * get updated element class name(s)
 **********************************************/
function getButtonClassName(vButton, vClassSuffix, vExclude, vRemove, vAdd)
{
	var i, j;
	var vClass				= '';
	var vInputClass			= '';
	var aSuffix				= ['Disabled', 'Click', 'MouseOver', 'MouseDown'];
	var bExclude			= false;
	var aBaseClass			= new Array();

	if (vButton != null)
	{
		if (vClassSuffix == null)
			vClassSuffix	= '';
		if (vExclude == null)
			vExclude		= '';
		if (vRemove == null)
			vRemove			= '';
		if (vAdd == null)
			vAdd			= '';

		vClass				= vButton.className;
		if (typeof(vClass) == 'undefined')
			vClass			= '';
		vInputClass			= vClass;
		aClass				= vClass.split(' ');
		aBaseClass			= new Array();

		for (i=0; i < aClass.length; i++)
		{
			// eliminate excluded, removed, and added class names
			if ((aClass[i].toLowerCase() == vExclude.toLowerCase()) ||
				(vRemove.length > 0 && aClass[i].substr(0, vRemove.length).toLowerCase() == vRemove.toLowerCase()) ||
				(aClass[i].toLowerCase() == vAdd.toLowerCase()))
			{
				// if this is the exluded class, flag it
				if (aClass[i].toLowerCase() == vExclude.toLowerCase())
					bExclude			= true;
			}
			else
			{
				for (j=0; j < aSuffix.length; j++)
				{
					var vPos			= aClass[i].length - aSuffix[j].length;
					if (vPos > -1)
					{
						if (aClass[i].substr(vPos).toLowerCase() == aSuffix[j].toLowerCase())
							aClass[i]	= aClass[i].substr(0, vPos);
					}
				}
				if (aClass[i].length > 0)
				{
					var bFound		= false;
					for (j=0; j < aBaseClass.length; j++)
					{
						if (aClass[i] == aBaseClass[j])
						{
							bFound	= true;
							break;
						}
					}
					if (!bFound)
					{
						j				= aBaseClass.length;
						aBaseClass[j]	= aClass[i];
					}
				}
			}
		}

		// add new class suffix
		if (vClassSuffix.length > 0)
		{
			aClass					= new Array()
			for (i=0; i < aBaseClass.length; i++)
			{
				if (aBaseClass[i].length > 0)
				{
					j				= aClass.length;
					aClass[j]		= aBaseClass[i];

					j				= aClass.length;
					aClass[j]		= aBaseClass[i] + vClassSuffix;
				}
			}
		}
		else
			aClass					= aBaseClass;

		if (vExclude.length > 0 && bExclude)
		{
			i						= aClass.length;
			aClass[i]				= vExclude;
		}
		vClass						= aClass.join(' ');

		if (vAdd.length > 0)
		{
			vClass					= vAdd + ' ' + vClass;
		}
	}
	return vClass;
}

/**********************************************
 * ButtonBar MouseOver
 **********************************************/
function buttonBar_MouseOver(eButton)
{
	eButton.className = getButtonClassName(eButton, 'MouseOver');
}

/**********************************************
 * ButtonBar MouseOut
 **********************************************/
function buttonBar_MouseOut(eButton)
{
	eButton.className = getButtonClassName(eButton, '');
}

/**********************************************
 * ButtonBar MouseDown
 **********************************************/
function buttonBar_MouseDown(eButton)
{
	eButton.className = getButtonClassName(eButton, 'MouseDown');
}

/**********************************************
 * ButtonBar MouseUp
 **********************************************/
function buttonBar_MouseUp(eButton)
{
	eButton.className = getButtonClassName(eButton, 'MouseOver');
}

/**********************************************
 * ButtonBar set Enable
 **********************************************/
function buttonBar_setEnable(eButton, bEnable)
{
	if (bEnable)
		buttonBar_Enable(eButton);
	else
		buttonBar_Disable(eButton);
}

/**********************************************
 * ButtonBar Disable
 **********************************************/
function buttonBar_Disable(eButton)
{
	eButton.disabled	= true;
	eButton.className 	= getButtonClassName(eButton, 'Disabled', '', '', '');
	var eImg			= document.getElementById('img_' + eButton.id);
	var eImgDisabled	= document.getElementById('imgDisabled_' + eButton.id);

	if (eImg != null && eImgDisabled != null)
	{
		eImg.style.display			= 'none';
		eImgDisabled.style.display	= 'block';
	}
}

/**********************************************
 * ButtonBar Enable
 **********************************************/
function buttonBar_Enable(eButton)
{
	eButton.disabled	= false;
	eButton.className 	= getButtonClassName(eButton, '', '', '', '');
	var eImg			= document.getElementById('img_' + eButton.id);
	var eImgDisabled	= document.getElementById('imgDisabled_' + eButton.id);

	if (eImg != null && eImgDisabled != null)
	{
		eImgDisabled.style.display	= 'none';
		eImg.style.display			= 'block';
	}
}
