/* ------------------------------------------------------------------------
	s3Slider
	
	Developped By: Boban K. -> http://www.serie3.info/
        CSS Help: M. R. -> http://www.perspectived.com/
	Version: 1.0
	
	Copyright: Feel free to redistribute the script/modify it, as
			   long as you leave my infos at the top.
------------------------------------------------------------------------- */


(function($){ 
    $.fn.s3Slider = function(vars) {
    
        var element     = this;
        var timeOut     = (vars.timeOut != undefined) ? vars.timeOut : 5000;
        var startTimeOut= (vars.timeOut != undefined) ? vars.timeOut : 3000; //time until show starts over after mouse out
        var current     = null;
        var timeOutFn   = null;
        var slideShow	= vars.slideShow;
        var faderStat   = true;
        var mOver       = false;
        var slideBtn	= $('.s3sliderNavIcon');
		var slide1Btn	= $('.slideBtn1');
		var slide2Btn	= $('.slideBtn2');
		var slide3Btn	= $('.slideBtn3');
		var slide4Btn	= $('.slideBtn4');
        var items       = $("#" + element[0].id + "Content ." + element[0].id + "Image");
        var itemsSpan   = $("#" + element[0].id + "Content ." + element[0].id + "Image div");
        var showTimer;
        var slideTimer;
        
        items.each(function(i) {
            $(items[i]).mouseover(function() {
               stopShowTimer();
            });
            $(items[i]).mouseout(function() {
                startShowTimer();
            });
        });
        $(slide1Btn).live('click', function(e){
        	e.preventDefault();
        	stopShowTimer();
        	mOver   = true;
        	makeSlider(0);
        });
        $(slide2Btn).live('click', function(e){
        	e.preventDefault();
        	stopShowTimer();
        	mOver   = true;
        	makeSlider(1);
        });
        $(slide3Btn).live('click', function(e){
        	e.preventDefault();
        	stopShowTimer();
        	mOver   = true;
        	makeSlider(2);
        });
        $(slide4Btn).live('click', function(e){
        	e.preventDefault();
        	stopShowTimer();
        	mOver   = true;
        	makeSlider(3);
        });
   
        
        var startTimer = function(){
        	clearInterval(slideTimer);
        	makeSlider("slide");
        	slideTimer = setInterval(changeSlide, timeOut);
        }
        var changeSlide = function(){
        	makeSlider("slide");
        }
        var startShowTimer = function(){
        	clearTimeout(showTimer);
        	clearInterval(slideTimer);
        	showTimer = setTimeout(startTimer, startTimeOut);
        }
        var stopShowTimer = function(){
        	clearInterval(slideTimer);
        	clearTimeout(showTimer);
        }
        var makeSlider = function(direction) {
        	current = (current != null) ? current : items[(items.length-1)];
	        var currNo      = jQuery.inArray(current, items) + 1
	        currNo = (currNo == items.length) ? 0 : (currNo - 1);
	        var newMargin   = $(element).width() * currNo;
        	
        	if(direction != "slide"){
        		if(faderStat == true) {
	                $(items[direction]).fadeIn((timeOut/6), function() {
	                	faderStat = false;
	                	current = items[direction];
	                });
                } 
        		else {
        			 items.each(function(i) {
        			 	$(items[i]).fadeOut((timeOut/6))
        			 });
					$(current).fadeOut((timeOut/6), function() {
						faderStat = true;
						makeSlider(direction);
					});
        		}
        	}
        	else{
        		if(faderStat == true) {
                    $(items[currNo]).fadeIn((timeOut/6), function() {
                    	faderStat = false;
                    	current = items[currNo];
                    });
                } 
        		else {
        			items.each(function(i) {
        			 	$(items[i]).fadeOut((timeOut/6))
        			 });
					$(items[currNo]).fadeOut((timeOut/6), function() {
						faderStat = true;
						current = items[(currNo+1)];
						makeSlider("slide");
					});
        		}
        	}
        }
        makeSlider("slide");
        startTimer();
    };  

})(jQuery);
