/* ------------------------------------------------------------------------
	ygSlider
	
	Based on s3Slider by Boban Karišik (www.serie3.info)
	Adapted by Hans Lemuet <hans@upian.com>
	Version: 0.5
	
	Copyright: Feel free to redistribute the script/modify it, as
			   long as you leave this notice at the top.
------------------------------------------------------------------------- */

(function($){  

    $.fn.ygSlider = function(vars) {
        
        var element        = this;
        var timeOut        = (vars.timeOut != undefined) ? vars.timeOut : 4000;
        var current        = null;
        var currNo         = 0;
        var timeOutFn      = null;
        var faderStatus    = true;
        var items          = $("#" + element[0].id + " .items li");
        var synchroList    = (vars.synchroList != undefined) ? vars.synchroList : false;
        var synchroItems   = (vars.synchroList != undefined) ? $("#" + vars.synchroList + " li") : false;
        var synchroCurrent = null;
        
        // Tri aléatoire
        //photos.sort(function() {return 0.5 - Math.random()});
        
        // Fonction fadeElement
        var fadeElement = function() {
            //if (window.console && window.console.log) {console.log('function fadeElement()');}
            var thisTimeOut = (faderStatus) ? 10 : timeOut;
            if(items.length > 0) {
                timeOutFn = setTimeout(makeSlider, thisTimeOut);
            } else {
                if (window.console && window.console.log) {console.log('Aucun item');}
            }
        }
        
        var makeSlider = function() {
            //if (window.console && window.console.log) {console.log('function makeSlider()');}
            current = (current != null) ? current : items[(items.length-1)];
            currNo = (currNo == items.length) ? 0 : currNo;
            synchroCurrent = (items[currNo].id).replace('photo_','serie_');
            if(faderStatus == true) {
                //console.log('fadeIn ' + currNo);
                $('#'+synchroCurrent).addClass('active');
                $('#home .shadow a').attr('href','serie/'+(items[currNo].id).replace('photo_',''));
                $(items[currNo]).fadeIn((timeOut/10), function() {
                    $(this).animate({marginLeft: '-10%'}, {duration:timeOut});
                    faderStatus = false;
                    current = items[currNo];
                    fadeElement();
                    $('#panel .series li.active .waiter .bar').animate({width:'24px'},timeOut,'linear');
                });
            } else {
                //console.log('fadeOut ' + currNo);
                $('#panel .series li .waiter .bar').css({width:'0px'});
                $('.'+synchroList+' li').removeClass('active');
                $(items[currNo]).fadeOut((timeOut/6), function() {
                    $(this).css({marginLeft: '0px'});
                    faderStatus = true;
                    currNo++;
                    current = items[(currNo)];
                    fadeElement();
                });
            }
        }
        
        var extInterface = function(action) {
            switch (action) {
                
                case 'stop':
                clearTimeout(timeOutFn);
                if (window.console && window.console.log) {console.log('stop slider');}
                break;
                
                case 'start':
                faderStatus = true;
                fadeElement();
                if (window.console && window.console.log) {console.log('start slider');}
                break;
                
            }
        }
        
        /*var waiterBar = function() {
            var barStatus = true;
            
            var fill = function() {
                if (barStatus == true) {
                    $('#panel .series li.active .waiter .bg .bar').animate({width:'16px'},6000,'linear',function(){
                        barStatus = false;
                        fill();
                    });
                } else {
                    $('#panel .series li.active .waiter .bg  .bar').css({width:'1px'});
                    barStatus = true;
                    fill();
                }
            };
            
            fill();
            
        }*/
        
        makeSlider();
        return extInterface;

    };  

})(jQuery);