var ImageFader = new Class({

	counter: 0,
	current: null,

	images: [],
	indexes: [],

	timer: null,	
	fx1: null,
	fx2: null,

	getOptions: function(){
		return {
			transition: Fx.Transitions.Quad.easeOut,
			interval: 5000,
			duration: 400,
			border: 0
		};
	},

	initialize: function(images, options){
		var i,j;
		var preload_image = new Image(25,25);
		for(i=0; i<images.length; i++) {
			for(j=10; j>images[i].c; j--) this.indexes[this.indexes.length] = i;
			preload_image.src=images[i].src
		}
		this.images = images;

		this.setOptions(this.getOptions(), options);

		this.timer = this.next.periodical(this.options.interval, this);
		this.next();
	},

	next: function() {
		var next = -1;
		do {
			next = this.indexes[Math.floor(Math.random()*this.indexes.length)];
		} while(next == this.current);
		this.current = next;	
		next = this.images[next];

		if((this.counter++ % 2) == 1) {
			var banner1 = $('banner_odd_postfader');
			var banner2 = $('banner_even_postfader');
		} else {
			var banner1 = $('banner_even_postfader');
			var banner2 = $('banner_odd_postfader');
		}
		var img = banner1.getElements('img');
   	    img.set('src', next.src);

		banner1.set('href', next.link);
		banner1.fade(1);
		banner2.fade(0);
	}	
});

ImageFader.implement(new Options);
ImageFader.implement(new Events);