var xmlHttp

function checkIMAP() {
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp == null) {
		alert ("Browser does not support HTTP Request");
		return;
	} 
	var url = "/perl/ajaxhelper.pl?sub=get_inbox_unread";
	url = url+"&sid="+Math.random();	// prevent caching
	
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function checkIMAPauto() {
	checkIMAP();
	// wait and repeat
	setTimeout("checkIMAPauto()",300000);	
}

function stateChanged() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		xmlDoc = xmlHttp.responseXML;
		
		var messages = 		xmlDoc.getElementsByTagName("item")[0].childNodes[0].nodeValue;
		var status = "";
		if (xmlDoc.getElementsByTagName("item")[1]) {
			status = 		xmlDoc.getElementsByTagName("item")[1].childNodes[0].nodeValue;
		}
		
		var old_count = 0;
		var first_run = true;
		if (document.getElementById("mess_count")) {
			old_count = document.getElementById("mess_count").innerHTML;
			first_run = false;
		}

		if (status != "") {
		//	document.getElementById("mailmess").innerHTML = "Error: "+status;
		} else if (messages == 0) {
			document.getElementById("mailmess").innerHTML = "You have no unread messages";
		} else if (messages == 1) {
			document.getElementById("mailmess").innerHTML = 'You have <b><span id="mess_count">1</span></b> unread message';
		} else if (messages > 1) {
			document.getElementById("mailmess").innerHTML = 'You have <b><span id="mess_count">'+messages+"</span></b> unread messages";
		}
		if (!first_run && (messages > old_count)) {
		// flash the status
			document.getElementById("mailmess").style.backgroundColor = "yellow";
			
			setTimeout("document.getElementById('mailmess').style.backgroundColor = 'white'",3000);		
		}

	}
} 


function GetXmlHttpObject() {
	var xmlHttp=null;
	try {
	// Firefox, Opera 8.0+, Safari
  		xmlHttp=new XMLHttpRequest();
	} catch (e) {
	// Internet Explorer
  		try {
  			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  		} catch (e) {
  			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  		}
	}
	return xmlHttp;
}
