var offsetfromcursorX = 12; 
var offsetfromcursorY = 20; 
var offsetdivfrompointerX = 10; 
var offsetdivfrompointerY = 14; 
var ie = document.all;
var ns6 = document.getElementById && !document.all;
var enabletip = false;
var objSel;
var objDiv;
var objPointer;

document.onmousemove = positiontip

function ietruebody(){
   return (document.compatMode && document.compatMode!='BackCompat')? document.documentElement : document.body;
}

function ddrivetip(thetext, thewidth, theClass){
   if (ns6||ie){
      objDiv = 'div_' + theClass
      objPointer = 'pointer_' + theClass
      var tipobj = document.getElementById(objDiv);
      var pointerobj = document.getElementById(objPointer);
      if (tipobj){
         for (var i = 0; i <= 100; i++) {          
            if (document.getElementById('Sel' + i)){         
               objSel = document.getElementById('Sel' + i); 
               objSel.style.visibility = 'hidden';
            }
         }
         if (thewidth > 0) {
            tipobj.style.width = thewidth + 'px'            
            tipobj.style.whiteSpace = '';
         }else{            
            tipobj.style.width = 'auto';            
            tipobj.style.whiteSpace = 'nowrap';
         }
         tipobj.innerHTML = thetext;
         enabletip = true;
         return false;
      }
   }
}

function hideddrivetip(){
   if (ns6||ie){
      var tipobj = document.getElementById(objDiv);
      var pointerobj = document.getElementById(objPointer);
      if (tipobj){
         for (var i = 0; i <= 100; i++) {    
            if (document.getElementById('Sel' + i)){         
               objSel = document.getElementById('Sel' + i); 
               objSel.style.visibility = 'visible';
            }
         }
         enabletip=false;
         tipobj.style.visibility = 'hidden';
         pointerobj.style.visibility = 'hidden';         
      }
   }
}

function positiontip(e){
   if (ns6||ie){
      var tipobj = document.getElementById(objDiv);
      var pointerobj = document.getElementById(objPointer);
   }
   if (tipobj){
      if (enabletip){
         var nondefaultpos = false;
         var curX = (ns6)?e.pageX : event.x + ietruebody().scrollLeft;
         var curY = (ns6)?e.pageY : event.y + ietruebody().scrollTop;      
         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 (rightedge < tipobj.offsetWidth){      
            tipobj.style.left = curX-tipobj.offsetWidth+'px';
            nondefaultpos = true;
         }
         else if (curX < leftedge)
            tipobj.style.left = '5px';
         else{         
            tipobj.style.left = curX + offsetfromcursorX - offsetdivfrompointerX + 'px';
            pointerobj.style.left = curX+offsetfromcursorX+'px';
         }      
         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';
      }
   }
}