Object.extend=function(_1,_2,_3){for(prop in _2){if(_3==false&&_1[prop]!=null){continue;}_1[prop]=_2[prop];}return _1;};Object.extend(Function.prototype,{apply:function(o,a){var r,x="__fapply";if(typeof o!="object"){o={};}o[x]=this;var s="r = o."+x+"(";for(var i=0;i0){s+=",";}s+="a["+i+"]";}s+=");";eval(s);delete o[x];return r;},bind:function(o){if(!Function.__objs){Function.__objs=[];Function.__funcs=[];}var _a=o.__oid;if(!_a){Function.__objs[_a=o.__oid=Function.__objs.length]=o;}var me=this;var _c=me.__fid;if(!_c){Function.__funcs[_c=me.__fid=Function.__funcs.length]=me;}if(!o.__closures){o.__closures=[];}var _d=o.__closures[_c];if(_d){return _d;}o=null;me=null;return Function.__objs[_a].__closures[_c]=function(){return Function.__funcs[_c].apply(Function.__objs[_a],arguments);};}},false);Object.extend(Array.prototype,{push:function(o){this[this.length]=o;},addRange:function(_f){if(_f.length>0){for(var i=0;i<_f.length;i++){this.push(_f[i]);}}},clear:function(){this.length=0;return this;},shift:function(){if(this.length==0){return null;}var o=this[0];for(var i=0;i");}}if(window.frames&&window.frames[_2b]){this.iframe=window.frames[_2b];}this.iframe.name=_2b;this.iframe.document.open();this.iframe.document.write("");this.iframe.document.close();}this.method=_28;this.url=url;this.async=_2a;},setRequestHeader:function(_2d,_2e){for(var i=0;i=0){tag="textarea";}if(doc.all){ele=doc.createElement("<"+tag+" name=\""+_34+"\" />");}else{ele=doc.createElement(tag);ele.setAttribute("name",_34);}ele.setAttribute("value",_35);_33.appendChild(ele);ele=null;},send:function(_38){if(this.iframe==null){return;}var doc=this.iframe.contentDocument||this.iframe.document;var _3a=doc.createElement("form");doc.body.appendChild(_3a);_3a.setAttribute("action",this.url);_3a.setAttribute("method",this.method);_3a.setAttribute("enctype","application/x-www-form-urlencoded");for(var i=0;i=" "){if(c=="\\"||c=="\""){v.push("\\");}v.push(c);}else{switch(c){case "\n":v.push("\\n");break;case "\r":v.push("\\r");break;case "\b":v.push("\\b");break;case "\f":v.push("\\f");break;case "\t":v.push("\\t");break;default:v.push("\\u00");v.push(c.charCodeAt().toString(16));}}}return "\""+v.join("")+"\"";case Array:var v=[];for(var i=0;i0){return "{"+v.join(",")+"}";}return "{}";}return o.toString();}},dispose:function(){if(AjaxPro.queue!=null){AjaxPro.queue.dispose();}}},false);addEvent(window,"unload",AjaxPro.dispose);AjaxPro.Request=function(url){this.url=url;this.xmlHttp=null;};AjaxPro.Request.prototype={url:null,callback:null,onLoading:AjaxPro.noOperation,onError:AjaxPro.noOperation,onTimeout:AjaxPro.noOperation,onStateChanged:AjaxPro.noOperation,args:null,context:null,isRunning:false,abort:function(){if(this.timeoutTimer!=null){clearTimeout(this.timeoutTimer);}if(this.xmlHttp){this.xmlHttp.onreadystatechange=AjaxPro.noOperation;this.xmlHttp.abort();}if(this.isRunning){this.isRunning=false;this.onLoading(false);}},dispose:function(){this.abort();},getEmptyRes:function(){return {error:null,value:null,request:{method:this.method,args:this.args},context:this.context,duration:this.duration};},endRequest:function(res){this.abort();if(res.error!=null){this.onError(res.error,this);}if(typeof this.callback=="function"){this.callback(res,this);}},mozerror:function(){if(this.timeoutTimer!=null){clearTimeout(this.timeoutTimer);}var res=this.getEmptyRes();res.error={Message:"Unknown",Type:"ConnectFailure",Status:0};this.endRequest(res);},doStateChange:function(){this.onStateChanged(this.xmlHttp.readyState,this);if(this.xmlHttp.readyState!=4||!this.isRunning){return;}this.duration=new Date().getTime()-this.__start;if(this.timeoutTimer!=null){clearTimeout(this.timeoutTimer);}var res=this.getEmptyRes();if(this.xmlHttp.status==200&&this.xmlHttp.statusText=="OK"){res=this.createResponse(res);}else{res=this.createResponse(res,true);res.error={Message:this.xmlHttp.statusText,Type:"ConnectFailure",Status:this.xmlHttp.status};}this.endRequest(res);},createResponse:function(r,_4b){if(!_4b){var _4c=new String(this.xmlHttp.responseText);if(AjaxPro.cryptProvider!=null&&typeof AjaxPro.cryptProvider=="function"){_4c=AjaxPro.cryptProvider.decrypt(_4c);}if(this.xmlHttp.getResponseHeader("Content-Type")=="text/xml"){r.value=this.xmlHttp.responseXML;}else{if(_4c!=null&&_4c.trim().length>0){r.json=_4c;eval("r.value = "+_4c+"*/");}}}return r;},timeout:function(){this.duration=new Date().getTime()-this.__start;var r=this.onTimeout(this.duration,this);if(typeof r=="undefined"||r!=false){this.abort();}else{this.timeoutTimer=setTimeout(this.timeout.bind(this),AjaxPro.timeoutPeriod);}},invoke:function(_4e,_4f,_50,_51){this.__start=new Date().getTime();if(this.xmlHttp==null){this.xmlHttp=new XMLHttpRequest();}this.isRunning=true;this.method=_4e;this.args=_4f;this.callback=_50;this.context=_51;var _52=typeof _50=="function"&&_50!=AjaxPro.noOperation;if(_52){if(MS.Browser.isIE){this.xmlHttp.onreadystatechange=this.doStateChange.bind(this);}else{this.xmlHttp.onload=this.doStateChange.bind(this);this.xmlHttp.onerror=this.mozerror.bind(this);}this.onLoading(true);}var _53=AjaxPro.toJSON(_4f)+"";if(AjaxPro.cryptProvider!=null){_53=AjaxPro.cryptProvider.encrypt(_53);}this.xmlHttp.open("POST",this.url,_52);this.xmlHttp.setRequestHeader("Content-Type","text/plain; charset=utf-8");this.xmlHttp.setRequestHeader("X-"+AjaxPro.ID+"-Method",_4e);if(AjaxPro.token!=null&&AjaxPro.token.length>0){this.xmlHttp.setRequestHeader("X-"+AjaxPro.ID+"-Token",AjaxPro.token);}if(!MS.Browser.isIE){this.xmlHttp.setRequestHeader("Connection","close");}this.timeoutTimer=setTimeout(this.timeout.bind(this),AjaxPro.timeoutPeriod);try{this.xmlHttp.send(_53);}catch(e){}if(!_52){return this.createResponse({error:null,value:null});}return true;}};AjaxPro.RequestQueue=function(_54){this.queue=[];this.requests=[];this.timer=null;if(isNaN(_54)){_54=2;}for(var i=0;i<_54;i++){this.requests[i]=new AjaxPro.Request();this.requests[i].callback=function(res){var r=res.context;res.context=r[3][1];r[3][0](res,this);};this.requests[i].callbackHandle=this.requests[i].callback.bind(this.requests[i]);}};AjaxPro.RequestQueue.prototype={process:function(){this.timer=null;if(this.queue.length==0){return;}for(var i=0;i0;i++){if(this.requests[i].isRunning==false){var r=this.queue.shift();this.requests[i].url=r[0];this.requests[i].onLoading=r[3].length>2&&r[3][2]!=null&&typeof r[3][2]=="function"?r[3][2]:AjaxPro.onLoading;this.requests[i].onError=r[3].length>3&&r[3][3]!=null&&typeof r[3][3]=="function"?r[3][3]:AjaxPro.onError;this.requests[i].onTimeout=r[3].length>4&&r[3][4]!=null&&typeof r[3][4]=="function"?r[3][4]:AjaxPro.onTimeout;this.requests[i].onStateChanged=r[3].length>5&&r[3][5]!=null&&typeof r[3][5]=="function"?r[3][5]:AjaxPro.onStateChanged;this.requests[i].invoke(r[1],r[2],this.requests[i].callbackHandle,r);r=null;}}if(this.queue.length>0&&this.timer==null){this.timer=setTimeout(this.process.bind(this),10);}},add:function(url,_5b,_5c,e){this.queue.push([url,_5b,_5c,e]);if(this.timer==null){this.timer=setTimeout(this.process.bind(this),1);}},abort:function(){this.queue.length=0;if(this.timer!=null){clearTimeout(this.timer);}this.timer=null;for(var i=0;i