;(function($){$.timer=function(func,time,autostart){this.set=function(func,time,autostart){this.init=true;if(typeof func=='object'){var paramList=['autostart','time'];for(var arg in paramList){if(func[paramList[arg]]!=undefined){eval(paramList[arg]+" = func[paramList[arg]]");}};func=func.action;}
if(typeof func=='function'){this.action=func;}
if(!isNaN(time)){this.intervalTime=time;}
if(autostart&&!this.active){this.active=true;this.setTimer();}
return this;};this.once=function(time){var timer=this;if(isNaN(time)){time=0;}
window.setTimeout(function(){timer.action();},time);return this;};this.play=function(reset){if(!this.active){if(reset){this.setTimer();}
else{this.setTimer(this.remaining);}
this.active=true;}
return this;};this.pause=function(){if(this.active){this.active=false;this.remaining-=new Date()-this.last;this.clearTimer();}
return this;};this.stop=function(){this.active=false;this.remaining=this.intervalTime;this.clearTimer();return this;};this.toggle=function(reset){if(this.active){this.pause();}
else if(reset){this.play(true);}
else{this.play();}
return this;};this.reset=function(){this.active=false;this.play(true);return this;};this.clearTimer=function(){window.clearTimeout(this.timeoutObject);};this.setTimer=function(time){var timer=this;if(typeof this.action!='function'){return;}
if(isNaN(time)){time=this.intervalTime;}
this.remaining=time;this.last=new Date();this.clearTimer();this.timeoutObject=window.setTimeout(function(){timer.go();},time);};this.go=function(){if(this.active){this.action();this.setTimer();}};if(this.init){return new $.timer(func,time,autostart);}else{this.set(func,time,autostart);return this;}};})(jQuery);
