///////////////////////////////////////////////////////////////////////
//     This Tooltip was designed by Erik Arvidsson for WebFX         //
//                                                                   //
//     For more info and examples see: http://www.eae.net/webfx/     //
//     or send mail to erik@eae.net                                  //
//                                                                   //
//     Feel free to use this code as lomg as this disclaimer is      //
//     intact.                                                       //
///////////////////////////////////////////////////////////////////////

var delayTime = 0;
var showTime = 50000;

var tooltipDefaultStyle = "position: absolute; z-index: 9999; visibility: hidden";
//var tooltipStart = "<table id=\"internalTooltipSpan\" cellspacing=0 cellpadding=0 style=\"" + tooltipDefaultStyle + "\"><tr><td>";
//var tooltipEnd   = "</td></tr></table>";

var tooltipStart = "<table id=\"internalTooltipSpan\" cellspacing=0 cellpadding=0 width=180  height=70 style=\"" + tooltipDefaultStyle + "\"><tr><td width=4 height=19><IMG SRC=/images/tooltip/tooltiplefttop.gif></td><td align=center background=/images/tooltip/tooltiptop.gif width=98%>&nbsp;<IMG SRC=/images/tooltip/tooltiptoptext.gif>&nbsp;</td><td width=4 height=19><IMG SRC=/images/tooltip/tooltiprighttop.gif></td></tr><tr><td align=left colspan=3 bgcolor=white style=\"border-left:solid black 1px; Border-Right: Solid black 1px;Padding: 15px;Text-align:Center\">";
var tooltipEnd   = "</td></tr><tr><td width=4 height=12><IMG SRC=/images/tooltip/tooltipleftbottom.gif></td><td align=center background=/images/tooltip/tooltipbottom.gif width=98%><IMG SRC=/images/tooltip/tooltipbottomtext.gif></td><td width=4 height=12><IMG SRC=/images/tooltip/tooltiprightbottom.gif></td></table>";

var showTimeout;
var hideTimeout;
var shown = false;
var x;
var y;

function getReal(el) {
	temp = el;

	while ((temp != null) && (temp.tagName != "BODY")) {
		if (temp.getAttribute("tooltip")) {
			el = temp;
			return el;
		}
		temp = temp.parentElement;
	}
	return el;
}

function document.onmousemove() {
	x = window.event.x;
	y = window.event.y;
}

function document.onmouseover() {
	fromEl = getReal(event.fromElement);
	toEl = getReal(event.toElement);
	if ((toEl.getAttribute("tooltip")) && (toEl != fromEl)) {
		showTimeout = window.setTimeout("displayTooltip(toEl)", delayTime);
	}
}

function document.onmouseout() {
	fromEl = getReal(event.fromElement);
	toEl = getReal(event.toElement);
	if ((fromEl.getAttribute("tooltip")) && (toEl != fromEl)) {
		window.clearTimeout(showTimeout);
		hideTooltip();
	}
}

function displayTooltip(el) {
	if (!document.all.internalTooltipSpan) {
		document.body.insertAdjacentHTML("BeforeEnd", tooltipStart + el.getAttribute("tooltip") + tooltipEnd);
	}
	else {
		internalTooltipSpan.outerHTML = tooltipStart + el.getAttribute("tooltip") + tooltipEnd;
	}
	var toolStyle = el.getAttribute("tooltipstyle");
	if (toolStyle != null) {
		internalTooltipSpan.style.cssText = tooltipDefaultStyle + toolStyle;
	}
	internalTooltipSpan.style.left = x - 3;  //This is placed for the hand cursor :-(
	internalTooltipSpan.style.top = y + 20;
	
	dir = getDirection();	//This also fixes the position if the tooltip is outside the window.

	if (typeof(swipe) == "function")
		window.setTimeout("swipe(internalTooltipSpan, dir);",1);	// The span must be rendered before
	else
		internalTooltipSpan.style.visibility = "visible";

	shown = true;
	hideTimeout = window.setTimeout("hideTooltip()", showTime);
}

function hideTooltip() {
	if (shown) {
		window.clearTimeout(hideTimeout);
		internalTooltipSpan.style.visibility = "hidden";
		shown = false;
	}
}

function getDirection() {
	var pageWidth, pageHeight, scrollTop;
  	pageHeight    = document.body.clientHeight;
		pageWidth     = document.body.clientWidth;
	
  	toolTipTop    = internalTooltipSpan.style.pixelTop;
  	toolTipLeft   = internalTooltipSpan.style.pixelLeft;
	
  	toolTipHeight = internalTooltipSpan.offsetHeight;
		toolTipWidth  = internalTooltipSpan.offsetWidth;
	
  	scrollTop     = document.body.scrollTop;
		scrollLeft    = document.body.scrollLeft;
    
		if (toolTipWidth > pageWidth)
			internalTooltipSpan.style.left = scrollLeft;
		else if (toolTipLeft + toolTipWidth - scrollLeft > pageWidth)
			internalTooltipSpan.style.left = pageWidth - toolTipWidth + scrollLeft;
    if(toolTipHeight + y + scrollTop + 20 > pageHeight + scrollTop){
        internalTooltipSpan.style.top = y + scrollTop - toolTipHeight - 22
        return 8;
    }else{
      internalTooltipSpan.style.top = y + scrollTop  + 22
  		return 8;
    }
		
		return 2;
}
