﻿if (!window.ArtsAndArchitecture)
	ArtsAndArchitecture = {};

// globals
// LOC_SB_SK_B.ttf, LOC_LL_TITLE.ttf
var AAFonts = null;
var AAMainView = null;
var AAPanelAttract = null;
var AAViewSelect = null;
var AANavBar = null;
var AADetailView = null;
var AADownloader = null;

ArtsAndArchitecture.Page = function()
{
}

ArtsAndArchitecture.Page.prototype =
{
    _mainView: null,
    _viewSelect: null,
    _navBar: null,
    _panelAttract: null,
    
	handleLoad: function(control, userContext, rootElement) 
	{

	    
		this.control = control;
		//this.control.settings.enableFrameRateCounter = true;
		// stops flickering
		this.control.settings.maxFramerate = 50;
		

		this.root = control.content.findName("Main");
		this._mainBackground = control.content.findName("MainBackground");
		this._downloadCanvas = control.content.findName("DownloadCanvas");
		this._downloadText = control.content.findName("DownloadText");
		this._downloadProgressBackground = control.content.findName("DownloadProgressBackground");
        this._downloadProgressBar = control.content.findName("DownloadProgressBar");
        
		this.downloadFonts();
		this.downloadContent();
	},
	
	downloadContent: function() 
	{
	    AADownloader = this.control.createObject("downloader");
	    AADownloader.addEventListener("downloadProgressChanged", Silverlight.createDelegate(this, this.handleDownloadProgressChanged_AADownloader));
	    AADownloader.addEventListener("completed", Silverlight.createDelegate(this, this.handleCompleted_AADownloader));
    
        AADownloader.open("GET", "AAContent.zip");
        AADownloader.send();
    },
    
    handleDownloadProgressChanged_AADownloader: function(sender, args)
    {
        var percentage = Math.floor(sender.downloadProgress * 100);
        this._downloadText.Text = "Downloading... " + percentage + "%";
        
        this._downloadProgressBar.Width = this._downloadProgressBackground.Width * sender.downloadProgress;
    },
    
    handleCompleted_AADownloader: function(sender, args)
    {
        var AAMainViewXaml = sender.getResponseText("MainView.xaml");

        this._mainView = this.control.content.createFromXaml(AAMainViewXaml, true);
        this.root.children.add(this._mainView);
        AAMainView = new ArtsAndArchitecture.MainView(this.control, this._mainView);
                
        var AAPanelAttractXaml = sender.getResponseText("PanelAttract.xaml");
        this._panelAttract = this.control.content.createFromXaml(AAPanelAttractXaml, true);
        this.root.children.add(this._panelAttract);
        AAPanelAttract = new ArtsAndArchitecture.PanelAttract(this.control, this._panelAttract, 0, 0);

        var AADetailViewXaml = sender.getResponseText("DetailView.xaml");
        this._detailView = this.control.content.createFromXaml(AADetailViewXaml, true);
        this.root.children.add(this._detailView);
        AADetailView = new ArtsAndArchitecture.DetailView(this.control, this._detailView);
       
        var AAViewSelectXaml = sender.getResponseText("ViewSelect.xaml");
        this._viewSelect = this.control.content.createFromXaml(AAViewSelectXaml, true);
        this.root.children.add(this._viewSelect);
        AAViewSelect = new ArtsAndArchitecture.ViewSelect(this.control, this._viewSelect, 0, 0);
        
        var AANavBarXaml = sender.getResponseText("NavBar.xaml");
        this._navBar = this.control.content.createFromXaml(AANavBarXaml, true);
        this.root.children.add(this._navBar);
        AANavBar = new ArtsAndArchitecture.NavBar(this.control, this._navBar, 0, this.control.clientHeight - this._navBar.height);
        
        AAViewSelect.selectEast();
        AAMainView.startAttractMode();
        AAPanelAttract.slideIn();
        AAViewSelect.slideIn();
        
        this._mainBackground.Visibility = "Collapsed";
        this._downloadCanvas.Visibility = "Collapsed";
    },
    
    downloadFonts: function() 
	{
	    var downloader = this.control.createObject("downloader");
	    downloader.addEventListener("completed", Silverlight.createDelegate(this, this.downloaderCompletedFonts));
    
        downloader.open("GET", "AAFonts.zip");
        downloader.send();
    },
    
    downloaderCompletedFonts: function(sender, args)
    {
        AAFonts = sender;
    }
}