Timer by madeinqc

From Hack Wars Wiki

Jump to: navigation, search
<script>//Universal timer loop
function Timer(){
 var self = this;
 this.active = false;
 this.Time = new Date().getTime();
 this.intervalID;
 this.interval = [];
 this.intervalCounter = 0;
 this.setInterval = function(Action,delay){
  this.setTimer(Action,delay,'setInterval');
 }
 this.setTimeout = function(Action,delay){
  this.setTimer(Action,delay,'setTimeout');
 }
 this.setTimer = function(Action,delay,type){
  var id = self.intervalCounter++;
  this.interval.push({'ID':id,'action':Action,'start':new Date().getTime(),'delay':delay,'type':type});
  if (self.active != true){
   self.active = true;
   self.intervalID = setInterval("GoProcessInterval()",1);
  }
  return id;
 }
 this.processInterval = function(){
  clearInterval(self.intervalID);
  for (var i=0; i<self.interval.length; i++){
   if (new Date().getTime() - self.interval[i]['start'] >= self.interval[i]['delay']){
    //if (typeof(self.interval[i]['action']) != "string") Website.Alert(typeof(self.interval[i]['action']));
    if (typeof(self.interval[i]['action']) == "function"){
     self.interval[i]['action']();
    } else if (typeof(self.interval[i]['action']) == "string"){
     eval(self.interval[i]['action']);
    } else {
     Website.Alert("Action: "+typeof(self.interval[i]['action'])+' and '+self.interval[i]['action']);
    }
    if (self.interval[i]['type']=='setInterval'){
     self.interval[i]['start']=new Date().getTime();
    } else{ /* if (self.interval[i]['type']=='setTimeout')*/
     self.clearInterval(self.interval[i]['ID']);
    }
   }
  }
  self.intervalID = setInterval("GoProcessInterval()",1);
 }
 this.clearInterval = function(ID){
  clearInterval(self.intervalID);
  for (var i=0;i<self.interval.length;i++){
   if (self.interval[i]['ID']==ID){
    //Website.Alert('Stopping timer '+self.interval[i]['ID']+' with code '+self.interval[i]['action']+' at delay '+self.interval[i]['delay']);
    self.interval.splice(i, 1);
   }
  }
  if (self.interval.length == 0){
   self.active = false;
   clearInterval(self.intervalID);
   //Website.Alert('Timer Stoped!');
  }
  self.intervalID = setInterval("GoProcessInterval()",1);
 }
 this.cleanUp = function(){
  while (self.interval.length){
   //Website.Alert('Stopping timer '+self.interval[0]['ID']+' with code '+self.interval[0]['action']+' at delay '+self.interval[0]['delay']);
   self.interval.splice(0, 1);
  }
  self.active = false;
  clearInterval(self.intervalID);
  //Website.Alert('Timer Stoped!');
 }
 this.getTimersInfo = function(){
  Website.Alert('There is '+self.interval.length+' active timer(s)');
  for (var i=0;i<self.interval.length;i++){
   Website.Alert('Info timer '+self.interval[i]['ID']+' with code '+self.interval[i]['action']+' at delay '+self.interval[i]['delay']);
  }
 }
}
var MainTimer = new Timer();
 
function GoProcessInterval(){
 MainTimer.processInterval();
}
// Made by Madeinqc
</script>
<script>  var refresh = true; 
 function increaseTime() {     
 
 var time = parseInt(document.getElementById("Clock").innerHTML)+1;  
    document.getElementById("Clock").innerHTML = time; 
 
     document.getElementById("Refresh").innerHTML = refresh; 
 
     if(time==9 && refresh==true) {  
 
 
 
        window.location = "yourIP";    
     }    
  MainTimer.setTimeout("increaseTime()", 1000); 
 }  
</script> 
 Time: <span id="Clock">0</span><br />
 Refresh: <span id="Refresh">true</span><br /> 
 Count:<div id="count">0</div>
 <input type="button" value="Stop" onclick="refresh = false;" />
 <input type="button" value="Start" onclick="refresh = true;" />
<input type="button" value="Refresh" onclick="window.location='YourIP'" /> 
 <script>
increaseTime();  </script>
Personal tools