// AJAX Hello World Demo http://www.hackorama.com/ajax

function doLoad(url, id){
	document.body.style.cursor = 'wait';
	var ajax = new AjaxClass();
	//register the callback handler function
  	var callbackHandler = getReadyStateHandler(ajax, id);
  	for(i = 2; i < doLoad.arguments.length; i++)
		ajax.Extra[i-2] = doLoad.arguments[i];
  	ajax.req.onreadystatechange = callbackHandler;
  	ajax.req.open("POST", url, true);
  	ajax.req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  	ajax.req.send('');
}

function AjaxClass() {
  this.Extra = new Array();
  this.req = new newXMLHttpRequest();;
}

function newXMLHttpRequest() {
	var xmlreq = false;
	if (window.XMLHttpRequest) {
		xmlreq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
    		// Try ActiveX
		try { 
			xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) { 
			// first method failed 
			try {
				xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				 // both methods failed 
			} 
		}
 	}
   	return xmlreq;
} 

function getReadyStateHandler(ajax, func) {
	return function () {
	if (ajax.req.readyState == 4) {
		if (ajax.req.status == 200) {
			command = 'func(ajax.req.responseText';
			for(i=0; i < ajax.Extra.length; i++)
				command+= ', ajax.Extra['+i+']';
			command+=');';
			eval(command);
		} else {
			alert ("ERROR: "+ ajax.req.status);
      		}
		document.body.style.cursor = 'default';
    	}
 	}
}

