function Xhrwrap(estr) {
 if(!estr)estr="Your browser does not appear to support AJAX requests and is therefore not compatible with this application. Sorry!";
 this.xhr=false;this.deb=0;try{this.xhr=new XMLHttpRequest();}catch(ms2){try{this.xhr=new ActiveXObject("Msxml2.XMLHTTP");}catch(ms1){
 try{this.xhr=new ActiveXObject("Microsoft.XMLHTTP");}catch(nix){this.xhr=false;}}}if(!this.xhr)alert(estr);
 this.debug=function(b){this.deb=b;}
 this.post=function(url,fm,cb,ix){if(!ix)ix=0;if(!this.xhr){alert('XHR object not yet set');return false;}this.xhr.open("POST", unescape(url));
 this.xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');var _xhr=this.xhr;
 this.xhr.onreadystatechange=function(){if(_xhr.readyState==4){if(_xhr.status==200){if(cb){var txt=_xhr.responseText;
 if(txt.substr(0,9)=="while(1);")txt=txt.substring(9);if(this.deb)alert(txt.substring(0,this.deb));cb(txt);} 
 }else if(_xhr.status==404)alert("404: the script "+url+" does not exist");else if(_xhr.status==403)alert("403: Access denied.");
 else if(_xhr.status==0)alert("Error: you may not be connected to the Internet");else alert("Error: status code is "+_xhr.status);}};
 if(fm)fm+='&isxhr='+ix;else fm='isxhr='+ix;if(document.cookie)fm+='&'+document.cookie;this.xhr.send(fm);}}