Ext.namespace("THSite.controls");THSite.controls.SessionTimeoutDialog=Ext.extend(Ext.util.Observable,{sessionTimeout:3600,sessionContinueTimeout:300,constructor:function(a){a=a||{};if(typeof a.onLogout=="function"){this.onLogout=a.onLogout}if(a.sessionContinueTimeout!==undefined){this.sessionContinueTimeout=a.sessionContinueTimeout}this.sessionTimeout=a.sessionTimeout!==undefined?a.sessionTimeout:this.sessionTimeout;this.sessionTimeout=this.sessionTimeout>this.sessionContinueTimeout?this.sessionTimeout-this.sessionContinueTimeout:0;this.timeoutId=-1;this.setDialogTimeoutInterceptor=this.setDialogTimeout.createDelegate(this);this.onSessionTimeoutDelegate=this.onSessionTimeout.createDelegate(this);dwr.engine._execute=dwr.engine._execute.createInterceptor(this.setDialogTimeoutInterceptor);Ext.form.BasicForm.prototype.submit=Ext.form.BasicForm.prototype.submit.createInterceptor(this.setDialogTimeoutInterceptor);this.setDialogTimeout()},setDialogTimeout:function(){if(this.sessionTimeout>0){if(this.timeoutId!=-1){window.clearTimeout(this.timeoutId)}this.timeoutId=window.setTimeout(this.onSessionTimeoutDelegate,this.sessionTimeout*1000)}else{if(Ext.isReady){this.onSessionTimeout()}else{Ext.onReady(this.onSessionTimeout(),this)}}},onSessionTimeout:function(){var b=Ext.MessageBox.getDialog();var d=this.sessionContinueTimeout;var c=-1;b.buttons[0].setDisabled(false);Ext.MessageBox.show({title:"Session Timeout",msg:["For your safety and protection your session has been timed out due to inactivity. ","Do you want to continue?"].join(""),buttons:Ext.MessageBox.OKCANCEL,icon:Ext.MessageBox.ERROR,fn:function(e){if(c!=-1){window.clearTimeout(c)}b.buttons[0].setDisabled(false);b.buttons[0].setText("OK");b.buttons[3].setText("Cancel");if(e=="ok"){UserService.refreshSession()}else{this.onLogout()}},scope:this});b.buttons[0].setText("Continue");b.buttons[3].setText("Logout ("+d+"sec. )");var a=function(){d--;if(d>0){b.buttons[3].setText("Logout ("+d+" sec.)");c=window.setTimeout(a,1000)}else{c=-1;b.buttons[0].setDisabled(true);b.buttons[3].setText("Logout");b.buttons[3].focus()}};window.setTimeout(a,1000)},onLogout:function(){window.location.href=Ext.fly("lnkUserLogout").dom.href}});