/*^BFPAI/AsyncRequestManager.imp*/ function ARM(){var RQ=[];var rqi=-1;var nextRequestID=0;function dQRO(){while(rqi==-1&&RQ.length){rqi=0;if(RQ[rqi].op()=="GET"){RQ[rqi].dG();}else if(RQ[rqi].op()=="POST"){RQ[rqi].dP();}else{var RO=RQ[rqi];RQ.splice(rqi,1);if(RO.ACB()!=null){RO.ACB()({errCode:"SYNTAX:InvalidOp",errText:"Syntax error: an invalid operation has been submitted to the asynchronous request module"},RO);}rqi=-1;}}}return {gARO:function(PRO){var obj=null;var reqid=-1;var opcode=null;var opurl=null;var opparams=null;var oppostbody=null;var opOBJ=null;var opACB=null;function RSCH(){try{if(rqi!=-1&&obj!=null){if(obj.readyState!=4){return;}var RO=RQ[rqi];RQ.splice(rqi,1);rqi=-1;if(opACB!=null){opACB({errCode:0,errText:null},RO);}}}catch(e){if(rqi!=-1){var RO=RQ[rqi];RQ.splice(rqi,1);rqi=-1;if(RO.ACB()!=null){RO.ACB()({errCode:"BROWSER:Exception",errText:"An error occured while waiting for an ansynchronous request to complete"},RO);}}}dQRO();}try{obj=new XMLHttpRequest();}catch(e){}if(obj==null){return null;}if(typeof(PRO)!="undefined"&&PRO!=null){reqid=PRO.id();}return {GET:function(urltoget,urlparams,object,callback){if(reqid==-1){reqid=nextRequestID++;}opcode="GET";opurl=urltoget;opparams=urlparams;opOBJ=object;opACB=callback;RQ[RQ.length]=this;if(rqi==-1){dQRO();}return reqid;},POST:function(urltopostto,urlparams,postbody,object,callback){if(reqid==-1){reqid=nextRequestID++;}opcode="POST";opurl=urltopostto;opparams=urlparams;oppostbody=postbody;opOBJ=object;opACB=callback;RQ[RQ.length]=this;if(rqi==-1){dQRO();}return reqid;},cancel:function(sdq){try{if(rqi!=-1&&RQ[rqi].reqid==reqid){var RO=RQ[rqi];RQ.splice(rqi,1);rqi=-1;if(obj!=null){obj.abort();}if(RO.ACB()!=null){RO.ACB()({errCode:"ABORT",errText:"Operation aborted in progress"},RO);}if(!sdq){dQRO();}}else{var ti=0;while(ti