/* ------------------------------------------------------------------------
	s3Slider
	
	Developped By: Boban Karišik -> http://www.serie3.info/
        CSS Help: Mészáros Róbert -> 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 : 4000;
        var startIdx    = (vars.startIdx != undefined) ? vars.startIdx : 0;
        var current     = null;
        var timeOutFn   = null;
        var faderStat   = true;
        var mOver       = false;
        var items       = $("#" + element[0].id + "Content ." + element[0].id + "Image");
        var itemsSpan   = $("#" + element[0].id + "Content ." + element[0].id + "Image div");
		var nextSlideOverride = null;
		var nextSlidePending = null;
		var isTimingOut = false;
		var thisTimeOut;
		var skipNextPause = false;
		var killFlag1 = false, killFlag2 = false, killFlag3 = false;

        items.each(function(i) {
    
            $(items[i]).mouseover(function() {
               //mOver = true;
            });
            
            $(items[i]).mouseout(function() {
                mOver   = false;
                fadeElement(true);
            });
            
        });
        
        var fadeElement = function(isMouseOut) {
isTimingOut = true;
            thisTimeOut = (isMouseOut) ? (timeOut /*/2 */ ) : timeOut;
            thisTimeOut = (faderStat) ? 10 : thisTimeOut;
			
if((thisTimeOut > 10) && skipNextPause)
{
	thisTimeOut = 10;
	skipNextPause = false;//alert('skip skippity!');
	killFlag1 = true;
}
			
if((thisTimeOut == 10) && (nextSlidePending != null))
{
	nextSlideOverride = nextSlidePending;
	nextSlidePending = null;
}
	
			
            if((items.length > 0) && !killFlag3) {//alert(thisTimeOut);
                timeOutFn = setTimeout(makeSlider, thisTimeOut);
            } else {
                //console.log("Poof..");
            }
if(killFlag3)
	isTimingOut = false;
if(killFlag2)
	killFlag3 = true;
if(killFlag1)
	killFlag2 = true;
        }
        
        var makeSlider = function() {

isTimingOut = false;


//			current = (current != null) ? current : items[0];
			current = (current != null) ? current : items[ startIdx ];
			var currNo = jQuery.inArray(current, items) + 1;
//			currNo = (currNo == items.length + 1) ? 0 : (currNo - 1);
			currNo = (currNo == items.length + 1) ? startIdx : (currNo - 1);


            var newMargin = $(element).width() * currNo;
            if(faderStat == true) {
                if(!mOver) {
                    $(items[currNo]).fadeIn((timeOut/6), function() {
						/* décommenter ici pour réactiver la partie texte */
						// $(itemsSpan[currNo]).slideDown((timeOut/6), function() {
							faderStat = false;
							current = items[currNo];
							if(!mOver) {
								fadeElement(false);
							}
						// });
                    });
                }
            } else {
                if(!mOver) {

					$(itemsSpan[currNo]).slideUp((timeOut/6), function() {
					$(items[currNo]).fadeOut((timeOut/6), function() {
							faderStat = true;
$('.slider-jump-links').css('background-image', 'url(../img/fond-navigation-g.gif)');
if(nextSlideOverride != null)
{
$('#slider-jump-link-' + (nextSlideOverride)).css('background-image', 'url(../img/fond-navigation-r.gif)');
current = items[nextSlideOverride]; nextSlideOverride = null; fadeElement(false); /*skipNextPause = true;*/
}
else
{
n = currNo+1;
if(!$('#slider-jump-link-' + (currNo+1)).html())
	n = 0;
//alert(n);
$('#slider-jump-link-' + (n)).css('background-image', 'url(../img/fond-navigation-r.gif)');
							current = items[n];
							if(!mOver) {
								fadeElement(false);
							}
}
						});
					});
                }
            }
        }
        
        makeSlider();

		return function(slidenb)
		{
			nextSlidePending = slidenb;
		
			if(killFlag2)
			{
				killFlag1 = false;
				killFlag2 = false;
				killFlag3 = false;
				
				faderStat = true;
				skipNextPause = true;
				fadeElement(false);
			}
			else if(isTimingOut)
			{
				clearTimeout(timeOutFn);
				faderStat = true;
				skipNextPause = true;
				fadeElement(false);
			}
		}
		

		
    };  

})(jQuery);  
