﻿
var loadInitialItems = function(type, args) {

	var start = args[0];
	var last = args[1]; 

	load(this, start, last);

	changeHighlightedTab(start);
};

var loadNextItems = function(type, args) {
    var start = args[0];
    var last = args[1];
    var alreadyCached = args[2];

    if (!alreadyCached)
        load(this, start, last);

    changeHighlightedTab(start);
    adjustPageHeight(last);
};

var loadPrevItems = function(type, args) {
	var start = args[0];
	var last = args[1]; 
	var alreadyCached = args[2];

	if(!alreadyCached)
		load(this, start, last);
  
	changeHighlightedTab(start);
	adjustPageHeight(last);
};

var load = function(carousel, start, last) {
    for (var i = start; i <= last; i++) {
	    carousel.addItem(i);
	}
};

var changePage = function(e, args) {
	var carousel = args[0];
	var pageNum = args[1];
	
	carousel.scrollTo(pageNum);
	adjustPageHeight(pageNum);
};

var pageLoad = function() {
    var lStartTabParam = "sStartTab=";
    var lParams = window.location.search;
    var lDefaultTab = 1;

    if (lParams.indexOf(lStartTabParam) > -1) {
        var lStartTabIndex = lParams.indexOf(lStartTabParam) + lStartTabParam.length;
        lDefaultTab = parseInt(window.location.search.substr(lStartTabIndex, 1));
    }

    if (document.getElementById('dhtml-carousel')) {
        carousel = new YAHOO.extension.Carousel("dhtml-carousel",
		  {
		      firstVisible: lDefaultTab,
		      numVisible: 1,
		      animationSpeed: 0.7,
		      scrollInc: 1,
		      navMargin: 42,
		      prevElement: "prev-arrow",
		      nextElement: "next-arrow",
		      loadInitHandler: loadInitialItems,
		      loadNextHandler: loadNextItems,
		      loadPrevHandler: loadPrevItems,
		      size: $('carouselcontent1').childElements().length, //totalTabs,
		      disableSelection: false,  //Important to set to false else all inputs in tab content disabled in Safari / Chrome
		      wrap: true

		  }
	  );

        YAHOO.util.Event.addListener(this.carouselNext, "click", this._scrollNext, this);

        YAHOO.util.Event.addListener("tab1", "click", changePage, [carousel, 1]);
        YAHOO.util.Event.addListener("tab2", "click", changePage, [carousel, 2]);
        YAHOO.util.Event.addListener("tab3", "click", changePage, [carousel, 3]);
        YAHOO.util.Event.addListener("tab4", "click", changePage, [carousel, 4]);
        YAHOO.util.Event.addListener("tab5", "click", changePage, [carousel, 5]);
        YAHOO.util.Event.addListener("tab6", "click", changePage, [carousel, 6]);
        YAHOO.util.Event.addListener("tab7", "click", changePage, [carousel, 7]);
        YAHOO.util.Event.addListener("tab8", "click", changePage, [carousel, 8]);
        YAHOO.util.Event.addListener("tab9", "click", changePage, [carousel, 9]);
        YAHOO.util.Event.addListener("tab10", "click", changePage, [carousel, 10]);
        YAHOO.util.Event.addListener("tab11", "click", changePage, [carousel, 11]);
        YAHOO.util.Event.addListener("tab12", "click", changePage, [carousel, 12]);
        YAHOO.util.Event.addListener("tab13", "click", changePage, [carousel, 13]);
        YAHOO.util.Event.addListener("tab14", "click", changePage, [carousel, 14]);
        YAHOO.util.Event.addListener("tab15", "click", changePage, [carousel, 15]);
        YAHOO.util.Event.addListener("tab16", "click", changePage, [carousel, 16]);
        YAHOO.util.Event.addListener("tab17", "click", changePage, [carousel, 17]);

        //This allows a link in the content to scroll to the specified tab
        YAHOO.util.Event.addListener("tablink1", "click", changePage, [carousel, 1]);
        YAHOO.util.Event.addListener("tablink2", "click", changePage, [carousel, 2]);
        YAHOO.util.Event.addListener("tablink3", "click", changePage, [carousel, 3]);
        YAHOO.util.Event.addListener("tablink4", "click", changePage, [carousel, 4]);
        YAHOO.util.Event.addListener("tablink5", "click", changePage, [carousel, 5]);
        YAHOO.util.Event.addListener("tablink6", "click", changePage, [carousel, 6]);
        YAHOO.util.Event.addListener("tablink7", "click", changePage, [carousel, 7]);
        YAHOO.util.Event.addListener("tablink8", "click", changePage, [carousel, 8]);
        YAHOO.util.Event.addListener("tablink9", "click", changePage, [carousel, 9]);
        YAHOO.util.Event.addListener("tablink10", "click", changePage, [carousel, 10]);
        YAHOO.util.Event.addListener("tablink11", "click", changePage, [carousel, 11]);
        YAHOO.util.Event.addListener("tablink12", "click", changePage, [carousel, 12]);
        YAHOO.util.Event.addListener("tablink13", "click", changePage, [carousel, 13]);
        YAHOO.util.Event.addListener("tablink14", "click", changePage, [carousel, 14]);
        YAHOO.util.Event.addListener("tablink15", "click", changePage, [carousel, 15]);
        YAHOO.util.Event.addListener("tablink16", "click", changePage, [carousel, 16]);
        YAHOO.util.Event.addListener("tablink17", "click", changePage, [carousel, 17]);
    }
};

