/******************************************

Script		: SlideShow
Version		: 0.1
Author		: Benjamin Schoch
Copyright	: Euroweb Design GmbH

*******************************************/

var SlideShow = new Class({
	options: {
		random: false, duration: 1000, wait: 4500, height: 250, start: 1
	},
	initialize: function(container,options) {
		this.setOptions(options)
		containerObj = $(container);
		if(!$type(containerObj).match(/element/)){return false;}
		var elements = $$("#"+container+" img");
		if(!$type(elements).match(/array/) || elements.length < 1){return false;}
		if(this.options.random){this.options.start = $random(1, elements.length);}
		containerObj.setStyles({height : this.options.height, position : 'relative', overflow : 'hidden'});
		elements.each(function(imgEl, i) {
			imgEl.addClass('ew_slide_' + ++i);
			imgEl.setStyles({display: 'block', opacity: 0, overflow: 'hidden', position: 'absolute', top: 0, left: 0, zIndex: 1});
			if(i == this.options.start) {imgEl.setStyles({opacity: 1, zIndex: 2});
			} else if(i == this.getNextItem(containerObj, this.options.start)) {imgEl.setStyle('opacity', 1);}
		}.bind(this));
		if(elements.length > 1){
			this.start.delay(this.options.wait, this, [containerObj, this.options.start]);
		}
	},
	start: function(el, i) {
		var cur = el.getElement('.ew_slide_' + i);
		var next = this.getNextItem(el, i);
		cur.set('tween', {duration: this.options.duration}).fade('out').get('tween').chain(function() {
			cur.setStyle('z-index', 1);
			el.getElement('.ew_slide_' + next).setStyle('z-index', '2');
			el.getElement('.ew_slide_' + this.getNextItem(el, next)).setStyle('opacity', '1');
			this.start.delay(this.options.wait, this, [el, next]);
		}.bind(this));
	},
	getNextItem: function(el, i) {
		var bool;
		el.getChildren().each(function(imgEl) {
			if(imgEl.hasClass('ew_slide_' + (i+1))) {bool = true;}
		});
		if(bool) {return i+1;
		} else {return 1;}
	}
});
SlideShow.implement(new Options);
window.addEvent('domready',function(){
	show = new SlideShow('slideshow',{height:'250px'});
});