﻿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){
try {
            this.req = new XMLHttpRequest();
       } catch (e) {
          // IE
           var XMLHTTP_IDS = new Array('MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP');
           var success = false;
          for (var i=0;i < XMLHTTP_IDS.length && !success; i++) {
              try {
                  this.req  = new ActiveXObject
                     (XMLHTTP_IDS[i]);
                  success = true;
              } catch (e) {}
           }
           if (!success) {
               this.onError('Unable to create XMLHttpRequest.');
           }
}
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(){alert("Could not fetch data!"+"\n\nreadyState:"+this.req.readyState+"\nstatus: "+this.req.status+"\nheaders: "+this.req.getAllResponseHeaders());}}