function changeHighlightedTab(currentIndex) {
var elem;
var elem2;
var totalTabs = $('carouselcontent1').childElements().length;

  for (var i = 1; i <= totalTabs; i++) {
    elem = eval("document.getElementById('tabitem-" + i + "')");
    elem2 = eval("document.getElementById('tabitemtext-" + i + "')");
    

   if (i == currentIndex) {
     elem.className = 'tabhighlighted';
     elem2.className = 'tabtexthighlighted';
   }
   else {
     elem.className = 'tab';
     elem2.className = 'tabtext';
   }
  }
}

function initPage() {
    if (document.frmMG) {
        if (document.frmMG.sTabPageName.value == 'KeyFeatures')
            defaultVisGeneric('KEYFEATURETAB4MORE~KEYFEATURETAB8AMORE~KEYFEATURETAB8BMORE~KEYFEATURETAB8CMORE~KEYFEATURETAB8DMORE~KEYFEATURETAB12AMORE~KEYFEATURETAB12BMORE~KEYFEATURETAB12CMORE~KEYFEATURETAB12DMORE~KEYFEATURETAB12EMORE', false);

        if (document.frmMG.sTabPageName.value == 'SixReasons')
            defaultVisGeneric('SIXREASONSTAB2AMORE~SIXREASONSTAB2BMORE~SIXREASONSTAB2CMORE~SIXREASONSTAB2DMORE~SIXREASONSTAB2EMORE', false);

        if (document.frmMG.sTabPageName.value == 'SixReasonsNotBuy')
            defaultVisGeneric('SIXREASONSNOTBUYTAB1MORE', false);

        if (document.frmMG.sTabPageName.value == 'Smart')
            defaultVisGeneric('SMARTTAB2AMORE', false);
    }   
}

function adjustPageHeight(pageNum) {
  var contentHeight = parseInt($('dhtml-carousel-item-' + pageNum).getHeight()) + 40;

  $('dhtml-carousel').setStyle({ height: contentHeight });
  $('dhtml-carousel-item-' + pageNum).setStyle({ overflow: 'visible' });
}

document.observe('dom:loaded', function() {
    pageLoad();
    hideArrows();
    setTabLink();
});

function hideArrows() {
    if (!$('tabitem-1') || !$('tabitem-2')) {  //there is only no tabs or one tab so hide the arrows
        $('prev-arrow').hide();
        $('next-arrow').hide();
    }
}

function setTabLink() {
    if (document.frmMG.sTabPageName.value == 'SupportCenter') {
        if ($('tablinktopartners'))
            $('tablinktopartners').setAttribute('id', 'tablink' + document.frmMG.lPartners.value);
        if ($('tablinktotraininglibrary'))
            $('tablinktotraininglibrary').setAttribute('id', 'tablink' + document.frmMG.lTrainingLibrary.value); 
    }
}



