﻿/*Console.js is the file containing many of the functions used to control navigation between screens on the console.*/

//Currently selected canvas type. 
var currentCanvasType = 'C1';

//Currently selected page.
var currentPage;

//Flag indicating if a mute button has been clicked.
var isMuted = false;

//Media Element for dynamic transitions.
var mediaElementToShowOnDelay;

//Function to load the custom font package for the console text.
function loadFont (control) 
{
    //recordDebugMessage('console.js:loadFont: control=' + control, 8);
    
	//Load custom font
    var downloader = control.createObject("downloader");
    downloader.addEventListener("Completed", loadFontComplete);
    downloader.open("GET", "downloadengine.aspx?path=http://download.microsoft.com/download/9/1/3/9138c4ef-f196-400a-b00a-bdb2df3fd32b/AddBitmap.zip");
    downloader.send();
}

//EventHandler firing when the font package has finished loading.
function loadFontComplete(sender, eventArgs)
{
    recordDebugMessage('console.js:loadFontComplete: ' + sender.name + ', ' + eventArgs, 8);

    // Console Title Font
    var console_display_title = sender.FindName("console_display_title");
    console_display_title.SetFontSource(sender);
    console_display_title.FontFamily = "AddLGBitmap09";
    
    // Console Body Font
    var console_display_body = sender.FindName("console_display_body");
    console_display_body.SetFontSource(sender);
    console_display_body.FontFamily = "AddWBitmap09";
    
    // Console Blog Font
    var console_feed_txt = sender.FindName("console_feed_txt");
    console_feed_txt.SetFontSource(sender);
    console_feed_txt.FontFamily = "AddWBitmap09";
    
    // Console Time Font
    var console_time_txt = sender.FindName("console_time_txt");
    console_time_txt.SetFontSource(sender);
    console_time_txt.FontFamily = "AddWBitmap09";
}

// EventHandler for console button and navigation video clicks.
function consoleNavButton_Click(sender, eventArgs)
{
    recordDebugMessage('console.js:consoleNavButton_Click: ' + sender.name, 1);
    
    // stop all the homepage videos given the performance hit, start them only on the homepage
    playHomepageVideos(sender, false);
    
    moviePlayer.UnloadMovie();
    
    switch(sender.name)
    {
        case "console_nav_btnHome":
            if(currentPage!="home")
            {
                removeHighlightFromButton(sender, currentPage);
                currentPage="home";
                LoadCanvasType(sender, 'C1');
            }
            break;
        case "console_nav_btnExperts":
        case "C1_S1_over_wmv":
        case "C1_S1":
            if(currentPage!="experts")
            {
                // Call Javascript will record metric (found in default.aspx)
                PerformAtlasMetric("http://switch.atdmt.com/action/mrtyou_FY09HSWIndustryExperts2Final_6");
                removeHighlightFromButton(sender, currentPage);
                currentPage="experts";
                LoadCanvasType(sender, 'C2');
            }
            break;
        case "console_nav_btnVlab":
        case "C1_S2_over_wmv":
        case "C1_S2":
            if(currentPage!="vlab")
            {
                // Call Javascript will record metric (found in default.aspx)
                PerformAtlasMetric("http://switch.atdmt.com/action/mrtyou_FY08HSWVlabs2Final_6");
                removeHighlightFromButton(sender, currentPage);
                currentPage="vlab";
                LoadCanvasType(sender, 'C2');
            }
            break;
        case "console_nav_btnMovie":
        case "C1_S3_over_wmv":
        case "C1_S3":
            if(currentPage!="movie")
            {
                // Call Javascript will record metric (found in default.aspx)
                PerformAtlasMetric("http://switch.atdmt.com/action/mrtyou_FY08HSWMovies2Final_6");
                removeHighlightFromButton(sender, currentPage);
                currentPage="movie";
                LoadCanvasType(sender, 'C2');
            }
            break;
        case "console_nav_btnDnd":
        case "C1_S4_over_wmv":
        case "C1_S4":
            if(currentPage!="dnd")
            {
                // Call Javascript will record metric (found in default.aspx)
                PerformAtlasMetric("http://switch.atdmt.com/action/mrtyou_FY08HSWDevsNDetails2Final_6");
                removeHighlightFromButton(sender, currentPage);
                currentPage="dnd";
                LoadCanvasType(sender, 'C3');
            }
            break;
        case "console_nav_btnComic":
        case "C1_S5_over_wmv":
        case "C1_S5":
            if(currentPage!="comic")
            {
                // Call Javascript will record metric (found in default.aspx)
                PerformAtlasMetric("http://switch.atdmt.com/action/mrtyou_FY08HSWStrip2Final_6");
                removeHighlightFromButton(sender, currentPage);
                currentPage="comic";
                LoadCanvasType(sender, 'C2');
            }
            break;
        case "console_nav_btnDEC":
        case "C1_S6_over_wmv":
        case "C1_S6":
            if(currentPage!="dec")
            {
                // Call Javascript will record metric (found in default.aspx)
                PerformAtlasMetric("http://switch.atdmt.com/action/mrtyou_FY09HSWInsideDEC2Final_6");
                removeHighlightFromButton(sender, currentPage);
                currentPage="dec";
                LoadCanvasType(sender, 'C2');
            }
            break;
    }
}

