var homeSliderApp = {};
homeSliderApp.initalize = function () {
  var _this = this;
  this.slider = $('#home-slider');
  this.slides = this.slider.find('.img-mention');
  this.navElements = $('#home-slider-nav li');
  this.activeNavElement = false;
  
  
  //Default currentSlide  
  this.currentSlide = 0;
  this.reverse = false;
  this.prepareAnimation();
  this.sliderInterval = setInterval(this.handleSliderAnimation.bind(this), 6000);
  
  this.navElements.each(function(){
    $(this).hover(function(){
      if(!$(_this.slides[_this.currentSlide] + ":animated").length){
        _this.activeNavElement = $(this);
        _this.HandleNavHover();
      }
    }, function(){
      if(!$(_this.slides[_this.currentSlide] + ":animated").length){
        _this.activeNavElement = false;
        _this.prepareAnimation();
        _this.sliderInterval = setInterval(_this.handleSliderAnimation.bind(_this), 6000);
      }
    });
  })
  
}

homeSliderApp.prepareAnimation = function() {  
  if(this.reverse) {
    this.nextSlide = (this.currentSlide > 0) ? this.currentSlide - 1  : this.slides.length-1;
  } else {
    this.nextSlide = (this.currentSlide < (this.slides.length-1)) ? this.currentSlide + 1  : 0;
  }
}

homeSliderApp.handleSliderAnimation = function() {
  var _this          = this,
      myCurrentSlide = $(this.slides[this.currentSlide]),
      mynextSlide    = $(this.slides[this.nextSlide]);

  mynextSlide.show();

  myCurrentSlide.css({'z-index' : '15'});
  mynextSlide.css({'z-index' : '14'});
  
  
  myCurrentSlide.fadeOut(200, function(){
    _this.currentSlide = _this.nextSlide;
    _this.prepareAnimation();
  });
}

homeSliderApp.HandleNavHover = function() {
  clearInterval(this.sliderInterval);
    
  for(i = 0, l = this.slides.length ; i < l ; i++) {
    var parentNav = 'nav-' + $(this.slides[i]).data('slide-parent');
    if(this.activeNavElement.attr('id') === parentNav) {
        this.nextSlide = i;
    }
  }
  
  if(this.currentSlide != this.nextSlide) {
    this.handleSliderAnimation();
  }
}

$(function() {
  homeSliderApp.initalize();
});
