var CurrentTab = null;
    
function ToggleDialog(dialogName, iFrameName)
{
    if (document.getElementById(dialogName) != null){
        
        if(document.getElementById(dialogName).style.display == "block") //hide
        {
            document.getElementById(dialogName).style.display = "none";
            
            ShowGreyOverlay(false, dialogName); //hide grey overlay
            
            if(iFrameName == null) //A dialog might not contain an IFrame.
                return;
            //alert(iFrameName);
            if(document.getElementById(iFrameName)) {
                var newHref = StripURLParms(iFrameName);
                document.getElementById(iFrameName).src = newHref;
            }
        } else //show
        {
            //Tell google analytics about this dialog popup.
            pageTracker._trackPageview("/lobby/" + dialogName);
            
            document.getElementById(dialogName).style.display = "block";
            
            ShowGreyOverlay(true, dialogName); //display grey overlay
        }
    }
}

     
function StripURLParms(iFrameName){
    // some URLS contain extra info, we don't want this when reseting the frame
    if(document.getElementById(iFrameName)) {
        var newHref = document.getElementById(iFrameName).src;
        if(newHref.indexOf("?") != -1)
            newHref = newHref.substring(0, newHref.indexOf("?"));
    }
    
    return newHref;
}     
      
function CloseDialog(containerElement, frameElement){
    // always turn off the login dialog when showing the register
    if(document.getElementById(containerElement).style.display == "block"){
        document.getElementById(containerElement).style.display = "none";
    }
    var newHref = StripURLParms(frameElement); 
    document.getElementById(frameElement).src = newHref;
}

function SendToGoogle(tab)
{
    try
    {
        //Tell google analytics about this tab switch.
        var curLoginState = document.getElementById("LoginState").value;
        pageTracker._trackPageview("/lobby/" + tab + "/" + curLoginState);
    }
    catch(e)
    {}
}

function NBCOmniture(tab)
{
    /*Generate random integer from 0-10 000 000*/
    try
    {
        var rand = Math.floor((Math.random()*10000001));
        var trackingImageSrc = "http://hive.cachefly.net/nbcolympics2010/images/tracking.gif";
                       
        if (tab == "TabPlayContent" && document.getElementById("ctl00_ctrl_userId").value == "-1")
        {
            /*Play tab - user is not logged in therefore in LOBBY (Landing Page) mode */
            trackingImageSrc = "http://oimg.nbcuni.com/b/ss/nbcuolympicsprodbu/1/H.8/" + rand +"?pageName=Landing%20Page&c2=Primetime%20Challenge";                        
        }
        else if (tab == "TabPlayContent" && document.getElementById("ctl00_ctrl_userId").value != "-1")
        {
            /*Play tab - user is logged in (anonymous or registered) therefore in GAMEPLAY mode */
            trackingImageSrc = "http://oimg.nbcuni.com/b/ss/nbcuolympicsprodbu/1/H.8/" + rand +"?pageName=Game%20Play&c2=Primetime%20Challenge";            
        }
        else if (tab == "TabGroupAdminContent")
        {
            trackingImageSrc = "http://oimg.nbcuni.com/b/ss/nbcuolympicsprodbu/1/H.8/" + rand +"?pageName=Groups&c2=Primetime%20Challenge";            
        }
        else if (tab == "TabLeaderContent")
        {            
            trackingImageSrc = "http://oimg.nbcuni.com/b/ss/nbcuolympicsprodbu/1/H.8/" + rand +"?pageName=Leaderboards&c2=Primetime%20Challenge";            
        }
        else if (tab == "TabScheduleContent")
        {
            trackingImageSrc = "http://oimg.nbcuni.com/b/ss/nbcuolympicsprodbu/1/H.8/" + rand +"?pageName=Schedule&c2=Primetime%20Challenge";            
        }
        else if (tab == "ToolRulesContent")
        {            
            trackingImageSrc = "http://oimg.nbcuni.com/b/ss/nbcuolympicsprodbu/1/H.8/" + rand +"?pageName=Rules&c2=Primetime%20Challenge";            
        }
        else if (tab == "ToolFAQContent")
        {
            trackingImageSrc = "http://oimg.nbcuni.com/b/ss/nbcuolympicsprodbu/1/H.8/" + rand +"?pageName=FAQ&c2=Primetime%20Challenge";            
        }
        
        document.getElementById("NBCOmniture").src = trackingImageSrc; 
        /*Coke Tracking*/
        document.getElementById("CokeTracking").src = "http://core.insightexpressai.com/adServer/adServerESI.aspx?bannerID=160138&script=false&redir=http://core.insightexpressai.com/adserver/1pixel.gif";
        
    }
    catch(e)
    {} 
}
        
