function Timer(o,i)
    {
    this.object   = o;
    this.interval = i;
    this.stepTime = 0;

    //functions
    this.tick=Timer_tick;
    }

function Timer_tick(tickTime)
    {
    this.stepTime+=tickTime;
    
    while(this.stepTime>=this.interval)
        {
        this.stepTime-=this.interval;
        this.object.tick();
        }
    }


var timerObjects=new Array(10);
var numObjects  = 0;

var rawTickTime=25;
var rawTimerID=-1;

function addTimer(object,interval)
    {
    timerObjects[numObjects++]=new Timer(object,interval);
    }

//incomplete doesn't work at all
function removeTimer(obj)
    {
    for(i=0;i<numObjects;i++)
        {
        o=timerObjects[i];
        if (o==obj)
            timerObjects[i]=null;
        }

    }

function tickTimer()
    {
    for(i=0;i<numObjects;i++)
        if (timerObjects[i]!=null)
            timerObjects[i].tick(rawTickTime);
    }

function initialiseTimer()
    {
    if (rawTimerID!=-1)
        clearInterval(rawTimerID)
    rawTimerID = setInterval('tickTimer()',rawTickTime);
    }

initialiseTimer();
