﻿

var toolTipTimerLength = 70; // milliseconds
var toolTipTimer = null;
var lastToolTip = null;

function ToggleEAR_ToolTip(caller, index, action)
{
	var divEAR_ToolTip_Item = GetObject('divEAR_ToolTip' + index.toString());

	if (action == 0)
	{
		if (caller == null)
		{
			divEAR_ToolTip_Item.className = divEAR_ToolTip_Item.className.replace('show', 'hide');
			
			ToolTip_ClearTimeout();
		}
	}

	if (action == 1)
	{
		ToolTip_ClearTimeout();

		$("body").css('position', 'relative');
		var pos = $(caller).offset();

		// In this case, IE 7 uses a different offset parent than every other browser to calc the position
        // of the calling element.  This is used to make the adjustment
		var scrollHeightAdjust = $.browser.msie && parseInt($.browser.version, 10) == 7 ? caller.scrollHeight : 0;
		
		divEAR_ToolTip_Item.style.position = "absolute";
		divEAR_ToolTip_Item.style.left = pos.left + 30 + 'px';
		divEAR_ToolTip_Item.style.top = pos.top + scrollHeightAdjust - 285 + 'px';
		divEAR_ToolTip_Item.className = divEAR_ToolTip_Item.className.replace('hide', 'show');
		divEAR_ToolTip_Item.onmouseover = ToolTip_ClearTimeout;
		divEAR_ToolTip_Item.onmouseout = function() { ToolTip_SetTimeout(index); };
		
		caller.onmouseout = function() { ToolTip_SetTimeout(index); };

		if (lastToolTip != null && lastToolTip.id != divEAR_ToolTip_Item.id)
		{
			lastToolTip.className = lastToolTip.className.replace('show', 'hide');
		}
	}
	
	function ToolTip_SetTimeout(index)
	{
		toolTipTimer = setTimeout("ToggleEAR_ToolTip(null, " + index + ", 0)", toolTipTimerLength);
	}
	
	function ToolTip_ClearTimeout()
	{
		if (toolTipTimer != null)
		{
			clearTimeout(toolTipTimer);
		}
	}

	lastToolTip = divEAR_ToolTip_Item;

	return;
}


// --- HELPER METHODS --- //
function GetObject(obj)
{
    return ((typeof(obj) != 'object') ? document.getElementById(obj) : obj);
}

function findPos(obj) {
    var curleft = curtop = 0;
    if(obj.offsetParent) {
        do{
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    
    return [curleft,curtop];
}
