1/////////////////////////////////////////////////////////////////////////////// 2// 3// Silverlight.js version 2.0.30523.6 4// 5// This file is provided by Microsoft as a helper file for websites that 6// incorporate Silverlight Objects. This file is provided under the Microsoft 7// Public License available at 8// http://code.msdn.microsoft.com/silverlightjs/Project/License.aspx. 9// You may not use or distribute this file or the code in this file except as 10// expressly permitted under that license. 11// 12// Copyright (c) Microsoft Corporation. All rights reserved. 13// 14/////////////////////////////////////////////////////////////////////////////// 15 16if (!window.Silverlight) 17{ 18 window.Silverlight = { }; 19} 20 21////////////////////////////////////////////////////////////////// 22// 23// _silverlightCount: 24// 25// Counter of globalized event handlers 26// 27////////////////////////////////////////////////////////////////// 28Silverlight._silverlightCount = 0; 29 30////////////////////////////////////////////////////////////////// 31// 32// fwlinkRoot: 33// 34// Prefix for fwlink URL's 35// 36////////////////////////////////////////////////////////////////// 37Silverlight.fwlinkRoot='http://go2.microsoft.com/fwlink/?LinkID='; 38 39////////////////////////////////////////////////////////////////// 40// 41// onGetSilverlight: 42// 43// Called by Silverlight.GetSilverlight to notify the page that a user 44// has requested the Silverlight installer 45// 46////////////////////////////////////////////////////////////////// 47Silverlight.onGetSilverlight = null; 48 49////////////////////////////////////////////////////////////////// 50// 51// onSilverlightInstalled: 52// 53// Called by Silverlight.WaitForInstallCompletion when the page detects 54// that Silverlight has been installed. The event handler is not called 55// in upgrade scenarios. 56// 57////////////////////////////////////////////////////////////////// 58Silverlight.onSilverlightInstalled = function () {window.location.reload(false);}; 59 60////////////////////////////////////////////////////////////////// 61// 62// isInstalled: 63// 64// Checks to see if the correct version is installed 65// 66////////////////////////////////////////////////////////////////// 67Silverlight.isInstalled = function(version) 68{ 69 var isVersionSupported=false; 70 var container = null; 71 72 try 73 { 74 var control = null; 75 76 try 77 { 78 control = new ActiveXObject('AgControl.AgControl'); 79 if ( version == null ) 80 { 81 isVersionSupported = true; 82 } 83 else if ( control.IsVersionSupported(version) ) 84 { 85 isVersionSupported = true; 86 } 87 control = null; 88 } 89 catch (e) 90 { 91 var plugin = navigator.plugins["Silverlight Plug-In"] ; 92 if ( plugin ) 93 { 94 if ( version === null ) 95 { 96 isVersionSupported = true; 97 } 98 else 99 { 100 var actualVer = plugin.description; 101 if ( actualVer === "1.0.30226.2") 102 actualVer = "2.0.30226.2"; 103 var actualVerArray =actualVer.split("."); 104 while ( actualVerArray.length > 3) 105 { 106 actualVerArray.pop(); 107 } 108 while ( actualVerArray.length < 4) 109 { 110 actualVerArray.push(0); 111 } 112 var reqVerArray = version.split("."); 113 while ( reqVerArray.length > 4) 114 { 115 reqVerArray.pop(); 116 } 117 118 var requiredVersionPart ; 119 var actualVersionPart 120 var index = 0; 121 122 123 do 124 { 125 requiredVersionPart = parseInt(reqVerArray[index]); 126 actualVersionPart = parseInt(actualVerArray[index]); 127 index++; 128 } 129 while (index < reqVerArray.length && requiredVersionPart === actualVersionPart); 130 131 if ( requiredVersionPart <= actualVersionPart && !isNaN(requiredVersionPart) ) 132 { 133 isVersionSupported = true; 134 } 135 } 136 } 137 } 138 } 139 catch (e) 140 { 141 isVersionSupported = false; 142 } 143 if (container) 144 { 145 document.body.removeChild(container); 146 } 147 148 return isVersionSupported; 149} 150////////////////////////////////////////////////////////////////// 151// 152// WaitForInstallCompletion: 153// 154// Occasionally checks for Silverlight installation status. If it 155// detects that Silverlight has been installed then it calls 156// Silverlight.onSilverlightInstalled();. This is only supported 157// if Silverlight was not previously installed on this computer. 158//
159////////////////////////////////////////////////////////////////// 160Silverlight.WaitForInstallCompletion = function() 161{ 162 if ( ! Silverlight.isBrowserRestartRequired && Silverlight.onSilverlightInstalled ) 163 { 164 try 165 { 166 navigator.plugins.refresh(); 167 } 168 catch(e) 169 { 170 } 171 if ( Silverlight.isInstalled(null) ) 172 { 173 Silverlight.onSilverlightInstalled(); 174 } 175 else 176 { 177 setTimeout(Silverlight.WaitForInstallCompletion, 3000); 178 } 179 } 180} 181////////////////////////////////////////////////////////////////// 182// 183// __startup: 184// 185// Performs startup tasks 186////////////////////////////////////////////////////////////////// 187Silverlight.__startup = function() 188{ 189 Silverlight.isBrowserRestartRequired = Silverlight.isInstalled(null); 190 if ( !Silverlight.isBrowserRestartRequired) 191 { 192 Silverlight.WaitForInstallCompletion(); 193 } 194 if (window.removeEventListener) { 195 window.removeEventListener('load', Silverlight.__startup , false); 196 } 197 else { 198 window.detachEvent('onload', Silverlight.__startup ); 199 } 200} 201 202if (window.addEventListener) 203{ 204 window.addEventListener('load', Silverlight.__startup , false); 205} 206else 207{ 208 window.attachEvent('onload', Silverlight.__startup ); 209} 210 211/////////////////////////////////////////////////////////////////////////////// 212// createObject: 213// 214// Inserts a Silverlight <object> tag or installation experience into the HTML 215// DOM based on the current installed state of Silverlight. 216// 217///////////////////////////////////////////////////////////////////////////////// 218 219Silverlight.createObject = function(source, parentElement, id, properties, events, initParams, userContext) 220{ 221 var slPluginHelper = new Object(); 222 var slProperties = properties; 223 var slEvents = events; 224 225 slPluginHelper.version = slProperties.version; 226 slProperties.source = source; 227 slPluginHelper.alt = slProperties.alt; 228 229 //rename properties to their tag property names. For bacwards compatibility 230 //with Silverlight.js version 1.0 231 if ( initParams ) 232 slProperties.initParams = initParams; 233 if ( slProperties.isWindowless && !slProperties.windowless) 234 slProperties.windowless = slProperties.isWindowless; 235 if ( slProperties.framerate && !slProperties.maxFramerate) 236 slProperties.maxFramerate = slProperties.framerate; 237 if ( id && !slProperties.id) 238 slProperties.id = id; 239 240 // remove elements which are not to be added to the instantiation tag 241 delete slProperties.ignoreBrowserVer; 242 delete slProperties.inplaceInstallPrompt; 243 delete slProperties.version; 244 delete slProperties.isWindowless; 245 delete slProperties.framerate; 246 delete slProperties.data; 247 delete slProperties.src; 248 delete slProperties.alt; 249 250 251 // detect that the correct version of Silverlight is installed, else display install 252 253 if (Silverlight.isInstalled(slPluginHelper.version)) 254 { 255 //move unknown events to the slProperties array 256 for (var name in slEvents) 257 { 258 if ( slEvents[name]) 259 { 260 if ( name == "onLoad" && typeof slEvents[name] == "function" && slEvents[name].length != 1 ) 261 { 262 var onLoadHandler = slEvents[name]; 263 slEvents[name]=function (sender){ return onLoadHandler(document.getElementById(id), userContext, sender)}; 264 } 265 var handlerName = Silverlight.__getHandlerName(slEvents[name]); 266 if ( handlerName != null ) 267 { 268 slProperties[name] = handlerName; 269 slEvents[name] = null; 270 } 271 else 272 { 273 throw "typeof events."+name+" must be 'function' or 'string'"; 274 } 275 } 276 } 277 slPluginHTML = Silverlight.buildHTML(slProperties); 278 } 279 //The control could not be instantiated. Show the installation prompt 280 else 281 { 282 slPluginHTML = Silverlight.buildPromptHTML(slPluginHelper); 283 } 284 285 // insert or return the HTML 286 if(parentElement) 287 { 288 parentElement.innerHTML = slPluginHTML; 289 } 290 else 291 { 292 return slPluginHTML; 293 } 294 295} 296 297/////////////////////////////////////////////////////////////////////////////// 298// 299// buildHTML: 300// 301// create HTML that instantiates the control 302//
303/////////////////////////////////////////////////////////////////////////////// 304Silverlight.buildHTML = function( slProperties) 305{ 306 var htmlBuilder = []; 307 308 htmlBuilder.push('<object type=\"application/x-silverlight\" data="data:application/x-silverlight,"'); 309 if ( slProperties.id != null ) 310 { 311 htmlBuilder.push(' id="' + slProperties.id + '"'); 312 } 313 if ( slProperties.width != null ) 314 { 315 htmlBuilder.push(' width="' + slProperties.width+ '"'); 316 } 317 if ( slProperties.height != null ) 318 { 319 htmlBuilder.push(' height="' + slProperties.height + '"'); 320 } 321 htmlBuilder.push(' >'); 322 323 delete slProperties.id; 324 delete slProperties.width; 325 delete slProperties.height; 326 327 for (var name in slProperties) 328 { 329 if (slProperties[name]) 330 { 331 htmlBuilder.push('<param name="'+Silverlight.HtmlAttributeEncode(name)+'" value="'+Silverlight.HtmlAttributeEncode(slProperties[name])+'" />'); 332 } 333 } 334 htmlBuilder.push('<\/object>'); 335 return htmlBuilder.join(''); 336} 337 338 339 340////////////////////////////////////////////////////////////////// 341// 342// createObjectEx: 343// 344// takes a single parameter of all createObject 345// parameters enclosed in {} 346// 347////////////////////////////////////////////////////////////////// 348 349Silverlight.createObjectEx = function(params) 350{ 351 var parameters = params; 352 var html = Silverlight.createObject(parameters.source, parameters.parentElement, parameters.id, parameters.properties, parameters.events, parameters.initParams, parameters.context); 353 if (parameters.parentElement == null) 354 { 355 return html; 356 } 357} 358 359/////////////////////////////////////////////////////////////////////////////////////////////// 360// 361// buildPromptHTML 362// 363// Builds the HTML to prompt the user to download and install Silverlight 364// 365/////////////////////////////////////////////////////////////////////////////////////////////// 366Silverlight.buildPromptHTML = function(slPluginHelper) 367{ 368 var slPluginHTML = ""; 369 var urlRoot = Silverlight.fwlinkRoot; 370 var shortVer = slPluginHelper.version ; 371 if ( slPluginHelper.alt ) 372 { 373 slPluginHTML = slPluginHelper.alt; 374 } 375 else 376 { 377 if (! shortVer ) 378 { 379 shortVer=""; 380 } 381 slPluginHTML = "<a href='javascript:Silverlight.getSilverlight(\"{1}\");' style='text-decoration: none;'><img src='{2}' alt='Get Microsoft Silverlight' style='border-style: none'/></a>"; 382 slPluginHTML = slPluginHTML.replace('{1}', shortVer ); 383 slPluginHTML = slPluginHTML.replace('{2}', urlRoot + '108181'); 384 } 385 386 return slPluginHTML; 387} 388 389/////////////////////////////////////////////////////////////////////////////////////////////// 390// 391// getSilverlight: 392// 393// Navigates the browser to the appropriate Silverlight installer 394// 395/////////////////////////////////////////////////////////////////////////////////////////////// 396Silverlight.getSilverlight = function(version) 397{ 398 if (Silverlight.onGetSilverlight ) 399 { 400 Silverlight.onGetSilverlight(); 401 } 402 403 var shortVer = ""; 404 var reqVerArray = String(version).split("."); 405 if (reqVerArray.length > 1) 406 { 407 var majorNum = parseInt(reqVerArray[0] ); 408 if ( isNaN(majorNum) || majorNum < 2 ) 409 { 410 shortVer = "1.0"; 411 } 412 else 413 { 414 shortVer = reqVerArray[0]+'.'+reqVerArray[1]; 415 } 416 } 417 418 var verArg = ""; 419 420 if (shortVer.match(/^\d+\056\d+$/) ) 421 { 422 verArg = "&v="+shortVer; 423 } 424 425 Silverlight.followFWLink("114576" + verArg); 426} 427 428 429/////////////////////////////////////////////////////////////////////////////////////////////// 430// 431// followFWLink: 432// 433// Navigates to a url based on fwlinkid 434// 435/////////////////////////////////////////////////////////////////////////////////////////////// 436Silverlight.followFWLink = function(linkid) 437{ 438 top.location=Silverlight.fwlinkRoot+String(linkid); 439} 440 441/////////////////////////////////////////////////////////////////////////////////////////////// 442// 443// HtmlAttributeEncode: 444// 445// Encodes special characters in input strings as charcodes 446//
447/////////////////////////////////////////////////////////////////////////////////////////////// 448Silverlight.HtmlAttributeEncode = function( strInput ) 449{ 450 var c; 451 var retVal = ''; 452 453 if(strInput == null) 454 { 455 return null; 456 } 457 458 for(var cnt = 0; cnt < strInput.length; cnt++) 459 { 460 c = strInput.charCodeAt(cnt); 461 462 if (( ( c > 96 ) && ( c < 123 ) ) || 463 ( ( c > 64 ) && ( c < 91 ) ) || 464 ( ( c > 43 ) && ( c < 58 ) && (c!=47)) || 465 ( c == 95 )) 466 { 467 retVal = retVal + String.fromCharCode(c); 468 } 469 else 470 { 471 retVal = retVal + '&#' + c + ';'; 472 } 473 } 474 475 return retVal; 476} 477/////////////////////////////////////////////////////////////////////////////// 478// 479// default_error_handler: 480// 481// Default error handling function 482// 483/////////////////////////////////////////////////////////////////////////////// 484 485Silverlight.default_error_handler = function (sender, args) 486{ 487 var iErrorCode; 488 var errorType = args.ErrorType; 489 490 iErrorCode = args.ErrorCode; 491 492 var errMsg = "\nSilverlight error message \n" ; 493 494 errMsg += "ErrorCode: "+ iErrorCode + "\n"; 495 496 497 errMsg += "ErrorType: " + errorType + " \n"; 498 errMsg += "Message: " + args.ErrorMessage + " \n"; 499 500 if (errorType == "ParserError") 501 { 502 errMsg += "XamlFile: " + args.xamlFile + " \n"; 503 errMsg += "Line: " + args.lineNumber + " \n"; 504 errMsg += "Position: " + args.charPosition + " \n"; 505 } 506 else if (errorType == "RuntimeError") 507 { 508 if (args.lineNumber != 0) 509 { 510 errMsg += "Line: " + args.lineNumber + " \n"; 511 errMsg += "Position: " + args.charPosition + " \n"; 512 } 513 errMsg += "MethodName: " + args.methodName + " \n"; 514 } 515 alert (errMsg); 516} 517 518/////////////////////////////////////////////////////////////////////////////////////////////// 519// 520// __cleanup: 521// 522// Releases event handler resources when the page is unloaded 523// 524/////////////////////////////////////////////////////////////////////////////////////////////// 525Silverlight.__cleanup = function () 526{ 527 for (var i = Silverlight._silverlightCount - 1; i >= 0; i--) { 528 window['__slEvent' + i] = null; 529 } 530 Silverlight._silverlightCount = 0; 531 if (window.removeEventListener) { 532 window.removeEventListener('unload', Silverlight.__cleanup , false); 533 } 534 else { 535 window.detachEvent('onunload', Silverlight.__cleanup ); 536 } 537} 538 539/////////////////////////////////////////////////////////////////////////////////////////////// 540// 541// __getHandlerName: 542// 543// Generates named event handlers for delegates. 544// 545/////////////////////////////////////////////////////////////////////////////////////////////// 546Silverlight.__getHandlerName = function (handler) 547{ 548 var handlerName = ""; 549 if ( typeof handler == "string") 550 { 551 handlerName = handler; 552 } 553 else if ( typeof handler == "function" ) 554 { 555 if (Silverlight._silverlightCount == 0) 556 { 557 if (window.addEventListener) 558 { 559 window.addEventListener('onunload', Silverlight.__cleanup , false); 560 } 561 else 562 { 563 window.attachEvent('onunload', Silverlight.__cleanup ); 564 } 565 } 566 var count = Silverlight._silverlightCount++; 567 handlerName = "__slEvent"+count; 568 569 window[handlerName]=handler; 570 } 571 else 572 { 573 handlerName = null; 574 } 575 return handlerName; 576}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.