// Function to toggle main console text when the page is changed.
function displayConsoleText(sender, pageName)
{
    recordDebugMessage('console.js:displayConsoleText: sender.name=' + sender.name + ', pageName=' + pageName, 9);

    switch(pageName)
    {
        case "home":
            sender.findName("console_display_title").Text = "Hello Secure World!";
            sender.findName("console_display_body").Text = "Welcome to Security Sector 7\nDefending the Virtual Universe since 1981\n\nWrite Safer Code - Build Safer Net - Surf Safer Web";
            break;
        case "experts":
		    sender.findName("console_display_title").Text = "Industry Experts";
		    sender.findName("console_display_body").Text = "Don’t waste your precious time on Net security advice from that guy who hangs out behind the bowling alley. Visit the Industry Experts section and hear what the real experts have to say.";
            break;
        case "vlab":
		    sender.findName("console_display_title").Text = "The V-Lab";
		    sender.findName("console_display_body").Text = "Take some technology for a test drive in the Virtual Laboratory! Learn new methods, hone your techniques, and then compete against others to prove your knowledge.";
            break;
        case "dec":
		    sender.findName("console_display_title").Text = "Inside the DEC";
		    sender.findName("console_display_body").Text = "Face it. We can’t all make it to every conference. But don’t worry if you weren’t fortunate enough to make the Directory Experts Conference. We’ve got you covered.";
            break;
        case "dnd":
		    sender.findName("console_display_title").Text = "Devs ‘n’ Details";
		    sender.findName("console_display_body").Text = "They’re on the inside and they’re ready to share. Read these developers’ blogs and watch their interviews to learn about security from those closest to the source.";
            break;
        case "movie":
		    sender.findName("console_display_title").Text = "Movie Time!";
		    sender.findName("console_display_body").Text = "Come enjoy the moving picture show! Watch informative How Do I…? videos and stuff your brain with knowledge in the Movie Time! section. ";
            break;
        case "comic":
		    sender.findName("console_display_title").Text = "The Strip";
		    sender.findName("console_display_body").Text = "There’s humor everywhere – even the workplace! If you’re looking for a laugh, check back often to see what the characters of Hello Secure World are developing.";
            break;
        default:
            sender.findName("console_display_title").Text = "Hello Secure World!";
            sender.findName("console_display_body").Text = "Welcome to Security Sector 7\nDefending the Virtual Universe since 1981\n\nWrite Safer Code - Build Safer Net - Surf Safer Web";
            break;
    }
}

