//
// tooltip.js
//

// for popup
// <span id="popup_layer" style="position:absolute; visibility:hidden;"></span>
// netscape requires:
// <layer id="popup_layer" style="position:absolute; visibility:hidden;"></layer>

// for tooltip
//  <span id="tip1" style="position:absolute; visibility:hidden;"></span>
//  <a href="/" onMouseover="tooltip('tip1','My tooltip');" onMouseout="tooltip('tip1');">My Text</a>
//  <td onMouseover="tooltip('tip1','My tooltip');" onMouseout="tooltip('tip1');">My Text</td>

myBrowser=navigator.appName;
myVersion=navigator.appVersion;
var version45=(myVersion.indexOf("4.")!=-1 || myVersion.indexOf("5.")!=-1 || myVersion.indexOf("6.")!=-1);
var NS=(myBrowser.indexOf("Netscape")!=-1 && version45);
var IE=(myBrowser.indexOf("Explorer")!=-1 && version45);

var Xmouse, Ymouse;
var hidden = true;
var tid = "1"; // so event handler won't complain

var pleaseWaitImage = new Image();
pleaseWaitImage.src = "images/loadgraphic.gif";

function IsDefined(obj) {
	return (typeof(obj) != 'undefined');
}

function MakeVisable(tid) {
	hidden = false;
	if (IE) {
		document.all[tid].style.visibility = "visible";
	} else if (NS && IsDefined(document.layers[tid])) {
		document.layers[tid].visibility = "show";
	}
}

function MakeInvisable(tid) {
	hidden = true;
	if (IE) {
		document.all[tid].style.visibility = "hidden";
	} else if (NS && IsDefined(document.layers[tid])) {
		document.layers[tid].visibility = "hide";
	}
}

function ShowTip(toolid, strHTML) {
	try {
		tid = toolid;
		hidden = false;
		if (NS && IsDefined(document.layers[tid])){
			with (document.layers[tid].document){
				open();
				write(strHTML);
				close();
				MakeVisable(tid);
			}
		} else if (IE) {
			document.all[tid].innerHTML = strHTML;
			MakeVisable(tid);
		}
	} catch(e) {}
}

function tooltip(toolid, message) {
	if(message){
		message = message.replace(/\"|\'/g, '&quot;');
		ShowTip(toolid, "<table cellspacing=\"0\" frame=\"box\">" +
			"<tr><td bgcolor=\"#ffffcc\" bordercolor=\"Black\" bordercolorlight=\"Black\" bordercolordark=\"Black\">" +
			message.small() + "</td></tr></table>");
	} else {
		MakeInvisable(toolid);
	}
}

function insideWindowHeight() {
if (NS)
	return window.innerHeight;
else if (IE)
	return document.body.clientHeight
}

function insideWindowWidth() {
if (NS)
	return window.innerWidth;
else if (IE)
	return document.body.clientWidth
}

function popup(message) {
	ShowTip("popup_layer", "<table border='1' cellpadding='10' bgcolor='Silver' bordercolorlight='Black' bordercolordark='White'>" +
		"<tr><td bgcolor='White'>" + message + "</td></tr></table>");
	tid="1"; // fool handler
	moveLayer("popup_layer",(insideWindowWidth() - 100)/2, (insideWindowHeight() - 50)/2);
}

function PleaseWait(msg) {
	if(!msg) msg = "please wait...";
	ShowTip("popup_layer", "<TABLE CELLPADDING=0 CELLSPACING=3 BORDER=0 bgcolor=\"Black\">" +
    "<TR><TD WIDTH=\"170px\" BGCOLOR=\"White\"><FONT COLOR=\"Black\" FACE=\"Verdana, Arial, Helvetica\"" +
	"SIZE=\"2\"><center><B>"+msg+"<BR><IMG NAME=\"pleaseWait\" SRC=\"" + pleaseWaitImage.src + "\" STYLE=\"margin:5px;\"></center></B>" +
	"</FONT></TD></TR></TABLE>");
	tid="1"; // fool handler
	moveLayer("popup_layer",(insideWindowWidth() - 100)/2, (insideWindowHeight() - 50)/2);
}

// Init handler
if (document.layers){
	window.captureEvents(Event.MOUSEMOVE);
	window.onMouseMove = MoveHandler;
}
if (document.all){
	document.onmousemove = MoveHandler;
}

function MoveHandler(evnt) {
	if(document.layers){
		Xmouse = evnt.pageX + pageXOffset;
		Ymouse = evnt.pageY + pageYOffset;
	} else if(document.all) {
		Xmouse = window.event.x + document.body.scrollLeft;
		Ymouse = window.event.y + document.body.scrollTop;
	}
	moveLayer(tid,Xmouse-30,Ymouse+18);
}

function moveLayer(Id, x, y){
//alert("Id="+Id)
//alert("hidden="+hidden)
//alert(document.all[Id].style.left)
	try {
		if(Id == '1') return;
		if (hidden){
			x = 0; y = 0;
			return;
		}
		if (document.all && IsDefined(document.all[Id])){
			document.all[Id].style.left = x;
			document.all[Id].style.top = y;
		} else if (document.layers && IsDefined(document.layers[Id])){
			document.layers[Id].left = x;
			document.layers[Id].top = y;
		}
	} catch(e) {}
}
