function sendXMLRequest(url, responseXMLHandler) {
	var req = createAJAXObject();
	var handlerFunction = getReadyStateHandler(req, responseXMLHandler);
	req.onreadystatechange = handlerFunction;
	req.open("GET", url, true);
	req.send(null);
}

function sendXMLRequestSync(url) {
	var req = createAJAXObject();
	req.open("GET", url, false);
	req.send(null);
	return req.responseText;
}

function createAJAXObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function getReadyStateHandler(req, responseXMLHandler) {
	return function () {
		if (req.readyState == 4) {
			if (req.status == 200) {
				responseXMLHandler(req.responseXML, req);
			} else {
				// Problem with response, or the response is interrupted.
				// alert('AJAX Communication error');
			}
		}
	}
}

function cleanResponse(htmlResponse) {
	var exp = new RegExp("<html(.*)></head>","g");
	htmlResponse = htmlResponse.replace(exp, '');		
	htmlResponse = htmlResponse.replace('</html>', '');
	return htmlResponse;
}