
var xmlhttp;
//var ajaxNotAllowedChars = //gi;

function doAjax(page,retFunc,extras,isFromSalat){
	
	if (typeof isFromSalat == "undefined") isFromSalat = false;
	var xmlhttp = createXMLHTTPObject();
	if (xmlhttp){
		
		if (isFromSalat) xmlhttp.open(((extras) ? "POST" : "GET"), "/salat2/_ajax/"+page, true);
		else xmlhttp.open(((extras) ? "POST" : "GET"), "/_ajax/"+page, true);
		xmlhttp.onreadystatechange = function(){
			try{ if (xmlhttp.readyState == 4){ if (xmlhttp.status == 200){
				retFunc(xmlhttp.responseText);
			}}}catch(e){ /*alert("XMLHTTP Error\n\n"+e.message);*/ }
		};
		// send request
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlhttp.send(extras);
		return (true);
	}else{
		alert("You browser does not support Ajax functionality");
		return (false);
	}
}

function createXMLHTTPObject(){
	var xmlhttp = false;
	var factories = XMLHttpFactories();
	for (var i=0;i<factories.length;i++){
		try{
			xmlhttp = factories[i]();
		}catch (e){
			continue;
		}
		break;
	}
	return xmlhttp;
}

function XMLHttpFactories(){
	return[
		function () {return new XMLHttpRequest()},
		function () {return new ActiveXObject("Msxml2.XMLHTTP")},
		function () {return new ActiveXObject("Msxml3.XMLHTTP")},
		function () {return new ActiveXObject("Microsoft.XMLHTTP")}
	];
}
