////////////////////////////////////////////////////////////
// PopTips
/*
Image w/ description tooltip- By Dynamic Web Coding (www.dyn-web.com)
Copyright 2002 by Sharon Paine
Visit http://www.dynamicdrive.com for this script
*/
////////////////////////////////////////////////////////////

// settings for tooltip 

var tipFollowMouse = true;	// Do you want tip to move when mouse moves over link?
var offX = 5;			// 5 how far (X) from mouse to show tip
var offY = 22;			// 22 how far (Y) from mouse to show tip

//var startStr = "<table xwidth='100%' cellspacing='0' cellpadding='2' border='0'><tr><td nowrap>";
//var endStr  = "</td></tr></table>";
var startStr = "";
var endStr  = "";

var dom = (document.getElementById) ? true : false;
var ns5 = ((navigator.userAgent.indexOf("Gecko")>-1) && dom) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ns4 = (document.layers && !dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ns4 && !ie4 && !ie5) ? true : false;

////////////////////////////////////////////////////////////
// Create new layer
// Help: http://www.faqts.com/knowledge_base/view.phtml/aid/1540/fid/128/lang/en

var oswindows = true
if (navigator.userAgent.toLowerCase().indexOf("mac")!=-1) oswindows = false
if (ns4) oswindows = false

var d=document

var html = "<div id='poptips' class='poptips' style=\"position:absolute; visibility:hidden; z-index:1000\"></div>";

if (oswindows) {
 //document.open()
 //document.write(html)
 d.write(html)
 //document.close()
//} else {
// d.body.insertAdjacentHTML('beforeEnd', html);
}	

////////////////////////////////////////////////////////////
// Setup/Rebuild the 'onLoad' event

//alert(navigator.userAgent.toLowerCase().indexOf("mac"))

if (oswindows) {
 if (window.onload) {
  var objonload = window.onload
  var tmp1 = objonload.toString()
  var tmp2 = tmp1.lastIndexOf("}")-1
  var tmp3 = tmp1.indexOf("{")+1

  //alert("==tmp2+tmp3==\n"+tmp2+"\n"+tmp3)
  tmp4 = tmp1.substring(tmp3,tmp2)
  tmp4+=";initTip()"

  //alert(tmp4)
  //window.onload = tmp3

  var InitNew = new Function(tmp4)

  //alert("==InitNew==\n"+InitNew)
  window.onload = InitNew
  //alert("==window.onload==\n"+window.onload)
 } else {
  window.onload = initTip
  //alert("==window.onload==\n"+window.onload)
 }
}

////////////////////////////////////////////////////////////

/*
// resize fix for ns4
var origWidth, origHeight;
if (ns4) {
	origWidth = window.innerWidth; origHeight = window.innerHeight;
	window.onresize = function() { if (window.innerWidth != origWidth || window.innerHeight != origHeight) history.go(0); }
}
*/

// avoid error of passing event object in older browsers
if (nodyn) { event = "nope" }

////////////////////////////////////////////////////////////
//  initTip	- initialization for tooltip.
//		Global variables for tooltip. 
//		Set styles for all but ns4. 
//		Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip, tipcss;

function initTip() {
	var d=document
	if (nodyn) return;
	tooltip = (ns4) ? d.poptips.document : (ie4) ? d.all['poptips'] : (ie5||ns5) ? d.getElementById('poptips'): null;
	tipcss = (ns4) ? d.poptips: tooltip.style;
	if (tooltip && tipFollowMouse) {
		if (ns4) d.captureEvents(Event.MOUSEMOVE);
		d.onmousemove = trackMouse;
	}
}

/////////////////////////////////////////////////
//  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 PopTips(data,evt) {
 if (oswindows) {
  if (data) {
	if (!tooltip) return;
	if (t1) clearTimeout(t1);	if (t2) clearTimeout(t2);
	tipOn = true;
	var tip = startStr+data+endStr;
	if (ns4) {
		tooltip.write(tip);
		tooltip.close();
	} else if (ie4||ie5||ns5) {
	 	tooltip.innerHTML = tip;
	}
	if (!tipFollowMouse) positionTip(evt);
	else t1=setTimeout("tipcss.visibility='visible'",100);
  } else {
 	if (!tooltip) return;
	t2=setTimeout("tipcss.visibility='hidden'",100);
	tipOn = false;
  }
 }
}

var mouseX, mouseY;

function trackMouse(evt) {
	mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
	mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.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) {
 if (oswindows) {
	if (!tipFollowMouse) {
		mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
		mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.scrollTop;
	}
	// tooltip width and height
	var tpWd = (ns4)? tooltip.width: (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
	var tpHt = (ns4)? tooltip.height: (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
	// document area in view (subtract scrollbar width for ns)
	var winWd = (ns4||ns5)? window.innerWidth-20+window.pageXOffset: document.body.clientWidth+document.body.scrollLeft;
	var winHt = (ns4||ns5)? window.innerHeight-20+window.pageYOffset: document.body.clientHeight+document.body.scrollTop;
	// check mouse position against tip and window dimensions
	// and position the tooltip 
	if ((mouseX+offX+tpWd)>winWd) 
		tipcss.left = (ns4)? mouseX-(tpWd+offX): mouseX-(tpWd+offX)+"px";
	else tipcss.left = (ns4)? mouseX+offX: mouseX+offX+"px";
	if ((mouseY+offY+tpHt)>winHt) 
		tipcss.top = (ns4)? winHt-(tpHt+offY): winHt-(tpHt+offY)+"px";
	else tipcss.top = (ns4)? mouseY+offY: mouseY+offY+"px";
	if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
 }
}
