var isPlaying = true;
var currentTab = 0;
var slideTime = 4000;
var categoriesCount = cantCategorias;

$(function(){
    $tabs = $("#featured").tabs({ selected: 0 });
    $('#featured').bind('tabsshow', function(event, ui) {
      currentTab = $tabs.data('selected.tabs');
      onTabSelected();
    });
    $('.btn-stop').click(onBtnPlayStopClick);
    onTabSelected();
});

function onTabSelected() {
  $(".images").cycle('destroy');
  if (isSingleImageTab()) {
    $('.backward').hide();
    $('.forward').hide();
    if (isPlaying) {
      startTimer();
    }
  } else {
    stopTimer();
    var div = '#fragment-' + (currentTab + 1);
    $(div + ' .images').cycle({
      timeout:  slideTime,
      prev:    '.backward',
      next:    '.forward',
      pager:   '.slidetabs',
      activePagerClass: 'current',
      pagerAnchorBuilder: pagerFactory,
      before: onNextSlide,
      nowrap: true,
      end: goToNextCategory
    });
    
    if (!isPlaying) {
      $('.images').cycle('pause');
    }
  
    $('.backward').show();
    $('.forward').show();
  }      
}

function onNextSlide(currSlideElement, nextSlideElement, options, forwardFlag) {
  var div = '#fragment-' + (currentTab + 1);
  var lastImg = $(div + ' .images img:last')[0];
  var firstImg = $(div + ' .images img:first')[0];
  $('.backward').css('visibility', firstImg == nextSlideElement? 'hidden':'visible');
  $('.forward').css('visibility', lastImg == nextSlideElement? 'hidden':'visible');
}

function goToNextCategory() {
  $("#featured").tabs('select', (currentTab + 1) % categoriesCount)
}

function pagerFactory(idx, slide) {
    return "<a href='#'></a>";
};

function onBtnPlayStopClick() {
  if (isPlaying) {
    $('.btn-stop').removeClass('btn-stop').addClass('btn-play');
    if (isSingleImageTab()) {
      stopTimer();
    } else {
      $('.images').cycle('pause');
    }
  } else {
    $('.btn-play').removeClass('btn-play').addClass('btn-stop');
    if (isSingleImageTab()) {
      startTimer();
    } else {
      $('.images').cycle('resume');
    }
  }
  
  isPlaying = !isPlaying;    
  return false;
}

function startTimer() {
  $(document).everyTime(slideTime, goToNextCategory);
}

function stopTimer() {
  $(document).stopTime();
}

function isSingleImageTab() {
  var div = '#fragment-' + (currentTab + 1);
  return ($(div + ' .images img').size() <= 1);
}

