cambrient.Ajax=function(){var REQUEST_PERIOD_MS=100;var MAX_SIMULTANEOUS_REQUESTS=5;var self;var recentRequests=new Array();var requestQueue=new Array();var simultaneousRequests=0;function constructorFn(){self=this;self.processRequests();} constructorFn.prototype.processRequests=function(){setTimeout(self.processRequests,REQUEST_PERIOD_MS);if(simultaneousRequests>=MAX_SIMULTANEOUS_REQUESTS)return;if(requestQueue.length==0)return;var requestObj=requestQueue.shift();if(requestObj.successFunction==null){requestObj.successFunction=function(reply){if(element!=null){element.innerHTML=reply.responseText;}else{cambrient[elementId]=reply.responseText;} if(requestObj.chainFunction!=null&&isFunction(requestObj.chainFunction)){requestObj.chainFunction.call(reply);}}} if(requestObj.errorFunction==null){requestObj.errorFunction=function(reply){cambrient.userMessaging.error('ERROR!! '+reply);}} simultaneousRequests++;if(requestObj.post){new Ajax.Request(cambrient.contextPath+requestObj.url,{method:"post",parameters:requestObj.dataObj,onSuccess:function(reply){cambrient.sessionManager.serverPing();simultaneousRequests--;requestObj.successFunction(reply);},onFailure:function(reply){simultaneousRequests--;requestObj.errorFunction(reply);}});}else{new Ajax.Request(cambrient.contextPath+requestObj.url,{onSuccess:function(reply){cambrient.sessionManager.serverPing();simultaneousRequests--;requestObj.successFunction(reply);},onFailure:function(reply){simultaneousRequests--;requestObj.errorFunction(reply);}});}} constructorFn.prototype.recentlyRequested=function(url){var idx=requestQueue.find(function(item){if(item.url==url)return true;else return false;});if(idx>=0){return true;} return false;} constructorFn.prototype.requestPost=function(url,dataObj,successFunction,errorFunction,chainFunction){if(!self.recentlyRequested(url)){requestQueue.push({"url":url,"post":true,"dataObj":dataObj,"successFunction":successFunction,"errorFunction":errorFunction,"chainFunction":chainFunction});}} constructorFn.prototype.request=function(url,successFunction,errorFunction,chainFunction){if(!self.recentlyRequested(url)){requestQueue.push({"url":url,"successFunction":successFunction,"errorFunction":errorFunction,"chainFunction":chainFunction});}} return new constructorFn();} cambrient.ajax=new cambrient.Ajax();