/* namespacing object */ 
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;





/*--- content loader object for cross-browser requests ---*/

net.ContentLoader=function(url,onload,onerror,method,params,contentType){

  this.req=null;

  this.onload=onload;

  this.onerror=(onerror) ? onerror : this.defaultError;

  this.loadXMLDoc(url,method,params,contentType);

}



net.ContentLoader.prototype.loadXMLDoc=function(url,method,params,contentType){

  if (!method){

    method="GET";

  }

  if (!contentType && method=="POST"){

    contentType='application/x-www-form-urlencoded';

  }

  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(){

        net.ContentLoader.onReadyState.call(loader);

      }

      this.req.open(method,url,true);

      if (contentType){

        this.req.setRequestHeader('Content-Type', contentType);

      }

      this.req.send(params);

    }catch (err){

      this.onerror.call(this);

    }

  }

}



net.ContentLoader.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);

    }

  }

}



net.ContentLoader.prototype.defaultError=function(){

	//alert("We're sorry, but your request could not be completed at this time. Please try again in a few minutes.");

  alert("error fetching data!"

    +"\n\nreadyState:"+this.req.readyState

    +"\nstatus: "+this.req.status

    +"\nheaders: "+this.req.getAllResponseHeaders());



}



/* ENGINES */

function ajaxRequest(url,func) {

    if (window.XMLHttpRequest) {

        var req = new XMLHttpRequest();

        if (func) {req.onreadystatechange = function() {func(req);}}

        req.open("GET", url, true);

        //if (browser.isSafari) {req.setRequestHeader('If-Modified-Since','Wed, 15 Nov 1995 00:00:00 GMT');}

        req.send(null);

    } else if (window.ActiveXObject) {

        isIE = true;

		try {var req = new ActiveXObject("Msxml2.XMLHTTP");}

		catch(e) {req = new ActiveXObject("Microsoft.XMLHTTP");}

        if (req) {

            if (func) {req.onreadystatechange = function() {func(req);}}

            req.open("GET", url, true);

            req.send();

        }

    }

}




 
