/* simple slider
 * parametry:
 * {
 *		slider : selektor jQuery wskazujący na slider (zazwyczaj '#id_slidera .klasa_slajdu),
 *		left : selektor jQuery wskazujący na nawigacje w lewo,
 *		right : selektor jQuery wskazujący na nawigacje w prawo,
 *		timeout : opóźnienie automatycznego przewijania,
 *		otherNav : selektor jQuery opisujący inne el. nawigacyjne (zalecana klasa),
 * 		otherNavActive : klasa CSS stylująca element jako zaznaczony (NIE SELEKTOR JQUERY - BEZ KROPKI)
 *	}
 */

(function($){
	$.fn.slider = function(vars) {
	var slider = vars.slider,
		left = vars.left,
		right = vars.right,
		timeout = vars.timeout,
		otherNav = vars.otherNav,
		otherNavActive = vars.otherNavActive,
		time = 0;
		
	$(left).click(function(event) {
		clearTimeout(time);			
		
		var nextNr = $(slider).index($(slider+':visible'))-1;
	    var slideCount = $(slider).length-1;
		
		if (nextNr>=0) showSlide(nextNr, slider);
		else showSlide(slideCount, slider);
//	    	time = setTimeout(function() {changeSlide(slider);},timeout);  
		return false;
	});
	
	$(right).click(function(event) {
		clearTimeout(time);
		var nextNr = $(slider).index($(slider+':visible'))+1;
    	var offerCount = $(slider).length-1;
		
		if (nextNr<=offerCount) showSlide(nextNr, slider);
		else showSlide(0, slider);
//	    	time = setTimeout(function() {changeSlide(slider);},timeout);  
		return false;		
	});
	
	$(otherNav).click(function(e) {
		clearTimeout(time);
		var numer = $(otherNav).index($(this));
		showSlide(numer, slider);
		return false;
	});
	
	function showSlide(num, slideList) {
		var activeSlideNr = $(slideList).index($(slideList+':visible'));
		if ( activeSlideNr != num ) {
			$(slideList+':visible').fadeOut();
			$(slideList+':eq(' + num + ')').fadeIn();
			
			if (otherNav) {
				$('.'+otherNavActive).removeClass(otherNavActive);	
				$(otherNav + ':eq(' + num + ')').addClass(otherNavActive);
			}
		}
	}
	
	function changeSlide(slideList) {
		var activeSlideNr = $(slideList).index($(slideList+':visible'));
    	var slideCount = $(slideList).length;
		
		if (slideCount > 1) {
	    	var slideNr = ((activeSlideNr + 1) < slideCount) ?  activeSlideNr + 1 : 0;
			showSlide(slideNr, slideList);
	    	if (timeout > 0) {
		    	time = setTimeout(function(){changeSlide(slideList)},timeout);
	    	}
			
		} else {
			showSlide(0, slideList);
		}
	}

	changeSlide(slider);
	}  
})(jQuery); 
