var sliderCollection;
var sliderHeight;
var moveNext = true;
var geenCounter = 666;
var activeSlider;
var nextSlider;
var slideTimer = 8000;
var geenTimeOut;

$(document).ready(function(){

	sliderCollection = $('.slidediv');

	if (sliderCollection.length == 1){
		sliderCollection.show();
		$('.slidercontrols').hide();
		return;
	};
	
	$('.slidercontrols div[btn]').click(handler_prevnext_click);
	
	var bolletje = '<div class="bolletje" bolindex="{0}"></div>';
	sliderCollection.each(function(e) {
			$('div.bolletjes').append(bolletje.format($(this).index()));
	});
	bolletjesCollection = $('.bolletje');
	bolletjesCollection.first().addClass('active');
	bolletjesCollection.click(handler_bolletje_click);
	
	activeSlider = sliderCollection.first().show().css('z-index', geenCounter);
	geenCounter = geenCounter +1;
	
	if (!$('#singlecasewrapper').hasClass('holdstart')){
		geenTimeOut = setTimeout(slideDiv, slideTimer);
	} 

});

function handler_prevnext_click() {
	moveNext = $(this).attr('btn') == 'next'? true : false;
	clearTimeout(geenTimeOut);
	slideDiv();
};

function handler_bolletje_click() {
	if (!$(this).hasClass('active')) {
		clearTimeout(geenTimeOut);
		moveNext = true;
		
		var bolletjeindex = parseInt( $(this).attr('bolindex')) - 1;
		//alert(bolletjeindex+'|'+sliderCollection.length);		
		if(bolletjeindex < 0) bolletjeindex = sliderCollection.length - 1;
		activeSlider = sliderCollection.eq(bolletjeindex);

		slideDiv();
	};
};

function slideDiv(){
	$('.slidercontrols div[btn]').unbind();
	bolletjesCollection.unbind();
	nextSlider = moveNext? activeSlider.next() : activeSlider.prev();
	if(nextSlider.length == 0) nextSlider = moveNext? sliderCollection.first() : sliderCollection.last();

	bolletjesCollection.removeClass('active');
	bolletjesCollection.eq(nextSlider.index()).addClass('active');

	geenCounter = geenCounter +1;
	
	sliderCollection.hide();
	nextSlider.css('z-index', geenCounter).fadeIn('easeOut', function() {
		
		$('.slidercontrols div[btn]').click(handler_prevnext_click);
		bolletjesCollection.click(handler_bolletje_click);
		
		activeSlider = nextSlider;
		
	});
	
	if (!$('#singlecasewrapper').hasClass('holdstart')){
		geenTimeOut = setTimeout(slideDiv, slideTimer);
	}
};

String.prototype.format = function() {
	var pattern = /\{\d+\}/g;
	var args = arguments;
	return this.replace(pattern, function(capture){return args[capture.match(/\d+/)]});
}
