var carrousel = {
    nbSlide: 0,
    nbCurrent: 1,
    elemCurrent: null,
    elem: null,
    timer: null,
    init: function (elem) {
        this.nbSlide = elem.find(".pub-slide").length;
        elem.append('<ul class="pub-navigation"></ul>');
        for (var i = 1; i <= this.nbSlide; i++) {
            elem.find(".pub-navigation").append("<li>" + i + "</li>");
        }
        elem.find(".pub-navigation li").click(function () {
            carrousel.gotoSlide($(this).text());
        })
        this.elem = elem;
        elem.find(".pub-slide").hide();
        elem.find(".pub-slide:first").show();
        this.elemCurrent = elem.find(".pub-slide:first");
        this.elem.find(".pub-navigation li:first").addClass("pub-active");
        carrousel.play();
        elem.mouseover(carrousel.stop);
        elem.mouseout(carrousel.play);
    },
    gotoSlide: function (num) {
        if (num == this.nbCurrent) {
            return false;
        }
        this.elemCurrent.find(".pub-visu").fadeOut();
        this.elem.find("#pub-slide" + num).show();
        this.elem.find("#pub-slide" + num + " .pub-visu").hide().fadeIn();
           this.elem.find(".pub-navigation li").removeClass("pub-active");
        this.elem.find(".pub-navigation li:eq(" + (num - 1) + ")").addClass("pub-active");
        this.nbCurrent = num;
        this.elemCurrent = this.elem.find("#pub-slide" + num);
    },
    next: function () {
        var num = this.nbCurrent + 1;
        if (num > this.nbSlide) {
            num = 1;
        }
        this.gotoSlide(num);
    },
    prev: function () {
        var num = this.nbCurrent - 1;
        if (num < 1) {
            num = this.nbSlide;
        }
        this.gotoSlide(num);
    },
    stop: function () {
        window.clearInterval(carrousel.timer);
    },
    play: function () {
        window.clearInterval(carrousel.timer);
        carrousel.timer = window.setInterval("carrousel.next()", 4000);
    }
}
$(function () {
    carrousel.init($("#pub-carrousel"));
});
