functionCreateHTTPRequestObject () {// although IE supports the XMLHttpRequest object, but it does not work on local files.varforceActiveX = (window.ActiveXObject&&location.protocol==="file:");if(window.XMLHttpRequest&& !forceActiveX) {returnnewXMLHttpRequest();
}else{try{returnnewActiveXObject("Microsoft.XMLHTTP");
}catch(e) {}
}alert("Your browser doesn't support XML handling!");returnnull;
}functionCreateMSXMLDocumentObject () {if(typeof(ActiveXObject) !="undefined") {varprogIDs = ["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","Msxml2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument"];for(vari =0; i < progIDs.length; i++) {try{returnnewActiveXObject(progIDs[i]);
}catch(e) {};
}
}returnnull;
}functionCreateXMLDocumentObject (rootName) {if(!rootName) {
rootName ="";
}varxmlDoc = CreateMSXMLDocumentObject ();if(xmlDoc) {if(rootName) {varrootNode = xmlDoc.createElement(rootName);
xmlDoc.appendChild(rootNode);
}
}else{if(document.implementation.createDocument) {
xmlDoc =document.implementation.createDocument("", rootName,null);
}
}returnxmlDoc;
}functionParseHTTPResponse (httpRequest) {varxmlDoc = httpRequest.responseXML;// if responseXML is not valid, try to create the XML document from the responseText propertyif(!xmlDoc || !xmlDoc.documentElement) {if(window.DOMParser) {varparser =newDOMParser();try{
xmlDoc = parser.parseFromString(httpRequest.responseText,"text/xml");
}catch(e) {alert("XML parsing error");returnnull;
};
}else{
xmlDoc = CreateMSXMLDocumentObject ();if(!xmlDoc) {returnnull;
}
xmlDoc.loadXML(httpRequest.responseText);
}
}// if there was an error while parsing the XML documentvarerrorMsg =null;if(xmlDoc.parseError&& xmlDoc.parseError.errorCode!=0) {
errorMsg ="XML Parsing Error: "+ xmlDoc.parseError.reason+" at line "+ xmlDoc.parseError.line+" at position "+ xmlDoc.parseError.linepos;
}else{if(xmlDoc.documentElement) {if(xmlDoc.documentElement.nodeName=="parsererror") {
errorMsg = xmlDoc.documentElement.childNodes[0].nodeValue;
}
}
}if(errorMsg) {alert(errorMsg);returnnull;
}// ok, the XML document is validreturnxmlDoc;
}// returns whether the HTTP request was successfulfunctionIsRequestSuccessful (httpRequest) {// IE: sometimes 1223 instead of 204varsuccess = (httpRequest.status==0||
(httpRequest.status>=200&& httpRequest.status<300) ||
httpRequest.status==304|| httpRequest.status==1223);returnsuccess;
}