﻿var carrousel = {

    nbSlide: 0,
    nbCurrent: 1,
    elemCurrent: null,
    elem: null,
    timer: null,

    init: function (elem) {

        this.nbSlide = elem.find('.fade li').length;

        // Pagination
        $('.remove').remove();
        for (var i = 1; i <= this.nbSlide; i++) {
            elem.find('.numbers').append('<li><a href="" onclick="return false;">' + i + '</a></li>');
        }
        elem.find('.numbers li').click(function () { carrousel.gotoSlide($(this).text()); });

        // Initialisation
        this.elem = elem;
        elem.find('.fade li, .title, .link').hide();
        elem.find('.fade li:first, .title:first, .link:first').show();
        this.elemCurrent = elem.find('.fade li:first');
        this.elem.find('.numbers li:first').addClass('active');

        // Timer
        carrousel.play();

        // Quand on passe dessus
        elem.mouseover(carrousel.stop);
        elem.mouseout(carrousel.play);

    },

    gotoSlide: function (num) {
        if (num == this.nbCurrent) { return false; }

        /* Animation FadeIn/FadeOut
        this.elemCurrent.fadeOut();
        this.elem.find('#slide' + num).fadeIn();
        */
        /* Animation Slide */
        var sens = 1;
        if (num < this.nbCurrent) { sens = -1 }
        var cssDeb = { 'left': sens * this.elem.width() };
        var cssFin = { 'left': -sens * this.elem.width() };
        this.elem.find('#slide' + num).show().css(cssDeb);

        this.elem.find('#slide' + num).animate({
            'top': 0,
            'left': 0
        }, 500);

        this.elemCurrent.animate(cssFin, 500);

        /*****************************/
        this.elem.find('.numbers li').removeClass('active');
        this.elem.find('.numbers li:eq(' + (num - 1) + ')').addClass('active');
        // title
        this.elem.find('.title').hide();
        this.elem.find('#title' + (num - 1)).hide();
        this.elem.find('#title' + num).fadeIn();
        // Savoir +
        this.elem.find('.link').hide();
        this.elem.find('#link' + (num - 1)).hide();
        this.elem.find('#link' + num).fadeIn();
        this.nbCurrent = num;
        this.elemCurrent = this.elem.find('#slide' + num);

    },

    next: function () {
        var num = this.nbCurrent + 1;
        if (num > this.nbSlide) {
            num = 1;
        }
        this.gotoSlide(num);
    },

    stop: function () {
        window.clearInterval(carrousel.timer);
    },

    play: function () {
        window.clearInterval(carrousel.timer);
        carrousel.timer = window.setInterval('carrousel.next()', 5000);
    }

}

$(document).ready(function () {

    carrousel.init($('.Slide-Show-News'));

});
