Type.registerNamespace("Sys.UI.Silverlight");Sys.UI.Silverlight.Control=function(A){Sys.UI.Silverlight.Control.initializeBase(this,[this._findObject(A)||A]);this._scaleMode=Sys.UI.Silverlight.ScaleMode.none};Sys.UI.Silverlight.Control.prototype={_source:null,_loaded:false,_boundEvents:null,_setOnLoad:false,_setOnFullScreenChange:false,_setOnResize:false,_setOnError:false,add_pluginError:function(A){this.get_events().addHandler("pluginError",A)},remove_pluginError:function(A){this.get_events().removeHandler("pluginError",A)},add_pluginFullScreenChanged:function(A){this.get_events().addHandler("pluginFullScreenChanged",A)},remove_pluginFullScreenChanged:function(A){this.get_events().removeHandler("pluginFullScreenChanged",A)},add_pluginLoaded:function(A){this.get_events().addHandler("pluginLoaded",A)},remove_pluginLoaded:function(A){this.get_events().removeHandler("pluginLoaded",A)},add_pluginResized:function(A){this.get_events().addHandler("pluginResized",A)},remove_pluginResized:function(A){this.get_events().removeHandler("pluginResized",A)},get_scaleMode:function(){return this._scaleMode},set_scaleMode:function(A){if(A!==this.get_scaleMode()){this._scaleMode=A;if(this._loaded){this._ensureTransform()}}},get_source:function(){return this._source||""},set_source:function(A){this._source=A;if(A&&this._setOnLoad){this.get_element().Source=A}},addEventListener:function(A,B,C){var D=A.addEventListener(B,C),E=this._getEventsForElement(A,true);E[E.length]={eventName:B,token:D};return D},dispose:function(){if(this._loaded){this.pluginDispose();this._loaded=false}var J=this.get_element();if(J){if(this._setOnLoad){J.OnLoad=null}if(this._setOnError){J.OnError=null}if(this._setOnFullScreenChange){J.content.OnFullScreenChange=null}if(this._setOnResize){J.content.OnResize=null}}var I=this._boundEvents;if(I){for(var H=0,B=I.length;H<B;H++){var D=I[H],C=D.element,F=D.events;for(var G=0,A=F.length;G<A;G++){var E=F[G];C.removeEventListener(E.eventName,E.token)}}this._boundEvents=null}Sys.UI.Silverlight.Control.callBaseMethod(this,"dispose")},_ensureTransform:function(){var A=this.get_element().content.root,B=Sys.UI.Silverlight.Control._computeScale(A,this.get_scaleMode());Sys.UI.Silverlight.Control._applyMatrix(A,B.horizontal,B.vertical,0,0)},_findObject:function(D){if(this._isSilverlight(D)){return D}var B,C,A,E=D.getElementsByTagName("object");for(B=0,C=E.length;B<C;B++){A=E[B];if(this._isSilverlight(A)){return A}}E=D.getElementsByTagName("embed");for(B=0,C=E.length;B<C;B++){A=E[B];if(this._isSilverlight(A)){return A}}return null},_getEventsForElement:function(E,D){var A,B=this._boundEvents;if(!B){this._boundEvents=B=[]}for(var F=0,C=B.length;F<C;F++){A=B[F];if(A.element===E){return A.events}}if(!D){return null}A={element:E,events:[]};B[B.length]=A;return A.events},initialize:function(){Sys.UI.Silverlight.Control.callBaseMethod(this,"initialize");var B=this.get_element();if(this._isSilverlight(B)){if(!B.OnError){B.OnError=Function.createDelegate(this,this._pluginError);this._setOnError=true}if(B.IsLoaded){this._pluginLoaded()}else{B.OnLoad=Function.createDelegate(this,this._pluginLoaded);this._setOnLoad=true;if(!B.Source){var A=this.get_source();if(A){B.Source=A}}}}},_isSilverlight:function(B){if(!B){return false}var A=B.tagName.toLowerCase();if(A==="object"||A==="embed"){var C=B.type?B.type.toLowerCase():"";if(C.indexOf("application/x-silverlight")===0||C.indexOf("application/silverlight")===0){B.innerHTML;return !!B.settings}}},_onFullScreen:function(){if(!this.get_element()){return }this.onPluginFullScreenChanged(Sys.EventArgs.Empty);this._raiseEvent("pluginFullScreenChanged")},onPluginError:function(){},onPluginFullScreenChanged:function(){},onPluginLoaded:function(){},onPluginResized:function(){if(this.get_scaleMode()!==Sys.UI.Silverlight.ScaleMode.none){this._ensureTransform()}},_onResize:function(){if(!this.get_element()){return }this.onPluginResized(Sys.EventArgs.Empty);this._raiseEvent("pluginResized")},pluginDispose:function(){},_pluginError:function(C,A){if(!this.get_element()){return }var B=new Sys.UI.Silverlight.ErrorEventArgs(A);this.onPluginError(B);if(!B.get_cancel()){this._raiseEvent("pluginError",B)}},_pluginLoaded:function(){var A=this.get_element();if(A){if(!A.content.OnFullScreenChange){A.content.OnFullScreenChange=Function.createDelegate(this,this._onFullScreen);this._setOnFullScreenChange=true}if(!A.content.OnResize){A.content.OnResize=Function.createDelegate(this,this._onResize);this._setOnResize=true}this._raisepluginLoaded();this._onResize()}},_raiseEvent:function(C,A){var B=this.get_events().getHandler(C);if(B){B(this,A||Sys.EventArgs.Empty)}},_raisepluginLoaded:function(){this._loaded=true;this.onPluginLoaded(Sys.EventArgs.Empty);this._raiseEvent("pluginLoaded")},removeEventListener:function(F,G,E){F.removeEventListener(G,E);var B=this._getEventsForElement(F,false);if(!B){return }for(var A=0,C=B.length;A<C;A++){var D=B[A];if(D.token===E&&D.eventName===G){Array.removeAt(B,A);return }}}};Sys.UI.Silverlight.Control._computeScale=function(A,F){if(F===Sys.UI.Silverlight.ScaleMode.none){return{horizontal:1,vertical:1}}var D=A.width,E=A.height,C=A.getHost(),B={horizontal:D?C.content.ActualWidth/D:0,vertical:E?C.content.ActualHeight/E:0};if(F===Sys.UI.Silverlight.ScaleMode.zoom){B.horizontal=B.vertical=Math.min(B.horizontal,B.vertical)}return B};Sys.UI.Silverlight.Control._applyMatrix=function(A,D,C,F,E){var B=A.RenderTransform;if(!B){A.RenderTransform=B=A.getHost().content.createFromXaml('<MatrixTransform Matrix="1,0 0,1 0,0"/>')}var G={horizontal:B.Matrix.M11,vertical:B.Matrix.M22};B.Matrix.M11=D;B.Matrix.M22=C;B.Matrix.OffsetX=F;B.Matrix.OffsetY=E;return G};Sys.UI.Silverlight.Control.createObject=function(B,A){document.getElementById(B).innerHTML=A};Sys.UI.Silverlight.Control.registerClass("Sys.UI.Silverlight.Control",Sys.UI.Control);Sys.UI.Silverlight.ErrorEventArgs=function(A){this._error=A;Sys.UI.Silverlight.ErrorEventArgs.initializeBase(this)};Sys.UI.Silverlight.ErrorEventArgs.prototype={get_error:function(){return this._error}};Sys.UI.Silverlight.ErrorEventArgs.registerClass("Sys.UI.Silverlight.ErrorEventArgs",Sys.CancelEventArgs);Sys.UI.Silverlight.ScaleMode=function(){throw Error.notImplemented()};Sys.UI.Silverlight.ScaleMode.prototype={none:0,zoom:1,stretch:2};Sys.UI.Silverlight.ScaleMode.registerEnum("Sys.UI.Silverlight.ScaleMode");