forked from avk/jQuery-Chrono
-
Notifications
You must be signed in to change notification settings - Fork 12
/
timed.min.js
14 lines (13 loc) · 1.83 KB
/
timed.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
* Timed
* Copyright (c) 2011 Jarvis Badgley, Arthur Klepchukov
* https://github.com/ChiperSoft/Timed
* Licensed under the BSD license (BSD_LICENSE.txt)
*
* @author <a href="mailto:chipersoft@gmail.com">Jarvis Badgley</a>
* @version 1.3
*/
(function(d){function h(){if(this.id&&clearInterval(this.id))this.id=null;return this}function i(){this.id=this.type=="i"?setInterval(this.callback,this.when):setTimeout(this.callback,this.when);return this}function f(){var c={when:null,callback:null,cancel:h,start:i},b=arguments.length;c.callback=arguments[b-1];if(typeof c.callback!=="function")throw"Timed.after and Timed.every - Require a callback as the last argument";var a=(arguments[0]instanceof Array?arguments[0].join(""):String(arguments[0]))+
(b===3?String(arguments[1]):"");if(isNaN(parseInt(a,10)))a="1"+a;a=a.toLowerCase().replace(/[^a-z0-9\.]/g,"").match(/(?:(\d+(?:\.\d+)?)(?:days?|d))?(?:(\d+(?:\.\d+)?)(?:hours?|hrs?|h))?(?:(\d+(?:\.\d+)?)(?:minutes?|mins?|m))?(?:(\d+(?:\.\d+)?)(?:seconds?|secs?|s))?(?:(\d+(?:\.\d+)?)(?:milliseconds?|ms))?/);if(a[0])c.when=parseFloat(a[1]||0)*86400000+parseFloat(a[2]||0)*3600000+parseFloat(a[3]||0)*60000+parseFloat(a[4]||0)*1000+parseInt(a[5]||0,10);else if(b===3||!(c.when=parseInt(arguments[0],10)))throw"Timed.after and Timed.every - Could not parse delay arguments, check your syntax";
return c}var e={after:function c(){var b=f.apply(this,arguments);b.type="t";return b.start()},every:function c(){var b=f.apply(this,arguments);b.type="i";return b.start()},yield:function c(b){if(window.postMessage&&window.addEventListener){var a,g=Math.round(Math.random()*1000000);window.addEventListener("message",a=function(){window.removeEventListener("message",a);event.data===g&&b()});window.postMessage(g,"*")}else e.after(0,"ms",b)}},j=d.Timed;e.noConflict=function(){d.Timed=j;return this};d.Timed=
e})(this);