if (!window.Analytics)
	window.Analytics = {};

Analytics.Scene = function() 
{
}

Analytics.Scene.prototype =
{
	handleLoad: function(control, userContext, rootElement) 
	{
		this.control = control;
		
        // These are the event handlers for user feedback and business logic    		
        AddButtonHandlers(rootElement, "SourceCode");
		AddButtonHandlers(rootElement, "PDF");
		AddButtonHandlers(rootElement, "XPS");
		AddButtonHandlers(rootElement, "SendInfo");
		AddButtonHandlers(rootElement, "WPF");
		
		AddHyperlinkHandlers(rootElement, "url");
		
		var movie = rootElement.findName("Movie");
		movie.addEventListener("downloadProgressChanged", OnDownloadProgressChanged);
		
		AddAnalytics(rootElement);
 	}
}

function AddHyperlinkHandlers(rootElement, name)
{
    var hyperlink = rootElement.findName(name);
    
    hyperlink.Cursor = "Hand";
    
    hyperlink.addEventListener("MouseEnter", MouseEnterHyperlink);
    hyperlink.addEventListener("MouseLeave", MouseLeaveHyperlink);
    hyperlink.addEventListener("MouseLeftButtonDown", FollowHyperlink);
}

function MouseEnterHyperlink(sender, eventArgs)
{
    sender.Foreground = "Yellow";
}

function MouseLeaveHyperlink(sender, eventArgs)
{
    sender.Foreground = "White";
}

function FollowHyperlink(sender, eventArgs)
{
    var url = sender.Tag;
    
    if (url == null || url == "")
    {
        url = sender.Text;
    }
    
    window.open(url, "_blank");
}

//Add event handlers to each button
function AddButtonHandlers(rootElement, name)
{
    var element = rootElement.findName(name);

    // These are the event handlers for user feedback and business logic    
    element.addEventListener("MouseEnter", MouseOverButton);
    element.addEventListener("MouseLeave", MouseLeaveButton);
    element.addEventListener("MouseLeftButtonUp", ClickButton);
}

function OnDownloadProgressChanged(sender, eventArgs)
{
    var downloadProgressScale = sender.findName("DownloadProgressScale");
    
    downloadProgressScale.ScaleX = sender.downloadProgress;
    
    if (sender.downloadProgress >= 1.0)
    {
        var progress = sender.findName("Progress");
        
        progress.Visibility = "Collapsed";
    }
}

function MouseOverButton(sender, eventArgs)
{
    var fill = sender.findName(sender.Name + "Fill");
    fill.Color = "Yellow";
}

function MouseLeaveButton(sender, eventArgs)
{
    var fill = sender.findName(sender.Name + "Fill");
    fill.Color = "#FFF90808";
}

function ClickButton(sender, eventArgs)
{
    window.open(sender.Tag, "_blank");
}
