
Zn.browser.time = {};

Zn.browser.time.TimerEvent =
  function (withAction) {
    this.action = withAction;
  }

Zn.browser.time.Timer =
  function (
      name,
      action,       // a function
      msFromNow     // milliseconds
    )
{
  var name = name;
  Zn.browser.time.Timer.events[name] = new Zn.browser.time.TimerEvent (action);
  window.setTimeout ('Zn.browser.time.Timer.alarm (\'' + name + '\')', msFromNow);
}


Zn.browser.time.Timer.events = {};

Zn.browser.time.Timer.alarm =
  function (timerName) {
      var timerEvent = Zn.browser.time.Timer.events[timerName];
      delete Zn.browser.time.Timer.events[timerName];
      if (timerEvent && timerEvent.action) timerEvent.action();
  };


Zn.browser.time.Timer.prototype.cancel = 
  function () {
    Zn.time.browser.Timer.events[this.name].action = null;
  }

