function getXmlHttp() {
	var xmlhttp = false;


	try {
		xmlhttp = new XMLHttpRequest()
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (E) {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlhttp;
}

var fadeTimeout = null;


function setOpacity(obj, opacity) {
opacity = (opacity == 100) ? 99.999 : opacity;
obj.style.filter = "alpha(opacity:"+opacity+")";


obj.style.opacity = opacity/100;

obj.style.KHTMLOpacity = opacity/100;

obj.style.MozOpacity = opacity/100;


}

function fadeOut(objId,opacity, shouldTimeOut) {
if (shouldTimeOut) {
fadeTimeout = window.setTimeout("fadeOut('"+objId+"',"+opacity+")", shouldTimeOut);
return false;
}
if (document.getElementById) {
obj = document.getElementById(objId);
if (opacity >= 0) {
setOpacity(obj, opacity);
opacity -= 1;
window.clearTimeout(fadeTimeout);
fadeTimeout = window.setTimeout("fadeOut('"+objId+"',"+opacity+", 0)", 50);
} else {
obj.style.visibility = "hidden";
setOpacity(obj, 100);
}
}
}

function haltFade(objId) {
obj = document.getElementById(objId);
window.clearTimeout(fadeTimeout);
setOpacity(obj, 100);
obj.style.visibility = "visible";
}

function raiseAlert(text, posx, posy) {
haltFade("alert");
var alert = document.getElementById("alert");

if (posx != undefined) {
	alert.style.left = posx
} else {
	alert.style.left = "0px";
}

if (posy != undefined) {
	alert.style.top = posy;
} else {
	alert.style.top = "0px";
}

alert.innerHTML = text;
alert.style.visibility = "visible";
setOpacity(alert, 100, 0);
fadeTimeout = window.setTimeout("fadeOut('alert', 100, 0)", 8000);
}

function suspendAlert() {
window.clearTimeout(fadeTimeout);
var alert = document.getElementById("alert");
alert.style.top = "0px";
alert.style.visibility = "hidden";
setOpacity(alert, 100, 0);
}