// Function to highlight the selected button on the main console.
function highlightButton(sender, pageName)
{
    recordDebugMessage('console.js:highlightButton: sender.name=' + sender.name + ', pageName=' + pageName, 9);

    if(currentPage != pageName)
    {
        switch(pageName)
        {
            case "home":
                sender.findName("console_nav_btnHome_over").begin();
                break;
            case "experts":
                sender.findName("console_nav_btnExperts_over").begin();
                break;
            case "vlab":
                sender.findName("console_nav_btnVlab_over").begin();
                break;
            case "dec":
                sender.findName("console_nav_btnDEC_over").begin();
                break;
            case "dnd":
                sender.findName("console_nav_btnDnd_over").begin();
                break;
            case "movie":
                sender.findName("console_nav_btnMovie_over").begin();
                break;
            case "comic":
                sender.findName("console_nav_btnComic_over").begin();
                break;
            default:
                sender.findName("console_nav_btnHome_over").begin();
                break;
        }
    }
}

//EventHandler for off state on console highlights.
function removeHighlightFromButton(sender, pageName)
{
    recordDebugMessage('console.js:removeHighlightFromButton: sender.name=' + sender.name + ', pageName=' + pageName, 9);

    switch(pageName)
    {
        case "home":
            sender.findName("console_nav_btnHome_leave").begin();
            break;
        case "experts":
            sender.findName("console_nav_btnExperts_leave").begin();
            break;
        case "vlab":
            sender.findName("console_nav_btnVlab_leave").begin();
            break;
        case "dec":
            sender.findName("console_nav_btnDEC_leave").begin();
            break;
        case "dnd":
            sender.findName("console_nav_btnDnd_leave").begin();
            break;
        case "movie":
            sender.findName("console_nav_btnMovie_leave").begin();
            break;
        case "comic":
            sender.findName("console_nav_btnComic_leave").begin();
            break;
    }
}

// EventHandler for overstates on main console and navigation videos. 
function consoleNavButton_Over(sender, eventArgs)
{
    recordDebugMessage('console.js:consoleNavButton_Over: sender.name=' + sender.name + ', eventArgs=' + eventArgs, 9);

    switch(sender.name)
    {
        case "console_nav_btnHome":
            displayConsoleText(sender, "home");
            highlightButton(sender, "home");
            showC1MouseOverMovie(sender, null, null)
            break;
        case "console_nav_btnExperts":
        case "C1_S1_over_wmv":
        case "C1_S1":
            displayConsoleText(sender, "experts");
            highlightButton(sender, "experts");
            showC1MouseOverMovie(sender, "C1_S1_over_wmv");
            sender.findName("C1_S1").opacity = 1;
            break;
        case "console_nav_btnVlab":
        case "C1_S2_over_wmv":
        case "C1_S2":
            displayConsoleText(sender, "vlab");
            highlightButton(sender, "vlab");
            showC1MouseOverMovie(sender, "C1_S2_over_wmv");
            sender.findName("C1_S2").opacity = 1;
            break;
        case "console_nav_btnMovie":
        case "C1_S3_over_wmv":
        case "C1_S3":
            displayConsoleText(sender, "movie");
            highlightButton(sender, "movie");
            showC1MouseOverMovie(sender, "C1_S3_over_wmv");
            sender.findName("C1_S3").opacity = 1;
            break;
        case "console_nav_btnDnd":
        case "C1_S4_over_wmv":
        case "C1_S4":
            displayConsoleText(sender, "dnd");
            highlightButton(sender, "dnd");
            showC1MouseOverMovie(sender, "C1_S4_over_wmv");
            sender.findName("C1_S4").opacity = 1;
            break;
        case "console_nav_btnComic":
        case "C1_S5_over_wmv":
        case "C1_S5":
            displayConsoleText(sender, "comic");
            highlightButton(sender, "comic");
            showC1MouseOverMovie(sender, "C1_S5_over_wmv");
            sender.findName("C1_S5").opacity = 1;
            break;
        case "console_nav_btnDEC":
        case "C1_S6_over_wmv":
        case "C1_S6":
            displayConsoleText(sender, "dec");
            highlightButton(sender, "dec");
            showC1MouseOverMovie(sender, "C1_S6_over_wmv");
            sender.findName("C1_S6").opacity = 1;
            break;
    }
}

