﻿var scene;
var viewDemosTabGlobal;
var videosTabGlobal;
var fullScreenPlayer;

function createHomePageVideoPlayer()
{
  scene = new HomePageVideoPlayer.Page();
  Silverlight.createObjectEx({
    source: "Xaml/HomePageVideoPlayer.xaml",
    parentElement: document.getElementById("homePageSilverlight"),
    id: "HomePageSilverlightControl",
    properties: {
      width: "100%",
      height: "100%",
      version: "1.0",
      isWindowless: "true",
      Background: "Transparent"
    },
    events: {
      onLoad: Silverlight.createDelegate(scene, scene.handleLoad),
      onError: function(sender, args) {
        var errorDiv = document.getElementById("errorLocation");
        if (errorDiv != null) {
          var errorText = args.errorType + "- " + args.errorMessage;
              
          if (args.ErrorType == "ParserError") {
            errorText += "<br/>File: " + args.xamlFile;
            errorText += ", line " + args.lineNumber;
            errorText += " character " + args.charPosition;
          }
          else if (args.ErrorType == "RuntimeError") {
            errorText += "<br/>line " + args.lineNumber;
            errorText += " character " +  args.charPosition;
          }
          errorDiv.innerHTML = errorText;
        }	
      }
    }
  });
}

function createViewDemosTab()
{
	viewDemosTabGlobal = new ViewDemosTab.Page();
	Silverlight.createObjectEx({
		source: "Xaml/ViewDemosTab.xaml",
		parentElement: document.getElementById("viewDemosTabHost"),
		id: "ViewDemosTab",
		properties: {
			width: "748",
			height: "140",
			version: "1.0",
			isWindowless: "true",
			Background: "Transparent"
		},
		events: {
			onLoad: Silverlight.createDelegate(viewDemosTabGlobal, viewDemosTabGlobal.handleLoad),
			onError: function(sender, args) {
				var errorDiv = document.getElementById("errorLocation");
				if (errorDiv != null) {
					var errorText = args.errorType + "- " + args.errorMessage;
							
					if (args.ErrorType == "ParserError") {
						errorText += "<br>File: " + args.xamlFile;
						errorText += ", line " + args.lineNumber;
						errorText += " character " + args.charPosition;
					}
					else if (args.ErrorType == "RuntimeError") {
						errorText += "<br>line " + args.lineNumber;
						errorText += " character " +  args.charPosition;
					}
					errorDiv.innerHTML = errorText;
				}	
			}
		}
	});
}

function createVideosTab()
{
	videosTabGlobal = new VideosTab.Page();
	Silverlight.createObjectEx({
		source: "Xaml/VideosTab.xaml",
		parentElement: document.getElementById("videosTabHost"),
		id: "VideosTab",
		properties: {
			width: "748",
			height: "140",
			version: "1.0",
			isWindowless: "true",
			Background: "transparent"
		},
		events: {
			onLoad: Silverlight.createDelegate(videosTabGlobal, videosTabGlobal.handleLoad),
			onError: function(sender, args) {
				var errorDiv = document.getElementById("errorLocation");
				if (errorDiv != null) {
					var errorText = args.errorType + "- " + args.errorMessage;
							
					if (args.ErrorType == "ParserError") {
						errorText += "<br>File: " + args.xamlFile;
						errorText += ", line " + args.lineNumber;
						errorText += " character " + args.charPosition;
					}
					else if (args.ErrorType == "RuntimeError") {
						errorText += "<br>line " + args.lineNumber;
						errorText += " character " +  args.charPosition;
					}
					errorDiv.innerHTML = errorText;
				}	
			}
		}
	});
}
		
function createFullScreenPlayer(videoUrl)
{
	fullScreenPlayer = new FullScreenPlayer.Page();
	Silverlight.createObjectEx({
		source: "Xaml/FullScreenPlayer.xaml",
		parentElement: document.getElementById("fullScreenPlayerDialog"),
		id: "FullScreenPlayer",
		properties: {
			width: "800",
			height: "442",
			version: "1.0"
		},
		events: {
			onLoad: Silverlight.createDelegate(fullScreenPlayer, fullScreenPlayer.handleLoad),
			onError: function(sender, args) {
				var errorDiv = document.getElementById("errorLocation");
				if (errorDiv != null) {
					var errorText = args.errorType + "- " + args.errorMessage;
							
					if (args.ErrorType == "ParserError") {
						errorText += "<br>File: " + args.xamlFile;
						errorText += ", line " + args.lineNumber;
						errorText += " character " + args.charPosition;
					}
					else if (args.ErrorType == "RuntimeError") {
						errorText += "<br>line " + args.lineNumber;
						errorText += " character " +  args.charPosition;
					}
					errorDiv.innerHTML = errorText;
				}	
			}
		},
		initParams: videoUrl
	});
}
		
if (!window.Silverlight) 
  Silverlight = {};

Silverlight.createDelegate = function(instance, method) {
  return function() {
    return method.apply(instance, arguments);
  }
}

Silverlight.InstallAndCreateSilverlight = function(version, SilverlightDiv, installExperienceDiv, installPromptDivId, createSilverlightDelegate, params)
{
  if(Silverlight.isInstalled(version))
  {
    createSilverlightDelegate(params);
  }
  else
  {  
		if(installExperienceDiv && SilverlightDiv)
		{
			SilverlightDiv.innerHTML = installExperienceDiv.innerHTML;
		}
		
		if(installPromptDivId)
		{
			var installPromptDiv = document.getElementById(installPromptDivId);
			if(installPromptDiv)
			{
				installPromptDiv.innerHTML = Silverlight.createObject(null, null, null, {version: version, inplaceInstallPrompt:true}, {}, null);
			}
		}
  }
}