var Fader = new Class({
    // Options
    options: {
      fadeTimer: 6000,
      items: null,
      itemNumber: 0
    },

    // Initialisation
    initialize: function(options) {
      this.setOptions(options);
    },

    start: function() {
        this.fadeIt.periodical(this.options.fadeTimer, this, null);
    },

    fadeIt: function(item_id) {
        var currentItem = this.options.items[this.options.itemNumber];
      
        // Determine the next item
        var nextItemNum = this.options.itemNumber + 1;
        if (nextItemNum >= this.options.items.length)
            nextItemNum = 0;
        var nextItem = this.options.items[nextItemNum];
        this.options.itemNumber = nextItemNum;

        // Fade the items
        var fadeOut = currentItem.effect('opacity',
          { duration: 1000,
            onComplete: function() { /* currentItem.setStyle('display', 'none'); */ } });
        var fadeIn = nextItem.effect('opacity',
          { duration: 1000,
            onStart: function() { /* nextItem.setStyle('display', ''); */ } });
        fadeOut.start(1, 0);
        fadeIn.start(0, 1);
    }
});
Fader.implement(new Options);
