//AJAX ??
var XmlHTTP_obj=function(){
    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
    return new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
    return new ActiveXObject("Microsoft.XMLHTTP");
}
}

//??????????? XML?
function GetXMLContent(urlstr){
    var http_request;
    urlstr.indexOf("?")==-1?urlstr=urlstr+"?"+Math.random():urlstr=urlstr+"&"+Math.random()
    var http_request=XmlHTTP_obj;
    http_request.open("GET",urlstr,false);
    http_request.send(null);
    return http_request.responseXML;
    }

//?FIREFOX??selectNodes()?selectSingleNode()
//?????http://km0ti0n.blunted.co.uk/mozXPath.xap
// check for XPath implementation
if( document.implementation.hasFeature("XPath", "3.0") )
{
// prototying the XMLDocument
XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
{
if( !xNode ) { xNode = this; }
//     alert("-----------111-->>>>>>"+xNode);
//     alert("---------222---->>>>>>"+this.documentElement);
//  setTimeout(function sleep(){ this;},100);
//  setTimeout("this",1000);
//    alert("------11111---->>>>"+this.documentElement);
 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;
}

// prototying the Element
Element.prototype.selectNodes = function(cXPathString)
{
if(this.ownerDocument.selectNodes)
{
  return this.ownerDocument.selectNodes(cXPathString, this);
}
else{throw "For XML Elements Only";}
}
}

// check for XPath implementation
if( document.implementation.hasFeature("XPath", "3.0") )
{
// prototying the XMLDocument
XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode)
{
if( !xNode ) { xNode = this; }
//   setTimeout(function sleep(){ var xItems = this.selectNodes(cXPathString, xNode);},100);
var xItems = this.selectNodes(cXPathString, xNode);
if( xItems.length > 0 )
{
return xItems[0];
}
else
{
return null;
}
}

// prototying the Element
Element.prototype.selectSingleNode = function(cXPathString)
{ 
if(this.ownerDocument.selectSingleNode)
{
return this.ownerDocument.selectSingleNode(cXPathString, this);
}
else{throw "For XML Elements Only";}
}
}

