
function XML_Simple_selectNodes(d,v,c)
{var elNames=v.match(/(\/\/(.*)\/)*(.*)$/);if(!elNames)
return[];var elName=elNames[2];var childName=elNames[3];var elems=d.getElementsByTagName(elName);var ret=new Array();for(var i=0;elems[i];i++)
{for(var j=0;j<elems[i].childNodes.length;j++)
{var xmlNode=elems[i].childNodes[j];if(xmlNode.nodeType==1&&xmlNode.nodeName==childName)
{ret[ret.length]=xmlNode;}}}
return ret;}
function XML_selectNodes(cXPathString,xNode)
{if(isIE)
{return xNode.selectNodes(cXPathString);}
var xDoc=xNode.ownerDocument;if(!xDoc.createNSResolver)
{return XML_Simple_selectNodes(xDoc,cXPathString);}
var oNSResolver=xDoc.createNSResolver(xDoc.documentElement)
var aItems=xDoc.evaluate(cXPathString,xNode,oNSResolver,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null)
var aResult=[];for(var i=0;i<aItems.snapshotLength;i++)
{aResult[i]=aItems.snapshotItem(i);}
return aResult;}
function XML_selectSingleNode(cXPathString,xNode)
{if(isIE)
{return xNode.selectSingleNode(cXPathString);}
var xItems=XML_selectNodes(cXPathString,xNode);if(xItems.length>0)
{return xItems[0];}
else
{return null;}}
if(isFF)
{if(document.implementation.hasFeature("XPath","3.0"))
{XMLDocument.prototype.selectNodes=function(cXPathString,xNode)
{if(!xNode){xNode=this;}
var oNSResolver=this.createNSResolver(this.documentElement)
var aItems=this.evaluate(cXPathString,xNode,oNSResolver,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null)
var aResult=[];for(var i=0;i<aItems.snapshotLength;i++)
{aResult[i]=aItems.snapshotItem(i);}
return aResult;}
XMLDocument.prototype.selectSingleNode=function(cXPathString,xNode)
{if(!xNode){xNode=this;}
var xItems=this.selectNodes(cXPathString,xNode);if(xItems.length>0)
{return xItems[0];}
else
{return null;}}
Element.prototype.selectNodes=function(cXPathString)
{if(this.ownerDocument.selectNodes)
{return this.ownerDocument.selectNodes(cXPathString,this);}
else
{throw"For XML Elements Only";}}
Element.prototype.selectSingleNode=function(cXPathString)
{if(this.ownerDocument.selectSingleNode)
{return this.ownerDocument.selectSingleNode(cXPathString,this);}
else
{throw"For XML Elements Only";}}}}
debug("mozxpath.js");