/*dom_tooltip.jsDOM Tooltip by Chris Robertscolumcille@gmail.comhttp://www.musterion.net/*/// The following variables track page/mouse position, etcvar domTip_curPageX = 0;var domTip_curPageY = 0;var domTip_prevPosX = 0;var domTip_prevPosY = 0;var domTip_scrollPageY = 0;var domTip_viewPageX = 0;var domTip_viewPageY = 0;var domTip_viewScreenX = 0;var domTip_viewScreenY = 0;// Stores the tippy objectvar domTip_tipBox = "";var domTip_tipId = "";// Remaining variables should not be changed, they are used internally for// handling tooltip data// Settings for tracking fadein and fadeoutvar domTip_timer;var domTip_opacity = 0;// Do we fade in and out?var domTip_doFade = 1;window.document.onmousemove = domTip_trackMouse;function domTip_trackMouse(e){	var e = (e) ? e : ((event) ? event : null);		domTip_prevPosX = domTip_curPageX;	domTip_prevPosY = domTip_curPageY;		if (window.pageXOffset > 0) {		domTip_scrollPageX = window.pageXOffset	} else if (document.documentElement.scrollLeft > 0) {		domTip_scrollPageX = document.documentElement.scrollLeft	} else if (document.body.scrollLeft > 0) {		domTip_scrollPageX = document.body.scrollLeft	} else {		domTip_scrollPageX = 0;	}		if (window.pageYOffset > 0) {		domTip_scrollPageY = window.pageYOffset	} else if (document.documentElement.scrollTop > 0) {		domTip_scrollPageY = document.documentElement.scrollTop	} else if (document.body.scrollTop > 0) {		domTip_scrollPageY = document.body.scrollTop	} else {		domTip_scrollPageY = 0;	}		if (window.innerWidth > 0) {		domTip_viewScreenX = window.innerWidth	} else if (document.documentElement.clientWidth > 0) {		domTip_viewScreenX = document.documentElement.clientWidth	} else if (document.body.clientWidth > 0) {		domTip_viewScreenX = document.body.clientWidth	} else {		domTip_viewScreenX = 0;	}		if (window.innerHeight > 0) {		domTip_viewScreenY = window.innerHeight	} else if (document.documentElement.clientHeight > 0) {		domTip_viewScreenY = document.documentElement.clientHeight	} else if (document.body.clientHeight > 0) {		domTip_viewScreenY = document.body.clientHeight	} else {		domTip_viewScreenY = 0;	}		domTip_curPageX = e.clientX + domTip_scrollPageX;	domTip_curPageY = e.clientY + domTip_scrollPageY;	domTip_viewPageX = e.clientX;	domTip_viewPageY = e.clientY;}function domTip_clearTip(forced){	if (domTip_tipBox != "")	{		domTip_fadeout();	} else {		clearTimeout(domTip_timer);		domTip_tipId = "";	}}function domTip_removeTip(){	while (domTip_tipBox.childNodes.length > 0)	{		domTip_tipBox.removeChild(domTip_tipBox.childNodes[0]);	}		document.body.removeChild(domTip_tipBox);		domTip_widthOffset = 0;	domTip_heightOffset = 0;	domTip_tipBoxHeight = 0;	domTip_tipBoxWidth = 0;	domTip_opacity = 0;		domTip_tipBox = "";	domTip_tipId = "";		clearTimeout(domTip_timer);}// Create a new tooltip objectfunction domTip_newTip(domTip_newTipId, domTip_tipText, domTip_headerText, domTip_headerLink){	clearTimeout(domTip_timer);	domTip_timer = setTimeout("domTip_createTip(\'"+ domTip_newTipId +"\', \'"+ domTip_tipText +"\', \'"+ domTip_headerText +"\', \'"+ domTip_headerLink +"\')", 100);}function domTip_createTip(domTip_newTipId, domTip_tipText, domTip_headerText, domTip_headerLink){	if (domTip_tipBox != "")	{		domTip_removeTip();		domTip_tipId = domTip_newTipId;	}		domTip_tipBox = document.createElement("div");	domTip_tipBox.style.display = "none";	domTip_tipBox.style.visibility = "hidden";	domTip_tipBox.style.opacity = "0";	domTip_tipBox.style.filter = "alpha(opacity:0)";	domTip_tipBox.className = "domTip_Tip";	domTip_tipBox.id = "domTip_tipBox";	domTip_tipBox.style.position = "absolute";	domTip_tipBox.onmouseover = function() { domTip_freeze(); };	domTip_tipBox.onmouseout = function() { domTip_fadeout(); };		window.document.body.appendChild(domTip_tipBox);		domTip_initializeTip(domTip_tipText, domTip_headerText, domTip_headerLink);}function domTip_toolText(domTip_newTipId, domTip_tipText, domTip_headerText, domTip_headerLink){	if (domTip_tipId != domTip_newTipId)	{		domTip_tipId = domTip_newTipId;		domTip_newTip(domTip_tipId, domTip_tipText, domTip_headerText, domTip_headerLink);			} else {		domTip_freeze();	}}function domTip_initializeTip(domTip_tipText, domTip_headerText, domTip_headerLink){	domTip_tipBox.style.height = "auto";	// Build the tip header	var domTip_tipHead = document.createElement("div");	domTip_tipHead.className = "domTip_TipHeader";	domTip_tipHead.style.height = "auto";		domTip_tipHead.id = "domTip_TipHeader";		if (domTip_headerText != "")	{		var domTip_tipHeadText = document.createTextNode(domTip_headerText);		if (domTip_headerLink == undefined || domTip_headerLink == "")		{			domTip_tipHead.appendChild(domTip_tipHeadText);		} else {			var domTip_tipHeaderLink = document.createElement("a");			domTip_tipHeaderLink.setAttribute("href", domTip_headerLink);						domTip_tipHeaderLink.appendChild(domTip_tipHeadText);			domTip_tipHead.appendChild(domTip_tipHeaderLink);		}				domTip_tipBox.appendChild(domTip_tipHead);	}		var domTip_tipBody = document.createElement("div");	domTip_tipBody.className = "domTip_TipBody";	domTip_tipBody.style.height = "auto";			domTip_tipBody.id = "domTip_TipBody";		domTip_tipBody.innerHTML = domTip_tipText;	domTip_tipBox.appendChild(domTip_tipBody);	domTip_tipBox.style.visibility = "visible";	domTip_tipBox.style.display = "block";	domTip_moveTip();		domTip_fadein();		}function domTip_moveTip(){	var domTip_tipXloc = domTip_curPageX + 15;	var domTip_tipYloc = domTip_curPageY + 20;	var domTip_tipHeight = domTip_tipBox.offsetHeight;	var domTip_tipWidth = domTip_tipBox.offsetWidth;	// If the tooltip extends off the side, pull it over	// if (domTip_viewPageX + 20 + domTip_tipWidth > domTip_viewScreenX)	if (domTip_viewPageX + 20 + domTip_tipWidth > domTip_viewScreenX)	{		var domTip_pageXDiff = (domTip_viewPageX + 20 + domTip_tipWidth) - domTip_viewScreenX;		domTip_tipXloc -= domTip_pageXDiff;		// domTip_tipXloc -= (domTip_tipWidth + 20);	}	// If the tooltip will extend off the bottom of the screen, pull it back up.	if (domTip_viewPageY + 25 + domTip_tipHeight > domTip_viewScreenY)	{		var domTip_pageYDiff = (domTip_viewPageY + 25 + domTip_tipHeight - domTip_viewScreenY);		domTip_tipYloc -= domTip_pageYDiff;	}	// If the tooltip extends off the bottom and the top, line up the top of	// the tooltip with the top of the page	if (domTip_tipHeight > domTip_viewScreenY)	{		domTip_tipYloc = domTip_scrollPageY + 5;	}	domTip_tipBox.style.left = domTip_tipXloc + "px";	domTip_tipBox.style.top = domTip_tipYloc + "px";}function domTip_fadein(){	clearTimeout(domTip_timer);	if (domTip_doFade)	{		domTip_timer = setTimeout("domTip_incrOpacity()", 50);	} else {		domTip_opacity = 100;				domTip_tipBox.style.opacity = 100;		domTip_tipBox.style.filter = "alpha(opacity:100)";	}		domTip_tipBox.style.visibility = "visible";}function domTip_incrOpacity(){	if (domTip_tipBox != "")	{		domTip_opacity += 15;				domTip_tipBox.style.opacity = domTip_opacity/100;		domTip_tipBox.style.filter = "alpha(opacity:"+ domTip_opacity +")";				if (domTip_opacity < 100)		{			domTip_timer = setTimeout("domTip_incrOpacity()", 50);		}	}}function domTip_fadeout(){	clearTimeout(domTip_timer);	if (domTip_doFade)	{		domTip_timer = setTimeout("domTip_decrOpacity()", 300);	} else {		domTip_opacity = 100;				domTip_tipBox.style.opacity = 100;		domTip_tipBox.style.filter = "alpha(opacity:100)";				domTip_tipBox.style.visibility = "hidden";		domTip_removeTip();	}}function domTip_decrOpacity(){	if (domTip_tipBox != "")	{		domTip_opacity -= 15;				domTip_tipBox.style.opacity = domTip_opacity/100;		domTip_tipBox.style.filter = "alpha(opacity:"+ domTip_opacity +")";				if (domTip_opacity > 0)		{			domTip_timer = setTimeout("domTip_decrOpacity()", 50);		} else {			domTip_tipBox.style.visibility = "hidden";			domTip_removeTip();		}	}}function domTip_freeze(){	clearTimeout(domTip_timer);	domTip_fadein();}
