rendered paste bodyvar XMLHTTP_UNITIALISED = 0;var XMLHTTP_LOADING = 1;var XMLHTTP_LOADED = 2;var XMLHTTP_INTERACTIVE = 3;var XMLHTTP_COMPLETED = 4;function XMLHttpRequestWrapper(oObject){ var self = this; this.oXMLHttp = oObject; this.bHasBeenInteractive = false; this.oXMLHttp.onreadystatechange = function() { self.handleReadyStatusChange(); }; this.fCallBack = null;}XMLHttpRequestWrapper.prototype.handleReadyStatusChange = function(){ if((this.oXMLHttp.readyState === XMLHTTP_INTERACTIVE)) { this.bHasBeenInteractive = true; } if((this.oXMLHttp.readyState === XMLHTTP_COMPLETED)) { if(this.bHasBeenInteractive === true) { this.fCallBack(); } else { alert("request completed but, never went through the correct stages"); } }}function test(){ var oDate = new Date(); ajaxRequest("/sandbox/test.php?time=" + oDate.getTime(), test2);}function test2(){ alert("test2()");}function ajaxRequest(sURL, fCallBack){ /* * Author: Chris Miles * Name: ajaxRequest * Purpose: starts a AJAX request. * Params: sURL - String - URL to fetch * fCallBack - Function - address of function to be executed upon completion of request. * Returns: none */ // need a clean way of creating new objects and cleaning them up // possible a global area gaRequests[gaRequests.length] = request; var oXMLHttp = getXMLHttpRequest(); var oXMLHttpWrap = new XMLHttpRequestWrapper(oXMLHttp); if(oXMLHttpWrap.oXMLHttp !== null) { oXMLHttpWrap.fCallBack = fCallBack; oXMLHttpWrap.oXMLHttp.open("GET", sURL, true); oXMLHttpWrap.oXMLHttp.send(null); }}function test3(){ var oEvent = window.event; alert("e: " + oEvent);}function getXMLHttpRequest(){ /* * Author: Chris Miles * Name: getXMLHttpRequest * Purpose: Gets a XMLHTTP Object for the current browser. * Params: none * Returns: oXMLHttp - Object - XMLHTTP object */ var oXMLHttp = null; if(typeof XMLHttpRequest !== "undefined") { oXMLHttp = new XMLHttpRequest(); } else { try { oXMLHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch(oException) { try { oXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(oException) { alert("Error creating oXMLHttp"); } } } return oXMLHttp;}