function getXmlHttpRequestObject() { // old
	var theRequest;
	if (window.XMLHttpRequest) {
		theRequest = new XMLHttpRequest();
		//theRequest.setRequestHeader("X-Requested-With", "XMLHttpRequest");
		return theRequest;

	} else if(window.ActiveXObject) {
		theRequest = new ActiveXObject("Microsoft.XMLHTTP");
		//theRequest.setRequestHeader("X-Requested-With", "XMLHttpRequest");
		return theRequest;
	} else {
		alert("Time to update your browser...");
	}
}


function sendRequest(url,callback,postData) { //new
	var req = createXMLHTTPObject();
	if (!req) return;
	var method = (postData) ? "POST" : "GET";
	req.open(method,url,true);
	req.setRequestHeader('User-Agent','XMLHTTP/1.0');
	req.setRequestHeader("X-Requested-With", "XMLHttpRequest"); // ajax awareness
	if (postData)
		req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	req.onreadystatechange = function () {
		if (req.readyState != 4) return;
		if (req.status != 200 && req.status != 304) {
//			alert('HTTP error ' + req.status);
			return;
		}
		callback(req);
	}
	if (req.readyState == 4) return;
	req.send(postData);
}

var XMLHttpFactories = [
	function () {return new XMLHttpRequest()},
	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject() {
	var xmlhttp = false;
	for (var i=0;i<XMLHttpFactories.length;i++) {
		try {
			xmlhttp = XMLHttpFactories[i]();
		}
		catch (e) {
			continue;
		}
		break;
	}
	return xmlhttp;
}

