AUI.add("aui-task-manager",function(b){var e=b.Lang,c=e.now,d=b.Array;var a={clearInterval:function(g){var f=a;f.unregister(true,g);},clearTimeout:function(g){var f=a;f.unregister(false,g);},intervalTime:function(g){var f=this;if(arguments.length){f._INTERVAL=g;}return f._INTERVAL;},isRepeatable:function(g){var f=a;return g.repeats;},setTimeout:function(j,h,i){var f=a;var g=d(arguments,3,true);return f.register(false,j,h,i,g);},setInterval:function(j,h,i){var f=a;var g=d(arguments,3,true);return f.register(true,j,h,i,g);},register:function(g,k,i,j,h){var f=a;var l=(++b.Env._uidx);h=h||[];h.unshift(k,j);f._TASKS[l]=f._create(g,f._getNearestInterval(i),b.rbind.apply(b,h));f._taskLength+=1;f._lazyInit();return l;},run:function(g){var f=this;g.lastRunTime=c();return g.fn();},unregister:function(g,j){var f=a;var i=f._TASKS;var h=i[j];f._taskLength-=1;f._lazyDestroy();return h&&h.repeats===g&&delete i[j];},_create:function(g,h,i){var f=a;return{fn:i,lastRunTime:c(),next:h,repeats:g,timeout:h};},_decrementNextRunTime:function(g){var f=a;return g.next-=c()-g.lastRunTime;},_getNearestInterval:function(h){var f=a;var g=f._INTERVAL;var j=h%g;var i;if(j<g/2){i=h-j;}else{i=h+g-j;}return i;},_lazyDestroy:function(){var f=a;if(f._initialized&&!f._taskLength){clearTimeout(f._globalIntervalId);f._initialized=false;}},_lazyInit:function(){var f=a;if(!f._initialized&&f._taskLength){f._lastRunTime=c();f._globalIntervalId=setTimeout(f._runner,f._INTERVAL);f._initialized=true;}},_loop:function(l,n,h){var o=a;var j=o._INTERVAL;var k=o._TASKS;for(var f=c();l<h&&c()-f<50;l++){var m=n[l];var g=k[m];if(g&&o._decrementNextRunTime(g)<j/2){o.run(g);if(o.isRepeatable(g)){o._resetNextRunTime(g);}else{o.unregister(false,m);}}}if(o._initialized){if(l<h){o._globalIntervalId=setTimeout(o._loop,10);}else{o._globalIntervalId=setTimeout(o._runner,j);}}},_runner:function(){var f=a;var g=0;var h=b.Object.keys(f._TASKS);var j=h.length;f._loop(g,h,j);},_resetNextRunTime:function(g){var f=a;return g.next=g.timeout;},_INTERVAL:50,_TASKS:{},_lastRunTime:0,_globalIntervalId:0,_initialized:false,_taskLength:0};b.clearInterval=a.clearInterval;b.clearTimeout=a.clearTimeout;b.setInterval=a.setInterval;b.setTimeout=a.setTimeout;b.TaskManager=a;},"1.0.1",{skinnable:false,requires:["aui-base"]});