var PageLoader = new Class({
	initialize:function(){
		window.addEvents({
			domready:function(){
				if (document.id('slideshow')) new SlideShow();
			}
		});
	}		
});

var SlideShow = new Class({
	initialize:function() {
		this.current = 0;
		this.createinterface();
		this.total = this.slides.length;
		this.interval = 12000;
		this.timer = this.next.periodical(this.interval,this);
	},
	createinterface:function() {
		this.slides = document.id('slides').getElements('li');
		this.slides.each(function(e,i){
			if (e.hasClass('start')) this.current = i;
			e.set({
				styles:{opacity:e.hasClass('start') ? 1 : 0},
				tween:{duration:1000,transition:Fx.Transitions.Sine.easeInOut,fps:60,
					onComplete:function() {
						if (e.getElement('a') && e.getStyle('opacity') == 0) e.getElement('a').setStyles({opacity:0,visibility:'hidden'});
					},
					onStart:function() {
						if (e.getElement('a') && e.getStyle('opacity') == 0) e.getElement('a').setStyle('visibility','visible');
					}
				}
			});
			if (e.getElement('a') && e.hasClass('start')) e.setStyle('opacity',1);
		}.bind(this));		
		this.controls = document.id('controls').setStyle('display','block').getElements('li');
		this.controls.each(function(e,i){
			if (i == this.current) e.addClass('selected');
			e.addEvent('click',function(event){
				event.stop();
				clearInterval(this.timer);
				this.slides[this.current].get('tween').cancel();
				this.showslide(i);
				this.timer = this.next.periodical(this.interval,this);
			}.bind(this));
		}.bind(this));
	},
	next:function() {this.showslide((this.current+1)%this.total);},
	showslide:function(slide) {
		this.slides[this.current].tween('opacity',0);
		this.controls[this.current].removeClass('selected');
		this.current = slide;
		this.slides[this.current].setStyle('visibility','visible').tween('opacity',1);
		this.controls[this.current].addClass('selected');
	}
});


