
// Global variables
xMousePos = 0; // Horizontal position of the mouse on the screen
yMousePos = 0; // Vertical position of the mouse on the screen

function captureMousePosition(e) {
	viewport.getAll();
	xMousePos = e.clientX + viewport.scrollX + 10;
	yMousePos = e.clientY + viewport.scrollY - 25;	
	
	if (!mouseWasOverContentItem)
	{
	    HideToolTip(true);
	}	
	
	mouseWasOverContentItem = false;
}



var mouseWasOverContentItem;
var delayedToolTipTimeout;
var delayedToolTipHideTimeout;
var toolTipVisible = false;
var currentToolTipDetailsID;
var prevY = -1;
var prevX = -1;
var prevContentID;

function DelayedToolTip(contentID,fixedOffsetX,fixedOffsetY)
{   
	if (toolTipVisible || prevContentID == contentID)
	{
		toolTipVisible = true;
		Element.setOpacity($('tool-tip'),0.85);
		ToolTipMouseMove(contentID, false,fixedOffsetX,fixedOffsetY);
	}
	else
	{
		delayedToolTipTimeout = setTimeout('toolTipVisible = true;ToolTipMouseMove("' + contentID + '",false,' + fixedOffsetX + ',' + fixedOffsetY + ');Effect.Appear($(\'tool-tip\'));$(\'tool-tip\').style.visibility = "visible";',400);
	}
}

function ToolTipMouseMove(contentID, dontChangeArrowStyle,fixedOffsetX,fixedOffsetY)
{
    mouseWasOverContentItem = true;
	if ($(contentID) != null && toolTipVisible)
	{
		clearTimeout(delayedToolTipHideTimeout);
		
		currentToolTipDetailsID = contentID
		var toolTipContainer = $('tool-tip');
		if (toolTipContainer != null)
		{
			if (toolTipContainer.style.display != "block")
			{
				toolTipContainer.innerHTML = $(contentID).innerHTML;
			}
					
			if (fixedOffsetX && fixedOffsetX) {
			    toolTipContainer.style.top = yMousePos + fixedOffsetY +"px";
			    toolTipContainer.style.left = xMousePos + fixedOffsetX + "px";
			    $('tool-tip').className = "";
			}
			else {
			    var scrollX = viewport.scrollX;
		        var scrollY = viewport.scrollY;
		        var dimensions = Element.getDimensions(toolTipContainer);
		        var width = dimensions.width;
		        var height = dimensions.height;
    								
		        xMousePos -=5;
		        yMousePos -= 0;
    			
		        if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
		        {
		            xMousePos -= scrollX;
		            yMousePos -= scrollY;
		        }
    		    
		   
		        var moved = false;
		        var flippedY = false;
		        var flippedX = false;
		        if (viewport.width - (xMousePos - viewport.scrollX) - 5 < width)
		        {
			        xMousePos = xMousePos - width - 20;
			        flippedX = true;
		        }
		        if ((viewport.height - (yMousePos - viewport.scrollY) + 5) - 10 < height)
		        {
			        yMousePos = yMousePos - height - 25;
			        flippedY = true;
		        }
    			
		        if (flippedY || prevY == -1 || (prevY - yMousePos) < 70 || prevContentID != contentID)
		        {	
			        toolTipContainer.style.top = yMousePos +"px";
			        toolTipContainer.style.left = xMousePos + "px";
			        moved = true;
		        }
		    }
			
		    prevX = xMousePos;
		    prevY = yMousePos;		
		    prevContentID = contentID;	
			
		    if (!dontChangeArrowStyle && moved)
		    {
			    var currentArrowClassName = $('tool-tip').className;
			    if (flippedY && !flippedX)
			    {
				    if (currentArrowClassName != "tool-tip-bl")
				    {
					    $('tool-tip').className = "tool-tip-bl";
				    }
			    }
			    else if (!flippedY && flippedX)
			    {
				    if (currentArrowClassName != "tool-tip-tr")
				    {
					    $('tool-tip').className = "tool-tip-tr";
				    }
			    }
			    else if (flippedY && flippedX)
			    {
				    if (currentArrowClassName != "tool-tip-br")
				    {
					    $('tool-tip').className = "tool-tip-br";
				    }
			    }
			    else if (!flippedY && !flippedX)
			    {
				    if (currentArrowClassName != "tool-tip-tl")
				    {
					    $('tool-tip').className = "tool-tip-tl";
				    }
			    }
				
		    }
			
			
		}
		
	}
}



function HideToolTip(nofade)
{
	clearTimeout(delayedToolTipTimeout);

    if (toolTipVisible)
    {
    	
	    Element.setOpacity($('tool-tip'),0);
    	
	    $('tool-tip').style.top = "-2000px";
	    $('tool-tip').style.left = "-2000px";
	    toolTipVisible = false;
	 }
	
	
}

function ToolTipOverSelf(e)
{
	toolTipVisible = true;
	$('tool-tip').style.visibility = 'visible';	
	Element.setOpacity($('tool-tip'),0.85);
    captureMousePosition(e)
	ToolTipMouseMove(currentToolTipDetailsID,true);
	clearTimeout(delayedToolTipHideTimeout);	
}
