/***********************************************
* Image w/ description tooltip- By Dynamic Web Coding (www.dyn-web.com)
* Copyright 2002-2007 by Sharon Paine
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

/* IMPORTANT: Put script after tooltip div or 
    put tooltip div just before </BODY>. */

var dom = (document.getElementById) ? true : false;
var ns5 = (!document.all && dom || window.opera) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ie4 && !ie5 && !dom) ? true : false;

// avoid error of passing event object in older browsers
if (nodyn) { event = "nope"; }

var offX= 20;
var offY= 12; 

////////////////////////////////////////////////////////////
//  initTip - initialization for tooltip.
//    Global variables for tooltip. 
//    Set styles
//    Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip;//, tipcss;
var initialized = false;
function initTip() {
   if (initialized === true) { return; }
   if (nodyn) { return; }
   initialized = true;
   tooltip = (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
//   tipcss = tooltip.style;
}

/////////////////////////////////////////////////
//  doTooltip function
//       Assembles content for tooltip and writes 
//       it to tipDiv
/////////////////////////////////////////////////
var t1,t2;  // for setTimeouts
var tipOn = false;   // check if over tooltip link

function doTooltip(lbl,msg) {
   initTip();
   if (!tooltip) { return; }
   fillTip(lbl, msg);
   if (t1) { clearTimeout(t1); }  
   if (t2) { clearTimeout(t2); }
   tipOn = true;
   t1=setTimeout("tooltip.style.visibility='visible'",100);
}
function fillTip(lbl, txt)
{
   if (!tooltip) { return; }
   var len = lbl.length;
   if (lbl.length < 40) { len = 40; }
   len = (len/10)*6;
   tooltip.style.width = len+"em";
   var guts = 
      '<div style="text-align:left;font-size:75%;">'+
      '  <div style="color:#F1F1D5;padding:1px;padding-left:3px;background-color:#007577">'+
           lbl+
      '  </div>'+
      '  <div style="text-align:left;background-color:#F1F1D5;padding:3px;color:#000000">'+
           txt+
      '  </div>'+
      '</div>';
   tooltip.innerHTML = guts;
}
//#004244

var mouseX, mouseY;
function trackMouse(evt) {
   standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body; //create reference to common "body" across doctypes
   mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
   mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
   if (tipOn) { positionTip(evt); }
}

/////////////////////////////////////////////////////////////
//  positionTip function
//    If tipFollowMouse set false, so trackMouse function
//    not being used, get position of mouseover event.
//    Calculations use mouseover event position, 
//    offset amounts and tooltip width to position
//    tooltip within window.
/////////////////////////////////////////////////////////////
function positionTip(evt) {
   initTip();
   positionObj(tooltip, offX, offY);
/*
   // tooltip width and height
   var tpWd = (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
   var tpHt = (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
   // document area in view (subtract scrollbar width for ns)
   var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: standardbody.clientWidth+standardbody.scrollLeft;
   var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: standardbody.clientHeight+standardbody.scrollTop;
   // check mouse position against tip and window dimensions
   // and position the tooltip 
   if ((mouseX+offX+tpWd)>winWd) { 
      tipcss.left = mouseX-(tpWd+offX)+"px";
   } else { tipcss.left = mouseX+offX+"px"; }
   if ((mouseY+offY+tpHt)>winHt) {
      tipcss.top = winHt-(tpHt+offY)+"px";
   } else { tipcss.top = mouseY+offY+"px"; }
*/
}

function positionObj(obj, setX, setY) {
   var tpWd = (ie4||ie5)? obj.clientWidth: obj.offsetWidth;
   var tpHt = (ie4||ie5)? obj.clientHeight: obj.offsetHeight;
   // document area in view (subtract scrollbar width for ns)
   var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: standardbody.clientWidth+standardbody.scrollLeft;
   var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: standardbody.clientHeight+standardbody.scrollTop;
   // check mouse position against tip and window dimensions
   // and position the tooltip 
   if ((mouseX+setX+tpWd)>winWd) { 
      obj.style.left = mouseX-(tpWd+setX)+"px";
   } else { obj.style.left = mouseX+setX+"px"; }
   if ((mouseY+setY+tpHt)>winHt) {
      obj.style.top = winHt-(tpHt+setY)+"px";
   } else { obj.style.top = mouseY+setY+"px"; }
}

function hideTip() {
   if (!tooltip) { return; }
   t2=setTimeout("tooltip.style.visibility='hidden'",100);
   tipOn = false;
}

document.onmousemove = trackMouse;
