﻿///////////////////////////////////////////////////////////////////////////////
//
//  Silverlight.js   			version 1.0
//
//  This file is provided by Microsoft as a helper file for websites that
//  incorporate Silverlight Objects. This file is provided under the Silverlight 
//  SDK 1.0 license available at http://go.microsoft.com/fwlink/?linkid=94240.  
//  You may not use or distribute this file or the code in this file except as 
//  expressly permitted under that license.
// 
//  Copyright (c) 2007 Microsoft Corporation. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////

if(!window.Silverlight)window.Silverlight = {
   }; 
Silverlight._silverlightCount = 0; 
Silverlight.ua = null; 
Silverlight.available = false; 
Silverlight.fwlinkRoot = "http://go.microsoft.com/fwlink/?LinkID="; 
Silverlight.detectUserAgent = function() {
   var a = window.navigator.userAgent; 
   Silverlight.ua = {
      OS : "Unsupported", Browser : "Unsupported"}; 
   if(a.indexOf("Windows NT") >= 0)Silverlight.ua.OS = "Windows"; 
   else if(a.indexOf("PPC Mac OS X") >= 0)Silverlight.ua.OS = "MacPPC"; 
   else if(a.indexOf("Intel Mac OS X") >= 0)Silverlight.ua.OS = "MacIntel"; 
   if(Silverlight.ua.OS != "Unsupported")if(a.indexOf("MSIE") >= 0) {
      if(navigator.userAgent.indexOf("Win64") ==- 1)if(parseInt(a.split("MSIE")[1]) >= 6)Silverlight.ua.Browser = "MSIE"}
   else if(a.indexOf("Firefox") >= 0) {
      var b = a.split("Firefox/")[1].split("."), c = parseInt(b[0]); 
      if(c >= 2)Silverlight.ua.Browser = "Firefox"; 
      else {
         var d = parseInt(b[1]); 
         if(c == 1 && d >= 5)Silverlight.ua.Browser = "Firefox"}
      }
   else if(a.indexOf("Safari") >= 0)Silverlight.ua.Browser = "Safari"}; 
Silverlight.detectUserAgent(); 
Silverlight.isInstalled = function(d) {
   var c = false, a = null; 
   try {
      var b = null; 
      if(Silverlight.ua.Browser == "MSIE")b = new ActiveXObject("AgControl.AgControl"); 
      else if(navigator.plugins["Silverlight Plug-In"]) {
         a = document.createElement("div"); 
         document.body.appendChild(a); 
         if(Silverlight.ua.Browser == "Safari")a.innerHTML = '<embed type="application/x-silverlight" />'; 
         else a.innerHTML = '<object type="application/x-silverlight" data="data:," />'; 
         b = a.childNodes[0]}
      document.body.innerHTML; 
      if(b.IsVersionSupported(d))c = true; 
      b = null; 
      Silverlight.available = true}
   catch(e) {
      c = false}
   if(a)document.body.removeChild(a); 
   return c}; 
