var Slides = {

	init: function(list,nav,options) {
		if(!$(list)) return false;
		Slides.container = $(list);
		Slides.slides = $(list).select('li');
		Slides.slides.invoke('hide');
		Slides.nav = $(nav);
		Slides.count = 0;
		Slides.trans = options.trans;
		Slides.pause = options.pause;
		Slides.addNavigation();
		Slides.start();
	},
	
	start: function() {
		current = Slides.slides[Slides.count];
		$(current).appear({ duration: Slides.trans, afterFinish: Slides.activeButton });
		Slides.tween.delay(Slides.pause);
	},
	
	tween: function() {
		
		var count = arguments[0];
		current = Slides.slides[Slides.count];
		if(!count) count = Slides.count = (Slides.count + 1 ) % Slides.slides.length;
		next = Slides.slides[count];
		if(Slides.stop) return false;
		if(next != current)
		{
			current.fade({ duration: Slides.trans, beforeUpdate: function() { if(Slides.stop) return false; } });
			next.appear({ duration: Slides.trans, afterFinish: Slides.activeButton, beforeUpdate: function() { if(Slides.stop) return false; } });
		}
		Slides.tween.delay(Slides.pause);
	},
	
	show: function(count) {
		Slides.stop = true;
		Slides.activeButton(count);
		Slides.slides.invoke('hide');
		Slides.slides[count].show();
	
	},
	
	addNavigation: function() {
		Slides.slides.each(function(li,index) {
			var button = new Element('a');
			button = button.wrap('li');
			Slides.nav.insert(button);
			button.observe('click',function(event){
				Slides.show(index);
			});
		});
	},
	
	activeButton: function(count)
	{
		if(typeof count != 'number') count = Slides.count
		var buttons = Slides.nav.select('a');
		buttons.invoke('removeClassName','active');
		buttons[count].addClassName('active');
	}

};


document.observe('dom:loaded',function(){
	Slides.init('slideshow','slidenav',{ trans: 2, pause: 8 });
});