// AJAX ==============================================================================
function NetJax(){ 
 this.request = false;           
 this.onload  = null;            
 this.onerror = NetJax.prototype.defaultError; 
} 
/* -------------------------------------------------------------------------------- */
NetJax.prototype.setRequest = function(url,prs) {
  if(this.createRequest()){
   if(this.onload!=null){ var load  = this; 
    this.request.onreadystatechange = function(){ NetJax.prototype.updatePage.call(load);}
   }
   this.request.open("POST",url,true);
   this.request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
   this.request.setRequestHeader('Content-length',prs.length);
   this.request.setRequestHeader('Connection','close');
   this.request.send(prs);
  }
}
/* -------------------------------------------------------------------------------- */
NetJax.prototype.createRequest = function(){
 if(window.XMLHttpRequest){
  this.request=new XMLHttpRequest();
 }else if(window.ActiveXObject){
  try{ this.request = new ActiveXObject("Microsoft.XMLHTTP"); }
  catch(err1){ try{ this.request=new ActiveXObject("Msxml2.XMLHTTP"); }
   catch(err2){ try{ this.request=new ActiveXObject("Msxml2.XMLHTTP.4.0"); }
    catch(err3){ this.request=null; }
 }}} 
 if(this.request) return true;
 else return false;
}
/* -------------------------------------------------------------------------------- */
NetJax.prototype.updatePage = function() {
 if(this.request.readyState==4)
  if(this.request.status==200){this.onload.call(this);this.onload=null;}
  else{this.onerror.call(this);this.onerror='defaultError';}           
}
/* -------------------------------------------------------------------------------- */
NetJax.prototype.defaultError = function(){
 alert("error fetching data!"
 +"\n\nreadyState:"+this.request.readyState
 +"\nstatus: "+this.request.status
 +"\nheaders: "+this.request.getAllResponseHeaders());
}