var x;
function AjaxInitObject() {
	
 	var A;
 			
 	var msxmlhttp = new Array(
		'Msxml2.XMLHTTP.5.0',
		'Msxml2.XMLHTTP.4.0',
		'Msxml2.XMLHTTP.3.0',
		'Msxml2.XMLHTTP',
		'Microsoft.XMLHTTP');
	for (var i = 0; i < msxmlhttp.length; i++) {
		try {
			A = new ActiveXObject(msxmlhttp[i]);
		} catch (e) {
			A = null;
		}
	}
 			
	if(!A && typeof XMLHttpRequest != "undefined")
		A = new XMLHttpRequest();
	if (!A)
		alert("Could not create connection object.");
	return A;
}

function AjaxDoCall(url, phpFuncName, phpArgs, handlerFunc, handlerArgs, type) {
	
	if (url.indexOf("?") == -1) 
		url += "?type=ajax";
	else
		url += "&type=ajax";
		url += "&funcName=" + phpFuncName;
				
	for (id in phpArgs) 
			url += "&args[" + id + "]=" + escape(args[id]);

	x = AjaxInitObject();
	if (x != null) {
		x.open("GET", url, true);
		x.send(null);
		// window.open(uri);

		x.onreadystatechange = function() {
//			if (x.readyState != 4 || x == 1 || x == 2 || x == 3) 
			if (x.readyState != 4) 
				return false;
			else {
				
			var status;
			var data;
			var xml = x.responseXML;

			if (x.status == 200){
				handlerFunc(xml, handlerArgs, type);
			}
			}


		}
	}
			
			//sajax_debug(func_name + " uri = " + uri + "/post = " + post_data);
			
			//sajax_debug(func_name + " waiting..");
			delete x;
			return true;
}
