// JavaScript Document
var dNavigateTask = null;

function navigate(dest) {
	cancelDNavigate();
	if (document.getElementById("maincontent") == null) this.location.href = dest;
	else document.getElementById("maincontent").src = dest;
}

function cancelDNavigate() {
	if (dNavigateTask == null) return;
	clearTimeout(dNavigateTask);
	dNavigateTask = null;
}

function dnavigate(dest, msg, timeout) {
	if (timeout == 0) {
		setMessage(msg + " Redirecting...", "#FF8000");
		navigate(dest);
	} else {
		setMessage(msg + " Redirect in: " + timeout, "#FF8000");
		dNavigateTask = setTimeout("dnavigate('" + dest + "', '" + msg + "', " + (timeout-1) + ");", 1000);
	}
}

function getXmlHttp() {
	try {
		// Firefox, Opera 8.0+, Safari
		return new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			return new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) { 
			try { 
				return new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				alert("You must enable JavaScript to use this page.");
			}
		}
	}
}

function getWindowHeight() {
	if (navigator.appName == "Netscape") {
		return window.innerHeight;
	} else if (navigator.appName.indexOf("Microsoft") != -1) {
		return document.documentElement.clientHeight-4;
	}
	return 460;
}

function getWindowWidth()
{
	var winW = 630

	if (parseInt(navigator.appVersion)>3) 
	{
		if (navigator.appName=="Netscape") 
		{
			winW = window.innerWidth;
		}
		if (navigator.appName.indexOf("Microsoft")!=-1) 
		{
			winW = document.body.offsetWidth;
		}
	}
	return winW;
}

function handleError(status, message) {
	if (status == "unauthorized") {
		setStatus("Unauthorized.", "#FF0000"); 
		setMessage(message, "#FF0000");
		alert("Your session has expired. Please login again.");
		navigate('main.php');
	} else if (status == "failed") {
		setStatus("Ready.", "#009900");
		setMessage(message, "#FF0000");
	} else {
		setStatus(status, "#FF0000");
		setMessage(message, "#FF0000");
	}
}

function setStatus(status, scolor) {
	document.getElementById("status").innerHTML = status;
	document.getElementById("status").style.color = scolor;
}

function setMessage(message, mcolor) {
	document.getElementById("message").innerHTML = message;
	document.getElementById("message").style.color = mcolor;
}

function clearMessage() {
	document.getElementById("message").innerHTML = "OK";
	document.getElementById("message").style.color = "#009900";
}

function setFieldValue(id, value) {
	elem = document.getElementById(id);
	if (elem.name == 'checkbox') setCheckBox(id, value);
	else elem.value = value;
}

function setCheckBox(id, value) {
	if (value == null) value = document.getElementById(id).value;
	else document.getElementById(id).value = value;
	document.getElementById(id + value).checked = true;
}

/*
function setStatus(status, scolor, message, mcolor) {
	setStatus(status, scolor);
	if (message != null) setMessage(message, mcolor);
	else clearMessage();
}
*/

//Allows the applet to change the loading message.
function setLoading(msg) {
	document.getElementById("loading").innerHTML = msg;
}

//Shows the applet and hides the loading message.
function showApplet() {
	document.getElementById("loading").style.display = "none";
	document.getElementById("esl").width = 760;
	document.getElementById("esl").height = 386;
}

//Tells ESL applet to refresh data from the server.
function updateAppletData() {
	document.getElementById("esl").update();
}

//Allows the applet to update the geox and geoy positions.
function setGeoPosition(geox, geoy) {
	document.getElementById("geoxlabel").innerHTML = geox;
	document.getElementById("geoylabel").innerHTML = geoy;
}

function mzIndex(id) {
	if (navigator.appName == "Microsoft Internet Explorer") {
		document.getElementById(id).style.zIndex = -1;
	}
}

function pzIndex(id) {
	if (navigator.appName == "Microsoft Internet Explorer") {
		document.getElementById(id).style.zIndex = 0;
	}
}

function hideMessage() {
	document.getElementById("msg").style.display = none;
}

function showMessage(msg) {
	var msg = document.getElementById("msg");
	msg.innerHTML = msg;
	msg.style.display = 'block';
}
