/**********************************
 *
 *  Class ElectromenagerNavigator *
 *
 *********************************/
(function(){
  
  ElectromenagerNavigator = function(changePackBtnSelector, sliderNavigatorSelector){
  
    this.changePackBtns = $(changePackBtnSelector);
    this.sliderNavigator = $(sliderNavigatorSelector);
    this.sliders = $(".pack_slider");
    this.sliderWidth = $(".pack_slider").width();
    
    this.canChange = true; // si true : on peu changer d'onglet, sinon en attente d'une demande en cours
    
    var obj = this;
    this.getCurrentSlider(obj);
    this.initListeners(obj);
  };
  
  ElectromenagerNavigator.prototype={
    
    
    initListeners : function(obj){
    // les boutons de changement de pack
    obj.changePackBtns.each(function(index, elt){
      $(this).click(function(evt){
        evt.preventDefault();
        
        if(obj.canChange && !$(this).parent().hasClass("actif")){
          obj.canChange = false;
          obj.changeSlider($(this).data("pack-id"), obj);
        }
        
      });
    });
    
  },// end initListeners
  

  // récupérer le slider en cours
  getCurrentSlider : function(obj){
    obj.sliders.each(function(index, elt){
      if($(this).hasClass("current_pack")){
        obj.currentSlider = index;
      }
    });
  },
    
  
  changeSlider : function(sliderPos, obj){
    obj.currentSlider = sliderPos;
    var margin = (sliderPos * obj.sliderWidth) *-1;
    obj.sliderNavigator.animate({
        "margin-left":margin
      },{
        duration:700,
        complete:function(){
          obj.canChange = true;
        },
        easing:"easeOutCirc"
    });
    
    obj.addUnselectAll(obj);
    obj.addSelectedPackBtn(sliderPos, obj);
  },
  
  
  
  
  
  /**
   * déselectionne tous les boutons des packs
   */
  addUnselectAll : function(obj){
    obj.changePackBtns.each(function(index, elt){
      $(this).parent().removeClass("actif");
    });
  },
  
  
  
  
  /**
   * selectionne le bouton correspondant à newPackId
   * 
   */
  addSelectedPackBtn : function(index, obj){
    $(obj.changePackBtns[index]).parent().addClass("actif");
  }
  
  
};
// end prototype

})();
// end Class ElectromenagerNavigator
