rendered paste bodyvar XMLHTTP_UNITIALISED = 0;var XMLHTTP_LOADING = 1;var XMLHTTP_LOADED = 2;var XMLHTTP_INTERACTIVE = 3;var XMLHTTP_COMPLETED = 4;var giTimerId = null;var giTimerId2 = null;function XMLHttpRequestWrapper(oObject){ this.test = 1; this.oXMLHttp = oObject; this.bHasBeenInteractive = false; /*this.oXMLHttp.onreadystatechange = function() { this.handleReadyStatusChange(); };*/ this.oXMLHttp.onreadystatechange = testHandle; this.fCallBack = null;}function testHandle(){ alert(this.test);}XMLHttpRequestWrapper.prototype.handleReadyStatusChange = function(){ /* * Author: Chris Miles * Name: handleReadyStatusChange * Purpose: Called when the status of the XMLHttpRequest object's state changes. * Params: none * Returns: none */ /*if((this.oXMLHttp.readyState === XMLHTTP_INTERACTIVE)) { this.bHasBeenInteractive = true; } if((this.oXMLHttp.readyState === XMLHTTP_COMPLETED)) { if(this.bHasBeenInteractive === true) { this.fCallBack(this.oXMLHttp.responseText); this.handleReadyStatusChange = null; this.oXMLHttp.handleReadyStatusChange = null; } else { alert("request completed but, never went through the correct stages"); } }*/}function startAjaxRequest(){ if(giTimerId !== null) { clearTimeout(giTimerId); } var oDate = new Date(); ajaxRequest("/sandbox/test.php?time=" + oDate.getTime(), processAjaxResponse); //giTimerId = setTimeout("startAjaxRequest();", 1000);}function processAjaxResponse(sReponseText){ document.getElementById("output").innerHTML += "timer 1: " + sReponseText + "<br>\n";}function startAjaxRequest2(){ if(giTimerId !== null) { clearTimeout(giTimerId2); } var oDate = new Date(); ajaxRequest("/sandbox/test.php?time=" + oDate.getTime(), processAjaxResponse2); //giTimerId2 = setTimeout("startAjaxRequest2();", 2000);}function processAjaxResponse2(sReponseText){ document.getElementById("output2").innerHTML += "timer 2: " + sReponseText + "<br>\n";}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 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;}