﻿/*
JavaScript made for and copyright of AZbb :: AZ Bulletin Board
http://www.azbb.org/

With help from:
Cool DHTML tooltip script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
*/

// x, y offsets
var xOffset = -60;
var yOffset = 20;
var ie = document.all;
var ns6 = document.getElementById && !document.all;
var enabletip = false;


if (ie || ns6)
{
	var tipobj = (document.all ? document.all['helptip'] : 
		(document.getElementById? document.getElementById('helptip') : ''));
}
 
function ietruebody()
{
	return (document.compatMode && document.compatMode != 'BackCompat') ? 
							document.documentElement : document.body;
}


function showTip(thetext)
{
	if (ns6||ie)
	{
		// show if defined
		if (typeof thetext !='undefined')
		{
			this.thetext = thetext.replace(/\&lt;/, '<');
			this.thetext = thetext.replace(/\&gt;/, '>');
			
			tipobj.innerHTML = thetext;
			enabletip = true;
			return false;
		}
		// hide if undefined
		else
		{
			enabletip = false;
			tipobj.style.visibility = 'hidden';
			tipobj.style.left = '-1000px';
			tipobj.style.backgroundColor= '';
			tipobj.style.width = '';
		}
	}
}



function positiontip(e)
{
	if (enabletip)
	{
		var curX = (ns6)? e.pageX : event.clientX+ietruebody().scrollLeft;
		var curY = (ns6)? e.pageY : event.clientY+ietruebody().scrollTop;
		//Find out how close the mouse is to the corner of the window
		var rightedge	=	ie	&&	!window.opera	? ietruebody().clientWidth-event.clientX-xOffset : window.innerWidth-e.clientX-xOffset-20;
		var bottomedge=	ie	&&	!window.opera	? ietruebody().clientHeight-event.clientY-yOffset : window.innerHeight-e.clientY-yOffset-20;

		var leftedge = (xOffset<0) ? xOffset*(-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 = ie ? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+'px' : 
					window.pageXOffset+e.clientX-tipobj.offsetWidth+'px'; 
		}
		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 +  xOffset + 'px'; }

		//same concept with the vertical position
		if (bottomedge<tipobj.offsetHeight)
		{ 
			tipobj.style.top=ie ? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-yOffset+'px' : 
						window.pageYOffset+e.clientY-tipobj.offsetHeight-yOffset+'px'; }
		else
		{ tipobj.style.top=curY+yOffset+'px'; }
		
		tipobj.style.visibility = 'visible';
	}
}


document.onmousemove = positiontip;