﻿//Next comic strip in the queue.
var nextComic = "xaml/C2/hsw_002_web.jpg";

//Previous comic strip in the queue.
var previousComic = "xaml/C2/hsw_012_web.jpg"; 

//Currently selected comic strip.
var currentComic;

//Flag indicating if the comic is set in zoom mode or in regular mode.
var zoomOn;

//Left position of the current comic.
var comicLeft;

//Beginning position of the mouse X coordinate.
var beginX;

//Flag indicating if the mouse button is in the down state.
var isMouseDown = false;

//Function to enable the comics page controls and screen.
function enableComic(sender)
{
    sender.findName("C2_dec_grp").Visibility = "Collapsed";
    sender.findName("C2_vlab_grp").Visibility = "Collapsed";
    sender.findName("C2_movie_grp").Visibility = "Collapsed";
    sender.findName("C2_comic_grp").Visibility = "Collapsed";
    sender.findName("C2_experts_grp").Visibility = "Collapsed";

    sender.findName("C2_btn_home_off").Visibility = "Visible";

     sender.findName("C2_comic_grp").Visibility = "Visible";
     sender.findName("C2_comic_bg").Visibility = "Visible";
     sender.findName("C2_hdr_comic").Visibility = "Visible";
     sender.findName("C2_intro_comic").Visibility = "Visible";
     sender.findName("C2_comic").Visibility = "Visible";
     sender.findName("C2_comic_nav").Visibility = "Visible";
     sender.findName("C2_comic_strip_img").Visibility = "Visible";
     sender.findName("C2_comic_strip").Visibility = "Visible";
     sender.findName("C2_comic_area").Visibility = "Visible";
     
     hideBlogs();
     
     sender.findName("bs_strip").Visibility = "Collapsed";
     sender.findName("ts_strip").Visibility = "Collapsed";
     sender.findName("fs_strip").Visibility = "Collapsed";
    
    if (zoomOn == true)
    { 
        sender.findName("C2_comic_strip_img") ["Canvas.Top"] = 0;
        sender.findName("C2_comic_strip_img") ["Canvas.Left"] = 0;
        sender.findName("C2_comic_strip_img").Cursor = "Arrow"; 
        sender.findName("C2_comic_strip_img001_minimize").Begin();
        zoomOn = false;
    }
     
     sender.findName("C2_comic_zoom_in_btn").Visibility = "Visible";
     sender.findName("C2_comic_zoom_in_over_btn").Visibility = "Collapsed";
     sender.findName("C2_comic_zoom_out_over_btn").Visibility = "Collapsed";
     sender.findName("C2_comic_zoom_out_btn").Visibility = "Collapsed";
     sender.findName("cs_strip").Visibility = "Visible";
     sender.findName("cs_strip") ["Canvas.Top"] = 80;
     sender.findName("cs_strip") ["Canvas.Left"] = 85;
     sender.findName("C2_comic_strip_img") ["Canvas.ZIndex"] = 4;
     
      sender.findName("C2_comic_nav_btn_previous").Visibility = "Visible";
      sender.findName("C2_comic_nav_btn_next").Visibility = "Visible"
     
     
     sender.findName("cs_scroll_mechanism") ["Canvas.Top"] = 50;
     sender.findName("cs_scroll_mechanism") ["Canvas.Left"] = 155;
       
     sender.findName("C2")["Canvas.Top"] = 80;
     sender.findName("C2")["Canvas.Left"] = 255;   
}

