var ClueXML=function(hosturl){this.host=hosturl}
ClueXML.prototype.GetHttpRequest=function(){if(window.XMLHttpRequest)return new XMLHttpRequest();else if(window.ActiveXObject)return new ActiveXObject("MsXml2.XmlHttp");}
ClueXML.prototype.LoadUrl=function(urlToCall,asyncFunctionPointer,state){var oClueXML=this;var bAsync=(typeof(asyncFunctionPointer)=='function');var oXmlHttp=this.GetHttpRequest();var hostaddress='http://'+oClueXML.host;urlToCall=hostaddress+urlToCall;oXmlHttp.open("GET",urlToCall,bAsync);if(bAsync){oXmlHttp.onreadystatechange=function(){if(oXmlHttp.readyState==4){var responseType=oXmlHttp.getResponseHeader('Content-Type');if(responseType.indexOf('xml')>-1)oClueXML.DOMDocument=oXmlHttp.responseXML;else
oClueXML=oXmlHttp.responseText;if(oXmlHttp.status==200){if(state)asyncFunctionPointer(oClueXML,state);else
asyncFunctionPointer(oClueXML);}
else
{alert('XML request error: '+oXmlHttp.responseText+' ('+oXmlHttp.status+')'+'['+urlToCall+']');}}}}
oXmlHttp.send(null);if(!bAsync){if(oXmlHttp.status==200)this.DOMDocument=oXmlHttp.responseXML;else
{alert('XML request error: '+oXmlHttp.statusText+' ('+oXmlHttp.status+')');}}}
ClueXML.prototype.SelectNodes=function(xpath){if(document.all)return this.DOMDocument.selectNodes(xpath);else
{var aNodeArray=new Array();var xPathResult=this.DOMDocument.evaluate(xpath,this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);if(xPathResult){var oNode=xPathResult.iterateNext();while(oNode){aNodeArray[aNodeArray.length]=oNode;oNode=xPathResult.iterateNext();}}
return aNodeArray;}}
ClueXML.prototype.SelectSingleNode=function(xpath){if(document.all)return this.DOMDocument.selectSingleNode(xpath);else
{var xPathResult=this.DOMDocument.evaluate(xpath,this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if(xPathResult&&xPathResult.singleNodeValue)return xPathResult.singleNodeValue;else
return null;}}