Ext.namespace("THSite.remote");THSite.remote.DwrProxy=Ext.extend(Ext.data.DataProxy,{constructor:function(a){if(arguments.length>1||!THSite.misc.Utils.isTrueObject(a)){a={dwrCall:arguments[0],pagingAndSort:arguments[1],getParamsFunc:arguments[2],async:arguments[3],ignoreArgs:arguments[4],scope:arguments[5],mask:arguments[6]}}THSite.remote.DwrProxy.superclass.constructor.call(this);this.setConfig(a)},load:function(g,c,h,f,b){if(this.fireEvent("beforeload",this,g)!==false){var d=g.sort&&g.dir?g.sort+" "+g.dir:"";var e=this.loadResponse.createDelegate(this,[c,h,f,b],1);var a=[];a=this.getParamsFunc.call(this.scope||this).slice(0);if(!this.ignoreArgs&&b.arg){a=b.arg.slice(0)}if(this.pagingAndSort){a.push(g.start);a.push(g.limit);a.push(d)}a.push({async:this.async,callback:e,errorHandler:(this.loadError).createDelegate(this)});if(!Ext.isIE){this.showMask()}this.dwrCall.apply(this,a)}else{h.call(f||this,null,b,false)}},loadResponse:function(f,c,h,d,b){if(!Ext.isIE){this.hideMask()}var a;try{a=c.read(f)}catch(g){this.fireEvent("loadexception",this,null,response,g);h.call(d,null,b,false);THSite.remote.Pointcuts.handleDwrError(g);return}h.call(d,a,b,true)},loadError:function(b,a){this.hideMask();this.fireEvent("loadexception",this,null,null,null);THSite.remote.Pointcuts.handleDwrError(a,b)},getConfig:function(){return{dwrCall:this.dwrCall,pagingAndSort:this.pagingAndSort,getParamsFunc:this.getParamsFunc,async:this.async,ignoreArgs:this.ignoreArgs,scope:this.scope,mask:this.mask}},setConfig:function(a){this.dwrCall=a.dwrCall;this.pagingAndSort=(a.pagingAndSort!==undefined?a.pagingAndSort:true);this.getParamsFunc=a.getParamsFunc!==undefined?a.getParamsFunc:function(){return[]};this.async=Boolean(a.async);this.ignoreArgs=Boolean(a.ignoreArgs);this.scope=a.scope;this.mask=a.mask},setAlternateDwrCall:function(b,a,c){if(!this.originalConfig){this.originalConfig=this.getConfig()}this.dwrCall=b;this.getParamsFunc=a;this.scope=c||this.scope},restoreOriginalDwrCall:function(){if(this.originalConfig){this.setConfig(this.originalConfig);this.originalConfig=null}},update:Ext.emptyFn,updateResponse:Ext.emptyFn,setMask:function(a){this.mask=a},showMask:function(){var a=this.getMaskEl();if(a&&!a.isMasked()){a.on("resize",this.onMaskedElResize,this);a.mask("Loading Data...")}},hideMask:function(){var a=this.getMaskEl();if(a){a.un("resize",this.onMaskedElResize,this);if(a.isMasked()){a.unmask()}}},getMaskEl:function(){var a;if(this.mask){if(typeof this.mask=="function"){a=this.mask.call(this.scope||window)}else{if(this.mask instanceof Ext.Element){a=this.mask}}}return a},onMaskedElResize:function(){var a=this.getMaskEl();if(a){a.unmask();a.mask("Loading Data...")}}});