/*

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 arrayFind(arrayToSearch,valueToFind,ignoreCase)
   	{
	
   		for(var index = 0; index <  arrayToSearch.length; index++)
			{
				var valueToMatch = new RegExp("^" + arrayToSearch[index] + "$", ignoreCase? "i": "");
				
				if(valueToMatch.test(valueToFind))
					{
						
						return index;
						
					}

			}
			
		return -1;
			
   	}

	
function getSelectedValues(selectObj)
   	{
   		
		var myTempArray = new Array();
		
		for(var index = 0; index <  selectObj.length; index++)
			{
				
				if(selectObj.options[index].selected)
					{
					
						myTempArray.push(selectObj.options[index].value);
						
					}

			}
		
		return myTempArray;
			
   	}