var fader = function(){
	var thisObj = this;
	var containerSelector = 'div#slideshow-container'; var listSelector = 'div#slideshow-container > ul#slider'; var listItemsSelector = 'div#slideshow-container > ul#slider > li';
	var timeBetweenAnim = 5000;var fadeDuration = 1000;
	var height;var aantal;var current = 0;var t;var z = 100;var busy = false;
	this.init = function(){
		height = $(listItemsSelector).outerHeight();
		aantal = $(listItemsSelector).size();
		$('<div  id="slider-navigation"></div>').insertAfter(listSelector);
		$('<ul class="fader-nav"></ul>').appendTo('#slider-navigation');
		for(var i=0;i<aantal;i++){ $('<li><span>'+(i+1)+'</span></li>').appendTo('#slider-navigation .fader-nav'); }
		$('#slider-navigation li').click(function(){ thisObj.showSelect($(this).index('#slider-navigation li')); });
		$('#slider-navigation li:eq(0)').addClass('active');
		$(containerSelector).css({height: height+'px', overflow:'hidden'});
		$(listItemsSelector).not(listItemsSelector+':eq(0)').hide();
		thisObj.resetInterval();
		$(containerSelector).mouseenter(function(){ t = clearInterval(t); }).mouseleave(function(){ thisObj.resetInterval(); });
	}
	this.resetInterval = function(){ t = clearInterval(t); t = setInterval(function(){ thisObj.next(); }, timeBetweenAnim+fadeDuration); }
	this.next = function(){ if(current<(aantal-1)) next = current+1; else next = 0; this.show(next); }
	this.show = function(number){
		if(!busy){
			busy = true;
			$(listItemsSelector+':eq('+(current)+')').css('z-index', 1+z);
			$(listItemsSelector+':eq('+(number)+')').css('z-index', 2+z);
			if(number > current) $(listItemsSelector+':eq('+number+')').css('top', '-'+height+'px');
			else $(listItemsSelector+':eq('+current+')').css('top', '-'+height+'px');
			$(listItemsSelector+':eq('+number+')').fadeIn(fadeDuration, function(){
				$(listItemsSelector).not(listItemsSelector+':eq('+number+')').hide();
				$(listItemsSelector).css('top', '0px');
				busy = false;
			});
			$('#slider-navigation li.active').removeClass('active');
			$('#slider-navigation li:not(.devider):eq('+number+')').addClass('active');
			current = number;
		}
	}
	this.showSelect = function(number){
		if(number !=  current){
			clearInterval(t);
			if(busy) setTimeout(function(){ thisObj.showSelect(number); }, fadeDuration+10); else this.show(number);
			t = setInterval(function(){ thisObj.next(); }, timeBetweenAnim+fadeDuration);
		}
	}
	this.init();
}
$(document).ready(function(){
	var fade = new fader();
});


