
var timeout;
var timeoutLength = 6000;

function InitTabs(tabSelector, contentSelector, play, playSelector, pauseSelector, nextSelector, prevSelector) {

  if (play != undefined) {

    timeout = window.setTimeout(function () { SetNextTimeout(contentSelector, tabSelector, timeoutLength); }, timeoutLength);
  }

  SetActiveNavItem(tabSelector, 0);

  jQuery(tabSelector).click(function () {

    if (play != undefined) {

      clearTimeout(timeout);
      play = false;
    }

    var index = jQuery(this).index();
    SetItem(contentSelector, tabSelector, index);

    return false;
  });

  if (playSelector != undefined) {

    jQuery(playSelector).click(function () {
    
      if (!play) {

        SetNextItem(contentSelector, tabSelector);
        timeout = window.setTimeout(function () { SetNextTimeout(contentSelector, tabSelector, timeoutLength); }, timeoutLength);
        play = true;
      }

      return false;
    });
  }

  if (pauseSelector != undefined) {

    jQuery(pauseSelector).click(function () {

      clearTimeout(timeout);
      play = false;
      return false;
    });
  }

  if (nextSelector != undefined) {

    jQuery(nextSelector).click(function () {

      SetNextItem(contentSelector, tabSelector);

      clearTimeout(timeout);
      play = false;
      return false;
    });
  }

  if (prevSelector != undefined) {

    jQuery(prevSelector).click(function () {

      SetPrevItem(contentSelector, tabSelector);

      clearTimeout(timeout);
      play = false;
      return false;
    });
  }

  return false;
}

function SetItem(contentSelector, tabSelector, index) {

  var currentIndex = GetCurrentIndex(tabSelector);

  if (index != currentIndex) {

    var selectorData = contentSelector.split(',');
    for (var ii = 0; ii < selectorData.length; ii++) {

      if (!jQuery(selectorData[ii]).is(':animated')) {

        ShowItemAtIndex(selectorData[ii], index);
        ShowItemAtIndex('#homeFeatured h2', index);
        ShowItemAtIndex('#homeFeatured .new-products', index);

        SetActiveNavItem(tabSelector, index);
      }
    }
  }
}

function ShowItemAtIndex(selector, index) {

  jQuery(selector).removeClass("on");
  jQuery(selector).hide();

  var item = jQuery(selector).get(index);
  jQuery(item).fadeIn();
  jQuery(item).addClass("on");
}

function SetActiveNavItem(tabSelector, index) {

  var currentNavItem = jQuery(tabSelector).get(index);
  
  SetHolderClasses(currentNavItem, index);

  jQuery(tabSelector).removeClass("on");
  jQuery(currentNavItem).addClass("on");
}

function SetHolderClasses(currentNavItem, index) {

  if (jQuery(currentNavItem).attr('rel') == 'True') {

    jQuery('#homeFeaturedHolder').removeClass('image-right');
    jQuery('#homeFeaturedHolder').addClass('image-left');
  }
  else {

    jQuery('#homeFeaturedHolder').removeClass('image-left');
    jQuery('#homeFeaturedHolder').addClass('image-right');
  }

  var colorIndex = index % 3;
  if (colorIndex == 0) {

    jQuery('#homeFeatured').removeClass('green');
    jQuery('#homeFeatured').removeClass('orange');
    jQuery('#homeFeatured').addClass('blue');
  }
  else if (colorIndex == 1) {

    jQuery('#homeFeatured').removeClass('blue');
    jQuery('#homeFeatured').removeClass('orange');
    jQuery('#homeFeatured').addClass('green');
  } 
  else if (colorIndex == 2) {

    jQuery('#homeFeatured').removeClass('blue');
    jQuery('#homeFeatured').removeClass('green');
    jQuery('#homeFeatured').addClass('orange');
  }
}

function SetNextItem(contentSelector, tabSelector) {

  var index = GetCurrentIndex(tabSelector);
  var nextIndex = GetNextIndex(tabSelector, index);
  SetItem(contentSelector, tabSelector, nextIndex);
}

function SetPrevItem(contentSelector, tabSelector) {

  var index = GetCurrentIndex(tabSelector);
  var prevIndex = GetPrevIndex(tabSelector, index);
  SetItem(contentSelector, tabSelector, prevIndex);
}

function GetCurrentIndex(tabSelector) {

  var currentItem = jQuery(tabSelector + '.on')[0];
  return jQuery(currentItem).index(); ;
}

function GetNextIndex(selector, index) {

  if (jQuery(selector).size() > index + 1)
    return index + 1;
  else
    return 0;
}

function GetPrevIndex(selector, index) {

  if (index - 1 >= 0)
    return index - 1;
  else
    return jQuery(selector).size() - 1;
}

function SetNextTimeout(contentSelector, tabSelector, timeoutLength) {

  SetNextItem(contentSelector, tabSelector);
  timeout = window.setTimeout(function () { SetNextTimeout(contentSelector, tabSelector, timeoutLength); }, timeoutLength);
} 

