var duration = 15000;

Array.prototype.shuffle = function() {
    var i = this.length;
    while (i) {
        var j = Math.floor(Math.random()*i);
        var t = this[--i];
        this[i] = this[j];
        this[j] = t;
    }
    return this;
}

function fadeout(banners, i) {
    var fade = new YAHOO.util.Anim(banners.get(banners.length-i-1).id, {
        opacity: { to: 0 }
    });
    fade.onComplete.subscribe(function() {
        fade.getEl().style.zIndex = banners.length - i;
        fade.setAttribute('opacity', 1, 0);
        setTimeout(MochiKit.Base.partial(fadeout, banners, (i+1)%banners.length), duration);
        if (i != banners.length - 1) return;
        banners.each(function() {
            YAHOO.util.Dom.setStyle(this, 'zIndex',
                banners.length + parseInt(YAHOO.util.Dom.getStyle(this, 'zIndex')), 0);
        });
    });
    fade.animate();
}

jQuery.event.add(window, 'load', function() {
    var banners = $('div.banner');
    var seq = MochiKit.Iter.list(MochiKit.Iter.range(1, banners.length+1)).shuffle();
    MochiKit.Base.map(function(i, banner) {
        $(banner).attr('id', 'banner'+i).removeClass('hidden');
    }, seq, banners);
    setTimeout(MochiKit.Base.partial(fadeout, banners, 0), duration);
});

