(function($) {
    $.fn.jDiaporamaFront = function(settings) {
        settings = jQuery.extend({
            delai               : 5000,
            auto                : true,
            mode                : 'vignette'
        },settings);

        //vars
        var nb_diapo = $('#credit_content').children('div').length;
        var delai = settings.delai;
        var diapo_en_cours = 1;
        var is_timeout = false;
        var largeur_image = 684;

        //on masque les grandes images (sauf la première)
        $('#wrapper_image_mask').children('img').each(function (i) {
            //
            if (settings.mode == 'vignette') {
                if (i) $(this).hide();
                $(this).css({
                   position : 'absolute',
                   top      : 0
                });
            }
            else if (settings.mode == 'festival') {
                var new_margin = i * largeur_image;
                $(this).css({
                    position        : 'absolute',
                    marginLeft      : new_margin + 'px',
                    top             : 0
                 });
            }
        });

        //Réglages en cas de mode vignette :
        if (settings.mode == 'vignette') {
            //on rend les vignettes cliquables
            $('#wrapper_vignettes').children('div').each(function(i) {
               $(this).click(function(){
                   active_diapo(i+1, true);
               });
            });
            //on masque la première vignette
            $('#difr_vignette_1').hide();
            //on fait apparaitre le bloc des vignettes
            $('#wrapper_vignettes').fadeIn('slow');

        }
        else if (settings.mode == 'festival') {

            $('#arrow_left').hide();
            $('#arrow_right').fadeIn('slow');

            $('#arrow_left').click(function(){
                var new_diapo = diapo_en_cours - 1;
                if (new_diapo < 1) new_diapo = nb_diapo;
                active_diapo(new_diapo, true);
            });
            $('#arrow_right').click(function(){
                var new_diapo = diapo_en_cours + 1;
                if (new_diapo > nb_diapo) new_diapo = 1;
                active_diapo(new_diapo, true);
            });
        }

        //On active les infos de la première diapo
        $('#content_infos').html($('#difr_info_1').html());
        //On affiche les infos
        $('#wrapper_infos').fadeIn('slow');

        if ($('#difr_credit_1').find('img').length) {
            $('#wrapper_credit').show();
        } else {
            $('#wrapper_credit').hide();
        }

        //On affiche la bonne div credit
        $('#difr_credit_1').show();
        //On affiche les crédits
        $('#wrapper_credit').animate({
            left    : 4
        });


        if (settings.auto) {
            timeout = setTimeout(function() { diapo_suivante(); }, delai);
            is_timeout = true;
        }

        function diapo_suivante() {
            if (nb_diapo <= 1) return false;
            var diapo_a_montrer = diapo_en_cours + 1
            if (diapo_a_montrer > nb_diapo) diapo_a_montrer = 1;
            active_diapo(diapo_a_montrer, false);
        }


        function active_diapo(difr_id, stop_timeout) {
            //changement de crédit
            /*$('#wrapper_credit').animate({
                left    : 24
            }, function(){
                //alert(diapo_en_cours);
                $('#difr_credit_' + diapo_en_cours).hide();
                $('#difr_credit_' + difr_id).show();
                $('#wrapper_credit').animate({
                    left    : 4
                });
            });*/
            $('#difr_credit_' + diapo_en_cours).hide();
            $('#difr_credit_' + difr_id).show();
            if ($('#difr_credit_' + difr_id).find('img').length) {
                $('#wrapper_credit').show();
            } else {
                $('#wrapper_credit').hide();
            }

            //on change les infos
            $('#content_infos').html($('#difr_info_' + difr_id).html());

            //on masque la vignette
            if (settings.mode == 'vignette') {

                //changement de grande image
                $('#difr_img_' + diapo_en_cours).fadeOut('slow');
                $('#difr_img_' + difr_id).fadeIn('slow');

                /*$('#difr_vignette_' + difr_id).hide();
                $('#difr_vignette_' + diapo_en_cours).show();*/
                $('#difr_vignette_' + diapo_en_cours).insertBefore('#difr_vignette_' + difr_id);
                $('#difr_vignette_' + difr_id).hide();
                $('#difr_vignette_' + diapo_en_cours).show();
            }
            else if (settings.mode == 'festival') {
                var new_position = (difr_id - 1) * largeur_image;
                if (new_position > 0) new_position = -new_position;
                $('#wrapper_image_mask').animate({
                    marginLeft    : new_position + 'px'
                });

                if (difr_id > 1) {
                    $('#arrow_left').fadeIn('slow');
                } else {
                    $('#arrow_left').fadeOut('slow');
                }

                if (difr_id == nb_diapo) {
                    $('#arrow_right').fadeOut('slow');
                } else {
                    $('#arrow_right').fadeIn('slow');
                }
            }

            if (is_timeout && stop_timeout) {
                is_timeout = false;
                clearTimeout(timeout);
            } else if (is_timeout) {
                timeout = setTimeout(function() { diapo_suivante(); }, delai);
            }

            diapo_en_cours = difr_id;
        }

    };
})(jQuery);

