
(function($){$.fn.timedLogout=function(options){var defaults={inactivity:1200000,noconfirm:10000,sessionAlive:30000,redirect_url:'/js_sandbox/',click_reset:true,alive_url:'/js_sandbox/',logout_url:'/js_sandbox/'}
var opts=$.extend(defaults,options);var liveTimeout,confTimeout,sessionTimeout;var modal="<div id='modal_pop_session_timeout'><p>We've noticed you've been idle for a while;<br />for your security we will automatically<br />log you out in "+Math.round(opts.noconfirm/1000)+" seconds.</p></div>";var start_liveTimeout=function()
{clearTimeout(liveTimeout);clearTimeout(confTimeout);liveTimeout=setTimeout(logout,opts.inactivity);if(opts.sessionAlive)
{clearTimeout(sessionTimeout);sessionTimeout=setTimeout(keep_session,opts.sessionAlive);}}
var logout=function()
{confTimeout=setTimeout(redirect,opts.noconfirm);$(modal).dialog({buttons:{"Stay logged in":function(){$(this).dialog('close');stay_logged_in();}},modal:true,width:350,height:220,title:'Automatic Logout'});}
var redirect=function()
{if(opts.logout_url)
{$.get(opts.logout_url);}
window.location.href=opts.redirect_url;}
var stay_logged_in=function(el)
{start_liveTimeout();if(opts.alive_url)
{$.get(opts.alive_url);}}
var keep_session=function()
{$.get(opts.alive_url);clearTimeout(sessionTimeout);sessionTimeout=setTimeout(keep_session,opts.sessionAlive);}
return this.each(function(){obj=$(this);start_liveTimeout();if(opts.click_reset)
{$(document).bind('click',start_liveTimeout);}
if(opts.sessionAlive)
{keep_session();}});};})(jQuery);
