var timer = {
    duration : 5,
    intervalCallback : undefined,
    endCallback : undefined,
    
    init : function(tduration, tInterval, tEnd)
    {
        timer.duration = tduration;
        timer.intervalCallback = tInterval;
        timer.endCallback = tEnd;
        timer.start();
    },
    
    update : function()
    {
        timer.duration -= 1;
        
        if (timer.duration > 0)
        {
            setTimeout(timer.update, 1000);
            timer.intervalCallback(timer.duration);
        }
        else
        {
            timer.endCallback();
        }
    },
    
    start : function()
    {
        setTimeout(timer.update, 1000);
    }
}