/*
 * Returns an new XMLHttpRequest object, or false if the browser
 * doesn't support it
 */
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;
}

 /*
	* Returns a function that waits for the specified XMLHttpRequest
	* to complete, then passes it XML response to the given handler function.
  * req - The XMLHttpRequest whose state is changing
  * responseXmlHandler - Function to pass the XML response to
  */
 function getReadyStateHandlerXML(req, responseXmlHandler) {

   // Return an anonymous function that listens to the XMLHttpRequest instance
   return function () {
	
     // If the request's status is "complete"
     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.
		 var xmldoc=req.responseXML;
         responseXmlHandler(xmldoc);

       } else if (req.status == 404) {
         	alert("URL does not exist.");
       } else {
         	alert("Status is: " + req.status);
       }

     }
   }
 }
  function getReadyStateHandlerText(req, responseXmlHandler) {

   // Return an anonymous function that listens to the XMLHttpRequest instance
   return function () {
	
     // If the request's status is "complete"
     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.
		 var doc=req.responseText;
         responseXmlHandler(doc);

       } else if (request.status == 404) {
         alert("URL does not exist.");
       } else {
         alert("Status is: " + request.status);
       }

     }
   }
 }
 function ajaxDo(url,call,params,fun){
 var req = newXMLHttpRequest();
 	call=call.toLowerCase();
 
 	if(call=="xml"){
 		req.onreadystatechange = getReadyStateHandlerXML(req, fun);	
 	}
 	else if(claaType=="text"){
 		req.onreadystatechange = getReadyStateHandlerText(req, fun);	
 	}
 	else{
 		alert("call is wrong!");
 		return;
 	}
	
	 req.open("POST", url, true);
	 req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	  req.setRequestHeader("If-Modified-Since","0"); 	 
	 //req.send("action=add&item="+itemCode);
	req.send(params);
 }