Silverlight.createObject = function(l, g, m, j, k, i, h) {
   var b = {
      }
   , a = j, c = k; 
   a.source = l; 
   b.parentElement = g; 
   b.id = Silverlight.HtmlAttributeEncode(m); 
   b.width = Silverlight.HtmlAttributeEncode(a.width); 
   b.height = Silverlight.HtmlAttributeEncode(a.height); 
   b.ignoreBrowserVer = Boolean(a.ignoreBrowserVer); 
   b.inplaceInstallPrompt = Boolean(a.inplaceInstallPrompt); 
   b.onGetSilverlightClick = Silverlight.HtmlAttributeEncode(c.onGetSilverlightClick); 
   var e = a.version.split("."); 
   b.shortVer = e[0] + "." + e[1]; 
   b.version = a.version; 
   a.initParams = i; 
   a.windowless = a.isWindowless; 
   a.maxFramerate = a.framerate; 
   for(var d in c)if(c[d] && d != "onLoad" && d != "onError") {
      a[d] = c[d]; 
      c[d] = null}
   delete a.width; 
   delete a.height; 
   delete a.id; 
   delete a.onLoad; 
   delete a.onError; 
   delete a.ignoreBrowserVer; 
   delete a.inplaceInstallPrompt; 
   delete a.version; 
   delete a.isWindowless; 
   delete a.framerate; 
   delete a.data; 
   delete a.src; 
   delete c.onGetSilverlightClick; 
   if(Silverlight.isInstalled(b.version)) {
      if(Silverlight._silverlightCount == 0)if(window.addEventListener)window.addEventListener("onunload", Silverlight.__cleanup, false); 
      else window.attachEvent("onunload", Silverlight.__cleanup); 
      var f = Silverlight._silverlightCount++; 
      a.onLoad = "__slLoad" + f; 
      a.onError = "__slError" + f; 
      window[a.onLoad] = function(a) {
         if(c.onLoad)c.onLoad(document.getElementById(b.id), h, a)}; 
      window[a.onError] = function(a, b) {
         if(c.onError)c.onError(a, b); 
         else Silverlight.default_error_handler(a, b)}; 
      slPluginHTML = Silverlight.buildHTML(b, a)}
   else slPluginHTML = Silverlight.buildPromptHTML(b); 
   if(b.parentElement)b.parentElement.innerHTML = slPluginHTML; 
   else return slPluginHTML}; 
Silverlight.supportedUserAgent = function() {
   var a = Silverlight.ua, b = a.OS == "Unsupported" || a.Browser == "Unsupported" || a.OS == "Windows" && a.Browser == "Safari" || a.OS.indexOf("Mac") >= 0 && a.Browser == "IE"; 
   return !b}; 
Silverlight.buildHTML = function(c, d) {
   var a = [], e, i, g, f, h; 
   if(Silverlight.ua.Browser == "Safari") {
      a.push("<embed "); 
      e = ""; 
      i = " "; 
      g = '="'; 
      f = '"'; 
      h = ' type="application/x-silverlight"/>' + "<iframe style='visibility:hidden;height:0;width:0'/>"}
   else {
      a.push('<object type="application/x-silverlight" data="data:,"'); 
      e = ">"; 
      i = ' <param name="'; 
      g = '" value="'; 
      f = '" />'; 
      h = "</object>"}
   a.push(' id="' + c.id + '" width="' + c.width + '" height="' + c.height + '" ' + e); 
   for(var b in d)if(d[b])a.push(i + Silverlight.HtmlAttributeEncode(b) + g + Silverlight.HtmlAttributeEncode(d[b]) + f); 
   a.push(h); 
   return a.join("")}; 
Silverlight.default_error_handler = function(e, b) {
   var d, c = b.ErrorType; 
   d = b.ErrorCode; 
   var a = "\nSilverlight error message \n"; 
   a += "ErrorCode: " + d + "\n"; 
   a += "ErrorType: " + c + " \n"; 
   a += "Message: " + b.ErrorMessage + " \n"; 
   if(c == "ParserError") {
      a += "XamlFile: " + b.xamlFile + " \n"; 
      a += "Line: " + b.lineNumber + " \n"; 
      a += "Position: " + b.charPosition + " \n"}
   else if(c == "RuntimeError") {
      if(b.lineNumber != 0) {
         a += "Line: " + b.lineNumber + " \n"; 
         a += "Position: " + b.charPosition + " \n"}
      a += "MethodName: " + b.methodName + " \n"}
   alert(a)}; 
Silverlight.createObjectEx = function(b) {
   var a = b, c = Silverlight.createObject(a.source, a.parentElement, a.id, a.properties, a.events, a.initParams, a.context); 
   if(a.parentElement == null)return c}; 
