//<script>//////////////////// Helper Stuff ////////////////////// used to find the Automation server namefunction getDomDocumentPrefix() { if (getDomDocumentPrefix.prefix)  return getDomDocumentPrefix.prefix;  var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"]; var o; for (var i = 0; i < prefixes.length; i++) {  try {   // try to create the objects   o = new ActiveXObject(prefixes[i] + ".DomDocument");   return getDomDocumentPrefix.prefix = prefixes[i];  }  catch (ex) {}; }  throw new Error("Could not find an installed XML parser");}function getXmlHttpPrefix() { if (getXmlHttpPrefix.prefix)  return getXmlHttpPrefix.prefix;  var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"]; var o; for (var i = 0; i < prefixes.length; i++) {  try {   // try to create the objects   o = new ActiveXObject(prefixes[i] + ".XmlHttp");   return getXmlHttpPrefix.prefix = prefixes[i];  }  catch (ex) {}; }  throw new Error("Could not find an installed XML parser");}//////////////////////////// Start the Real stuff ////////////////////////////// XmlHttp factoryfunction XmlHttp() {}XmlHttp.create = function () { try {  if (window.XMLHttpRequest) {   var req = new XMLHttpRequest();      // some versions of Moz do not support the readyState property   // and the onreadystate event so we patch it!   if (req.readyState == null) {    req.readyState = 1;    req.addEventListener("load", function () {     req.readyState = 4;     if (typeof req.onreadystatechange == "function")      req.onreadystatechange();    }, false);   }      return req;  }  if (window.ActiveXObject) {   return new ActiveXObject(getXmlHttpPrefix() + ".XmlHttp");  } } catch (ex) {} // fell through throw new Error("Your browser does not support XmlHttp objects");};// XmlDocument factoryfunction XmlDocument() {}XmlDocument.create = function () { try {  // DOM2  if (document.implementation && document.implementation.createDocument) {   var doc = document.implementation.createDocument("", "", null);      // some versions of Moz do not support the readyState property   // and the onreadystate event so we patch it!   if (doc.readyState == null) {    doc.readyState = 1;    doc.addEventListener("load", function () {     doc.readyState = 4;     if (typeof doc.onreadystatechange == "function")      doc.onreadystatechange();    }, false);   }      return doc;  }  if (window.ActiveXObject)   return new ActiveXObject(getDomDocumentPrefix() + ".DomDocument"); } catch (ex) {} throw new Error("Your browser does not support XmlDocument objects");};// Create the loadXML method and xml getter for Mozillaif (window.DOMParser && window.XMLSerializer && window.Node && Node.prototype && Node.prototype.__defineGetter__) { // XMLDocument did not extend the Document interface in some versions // of Mozilla. Extend both! //XMLDocument.prototype.loadXML =  Document.prototype.loadXML = function (s) {    // parse the string to a new doc   var doc2 = (new DOMParser()).parseFromString(s, "text/xml");    // remove all initial children  while (this.hasChildNodes())   this.removeChild(this.lastChild);     // insert and import nodes  for (var i = 0; i < doc2.childNodes.length; i++) {   this.appendChild(this.importNode(doc2.childNodes[i], true));  } };   /*  * xml getter  *  * This serializes the DOM tree to an XML String  *  * Usage: var sXml = oNode.xml  *  */ // XMLDocument did not extend the Document interface in some versions // of Mozilla. Extend both! /* XMLDocument.prototype.__defineGetter__("xml", function () {  return (new XMLSerializer()).serializeToString(this); }); */ Document.prototype.__defineGetter__("xml", function () {  return (new XMLSerializer()).serializeToString(this); });}