/*! Idle Timer - v1.1.0 - 2016-03-21
* https://github.com/thorst/jquery-idletimer
* Copyright (c) 2016 Paul Irish; Licensed MIT */
(function(a){a.idleTimer=function(k,c,i){var b;if(typeof k==="object"){b=k;k=null}else{if(typeof k==="number"){b={timeout:k};k=null}}c=c||document;b=a.extend({idle:false,timeout:30000,events:"mousemove keydown wheel DOMMouseScroll mousewheel mousedown touchstart touchmove MSPointerDown MSPointerMove"},b);var e=a(c),f=e.data("idleTimerObj"+i)||{},g=function(q){var p=a.data(c,"idleTimerObj"+i)||{};p.idle=!p.idle;p.olddate=+new Date();var o=a.Event((p.idle?"idle":"active")+".idleTimer"+i);a(c).trigger(o,[c,a.extend({},p),q])},j=function(q){var p=a.data(c,"idleTimerObj"+i)||{};if(q.type==="storage"&&q.originalEvent.key!==p.timerSyncId){return}if(p.remaining!=null){return}if(q.type==="mousemove"){if(q.pageX===p.pageX&&q.pageY===p.pageY){return}if(typeof q.pageX==="undefined"&&typeof q.pageY==="undefined"){return}var o=(+new Date())-p.olddate;if(o<200){return}}clearTimeout(p.tId);if(p.idle){g(q)}p.lastActive=+new Date();p.pageX=q.pageX;p.pageY=q.pageY;if(q.type!=="storage"&&p.timerSyncId){if(typeof(localStorage)!=="undefined"){localStorage.setItem(p.timerSyncId,p.lastActive)}}p.tId=setTimeout(g,p.timeout)},h=function(){var o=a.data(c,"idleTimerObj"+i)||{};o.idle=o.idleBackup;o.olddate=+new Date();o.lastActive=o.olddate;o.remaining=null;clearTimeout(o.tId);if(!o.idle){o.tId=setTimeout(g,o.timeout)}},n=function(){var o=a.data(c,"idleTimerObj"+i)||{};if(o.remaining!=null){return}o.remaining=o.timeout-((+new Date())-o.olddate);clearTimeout(o.tId)},d=function(){var o=a.data(c,"idleTimerObj"+i)||{};if(o.remaining==null){return}if(!o.idle){o.tId=setTimeout(g,o.remaining)}o.remaining=null},l=function(){var o=a.data(c,"idleTimerObj"+i)||{};clearTimeout(o.tId);e.removeData("idleTimerObj"+i);e.off("._idleTimer"+i)},m=function(){var p=a.data(c,"idleTimerObj"+i)||{};if(p.idle){return 0}if(p.remaining!=null){return p.remaining}var o=p.timeout-((+new Date())-p.lastActive);if(o<0){o=0}return o};if(k===null&&typeof f.idle!=="undefined"){h();return e}else{if(k===null){}else{if(k!==null&&typeof f.idle==="undefined"){return false}else{if(k==="destroy"){l();return e}else{if(k==="pause"){n();return e}else{if(k==="resume"){d();return e}else{if(k==="reset"){h();return e}else{if(k==="getRemainingTime"){return m()}else{if(k==="getElapsedTime"){return(+new Date())-f.olddate}else{if(k==="getLastActiveTime"){return f.lastActive}else{if(k==="isIdle"){return f.idle}}}}}}}}}}}e.on(PrimeFaces.trim((b.events+" ").split(" ").join("._idleTimer"+i+" ")),function(o){j(o)});if(b.timerSyncId){a(window).on("storage",j)}f=a.extend({},{olddate:+new Date(),lastActive:+new Date(),idle:b.idle,idleBackup:b.idle,timeout:b.timeout,remaining:null,timerSyncId:b.timerSyncId,tId:null,pageX:null,pageY:null});if(!f.idle){f.tId=setTimeout(g,f.timeout)}a.data(c,"idleTimerObj"+i,f);return e};a.fn.idleTimer=function(b,c){if(this[0]){return a.idleTimer(b,this[0],c)}return this}})(jQuery);
PrimeFaces.widget.IdleMonitor=PrimeFaces.widget.BaseWidget.extend({init:function(a){this._super(a);var c=this;$(document).on("idle.idleTimer"+this.cfg.id,function(){if(c.cfg.onidle){c.cfg.onidle.call(c)}c.callBehavior("idle")}).on("active.idleTimer"+this.cfg.id,function(){if(c.cfg.onactive){c.cfg.onactive.call(c)}c.callBehavior("active")});$.idleTimer(this.cfg.timeout,document,this.cfg.id);if(a.multiWindowSupport){var b=PrimeFaces.createStorageKey(this.cfg.id,"IdleMonitor_lastActive");localStorage.setItem(b,$(document).data("idleTimerObj"+this.cfg.id).lastActive);c.timer=setInterval(function(){var e=$(document).data("idleTimerObj"+c.cfg.id);var d=parseInt(localStorage.getItem(b));var f=e.lastActive;if(d>f){$.idleTimer("pause",document,c.cfg.id);e.idle=false;e.olddate=d;e.lastActive=d;e.remaining=c.cfg.timeout;$.idleTimer("resume",document,c.cfg.id)}else{if(f>d){localStorage.setItem(b,f)}}},2000)}},destroy:function(){this._super();if(this.cfg.multiWindowSupport){clearInterval(this.timer)}},pause:function(){$.idleTimer("pause",document,this.cfg.id)},resume:function(){$.idleTimer("resume",document,this.cfg.id)},reset:function(){$.idleTimer("reset",document,this.cfg.id)}});
