jQuery.noConflict();

var t,
    $nav,
    $content,
    clicked = false;
    animating = false;

jQuery(window).load(function() {
  
  $nav     = jQuery('.tabs-home-browse'),
  $content = jQuery('.tab-home-browse-content');
  
  var $carouselLateSlides = $content.find('li:not(:first)');
  $content.find('li:first').data('loaded',true);
  
  $nav.find('li a').click(function(e) {
    e.preventDefault();
  });  
      
  $nav.find('li a').click(function() {

    if( !jQuery(this).parent().hasClass('current') && ! animating ){  
      window.clicked = true;
      stopTimer();
      var curIndex = $nav.find('li').index(jQuery(this).parent('li'));
      $nav.find('li').removeClass('current');
      jQuery(this).parent().addClass('current');
      var $previous = $content.find('li.current'), 
          $current  = $content.find('li:eq('+curIndex+')');
      transition( $previous, $current );
    }
  });
  
  startTimer();
      
});

function startTimer() {
  window.t = setInterval( timedRotation, 4000 );
}

function stopTimer() {
  clearInterval(window.t);
  window.t = null;    
}

function transition( $previous, $current, force ){

  if ( force === true || $current.data('loaded') === true ){

    animating = true;
    $current.addClass('current');
    $previous.removeClass('current').addClass('previous');
    $previous.fadeOut(1000, function(){
      animating = false;
      $previous.removeClass('previous').removeAttr('style');
      if ( window.t == null && window.clicked == false ){
        startTimer();
      }
    });
    animating = false;
    
  } else {
    stopTimer();
    var $target = $current.find('a');
    jQuery('<img src="' + $target.attr('rel') +'" />')
      .appendTo( $target )
      .load(function(){
        $current.data('loaded', true);
        transition( $previous, $current, true );
      });
    
  }
    
}

function timedRotation(){
  
  var totalLi = $nav.find('li').size() - 1;
  var rotIndex = $nav.find('li').index($nav.find('li.current'));
  if (rotIndex == totalLi) {
    $nav.find('li:eq(0)').addClass('current');
    $nav.find('li:eq('+totalLi+')').removeClass('current');    
    rotIndex = 0;
  } else {
    $nav.find('li.current').next().addClass('current');      
    $nav.find('li:eq('+rotIndex+')').removeClass('current');    
    rotIndex = rotIndex+1;        
  }

  var $previous = $content.find('li.current');
  var $current  = $content.find('li:eq('+rotIndex+')');
  transition( $previous, $current );
    
}
