
function ajax_newXmlHttpObject()
{
	if (window.XMLHttpRequest) {
		try {
			return new XMLHttpRequest();
		} catch (e){}
	} else if (window.ActiveXObject) {
		try {
			return new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e){}
		try {
			return new ActiveXObject('Microsoft.XMLHTTP');
		} catch (e){}
	}
	return null;
}

function ajax_DoRequest(uri_, codeAfter, codeOnError){
  //gen query url:
	var dttm = new Date;
	var url = "http://" + location.hostname + uri_ + "&rnd="+dttm.getTime();
//alert(url);
	
	if (!codeOnError) codeOnError = 'alert("Failed query to service!");';
	
  //request:
	var ajax = ajax_newXmlHttpObject();
	if (ajax){
		ajax.onreadystatechange = function (){
			if (ajax.readyState == 4){
				if (ajax.status == 200){
//alert(codeAfter);
					eval(codeAfter+";");
				}
				else{
					eval(codeOnError+";");
				}
				ajax = null;
			}
		};
		
		ajax.open("GET", url, true);
		ajax.send("null");						
		return true;
	}
}