//Function to play video clips on mouse over of navigation videos.
function showC1MouseOverMovie(sender, currentMovie)
{
    recordDebugMessage('console.js:showC1MouseOverMovie: sender.name=' + sender.name + ', currentMovie=' + currentMovie, 9);

    if (currentMovie)
    {
        sender.findName(currentMovie).visibility='visible';
        sender.findName(currentMovie).position='00:00:00';
        sender.findName(currentMovie).play();
    }
}

//EventHandler for off state on console and navigation buttons.
function consoleNavButton_Leave(sender, eventArgs)
{
    recordDebugMessage('console.js:consoleNavButton_Leave: sender.name=' + sender.name + ', eventArgs=' + eventArgs, 9);

    // restore the console text of the current page
    displayConsoleText(sender, currentPage);
    
    switch(sender.name)
    {
        case "console_nav_btnHome":
            if(currentPage!="home"){ sender.findName("console_nav_btnHome_leave").begin(); }
            break;
        case "console_nav_btnExperts":
        case "C1_S1_over_wmv":
        case "C1_S1":
            if(currentPage!="experts"){ sender.findName("console_nav_btnExperts_leave").begin(); }
            hideC1MouseOverMovie(sender, "C1_S1_over_wmv");
            break;
        case "console_nav_btnVlab":
        case "C1_S2_over_wmv":
        case "C1_S2":
            if(currentPage!="vlab"){ sender.findName("console_nav_btnVlab_leave").begin(); }
            hideC1MouseOverMovie(sender, "C1_S2_over_wmv");
            break;
        case "console_nav_btnDnd":
        case "C1_S4_over_wmv":
        case "C1_S4":
            if(currentPage!="dnd"){ sender.findName("console_nav_btnDnd_leave").begin(); }
            hideC1MouseOverMovie(sender, "C1_S4_over_wmv");
            break;
        case "console_nav_btnMovie":
        case "C1_S3_over_wmv":
        case "C1_S3":
            if(currentPage!="movie"){ sender.findName("console_nav_btnMovie_leave").begin(); }
            hideC1MouseOverMovie(sender, "C1_S3_over_wmv");
            break;
        case "console_nav_btnComic":
        case "C1_S5_over_wmv":
        case "C1_S5":
            if(currentPage!="comic"){ sender.findName("console_nav_btnComic_leave").begin(); }
            hideC1MouseOverMovie(sender, "C1_S5_over_wmv");
            break;
        case "console_nav_btnDEC":
        case "C1_S6_over_wmv":
        case "C1_S6":
            if(currentPage!="dec"){ sender.findName("console_nav_btnDEC_leave").begin(); }
            hideC1MouseOverMovie(sender, "C1_S6_over_wmv");
            break;
    }
    
    // restore the highlighted button of the current page
    highlightButton(sender, currentPage);

}

//Function to hide blogs when leaving the blogging pages.
function hideBlogs()
{
    var blueHatBlog = document.getElementById("igxBlogListBlueHat");
    var dndBlog = document.getElementById("igxBlogListInsiders");
    var dndDetails = document.getElementById("blogDetailAreaInsiders");
    var blueHatDetails = document.getElementById("blogDetailAreaBlueHat");
    var scrollBar = document.getElementById("div_scroll");
    var scrollLeft = document.getElementById("list_scroll");
    
    if (scrollLeft)
    {
        scrollLeft.style.display="none";
    }
        
    if (blueHatDetails)
    {
         blueHatDetails.style.display = "none";
    }
    
    if (dndDetails)
    {
         dndDetails.style.display = "none";
    }
    
    if(dndBlog)
    {
        dndBlog.style.display = "none";
    }
    
    if (blueHatBlog)
    {
        blueHatBlog.style.display = "none";
            
    }
    
    if (scrollBar)
    {
        scrollBar.style.display = "none"; 
    }
    
    blogSelected = "none";
}

