$(function() {
/*
  if ( $("#breaking-news") ){ // this check is only necessary while the breaking-news feature is in development

    if ( $.cookie('hide-breaking-news') ) $("#breaking-news").hide();

    $("#close-breaking-news a").click(function(){
      $("#breaking-news").hide();
      $.cookie('hide-breaking-news',true)
      return false;
    });

  }
*/
  var tab_index = {
    races:         0,
    top_stories:   1,
    action:        2,
    latest_videos: 3
  }

  if ( typeof starting_tab == 'undefined' ) starting_tab = 'races';

  setLastCampaignClass();
  setLastRantClass();

  initializeHoverImages();

  initializeTopStoriesCycler();
  initializeHomeCarousel( tab_index[starting_tab] );
  initializeLatestVideosCycler();

});





function initializeHoverImages() {
  initializeImageHover($(".bottom-col-hd h2 a img"));
}

function initializeHomeCarousel(startTabIndex) {

  $("#home-carousel").jCarouselLite( {
    btnNext: "#home-carousel-next",
    btnPrev: "#home-carousel-prev",
    afterEnd: setCurrentTab,
//    circular: false,
    circular: true,
    visible: 1,
    start: startTabIndex,
	btnGo: ["#races-tab", "#top-stories-tab", "#action-tab", "#video-tab"]
  });

  // we increment the startTabIndex by one because the circular setting prepends an extra page
  var currentTabPage = $('.tab-page')[startTabIndex+1];
  setCurrentTab( $(currentTabPage) );
}


function initializeTopStoriesCycler() {

  /* Initialize the Top Stories cycler */
  $('#top-stories-cycler').cycle( {
    fx: 'fade',
    pager: '#top-stories-nav-container .cycler-nav-pager',
    next:  '#top-stories-nav-container .cycler-nav-next',
    prev:  '#top-stories-nav-container .cycler-nav-prev',
    timeout: 7000,
    pagerAnchorBuilder: function(idx, slide) {
          return '<a></a>';
      },
    pagerClick: function(idx, slide) {
        $('#top-stories-cycler').cycle('pause');
      },
    prevNextClick: function(idx, slide) {
        $('#top-stories-cycler').cycle('pause');
      }
  });

  $('#top-stories-nav-container .cycler-nav-pause').click( function(){
    if ( $(this).hasClass('cycler-nav-pause') ){
      $(this).removeClass('cycler-nav-pause');
      $(this).addClass('cycler-nav-play');
      $('#top-stories-cycler').cycle('pause')
    } else {
      $(this).removeClass('cycler-nav-play');
      $(this).addClass('cycler-nav-pause');
      $('#top-stories-cycler').cycle('resume')
    }
    return false;
  });

}

function initializeLatestVideosCycler() {

  /* Reassign the IDs on critical DOM elements so that the cycler can latch on correctly */
  $( $('.video-archive-cycler')[1] ).attr('id','video-archive-cycler-clone');
  $( $('.video-archive-nav-container')[1] ).attr('id','video-archive-nav-container-clone');

  /* Initialize the Latest Videos cycler */
  $('#video-archive-cycler').cycle( {
    fx: 'fade',
    pager: '#video-archive-nav-container .cycler-nav-pager',
    next:  '#video-archive-nav-container .cycler-nav-next',
    prev:  '#video-archive-nav-container .cycler-nav-prev',
    timeout: 0,
    pagerAnchorBuilder: function(idx, slide) {
          return '<a></a>';
      }
  });

  /* Initialize the Latest Videos cycler clone */
  $('#video-archive-cycler-clone').cycle( {
    fx: 'fade',
    pager: '#video-archive-nav-container-clone .cycler-nav-pager',
    next:  '#video-archive-nav-container-clone .cycler-nav-next',
    prev:  '#video-archive-nav-container-clone .cycler-nav-prev',
    timeout: 0,
    pagerAnchorBuilder: function(idx, slide) {
          return '<a></a>';
      }
  });


}


function setCurrentTab(currentTabPages) {

	$(".home-carousel-tab").removeClass('current');

	var currentPage = $(currentTabPages[0]);

	if (currentPage.hasClass('races-page'))
		$('#races-tab').addClass('current');
	else if (currentPage.hasClass('top-stories-page'))
		$('#top-stories-tab').addClass('current');
	else if (currentPage.hasClass('action-page'))
		$('#action-tab').addClass('current');
	else
		$('#video-tab').addClass('current');
}

function setLastCampaignClass() {

  // Adds the class 'last' to the last 1 or 2 campaigns. 2 if even, 1 if odd (assumes two columns)
  var numCampaigns = (($("#featured_campaigns .campaign").length % 2) == 0) ? 2 : 1;

  $("#featured_campaigns .campaign").slice(-numCampaigns).addClass('last');
}

function setLastRantClass() {
  $("#common_ground .post").slice(-1).addClass('last');
}

