var slideshow = {

    /* variables */
    nbSlide : 0,
    nbCurrent : 1,
    elemCurrent : null,
    elem : null, // la div contenant le slideshow
    timer : null,
    buttons: null,

    //elem : la div slideshow-1 en paramètre
    //slideClass : la classe .slide en paramètre
    init : function(elem, slideClass){
       this.buttons = elem;
       this.nbSlide = elem.find(slideClass).size();

       elem.find('.slideshow-1-navigation div').click(function(){slideshow.gotoSlide($(this).text())});
       slideshow.stop();

       //Initialisation du slideshow
       this.elem = elem;
       elem.find(slideClass).hide();
       elem.find(slideClass+":first").show();
       this.elemCurrent = elem.find(slideClass+":first");
       this.elem.find(".slideshow-1-navigation div:first").addClass("active");

       //Stop slideshow quand la souris est dessus
       /*elem.bind({
          mouseenter: function() {
            slideshow.stop();
          },
          mouseleave: function() {
            slideshow.play()
          }
        });*/
       
       //elem.bind('mouseenter', "slideshow.stop()");
       //elem.bind('mouseleave', "slideshow.play()");
       
       //Initialisation du timer
       this.play();
    },

    gotoSlide : function(num){
      if(num == this.nbCurrent) {
        return false;
      }
      //on coupe les boutons pour la durée du défilement, puis on les réactive
      this.buttons.find('.slideshow-1-navigation div').unbind('click');
      setTimeout("slideshow.buttons.find('.slideshow-1-navigation div').click(function(){slideshow.gotoSlide($(this).text())})", 700);
      
      //on stoppe le timer durant la durée du défilement, puis on le réactive
      this.stop();
      setTimeout("slideshow.play()", 700);

       /* Animation en slides */
      var sens = 1;
      if(num<this.nbCurrent) {
        sens = -1;
      }
      
      var cssDepart = {"left" : sens*this.elem.width()};
      var cssFin =    {"left" : -sens*this.elem.width()};
      this.elem.find("#slide"+num).show().css(cssDepart);
      this.elem.find("#slide"+num).animate({"top" : 0, "left" : 0}, 700);
      this.elemCurrent.animate(cssFin, 700);
      
      this.elem.find(".slideshow-1-navigation div").removeClass("active");
      this.elem.find(".slideshow-1-navigation div:eq("+(num-1)+")").addClass('active');
      this.nbCurrent = parseInt(num);
      this.elemCurrent = this.elem.find("#slide"+num);

      //this.play();
    },

    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(){
        clearInterval(this.timer);
    },

    play : function(){
        this.timer = setInterval("slideshow.next()", 5000);
    }
}

