//---------------------------------------------------------- // BasePlayer.js Type.registerNamespace("Eme.UI.Xaml"); Eme.UI.Xaml.scriptVersion = "1.0.070606.0"; Eme.UI.Xaml.ScaleMode = function() { throw Error.notImplemented()}; Eme.UI.Xaml.ScaleMode.prototype = { none : 0, zoom : 1, stretch : 2}; Eme.UI.Xaml.ScaleMode.registerEnum("Eme.UI.Xaml.ScaleMode"); Eme.UI.Xaml.Control = function(a) { Eme.UI.Xaml.Control.initializeBase(this, [a])}; Eme.UI.Xaml.Control.prototype = { _xamlSource : null, _xamlInitialized : false, _scaleMode : Eme.UI.Xaml.ScaleMode.none, _resizeDelegate : null, add_xamlError : function(a) { this.get_events().addHandler("xamlError", a)} , remove_xamlError : function(a) { this.get_events().removeHandler("xamlError", a)} , add_resize : function(a) { this.get_events().addHandler("resize", a)} , remove_resize : function(a) { this.get_events().removeHandler("resize", a)} , add_xamlInitialized : function(a) { this.get_events().addHandler("xamlInitialized", a)} , remove_xamlInitialized : function(a) { this.get_events().removeHandler("xamlInitialized", a)} , get_scaleMode : function() { return this._scaleMode} , set_scaleMode : function(a) { this._scaleMode = a; if(this._xamlInitialized && a !== Eme.UI.Xaml.ScaleMode.none)this._ensureTransform()} , get_xamlSource : function() { return this._xamlSource || ""} , set_xamlSource : function(a) { this._xamlSource = a} , dispose : function() { var a = this.get_element(); if(a) { if(this._resizeDelegate) { a.content.onResize = null; this._resizeDelegate = null} a.OnLoad = null; a.OnError = null} if(this._xamlInitialized) { this.xamlDispose(); this._xamlInitialized = false} Eme.UI.Xaml.Control.callBaseMethod(this, "dispose")} , initialize : function() { Eme.UI.Xaml.Control.callBaseMethod(this, "initialize"); var a = this.get_element(); a.OnError = Function.createDelegate(this, this._xamlError); var b = this.get_xamlSource(); if(b && (typeof a.Source === "undefined" || a.Source !== b)) { a.OnLoad = Function.createDelegate(this, this._xamlLoaded); a.Source = b} else this._raiseXamlInitialize()} , onResize : function() { } , onXamlError : function() { } , xamlDispose : function() { } , xamlInitialize : function() { } , _ensureTransform : function() { var b = this.get_element().content.root, a = Eme.UI.Xaml.Control._computeScale(b), c, d; if(this.get_scaleMode() === Eme.UI.Xaml.ScaleMode.zoom)c = d = Math.min(a.horizontal, a.vertical); else { c = a.horizontal; d = a.vertical} Eme.UI.Xaml.Control._ensureScale(b, c, d); if(!this._resizeDelegate) { this._resizeDelegate = Function.createDelegate(this, this._onResize); b.getHost().content.onResize = this._resizeDelegate} } , _onResize : function() { var c = this.get_element(); if(c && this.get_scaleMode() !== Eme.UI.Xaml.ScaleMode.none) { this._ensureTransform(); var b = Sys.EventArgs.Empty; this.onResize(b); var a = this.get_events().getHandler("resize"); if(a)a(this, b)} } , _raiseXamlError : function(c, a) { this.onXamlError(a); if(!a.get_cancel()) { var b = this.get_events().getHandler("xamlError"); if(b)b(this, a)} } , _raiseXamlInitialize : function() { if(this.get_scaleMode() !== Eme.UI.Xaml.ScaleMode.none)this._ensureTransform(); this._xamlInitialized = true; this.xamlInitialize(); var a = this.get_events().getHandler("xamlInitialized"); if(a)a(this, Sys.EventArgs.Empty)} , _xamlError : function(b, c) { var a = this.get_element(); if(a)this._raiseXamlError(b, new Eme.UI.Xaml.ErrorEventArgs(c))} , _xamlLoaded : function() { var a = this.get_element(); if(a) { a.OnLoad = null; this._raiseXamlInitialize()} } }; Eme.UI.Xaml.Control._computeScale = function(a) { var c = a.width, b = a.height, d = a.getHost(), e = c ? d.content.ActualWidth / c : 0, f = b ? d.content.ActualHeight / b : 0; return { horizontal : e, vertical : f} }; Eme.UI.Xaml.Control._ensureScale = function(b, c, d) { var a = b.RenderTransform; if(!a)b.RenderTransform = a = b.getHost().content.createFromXaml(''); a.ScaleX = c; a.ScaleY = d}; Eme.UI.Xaml.Control.registerClass("Eme.UI.Xaml.Control", Sys.UI.Control); Eme.UI.Xaml.ErrorEventArgs = function(a) { this._xamlError = a; Eme.UI.Xaml.ErrorEventArgs.initializeBase(this)}; Eme.UI.Xaml.ErrorEventArgs.prototype = { _xamlError : null, get_error : function() { return this._xamlError} }; Eme.UI.Xaml.ErrorEventArgs.registerClass("Eme.UI.Xaml.ErrorEventArgs", Sys.CancelEventArgs); Type.registerNamespace("Eme.UI.Xaml.Media"); Eme.UI.Xaml.Media.PlayerElementName = { videoWindow : "VideoWindow", placeholderImage : "PlaceholderImage", playerControls : "PlayerControls", playButton : "PlayButton", playPauseButton : "PlayPauseButton", playSymbol : "PlaySymbol", pauseSymbol : "PauseSymbol", stopButton : "StopButton", pauseButton : "PauseButton", nextButton : "NextButton", previousButton : "PreviousButton", muteButton : "MuteButton", muteOnSymbol : "MuteOnSymbol", muteOffSymbol : "MuteOffSymbol", timeSlider : "TimeSlider", timeThumb : "TimeThumb", timeCompleted : "TimeCompleted", volumeSlider : "VolumeSlider", volumeThumb : "VolumeThumb", volumeUpButton : "VolumeUpButton", volumeDownButton : "VolumeDownButton", totalTimeText : "TotalTimeText", currentTimeText : "CurrentTimeText", downloadSlider : "DownloadProgressSlider", downloadText : "DownloadProgressText", bufferingArea : "BufferingArea", bufferingText : "BufferingText", fullScreenButton : "FullScreenButton", chapterArea : "ChapterArea", chapterToggleButton : "ChapterToggleButton", chapterScroll : "ChapterScroll", chapterPrev : "ChapterScrollPrevious", chapterNext : "ChapterScrollNext", chapterItem : "ChapterScrollItem", captionText : "CaptionText", captionArea : "CaptionArea", captionToggleButton : "CaptionToggleButton", captionOnSymbol : "CaptionOnSymbol", captionOffSymbol : "CaptionOffSymbol", fullScreenArea : "FullScreenArea", fullScreenCaptionText : "FullScreenCaptionText", fullScreenCaptionArea : "FullScreenCaptionArea"}; Eme.UI.Xaml.Media._DomElement = function(b, a) { this._control = b.content.findName(a); if(this._control) { this.bindEvent("mouseEnter", a + "_MouseEnter"); this.bindEvent("mouseLeave", a + "_MouseLeave"); this._showAnimation = this._control.findName(a + "_Show"); this._hideAnimation = this._control.findName(a + "_Hide"); this._enableAnimation = this._control.findName(a + "_Enable"); this._disableAnimation = this._control.findName(a + "_Disable")} }; Eme.UI.Xaml.Media._DomElement.prototype = { _control : null, _boundEvents : null, _showAnimation : null, _hideAnimation : null, _enableAnimation : null, _disableAnimation : null, _enabled : true, get_control : function() { return this._control} , get_enabled : function() { return this._enabled} , set_enabled : function(a) { if(a !== this.get_enabled()) { var b = a ? this._enableAnimation : this._disableAnimation; if(b)b.begin(); this._enabled = a} } , bindEvent : function(d, c, a, e) { if(c || a) { var b = null; if(c)b = this._control.findName(c); if(!b &&!a)return; if(!this._boundEvents)this._boundEvents = []; if(a)a = Function.createDelegate(e || this, a); var g = this; function f(c, d) { if(!g.get_enabled())return; if(a &&!a(c, d))return; if(b)b.begin()} var h = this._control.addEventListener(d, f); this._boundEvents[this._boundEvents.length] = { eventName : d, token : h} } } , dispose : function() { if(this._control) { if(this._boundEvents) { for(var a = 0, c = this._boundEvents.length; a < c; a++) { var b = this._boundEvents[a]; this._control.removeEventListener(b.eventName, b.token)} this._boundEvents = null} this._showAnimation = null; this._hideAnimation = null; this._enableAnimation = null; this._disableAnimation = null; this._control = null} } , setVisible : function(a) { var b = a ? this._showAnimation : this._hideAnimation; if(b)b.begin(); else if(this._control)this._control.visibility = a ? 0 : 1} }; Eme.UI.Xaml.Media._DomElement.registerClass("Eme.UI.Xaml.Media._DomElement", null, Sys.IDisposable); Eme.UI.Xaml.Media._Button = function(h, a, e, g, c, b, f) { Eme.UI.Xaml.Media._Button.initializeBase(this, [h, a]); this._repeatInterval = e || 0; var d = this.get_control(); if(d) { d.cursor = "Hand"; this.bindEvent("mouseLeftButtonDown", a + "_MouseDown", this._mouseDown); this.bindEvent("mouseLeftButtonUp", a + "_MouseUp", this._mouseUp); this.bindEvent("mouseLeave", a + "_MouseUp", this._mouseLeave)} if(b) { this._requiresSender =!!f; this._clickDelegate = Function.createDelegate(b, g); if(c)this._doubleClickDelegate = Function.createDelegate(b, c)} }; Eme.UI.Xaml.Media._Button.prototype = { _down : false, _repeatInterval : 0, _repeatTimeout : null, _repeatClickDelegate : null, _timeLastLeftButtonUp : 0, _clickDelegate : null, _doubleClickDelegate : null, set_enabled : function(a) { Eme.UI.Xaml.Media._Button.callBaseMethod(this, "set_enabled", [a]); var b = this.get_control(); if(b)b.cursor = a ? "Hand" : "Default"} , dispose : function() { this._cancelRepeat(); this._clickDelegate = null; this._doubleClickDelegate = null; Eme.UI.Xaml.Media._Button.callBaseMethod(this, "dispose")} , _cancelRepeat : function() { if(!this._repeatTimeout)return; window.clearTimeout(this._repeatTimeout); this._repeatTimeout = null; this._repeatClickDelegate = null} , _doClick : function(a) { if(a && this._doubleClickDelegate)this._requiresSender ? this._doubleClickDelegate(this) : this._doubleClickDelegate(); else if(this._clickDelegate)this._requiresSender ? this._clickDelegate(this) : this._clickDelegate()} , _mouseDown : function() { this._down = true; if(this._repeatInterval &&!this._repeatTimeout) { this._doClick(false); this._repeatClickDelegate = Function.createDelegate(this, this._repeatClick); this._repeatTimeout = window.setTimeout(this._repeatClickDelegate, this._repeatInterval)} return true} , _mouseLeave : function() { if(!this._down)return false; this._down = false; this._cancelRepeat(); return true} , _mouseUp : function() { this._down = false; if(this._repeatTimeout)this._cancelRepeat(); else { var b = (new Date).getTime(), c = this._timeLastLeftButtonUp; this._timeLastLeftButtonUp = b; var a = c && b - c < 300; if(a)this._timeLastLeftButtonUp = 0; this._doClick(a)} return true} , _repeatClick : function() { this._repeatTimeout = window.setTimeout(this._repeatClickDelegate, this._repeatInterval); this._doClick(false)} }; Eme.UI.Xaml.Media._Button.registerClass("Eme.UI.Xaml.Media._Button", Eme.UI.Xaml.Media._DomElement); Eme.UI.Xaml.Media.Player = function(a) { Eme.UI.Xaml.Media.Player.initializeBase(this, [a]); this.set_scaleMode(Eme.UI.Xaml.ScaleMode.zoom)}; Eme.UI.Xaml.Media.Player.prototype = { _mediaEnded : false, _naturalduration : null, _domElements : null, _timerCookie : null, _mediaOpened : true, _autoPlay : null, _canSeek : true, _hasDuration : true, _caption : null, _chapters : null, _currentChapter :- 1, _lastChapterStarted :- 1, _nextChapterTime :- 1, _currentChapterTime :- 1, _enableCaptions : true, _toggledCaptions : true, _mediaMarkers : null, _mediaUrl : null, _muted : null, _placeholderImage : null, _imageElement : null, _volume : null, _chaptersActive : false, _bufferingProgressVisible : false, _bufferingProgress : null, _bufferingStoryboard : null, _bufferingText : null, _captionButton : null, _captionArea : null, _captionAreaFS : null, _chapterArea : null, _currentTimeText : null, _downloadProgress : null, _dragTime : null, _dragVolume : null, _mediaElement : null, _muteButton : null, _nextButton : null, _playPauseButton : null, _playButton : null, _pauseButton : null, _stopButton : null, _previousButton : null, _totalTimeText : null, add_chapterStarted : function(a) { this.get_events().addHandler("chapterStarted", a)} , remove_chapterStarted : function(a) { this.get_events().removeHandler("chapterStarted", a)} , add_markerReached : function(a) { this.get_events().addHandler("markerReached", a)} , remove_markerReached : function(a) { this.get_events().removeHandler("markerReached", a)} , add_mediaEnded : function(a) { this.get_events().addHandler("mediaEnded", a)} , remove_mediaEnded : function(a) { this.get_events().removeHandler("mediaEnded", a)} , add_mediaFailed : function(a) { this.get_events().addHandler("mediaFailed", a)} , remove_mediaFailed : function(a) { this.get_events().removeHandler("mediaFailed", a)} , add_mediaOpened : function(a) { this.get_events().addHandler("mediaOpened", a)} , remove_mediaOpened : function(a) { this.get_events().removeHandler("mediaOpened", a)} , add_stateChanged : function(a) { this.get_events().addHandler("stateChanged", a)} , remove_stateChanged : function(a) { this.get_events().removeHandler("stateChanged", a)} , add_volumeChanged : function(a) { this.get_events().addHandler("volumeChanged", a)} , remove_volumeChanged : function(a) { this.get_events().removeHandler("volumeChanged", a)} , get_autoPlay : function() { if(this._mediaElement)return this._mediaElement.AutoPlay; if(this._autoPlay !== null)return this._autoPlay; return false} , set_autoPlay : function(a) { if(this._mediaElement)this._mediaElement.AutoPlay = a; else this._autoPlay = a} , get_caption : function() { return this._caption || ""} , set_caption : function(a) { this._caption = a; if(this._captionArea)this._captionArea.set_text(a); if(this._captionAreaFS)this._captionAreaFS.set_text(a)} , get_chapters : function() { if(!this._chapters)return []; return Array.clone(this._chapters)} , set_chapters : function(a) { this._chapters = a; if(this._chapterArea)this._loadChapters(a)} , get_currentChapter : function() { return this._currentChapter} , set_currentChapter : function(a) { var b = this.get_chapters(); if(!b || a < 0 || a >= b.length)throw Error.argumentOutOfRange("currentChapter", a, Eme.UI.Xaml.Media.Res.invalidChapterIndex); var c = b[a].time; if(c !==- 1)this.set_timeIndex(c)} , get_enableCaptions : function() { return this._enableCaptions || true} , set_enableCaptions : function(a) { if(this._enableCaptions !== a) { this._enableCaptions = a; if(!a) { if(this._captionArea)this._captionArea.setVisible(false); if(this._captionAreaFS)this._captionAreaFS.setVisible(false)} else { var b = this.get_caption(); if(this._captionArea)this._captionArea.set_text(b); if(this._captionAreaFS)this._captionAreaFS.set_text(b)} } } , get_mediaMarkers : function() { if(!this._mediaMarkers)return []; return Array.clone(this._mediaMarkers)} , get_mediaElement : function() { return this._mediaElement || null} , get_mediaUrl : function() { if(this._mediaElement)return this._mediaElement.Source || ""; return this._mediaUrl || ""} , set_mediaUrl : function(a) { if(this._mediaElement) { this._loadPlaceholderImage(); this._loadMediaUrl(a)} else this._mediaUrl = a} , get_muted : function() { if(this._mediaElement)return this._mediaElement.IsMuted; return !!this._muted} , set_muted : function(a) { if(a !== this.get_muted()) { if(this._mediaElement) { this._mediaElement.IsMuted = a; this._muteButton.set_state(a ? 1 : 0)} else this._muted = a; if(!this.get_isUpdating())this._raiseVolumeChanged(Sys.EventArgs.Empty)} } , get_placeholderImage : function() { return this._placeholderImage || ""} , set_placeholderImage : function(a) { this._placeholderImage = a} , get_playState : function() { return this._mediaElement ? this._mediaElement.CurrentState : "Stopped"} , get_timeIndex : function() { return this._mediaElement ? this._mediaElement.position.seconds : 0} , set_timeIndex : function(a) { if(this._mediaElement && this._canSeek) { this.set_caption(""); a = Math.max(0, a); a = Math.min(this._naturalduration, a); var b = this._mediaElement.position; b.seconds = a; this._mediaElement.position = b; this._updateTime(a); this._currentChapter = this._getChapterAt(a, true); this._detectChapterChanged()} } , get_volume : function() { if(this._volume !== null)return this._volume; if(this._mediaElement)return this._mediaElement.volume; return Eme.UI.Xaml.Media.Player._defaultVolume} , set_volume : function(a) { if(a !== this.get_volume()) { if(this._mediaElement && this._mediaElement.CurrentState !== "Closed")this._mediaElement.volume = a; else this._volume = a; if(!this.get_isUpdating())this._raiseVolumeChanged(Sys.EventArgs.Empty)} if(this._dragVolume)this._dragVolume.set_value(a)} , nextChapter : function() { if(!this._canSeek)return false; var a = this.get_chapters(); if(a) { var b = this.get_currentChapter(); if(++b < a.length) { this.set_currentChapter(b); return true} } return false} , onChapterStarted : function() { } , onMarkerReached : function() { } , onPlayStateChanged : function() { } , onVolumeChanged : function() { } , pause : function() { if(!this._mediaElement)throw Error.invalidOperation(Eme.UI.Xaml.Media.Res.noMediaElement); if(!this._mediaOpened)return; this._mediaElement.pause()} , play : function() { if(!this._mediaElement)throw Error.invalidOperation(Eme.UI.Xaml.Media.Res.noMediaElement); if(!this._mediaOpened)return; this.set_caption(""); var a = this._mediaElement; if(this._mediaEnded) { a.stop(); this._mediaEnded = false; window.setTimeout(function() { a.play()} , 0)} else a.play()} , previousChapter : function() { if(!this._canSeek)return false; var b = this.get_chapters(); if(b) { var a = this.get_currentChapter(); if(--a >= 0) { this.set_currentChapter(a); return true} } return false} , stop : function() { if(!this._mediaElement)throw Error.invalidOperation(Eme.UI.Xaml.Media.Res.noMediaElement); if(!this._mediaOpened)return; this._mediaEnded = false; this._currentChapter = this._getChapterAt(0, true); this._mediaElement.stop(); this.set_caption("")} , toggleMuted : function() { var a =!this.get_muted(); this.set_muted(a); return a} , togglePlayPause : function() { this.get_playState() === "Playing" ? this.pause() : this.play(); return this.get_playState()} , xamlDispose : function() { if(this._timerCookie) { window.clearTimeout(this._timerCookie); this._timerCookie = null} if(this._domElements) { for(var a = 0, c = this._domElements.length; a < c; a++)this._domElements[a].dispose(); delete this._domElements} if(this._mediaElement)this._mediaElement.stop(); this._mediaElement = null; this._bufferingText = null; this._bufferingStoryboard = null; var b = this.get_element() ? this.get_element().content : null; if(b)b.onFullScreenChange = null; Eme.UI.Xaml.Media.Player.callBaseMethod(this, "xamlDispose")} , xamlInitialize : function() { this._bindChildControls(); Eme.UI.Xaml.Media.Player.callBaseMethod(this, "xamlInitialize"); var a = this.get_chapters(); if(a)this._loadChapters(a); if(this._mediaUrl === null) { this._ensureSeeking(false); this._mediaAvailable(false)} this._loadPlaceholderImage(); this._clearMediaCache()} , _bindChildControls : function() { var a = Eme.UI.Xaml.Media.PlayerElementName, b = this.get_element(), c = Eme.UI.Xaml.Media._Button, f = Eme.UI.Xaml.Media._DomElement, h = Eme.UI.Xaml.Media._Slider, g = Eme.UI.Xaml.Media._MultiStateButton, e = Eme.UI.Xaml.Media._TextBlock, d; this._domElements = [d = new c(b, a.videoWindow, null, this.togglePlayPause, this._onFullScreenME, this), this._fsCanvas = new c(b, a.fullScreenArea, null, this.togglePlayPause, this._onFullScreenME, this), this._bufferingProgress = new f(b, a.bufferingArea), new f(b, a.playerControls), this._playButton = new c(b, a.playButton, null, this.play, null, this), this._stopButton = new c(b, a.stopButton, null, this.stop, null, this), this._pauseButton = new c(b, a.pauseButton, null, this.pause, null, this), new c(b, a.volumeUpButton, 20, this._onVolumeUp, null, this), new c(b, a.volumeDownButton, 20, this._onVolumeDown, null, this), new c(b, a.fullScreenButton, null, this._onFullScreen, null, this), this._previousButton = new c(b, a.previousButton, null, this._chapterPrevious, null, this), this._nextButton = new c(b, a.nextButton, null, this._chapterNext, null, this), this._playPauseButton = new g(b, a.playPauseButton, null, this.togglePlayPause, null, this, a.playSymbol, a.pauseSymbol), this._muteButton = new g(b, a.muteButton, null, this.toggleMuted, null, this, a.muteOffSymbol, a.muteOnSymbol), this._dragTime = new h(b, a.timeThumb, a.timeSlider, this._onTimeSliderChanged, this), this._dragVolume = new h(b, a.volumeThumb, a.volumeSlider, this._onVolumeSliderChanged, this), this._totalTimeText = new e(b, a.totalTimeText), this._currentTimeText = new e(b, a.currentTimeText), this._downloadProgress = new Eme.UI.Xaml.Media._ProgressBar(b, a.downloadSlider, a.downloadText), this._chapterArea = new Eme.UI.Xaml.Media._ChapterArea(this), this._captionArea = new e(b, a.captionText, a.captionArea), this._captionAreaFS = new e(b, a.fullScreenCaptionText, a.fullScreenCaptionArea), this._captionButton = new g(b, a.captionToggleButton, null, this._onCaptionToggle, null, this, a.captionOnSymbol, a.captionOffSymbol), this._imageElement = new f(b, a.placeholderImage)]; d.bindEvent("mediaOpened", null, this._meMediaOpened, this); d.bindEvent("mediaFailed", null, this._meMediaFailed, this); d.bindEvent("mediaEnded", null, this._meMediaEnded, this); d.bindEvent("downloadProgressChanged", null, this._meDownloadProgress, this); d.bindEvent("bufferingProgressChanged", null, this._meBufferingProgress, this); d.bindEvent("markerReached", null, this._meMarkerReached, this); d.bindEvent("currentStateChanged", null, this._meStateChanged, this); this._bufferingStoryboard = b.content.findName(a.bufferingArea + "_Buffering"); this._bufferingText = b.content.findName(a.bufferingText); this._dragVolume.set_value(this.get_volume()); b.content.onFullScreenChange = Function.createDelegate(this, this._fullScreenChanged); this._mediaElement = d.get_control(); if(!this._mediaElement)throw Error.invalidOperation(Eme.UI.Xaml.Media.Res.noMediaElement); this._mediaElement.AutoPlay = false} , _chapterNext : function() { var a = this.get_chapters(); if(!a ||!a.length)this._skipTime(1); else this.nextChapter()} , _chapterPrevious : function() { var b = this.get_chapters(); if(!b ||!b.length)this._skipTime( - 1); else { var a = this._getChapterAt(this.get_timeIndex() - 1); if(a ===- 1)this.set_timeIndex(0); else this.set_currentChapter(a)} } , _clearMediaCache : function() { if(this._muted !== null) { this._mediaElement.IsMuted = this._muted; this._muteButton.set_state(this._muted ? 1 : 0); this._muted = null} if(this._volume !== null) { this._mediaElement.Volume = this._volume; this._dragVolume.set_value(this._volume); this._volume = null} if(this._autoPlay !== null) { this._mediaElement.AutoPlay = this._autoPlay; this._autoPlay = null} if(this._mediaUrl !== null) { this._loadMediaUrl(this._mediaUrl); this._mediaUrl = null} } , _detectChapterChanged : function(a) { if(this._lastChapterStarted !== this._currentChapter) { this._lastChapterStarted = this._currentChapter; this._raiseChapterStarted(new Eme.UI.Xaml.Media.ChapterEventArgs(this._currentChapter))} else if(this._nextChapterTime !==- 1 && a >= this._nextChapterTime || this._currentChapterTime !==- 1 && a < this._currentChapterTime) { this._currentChapter = this._getChapterAt(a, true); this._lastChapterStarted = this._currentChapter; this._raiseChapterStarted(new Eme.UI.Xaml.Media.ChapterEventArgs(this._currentChapter))} } , _enableBuffering : function(a, b) { if(a) { if(this._bufferingText) { this._bufferingText.Visibility = 0; this._bufferingText.Text = b.toString()} if(!this._bufferingProgressVisible) { this._bufferingProgress.setVisible(true); if(this._bufferingStoryboard)this._bufferingStoryboard.begin()} this._bufferingProgressVisible = true} else if(this._bufferingProgressVisible) { if(this._bufferingText)this._bufferingText.Visibility = 1; this._bufferingProgress.setVisible(false); if(this._bufferingStoryboard)this._bufferingStoryboard.stop(); this._bufferingProgressVisible = false} } , _ensureChapterArea : function() { var a = this._canSeek; if(a) { var b = this.get_chapters(); a = b && b.length} if(a &&!this._chaptersActive) { this._chapterArea.activate(); this._chaptersActive = true} else if(!a && this._chaptersActive) { this._chapterArea.deactivate(); this._chapterArea.setVisible(false); this._chaptersActive = false} } , _ensureSeeking : function(a) { if(this._canSeek !== a) { this._canSeek = a; this._previousButton.set_enabled(a); this._nextButton.set_enabled(a); this._ensureChapterArea(); this._dragTime.set_enableSeeking(a)} } , _ensureDuration : function(a) { if(this._hasDuration !== a) { this._hasDuration = a; this._totalTimeText.setVisible(a); this._currentTimeText.setVisible(a); this._dragTime.set_enabled(a)} } , _formatTime : function(e) { var b = Math.floor(e / (1000 * 60 * 60)), c = Math.floor(e / (1000 * 60)) - b * 60, d = Math.floor(e / 1000) - b * 60 * 60 - c * 60, a = ""; if(b > 0) { a = b < 10 ? "0" + b : "" + b; a += ":"} a += c < 10 ? "0" + c : "" + c; a += ":"; a += d < 10 ? "0" + d : "" + d; return a} , _fullScreenChanged : function() { var a = this._fsCanvas.get_control(); if(!a)return; if(this.get_element().content.fullScreen) { var b = this.get_element().content.root.RenderTransform, c = 1, d = 1; if(b && b.toString() === "ScaleTransform") { c = b.ScaleX; d = b.ScaleY} var e = Eme.UI.Xaml.Control._computeScale(a); Eme.UI.Xaml.Control._ensureScale(a, e.horizontal / c, e.vertical / d); a.Visibility = 0} else a.Visibility = 1} , _getChapterAt : function(d, e) { var b = this.get_chapters(), a =- 1; d += .001; if(b)for(var c = 0, f = b.length; c < f; c++) { var g = b[c].time; if(g <= d)a = c; else break} if(e) { this._currentChapterTime = a >= 0 ? b[a].time :- 1; this._nextChapterTime = a < b.length - 1 ? b[a + 1].time :- 1} return a} , _loadChapters : function(a) { this._ensureChapterArea(); this._chapterArea.setChapters(a); this._currentChapter = this._getChapterAt(this.get_timeIndex(), true); this._lastChapterStarted =- 1; this._detectChapterChanged()} , _loadMediaUrl : function(a) { this._currentChapter =- 1; this._lastChapterStarted =- 1; this._mediaElement.Source = a} , _loadPlaceholderImage : function() { var b = this.get_placeholderImage(); if(b) { var a = this._imageElement.get_control(); if(a) { a.Source = b; this._placeholderImageShowing = true; this._imageElement.setVisible(true)} } } , _onCaptionToggle : function() { this._toggledCaptions =!this._toggledCaptions; if(this.get_enableCaptions() &&!this._toggledCaptions)this.set_caption(""); this._captionButton.set_state(this._toggledCaptions ? 0 : 1)} , _onFullScreen : function() { var a = this.get_element().content; a.fullScreen =!a.fullScreen} , _onFullScreenME : function() { this.togglePlayPause(); this._onFullScreen()} , _onTimeSliderChanged : function() { this.set_timeIndex(this._dragTime.get_value() * this._naturalduration)} , _onVolumeDown : function() { this.set_volume(Math.max(0, this.get_volume() - .02))} , _onVolumeSliderChanged : function() { this.set_volume(this._dragVolume.get_value())} , _onVolumeUp : function() { this.set_volume(Math.min(1, this.get_volume() + .02))} , _mediaAvailable : function(a) { if(this._mediaOpened !== a) { this._mediaOpened = a; this._playPauseButton.set_enabled(a); this._playButton.set_enabled(a); this._pauseButton.set_enabled(a); this._stopButton.set_enabled(a); if(!a)this.set_caption("")} } , _meBufferingProgress : function() { var b = this._mediaElement.bufferingProgress, a = Math.round(b * 100); if(a >= 100)this._enableBuffering(false); else this._enableBuffering(true, a)} , _meDownloadProgress : function() { this._enableBuffering(false); this._downloadProgress.set_value(this._mediaElement.downloadProgress)} , _meMarkerReached : function(b, a) { this._raiseMarkerReached(new Eme.UI.Xaml.Media.MarkerEventArgs(a.marker))} , _meMediaEnded : function() { this._mediaEnded = true; this._raiseEvent("mediaEnded", Sys.EventArgs.Empty)} , _meMediaFailed : function() { this._naturalduration = null; this._enableBuffering(false); this._mediaAvailable(false); this._ensureDuration(false); this._ensureSeeking(false); this._mediaEnded = false; this._raiseEvent("mediaFailed", Sys.EventArgs.Empty)} , _meMediaOpened : function() { this._mediaEnded = false; this._clearMediaCache(); if(this._placeholderImageShowing) { this._imageElement.setVisible(false); this._placeholderImageShowing = false} this._markers = []; var d = this._mediaElement.Markers; for(var b = 0, e = d.Count; b < e; b++)Array.add(this._markers, d.getItem(b)); this._naturalduration = this._mediaElement.naturalduration.seconds; var a =!!this._naturalduration, c = a && this._mediaElement.CanSeek; if(c) { this._currentChapter = this._getChapterAt(0, true); this._lastChapterStarted =- 1; this._detectChapterChanged()} if(a) { this._totalTimeText.set_text(this._formatTime(this._naturalduration * 1000)); this._currentTimeText.set_text(this._formatTime(this.get_timeIndex() * 1000))} this._mediaAvailable(true); this._ensureDuration(a); this._ensureSeeking(c); if(!this._timerCookie) { this._tickTimerDelegate = Function.createDelegate(this, this._tickTimer); this._timerCookie = window.setTimeout(this._tickTimerDelegate, 100)} this._raiseEvent("mediaOpened", Sys.EventArgs.Empty)} , _meStateChanged : function() { var a = this.get_playState(); if(a === "Closed") { this._enableBuffering(false); this._mediaAvailable(false); this._ensureSeeking(false); this._mediaEnded = false} else if(a === "Playing" || a === "Paused")this._enableBuffering(false); var b = this._oldState || ""; if(a !== b) { this._oldState = a; this._raisePlayStateChanged(new Eme.UI.Xaml.Media.StateChangedEventArgs("playState", b, a))} } , _raiseChapterStarted : function(a) { this.onChapterStarted(a); this._raiseEvent("chapterStarted", a); this.raisePropertyChanged("currentChapter")} , _raiseEvent : function(c, b) { var a = this.get_events().getHandler(c); if(a)a(this, b)} , _raiseMarkerReached : function(b) { this.onMarkerReached(b); if(this.get_enableCaptions()) { var a = b.get_marker(), d = a.type ? a.type.toLowerCase() : ""; if(d === "caption" && this.get_enableCaptions() && this._toggledCaptions) { if(!this._enabledCaptionToggleButton) { this._enabledCaptionToggleButton = true; this._captionButton.setVisible(true)} var c = a.text ? a.text.trim() : ""; this.set_caption(c); this.raisePropertyChanged("caption")} } this._raiseEvent("markerReached", b)} , _raisePlayStateChanged : function(a) { this._playPauseButton.set_state(a.get_currentState() === "Playing" ? 1 : 0); this.onPlayStateChanged(a); this._raiseEvent("stateChanged", a); this._raiseEvent("propertyChanged", a)} , _raiseVolumeChanged : function(a) { this.onVolumeChanged(a); this._raiseEvent("volumeChanged", a); this.raisePropertyChanged("volume")} , _skipTime : function(b) { var a = this._naturalduration / 10; a = b * Math.max(5, a); var c = a + this.get_timeIndex(); this.set_timeIndex(c)} , _tickTimer : function() { this._timerCookie = window.setTimeout(this._tickTimerDelegate, 100); var a = this.get_timeIndex(); if(this._hasDuration) { if(!this._dragTime._isDragging)this._dragTime.set_value(a / this._naturalduration); this._updateTime(a)} if(this._canSeek)this._detectChapterChanged(a)} , _updateTime : function(a) { this._currentTimeText.set_text(this._formatTime(a * 1000))} }; Eme.UI.Xaml.Media.Player._defaultVolume = .5; Eme.UI.Xaml.Media.Player.registerClass("Eme.UI.Xaml.Media.Player", Eme.UI.Xaml.Control); Eme.UI.Xaml.Media.StateChangedEventArgs = function(c, a, b) { this._currentState = b; this._previousState = a; Eme.UI.Xaml.Media.StateChangedEventArgs.initializeBase(this, [c])}; Eme.UI.Xaml.Media.StateChangedEventArgs.prototype = { get_currentState : function() { return this._currentState || null} , get_previousState : function() { return this._previousState || null} }; Eme.UI.Xaml.Media.StateChangedEventArgs.registerClass("Eme.UI.Xaml.Media.StateChangedEventArgs", Sys.PropertyChangedEventArgs); Eme.UI.Xaml.Media.ChapterEventArgs = function(a) { this._chapterIndex = a; Eme.UI.Xaml.Media.ChapterEventArgs.initializeBase(this)}; Eme.UI.Xaml.Media.ChapterEventArgs.prototype = { get_chapterIndex : function() { return this._chapterIndex} }; Eme.UI.Xaml.Media.ChapterEventArgs.registerClass("Eme.UI.Xaml.Media.ChapterEventArgs", Sys.EventArgs); Eme.UI.Xaml.Media.MarkerEventArgs = function(a) { this._marker = a; Eme.UI.Xaml.Media.MarkerEventArgs.initializeBase(this)}; Eme.UI.Xaml.Media.MarkerEventArgs.prototype = { get_marker : function() { return this._marker || null} }; Eme.UI.Xaml.Media.MarkerEventArgs.registerClass("Eme.UI.Xaml.Media.MarkerEventArgs", Sys.EventArgs); Eme.UI.Xaml.Media._TextBlock = function(e, d, b) { Eme.UI.Xaml.Media._TextBlock.initializeBase(this, [e, d]); var c = this.get_control(); if(c && b) { var a = c.findName(b); if(a) { this._centerX = a["Canvas.Left"] + a.width / 2; this._bottomY = a["Canvas.Top"] + a.height; this._background = a} } }; Eme.UI.Xaml.Media._TextBlock.prototype = { _centerX : 0, _bottomY : 0, _background : null, get_backgroundControl : function() { return this._background || null} , get_text : function() { var a = this.get_control(); return a ? a.Text || "" : ""} , set_text : function(c) { var b = this.get_control(); if(b) { b.Text = c || ""; this.setVisible(!!c); var a = this.get_backgroundControl(); if(a) { var d = b.ActualWidth, e = b.ActualHeight; a["Canvas.Left"] = this._centerX - d / 2; a["Canvas.Top"] = this._bottomY - e; a.width = d; a.height = e} } } , dispose : function() { Eme.UI.Xaml.Media._TextBlock.callBaseMethod(this, "dispose"); this._background = null} , setVisible : function(a) { Eme.UI.Xaml.Media._TextBlock.callBaseMethod(this, "setVisible", [a]); var b = this.get_backgroundControl(); if(b)b.visibility = a ? 0 : 1} }; Eme.UI.Xaml.Media._TextBlock.registerClass("Eme.UI.Xaml.Media._TextBlock", Eme.UI.Xaml.Media._DomElement); Eme.UI.Xaml.Media._MultiStateButton = function(k, j, f, h, g, i) { Eme.UI.Xaml.Media._MultiStateButton.initializeBase(this, [k, j, f, h, g, i]); var c = arguments.length - 6; this._animationsOn = new Array(c); this._animationsOff = new Array(c); this._controls = new Array(c); var e = this.get_control(); for(var a = 0; a < c; a++) { var d = arguments[a + 6], b = e ? e.findName(d) : null; this._controls[a] = b || null; this._animationsOn[a] = b ? b.findName(d + "_Show") : null; this._animationsOff[a] = b ? b.findName(d + "_Hide") : null} }; Eme.UI.Xaml.Media._MultiStateButton.prototype = { _state : 0, _animationsOn : null, _animationsOff : null, _controls : null, get_state : function() { return this._state} , set_state : function(b) { if(b !== this._state) { var a = this._animationsOff[this._state]; if(a)a.begin(); else { var c = this._controls[this._state]; if(c)c.visibility = 1} this._state = b; a = this._animationsOn[this._state]; if(a)a.begin(); else { var d = this._controls[this._state]; if(d)d.visibility = 0} } } , dispose : function() { Eme.UI.Xaml.Media._MultiStateButton.callBaseMethod(this, "dispose"); this._animationsOn = null; this._animationsOff = null; this._controls = null; this._state = 0} }; Eme.UI.Xaml.Media._MultiStateButton.registerClass("Eme.UI.Xaml.Media._MultiStateButton", Eme.UI.Xaml.Media._Button); Eme.UI.Xaml.Media._ImageList = function(d, a) { Eme.UI.Xaml.Media._ImageList.initializeBase(this, [d, a]); var c = this.get_control(); if(!c)return; c.cursor = "Arrow"; this._scrollAnimationSB = c.findName(a + "_ScrollAnimationStoryboard"); if(this._scrollAnimationSB)this._scrollAnimation = c.findName(a + "_ScrollAnimation"); var b = this._scrollAnimation ? this._scrollAnimation.duration.seconds * 1000 : 200; b = Math.max(b, 200); this._scrollNext = new Eme.UI.Xaml.Media._Button(d, a + "_ScrollNext", b, this._scrollNextClick, null, this); this._scrollPrev = new Eme.UI.Xaml.Media._Button(d, a + "_ScrollPrevious", b, this._scrollPrevClick, null, this); this._findItems(a); this._virtualItems = []}; Eme.UI.Xaml.Media._ImageList.prototype = { _items : null, _virtualItems : null, _scrollNext : null, _scrollPrev : null, _scrollAnimation : null, _scrollAnimationSB : null, _itemSize : 0, _itemSpacing : 0, _overflowIndex : 0, get_items : function() { return this._virtualItems} , set_items : function(a) { this._virtualItems = Array.clone(a); this._reset(); this._assignImages()} , onItemClick : function() { } , _assignImages : function() { for(var b = 0, d = this._items.length; b < d; b++) { var a = this._items[b], c = this._itemOffset + b; if(c < this._virtualItems.length) { a.image.Source = this._virtualItems[c]; a.button.get_control().visibility = 0; a.button._virtualIndex = c} else a.button.get_control().visibility = 1} } , _findItems : function(b) { var a = this.get_control(), d = 1; this._items = []; var c = b + "_ScrollItem1", e = b + "_ScrollItem1_Image", h = a.findName(c), g = a.findName(e); while(h) { var i = new Eme.UI.Xaml.Media._Button(a.getHost(), c, null, this._itemClick, null, this, true); i._physicalIndex = d - 1; this._items[this._items.length] = { button : i, image : g}; d++; c = b + "_ScrollItem" + d; e = b + "_ScrollItem" + d + "_Image"; h = a.findName(c); g = a.findName(e)} if(this._items.length === 0)throw Error.invalidOperation("ImageList needs at least one scroll item."); var f = this._items[0].button.get_control(); this._itemSize = f.width; this._itemSpacing = f["Canvas.Left"] * 2} , _handleOverflow : function(c) { var d = c === 1 ? this._items.length - 1 :- 1, b = this._itemOffset + d, a = this._items[this._overflowIndex]; a.image.Source = this._virtualItems[b]; a.button._virtualIndex = b; var e = a.button.get_control(); e["Canvas.Left"] = b * (this._itemSize + this._itemSpacing) + this._itemSpacing / 2; this._overflowIndex += c; if(this._overflowIndex < 0)this._overflowIndex = this._items.length - 1; else if(this._overflowIndex >= this._items.length)this._overflowIndex = 0} , _itemClick : function(a) { this.onItemClick(a._virtualIndex)} , _reset : function() { this._itemOffset = 0; for(var a = 0, c = this._items.length; a < c; a++) { var b = this._items[a].button; b._virtualIndex = a; b.get_control()["Canvas.Left"] = a * (this._itemSize + this._itemSpacing) + this._itemSpacing / 2} this._overflowIndex = this._items.length - 1; if(this._scrollAnimation) { this._scrollAnimation.To = "0"; this._scrollAnimationSB.begin()} } , _scroll : function(a) { if(this._scrollAnimation) { this._handleOverflow(a); var b = this._itemOffset; this._itemOffset += a; this._scrollAnimation.From = "-" + b * (this._itemSize + this._itemSpacing); this._scrollAnimation.To = "-" + this._itemOffset * (this._itemSize + this._itemSpacing); this._scrollAnimationSB.begin()} else { this._itemOffset += a; this._assignImages()} } , _scrollNextClick : function() { if(this._itemOffset < this._virtualItems.length - this._items.length + 1)this._scroll(1)} , _scrollPrevClick : function() { if(this._itemOffset > 0)this._scroll( - 1)} , dispose : function() { if(this._scrollNext)this._scrollNext.dispose(); if(this._scrollPrev)this._scrollPrev.dispose(); this._scrollNext = null; this._scrollPrev = null; if(this._items) { for(var a = 0, c = this._items.length; a < c; a++) { var b = this._items[a].button; b.dispose()} this._items = null} this._virtualItems = null; this._itemSize = null; this._itemSpacing = null; this._scrollAnimation = null; this._scrollAnimationSB = null; Eme.UI.Xaml.Media._ImageList.callBaseMethod(this, "dispose")} }; Eme.UI.Xaml.Media._ImageList.registerClass("Eme.UI.Xaml.Media._ImageList", Eme.UI.Xaml.Media._DomElement); Eme.UI.Xaml.Media._ChapterArea = function(a) { this._player = a; var b = Eme.UI.Xaml.Media.PlayerElementName; Eme.UI.Xaml.Media._ChapterArea.initializeBase(this, [a.get_element(), b.chapterArea]); var c = this.get_control(); if(c)this._toggleButton = new Eme.UI.Xaml.Media._Button(a.get_element(), b.chapterToggleButton, null, this._onToggle, null, this)}; Eme.UI.Xaml.Media._ChapterArea.prototype = { _player : null, _visible : false, _toggleButton : null, activate : function() { var a = this.get_control(); if(!a)return; a.visibility = 0; this._toggleButton.setVisible(true)} , deactivate : function() { var a = this.get_control(); if(!a)return; a.visibility = 1; this._toggleButton.setVisible(false)} , dispose : function() { Eme.UI.Xaml.Media._ChapterArea.callBaseMethod(this, "dispose"); this._player = null; if(this._toggleButton)this._toggleButton.dispose(); this._toggleButton = null} , onItemClick : function(a) { this._player.set_currentChapter(this._imageChapters[a])} , setChapters : function(c) { if(!this.get_control())return; var b = []; if(c) { this._imageChapters = []; for(var a = 0, e = c.length; a < e; a++) { var d = c[a]; if(d.imageUrl) { this._imageChapters[this._imageChapters.length] = a; b[b.length] = d.imageUrl} } } this.set_items(b)} , _onToggle : function() { this._visible =!this._visible; this.setVisible(this._visible); var a = this.get_control(); if(a)a.IsHitTestVisible = this._visible} }; Eme.UI.Xaml.Media._ChapterArea.registerClass("Eme.UI.Xaml.Media._ChapterArea", Eme.UI.Xaml.Media._ImageList); Eme.UI.Xaml.Media._Slider = function(a, e, c, d, b) { Eme.UI.Xaml.Media._Slider.initializeBase(this, [a, c]); this._slider = this.get_control(); this._thumb = new Eme.UI.Xaml.Media._DomElement(a, e); this._thumbControl = this._thumb.get_control(); if(!this._thumbControl ||!this._slider)return; this._highlight = new Eme.UI.Xaml.Media._DomElement(a, c + "_Highlight"); this._highlightControl = this._highlight.get_control(); this._slider.cursor = "Hand"; this._thumbControl.cursor = "Hand"; this._thumb.bindEvent("mouseLeftButtonDown", null, this._thumbMouseLeftButtonDown, this); this._thumb.bindEvent("mouseLeftButtonUp", null, this._thumbMouseLeftButtonUp, this); this._thumb.bindEvent("mouseMove", null, this._thumbMouseMove, this); this.bindEvent("mouseLeftButtonDown", null, this._sliderLeftButtonDown, this); this._rootToken = this._slider.getHost().content.root.addEventListener("mouseLeave", Function.createDelegate(this, this._cancelDragging)); this._isHorizontal = this._slider.width >= this._slider.height; if(this._highlightControl)this._highlightControl[this._isHorizontal ? "width" : "height"] = 0; if(b)this._changedHandler = Function.createDelegate(b, d)}; Eme.UI.Xaml.Media._Slider.prototype = { _slider : null, _thumb : null, _thumbControl : null, _enableSeeking : true, _highlight : null, _highlightControl : null, _isDragging : false, _isHorizontal : true, _rootToken : null, set_enabled : function(a) { if(this.get_enabled() !== a) { Eme.UI.Xaml.Media._Slider.callBaseMethod(this, "set_enabled", [a]); this._highlight.set_enabled(a); this._thumb.setVisible(a); if(this._thumbControl)this._thumbControl.cursor = a ? "Hand" : "Default"; if(!a)this.set_value(0); if(this._slider)this._slider.cursor = a ? "Hand" : "Default"} } , get_enableSeeking : function() { return !!this._enableSeeking} , set_enableSeeking : function(a) { if(this._enableSeeking !== a) { this._enableSeeking = a; if(!a)this._cancelDragging()} } , get_value : function() { if(!this._thumbControl ||!this._slider)return 0; var a; if(this._isHorizontal) { a = this._thumbControl["Canvas.Left"] - this._slider["Canvas.Left"]; a = a / (this._slider.width - this._thumbControl.width)} else { a = this._thumbControl["Canvas.Top"] - this._slider["Canvas.Top"] + this._thumbControl.height / 2; a = 1 - a / this._slider.height} a = Math.round(a * 1000) / 1000; return Math.min(1, Math.max(0, a))} , set_value : function(a) { a = Math.min(1, Math.max(0, a)); this._setThumbPosition(a)} , dispose : function() { if(this._highlight)this._highlight.dispose(); if(this._thumb)this._thumb.dispose(); this._changedHandler = null; if(this._rootToken)this._slider.getHost().content.root.removeEventListener("mouseLeave", this._rootToken); this._slider = null; this._thumb = null; this._thumbControl = null; this._rootToken = null; this._highlight = null; this._highlightControl = null; Eme.UI.Xaml.Media._Slider.callBaseMethod(this, "dispose")} , _cancelDragging : function() { if(this._isDragging) { this._isDragging = false; this._thumbControl.ReleaseMouseCapture()} } , _setThumbPosition : function(b) { if(this._thumbControl && this._slider) { var a = this._toLocation(b); if(this._isHorizontal) { this._thumbControl["Canvas.Left"] = this._slider["Canvas.Left"] + a - this._thumbControl.width / 2; if(this._highlightControl)this._highlightControl.width = a + this._thumbControl.width / 2} else { this._thumbControl["Canvas.Top"] = this._slider["Canvas.Top"] + a - this._thumbControl.height / 2; if(this._highlightControl) { this._highlightControl["Canvas.Top"] = this._thumbControl["Canvas.Top"] + this._thumbControl.height / 2; this._highlightControl.height = b * (this._slider.height - this._thumbControl.height) - this._thumbControl.height / 2} } } } , _sliderLeftButtonDown : function(c, a) { if(!this._enableSeeking)return false; var b = this._toValue(a.getPosition(c)); this._setThumbPosition(b); if(this._changedHandler)this._changedHandler(); if(this._thumbControl) { this._isDragging = true; this._thumbControl.CaptureMouse()} return true} , _thumbMouseLeftButtonDown : function() { if(!this._enableSeeking)return false; this._isDragging = true; this._thumbControl.CaptureMouse(); return true} , _thumbMouseLeftButtonUp : function() { if(!this._enableSeeking)return false; this._isDragging = false; this._thumbControl.ReleaseMouseCapture(); if(this._changedHandler)this._changedHandler(); return true} , _thumbMouseMove : function(b, a) { if(this._isDragging) { this._setThumbPosition(this._toValue(a.getPosition(this._slider))); //if(this._changedHandler)this._changedHandler() } return true} , _toValue : function(b) { var a; if(this._isHorizontal)a = (b.X - this._thumbControl.width / 2) / (this._slider.width - this._thumbControl.width); else { a = (b.Y - this._thumbControl.height / 2) / (this._slider.height - this._thumbControl.height); a = 1 - a} return Math.min(1, Math.max(0, a))} , _toLocation : function(a) { a = Math.min(1, Math.max(0, a)); if(this._isHorizontal)return a * (this._slider.width - this._thumbControl.width) + this._thumbControl.width / 2; else { var b = this._slider.height - this._thumbControl.height; return b - a * b + this._thumbControl.height / 2} } }; Eme.UI.Xaml.Media._Slider.registerClass("Eme.UI.Xaml.Media._Slider", Eme.UI.Xaml.Media._DomElement); Eme.UI.Xaml.Media._ProgressBar = function(c, d, b) { Eme.UI.Xaml.Media._ProgressBar.initializeBase(this, [c, d]); var a = this.get_control(); if(a) { this._originalWidth = a.width; a.width = 0} if(b) { this._xamlText = new Eme.UI.Xaml.Media._TextBlock(c, b); this._xamlText.set_text("")} }; Eme.UI.Xaml.Media._ProgressBar.prototype = { _xamlText : null, _originalWidth : 0, get_value : function() { var a = this.get_control(); if(!a)return 0; return a.width / this._originalWidth} , set_value : function(a) { var b = this.get_control(); if(b)b.width = this._originalWidth * a; this._xamlText.set_text("" + Math.floor(a * 100))} , setVisible : function(a) { Eme.UI.Xaml.Media._ProgressBar.callBaseMethod(this, "setVisible", [a]); if(this._xamlText)this._xamlText.setVisible(a)} , dispose : function() { Eme.UI.Xaml.Media._ProgressBar.callBaseMethod(this, "dispose"); if(this._xamlText) { this._xamlText.dispose(); this._xamlText = null} } }; Eme.UI.Xaml.Media._ProgressBar.registerClass("Eme.UI.Xaml.Media._ProgressBar", Eme.UI.Xaml.Media._DomElement); Type.registerNamespace("EmePlayer"); EmePlayer.UrlParam = { startTime : "startTime", chapter : "chapter", loopCount : "loopCount", mediaUrl : "mediaUrl", volume : "volume", muted : "muted", duration : "duration", autoplay : "autoplay", mediainfo : "mediainfo"}; EmePlayer.Player = function(a) { EmePlayer.Player.initializeBase(this, [a]); this._fInitialized = false}; EmePlayer.Player.prototype = { initialize : function() { EmePlayer.Player.callBaseMethod(this, "initialize"); this.set_autoPlay($getArgument(EmePlayer.UrlParam.autoplay, this.get_autoPlay().toString()) === "true"); this.set_mediaUrl($getArgument(EmePlayer.UrlParam.mediaUrl, this.get_mediaUrl())); this.set_muted($getArgument(EmePlayer.UrlParam.muted, this.get_muted().toString()) === "true"); this.set_volume(parseFloat($getArgument(EmePlayer.UrlParam.volume, this.get_volume()))); this.set_timeIndex(parseFloat($getArgument(EmePlayer.UrlParam.startTime, this.get_timeIndex()))); this.set_mediainfo($getArgument(EmePlayer.UrlParam.mediainfo, this.get_mediainfo())); var a = $getArgument(EmePlayer.UrlParam.chapter); if(a !== "")this.set_currentChapter(parseInt(a)); if(this.get_mediainfo() !== "")this._initMediainfo(); this._fInitialized = true} , get_mediainfo : function() { return this._mediainfo} , set_mediainfo : function(a) { this._mediainfo = a; if(this._fInitialized)this._initMediainfo()} , _initMediainfo : function() { if(typeof this._mediainfo === "string") { var b = new Sys.Net.WebRequest; b.set_url(this._mediainfo); b.add_completed(Function.createDelegate(this, this._loadedMediainfo)); var a = new Sys.Net.XMLHttpExecutor; b.set_executor(a); a.executeRequest(); var c = a.get_started()} else if(typeof this._mediainfo === "function") { this.set_mediaUrl(this._mediainfo().mediaUrl); this.set_chapters(this._mediainfo().chapters); this.set_placeholderImage(this._mediainfo().placeholderImage)} else if(this._mediainfo.mediaUrl != null) { this.set_mediaUrl(this._mediainfo.mediaUrl); this.set_chapters(this._mediainfo.chapters); this.set_placeholderImage(this._mediainfo.placeholderImage)} else throw Error.invalidOperation("unknown type for mediainfo")} , _loadedMediainfo : function(executor, eventArgs) { if(executor.get_statusText() === "OK")try { eval("(" + executor.get_responseData() + ")"); var mediainfoJSON = mediainfo(); this.set_mediaUrl(mediainfoJSON.mediaUrl); this.set_chapters(mediainfoJSON.chapters); this.set_placeholderImage(mediainfoJSON.placeholderImage)} catch(a) { throw Error.invalidOperation("problem with mediainfo")} } }; EmePlayer.Player._playerCount = 0; EmePlayer.Player._getUniqueName = function(a) { return a + EmePlayer.Player._playerCount++}; EmePlayer.Player.registerClass("EmePlayer.Player", Eme.UI.Xaml.Media.Player); function $getArgument(g, b) { var f = window.location.search.substring(1), d = f.split("&"), e = g.toLowerCase(); for(var a = 0; a < d.length; a++) { var c = d[a].split("="); if(c[0].toLowerCase() === e)return unescape(c[1])} if(typeof b !== "undefined")return b; return ""};