var Fader = new Class({
	Implements: Options,
	options: {
		pause: 3000,
		duration: 3000,
		loop: true,
		onComplete: Class.empty,
		onStart: Class.empty,
		nstart: 0
	},
	initialize: function(container, options) {
		this.setOptions(options);
		this.container = $(container);
		if (this.container.getElements('img')) {
			this.imgs = this.container.getElements('img');
			this.logos = $(document.body).getElements('.hb-logos a .green');
			this.imgs.setStyles({
				'position': 'absolute',
				'top': '4px',
				'right': 0,
				'opacity': 0
			});
			this.logos.setStyle('opacity', 0);
			this.imgs[this.options.nstart].setStyle('opacity', 1);
			this.logos[this.options.nstart].setStyle('opacity', 1);
			this.el = new Element('div', {
				'styles': {
					'position':'relative'
				}
			});
			this.el.injectInside(this.container);
			this.el.adopt(this.imgs);
			this.next = this.options.nstart;
			this.start();
		}
	},
	start: function() {
		this.periodical = this.show.bind(this).periodical(this.options.pause);
	},
	stop: function() {
		$clear(this.periodical);
	},
	show: function() {
		if (!this.options.loop && this.next==this.imgs.length-1)
			this.stop();
		this.next = (this.next==this.imgs.length-1)?0:this.next+1;
		var prev = (this.next==0)?this.imgs.length-1:this.next-1;
		for (i = 0; i < this.imgs.length; i++) {
			if (i != this.next || prev) {
				this.imgs[i].setStyle('opacity', 0);
				this.logos[i].setStyle('opacity', 0);
			}
		}
		this.imgs[this.next].fade('in');
		this.logos[this.next].fade('in');
		this.imgs[prev].fade('out');
		this.logos[prev].fade('out');
	}
});
