var mooRotateBanner = new Class({
	Implements: [Options],
	options: {
		delay:1500, /* Delay between animations */
		fade:1500, /* Duration of fade in animation */
		zIndex:1, /* z-index value. layers will use this value +/- 1 either side */
		start:0, /* start from layer number */
		elements: 'img'
	},
	curLayer : null,
	layers: [],
	initialize: function(element, options){
		if($(element)){
			this.setOptions(options);
			this.curLayer = this.options.start;
			this.layers = $(element).getElements(this.options.elements).setStyles({zIndex: this.options.zIndex, opacity:0});
			this.cycleLayers();
		}
	},
	fadeInLayer: function(i){
		var self = this;		
		self.layers[i].setStyles({zIndex:this.options.zIndex+1});
		new Fx.Tween(self.layers[i], {duration:this.options.fade, onComplete :self.cycleLayers.bind(self)}).start('opacity',1);
	},
	cycleLayers: function(){
		var layers = this.layers, l = this.layers.length, c = this.curLayer, zIndex = this.options.zIndex, self = this;
		$(layers[c<=0?l-1:c-1]).setStyles({opacity:0, zIndex:zIndex-1});
		$(layers[c=this.curLayer=c>=l?0:c]).setStyles({opacity:1,zIndex:zIndex});
		setTimeout(this.fadeInLayer.bind(this,c+1==l?0:c+1), this.options.delay);
		++this.curLayer;
	}
});

