window.onload = init;

function init() {
    if(window.Event) {
        document.captureEvents(Event.MOUSEMOVE);
    }
    document.onmousemove = onMouseMove;
}

var cursorX = 0;
var cursorY = 0;

function onMouseMove(e) {
    cursorX = (window.Event) ? e.pageX : event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
    cursorY = (window.Event) ? e.pageY : event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop   : document.body.scrollTop);
    // Move the tooltip with the mouse.
    var wToolTip = document.getElementById("tooltipObject").offsetWidth;
    var hToolTip = document.getElementById("tooltipObject").offsetHeight;
    var tooltipLeft = cursorX-wToolTip/2;
    var tooltipTop = cursorY+20;

    // Avoid it to go out of the window and create ugly scrollbars.
    // The 30 are only an arbitrary value for the size of the possible scrollbars.
    if(tooltipLeft + wToolTip > window.innerWidth-30) {
        tooltipLeft -= tooltipLeft + wToolTip - (window.innerWidth-30);
    }
    if(tooltipTop + hToolTip > window.innerHeight-30) {
        tooltipTop -= tooltipTop + hToolTip - (window.innerHeight-30);
    }

    document.getElementById("tooltipObject").style.left=tooltipLeft+'px';
    document.getElementById("tooltipObject").style.top=tooltipTop+'px';
}

var tooltipTimer = 0;

function hideTooltip()
{
    document.getElementById("tooltipObject").style.visibility="hidden";
    document.getElementById("tooltipObject").innerHTML="";
    clearTimeout(tooltipTimer);
}

function showTooltipNow(contents)
{
    var code = "<table class='tooltip' summary='*'>\n"
             + "    <tr class='tooltip'><td class='tooltip'>\n"
             + "        "+contents+"\n"
             + "    <\/td><\/tr>\n"
             + "<\/table>\n";
    var ttObj = document.getElementById("tooltipObject");

    ttObj.innerHTML=code;
    ttObj.style.left=cursorX-ttObj.offsetWidth/2+'px';
    ttObj.style.top=cursorY+20+'px';
    ttObj.style.visibility="visible";
}

function showTooltip(contents)
{
    tooltipTimer = setTimeout("showTooltipNow('"+contents+"')", 1000);
}
