document.onmousemove=getMouseCoords;
var currX=0;
var currY=0;

function DivSetVisible(state, divName, holderID, left, top)
{
	//var DivRef = document.getElementById('testdiv1');
	var DivRef = document.getElementById(divName);
	var IfrRef = document.getElementById(holderID);
	//alert(divName);
	if(state)
	{
		DivRef.style.display = "block";
		IfrRef.style.width = DivRef.offsetWidth;
		IfrRef.style.height = DivRef.offsetHeight;
		IfrRef.style.top = top;
		IfrRef.style.left = left;
		IfrRef.style.zIndex = DivRef.style.zIndex - 1;
		IfrRef.style.display = "block";
		//alert(DivRef.style.zIndex - 1);
	}
	else
	{
		IfrRef.style.display = "none";
		DivRef.style.display = "none";
	}
}
function getMouseCoords(e)
{
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	//alert(event.y+sdown)
	if (e.pageX || e.pageY)
	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;
	}
	// posx and posy contain the mouse position relative to the document
	// Do something with this information
	//alert(posx+" / "+posy);
	//var rtnArr = new Array();
	currX = posx;
	currY = posy;
	//trace("X = "+currX+" | Y = "+currY);
	//return rtnArr;
}

function showObject( objID, message, holderID, inputWidth )
{
	/*var coordsArr = new Array();
	coordsArr[0] = currX;
	coordsArr[1] = currY;
	*/
	//alert(coordsArr[0]+" / "+coordsArr[1]);
	var showObj = document.getElementById(objID);
	showObj.style.visibility = "visible";
	/****************************************************************
		calculating X, Y coordinates for the tooltip.
		*/
		ScrollXY = getScrollXY();
		maxRight = (window.screen.width-40);
		maxBottom = (window.screen.height-300)+ScrollXY[1];
		objLeft = currX+5;
		objTop = currY+10;
		
		showObj.style.top = objTop;
		showObj.style.left = objLeft;
		//showObj.style.width = inputWidth;
		DivSetVisible(1, objID, holderID, objLeft, objTop);
		
		objRight = (objLeft + showObj.offsetWidth);
		objBottom = (objTop + showObj.offsetHeight);
		
		if(objRight > maxRight)
		{
			objLeft = (objLeft - (objRight - maxRight));
			showObj.style.top = objTop;
			showObj.style.left = objLeft;
			DivSetVisible(1, objID, holderID, objLeft, objTop);
		}
		//trace(objTop+"  ===  "+maxBottom);
		/*if(objBottom > maxBottom)
		{
			objTop = (objTop - (objBottom - maxBottom));
			//objTop = objTop - 50;
			//trace("objTop = "+objTop);
			showObj.style.top = objTop;
			showObj.style.left = objLeft;
			DivSetVisible(1, objID, holderID, objLeft, objTop);
		}*/
		//trace(" currX = "+currX+" | offsetWidth = "+showObj.offsetWidth+" | Right = "+objRight+" | Max = "+maxRight+"<br>Left = "+(objLeft - (objRight - maxRight)));
		/*
	****************************************************************/
	message = (typeof message != "undefined") ? message : "";
	//showObj.innerHTML = coordsArr[0]+" / "+coordsArr[1]+"<br>"+message;
	showObj.innerHTML = message;
}

function hideObject( objID, holderID )
{
	var hideObj = document.getElementById(objID);
	hideObj.style.visibility = "hidden";
	DivSetVisible(0, objID, holderID, 0, 0);
	return false;
}

function trace(traceMessage)
{
	var traceOutPut = document.getElementById('traceOutPut');
	traceOutPut.innerHTML += traceMessage+'<br>';
}
/*********************************************************************************************************************
	*/
	function getScrollXY() 
	{
		var scrOfX = 0, scrOfY = 0;
		if( typeof( window.pageYOffset ) == 'number' ) 
		{
			//Netscape compliant
			scrOfY = window.pageYOffset;
			scrOfX = window.pageXOffset;
		} 
		else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) 
		{
			//DOM compliant
			scrOfY = document.body.scrollTop;
			scrOfX = document.body.scrollLeft;
		} 
		else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) 
		{
			//IE6 standards compliant mode
			scrOfY = document.documentElement.scrollTop;
			scrOfX = document.documentElement.scrollLeft;
		}
		//trace(scrOfX+" == "+scrOfY );
		return [ scrOfX, scrOfY ];
	}
	/*
*********************************************************************************************************************/
