Ext.UpdateManager.defaults.indicatorText='<div class="loading-indicator">加载中...</div>';if(Ext.View){Ext.View.prototype.emptyText=""}if(Ext.grid.Grid){Ext.grid.Grid.prototype.ddText="{0} 选择行"}if(Ext.TabPanelItem){Ext.TabPanelItem.prototype.closeText="关闭"}if(Ext.form.Field){Ext.form.Field.prototype.invalidText="输入值非法"}Date.monthNames=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"];Date.dayNames=["日","一","二","三","四","五","六"];if(Ext.MessageBox){Ext.MessageBox.buttonText={ok:"确定",cancel:"取消",yes:"是",no:"否"}}if(Ext.util.Format){Ext.util.Format.date=function(A,B){if(!A){return""}if(!(A instanceof Date)){A=new Date(Date.parse(A))}return A.dateFormat(B||"y年m月d日")};Ext.util.Format.cnMoney=function(A){A=(Math.round((A-0)*100))/100;A=(A==Math.floor(A))?A+".00":((A*10==Math.floor(A*10))?A+"0":A);A=String(A);var E=A.split(".");var D=E[0];var B=E[1]?"."+E[1]:".00";var C=/(\d+)(\d{3})/;while(C.test(D)){D=D.replace(C,"$1,$2")}A=D+B;if(A.charAt(0)=="-"){return'<span style="color:red;">-¥'+A.substr(1)+"</span>"}return"¥"+A}}if(Ext.DatePicker){Ext.apply(Ext.DatePicker.prototype,{todayText:"今天",minText:"日期在最小日期之前",maxText:"日期在最大日期之后",disabledDaysText:"",disabledDatesText:"",monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:"下月 (Control+Right)",prevText:"上月 (Control+Left)",monthYearText:"选择一个月 (Control+Up/Down 来改变年)",todayTip:"{0} (空格键选择)",format:"y年m月d日"})}if(Ext.PagingToolbar){Ext.apply(Ext.PagingToolbar.prototype,{beforePageText:"页",afterPageText:"页共 {0} 页",firstText:"第一页",prevText:"前一页",nextText:"下一页",lastText:"最后页",refreshText:"刷新",displayMsg:"显示 {0} - {1}，共 {2} 条",emptyMsg:"没有数据需要显示"})}if(Ext.form.TextField){Ext.apply(Ext.form.TextField.prototype,{minLengthText:"该输入项的最小长度是 {0}",maxLengthText:"该输入项的最大长度是 {0}",blankText:"该输入项为必输项",regexText:"",emptyText:null})}if(Ext.form.NumberField){Ext.apply(Ext.form.NumberField.prototype,{minText:"该输入项的最小值是 {0}",maxText:"该输入项的最大值是 {0}",nanText:"{0} 不是有效数值"})}if(Ext.form.DateField){Ext.apply(Ext.form.DateField.prototype,{disabledDaysText:"禁用",disabledDatesText:"禁用",minText:"该输入项的日期必须在 {0} 之后",maxText:"该输入项的日期必须在 {0} 之前",invalidText:"{0} 是无效的日期 - 必须符合格式： {1}",format:"y年m月d日"})}if(Ext.form.ComboBox){Ext.apply(Ext.form.ComboBox.prototype,{loadingText:"加载...",valueNotFoundText:undefined})}if(Ext.form.VTypes){Ext.apply(Ext.form.VTypes,{emailText:'该输入项必须是电子邮件地址，格式如： "user@domain.com"',urlText:'该输入项必须是URL地址，格式如： "http://www.domain.com"',alphaText:"该输入项只能包含字符和_",alphanumText:"该输入项只能包含字符,数字和_"})}if(Ext.grid.GridView){Ext.apply(Ext.grid.GridView.prototype,{sortAscText:"按升序排列",sortDescText:"按降序排列",lockText:"锁定列",unlockText:"解锁列",columnsText:"显示列"})}if(Ext.grid.PropertyColumnModel){Ext.apply(Ext.grid.PropertyColumnModel.prototype,{nameText:"名称",valueText:"值",dateFormat:"y年m月d日"})}if(Ext.layout.BorderLayout.SplitRegion){Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype,{splitTip:"拖动来改变尺寸.",collapsibleSplitTip:"拖动来改变尺寸. 双击隐藏."})}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.headers["Content-Type"]="application/json";this.hasHeaders=true;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.headers["Content-Type"]===undefined)){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)}};Ext.apply(Ext.form.BasicForm.prototype,{getValues:function(){var A={};this.items.each(function(B){if(B.isFormField&&B.getName()&&B.submitValue!==false){A[B.getName()]=B.getValue()}});return A},setReadOnly:function(A){if(A){Ext.each(A,function(B){this.findField(B).disable()})}else{this.items.each(function(B){B.disable()})}},setEditable:function(A){if(A){Ext.each(A,function(B){this.findField(B).enable()})}else{this.items.each(function(B){B.enable()})}},findField:function(B){var A=this.items.get(B);if(!A){this.items.each(function(C){if(C.isFormField&&(C.dataIndex==B||C.id==B||C.name==B||C.getName()==B)){A=C;return false}})}return A||null}});Ext.apply(Ext.lib,{isEmpty:function(A){if(typeof A=="object"){if(A instanceof Array){return A.length===0}else{var B=0;for(p in A){if(A.hasOwnProperty(p)){B++}}return B===0}}}});function randomPick(E,G){var F=new Array(E);var C=new Array(G);for(var D=0;D<E;D++){F[D]=D}for(D=0;D<G;D++){var B=F.length;var A=Math.floor(Math.random()*B);C[D]=F[A];if(F.splice){F.splice(A,1)}else{if(A===0){F=F.slice(1)}else{if(A==(B-1)){F=F.slice(0,B-1)}else{F=F.slice(0,A).concat(F.slice(A+1))}}}}return C}if(Ext.form.VTypes){var phone=/^0[0-9]{2,3}-[0-9]{5,8}([*\-][0-9]+){0,1}$/;Ext.apply(Ext.form.VTypes,{phone:function(A){return phone.test(A)},phoneText:"固定电话格式如：021-12345678*90，必须输入区号",phoneMask:/[0-9*\-]/})}Ext.form.Action.JSONSubmit=function(B,A){Ext.form.Action.JSONSubmit.superclass.constructor.call(this,B,A)};Ext.extend(Ext.form.Action.JSONSubmit,Ext.form.Action,{type:"jsonsubmit",run:function(){var A=this.options;if(A.clientValidation===false||this.form.isValid()){Ext.Ajax.request(Ext.apply(this.createCallback(A),{method:this.getMethod(),url:this.getUrl(false),jsonData:{version:"1.1",method:A.jsonmethod,params:A.asKeyWordArgs?{"0":this.form.getValues()}:this.form.getValues()},disableCaching:true}))}else{if(A.clientValidation!==false){this.failureType=Ext.form.Action.CLIENT_INVALID;this.form.afterAction(this,false)}}},success:function(B){var A=this.processResponse(B);if(A===true||A.success){this.form.afterAction(this,true);return }if(A.errors){this.form.markInvalid(A.errors);this.failureType=Ext.form.Action.SERVER_INVALID}this.form.afterAction(this,false)},handleResponse:function(B){var A=Ext.decode(B.responseText);if(A.error){return{success:false,message:A.error.message,errors:A.error.fields}}else{return{success:true,result:A.result}}}});Ext.form.Action.ACTION_TYPES.jsonsubmit=Ext.form.Action.JSONSubmit;Ext.form.Action.JSONLoad=function(B,A){Ext.form.Action.JSONLoad.superclass.constructor.call(this,B,A)};Ext.extend(Ext.form.Action.JSONLoad,Ext.form.Action,{type:"jsonload",run:function(){var A=this.options;Ext.Ajax.request(Ext.apply(this.createCallback(A),{method:this.getMethod(),url:this.getUrl(false),jsonData:{version:"1.1",method:A.jsonmethod,params:A.params||{}},disableCaching:true}))},success:function(B){var A=this.processResponse(B);if(A===true||!A.success||!A.data){this.failureType=Ext.form.Action.LOAD_FAILURE;this.form.afterAction(this,false);return }this.form.clearInvalid();this.form.setValues(A.data);this.form.afterAction(this,true)},handleResponse:function(B){var A=Ext.decode(B.responseText);return{success:!A.error,data:A.result}}});Ext.form.Action.ACTION_TYPES.jsonload=Ext.form.Action.JSONLoad;Ext.apply(Ext.util.Format,{storeRenderer:function(A,B,C){return function(E){var D=A.find(B,E);return A.getAt(D).data[C]}}});Ext.override(Ext.menu.Item,{deferExpand:function(A){delete this.showTimer;if(!this.menu.el){this.menu.render()}this.menu.showAt(this.menu.el.getAlignToXY(this.container,this.parentMenu.subMenuAlign||"tl-tr?",this.parentMenu.subMenuAlignOffset),this.parentMenu);if(A){this.menu.tryActivate(0,1)}}});Ext.override(Ext.grid.GridView,{insertRows:function(A,F,C,E){if(!E&&F===0&&C==A.getCount()-1){this.refresh()}else{if(!E){this.fireEvent("beforerowsinserted",this,F,C)}var B=this.renderRows(F,C);var D=this.getRow(F);if(D){Ext.DomHelper.insertHtml("beforeBegin",D,B)}else{Ext.DomHelper.insertHtml("beforeEnd",this.mainBody.dom,B)}if(!E){this.fireEvent("rowsinserted",this,F,C);this.processRows(F)}}}});