From b77eaeecff4dd49da53c0af7bbfd1bff9b7a77ea Mon Sep 17 00:00:00 2001
From: Serkan Yersen <serkanyersen@gmail.com>
Date: Mon, 23 Nov 2015 17:01:30 -0800
Subject: [PATCH] Add chaining

---
 docs/ifvisible.html  | 55 ++++++++++++++++++++++--------------
 src/ifvisible.coffee | 59 ++++++++++++++++++++++++---------------
 src/ifvisible.js     | 66 +++++++++++++++++++++++++-------------------
 src/ifvisible.js.map |  2 +-
 src/ifvisible.min.js |  2 +-
 5 files changed, 112 insertions(+), 72 deletions(-)

diff --git a/docs/ifvisible.html b/docs/ifvisible.html
index c4434ed..1eadea9 100644
--- a/docs/ifvisible.html
+++ b/docs/ifvisible.html
@@ -920,7 +920,9 @@ <h2 id="exports">Exports</h2>
 
             </div>
             
-            <div class="content"><div class='highlight'><pre>      <span class="hljs-keyword">return</span> <span class="hljs-property">@on</span>(<span class="hljs-string">"focus"</span>, callback)  <span class="hljs-keyword">if</span> <span class="hljs-keyword">typeof</span> callback <span class="hljs-keyword">is</span> <span class="hljs-string">"function"</span></pre></div></div>
+            <div class="content"><div class='highlight'><pre>      <span class="hljs-keyword">if</span> <span class="hljs-keyword">typeof</span> callback <span class="hljs-keyword">is</span> <span class="hljs-string">"function"</span>
+        <span class="hljs-property">@on</span>(<span class="hljs-string">"focus"</span>, callback)
+      <span class="hljs-keyword">else</span></pre></div></div>
             
         </li>
         
@@ -935,10 +937,11 @@ <h2 id="exports">Exports</h2>
 
             </div>
             
-            <div class="content"><div class='highlight'><pre>      status = <span class="hljs-string">"active"</span>
-      customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"focus"</span>
-      customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"wakeup"</span> <span class="hljs-comment"># When focused page will woke up too.</span>
-      customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"statusChanged"</span>, { <span class="hljs-attribute">status</span>: status }</pre></div></div>
+            <div class="content"><div class='highlight'><pre>        status = <span class="hljs-string">"active"</span>
+        customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"focus"</span>
+        customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"wakeup"</span> <span class="hljs-comment"># When focused page will woke up too.</span>
+        customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"statusChanged"</span>, { <span class="hljs-attribute">status</span>: status }
+      @</pre></div></div>
             
         </li>
         
@@ -969,7 +972,9 @@ <h2 id="exports">Exports</h2>
 
             </div>
             
-            <div class="content"><div class='highlight'><pre>      <span class="hljs-keyword">return</span> <span class="hljs-property">@on</span>(<span class="hljs-string">"blur"</span>, callback)  <span class="hljs-keyword">if</span> <span class="hljs-keyword">typeof</span> callback <span class="hljs-keyword">is</span> <span class="hljs-string">"function"</span></pre></div></div>
+            <div class="content"><div class='highlight'><pre>      <span class="hljs-keyword">if</span> <span class="hljs-keyword">typeof</span> callback <span class="hljs-keyword">is</span> <span class="hljs-string">"function"</span>
+        <span class="hljs-property">@on</span>(<span class="hljs-string">"blur"</span>, callback)
+      <span class="hljs-keyword">else</span></pre></div></div>
             
         </li>
         
@@ -984,10 +989,11 @@ <h2 id="exports">Exports</h2>
 
             </div>
             
-            <div class="content"><div class='highlight'><pre>      status = <span class="hljs-string">"hidden"</span>
-      customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"blur"</span>
-      customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"idle"</span> <span class="hljs-comment"># When blurred page is idle too</span>
-      customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"statusChanged"</span>, { <span class="hljs-attribute">status</span>: status }</pre></div></div>
+            <div class="content"><div class='highlight'><pre>        status = <span class="hljs-string">"hidden"</span>
+        customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"blur"</span>
+        customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"idle"</span> <span class="hljs-comment"># When blurred page is idle too</span>
+        customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"statusChanged"</span>, { <span class="hljs-attribute">status</span>: status }
+      @</pre></div></div>
             
         </li>
         
