﻿var _tooltip_instance = null;
var tooltip_offset = 10;
var tooltip_event = null;

function setEvent(e)
{
    if (!e)
        var e = window.event;
    
    tooltip_event = e;
}

function GetLeftPosition(element)
{
    var left = 0;
    
    while (element != null && element.nodeName != "body")
    {
        left += element.offsetLeft;
        element = element.offsetParent;
    }
    
    return left;
}

function GetTopPosition(element)
{
    var top = 0;
    
    while (element != null && element.nodeName != "body")
    {
        top += element.offsetTop;
        element = element.offsetParent;
    }
    
    return top;
}

function showTooltipOffset(img, text, cssClass, offset)
{
	var posx = GetLeftPosition(img) + offset;
	var posy = GetTopPosition(img) + 20;
	
	_showTooltip(text, posx, posy, cssClass);
}

function showTooltip(img, text, cssClass)
{
    var e = tooltip_event;
    
	var posx = 0;
	var posy = 0;
	if (e.pageX || e.pageY)
	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	
	_showTooltip(text, posx, posy, cssClass);
}

function _showTooltip(text, posx, posy, cssClass)
{
    if (_tooltip_instance == null)
    {
        _tooltip_instance = document.createElement("div");
        document.body.appendChild(_tooltip_instance);
        
        _tooltip_instance.style.position = "absolute";
        _tooltip_instance.style.zIndex = 999;
    }
    
    if (cssClass)
        _tooltip_instance.className = cssClass;
    
    // show the div
    _tooltip_instance.innerHTML = text;
    _tooltip_instance.style.width = "350px";
    
    var docWidth = document.documentElement.clientWidth;
    if (docWidth == null || docWidth == 0)
        docWidth = document.body.clientWidth;
    
    var left = posx + tooltip_offset;
    if (posx + tooltip_offset + 350 > docWidth)
        left = docWidth - (tooltip_offset + 360);
    
    _tooltip_instance.style.left = left + "px";
    _tooltip_instance.style.top = (posy + tooltip_offset) + "px";
    _tooltip_instance.style.display = "block";
}

function hideTooltip()
{
    if (_tooltip_instance)
        _tooltip_instance.style.display = "none";
        
}

// Coded by David Wulff.