function disable(id)
{
	var elem = getObject(id);
	if(elem)
		elem.disabled = true;
}

/*
	Locates a document object of the provided id and returns the object
	layers, document.all and getElementById compatible
*/
function getObject(objIdentifier)
{

	var myObj = null;  

	if(document.layers)
	{

		myObj = eval("document."+ objIdentifier);
		if(!myObj)
		{
		   for(var index=0;index<document.layers.length;index++)
		   {
				if(eval("document." + document.layers[index].id) && eval("document." + document.layers[index].id + ".document."+ objIdentifier))
				{
					myObj = eval("document." + document.layers[index].id + ".document."+ objIdentifier);
					break;
				}            
		   }
		}

	}

	else if (document.getElementById)
	{
		myObj = eval("document.getElementById('" + objIdentifier + "')");
	}

	else
	{
		myObj = eval("document.all['" + objIdentifier + "']");
	}

	return myObj;           
}


function setPosition(objToPosition, coordSourceObj, adjustX, adjustY)
	{
		
		if(!coordSourceObj)
			coordSourceObj = objToPosition;
			
		if(!adjustX)
			adjustX = 0;
			
		if(!adjustY)
			adjustY = 0;
			
			
		var nx = coordSourceObj.offsetLeft;
		var parentElement = coordSourceObj.offsetParent;
	
		while(parentElement){
			nx += parentElement.offsetLeft;
			parentElement = parentElement.offsetParent;
		}
		
		var ny = coordSourceObj.offsetTop;
		var parentElement = coordSourceObj.offsetParent;
	
		while(parentElement){
			ny += parentElement.offsetTop;
			parentElement = parentElement.offsetParent;
		}
	
		objToPosition.style["left"] = (nx + adjustX) + "px";
		objToPosition.style["top"] = (ny + adjustY) + "px";
		
	}
	
	
function sleep(milliSeconds)
	{
	
		var clock = new Date();
		var endTime = new Date();
		
		endTime.setMilliseconds(clock.getMilliseconds() + milliSeconds);				
		
		while(clock < endTime)
			{
				clock = new Date();
			}
	
	}
	
	
function trim(str)
	{
		str = str.replace(/^ */, "");
		str = str.replace(/ *$/, "");
		return str;
	}
	
	
function toggleToolTipDisplay(controlObj,toolTipID)
	{
	
		divObj = getObject(toolTipID);
		
		if(controlObj)
			setPosition(divObj,controlObj,0,10);
		
		divObj.style.display = divObj.style.display == "block"? "none": "block";
		
	}


function moneyFormat(value,currencySymbol) 
	{
		
		if(!currencySymbol)
			currencySymbol = "$";
			
		var result = Math.floor(value)+".";
		
		var cents = 100*(value-Math.floor(value))+0.5;
		
		result += Math.floor(cents/10);
		result += Math.floor(cents%10);
		
		result = currencySymbol + result.toString();
		
		return result;
		
	}
	
function show(id)
{
    var elem = document.getElementById(id);
    if(elem)
        elem.className = "onstate";
    else
        error("Invalid ID passed to show(). Invalid ID: " + id);
}

function hide(id)
{
    var elem = document.getElementById(id);
    if(elem)
        elem.className = "offstate";
    else
        error("Invalid ID passed to hide(). Invalid ID: " + id);
}


function showElem(elem)
{
    if(elem)
        elem.className = "onstate";
    else
        error("Invalid Element passed to showElem()");
}
 

function hideElem(elem)
{
    if(elem)
        elem.className = "offstate";
    else
        error("Invalid Element passed to hideElem()");
}

function isShowing(id)
{
	var elem = document.getElementById(id);
    if(elem)
    {
		if(elem.className == "onstate")
			return true;
	}
	else
        error("Invalid ID passed to hide(). Invalid ID: " + id);
	
	return false;
}

function toggle(id)
{
    var elem = document.getElementById(id);
    if(elem)
    {
        if(elem.className == "offstate")
            elem.className = "onstate";
        else
            elem.className = "offstate";
    }
    else
        error("Invalid ID passed to toggle(). Invalid ID: " + id);
}

function error(error)
{
    alert("JScript Error in util.js: " + error);
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
