var my_dom	= (document.getElementById)											? true : false;
var my_ns5	= ((navigator.userAgent.indexOf("Gecko") > -1) && my_dom)	? true : false;
var my_ie5	= ((navigator.userAgent.indexOf("MSIE") > -1) && my_dom)		? true : false;
var my_ns4	= (document.layers && !my_dom)										? true : false;
var my_ie4	= (document.all && !my_dom)											? true : false;
var nodyn	= (!my_ns5 && !my_ns4 && !my_ie4 && !my_ie5)						? true : false;

// Declare and initialise global variables
var origWidth, origHeight; 
var tooltip, tipcss;
var t1, t2;					// For setTimeouts
var tipOn = false;		// Check if over tooltip link
var my_mouseX, my_mouseY;
	
// Resize fix for my_ns4
if (my_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";	
	
// Function to initialise tooltip
function initTip()
{
	if (nodyn) return;
		
	tooltip	= (my_ns4) ? document.tipDiv.document	: (my_ie4) ? document.all['tipDiv']	: (my_ie5 || my_ns5) ? document.getElementById('tipDiv') : null;
	tipcss	= (my_ns4) ? document.tipDiv				: tooltip.style;
		
	// my_ns4 would lose all this on rewrites
	if (my_ie4 || my_ie5 || my_ns5)
	{
		tipcss.width = tipWidth + "px";
	}
		
	if (tooltip && tipFollowMouse)
	{
		if (my_ns4)
			document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = trackMouse;
	}
}
	
// Function for tool tip
function doTooltip(evt,num)
{
	initTip();
	
	if (!tooltip) return;
		
	if (t1)
		clearTimeout(t1);
			
	if (t2)
		clearTimeout(t2);
		
	tipOn = true;
		
	var tip;
		
	tip = '<table border="0" cellpadding="0" cellspacing="0" width="' + tipWidth + '" >';
	tip += '	<tr>';
	tip += '		<td valign="top" bgcolor="#000000">';
	tip += '			<table border="0" cellspacing="1" cellpadding="2" width="100%">';
	tip += '				<tr>';
	tip += '					<td valign="top" bgcolor="lightyellow" class="TACWEB_ToolTip">'
	
	if (my_ns4)
	{
		tip += messages[num][0];

		tooltip.write(tip);
		tooltip.close();
	}
	else if (my_ie4 || my_ie5 || my_ns5)
	{

		tip += messages[num][0];
	 	tooltip.innerHTML = tip;
	}
		
	tip += '					</td>';
	tip += '				</tr>';
	tip += '			</table>';
	tip += '		</td>';
	tip += '	</tr>';
	tip += '</table>';

	if (!tipFollowMouse)
		positionTip(evt);
	else
		t1 = setTimeout("tipcss.display='block'",0);
}
	
function trackMouse(evt)
{
	my_mouseX = (my_ns4 || my_ns5) ? evt.pageX : window.event.clientX + document.body.scrollLeft;
	my_mouseY = (my_ns4 || my_ns5) ? evt.pageY : window.event.clientY + document.body.scrollTop;
	if (tipOn)
		positionTip(evt);
}
	
// Function to position tip if tipFollowmouse is set to false
function positionTip(evt)
{
	if (!tipFollowMouse)
	{
		my_mouseX = (my_ns4 || my_ns5) ? evt.pageX: window.event.clientX + document.body.scrollLeft;
		my_mouseY = (my_ns4 || my_ns5) ? evt.pageY: window.event.clientY + document.body.scrollTop;
	}
	
	// Tooltip width and height
	var tpWd = (my_ns4) ? tooltip.width		: (my_ie4 || my_ie5) ? tooltip.clientWidth	: tooltip.offsetWidth;
	var tpHt = (my_ns4) ? tooltip.height	: (my_ie4 || my_ie5) ? tooltip.clientHeight	: tooltip.offsetHeight;
		
	// Document area in view (subtract scrollbar width for ns)
	var winWd = (my_ns4 || my_ns5) ? window.innerWidth	- 20 + window.pageXOffset	: document.body.clientWidth + document.body.scrollLeft;
	var winHt = (my_ns4 || my_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 ((my_mouseX + offX + tpWd) > winWd)
		tipcss.left = (my_ns4) ? my_mouseX - (tpWd + offX) : my_mouseX - (tpWd + offX)+"px";
	else	
		tipcss.left = (my_ns4) ? my_mouseX + offX: my_mouseX + offX + "px";
		
	if ((my_mouseY + offY + tpHt) > winHt)
		tipcss.top = (my_ns4) ? winHt - (tpHt + offY) : winHt - (tpHt + offY)+"px";
	else
		tipcss.top = (my_ns4) ? my_mouseY + offY : my_mouseY + offY + "px";
		
	if (!tipFollowMouse)
		t1 = setTimeout("tipcss.display='block'",0);
}

// Function to hide tool tip
function hideTip()
{
	if (!tooltip)
		return;
		
	t2		= setTimeout("tipcss.display='none'",0);
	tipOn	= false;
}
