
var Slideshow = {
	
	showTime: 10,
	fadeTime: 1,
	current: 1,
	length: 0,
	_elements: [],

	setElement: function(element) {
		var length = $('#' + element + ' li').length;
		if (Slideshow.length == 0 || length < Slideshow.length) {
			Slideshow.length = length;
		}
		Slideshow._elements[Slideshow._elements.length] = element;
	},

	start: function() {
		Slideshow._interval = window.setInterval('Slideshow.next()', 
			Slideshow.showTime * 1000);
		return false;
	},
	
	stop: function() {
		window.clearTimeout(Slideshow._interval);
		return false;
	},
	
	next: function(dir) {
		if (!Slideshow._sliding) {
			
			if (isNaN(dir)) {dir = 1;}
			Slideshow._sliding = true;
			Slideshow.current += dir;

			if (Slideshow.current == 0) {
				Slideshow.current = Slideshow.length;
			}
			if (Slideshow.current > Slideshow.length) {
				Slideshow.current = 1;
			}
			
			$.each(Slideshow._elements, function(i, element) {
				$.each($('#' + element + ' li'), function(i, element) {
					element = $(element);
					if (i == Slideshow.current - 1) {
						element.fadeIn(
							Slideshow.fadeTime * 1000, function() {
							if (Slideshow._sliding) {
								Slideshow.onSlideEnd();
								Slideshow._sliding = false;
							}
						});
					} else {//if (element.css('display') == 'block') {
						element.fadeOut(Slideshow.fadeTime * 1000);
					}
				});
			});
			
		}
		Slideshow.onSlideStart();
		return false;
	},
	
	prev: function() {
		return Slideshow.next(-1);
	},
	
	onSlideStart: function() {return false;},
	onSlideEnd: function() {return false;}
	
};