@@ -1017,7 +1023,9 @@ <h2 id="exports">Exports</h2>
 
             </div>
             
-            <div class="content"><div class='highlight'><pre>      <span class="hljs-keyword">return</span> <span class="hljs-property">@on</span>(<span class="hljs-string">"idle"</span>, callback)  <span class="hljs-keyword">if</span> <span class="hljs-keyword">typeof</span> callback <span class="hljs-keyword">is</span> <span class="hljs-string">"function"</span></pre></div></div>
+            <div class="content"><div class='highlight'><pre>      <span class="hljs-keyword">if</span> <span class="hljs-keyword">typeof</span> callback <span class="hljs-keyword">is</span> <span class="hljs-string">"function"</span>
+        <span class="hljs-property">@on</span>(<span class="hljs-string">"idle"</span>, callback)
+      <span class="hljs-keyword">else</span></pre></div></div>
             
         </li>
         
@@ -1032,9 +1040,10 @@ <h2 id="exports">Exports</h2>
 
             </div>
             
-            <div class="content"><div class='highlight'><pre>      status = <span class="hljs-string">"idle"</span>
-      customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"idle"</span>
-      customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"statusChanged"</span>, { <span class="hljs-attribute">status</span>: status }</pre></div></div>
+            <div class="content"><div class='highlight'><pre>        status = <span class="hljs-string">"idle"</span>
+        customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"idle"</span>
+        customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"statusChanged"</span>, { <span class="hljs-attribute">status</span>: status }
+      @</pre></div></div>
             
         </li>
         
@@ -1066,7 +1075,9 @@ <h2 id="exports">Exports</h2>
 
             </div>
             
-            <div class="content"><div class='highlight'><pre>      <span class="hljs-keyword">return</span> <span class="hljs-property">@on</span>(<span class="hljs-string">"wakeup"</span>, callback)  <span class="hljs-keyword">if</span> <span class="hljs-keyword">typeof</span> callback <span class="hljs-keyword">is</span> <span class="hljs-string">"function"</span></pre></div></div>
+            <div class="content"><div class='highlight'><pre>      <span class="hljs-keyword">if</span> <span class="hljs-keyword">typeof</span> callback <span class="hljs-keyword">is</span> <span class="hljs-string">"function"</span>
+        <span class="hljs-property">@on</span>(<span class="hljs-string">"wakeup"</span>, callback)
+      <span class="hljs-keyword">else</span></pre></div></div>
             
         </li>
         
@@ -1081,9 +1092,10 @@ <h2 id="exports">Exports</h2>
 
             </div>
             
-            <div class="content"><div class='highlight'><pre>      status = <span class="hljs-string">"active"</span>
-      customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"wakeup"</span>
-      customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"statusChanged"</span>, { <span class="hljs-attribute">status</span>: status }</pre></div></div>
+            <div class="content"><div class='highlight'><pre>        status = <span class="hljs-string">"active"</span>
+        customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"wakeup"</span>
+        customEvent.fire <span class="hljs-keyword">this</span>, <span class="hljs-string">"statusChanged"</span>, { <span class="hljs-attribute">status</span>: status }
+      @</pre></div></div>
             
         </li>
         
@@ -1106,7 +1118,8 @@ <h2 id="exports">Exports</h2>
             
             <div class="content"><div class='highlight'><pre>    <span class="hljs-attribute">on</span>: <span class="hljs-function"><span class="hljs-params">(name, callback)</span> -&gt;</span>
       init() <span class="hljs-comment"># Auto init on first call</span>
-      customEvent.add <span class="hljs-keyword">this</span>, name, callback</pre></div></div>
+      customEvent.add <span class="hljs-keyword">this</span>, name, callback
+      @</pre></div></div>
             
         </li>
         
@@ -1130,7 +1143,8 @@ <h2 id="exports">Exports</h2>
             
             <div class="content"><div class='highlight'><pre>    <span class="hljs-attribute">off</span>: <span class="hljs-function"><span class="hljs-params">(name, callback)</span> -&gt;</span>
       init() <span class="hljs-comment"># Auto init on first call</span>
