var cursoroffset = {left: 50, top: 50};
var screenmargin = {left: 50, top: 50};
var coords = {left: 0, top: 0};
var scrollcoords = {left: 0, top: 0};
var divpos = {top: 0, left: 0, width: 0, height: 0};
var screendim = {top: 0, left: 0, width: 0, height: 0};
var adjcoords = {top: 0, left: 0 };

function InitImageMouseOver()
{
	document.onmousemove = GetPageEventCoords;
}

function get(id)
{
	return document.getElementById(id);
}


function GetAdjustedScreenDimensions()
{
	if( typeof( window.innerWidth ) == 'number' ) 
	{
		//Non-IE
		screendim.width = window.innerWidth;
		screendim.height = window.innerHeight; 
	} 
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
	{
		//IE 6+ in 'standards compliant mode'
		screendim.width = document.documentElement.clientWidth;
		screendim.height = document.documentElement.clientHeight;
	} 
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
	{
		//IE 4 compatible
		screendim.width = document.body.clientWidth;
		screendim.height = document.body.clientHeight;
  	}

}


function GetScrollCoords()
{
	scrollcoords = {left: 0, top: 0};

	if(window.pageYOffset)
	{
		scrollcoords.top = window.pageYOffset;
	}
	else if(document.documentElement.scrollTop && document.documentElement.scrollTop > 0)
	{
		scrollcoords.top = document.documentElement.scrollTop;
	}
	else if(document.body.scrollTop)
	{
		scrollcoords.top = document.body.scrollTop;
	}
	
	if(window.pageXOffset)
	{
		scrollcoords.left = window.pageXOffset;
	}
	else if(document.documentElement.scrollLeft && document.documentElement.scrollLeft > 0)
	{
		scrollcoords.left = document.documentElement.scrollLeft;
	}
	else if(document.body.scrollLeft)
	{
		scrollcoords.left = document.body.scrollLeft;
	}

}

function GetPageEventCoords(evt)
{
	GetScrollCoords();
	GetAdjustedScreenDimensions();

	evt = (evt)?evt:((window.event)?event:null);

	if(evt)
	{

		if(evt.pageX)
		{
			coords.left = evt.pageX;
			coords.top = evt.pageY;
		}
		else if(evt.clientX)
		{

			coords.left = evt.clientX + document.body.scrollLeft - document.body.clientLeft;
			coords.top = evt.clientY + document.body.scrollTop - document.body.clientTop;

			if(document.body.parentElement && document.body.parentElement.clientLeft)
			{
				var parent = document.body.parentElement;
				coords.left += parent.scrollLeft - parent.clientLeft;
				coords.top += parent.scrollTop - parent.clientTop;
			
			}


		}
	
	}
	
	
	//writetostatus("adjcoords.left=" + adjcoords.left + ",adjcoords.top=" + adjcoords.top + ",x=" + coords.left + ",y=" + coords.top + ",scrollx=" + scrollcoords.left + ",scrolly=" + scrollcoords.top);

}


function writetostatus(input)
{
	window.status=input
	return true
}

function AssignPosition(id) 
{
	var oDiv = get(id);
	
	divpos.left = (coords.left + cursoroffset.left);
	divpos.top = (coords.top + cursoroffset.top);
	
	divpos.width = parseInt(oDiv.style.width);
	divpos.height = parseInt(oDiv.style.height);
	
	// calculate position - always go down - if top + height > screenH - adjust up 
	//					  	always go right - if left + width > screenW - adjust left
	
	
	adjcoords.left = ( coords.left - scrollcoords.left );
	adjcoords.top = ( coords.top - scrollcoords.top );
	
	var dX = (divpos.left - scrollcoords.left + divpos.width) - ( screendim.width - screenmargin.left );
	var dY = (divpos.top - scrollcoords.top + divpos.height) - ( screendim.height - screenmargin.top );

	
	if(dX > 0)
	{
		alert("overx=" + dX);
		divpos.left -= dX;
		
		while(coords.left > (divpos.left - 50) && coords.left < (divpos.left + divpos.width + 50))
		{
			divpos.left--;
				
		}
		
	}
	
	if(dY > 0)
	{
		alert("overy=" + dY);
		divpos.top -= dY;
	}
	

	// assign pos
	oDiv.style.top = divpos.top + "px";
	oDiv.style.left = divpos.left + "px"; 

	
}

function AssignPosition2(oDiv) 
{
	
	divpos.left = (coords.left + cursoroffset.left);
	divpos.top = (coords.top + cursoroffset.top);
	
	divpos.width = parseInt(oDiv.style.width);
	divpos.height = parseInt(oDiv.style.height);
	
	// calculate position - always go down - if top + height > screenH - adjust up 
	//					  	always go right - if left + width > screenW - adjust left
	
	
	adjcoords.left = ( coords.left - scrollcoords.left );
	adjcoords.top = ( coords.top - scrollcoords.top );
	
	var dX = (divpos.left - scrollcoords.left + divpos.width) - ( screendim.width - screenmargin.left );
	var dY = (divpos.top - scrollcoords.top + divpos.height) - ( screendim.height - screenmargin.top );
	
	if(dX > 0)
	{
		divpos.left -= dX;
		
		while(coords.left > (divpos.left - 50) && coords.left < (divpos.left + divpos.width + 50))
		{
			divpos.left--;
				
		}
	}
	
	if(dY > 0)
	{
		divpos.top -= dY;
	}
	
	// assign pos
	oDiv.style.top = divpos.top + "px";
	oDiv.style.left = divpos.left + "px"; 

	
}

function HideContent(id) 
{
	if(id.length < 1) 
		return;
		
	get(id).style.display = "none";
}

function ShowContent(id) 
{
	if(id.length < 1)
		return;
		
	var oDiv = get(id);
	AssignPosition2(oDiv);
	oDiv.style.display = "block";
}

function ReverseContentDisplay(id) 
{
	if(id.length < 1)
		return;
		
	var oDiv = get(id);
	AssignPosition2(oDiv);
	oDiv.style.display = (oDiv.style.display == "none")?oDiv.style.display = "block":oDiv.style.display = "none";

}
