!function(n){jQuery.sessionTimeout=function(t){function r(t){switch(t){case"start":f=setTimeout(function(){n("#sessionTimeout-dialog").dialog("open");u("start")},i.warnAfter);break;case"stop":clearTimeout(f)}}function u(n){switch(n){case"start":e=setTimeout(function(){window.location=i.redirUrl},i.redirAfter-i.warnAfter);break;case"stop":clearTimeout(e)}}function s(n,t,i){var u=new RegExp("([?|&])"+t+"=.*?(&|#|$)","i"),r,f;return n.match(u)?n.replace(u,"$1"+t+"="+i+"$2"):(r="",-1!==n.indexOf("#")&&(r=n.replace(/.*#/,"#"),n=n.replace(/#.*/,"")),f=-1!==n.indexOf("?")?"&":"?",n+f+t+"="+i+r)}var f,e,o={message:"Your session is about to expire.",keepAliveUrl:"/keep-alive",keepAliveAjaxRequestType:"POST",redirUrl:"/timed-out",logoutUrl:"/log-out",warnAfter:9e5,redirAfter:12e5,appendTime:!0},i=o;t&&(i=n.extend(o,t));n("body").append('<div title="Session Timeout" id="sessionTimeout-dialog">'+i.message+"<\/div>");n("#sessionTimeout-dialog").dialog({autoOpen:!1,width:400,modal:!0,closeOnEscape:!1,open:function(){n(".ui-dialog-titlebar-close").hide()},buttons:{"Log Off Now":function(){window.location=i.logoutUrl},Continue:function(){n(this).dialog("close");n.ajax({type:i.keepAliveAjaxRequestType,url:i.appendTime?s(i.keepAliveUrl,"_",(new Date).getTime()):i.keepAliveUrl});u("stop");r("start")}}});n(document).ajaxComplete(function(){n("#sessionTimeout-dialog").dialog("isOpen")||(u("stop"),r("stop"),r("start"))});r("start")}}(jQuery)