var videoPlayer;
var videoPlayerLarge;

function createEmbeddedPlayer(page)
{
  videoPlayer = new VideoPlayer.Page();

  Silverlight.createObjectEx({
    source: "/unlimitedpotential/Silverlight/VideoPlayer.xaml",
    parentElement: document.getElementById("silverlightControlHost"),
    id: "SilverlightControl",
    properties: {
      width: "100%",
      height: "100%",
      version: "1.0",
      isWindowless: "true"
    },
    events: {
      onLoad: Silverlight.createDelegate(videoPlayer, videoPlayer.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: page
  });
}

function createOverlayPlayer(videoUrl)
{
  videoPlayerLarge = new VideoPlayerLarge.Page();

  Silverlight.createObjectEx({
    source: "/unlimitedpotential/Silverlight/VideoPlayerLarge.xaml",
    parentElement: document.getElementById("slcontent"),
    id: "SilverlightControlLg",
    properties: {
      width: "100%",
      height: "100%",
      version: "1.0"
    },
    events: {
      onLoad: Silverlight.createDelegate(videoPlayerLarge, videoPlayerLarge.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);
      }
    }
  }
}