//Function to load a comic into the main panel.
function loadComic(sender)
{
    
    recordDebugMessage(currentComic, 1);
    
    switch(currentComic)
    {
        case "xaml/C2/hsw_001_web.jpg":
            nextComic = "xaml/C2/hsw_002_web.jpg";
            previousComic = "xaml/C2/hsw_012_web.jpg";
            break;
        case "xaml/C2/hsw_002_web.jpg":
            nextComic = "xaml/C2/hsw_003_web.jpg";
            previousComic = "xaml/C2/hsw_001_web.jpg";
            break;
        case "xaml/C2/hsw_003_web.jpg":
            nextComic = "xaml/C2/hsw_004_web.jpg";
            previousComic = "xaml/C2/hsw_002_web.jpg";
            break;
        case "xaml/C2/hsw_004_web.jpg":
            nextComic = "xaml/C2/hsw_005_web.jpg";
            previousComic = "xaml/C2/hsw_003_web.jpg";
            break;
        case "xaml/C2/hsw_005_web.jpg":
            nextComic = "xaml/C2/hsw_006_web.jpg";
            previousComic = "xaml/C2/hsw_004_web.jpg";
            break;
        case "xaml/C2/hsw_006_web.jpg":
            nextComic = "xaml/C2/hsw_007_web.jpg";
            previousComic = "xaml/C2/hsw_005_web.jpg";
            break;
        case "xaml/C2/hsw_007_web.jpg":
            nextComic = "xaml/C2/hsw_008_web.jpg";
            previousComic = "xaml/C2/hsw_006_web.jpg";
            break;
        case "xaml/C2/hsw_008_web.jpg":
            nextComic = "xaml/C2/hsw_009_web.jpg";
            previousComic = "xaml/C2/hsw_007_web.jpg";
            break;
        case "xaml/C2/hsw_009_web.jpg":
            nextComic = "xaml/C2/hsw_010_web.jpg";
            previousComic = "xaml/C2/hsw_008_web.jpg";
            break;
        case "xaml/C2/hsw_010_web.jpg":
            nextComic = "xaml/C2/hsw_011_web.jpg";
            previousComic = "xaml/C2/hsw_009_web.jpg";
            break;
        case "xaml/C2/hsw_011_web.jpg":
            nextComic = "xaml/C2/hsw_012_web.jpg";
            previousComic = "xaml/C2/hsw_010_web.jpg";
            break;
        case "xaml/C2/hsw_012_web.jpg":
            nextComic = "xaml/C2/hsw_001_web.jpg";
            previousComic = "xaml/C2/hsw_011_web.jpg";
            break;
        default:
            break;
    }
    
    sender.findName("C2_comic_strip_img").Source = currentComic;
    
}

//EventHandler for mouse click on comic strip.  Initializes drag & drop.
function onComicMouseDown(sender, mouseEventArgs)
{
    comicLeft = sender["Canvas.Left"];
    
    beginX = mouseEventArgs.getPosition(null).x;
    
     isMouseDown = true;
     
     sender.captureMouse();
}

//Event handler for dragging of comic when in a zoomed in state.
function onComicMouseMove(sender, mouseEventArgs)
{
    if (zoomOn == true)
    {
        if (isMouseDown == true)
        {
            var currX = mouseEventArgs.getPosition(null).x;
        
            var position = sender["Canvas.Left"] + (currX - beginX);
       
        
            if (position >= -348 && position <= -28)
            {
        
                // Reset the location of the object.
                sender["Canvas.Left"] += currX - beginX;
        
                // Update the beginning position of the mouse.
                beginX = currX;
            }   
        }
    }
}

//EventHandler for releasing the mouse button on the comic during a drag & drop operation.
function onComicMouseUp(sender, mouseEventArgs)
{
    isMouseDown = false;
    
    sender.releaseMouseCapture();
}

