function HttpClient() { }HttpClient.prototype = {     // type GET,POST passed to open     requestType:'POST',     // when set to true, async calls are made     isAsync:true,     // where an XMLHttpRequest instance is stored     xmlhttp:false,      // what is called when a successful async call is made      callback:false,	 statusDiv:'HttpClientStatus',     // what is called when send is called on XMLHttpRequest     // set your own function to onSend to have a custom loading     // effect     onSend:function() {     //    document.getElementById(this.statusDiv).style.display = 'block';     },	      // what is called when readyState 4 is reached, this is     // called before your callback      onload:function() {      //    document.getElementById(this.statusDiv).style.display = 'none';      },	  // what is called when an http error happens     onError:function(error) {         alert(error);     },     // method to initialize an xmlhttpclient     init:function() {       try {           // Mozilla / Safari            this.xmlhttp = 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.xmlhttp = new ActiveXObject                   (XMLHTTP_IDS[i]);                   success = true;               } catch (e) {}           }           if (!success) {               this.onError('Unable to create XMLHttpRequest.');           }        }     },     // method to make a page request     // @param string url  The page to make the request to     // @param string payload  What you're sending if this is a POST    //  request    makeRequest: function(url,payload) {         if (!this.xmlhttp) {             this.init();         }         this.xmlhttp.open(this.requestType,url,this.isAsync);		 this.xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');         // set onreadystatechange here since it will be reset after a        //completed call in Mozilla         var self = this;         this.xmlhttp.onreadystatechange = function() {         self._readyStateChangeCallback(); }         this.xmlhttp.send(payload);/*         if (!this.isAsync) {             return this.xmlhttp.responseText;         } */   },     // internal method used to handle ready state changes    _readyStateChangeCallback:function() {		 switch(this.xmlhttp.readyState) {            case 2:               this.onSend();               break;            case 4:               this.onload();				if (this.xmlhttp.status == 200) {					this.callback(this.xmlhttp.responseText);				} else {                   this.onError('HTTP Error Making Request: '+'['+this.xmlhttp.status+']--'+this.xmlhttp.statusText);               }               break;         }     } }