Array.implement({
  invert: function() {
    var tmp = [];
    for(var i = 0; i < this.length; i++)
      tmp[i] = this[i];
    for(var i = 0; i < this.length; i++)
      this[i] = tmp[this.length-i-1];
    return this;
  }
});

var Uhr = new Class({
  Implements: Events,
  initialize: function() {
    this.tick.periodical(1000, this);
  },
  
  tick: function() {
    this.date = new Date();
    this.time = [this.d2b(this.date.getHours()), this.d2b(this.date.getMinutes()), this.d2b(this.date.getSeconds())];
    this.fireEvent("tick");
  },
  
  d2b: function(d) {
    var b = [];
    for(var i = 0; d > 0; i++) {
      b[i] = d % 2;
      d = Math.floor(d / 2);
    }
    while(b.length < 6)
      b = b.extend([0]);
    return b.invert();
  }
});