//EventHandler for clicking on a comic thumbnail in the side panel.
function onComicThumbClick(sender, eventArgs)
{
    
    switch(sender.name)
    {
        case "cs_thumb_btn":
            currentComic = "xaml/C2/hsw_001_web.jpg";
            loadComic(sender);
            break;
        case "cs_thumb_btn1":
            currentComic = "xaml/C2/hsw_002_web.jpg";
            loadComic(sender);
            break;
        case "cs_thumb_btn2":
            currentComic = "xaml/C2/hsw_003_web.jpg";
            loadComic(sender);
            break;
        case "cs_thumb_btn3":
            currentComic = "xaml/C2/hsw_004_web.jpg";
            loadComic(sender);
            break;
        case "cs_thumb_btn4":
            currentComic = "xaml/C2/hsw_005_web.jpg";
            loadComic(sender);
            break;
        case "cs_thumb_btn5":
            currentComic = "xaml/C2/hsw_006_web.jpg";
            loadComic(sender);
            break;
        case "cs_thumb_btn6":
            currentComic = "xaml/C2/hsw_007_web.jpg";
            loadComic(sender);
            break;
        case "cs_thumb_btn7":
            currentComic = "xaml/C2/hsw_008_web.jpg";
            loadComic(sender);
            break;
        case "cs_thumb_btn8":
            currentComic = "xaml/C2/hsw_009_web.jpg";
            loadComic(sender);
            break;
        case "cs_thumb_btn9":
            currentComic = "xaml/C2/hsw_010_web.jpg";
            loadComic(sender);
            break;
        case "cs_thumb_btn10":
            currentComic = "xaml/C2/hsw_011_web.jpg";
            loadComic(sender);
            break;
        case "cs_thumb_btn11":
            currentComic = "xaml/C2/hsw_012_web.jpg"
            loadComic(sender);
            break;
        default:
            break;
    }
}

//EventHandler for clicking the zoom in button on the comic screen.
function onComicZoomIn(sender, eventArgs)
{
    sender.findName("C2_comic_strip_img") ["Canvas.Top"] = -93;
    sender.findName("C2_comic_strip_img") ["Canvas.Left"] = -28;
    sender.findName("C2_comic_strip_img").Cursor = "Hand"; 
    sender.findName("C2_comic_strip_img001_zoom").Begin();
    sender.findName("C2_comic_zoom_out_btn").Visibility = "Visible";
    sender.findName("C2_comic_zoom_in_btn").Visibility = "Collapsed";
    sender.findName("C2_comic_nav_btn_previous").Visibility = "Collapsed";
    sender.findName("C2_comic_nav_btn_next").Visibility = "Collapsed";
    sender.findName("btn_next_smlflame_png").Visibility="Collapsed";
    sender.findName("btn_next_bigflame_png").Visibility="Collapsed";
    sender.findName("btn_previous_smlflame_png").Visibility="Collapsed";
    sender.findName("btn_previous_bigflame_png").Visibility="Collapsed";
    sender.findName("C2_intro_comic").Visibility = "Collapsed";
    zoomOn = true;
}

//EventHandler for clicking the zoom out button on the comic screen.
function onComicZoomOut(sender, eventArgs)
{
    sender.findName("C2_comic_strip_img") ["Canvas.Top"] = 0;
    sender.findName("C2_comic_strip_img") ["Canvas.Left"] = 0;
    sender.findName("C2_comic_strip_img").Cursor = "Arrow"; 
    sender.findName("C2_comic_strip_img001_minimize").Begin();
    sender.findName("C2_comic_zoom_out_btn").Visibility = "Collapsed";
    sender.findName("C2_comic_zoom_in_btn").Visibility = "Visible";
    sender.findName("C2_comic_nav_btn_previous").Visibility = "Visible";
    sender.findName("C2_comic_nav_btn_next").Visibility = "Visible";
    sender.findName("btn_next_smlflame_png").Visibility="Visible";
    sender.findName("btn_next_bigflame_png").Visibility="Visible";
    sender.findName("btn_previous_smlflame_png").Visibility="Visible";
    sender.findName("btn_previous_bigflame_png").Visibility="Visible";
     sender.findName("C2_intro_comic").Visibility = "Visible";
    zoomOn = false;
}

//EventHandler for loading the next comic in the list.
function onNextComicClick(sender, eventArgs)
{  
    currentComic = nextComic;
    loadComic(sender);
}

//EventHandler for click of the previous comic button.
function onPreviousComicClick(sender, eventArgs)
{
    currentComic = previousComic;
    loadComic(sender)
}