function newXMLHttpRequest() {
	var xmlreq = false;
	if (window.XMLHttpRequest) {
	    xmlreq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
	    try {
	      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch (e1) {
	      try {
	        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
	      } catch (e2) {
	        xmlreq = false;
	      }
	    }
	}
	return xmlreq;
}

function getReadyStateHandler(req, responseXmlHandler) {
   return function () {
	     if (req.readyState == 4) {
	       if (req.status == 200) {
	         responseXmlHandler(req.responseXML);
	       } else {
	         alert("HTTP error "+req.status+": "+req.statusText);
	       }
	     }
	   }
}