//Hide the navigation video that is currently playing when mousing off the selected movie
function hideC1MouseOverMovie(sender, currentMovie)
{
    recordDebugMessage('console.js:hideC1MouseOverMovie: sender.name=' + sender.name + ', currentMovie=' + currentMovie, 9);

    sender.findName("C1_S1").opacity=0;
    sender.findName("C1_S1_over_wmv").visibility='collapsed';
    sender.findName("C1_S2").opacity=0;
    sender.findName("C1_S2_over_wmv").visibility='collapsed';
    sender.findName("C1_S3").opacity=0;
    sender.findName("C1_S3_over_wmv").visibility='collapsed';
    sender.findName("C1_S4").opacity=0;
    sender.findName("C1_S4_over_wmv").visibility='collapsed';
    sender.findName("C1_S5").opacity=0;
    sender.findName("C1_S5_over_wmv").visibility='collapsed';
    sender.findName("C1_S6").opacity=0;
    sender.findName("C1_S6_over_wmv").visibility='collapsed';
    
    if (currentMovie)
    {
        sender.findName(currentMovie).stop();
    }
}


// Load the selected canvas type and start the animation for transition.
function LoadCanvasType(sender, canvasType)
{
    recordDebugMessage('console.js:LoadCanvasType: ' + 'canvasType = ' + canvasType + ', currentCanvasType = ' + currentCanvasType, 9);
    
    hideBlogs();
    
    if (canvasType != currentCanvasType)
    {
        sender.findName("overlay_transition_background_fadeIn").begin();
        mediaElementToShowOnDelay = sender.findName('overlay_transition_' + currentCanvasType + '_to_' + canvasType);
    }
    else    
    {
        sender.findName("overlay_transition_background_fadeIn2").begin();
    }
   
    currentCanvasType = canvasType;
}

//Set the selected canvas type and toggle the overlay.
function RefreshCanvasType(canvasType, rootElement)
{
    currentCanvasType = canvasType;
    ToggleOverlayVisibility(rootElement);
}

//Show the correct overlay based on the passed in value.
function ToggleOverlayVisibility(rootElement)
{
    rootElement.findName("overlay_screen").visibility='Visible';
    rootElement.findName("overlay_screen_C1").visibility=(currentCanvasType == 'C1' ? 'Visible' : 'Collapsed');
    rootElement.findName("overlay_screen_C2").visibility=(currentCanvasType == 'C2' ? 'Visible' : 'Collapsed');
    rootElement.findName("overlay_screen_C3").visibility=(currentCanvasType == 'C3' ? 'Visible' : 'Collapsed');
    rootElement.findName("overlay_screen_glow").visibility='Visible';
}

//EventHandler for fade in transition completed.
function FadeInTransitionCompleted(sender, eventArgs)
{
    if (mediaElementToShowOnDelay)
    {
        mediaElementToShowOnDelay.Visibility = "Visible";
        mediaElementToShowOnDelay.Play();
    }
}

//EventHandler for fade out transition completed.
function FadeOutCompleted(sender, eventArgs)
{
    if (currentPage == "dnd")
    {
        enableDndBlog();
    }
}

//EventHandler for main transition completed.
function MainTransitionCompleted(sender, eventArgs)
{
    sender.Stop();
    sender.Visibility = "Collapsed";
    
     switch(currentPage)
    {
        case "home":
            showC1(sender);
            break;
        case "dnd":
            showC3(sender);
            break;
        case "vlab":
            showC2(sender);
            break;
        case "movie":
            showC2(sender);
            break;
        case "comic":
            showC2(sender);
            break;
        case "experts":
            showC2(sender);
            break;
        case "dec":
            showC2(sender);
            break;
        default:
            break;
    }
    
    sender.findName("overlay_transition_background_fadeOut").Begin();
    
}

