document.write("<div id='hints' style='z-index: 33; left: 0px; visibility: hidden; position: absolute; top: 0px'></div>");

var dom = (document.getElementById) ? true : false;
var nn4 = (document.layers) ? true : false;
var ie = (document.all) ? true : false;
var ie4 = (!dom && ie) ? true : false;
var moz = (dom && (navigator.appName=="Netscape")) ? true : false;
var opr = (dom && window.opera) ? true : false;
var op7 = false;
if (opr) {
	ua = navigator.userAgent;
	opisp = ua.indexOf("Opera");
	if (opisp >= 0) {
		opisp+=6;
		op7 = ( (ua.charAt(opisp)>6 && ua.charAt(opisp)<=9) || (ua.charAt(opisp)==1) ) ? true : false;
	}
}
var hintsObj = null;

// Netscape, Mozilla and Opera
function moveHintsN(e) {

	if (hintsObj == null) return;

	if (nn4) {
		xoff = e.pageX + 10;
		if (document.body.clientWidth < (xoff + 300)) {
// align to right border of window
//			xoff = document.body.clientWidth - 300;
// revert align to mouse
			xoff -= 310;
		}
		document.layers['hints'].left = xoff;
		document.layers['hints'].top = e.pageY + 10;
		document.layers['hints'].visibility = "show"
	} else if (moz || op7) {

		xoff = window.pageXOffset + e.clientX + 10;
		if (document.body.clientWidth < (xoff + 300)) {
// align to right border of window
//			xoff = document.body.clientWidth - 300;
// revert align to mouse
			xoff -= 310;
		}
		document.getElementById('hints').style.left = xoff + "px";
		document.getElementById('hints').style.top = window.pageYOffset + e.clientY + 10 + "px";
		document.getElementById('hints').style.visibility = "visible";
	}
}

function hideHintsN(e) {

	if (hintsObj == null) return;
	document.releaseEvents(Event.MOUSEMOVE);
	document.releaseEvents(Event.MOUSEOUT);
	document.onmousemove = null;
	document.onmouseout = null;
   	if (nn4) {
		document.layers['hints'].visibility = "hide";
		document.layers['hints'].left = 0;
		document.layers['hints'].top = 0;
    } else if (moz || op7) document.getElementById('hints').style.visibility = "hidden";
    hintsObj = null;
}


// IE
function moveHints() {

	if (opr || moz || nn4 || (hintsObj == null)) return;

    xoff = 0;
    yoff = 0;
	if (dom || ie) {
		if (dom) q = document.getElementById(hintsObj);
		else q = document.all[hintsObj];
		while (q) {
			xoff += q.offsetLeft;
			yoff += q.offsetTop;
			q = q.offsetParent;
		}
		xoff += window.event.offsetX + 10;
		yoff += window.event.offsetY + 5;
	}

	if (document.body.clientWidth < (xoff + 300)) {
// align to right border of window
//		xoff = document.body.clientWidth - 300;
// revert align to mouse
		xoff -= 320;
	}

    if (dom) {
		document.getElementById('hints').style.left = xoff;
		document.getElementById('hints').style.top = yoff;
	} else if (ie4) {
		document.all['hints'].style.left = xoff;
		document.all['hints'].style.top = yoff;
	}
}

var select_arr;

function hideHints() {
	if (!opr && !moz && !nn4) for (eid=0;eid<select_arr.length;eid++) select_arr[eid].style.visibility = 'visible';

	if (opr || moz || nn4 || (hintsObj == null)) return;

	if (dom) document.getElementById('hints').style.visibility = "hidden";
		else if (ie4) document.all['hints'].style.visibility = "hidden";
    hintsObj = null;
}


// ALL
function showHints(obj,head,text) {
    if (!opr && !moz && !nn4) {
	select_arr = document.all.tags('SELECT');
	for (eid=0;eid<select_arr.length;eid++) select_arr[eid].style.visibility = 'hidden';
    }

	if ((opr && !op7) || (text == "")) return;

    contents = "<table border=0 cellspacing=0 cellpadding=0 class=hintshead><tr><td style=\'padding:2px\'><b>" + head + "</b></td></tr><tr><td style=\'padding:0px\'><table border=0 cellspacing=0 cellpadding=0 class=hintstext><tr><td style=\'padding:3px\'>" + text + "</td></tr></table></td></tr></table>";

	hintsObj = obj;
	if (dom) document.getElementById('hints').innerHTML = contents;
	else if (nn4) {
			document.layers['hints'].document.open();
			document.layers['hints'].document.write(contents);
			document.layers['hints'].document.close();
		}
	else if (ie4) document.all['hints'].innerHTML = contents;

    // for Netscape, Mozilla and Opera
	if (nn4 || moz || op7) {
		document.captureEvents(Event.MOUSEMOVE);
		document.captureEvents(Event.MOUSEOUT);
		document.onmousemove = moveHintsN;
		document.onmouseout = hideHintsN;
		return;
	}
    // for IE
    if (dom || ie) {
		moveHints();
		if (dom) document.getElementById('hints').style.visibility = "visible";
			else if (ie4) document.all['hints'].style.visibility = "visible";
    }
}
