function ajax_call(uri,func_name,args,callback)
{
		if (uri.indexOf("?") == -1) 
			uri += "?rs=" + escape(func_name);
		else
			uri += "&rs=" + escape(func_name);
		uri += "&rsrnd=" + new Date().getTime();
		
		for (i = 0; i < args.length; i++) 
			uri += "&rsargs[]=" + escape(args[i]);

		uri +="&return=js";
		//uri +=("&rand="+Math.random());
		var A;
		var _callback=callback;
		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();

		//alert(uri);
	 A.open("GET", uri, true);
	 /*
	 A.onreadystatechange = function() {
				if (A.readyState == 4 && A.status == 200) {
					//alert(A.responseText);
					callback(eval(A.responseText));
				}
				//A=null;
		}
		*/
		
		var onFinished = function (){
				if (A.readyState == 4 && A.status == 200) {
					//alert(A.responseText);
					_callback(eval(A.responseText));
				}
		}
  	
  	
		A.onreadystatechange = onFinished ;
		 
		
  	A.send(null);
}


	
	

function ajax_call_debug(uri,func_name,args,callback)
{
		if (uri.indexOf("?") == -1) 
			uri += "?rs=" + escape(func_name);
		else
			uri += "&rs=" + escape(func_name);
		uri += "&rsrnd=" + new Date().getTime();
		
		for (i = 0; i < args.length; i++) 
			uri += "&rsargs[]=" + escape(args[i]);

		uri +="&return=js";
		alert(uri);
		//uri +=("&rand="+Math.random());
		var A;
		var _callback=callback;
		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();

		//alert(uri);
	 A.open("GET", uri, true);
	 /*
	 A.onreadystatechange = function() {
				if (A.readyState == 4 && A.status == 200) {
					//alert(A.responseText);
					callback(eval(A.responseText));
				}
				//A=null;
		}
		*/
		
		var onFinished = function (){
				if (A.readyState == 4 && A.status == 200) {
					//alert(A.responseText);
					_callback(eval(A.responseText));
				}
		}
  	
  	
		A.onreadystatechange = onFinished ;
		 
		
  	A.send(null);
}