﻿var TotalTabs = 0;
var CurrentTab = 0;
var NextTab = 0;
var CycleTime = 5000;
var ContinueRotation = true;
var CurrentTabName = '';

$(document).ready(function() 
{
    InitializeTabsRotator();
});

function InitializeTabsRotator()
{
    var currentTabPage = document.getElementById('divTabPage1');
    
    while (currentTabPage != null)//Get the Total number of TabPages
    {
        TotalTabs++;
        currentTabPage = document.getElementById('divTabPage' + (TotalTabs + 1));
    }
    
    if (TotalTabs > 1)//Start the (vicious) cycle as long as there is more than one TabPage
    {
        CurrentTab = 1;//Starting with the first TabPage.
        NextTab = setInterval("CycleTabs()", CycleTime);
    }
}

function CycleTabs()
{
    if ((CurrentTab + 1) <= TotalTabs)//Tabs 1 through TotalTabs-1
    {
        HideTab(CurrentTab);

        CurrentTab++;

        ShowTab(CurrentTab);
    }
    else//The last Tab, start over
    {
        HideTab(CurrentTab);

        CurrentTab = 1;

        ShowTab(CurrentTab);
    }
}

function Pause(TabDivElement, CoreMetricTag, CoreMetricName, StopRotation)
{
    clearInterval(NextTab);//Stop the (vicious) cycle.
   
    TabNumber = parseInt(TabDivElement.id.substring(10, TabDivElement.id.length), 10);//Assumes that all element names begin with either divTagPage or divTagFlag, 10 letters, so don't change the base names.

    if (isNaN(TabNumber))//Prevent any possible error.  If a number is not properly parsed from the incoming TabDivElement, default to 1.
        TabNumber = 1;

    for (CurrentTab = 1; CurrentTab <= TotalTabs; CurrentTab++)
        if (CurrentTab != TabNumber)
            HideTab(CurrentTab);

    if (CoreMetricTag != '')
    {
        if (CoreMetricTag != CurrentTabName)
        {
            cmCreateManualLinkClickTag('www.shaneco.com?cm_re=' + CoreMetricTag, CoreMetricName);
            CurrentTabName = CoreMetricTag;
        }
    }
    
    ShowTab(TabNumber);

    CurrentTab = TabNumber;

    if (StopRotation == 'T') 
        ContinueRotation = false;
}

function Unpause()
{
    //If the tabs are clicked through quickly, NextTab can get set right after it is cleared, resulting in multiple intervals being created.
    //Running clearInterval here makes sure only one interval is set.
    clearInterval(NextTab);
    
    if (ContinueRotation == true) 
        NextTab = setInterval("CycleTabs()", CycleTime); //Restart the (vicious) cycle...
}

function HideTab(TabNumber)
{
    document.getElementById('divTabPage' + TabNumber).style.display = "none";//Turn off the associated tab
    
    if (document.getElementById('divTabFlag' + TabNumber) != null)//We know what divTabPages exist because we counted them at Startup, but a divTabFlag may have been forgotten.
    {
        document.getElementById('divTabFlagTopLeft' + TabNumber).className = "tabTopLeft inactiveTabTopLeft" + (TabNumber == 1 ? "First" : "");
        document.getElementById('divTabFlagTopMiddle' + TabNumber).className = "tabTopMiddle inactiveTabTopMiddle";
        document.getElementById('divTabFlagTopRight' + TabNumber).className = "tabTopRight inactiveTabTopRight" + (TabNumber == TotalTabs ? "Last" : "");
        document.getElementById('divTabFlagMiddleLeft' + TabNumber).className = "tabMiddleLeft inactiveTabMiddleLeft" + (TabNumber == 1 ? "First" : "");
        document.getElementById('divTabFlagMiddle' + TabNumber).className = "tabMiddle inactiveTabMiddle";
        document.getElementById('divTabFlagMiddleRight' + TabNumber).className = "tabMiddleRight inactiveTabMiddleRight" + (TabNumber == TotalTabs ? "Last" : "");
        document.getElementById('divTabFlagBottomLeft' + TabNumber).className = "tabBottomLeft inactiveTabBottomLeft";
        document.getElementById('divTabFlagBottomMiddle' + TabNumber).className = "tabBottomMiddle inactiveTabBottomMiddle";
        document.getElementById('divTabFlagBottomRight' + TabNumber).className = "tabBottomRight inactiveTabBottomRight" + (TabNumber == TotalTabs ? "Last" : "");
    }
}

function ShowTab(TabNumber)
{
    document.getElementById('divTabPage' + TabNumber).style.display = "";//Turn on the associated tab

    if (document.getElementById('divTabFlag' + TabNumber) != null)
    {
        document.getElementById('divTabFlagTopLeft' + TabNumber).className = "tabTopLeft activeTabTopLeft";
        document.getElementById('divTabFlagTopMiddle' + TabNumber).className = "tabTopMiddle activeTabTopMiddle";
        document.getElementById('divTabFlagTopRight' + TabNumber).className = "tabTopRight activeTabTopRight" + (TabNumber == TotalTabs ? "Last" : "");
        document.getElementById('divTabFlagMiddleLeft' + TabNumber).className = "tabMiddleLeft activeTabMiddleLeft";
        document.getElementById('divTabFlagMiddle' + TabNumber).className = "tabMiddle activeTabMiddle";
        document.getElementById('divTabFlagMiddleRight' + TabNumber).className = "tabMiddleRight activeTabMiddleRight" + (TabNumber == TotalTabs ? "Last" : "");
        document.getElementById('divTabFlagBottomLeft' + TabNumber).className = "tabBottomLeft activeTabBottomLeft";
        document.getElementById('divTabFlagBottomMiddle' + TabNumber).className = "tabBottomMiddle activeTabBottomMiddle";
        document.getElementById('divTabFlagBottomRight' + TabNumber).className = "tabBottomRight activeTabBottomRight" + (TabNumber == TotalTabs ? "Last" : "");
        
        if (document.getElementById('divTabFlag' + (TabNumber + 1)) != null)
            document.getElementById('divTabFlagTopLeft' + (TabNumber + 1)).className = "tabTopLeft inactiveTabTopLeftActive";
    }
}