$(function(){

    /**
     * SLIDESHOW PLUGIN
     */
    (function($) {
            $.fn.slideShow = function(options){

                var defaults = {
                   speed:5000,
                   delay:2000
                };

                var settings = $.extend(defaults, options);

                var animate = function(el,current,next,prev){
                    var begin = (el=='logos')?0.5:0.0;
                    //init
                    next.css('opacity',begin).css('display','block');
                    prev.css('opacity',begin).css('display','block');
                    current.css('opacity',1.0);
                    
                    //animate
                    current.delay(settings.delay).animate({opacity: begin}, settings.speed, "linear");
                    next.delay(settings.delay).animate( {opacity: 1.0}, settings.speed, "linear",function(){
                        current.removeClass('current').addClass('prev');
                        next.removeClass('next').addClass('current');
                        prev.removeClass('prev').addClass('next');
                        ///////////////////////////
                        animate(el,next,prev,current);
                        ///////////////////////////
                    } );
                };

                return this.each(function() {
                    var current = $('#'+this.id+' .current');
                    var prev = $('#'+this.id+' .prev');
                    var next = $('#'+this.id+' .next');
                    
                    ///////////////////////////
                    animate(this.id,current,next,prev);
                    ///////////////////////////
                });
            }

    })(jQuery);

    $('#slideshow,#logos').slideShow({speed:1000});


    /**
     * LISTE MANAGEMENT
     */
    (function($) {
            $.fn.listeRoll = function(el,texte,options){

                var hash = {
                    '.mci':new Array('.mis','.mds'),
                    '.mis':new Array('.mci','.mds'),
                    '.mds':new Array('.mci','.mis')
                };

                var defaults = {
                   speed:150
                };

                var settings = $.extend(defaults, options);

                var animate = function(current,next){
                    next.css('opacity',0.0).css('display','block');
                    current.css('opacity',1.0);

                    current.animate({opacity: 0.0}, settings.speed, "linear");
                    next.animate( {opacity: 1.0}, settings.speed, "linear");
                    
                    next.addClass('active');
                    current.removeClass('active');
                };

                var desactivate = function(master,el,els,texte){
                    for( var i=0; i < els.length; i++ ){
                        var e = els[i];
                        var o = master.find(e);
                        if($(o).hasClass('active')){$(o).removeClass('active').css('background-position','bottom left');}
                    }

                    //activate the text
                    var t1 =texte.find(el);
                    var t2 =texte.find('.active');
                    animate($(t2),$(t1));
                };

                return this.each(function() {
                    var master = $(this);
                    var o = $(this).find(el);
                    o.hover( function(){
                                if(!$(this).hasClass('active')){
                                    $(this).addClass('active');desactivate(master,el,hash[el],$(texte));
                                    $(this).css('background-position','top left');
                                }
                            },
                            function(){
                                if(!$(this).hasClass('active')){
                                    $(this).css('background-position','bottom left');
                                }
                     })
                     .click(function(){
                         window.location.href=o.find('a').attr('href');
                     });
                });
            }

    })(jQuery);


    // LISTE DEPARTEMENT
    $('#listeDepartement').listeRoll('.mci','#departements');
    $('#listeDepartement').listeRoll('.mis','#departements');
    $('#listeDepartement').listeRoll('.mds','#departements');


    /**
     * NEWS SLIDER
     */
    (function($) {
            $.fn.slide = function(navigation,options){

                var defaults = {
                   speed:200,
                   click:220
                };

                var settings = $.extend(defaults, options);

                var prepare = function(el,nav){
                     // prepare news
                    var nbNews = el.children('.item').length-3;
                    
                    //prepare next prev
                    nav .find('.next')
                        .click(function(){
                            slide(el,-(settings.click),'next',nbNews)
                        });
                        
                    nav .find('.prev')
                        .click(function(){
                            slide(el,settings.click,'prev',nbNews)
                        });
                };

                var slide = function(el,x,type,nb){
                    var max = -(nb*settings.click);
                    var min = 0;
                    var place = parseFloat(el.css('left'));
                    var dist = place+x;

                    if(type=="prev"){
                       if( dist <= min){
                           el.animate({left:dist},settings.speed,'linear');
                       }
                    }
                    if(type=="next"){
                       if( dist >= max){
                           el.animate({left:dist},settings.speed,'linear');
                       }
                    }
                }

                return this.each(function() {
                    prepare($(this),$(navigation));
                });
            }
    })(jQuery);

    $('#newsItems').slide('#newsNav');
});

