var net=new Object(); net.READY_STATE_UNINITIALIZED=0; net.READY_STATE_LOADING=1; net.READY_STATE_LOADED=2; net.READY_STATE_INTERACTIVE=3; net.READY_STATE_COMPLETE=4; net.ContentLoader=function(url,onload,onerror){ this.url=url; this.req=null; this.onload=onload; this.onerror=(onerror)?onerror:this.defaultError; this.loadXMLDoc(url); } net.ContentLoader.prototype={ loadXMLDoc:function(url){ if (window.XMLHttpRequest) { this.req=new XMLHttpRequest(); } else if (window.ActiveXObject) { this.req=new ActiveXObject("Microsoft.XMLHTTP"); } if (this.req){ try{ var loader=this; this.req.onreadystatechange=function(){ loader.onReadyState.call(loader); } this.req.open('GET',url,true); this.req.send(null); }catch(err){ this.onerror.call(this); } } }, onReadyState:function(){ var req=this.req; var ready=req.readyState; if (ready==net.READY_STATE_COMPLETE){ var httpStatus=req.status; if (httpStatus==200 || httpStatus==0){ this.onload.call(this); } else { this.onerror.call(this); } } }, defaultError:function(){ // NOTE: IGNORING ERRORS DON'T HAZZLE THE USER !!! /* alert("error fetching data!" +"\n\nreadyState:"+this.req.readyState +"\nstatus: "+this.req.status +"\nheaders: "+this.req.getAllResponseHeaders()); */ } }