//тест
var zXml={
useActiveX:(typeof ActiveXObject!="undefined"),
useDom:document.implementation&&document.implementation.createDocument,
useXmlHttp:(typeof XMLHttpRequest!="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.useXmlHttp)
{
return new XMLHttpRequest();
}else
if(zXml.useActiveX)
{if(!zXml.XMLHTTP_VER)
{
for(var i=0;i<zXml.ARR_XMLHTTP_VERS.length;i++)
{
try{
new ActiveXObject(zXml.ARR_XMLHTTP_VERS[i]);
zXml.XMLHTTP_VER=zXml.ARR_XMLHTTP_VERS[i];
break;
}
catch(oError)
{
;
}
}
}
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.useXmlHttp||zXml.useActiveX;
}
;
function zXmlDom()
{}
zXmlDom.createDocument=function()
{
if(zXml.useDom){
var oXmlDom=document.implementation.createDocument("","",null);
oXmlDom.parseError={
valueOf:function(){return this.errorCode;}
,toString:function(){return this.errorCode.toString()}};
oXmlDom.__initError__();
oXmlDom.addEventListener("load",function(){
this.__checkForErrors__();this.__changeReadyState__(4);}
,false);return oXmlDom;;}
else
if(zXml.useActiveX){if(!zXml.DOM_VER)
{for(var i=0;i<zXml.ARR_DOM_VERS.length;i++)
{try{new ActiveXObject(zXml.ARR_DOM_VERS[i]);
zXml.DOM_VER=zXml.ARR_DOM_VERS[i];break;}
catch(oError){;}}}
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.useDom||zXml.useActiveX;};
var oMozDocument=null;if(typeof XMLDocument!="undefined")
{oMozDocument=XMLDocument;}else if(typeof Document!="undefined")
{oMozDocument=Document;}if(oMozDocument&&!window.opera)
{oMozDocument.prototype.readyState=0;oMozDocument.prototype.onreadystatechange=null;
oMozDocument.prototype.__changeReadyState__=function(iReadyState)
{this.readyState=iReadyState;
if(typeof this.onreadystatechange=="function")
{this.onreadystatechange();}};
oMozDocument.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;};
oMozDocument.prototype.__checkForErrors__=function()
{if(this.documentElement.tagName=="parsererror")
{var reError=/>([\s\S]*?)Location:([\s\S]*?)Line Number(\d+),Column(\d+):<sourcetext>([\s\S]*?)(?:\-*\^)/;
reError.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;}};
oMozDocument.prototype.loadXML=function(sXml){this.__initError__();
this.__changeReadyState__(1);
var oParser=new DOMParser();
var oXmlDom=oParser.parseFromString(sXml,"text/xml");
while(this.firstChild){this.removeChild(this.firstChild);
}for(var i=0;i<oXmlDom.childNodes.length;i++)
{var oNewNode=this.importNode(oXmlDom.childNodes[i],true);
this.appendChild(oNewNode);}this.__checkForErrors__();
this.__changeReadyState__(4);};
oMozDocument.prototype.__load__=oMozDocument.prototype.load;
oMozDocument.prototype.load=function(sURL){this.__initError__();
this.__changeReadyState__(1);this.__load__(sURL);};
Node.prototype.__defineGetter__("xml",function(){var oSerializer=new XMLSerializer();
return oSerializer.serializeToString(this,"text/xml");});
Node.prototype.__defineGetter__("text",function(){var sText="";
for(var i=0;i<this.childNodes.length;i++){if(this.childNodes[i].hasChildNodes())
{sText+=this.childNodes[i].text;}
else
{sText+=this.childNodes[i].nodeValue;}}
return sText;});
}
function zXslt(){}zXslt.transformToText=function(oXml,oXslt)
{
if(typeof XSLTProcessor!="undefined")
{
var oProcessor=new XSLTProcessor();
oProcessor.importStylesheet(oXslt);
var oResultDom=oProcessor.transformToDocument(oXml);
var sResult=oResultDom.xml;
if(sResult.indexOf("<transformiix:result")>-1)
{sResult=sResult.substring(sResult.indexOf(">")+1,sResult.lastIndexOf("<"));
}return sResult;;}else if(zXml.useActiveX){return oXml.transformNode(oXslt);
}else{throw new Error("No XSLT engine found.");}};
function zXPath(){}zXPath.selectNodes=function(oRefNode,sXPath,sXmlNs){if(typeof XPathEvaluator!="undefined")
{oXmlNs=oXmlNs||{};var nsResolver=function(sPrefix){return oXmlNs[sPrefix];
};
var oEvaluator=new XPathEvaluator();
var oResult=oEvaluator.evaluate(sXPath,oRefNode,nsResolver,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);
var aNodes=new Array;
if(oResult!=null){
var oElement=oResult.iterateNext();
while(oElement){aNodes.push(oElement);
oElement=oResult.iterateNext();
}
}
return aNodes;
}else
if(zXml.useActiveX){if(oXmlNs)
{
var sXmlNs="";
for(var sProp in oXmlNs)
{
sXmlNs+="xmlns:"+sProp+"="+oXmlNs[sProp]+" ";
}
oRefNode.ownerDocument.setProperty("SelectionNamespaces",sXmlNs);
}
;
return oRefNode.selectNodes(sXPath);
}
else
{
throw new Error("No XPath engine found.");
}
}
;
zXPath.selectSingleNode=function(oRefNode,sXPath,oXmlNs)
{
if(typeof XPathEvaluator!="undefined"){
;
oXmlNs=oXmlNs||{};
var nsResolver=function(sPrefix){return oXmlNs[sPrefix];
};
var oEvaluator=new XPathEvaluator();
var oResult=oEvaluator.evaluate(sXPath,oRefNode,nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE,null);
if(oResult!=null){
return oResult.singleNodeValue;
}else{return null
;}
;}else
if(zXML.useActiveX){
if(oXmlNs){var sXmlNs="";
for(var sProp in oXmlNs){sXmlNs+="xmlns:"+sProp+"="+oXmlNs[sProp]+" ";
}
oRefNode.ownerDocument.setProperty("SelectionNamespaces",sXmlNs);
};
return oRefNode.selectSingleNode(sXPath);
}
else{
throw new Error("No XPath engine found.");
}};
function zXMLSerializer()
{}
zXMLSerializer.prototype.serializeToString=function(oNode)
{
var sXml="";
switch(oNode.nodeType)
{
case 1:sXml="<"+oNode.tagName;
for(var i=0;i<oNode.attributes.length;i++)
{
sXml+=" "+oNode.attributes[i].name+"=\""+oNode.attributes[i].value+"\"";
}
sXml+=">";
for(var i=0;i<oNode.childNodes.length;i++)
{
sXml+=this.serializeToString(oNode.childNodes[i]);
}
sXml+="</"+oNode.tagName+">";
break;
case 3:sXml=oNode.nodeValue;
break;
case 4:sXml="<![CDATA["+oNode.nodeValue+"]]>";
break;
case 7:sXml="<?"+oNode.nodevalue+"?>";
break;
case 8:sXml="<!--"+oNode.nodevalue+"-->";
break;
case 9:
for(var i=0;i<oNode.childNodes.length;i++)
{
sXml+=this.serializeToString(oNode.childNodes[i]);
}
break;
};
return sXml;};