-      customEvent.remove <span class="hljs-keyword">this</span>, name, callback</pre></div></div>
+      customEvent.remove <span class="hljs-keyword">this</span>, name, callback
+      @</pre></div></div>
             
         </li>
         
@@ -1226,6 +1240,7 @@ <h2 id="exports">Exports</h2>
             
             <div class="content"><div class='highlight'><pre>      init()
       status <span class="hljs-keyword">is</span> (check <span class="hljs-keyword">or</span> <span class="hljs-string">"active"</span>)
+
   <span class="hljs-keyword">return</span> ifvisible
 )</pre></div></div>
             
diff --git a/src/ifvisible.coffee b/src/ifvisible.coffee
index cdedbff..a548332 100644
--- a/src/ifvisible.coffee
+++ b/src/ifvisible.coffee
@@ -322,12 +322,15 @@
     focus: (callback) ->
 
       # if first argument is a callback then set an event
-      return @on("focus", callback)  if typeof callback is "function"
-      # else trigger event
-      status = "active"
-      customEvent.fire this, "focus"
-      customEvent.fire this, "wakeup" # When focused page will woke up too.
-      customEvent.fire this, "statusChanged", { status: status }
+      if typeof callback is "function"
+        @on("focus", callback)
+      else
+        # else trigger event
+        status = "active"
+        customEvent.fire this, "focus"
+        customEvent.fire this, "wakeup" # When focused page will woke up too.
+        customEvent.fire this, "statusChanged", { status: status }
+      @
 
 
     # When User swicthes tabs or minimizes the window
@@ -337,23 +340,29 @@
     blur: (callback) ->
 
       # if first argument is a callback then set an event
-      return @on("blur", callback)  if typeof callback is "function"
-      # else trigger event
-      status = "hidden"
-      customEvent.fire this, "blur"
-      customEvent.fire this, "idle" # When blurred page is idle too
-      customEvent.fire this, "statusChanged", { status: status }
+      if typeof callback is "function"
+        @on("blur", callback)
+      else
+        # else trigger event
+        status = "hidden"
+        customEvent.fire this, "blur"
+        customEvent.fire this, "idle" # When blurred page is idle too
+        customEvent.fire this, "statusChanged", { status: status }
+      @
 
 
     # When page is focused but user is doing nothing on the page
     idle: (callback) ->
 
       # if first argument is a callback then set an event
-      return @on("idle", callback)  if typeof callback is "function"
-      # else trigger event
-      status = "idle"
-      customEvent.fire this, "idle"
-      customEvent.fire this, "statusChanged", { status: status }
+      if typeof callback is "function"
+        @on("idle", callback)
+      else
+        # else trigger event
+        status = "idle"
+        customEvent.fire this, "idle"
+        customEvent.fire this, "statusChanged", { status: status }
+      @
 
 
     # When user started to make interactions on the page such as:
@@ -362,11 +371,14 @@
     wakeup: (callback) ->
 
       # if first argument is a callback then set an event
-      return @on("wakeup", callback)  if typeof callback is "function"
-      # else trigger event
-      status = "active"
-      customEvent.fire this, "wakeup"
-      customEvent.fire this, "statusChanged", { status: status }
+      if typeof callback is "function"
+        @on("wakeup", callback)
+      else
+        # else trigger event
+        status = "active"
+        customEvent.fire this, "wakeup"
+        customEvent.fire this, "statusChanged", { status: status }
+      @
 
     # Set an event to ifvisible object
     # ```
@@ -380,6 +392,7 @@
     on: (name, callback) ->
       init() # Auto init on first call
       customEvent.add this, name, callback
+      @
 
     # Remove an event from ifvisible object
     # ```
@@ -394,6 +407,7 @@
     off: (name, callback) ->
       init() # Auto init on first call
       customEvent.remove this, name, callback
+      @
 
     # if page is visible then run given code in given seconds of intervals
     # ```
@@ -432,5 +446,6 @@
       # Auto init on first call
       init()
       status is (check or "active")
+
   return ifvisible
 )
