var req = null;

function getReadyStateHandler(req, responseXmlHandler) {
		 
		  // Return an anonymous function that listens to the XMLHttpRequest instance
		  return function () {
			  // If the requests status is "complete"
			 // alert (readyState);
			  if (req.readyState == 4) {
				  //Check that we received a successful response from the server
				  if (req.status == 200) {
					  //Pass the XML payload of the response to the handler function.
					  responseXmlHandler(req.responseText);
				  } else {
					  // An HTTP problem has occurred
					  //alert("HTTP error "+req.status+": "+req.statusText);
				  }
			  }
		  }
	  }

function newXMLHttpRequest() {
		  
		  var xmlreq = false;
		  // Create XMLHttpRequest object in non-Microsoft browsers
		  if (window.XMLHttpRequest) {
			  xmlreq = new XMLHttpRequest();
		  } else if (window.ActiveXObject) {
			  try {
				  // Try to create XMLHttpRequest in later versions
				  // of Internet Explorer

				  xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
			  } catch (e1) {
				  // Failed to create required ActiveXObject
				  try {
					  // Try version supported by older versions
					  // of Internet Explorer
					  xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
				  } catch (e2) {
					  // Unable to create an XMLHttpRequest by any means
					  xmlreq = false;
				  }
			  }
		  }
		 
		  return xmlreq;
	  }