Silverlight.buildPromptHTML = function(j) {
   var a = null, h = Silverlight.fwlinkRoot, c = Silverlight.ua.OS, d = j.onGetSilverlightClick, b = "92822", e, f = "Get Microsoft Silverlight", m = "0x409"; 
   if(!d)d = ""; 
   else d += "();"; 
   if(j.inplaceInstallPrompt) {
      var n = "104745"; 
      if(Silverlight.available)e = "104746"; 
      else e = "104747"; 
      var i = "93481", g = "93483"; 
      if(c == "Windows") {
         b = "92799"; 
         i = "92803"; 
         g = "92805"}
      else if(c == "MacIntel") {
         b = "92808"; 
         i = "92804"; 
         g = "92806"}
      else if(c == "MacPPC") {
         b = "92807"; 
         i = "92815"; 
         g = "92816"}
      var l = 'By clicking <b>"Get Microsoft Silverlight"</b> you accept the<br /><a title="Silverlight License Agreement" href="{2}" target="_blank" style="text-decoration: underline; color: #0000CC"><b>Silverlight license agreement</b></a>', k = 'Silverlight updates automatically, <a title="Silverlight Privacy Statement" href="{3}" target="_blank" style="text-decoration: underline; color: #0000CC"><b>learn more</b></a>'; 
      a = '<table border="0" cellpadding="0" cellspacing="0" width="206px" style="font-size: 55%; font-family: Verdana; color: #5E5D5D;"><tr><td><img style="display: block; cursor: pointer; border= 0;" title="' + f + '" alt="' + f + '" onclick="javascript:Silverlight.followFWLink({0});' + d + '" src="{1}" /></td></tr><tr><td style="width: 206px; margin: 0px; background: #FFFFFF; text-align: left; border-left-style: solid; border-right-style: solid; border-color: #c7c7bd;padding-left: 6px; padding-right: 6px; padding-top: 3px; padding-bottom: 10px; border-width: 2px; ">' + l + '</td></tr><tr><td style="width: 206px; margin: 0px; background: #FFFFFF; text-align: left; border-left-style: solid; border-right-style: solid; padding-left: 6px; padding-right: 6px; border-color: #c7c7bd;padding-top: 0px; padding-bottom: 2px; border-width: 2px; ">' + k + '</td></tr><tr><td><img alt="" src="{4}" /></td></tr></table>'; 
      a = a.replace("{2}", h + i); 
      a = a.replace("{3}", h + g); 
      a = a.replace("{4}", h + n)}
   else {
      if(Silverlight.available)e = "94377"; 
      else e = "92801"; 
      if(c == "Windows")b = "92800"; 
      else if(c == "MacIntel")b = "92812"; 
      else if(c == "MacPPC")b = "92811"; 
      a = '<div style="display:block; width: 205px; height: 67px;"><img onclick="javascript:Silverlight.followFWLink({0});' + d + '" style="border:0; cursor:pointer" src="{1}" title="' + f + '" alt="' + f + '"/></div>'}
   a = a.replace("{0}", b); 
   a = a.replace("{1}", h + e + "&amp;clcid=" + m); 
   return a}; 
Silverlight.__cleanup = function() {
   for(var a = Silverlight._silverlightCount - 1; a >= 0; a--) {
      window["__slLoad" + a] = null; 
      window["__slError" + a] = null}
   if(window.removeEventListener)window.removeEventListener("unload", Silverlight.__cleanup, false); 
   else window.detachEvent("onunload", Silverlight.__cleanup)}; 
Silverlight.followFWLink = function(a) {
   top.location = Silverlight.fwlinkRoot + String(a)}; 
Silverlight.HtmlAttributeEncode = function(c) {
   var a, b = ""; 
   if(c == null)return null; 
   for(var d = 0; d < c.length; d++) {
      a = c.charCodeAt(d); 
      if(a > 96 && a < 123 || a > 64 && a < 91 || a > 43 && a < 58 && a != 47 || a == 95)b = b + String.fromCharCode(a); 
      else b = b + "&#" + a + ";"}
   return b}

