var m_bOverToolTip = false;
var m_bOverToolTipElement = false;

function overToolTip()
{
	m_bOverToolTip = true;
	return false;
}

function outToolTip()
{
	m_bOverToolTip = false;
	hideToolTip();

	return false;
}

function overToolTipElement( element, text )
{
	m_bOverToolTipElement = true;
	
	var tooltip = document.getElementById( "tooltip" );
	tooltip.innerHTML = text;
	
	var pixelLeft = ( element.offsetWidth / 2 ) + 10;
	var pixelTop = element.offsetHeight / 2;
	
	while( element )
	{
		pixelLeft += element.offsetLeft;
		pixelTop += element.offsetTop;
		element = element.offsetParent;
	}
	
	tooltip.style.left = pixelLeft + "px";
	tooltip.style.top = pixelTop + "px";
	
	if ( tooltip.offsetWidth > 200 )
		tooltip.style.width = "200px";
		
	tooltip.style.display = "block";

	return false;
}

function outToolTipElement()
{
	m_bOverToolTipElement = false;	
	hideToolTip();

	return false;
}

/*
 * Introduce a slight delay, as mouseOver/mouseOut events
 * can arrive interleaved in the wrong order
 */
 
function hideToolTip()
{
	setTimeout( 'delayedHideToolTip();', 1 );
}

function delayedHideToolTip()
{
	if ( !m_bOverToolTip && !m_bOverToolTipElement )
	{
		var tooltip = document.getElementById( "tooltip" );
		tooltip.style.display = "none";
	}
}