 function createREQ() {
	try{
		req = new XMLHttpRequest(); /* for Firefox */
	} catch (err1) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP"); /* IE */
		} catch (err2) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP"); /* More IE */
			} catch (err3) {
				req = false;
			}
		}
	}
	return req;
}

function requestGET(url, query, req){
	myRand = parseInt(Math.random()*99999999); /* Required to prevent browser cache */
	req.open("GET",url+'?'+query+'&rand='+myRand,true);
	req.send(null);
}

function requestPOST(url, query, req){
	req.open("POST",url,true);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	req.send(query);
}

function doCallback(callback, item,divname,maxitems){
	eval(callback + '(item,divname,maxitems)');
}

function doAjax(url,query,callback,reqtype,getxml,divname,maxitems) {
	var myreq = createREQ();
	myreq.onreadystatechange = function(){
		if(myreq.readyState == 4) {
			if(myreq.status == 200) {
				var item = myreq.responseText;
				if(getxml==1) {
					item = myreq.responseXML;
				}
				doCallback(callback, item,divname,maxitems);
			}
		}
	}
	if(reqtype=='post'){
		requestPOST(url,query,myreq);
	} else {
		requestGET(url,query,myreq);
	}
}