Skip to content
Snippets Groups Projects
Select Git revision
  • 38bdf4083a6e0d90afb35ded0d67cab8a518b2ea
  • master default protected
2 results

lib_timer.js

Blame
  • lib_timer.js 1.10 KiB
    /**
     * StarLight - A client side webpage framework
     *
     * @package StarLight
     * @author Icewind <icewind (at) derideal (dot) com>
     * @copyright 2009
     * @license http://www.gnu.org/licenses/gpl.html GNU Public License
     * @url http://blacklight.metalwarp.com/starlight
     * @version 0.1
     */
    OCTimer=function(callback,time,repeat,object){
    	this.object=(object)?object:false;
    	this.repeat=(!(repeat===undefined))?repeat:true;
    	this.callback=callback;
    	this.time=time;
    	this.timer=0;
    	this.number=OCTimer.count;
    	OCTimer.count++;
    	OCTimer.timers[this.number]=this;
    	if(this.time){
    		this.start();
    	}
    }
    
    OCTimer.count=0;
    OCTimer.timers=Array();
    
    OCTimer.prototype={
    	start:function(){
    		this.running=true;
    		eval('var func=function(){OCTimer.timers['+this.number+'].run();};');
    		if(this.repeat){
    			this.timer = setInterval(func, this.time);
    		}else{
    			this.timer = setTimeout(func, this.time);
    		}
    	},
    	run:function(){
    		if (!this.repeat){
    			this.stop();
    		}
    		if (this.object){
    			this.callback.call(this.object);
    		}else{
    			this.callback.call();
    		}
    	},
    	stop:function(){
    		clearInterval(this.timer);
    		this.running=false;
    	}
    }