﻿var zXml = { useActiveX: (typeof ActiveXObject != "undefined"), useDom: document.implementation && document.implementation.createDocument, useXmlHttp: (typeof XMLHttpRequest != "undefined") }; zXml.settings = { hasXmlHttp: (typeof XMLHttpRequest != "undefined"), hasActiveX: (typeof ActiveXObject != "undefined"), hasXmlDom: (document.implementation && document.implementation.hasFeature("XML", "1.0")), hasDomLS: (document.implementation && document.implementation.hasFeature("LS", "3.0")), hasDomLSAsync: (document.implementation && document.implementation.hasFeature("LS-Async", "3.0")), hasDomParser: (typeof DOMParser != "undefined"), hasXmlSerializer: (typeof XMLSerializer != "undefined"), hasXSLTProcessor: (typeof XSLTProcessor != "undefined") }; zXml.ARR_XMLHTTP_VERS = ["MSXML2.XmlHttp.5.0", "MSXML2.XmlHttp.4.0", "MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp", "Microsoft.XmlHttp"]; zXml.ARR_DOM_VERS = ["MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0", "MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument", "Microsoft.XmlDom"]; function zXmlHttp() { } zXmlHttp.createRequest = function() { if (zXml.settings.hasXmlHttp) { return new XMLHttpRequest() } else { if (zXml.settings.hasActiveX) { if (!zXml.XMLHTTP_VER) { for (var a = 0; a < zXml.ARR_XMLHTTP_VERS.length; a++) { try { new ActiveXObject(zXml.ARR_XMLHTTP_VERS[a]); zXml.XMLHTTP_VER = zXml.ARR_XMLHTTP_VERS[a]; break } catch (b) { } } } if (zXml.XMLHTTP_VER) { return new ActiveXObject(zXml.XMLHTTP_VER) } else { throw new Error("Could not create XML HTTP Request.") } } else { throw new Error("Your browser doesn't support an XML HTTP Request.") } } }; zXmlHttp.isSupported = function() { return zXml.settings.hasXmlHttp || zXml.settings.hasActiveX }; function zXmlDom() { } zXmlDom.createDocument = function() { if (zXml.settings.hasXmlDom) { var a = document.implementation.createDocument("", "", null); a.parseError = { valueOf: function() { return this.errorCode }, toString: function() { return this.errorCode.toString() } }; a.__initError__(); a.addEventListener("load", function() { this.__checkForErrors__(); this.__changeReadyState__(4) }, false); return a } else { if (zXml.settings.hasActiveX) { if (!zXml.DOM_VER) { for (var b = 0; b < zXml.ARR_DOM_VERS.length; b++) { try { new ActiveXObject(zXml.ARR_DOM_VERS[b]); zXml.DOM_VER = zXml.ARR_DOM_VERS[b]; break } catch (c) { } } } if (zXml.DOM_VER) { return new ActiveXObject(zXml.DOM_VER) } else { throw new Error("Could not create XML DOM document.") } } else { throw new Error("Your browser doesn't support an XML DOM document.") } } }; zXmlDom.isSupported = function() { return zXml.settings.hasXmlDom || zXml.settings.hasActiveX }; var oDomDocument = null; if (typeof XMLDocument != "undefined") { oDomDocument = XMLDocument } else { if (typeof Document != "undefined") { oDomDocument = Document } } if (oDomDocument) { try { oDomDocument.prototype.readyState = 0 } catch (e) { } oDomDocument.prototype.onreadystatechange = null; oDomDocument.prototype.__changeReadyState__ = function(a) { try { this.readyState = a } catch (b) { } if (typeof this.onreadystatechange == "function") { this.onreadystatechange() } }; oDomDocument.prototype.__initError__ = function() { this.parseError.errorCode = 0; this.parseError.filepos = -1; this.parseError.line = -1; this.parseError.linepos = -1; this.parseError.reason = null; this.parseError.srcText = null; this.parseError.url = null }; oDomDocument.prototype.__loadDom__ = function(a) { while (this.firstChild) { this.removeChild(this.firstChild) } for (var c = 0; c < a.childNodes.length; c++) { var b = this.importNode(a.childNodes[c], true); this.appendChild(b) } }; try { if (typeof oDomDocument.prototype.async != "boolean") { oDomDocument.prototype.async = true } } catch (e) { } oDomDocument.prototype.load = function(c) { this.__initError__(); var b = zXmlHttp.createRequest(); var a = this; b.open("get", c, this.async); b.onreadystatechange = function() { if (b.readyState == 4) { b.onreadystatechange = null; a.__loadDom__(b.responseXML); a.__checkForErrors__() } a.__changeReadyState__(b.readyState) }; b.send(null) }; Node.prototype.getText = function() { var a = ""; for (var b = 0; b < this.childNodes.length; b++) { if (this.childNodes[b].hasChildNodes()) { a += this.getText() } else { a += this.childNodes[b].nodeValue } } return a }; if (zXml.settings.hasDomLS) { oDomDocument.prototype.__checkForErrors__ = function(a) { if (!a) { return } this.parseError.errorCode = -999999; this.parseError.reason = a.message; this.parseError.url = a.location.uri; this.parseError.line = a.location.lineNumber; this.parseError.linepos = a.location.columnNumber; this.parseError.srcText = (a.location.relatedNode) ? "Around " + a.location.relatedNode.nodeName : a.type }; oDomDocument.prototype.loadXML = function(d) { this.__initError__(); this.__changeReadyState__(1); var c = this; var h = document.implementation.MODE_SYNCHRONOUS; var b = document.implementation.createLSParser(h, null); b.domConfig.setParameter("error-handler", function(i) { c.__checkForErrors__(i); c.__changeReadyState__(4) }); var g = document.implementation.createLSInput(); g.stringData = d; try { var a = b.parse(g); this.__loadDom__(a); this.__changeReadyState__(4) } catch (f) { } } } else { if (!window.opera) { oDomDocument.prototype.__checkForErrors__ = function(b) { if (this.documentElement.tagName == "parsererror") { var a = />([\s\S]*?)Location:([\s\S]*?)Line Number (\d+), Column (\d+):<sourcetext>([\s\S]*?)(?:\-*\^)/; a.test(this.xml); this.parseError.errorCode = -999999; this.parseError.reason = RegExp.$1; this.parseError.url = RegExp.$2; this.parseError.line = parseInt(RegExp.$3); this.parseError.linepos = parseInt(RegExp.$4); this.parseError.srcText = RegExp.$5 } } } oDomDocument.prototype.loadXML = function(f) { this.__initError__(); this.__changeReadyState__(1); var c = new DOMParser(); var b = null; var d = false; try { b = c.parseFromString(f, "text/xml"); this.__loadDom__(b) } catch (a) { this.__checkForErrors__(a); d = true } if (!d) { this.__checkForErrors__() } this.__changeReadyState__(4) } } if (Node.prototype.__defineGetter__) { if (typeof Node.prototype.xml == "undefined") { Node.prototype.__defineGetter__("xml", function() { var a = new XMLSerializer(); return a.serializeToString(this, "text/xml") }) } if (typeof Node.prototype.text == "undefined") { Node.prototype.__defineGetter__("text", function() { var a = ""; for (var b = 0; b < this.childNodes.length; b++) { if (this.childNodes[b].hasChildNodes()) { a += this.childNodes[b].text } else { a += this.childNodes[b].nodeValue } } return a }) } } } function zXslt() { } zXslt.transformToText = function(c, f) { if (zXml.settings.hasXSLTProcessor) { var d = new XSLTProcessor(); d.importStylesheet(f); var b = d.transformToDocument(c); var a = b.xml; if (a.indexOf("<transformiix:result") > -1) { a = a.substring(a.indexOf(">") + 1, a.lastIndexOf("<")) } return a } else { if (zXml.settings.hasActiveX) { return c.transformNode(f) } else { throw new Error("No XSLT engine found.") } } }; function zXPath() { } zXPath.selectNodes = function(d, j, c) { if (typeof d.ownerDocument.evaluate != "undefined") { c = c || {}; var b = function(k) { return c[k] }; var g = d.ownerDocument.evaluate(j, d, b, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); var i = new Array; if (g != null) { var a = g.iterateNext(); while (a) { i.push(a); a = g.iterateNext() } } return i } else { if (zXml.settings.hasActiveX) { if (c) { var h = ""; for (var f in c) { h += "xmlns:" + f + "='" + c[f] + "' " } d.ownerDocument.setProperty("SelectionNamespaces", h) } return d.selectNodes(j) } else { throw new Error("No XPath engine found.") } } }; zXPath.selectSingleNode = function(c, b, h) { if (typeof c.ownerDocument.evaluate != "undefined") { h = h || {}; var a = function(i) { return h[i] }; var g = c.ownerDocument.evaluate(b, c, a, XPathResult.FIRST_ORDERED_NODE_TYPE, null); if (g != null) { return g.singleNodeValue } else { return null } } else { if (zXml.settings.hasActiveX) { if (h) { var f = ""; for (var d in h) { f += "xmlns:" + d + "='" + h[d] + "' " } c.ownerDocument.setProperty("SelectionNamespaces", f) } return c.selectSingleNode(b) } else { throw new Error("No XPath engine found.") } } }; function zXMLSerializer() { } zXMLSerializer.prototype.serializeToString = function(c) { var b = ""; switch (c.nodeType) { case 1: b = "<" + c.tagName; for (var a = 0; a < c.attributes.length; a++) { b += " " + c.attributes[a].name + '="' + c.attributes[a].value + '"' } b += ">"; for (var a = 0; a < c.childNodes.length; a++) { b += this.serializeToString(c.childNodes[a]) } b += "</" + c.tagName + ">"; break; case 3: b = c.nodeValue; break; case 4: b = "<![CDATA[" + c.nodeValue + "]]>"; break; case 7: b = "<?" + c.nodevalue + "?>"; break; case 8: b = "<!--" + c.nodevalue + "-->"; break; case 9: for (var a = 0; a < c.childNodes.length; a++) { b += this.serializeToString(c.childNodes[a]) } break } return b };