//EventHandler for downloader completed.
function initDownloader_Completed(sender, eventArgs)
{ 
    recordDebugMessage('console.js:initDownloader_Completed: sender=' + sender + ', sender.uri=' + sender.uri + ', eventArgs=' + eventArgs, 1);
    var slPlugin = sender.getHost();
    var xaml = slPlugin.content.createFromXamlDownloader(sender, "");
    sender.findName("Page").children.add(xaml);
    
    // Flag the download as completed
    for (var i = 0; i < initDownloaders.length; i++)
    {
        if (initDownloaders[i].uri.toLowerCase() == sender.uri.toLowerCase())
        {
            initDownloaders[i].percent = 1;
            break;
        }
    }
    // Set module-specific properties
    switch(sender.uri)
    {
        case "overlay_intro.xaml":
            MainContentDownload(sender, eventArgs);
            break;
        case "default_view.xaml":
            break;
        case "console.xaml":
            // Loading the font violates cross-domain restrictions
            loadFont(slPlugin);
            
            // set the currentPage
            currentPage = "home";
            
            // set the default console display when the Console is loaded (could probably call enableHome(sender) but that function may eventually include
            // other functions that aren't appropriate to invoke at this point in program execution
            sender.findName("console_display_title").Text = "Hello Secure World!";
            sender.findName("console_display_body").Text = "Welcome to Security Sector 7\nDefending the Virtual Universe since 1981\n\nWrite Safer Code - Build Safer Net - Surf Safer Web";

            // initially highlight the Homepage button
            sender.findName("console_nav_btnHome_over").Begin();
            sender.findName("console")["Canvas.Top"] = 500;
            sender.findName("console_nav_btnExperts_leave").Begin();
            sender.findName("console_nav_btnVlab_leave").Begin();
            sender.findName("console_nav_btnDEC_leave").Begin();
            sender.findName("console_nav_btnMovie_leave").Begin();
            sender.findName("console_nav_btnDnd_leave").Begin();
            sender.findName("console_nav_btnComic_leave").begin();
            sender.findName("console_feed_txt_animation").Begin();
            break;
        case "C1.xaml":        
            sender.findName("C1")["Canvas.Top"] = 83;
            sender.findName("C1")["Canvas.Left"] = 80;
            break;
        case "C2.xaml":
            sender.findName("C2").Visibility = "Collapsed";
            break;
        case "C3.xaml":
            sender.findName("C3").Visibility = "Collapsed";
            break;
        case "overlay.xaml":
            RefreshCanvasType('C1', sender.findName("Page"));
            break;
        case "main.xaml":
            break;
        case "cs_strip.xaml":
            sender.findName("cs_strip").Visibility = "Collapsed";
            break;
        case "ts_strip.xaml":
            sender.findName("ts_strip").Visibility = "Collapsed";
            break;
        case "fs_strip.xaml":
            sender.findName("fs_strip").Visibility = "Collapsed";
            break;
        case "bs_strip.xaml":
            sender.findName("bs_strip").Visibility = "Collapsed";
            break;
        case "moviePlayer.xaml":
            moviePlayer = new SilverlightMoviePlayer(sender.findName("moviePlayer"));
            sender.findName("overlay_intro_skip").Visibility = "Visible";
            break;
        default:
            break;
    }
    
    // Detach event listener and null out downloader [for performance]
    sender.removeEventListener("completed", 'initDownloader_Completed');
    sender = null;
}

//EventHandler fires when downloader progress changes.
function initDownloader_DownloadProgressChanged(sender, eventArgs)
{
    for (var i = 0; i < initDownloaders.length; i++)
    {
        if (initDownloaders[i].uri == sender.uri)
        {
            initDownloaders[i].percent = Math.floor(sender.downloadProgress * 100);
            break;
        }
    }
}

// Function to show the console panels.
function showConsole(sender)
{
    sender.findName("overlay").Visibility = "Visible";
    sender.findName("console").Visibility = "Visible";
    sender.findName("C1").Visibility = "Visible";
    sender.findName("main").Visibility = "Visible";
}

//EventHandler for mouseover of next button.
function onNextEnter(sender, eventArgs)
{
    sender.findName("sb_btn_next_over").Begin();
}

//EventHandler for mouseout of next button.
function onNextLeave(sender, eventArgs)
{
    sender.findName("sb_btn_next_over").Stop();
}

//EventHandler for mouseover of previous button.
function onPreviousEnter(sender, eventArgs)
{
    sender.findName("sb_btn_previous_over").Begin();
}

//EventHandler for mouseout of previous button.
function onPreviousLeave(sender, eventArgs)
{
    sender.findName("sb_btn_previous_over").Stop();
}

