﻿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)
{
        
        // Test for Firefox (reduce offset value by 75% - too extreme in Firefox RAS 14/08/08
        var agt=navigator.userAgent.toLowerCase();  //  for Safari bit
            //alert(offset);  //for testing
        if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) 
        {
             offset = ((offset * 3) / 4) ;  // Reduce offset value
        }   
        else if
        (agt.indexOf("safari") != -1) 
        {
            offset = ((offset * 3) / 4) ;  // Reduce offset value
        }

	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";
        
}

//  Full code example for browser detection:

//if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent))
//{ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
// var ffversion=new Number(RegExp.$1) // capture x.x portion and store as a number
// if (ffversion>=3)
//  document.write("You're using FF 3.x or above")
// else if (ffversion>=2)
//  document.write("You're using FF 2.x")
// else if (ffversion>=1)
//  document.write("You're using FF 1.x")
//}

//if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
//{ //test for MSIE x.x;
// var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
// if (ieversion>=8)
//  document.write("You're using IE8 or above")
// else if (ieversion>=7)
//  document.write("You're using IE7.x")
// else if (ieversion>=6)
//  document.write("You're using IE6.x")
// else if (ieversion>=5)
//  document.write("You're using IE5.x")
//}
//else
// document.write("n/a")
  

// Page coded by David Wulff.