diff --git a/src/ifvisible.js b/src/ifvisible.js
index ed396db..bcd610e 100644
--- a/src/ifvisible.js
+++ b/src/ifvisible.js
@@ -218,53 +218,63 @@
       },
       focus: function(callback) {
         if (typeof callback === "function") {
-          return this.on("focus", callback);
+          this.on("focus", callback);
+        } else {
+          status = "active";
+          customEvent.fire(this, "focus");
+          customEvent.fire(this, "wakeup");
+          customEvent.fire(this, "statusChanged", {
+            status: status
+          });
         }
-        status = "active";
-        customEvent.fire(this, "focus");
-        customEvent.fire(this, "wakeup");
-        return customEvent.fire(this, "statusChanged", {
-          status: status
-        });
+        return this;
       },
       blur: function(callback) {
         if (typeof callback === "function") {
-          return this.on("blur", callback);
+          this.on("blur", callback);
+        } else {
+          status = "hidden";
+          customEvent.fire(this, "blur");
+          customEvent.fire(this, "idle");
+          customEvent.fire(this, "statusChanged", {
+            status: status
+          });
         }
-        status = "hidden";
-        customEvent.fire(this, "blur");
-        customEvent.fire(this, "idle");
-        return customEvent.fire(this, "statusChanged", {
-          status: status
-        });
+        return this;
       },
       idle: function(callback) {
         if (typeof callback === "function") {
-          return this.on("idle", callback);
+          this.on("idle", callback);
+        } else {
+          status = "idle";
+          customEvent.fire(this, "idle");
+          customEvent.fire(this, "statusChanged", {
+            status: status
+          });
         }
-        status = "idle";
-        customEvent.fire(this, "idle");
-        return customEvent.fire(this, "statusChanged", {
-          status: status
-        });
+        return this;
       },
       wakeup: function(callback) {
         if (typeof callback === "function") {
-          return this.on("wakeup", callback);
+          this.on("wakeup", callback);
+        } else {
+          status = "active";
+          customEvent.fire(this, "wakeup");
+          customEvent.fire(this, "statusChanged", {
+            status: status
+          });
         }
-        status = "active";
-        customEvent.fire(this, "wakeup");
-        return customEvent.fire(this, "statusChanged", {
-          status: status
-        });
+        return this;
       },
       on: function(name, callback) {
         init();
-        return customEvent.add(this, name, callback);
+        customEvent.add(this, name, callback);
+        return this;
       },
       off: function(name, callback) {
         init();
-        return customEvent.remove(this, name, callback);
+        customEvent.remove(this, name, callback);
+        return this;
       },
       onEvery: function(seconds, callback) {
         var paused, t;
diff --git a/src/ifvisible.js.map b/src/ifvisible.js.map
index 56db804..98f1f82 100644
--- a/src/ifvisible.js.map
+++ b/src/ifvisible.js.map
@@ -6,5 +6,5 @@
     "ifvisible.coffee"
   ],
   "names": [],
-  "mappings": "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"
+  "mappings": "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"
 }