//EventHandler for clicking the home button on C2 & C3 pages.
function onC3HomeClick(sender, eventArgs)
{
     moviePlayer.UnloadMovie();
     removeHighlightFromButton(sender, currentPage);
     highlightButton(sender, "home");
     currentPage="home";
     LoadCanvasType(sender, 'C1');
     enableHome(sender);
     sender.findName("overlay_tv_in").Begin();
     playHomepageVideos(sender, true);
}

//EventHandler for mousing over the C3 home button.
function onC3HomeEnter(sender, eventArgs)
{
    sender.findName("C3_sb_btn_home_over").Begin();
}

//EventHandler for mousing off the C3 home button.
function onC3HomeLeave(sender, eventArgs)
{
    sender.findName("C3_sb_btn_home_over").Stop();
}

//EventHandler for mousing over the C2 home button.
function onC2HomeEnter(sender, eventArgs)
{
    sender.findName("C2_sb_btn_home_over").Begin();
}

//EventHandler for mousing off the C2 home button.
function onC2HomeLeave(sender, eventArgs)
{
    sender.findName("C2_sb_btn_home_over").Stop();
}

//EventHandler for mousing over the C3 back button.
function onC3BackEnter(sender, eventArgs)
{
    sender.findName("sb_btn_back_over").Begin();
}

//EventHandler for mousing off the C3 back button.
function onC3BackLeave(sender, eventArgs)
{
   sender.findName("sb_btn_back_over").Stop();  
}

//EventHandler for clicking the C3 back button.
function onC3BackClick(sender, eventArgs)
{
    switch(currentPage)
    {
        case "dnd":
            enableDnd(sender);
            enableDndBlog()
            break;
        default:
            break;
    }
}

//EventHandler for completion of main console transitions.
function ConsoleTransitionCompleted(sender, eventArgs)
{
    switch(currentPage)
    {
        case "comic":
            showC2(sender);
            break;
        case "vlab":
            showC2(sender);
            break;
        case "movie":
            showC2(sender);
            break;
        case "dnd":
            showC3(sender);
            break;
        case "experts":
            showC2(sender);
            break;
        case "dec":
            showC2(sender);
            break;
        default:
            break;
    }
    
    sender.findName("overlay_transition_background_fadeOut2").begin();
}

//Function to display the C1 panel.
function showC1(sender)
{
    sender.findName("C1").Visibility = "Visible";
    enableHome(sender);
    sender.findName("overlay_tv_in").Begin();
    playHomepageVideos(sender, true);
    
    sender.findName("C2").Visibility = "Collapsed";
    sender.findName("C3").Visibility = "Collapsed";
    
    RefreshCanvasType("C1", sender.findName("Page"));
    
}

//Function to display the C2 panel.
function showC2(sender)
{
    sender.findName("C2").Visibility = "Visible";
    switch(currentPage)
    {
        case "vlab":
            enableVlab(sender);
            sender.findName("overlay_tv_out").Begin();
            break;
        case "comic":
            enableComic(sender);
            sender.findName("overlay_tv_out").Begin();
            break;
        case "movie":
            enableMovieTime(sender);
            sender.findName("overlay_tv_out").Begin();
            break;
        case "experts":
            enableExperts(sender);
            sender.findName("overlay_tv_out").Begin();
            break;
        case "dec":
            enableDEC(sender);
            sender.findName("overlay_tv_out").Begin();
        default:
            break;
    }
    
    sender.findName("C1").Visibility = "Collapsed";
    sender.findName("C3").Visibility = "Collapsed";
    
    RefreshCanvasType("C2", sender.findName("Page"));
}

//Function to display the C3 panel.
function showC3(sender)
{
    sender.findName("C3").Visibility = "Visible";
    switch(currentPage)
    {
        case "dnd":
            enableDnd(sender);
            enableDndBlog();
            sender.findName("overlay_tv_out").Begin();
            break;
        default:
            break;
    }
    
    sender.findName("C1").Visibility = "Collapsed";
    sender.findName("C2").Visibility = "Collapsed";
    
    RefreshCanvasType("C3", sender.findName("Page"));
}
