!function(n){n.idleTimer=function(t,i){var f;"object"==typeof t?(f=t,t=null):"number"==typeof t&&(f={timeout:t},t=null);i=i||document;f=n.extend({idle:!1,timeout:3e4,events:"mousemove keydown wheel DOMMouseScroll mousewheel mousedown touchstart touchmove MSPointerDown MSPointerMove"},f);var r=n(i),u=r.data("idleTimerObj")||{},e=function(t){var r=n.data(i,"idleTimerObj")||{},u;r.idle=!r.idle;r.olddate=+new Date;u=n.Event((r.idle?"idle":"active")+".idleTimer");n(i).trigger(u,[i,n.extend({},r),t])},s=function(t){var r=n.data(i,"idleTimerObj")||{},u;if(null==r.remaining){if("mousemove"===t.type){if(t.pageX===r.pageX&&t.pageY===r.pageY)return;if("undefined"==typeof t.pageX&&"undefined"==typeof t.pageY)return;if(u=+new Date-r.olddate,200>u)return}clearTimeout(r.tId);r.idle&&e(t);r.lastActive=+new Date;r.pageX=t.pageX;r.pageY=t.pageY;r.tId=setTimeout(e,r.timeout)}},o=function(){var t=n.data(i,"idleTimerObj")||{};t.idle=t.idleBackup;t.olddate=+new Date;t.lastActive=t.olddate;t.remaining=null;clearTimeout(t.tId);t.idle||(t.tId=setTimeout(e,t.timeout))},h=function(){var t=n.data(i,"idleTimerObj")||{};null==t.remaining&&(t.remaining=t.timeout-(+new Date-t.olddate),clearTimeout(t.tId))},c=function(){var t=n.data(i,"idleTimerObj")||{};null!=t.remaining&&(t.idle||(t.tId=setTimeout(e,t.remaining)),t.remaining=null)},l=function(){var t=n.data(i,"idleTimerObj")||{};clearTimeout(t.tId);r.removeData("idleTimerObj");r.off("._idleTimer")},a=function(){var t=n.data(i,"idleTimerObj")||{},r;return t.idle?0:null!=t.remaining?t.remaining:(r=t.timeout-(+new Date-t.lastActive),0>r&&(r=0),r)};if(null===t&&"undefined"!=typeof u.idle)return o(),r;if(null!==t){if(null!==t&&"undefined"==typeof u.idle)return!1;if("destroy"===t)return l(),r;if("pause"===t)return h(),r;if("resume"===t)return c(),r;if("reset"===t)return o(),r;if("getRemainingTime"===t)return a();if("getElapsedTime"===t)return+new Date-u.olddate;if("getLastActiveTime"===t)return u.lastActive;if("isIdle"===t)return u.idle}return r.on(n.trim((f.events+" ").split(" ").join("._idleTimer ")),function(n){s(n)}),u=n.extend({},{olddate:+new Date,lastActive:+new Date,idle:f.idle,idleBackup:f.idle,timeout:f.timeout,remaining:null,tId:null,pageX:null,pageY:null}),u.idle||(u.tId=setTimeout(e,u.timeout)),n.data(i,"idleTimerObj",u),r};n.fn.idleTimer=function(t){return this[0]?n.idleTimer(t,this[0]):this}}(jQuery)