/**
 * DOM ready function - serves as function routing
 */
$(document).ready(function() {
  // tab swapping
  $('.tabs li').mouseover(function(event) { 
    swapTab(event);
  });
});


/**
 * Handles changing of homepage tabs through an ajax request
 * @param {Object} event object
 */
function swapTab(event) {
  if(event.currentTarget.className == 'selected') return;

  $('.tab_content').fadeOut(0, function() {
    tabRequest(event.currentTarget.id);
  });
}


/**
 *
 */
function tabRequest(requestedTab) {
  var tabObject = $('#'+requestedTab);
  var tabPage = requestedTab.replace(/tab_/, '');
  var tabContent = $('.tab_body');

  // ajax call for new content
  $.ajax({
    url: 'tabs/'+tabPage+'',
    complete: function(response) {
      removeTabClasses();
      tabContent.html(response.responseText);
      $('.tab_content').fadeIn(0);
      addTabClasses(tabObject);
    }
  });
}


/**
 *
 */
function removeTabClasses() {
  var tabs = $('.tabs li');
  var currentTab;

  for(var x=0; x<tabs.length; x++) {
    currentTab = $(tabs[x]);
    currentTab.removeClass('selected');
    currentTab.removeClass('selected_prev');
  }
  
  $('.tabs div')[0].className = '';
}


/**
 * Adds classes to tab nav for visual styling
 */
function addTabClasses(requestedTab) {
  requestedTab.addClass('selected');

  if(requestedTab.prev().length > 0) {
    $(requestedTab.prev()).addClass('selected_prev');
  } 
  else {
    $('.tabs div').addClass('first_selected');
  }
  
  if(requestedTab.next().length == 0) $('.tabs div').addClass('last_selected');
}
