/* Piemers lietosanai: var a = new AjaxClass2(); a.GetText("ajax.test.resp.php", RespnseTXT); function RespnseTXT(txt) { alert(txt); } //a.GetXml("ajax.test.resp.php", ResponseXML); function ResponseXML(xml) { alert(xml); } */ function AjaxClass2() { var me = this; var timeoutholder = null; var http = null; function _createRequestObject() { var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { xmlhttp = null; /* try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(f) { xmlhttp = null; }*/ } if(!xmlhttp && typeof XMLHttpRequest!="undefined") { try { xmlhttp = new XMLHttpRequest(); } catch (e) { xmlhttp=false; } } if (!xmlhttp && window.createRequest) { try { xmlhttp = window.createRequest(); } catch (e) { xmlhttp=false; } } return xmlhttp; } /*function _callInProgress() { //alert(["_callInProgress", http]); if (http == null) return false; switch (http.readyState) { case 1: case 2: case 3: return true; break; // Case 4 and 0 default: return false; break; } }*/ this.GetText = function(link, callback) { _Get(link, callback, null); } this.GetXml = function(link, callback) { _Get(link, null, callback); } function _Get(link, callback_txt, callback_xml) { if(timeoutholder!=null) window.clearTimeout(timeoutholder); //if (!_callInProgress()) //{ timeoutholder = window.setTimeout( function() { me.Send(link, callback_txt, callback_xml); }, 400); //} /*else { alert("fail"); }*/ } this.Send = function(link, callback_txt, callback_xml) { //alert("Send("+link+")"); // gļuks, kad nav neviena parametra //link = link + '&rndparbu=' + (new Date().getTime()); me.SendNoRandomParam(link, callback_txt, callback_xml); } this.SendNoRandomParam = function(link, callback_txt, callback_xml) { //alert("SendNoRandomParam("+link+")"); http = _createRequestObject(); http.open('get', link); http.setRequestHeader('X-File-AjaxRequest', 'GetRequest'); http.onreadystatechange = function(){_Response(callback_txt, callback_xml)}; http.send(null); } function _Response(callback_txt, callback_xml) { if((http.readyState == 4) && (http.status == 200)) { try { //alert (me.http.responseText); //alert (me.http.responseXML); //var XML_Obj = me.http.responseXML; if (callback_txt!=null) callback_txt(http.responseText); if (callback_xml!=null) callback_xml(http.responseXML); } catch(e) { //Ajax.http = null; //log("Kda HandleResponse(): " + e + ", " + e.name + ", " + e.message + ", " + e.description ); } finally { http = null; } } } this.Abort = function() { try { if (http != null) { http.onreadystatechange = function(){}; http.abort(); http = null; log("Abort finished"); } return true; } catch (e) { log("Kluda Ajax.abort(): " + e + ", " + e.name + ", " + e.message + ", " + e.description ); return false; } } }