if(Ext.util.Observable){Ext.apply(Ext.lib.Ajax,{events:{request:true,beforesend:true,response:true,exception:true,abort:true,timeout:true,readystatechange:true},onStatus:function(A,E,D,C){var B=Array.prototype.slice.call(arguments,1);A=[].concat(A||[]);Ext.each(A,function(F){F=parseInt(F,10);if(!isNaN(F)){var G="status_"+F;this.events[G]||(this.events[G]=true);this.on.apply(this,[G].concat(B))}},this)},unStatus:function(A,E,D,C){var B=Array.prototype.slice.call(arguments,1);A=[].concat(A||[]);Ext.each(A,function(F){F=parseInt(F,10);if(!isNaN(F)){var G="status_"+F;this.un.apply(this,[G].concat(B))}},this)},onReadyState:function(){this.fireEvent.apply(this,["readystatechange"].concat(Array.prototype.slice.call(arguments,0)))}},new Ext.util.Observable())}Ext.apply(Ext.lib.Ajax,{forceActiveX:false,createXhrObject:function(F){var E={status:{isError:false},tId:F},B;try{if(Ext.isIE7&&!!this.forceActiveX){throw ("IE7forceActiveX")}E.conn=new XMLHttpRequest()}catch(A){for(var C=0;C<this.activeX.length;++C){try{E.conn=new ActiveXObject(this.activeX[C]);break}catch(D){}}}finally{E.status.isError=typeof (E.conn)=="undefined"}return E},encoder:encodeURIComponent,serializeForm:function(B){if(typeof B=="string"){B=(document.getElementById(B)||document.forms[B])}var C,A,D,F,G="",I=false;for(var H=0;H<B.elements.length;H++){C=B.elements[H];F=B.elements[H].disabled;A=B.elements[H].name;D=B.elements[H].value;if(!F&&A){switch(C.type){case"select-one":case"select-multiple":for(var E=0;E<C.options.length;E++){if(C.options[E].selected){if(Ext.isIE){G+=this.encoder(A)+"="+this.encoder(C.options[E].attributes["value"].specified?C.options[E].value:C.options[E].text)+"&"}else{G+=this.encoder(A)+"="+this.encoder(C.options[E].hasAttribute("value")?C.options[E].value:C.options[E].text)+"&"}}}break;case"radio":case"checkbox":if(C.checked){G+=this.encoder(A)+"="+this.encoder(D)+"&"}break;case"file":case undefined:case"reset":case"button":break;case"submit":if(I==false){G+=this.encoder(A)+"="+this.encoder(D)+"&";I=true}break;default:G+=this.encoder(A)+"="+this.encoder(D)+"&";break}}}G=G.substr(0,G.length-1);return G},getHttpStatus:function(A){var C={status:0,statusText:"",isError:false,isLocal:false,isOK:false,error:null};try{if(!A){throw ("noobj")}C.status=A.status;C.isLocal=!A.status&&location.protocol=="file:"||Ext.isSafari&&A.status===undefined;C.isOK=(C.isLocal||(C.status>199&&C.status<300));C.statusText=A.statusText||""}catch(B){}return C},handleTransactionResponse:function(C,D,A){D=D||{};var B=null;if(!C.status.isError){C.status=this.getHttpStatus(C.conn);B=this.createResponseObject(C,D.argument)}if(C.status.isError){B=Ext.apply({},B||{},this.createExceptionObject(C.tId,D.argument,(A?A:false)))}B.options=C.options;B.fullStatus=C.status;if(!this.events||this.fireEvent("status_"+C.status.status,C.status.status,C,B,D,A)!==false){if(C.status.isOK&&!C.status.isError){if(!this.events||this.fireEvent("response",C,B,D,A)!==false){if(D.success){D.success.call(D.scope||null,B)}}}else{if(!this.events||this.fireEvent("exception",C,B,D,A)!==false){if(D.failure){D.failure.call(D.scope||null,B)}}}}if(C.options.async){this.releaseObject(C);B=null}else{this.releaseObject(C);return B}},createResponseObject:function(A,I){var F={};var N={},C="";try{F.responseText=A.conn.responseText}catch(J){F.responseText=""}F.responseXML=A.conn.responseXML;try{C=A.conn.getAllResponseHeaders()||""}catch(K){}if(A.status.isLocal){A.status.isOK=((A.status.status=(!!F.responseText.length)?200:404)==200);if(A.status.isOK&&(!F.responseXML||F.responseXML.childNodes.length===0)){var H=null;try{if(typeof (DOMParser)=="undefined"){H=new ActiveXObject("Microsoft.XMLDOM");H.async="false";H.loadXML(F.responseText)}else{var L=null;try{L=new DOMParser();H=L.parseFromString(F.responseText,"application/xml")}catch(K){}finally{L=null}}}catch(M){A.status.isError=true;A.status.error=M}F.responseXML=H}if(F.responseXML){var D=(F.responseXML.documentElement&&F.responseXML.documentElement.nodeName=="parsererror")||(F.responseXML.parseError||0)!==0||F.responseXML.childNodes.length===0;if(!D){C="Content-Type: "+(F.responseXML.contentType||"text/xml")+"\n"+C}}}var G=C.split("\n");for(var E=0;E<G.length;E++){var B=G[E].indexOf(":");if(B!=-1){N[G[E].substring(0,B)]=G[E].substring(B+2)}}F.tId=A.tId;F.status=A.status.status;F.statusText=A.status.statusText;F.getResponseHeader=N;F.getAllResponseHeaders=C;F.fullStatus=A.status;if(typeof I!="undefined"){F.argument=I}return F},request:function(G,E,A,F,B){B=Ext.apply({async:true,headers:false,userId:null,password:null,xmlData:null,jsonData:null},B||{});if(!this.events||this.fireEvent("request",G,E,A,F,B)!==false){var C=B.headers;if(C){for(var D in C){if(C.hasOwnProperty(D)){this.initHeader(D,C[D],false)}}}if(B.xmlData){this.initHeader("Content-Type","text/xml",false);G="POST";F=B.xmlData}else{if(B.jsonData){this.initHeader("Content-Type","text/javascript",false);G="POST";F=typeof B.jsonData=="object"?Ext.encode(B.jsonData):B.jsonData}}return this.makeRequest(B.method||G,E,A,F,B)}return null},makeRequest:function(H,E,G,A,B){var F=this.getConnectionObject();if(!F||F.status.isError){return Ext.apply(F,this.handleTransactionResponse(F,G))}else{F.options=B;try{F.conn.open(H,E,B.async,B.userId,B.password);F.conn.onreadystatechange=this.onReadyState?this.onReadyState.createDelegate(this,[F],0):Ext.emptyFn}catch(C){F.status.isError=true;F.status.error=C;var D=this.handleTransactionResponse(F,G);return Ext.apply(F,D)}if(this.useDefaultXhrHeader){if(!this.defaultHeaders["X-Requested-With"]){this.initHeader("X-Requested-With",this.defaultXhrHeader,true)}}if(A&&this.useDefaultHeader){this.initHeader("Content-Type",this.defaultPostHeader)}if(this.hasDefaultHeaders||this.hasHeaders){this.setHeader(F)}if(F.options.async){this.handleReadyState(F,G)}try{if(!this.events||this.fireEvent("beforesend",F,H,E,G,A,B)!==false){F.conn.send(A||null)}}catch(C){}return B.async?F:Ext.apply(F,this.handleTransactionResponse(F,G))}},abort:function(B,C,A){if(this.isCallInProgress(B)){B.conn.abort();window.clearInterval(this.poll[B.tId]);delete this.poll[B.tId];if(A){delete this.timeout[B.tId]}if(this.events){this.fireEvent(A?"timeout":"abort",B,C)}this.handleTransactionResponse(B,C,true);return true}else{return false}}});Ext.applyIf(Array.prototype,{map:function(B,E){var A=this.length;if(typeof B!="function"){throw new TypeError()}var D=new Array(A);for(var C=0;C<A;C++){if(C in this){try{D[C]=B.call(E||this,this[C],C,this)}catch(F){}}}return D},forEach:function(E,B){var A=0,C=this.length;while(A<C){try{E.apply(B||this,[this[A],A++,this])}catch(D){}}}});Ext.applyIf(Function.prototype,{forEach:function(A,E,C){C=C||A;for(var B in A){if(typeof this.prototype[B]=="undefined"){try{E.apply(C,[A[B],B,A])}catch(D){}}}}});Ext.applyIf(String.prototype,{forEach:function(D,B){var C=this.toString();B=B||this;var A=C.split("")||[];A.forEach(function(F,E){try{D.apply(B,[F,E,C])}catch(G){}},A)}});var forEach=function(A,D,B){B=B||A;if(A){var C=Object;if(A instanceof Function){C=Function}else{if(A.forEach instanceof Function){A.forEach(D,B);return }}C.forEach(A,D,B)}}
