var arrCnt = 0; var eDealXmlhttpArr = new Array(); var eDealXmlCallbackArr = new Array(); var pageLoaded = false; var pileIndex = new Array(); var pileParam = new Array(); // Delay doAjax calls after the page has fully loaded // JQuery has to be loaded before, so we test if this is the case if (typeof $ == 'function') { $(document).ready(function () { var index = null ; while((index = pileIndex.shift())!=null){ eDealXmlhttpArr[index].send(pileParam.shift()); } pageLoaded = true; }); } function eDealAjaxCallBack(arrIndex) { if (eDealXmlhttpArr[arrIndex].readyState == 4) { hideWaiting(); eval(eDealXmlhttpArr[arrIndex].responseText); } } function getNewAjaxObject(){ var ajaxObject = null; try { ajaxObject = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { ajaxObject = new ActiveXObject("Microsoft.XMLHTTP"); } catch(oc) { ajaxObject = null; } } if (!ajaxObject && typeof XMLHttpRequest != "undefined") { ajaxObject = new XMLHttpRequest(); } return ajaxObject; } /* * Allowing to perform a synchronous Ajax calling to URL * in order to wait the result. */ function doSynchronAjax(url) { return $.ajax({url: url, async: false}).responseText; } function doAjax(url, callback, type, parameters) { if (callback == null) { callback = eDealAjaxCallBack; } eDealXmlCallbackArr[arrCnt] = callback; eDealXmlhttpArr[arrCnt] = getNewAjaxObject(); var ajaxCallback; eval('ajaxCallback = function(){ var fPtr = eDealXmlCallbackArr[' + arrCnt + ']; fPtr(' + arrCnt + '); }'); eDealXmlhttpArr[arrCnt].onreadystatechange = ajaxCallback; var callType; if (type != null) { callType = type; } else { callType = "GET"; } if(callType=="GET" && parameters!=null && parameters!=""){ if(url.indexOf("?")==-1){ url+="?"+parameters; }else{ url+="&"+parameters; } parameters=null; } eDealXmlhttpArr[arrCnt].open(callType, url, true); if (callType=="POST" && parameters!=null) { eDealXmlhttpArr[arrCnt].setRequestHeader('Content-Type','application/x-www-form-urlencoded'); } if(!pageLoaded){ pileIndex.push(arrCnt); pileParam.push(parameters); }else{ showWaiting(); eDealXmlhttpArr[arrCnt].send(parameters); } arrCnt = arrCnt + 1; return url; } function showWaiting() { var node = document.getElementById("waiting"); if (node != null) { node.style.display = "block"; node.style.bottom = "0px"; node.style.right = "0px"; node.style.zIndex = "20000"; } } function hideWaiting() { var node = document.getElementById("waiting"); if (node != null) { node.style.display = "none"; } } function doBackgroundAjax(url,displayFunction,htmlElementIDForResponse) { showWaiting(); if (displayFunction==null) { displayFunction=globalBackgoundStatusDisplayFunction; } doAjax(url,function(arrIndex) { if (eDealXmlhttpArr[arrIndex].readyState == 4) { hideWaiting(); var jsonRespTxt = eDealXmlhttpArr[arrIndex].responseText; var jsonResponse=JSON.parse(jsonRespTxt); displayFunction(jsonResponse,htmlElementIDForResponse); } },"GET",null); }