function Timer(){this.timers=new Array();this.timerFunctions=[function(){Callback(0)},function(){Callback(1)},function(){Callback(2)},function(){Callback(3)},function(){Callback(4)},function(){Callback(5)},function(){Callback(6)},function(){Callback(7)},function(){Callback(8)},function(){Callback(9)},function(){Callback(10)},function(){Callback(11)},function(){Callback(12)},function(){Callback(13)},function(){Callback(14)},function(){Callback(15)},function(){Callback(16)},function(){Callback(17)},function(){Callback(18)},function(){Callback(19)}]}function Callback(D){var C=timer.timers[D].object;var A=timer.timers[D].memberFunction;var B=timer.timers[D].args;if(C){C["e"+A]=A;C["e"+A](B);C["e"+A]=undefined}else{A(B)}timer.timers[D].memberFunction=undefined}Timer.prototype.SetTimer=function(D,C,A,B){for(iTimerSlot=0;iTimerSlot<this.timers.length;iTimerSlot++){if(this.timers[iTimerSlot].memberFunction==undefined){break}}if(iTimerSlot==this.timers.length){this.timers[iTimerSlot]=new Object()}this.timers[iTimerSlot].object=C;this.timers[iTimerSlot].memberFunction=A;this.timers[iTimerSlot].args=B;setTimeout(this.timerFunctions[iTimerSlot],D)};var timer=new Timer()