function SwitchTab(tab)
{
    var ContentPanelNames = new Array();
    ContentPanelNames[0] = "TabGroupAdminContent";
    ContentPanelNames[1] = "TabPlayContent";
    ContentPanelNames[2] = "TabLeaderContent";
    ContentPanelNames[3] = "TabPrizesContent";
    ContentPanelNames[4] = "ToolFAQContent";
    ContentPanelNames[5] = "ToolRulesContent";
    ContentPanelNames[6] = "ToolPrivacyPolicyContent";
    ContentPanelNames[7] = "TabScheduleContent";

    SetCookie("SelectedTab", tab, 1);
    
    CurrentTab = tab;
    
    // track tab views with google
    SendToGoogle(tab);
    
    NBCOmniture(tab);
    
    // hide and show the tabs   
    DoChangeTabs(tab, ContentPanelNames);
    
    UpdateOverlay();
}

function DoChangeTabs(tab, ContentPanelNames)
{
    try
    {
        for (var i = 0, length = ContentPanelNames.length; i < length; i++)
        {
            var type = ContentPanelNames[i].substring(3,0);
            var TabClassName = ContentPanelNames[i].substring(0,ContentPanelNames[i].length - 7);
        
            if(tab == ContentPanelNames[i]) //This is what's been selected.
            {                
                document.getElementById(tab).style.display = "block";
                document.getElementById(tab).style.visibility = "visible";
                
                
                if (ContentPanelNames[i] == "TabPlayContent" && document.getElementById("ctl00_ctrl_userId").value != "-1" )
                {
                    if(IsFireFox() == false)
                    {
                        document.getElementById(ContentPanelNames[i]).className = 'PlayContentOn';
                        document.getElementById('GameDiv').className = 'GameDiv GameDivOn';
                    }
                    else
                    {
                        document.getElementById(ContentPanelNames[i]).style.height = "";
                        document.getElementById('GameDiv').className = 'GameDiv FirefoxGameDivOn';
                        
                        if (document.getElementById('interactionDiv')!=null)
                            document.getElementById('interactionDiv').style.display="block";
                    }
                }

                if(type == "Tab" &&  document.getElementById(TabClassName)!=null)
                {
                    var SelectedClassName = TabClassName + "Selected";                
                    document.getElementById(TabClassName).className = SelectedClassName;
                }
            }
            else if(document.getElementById(ContentPanelNames[i])!=null) //Something not selected.
            {                                
                if(type == "Tab")
                {
                    var className = TabClassName;
                    document.getElementById(TabClassName).className = className;
                }
            
                document.getElementById(ContentPanelNames[i]).style.visibility = "hidden";
                            
                if (ContentPanelNames[i] != "TabPlayContent" || document.getElementById("ctl00_ctrl_userId").value == "-1" ){
                    document.getElementById(ContentPanelNames[i]).style.display = "none";
                }
                else
                {
                    if(IsFireFox() == false)
                    {
                        document.getElementById(ContentPanelNames[i]).className = 'PlayContentOff';
                        document.getElementById('GameDiv').className = 'GameDiv GameDivOff';
                    }
                    else
                    {
                        document.getElementById(ContentPanelNames[i]).style.height = "1px";
                        document.getElementById('GameDiv').className = 'GameDiv FirefoxGameDivOff';
                        
                        if (document.getElementById('interactionDiv')!=null)
                            document.getElementById('interactionDiv').style.display="none";
                    }
                }
            }
        }
    }
    catch(e)
    {}
}

// FormElementManager:
//  - methods used by forms to hide/show errors. Can be used for any display management.
//

var focusedField = null;
function InFocus(elementName){
    focusedField = elementName;
}

function ClearFocus(){
    focusedField = null;
}

// will turn the element OFF only if its on and the specified fields aren't currenty focused    
function HideElementConditional(elementName, conditionalElement, focusFieldNames) {
    var fieldNames = focusFieldNames.split(",");
    var isFieldFocused = false;
    for(var i=0, length = fieldNames.length; i < length; i++){
        if(fieldNames[i] == focusedField){
            isFieldFocused = true;
            break;
        }
    }
    if(document.getElementById(elementName) != null && document.getElementById(conditionalElement) != null) {
        if(document.getElementById(conditionalElement).style.display != 'none' && !isFieldFocused)
            document.getElementById(elementName).style.display = 'none';
    }
}

function HideElement(elementName) {
    if(document.getElementById(elementName) != null)
        document.getElementById(elementName).style.display = 'none';
}                      

function ShowElementConditional(elementName, conditionalElement) {
    if(document.getElementById(elementName) != null && document.getElementById(conditionalElement) != null) {
        if(document.getElementById(conditionalElement).style.display != 'none')
            document.getElementById(elementName).style.display = 'block';
    }
} 

function ShowElement(elementName) {
    if(document.getElementById(elementName) != null)
        document.getElementById(elementName).style.display = 'block';
}
