
var dataobj=null;
var xreq=null;
var loadingmsg = 'Generating';
 

function xmlhttpreqloading(elname, msg) {
	var obj=elem(elname);
	if (obj) {
		obj.innerHTML='<span style="color: #700101; font-size: 11pt;">' + msg + ' ... 0%</span><br><img src="loading.gif" style="padding: 2px;" border="0">';
	}
}

function xmlhttpreqhandler() {
	if (dataobj && xreq) {
		if (xreq.readyState == 4 && xreq.status == 200) {
			dataobj.innerHTML = xreq.responseText;
		} else if (xreq.readyState == 4) {
			dataobj.innerHTML = '<span style="color: #700101; font-size: 10pt;">There was a problem with generating data: <span style="color: #010101; font-weight: bolder;">' + xreq.statusText + '</span>.</span>';
		} else if ( xreq.readyState == 1 ) {
			dataobj.innerHTML='<span style="color: #700101; font-size: 11pt;">' + loadingmsg + ' ... 20%</span><br><img src="loading.gif" style="padding: 2px;" border="0">';
		} else if ( xreq.readyState == 2 ) {
			dataobj.innerHTML='<span style="color: #700101; font-size: 11pt;">' + loadingmsg + ' ... 65%</span><br><img src="loading.gif" style="padding: 2px;" border="0">';
		} else if ( xreq.readyState == 3 ) {
			dataobj.innerHTML='<span style="color: #700101; font-size: 11pt;">Almost there ... 98%</span><br><img src="loading.gif" style="padding: 2px;" border="0">';
		} 
	}
}

function getXmlHttpReqObj() {
	var req=null;
	if (window.XMLHttpRequest && !(window.ActiveXObject)) {
		try { req = new XMLHttpRequest(); } catch (e) { req = null; }
	} else if (window.ActiveXObject) {
		try { req = ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
			try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { req=null; }
		}
	}	
	return req;
}

function sendRequest(url) {
	xreq=getXmlHttpReqObj();
	if (xreq) {
		xreq.onreadystatechange = xmlhttpreqhandler;		
		xreq.open("GET", url +(url.indexOf('?') > -1 ? '&rand=' + Math.random() : '?rand=' + Math.random()), true);
		xreq.send(null);
	}
}