\ No newline at end of file
diff --git a/src/ifvisible.min.js b/src/ifvisible.min.js
index 006981f..a31a279 100644
--- a/src/ifvisible.min.js
+++ b/src/ifvisible.min.js
@@ -1 +1 @@
-(function(){!function(a,b){return"function"==typeof define&&define.amd?define(function(){return b()}):"object"==typeof exports?module.exports=b():a.ifvisible=b()}(this,function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;return i={},c=document,k=!1,l="active",g=6e4,f=!1,b=function(){var a,b,c,d,e,f,g;return a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)},e=function(){return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},f={},c="__ceGUID",b=function(a,b,d){return a[c]=void 0,a[c]||(a[c]="ifvisible.object.event.identifier"),f[a[c]]||(f[a[c]]={}),f[a[c]][b]||(f[a[c]][b]=[]),f[a[c]][b].push(d)},d=function(a,b,d){var e,g,h,i,j;if(a[c]&&f[a[c]]&&f[a[c]][b]){for(i=f[a[c]][b],j=[],g=0,h=i.length;h>g;g++)e=i[g],j.push(e(d||{}));return j}},g=function(a,b,d){var e,g,h,i,j;if(d){if(a[c]&&f[a[c]]&&f[a[c]][b])for(j=f[a[c]][b],g=h=0,i=j.length;i>h;g=++h)if(e=j[g],e===d)return f[a[c]][b].splice(g,1),e}else if(a[c]&&f[a[c]]&&f[a[c]][b])return delete f[a[c]][b]},{add:b,remove:g,fire:d}}(),a=function(){var a;return a=!1,function(b,c,d){return a||(a=b.addEventListener?function(a,b,c){return a.addEventListener(b,c,!1)}:b.attachEvent?function(a,b,c){return a.attachEvent("on"+b,c,!1)}:function(a,b,c){return a["on"+b]=c}),a(b,c,d)}}(),d=function(a,b){var d;return c.createEventObject?a.fireEvent("on"+b,d):(d=c.createEvent("HTMLEvents"),d.initEvent(b,!0,!0),!a.dispatchEvent(d))},h=function(){var a,b,d,e,f;for(e=void 0,f=3,d=c.createElement("div"),a=d.getElementsByTagName("i"),b=function(){return d.innerHTML="<!--[if gt IE "+ ++f+"]><i></i><![endif]-->",a[0]};b(););return f>4?f:e}(),e=!1,n=void 0,"undefined"!=typeof c.hidden?(e="hidden",n="visibilitychange"):"undefined"!=typeof c.mozHidden?(e="mozHidden",n="mozvisibilitychange"):"undefined"!=typeof c.msHidden?(e="msHidden",n="msvisibilitychange"):"undefined"!=typeof c.webkitHidden&&(e="webkitHidden",n="webkitvisibilitychange"),m=function(){var b,d;return b=!1,d=function(){return clearTimeout(b),"active"!==l&&i.wakeup(),f=+new Date,b=setTimeout(function(){return"active"===l?i.idle():void 0},g)},d(),a(c,"mousemove",d),a(c,"keyup",d),a(window,"scroll",d),i.focus(d),i.wakeup(d)},j=function(){var b;return k?!0:(e===!1?(b="blur",9>h&&(b="focusout"),a(window,b,function(){return i.blur()}),a(window,"focus",function(){return i.focus()})):a(c,n,function(){return c[e]?i.blur():i.focus()},!1),k=!0,m())},i={setIdleDuration:function(a){return g=1e3*a},getIdleDuration:function(){return g},getIdleInfo:function(){var a,b;return a=+new Date,b={},"idle"===l?(b.isIdle=!0,b.idleFor=a-f,b.timeLeft=0,b.timeLeftPer=100):(b.isIdle=!1,b.idleFor=a-f,b.timeLeft=f+g-a,b.timeLeftPer=(100-100*b.timeLeft/g).toFixed(2)),b},focus:function(a){return"function"==typeof a?this.on("focus",a):(l="active",b.fire(this,"focus"),b.fire(this,"wakeup"),b.fire(this,"statusChanged",{status:l}))},blur:function(a){return"function"==typeof a?this.on("blur",a):(l="hidden",b.fire(this,"blur"),b.fire(this,"idle"),b.fire(this,"statusChanged",{status:l}))},idle:function(a){return"function"==typeof a?this.on("idle",a):(l="idle",b.fire(this,"idle"),b.fire(this,"statusChanged",{status:l}))},wakeup:function(a){return"function"==typeof a?this.on("wakeup",a):(l="active",b.fire(this,"wakeup"),b.fire(this,"statusChanged",{status:l}))},on:function(a,c){return j(),b.add(this,a,c)},off:function(a,c){return j(),b.remove(this,a,c)},onEvery:function(a,b){var c,d;return j(),c=!1,b&&(d=setInterval(function(){return"active"===l&&c===!1?b():void 0},1e3*a)),{stop:function(){return clearInterval(d)},pause:function(){return c=!0},resume:function(){return c=!1},code:d,callback:b}},now:function(a){return j(),l===(a||"active")}}})}).call(this);
\ No newline at end of file
+(function(){!function(a,b){return"function"==typeof define&&define.amd?define(function(){return b()}):"object"==typeof exports?module.exports=b():a.ifvisible=b()}(this,function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;return i={},c=document,k=!1,l="active",g=6e4,f=!1,b=function(){var a,b,c,d,e,f,g;return a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)},e=function(){return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},f={},c="__ceGUID",b=function(a,b,d){return a[c]=void 0,a[c]||(a[c]="ifvisible.object.event.identifier"),f[a[c]]||(f[a[c]]={}),f[a[c]][b]||(f[a[c]][b]=[]),f[a[c]][b].push(d)},d=function(a,b,d){var e,g,h,i,j;if(a[c]&&f[a[c]]&&f[a[c]][b]){for(i=f[a[c]][b],j=[],g=0,h=i.length;h>g;g++)e=i[g],j.push(e(d||{}));return j}},g=function(a,b,d){var e,g,h,i,j;if(d){if(a[c]&&f[a[c]]&&f[a[c]][b])for(j=f[a[c]][b],g=h=0,i=j.length;i>h;g=++h)if(e=j[g],e===d)return f[a[c]][b].splice(g,1),e}else if(a[c]&&f[a[c]]&&f[a[c]][b])return delete f[a[c]][b]},{add:b,remove:g,fire:d}}(),a=function(){var a;return a=!1,function(b,c,d){return a||(a=b.addEventListener?function(a,b,c){return a.addEventListener(b,c,!1)}:b.attachEvent?function(a,b,c){return a.attachEvent("on"+b,c,!1)}:function(a,b,c){return a["on"+b]=c}),a(b,c,d)}}(),d=function(a,b){var d;return c.createEventObject?a.fireEvent("on"+b,d):(d=c.createEvent("HTMLEvents"),d.initEvent(b,!0,!0),!a.dispatchEvent(d))},h=function(){var a,b,d,e,f;for(e=void 0,f=3,d=c.createElement("div"),a=d.getElementsByTagName("i"),b=function(){return d.innerHTML="<!--[if gt IE "+ ++f+"]><i></i><![endif]-->",a[0]};b(););return f>4?f:e}(),e=!1,n=void 0,"undefined"!=typeof c.hidden?(e="hidden",n="visibilitychange"):"undefined"!=typeof c.mozHidden?(e="mozHidden",n="mozvisibilitychange"):"undefined"!=typeof c.msHidden?(e="msHidden",n="msvisibilitychange"):"undefined"!=typeof c.webkitHidden&&(e="webkitHidden",n="webkitvisibilitychange"),m=function(){var b,d;return b=!1,d=function(){return clearTimeout(b),"active"!==l&&i.wakeup(),f=+new Date,b=setTimeout(function(){return"active"===l?i.idle():void 0},g)},d(),a(c,"mousemove",d),a(c,"keyup",d),a(window,"scroll",d),i.focus(d),i.wakeup(d)},j=function(){var b;return k?!0:(e===!1?(b="blur",9>h&&(b="focusout"),a(window,b,function(){return i.blur()}),a(window,"focus",function(){return i.focus()})):a(c,n,function(){return c[e]?i.blur():i.focus()},!1),k=!0,m())},i={setIdleDuration:function(a){return g=1e3*a},getIdleDuration:function(){return g},getIdleInfo:function(){var a,b;return a=+new Date,b={},"idle"===l?(b.isIdle=!0,b.idleFor=a-f,b.timeLeft=0,b.timeLeftPer=100):(b.isIdle=!1,b.idleFor=a-f,b.timeLeft=f+g-a,b.timeLeftPer=(100-100*b.timeLeft/g).toFixed(2)),b},focus:function(a){return"function"==typeof a?this.on("focus",a):(l="active",b.fire(this,"focus"),b.fire(this,"wakeup"),b.fire(this,"statusChanged",{status:l})),this},blur:function(a){return"function"==typeof a?this.on("blur",a):(l="hidden",b.fire(this,"blur"),b.fire(this,"idle"),b.fire(this,"statusChanged",{status:l})),this},idle:function(a){return"function"==typeof a?this.on("idle",a):(l="idle",b.fire(this,"idle"),b.fire(this,"statusChanged",{status:l})),this},wakeup:function(a){return"function"==typeof a?this.on("wakeup",a):(l="active",b.fire(this,"wakeup"),b.fire(this,"statusChanged",{status:l})),this},on:function(a,c){return j(),b.add(this,a,c),this},off:function(a,c){return j(),b.remove(this,a,c),this},onEvery:function(a,b){var c,d;return j(),c=!1,b&&(d=setInterval(function(){return"active"===l&&c===!1?b():void 0},1e3*a)),{stop:function(){return clearInterval(d)},pause:function(){return c=!0},resume:function(){return c=!1},code:d,callback:b}},now:function(a){return j(),l===(a||"active")}}})}).call(this);
\ No newline at end of file