var curX=0;
var curY=0;

var offsetfromcursorX = 12; //Customize x offset of tooltip
var offsetfromcursorY = 10; //Customize y offset of tooltip

var offsetdivfrompointerX = 10; //Customize x offset of tooltip DIV relative to pointer image
var offsetdivfrompointerY = 14; //Customize y offset of tooltip DIV relative to pointer image. Tip: Set it to (height_of_pointer_image-1).

var ie = document.all;
var ns6 = document.getElementById && !document.all;
var enabletip = false;
var tipobj = "";
var pointerobj = "";
var pointerobj_src = "";

//---------------------------------------------------------

function ietruebody(){
    return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(theText, theWidth, theClass){
    if (ns6||ie) {
        if (typeof theWidth != "undefined" && !isNaN(parseInt(theWidth)) && parseInt(theWidth) > 0) {
            if (navigator.appName.indexOf("Explorer") > -1 && IE_Ver() < 7) tipobj.style.width = parseInt(theWidth) + "px";
            else  tipobj.style.maxWidth = parseInt(theWidth) + "px";
        }
        if (typeof theClass != "undefined" && theClass != '') {
            pointerobj_src = pointerobj.src;
            pointerobj.src = document.getElementById(theClass).src;
            tipobj.className = theClass;
        }
        if (typeof theText != "undefined" && theText != '') tipobj.innerHTML = theText;
        enabletip = true;
        return false;
    }
}

function positiontip(e){
curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
if (enabletip){
var nondefaultpos=false
//Find out how close the mouse is to the corner of the window
var winwidth=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth-20
var winheight=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight-20

var rightedge=ie&&!window.opera? winwidth-event.clientX-offsetfromcursorX : winwidth-e.clientX-offsetfromcursorX
var bottomedge=ie&&!window.opera? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY

var leftedge=(offsetfromcursorX<0)? offsetfromcursorX*(-1) : -1000

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth){
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=curX-tipobj.offsetWidth+"px"
nondefaultpos=true
}
else if (curX<leftedge)
tipobj.style.left="5px"
else{
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px"
pointerobj.style.left=curX+offsetfromcursorX+"px"
}

//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight){
tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px"
nondefaultpos=true
}
else{
tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px"
pointerobj.style.top=curY+offsetfromcursorY+"px"
}
tipobj.style.visibility="visible"
if (!nondefaultpos)
pointerobj.style.visibility="visible"
else
pointerobj.style.visibility="hidden"
}
}

function hideddrivetip(){
    if (ns6||ie){
        tipobj.style.width = "auto";
        tipobj.style.maxWidth = "none";
        tipobj.className = "dhtmltooltip";
        pointerobj.src = pointerobj_src;
        enabletip = false;
        tipobj.style.visibility = "hidden";
        pointerobj.style.visibility = "hidden";
        tipobj.style.left = "-999px";
        pointerobj.style.left = "-999px";
        tipobj.innerHTML = "";
    }
}

function initTooltip() {
    tipobj = document.all ? document.all["dhtmltooltip"] : document.getElementById ? document.getElementById("dhtmltooltip") : "";
    pointerobj = document.all ? document.all["dhtmlpointer"] : document.getElementById ? document.getElementById("dhtmlpointer") : "";
    pointerobj_src = pointerobj.src;
    document.onmousemove = positiontip;
}
