var Slideshow=new Class({
	Implements:Options,
	options:{
		interval:9000,
		duration:1600
	},
	initialize: function(wrapper,options){
		this.setOptions(options);
		this.wrapper=wrapper;
		this.imgs=this.wrapper.getElements('img');
		if (this.imgs.length>1) {
			this.imgs.each(function(img){
				if (img.hasClass('hide')){
					img.set('tween',{
						duration:this.options.duration,
						onComplete:function(){
							if (img.hasClass('hide')) img.removeClass('hide');
						}
					});
					img.tween('opacity',0);
				} else this.selected=img.addClass('selected');
			}, this);
			this.start.periodical(this.options.interval,this);
		}
	},

	start: function(){
		if (!$defined(this.selected)) this.selected=this.imgs[0];
		if ($defined(this.selected.getNext()))
			var next=this.selected.getNext();
		else var next=this.imgs[0];
		this.selected.tween('opacity',0);
		next.tween('opacity',1);
		this.selected.removeClass('selected');
		this.selected=next.addClass('selected');
	}
});
var ArrowsSlideshow=new Class({
	Implements:Options,
	options:{
		interval:9000,
		duration:1000,
		leftArrow:'left-big-arrow',
		rightArrow:'right-big-arrow'
	},
	initialize: function(wrapper,options){
		this.setOptions(options);
		this.wrapper=wrapper;
		this.imgs=this.wrapper.getElements('a');
		if (this.imgs.length>1) {
			this.imgs.each(function(img){
				if (img.hasClass('hide')){
					img.set('tween',{
						duration:this.options.duration,
						onComplete:function(){
							if (img.hasClass('hide')) img.removeClass('hide');
						}
					});
					img.tween('opacity',0);
				} else this.selected=img.addClass('selected');
			}, this);
		}
		$(this.options.leftArrow).addEvent('click',this.start.bind(this,['previous']));
		$(this.options.rightArrow).addEvent('click',this.start.bind(this,['next']));
		this.intervalID=this.autoStart.periodical(this.options.interval,this);
	},

	start: function(dir){
		$clear(this.intervalID);

		if (!$defined(this.selected)) this.selected=this.imgs[0];
		if (dir=='next') {
			if ($defined(this.selected.getNext()))
				var next=this.selected.getNext();
			else var next=this.imgs[0];
		} else {
			if ($defined(this.selected.getPrevious()))
				var next=this.selected.getPrevious();
			else var next=this.imgs[this.imgs.length-1];
		}
		this.selected.tween('opacity',0);
		next.tween('opacity',1);
		this.selected.removeClass('selected');
		this.selected=next.addClass('selected');

		this.intervalID=this.autoStart.periodical(this.options.interval,this);
	},

	autoStart: function(){
		if (!$defined(this.selected)) this.selected=this.imgs[0];
		if ($defined(this.selected.getNext()))
			var next=this.selected.getNext();
		else var next=this.imgs[0];
		this.selected.tween('opacity',0);
		next.tween('opacity',1);
		this.selected.removeClass('selected');
		this.selected=next.addClass('selected');
	}
});
window.addEvent('domready',function(){
	new Slideshow($('index-slideshow'));
	new ArrowsSlideshow($('gt-slideshow'));
});
