Mediasite.namespace("MediaPlayer"),Mediasite.namespace("MediaPlayer.Views"),Mediasite.MediaPlayer.ModelHtml5=function(n){function isLivePresentation(){return!!lt}function detectFullScreen(n){f.Debug("Detecting fullscreen functionality..."),y=!1,typeof n.requestFullScreen=="function"?h=function(){try{return n.requestFullScreen(),!0}catch(t){f.Error("Fullscreen error",t)}}:typeof n.webkitEnterFullScreen=="function"?isLivePresentation()&&Mediasite.BrowserDetect.Android()?f.Debug("... not supporting fullscreen on Android for live stream"):h=function(){try{return n.webkitEnterFullScreen(),!0}catch(t){f.Error("Fullscreen error",t)}}:typeof n.mozFullScreen=="function"&&(h=function(){try{return document.mozRequestFullScreen(),!0}catch(n){f.Error("Fullscreen error",n)}}),typeof h=="function"&&(y=!0),f.Debug("... can fullscreen: "+y,h&&h.toString())}function getPausedState(){return isLivePresentation()?Mediasite.Player.MediaState.Stopped:Mediasite.Player.MediaState.Paused}function resetLiveMediaElement(){ht=!0;var n=i.GetVolume(),r=i.IsMuted();loadTheMediaSource();s(t).one("canplay",function(){t.play()});i.SetVolume(n),r&&i.Mute(),l&&i.SetVolume(0)}function reconnectOnLiveMediaOpenFailure(){resetLiveMediaElement()}function handleMediaError(){var r=recoverFromChromeNetworkError(),n;if(!r){switch(t.error.code){case 1:n="Media aborted";break;case 2:n="There was a network error loading the media";break;case 3:n="There was a media decoding error";break;case 4:n="The current media is not supported";break;default:n="Error ("+t.error.code+")"}i.raiseMediaError(n)}}function recoverFromChromeNetworkError(){var n,i;if(!rt||!(rt+1e41&&t.duration!=100&&(v=!0),f.Debug("Attempting to load media metadata.","Live status? "+(rt?"live":"on-demand"),"Media? "+(v?"ready":"not ready"),"media duration: "+t.duration),(y||!w)&&v&&setTimeout(function(){var n=getMediaInfo(t);p.UpdateMediaInfo(n),w||(w=!0,i.SetVolume(gt),r.fire(u.MediaLoaded,n))},100)),h.type==="durationchange"&&Mediasite.BrowserDetect.Android()&&w&&y&&(bt=getMediaInfo(),r.fire(u.MediaUpdated,bt));switch(h.type){case"volumechange":at=0,t.muted||(at=Math.round(i.GetVolume())),r.fire(u.VolumeChanged,at);break;case"ratechange":vt={Min:k[0],Max:k[k.length-1],Current:Math.round(i.GetPlaybackRate()*100)/100,Rates:s.extend([],k)},f.Debug("Playback rate now "+vt.Current),r.fire(u.PlaybackRateChanged,vt);break;case"playing":ht=!1,t.playbackRate=st,it.setMediaState(Mediasite.Player.MediaState.Playing),reportStateChanged(Mediasite.Player.MediaState.Playing),c.start(),isLivePresentation()&&(kt=new Date,g=kt-lt-39e3-t.currentTime*1e3,g=Math.max(0,g)),tt&&(r.fire(u.PositionChanged,ct,!0),tt=!1),ft=!1,dt++;break;case"pause":c.stop(),r.fire(u.PositionChanged,i.GetPosition()),reportStateChanged(getPausedState());break;case"seeking":r.fire(u.SeekStarting);break;case"seeked":r.fire(u.SeekEnding),ft=!1,et?et=!1:o=i.GetPosition();break;case"timeupdate":if(ft)return;if(wt=i.GetPosition(),n.isMainStream){var ii=new Date,ti=ii-ni,ri=ti*st,ui=o+ri,fi=Math.abs(wt-ui);if(o>0&&ti<5e3&&fi>5e3)return}tt||r.fire(u.PositionChanged,wt,!0);break;case"ended":a.handleMediaEnded(isLivePresentation()),c.stop(),r.fire(u.PositionChanged,i.GetPosition()),i.Stop(),o=0,r.fire(u.PositionChanged,0),reportStateChanged(Mediasite.Player.MediaState.MediaEnded)}}function getMediaInfo(){var r,o,s,u,h,e;return f.Debug("Loading media metadata ..."),r=isLivePresentation(),o=!(r||Mediasite.BrowserDetect.IOS()||Mediasite.BrowserDetect.Android()),detectFullScreen(t),s=r?!1:t.videoHeight<=0,u=0,t.videoHeight>0&&t.videoWidth>0&&(u=t.videoWidth/t.videoHeight),h=i.GetDuration(),e={AspectRatio:u,AudioOnly:s,Duration:h,CanChangeSpeed:o,CanFullScreen:y,CurrentLanguageIndex:0,Languages:{},StreamType:n.streamType,IsMainStream:n.isMainStream},f.Debug("... finished loading media metadata.",e),e}function getNextPlaybackRate(n,t){var u,r,f;return n=n!==!1,t=t!==!1,u=Math.round(i.GetPlaybackRate()*100)/100,r=s.extend([],k),r.length==0&&(r=[1]),f=n?1:-1,r.sort(function(n,t){return f*(n-t)}),t&&0>=f*(r[r.length-1]-u)?u=r[0]:s.each(r,function(n,t){if(0>=f*(t-u)&&0ti)throw{name:"ExcessiveMediaUrlUniquifications",message:"The maximum number of media URL uniquification attempts has been exceeded."};return t=nt,n+r+i+"="+t}function touchThePublishingPoint(n,t,i){f.Debug("Kicking the HLS publishing point to make sure it is awake.");var r=s(""),u=r.get(0);setVideoElementSource(r,n,t),u.load(),window.setTimeout(function(){u.pause(),r.remove(),r=null,u=null,i()},1e3)}function getPosition(){var n=t.currentTime*1e3;return i.trustLiveVideoElementPosition||(n+=g),n}function NullPositionUpdateSimulator(){this.start=function(){},this.stop=function(){}}function PositionUpdateSimulator(){function timeoutCallback(){raiseEvent(),scheduleIt()}function scheduleIt(){window.setTimeout(timeoutCallback,r)}function cancelIt(){window.clearTimeout(u),n=-1}function raiseEvent(){var r=t.getPositionDelegate();r!==n&&(n=r,t.fireEventDelegate(i,r))}var t=this,i=Mediasite.MediaPlayer.ModelEvent.PositionChanged,r=200,n=-1,u;this.fireEventDelegate=function(){},this.getPositionDelegate=function(){return 0},this.start=function(){cancelIt(),raiseEvent(),scheduleIt()},this.stop=function(){cancelIt()}}function SafariHlsBadStartCorrector(n){function correctionIsScheduled(){return!!t}function cancelScheduledCorrection(){window.clearTimeout(t),t=null}function scheduleNextCorrection(){var n=r[i];t=window.setTimeout(timer_tick,n)}function timer_tick(){f(),i++,t=null}function shouldScheduleCorrection(){return u&&i0||t)&&(v=f),t=!1}else v=!1}}var n,t;return handleFullscreenTimeEvents}(),this.SetupMediaElement=function(r){p=s.extend(new Mediasite.MediaPlayer.BaseView,new Mediasite.MediaPlayer.Html5View(n)),e=p.CreateMediaElement(),vt=p.Wrapper,t=e.get(0),ot=r,Mediasite.BrowserDetect.Android()&&t.setAttribute("preload","none"),Mediasite.BrowserDetect.IOS()&&e.bind("webkitbeginfullscreen webkitendfullscreen seeked timeupdate",bt),e.bind("stalled canplaythrough emptied suspend waiting abort error loadeddata canplay loadstart play playing pause loadeddata ended seeking seeked ratechange durationchange volumechange timeupdate",handleMediaEvent),e.bind("error",handleMediaError),e.bind("playCoverPressed",function(){i.Play()}),e.bind("contextmenu",function(){return!1}),loadTheMediaSource(),detectFullScreen(t)},this.SetNewVideo=function(t,i){var o=n.selectedVideoSource,f=findMediaSource(t,o.MediaType,o.MimeType,o.ServerType),s,h;if(!f||!f.Location){r.fire(u.MediaError,Mediasite.Player.Localization.MediaPlayer.NoCompatibleMediaError);return}if(s=n.pluginMimeType,h=f.Location,e==undefined){r.fire(u.MediaError,Mediasite.Player.Localization.MediaPlayer.NoCompatibleMediaError);return}n.streamType=i,n.selectedVideoSource=f,ot=t,setVideoElementSource(e,h,s),w=!1},this.setVideoElementSourceFunction=function(n,t,i){n.empty();var r=s("");r.attr({src:t,type:i}),n.prepend(r),n.load()},this.raiseMediaError=function(n){it.HandleLiveMediaOpenFailure(reconnectOnLiveMediaOpenFailure)||(a.handleMediaError(n,!0),r.fire(u.MediaError,n))},this.updateBitrate=function(n){a.handleBitrateChange(n)},this.UpdateOptions=function(n){gt=n.Volume,r.fire(u.EnableLiveStartDelay,i.liveStartUnsafeWindow)},this.LiveStatusChange=function(n){var t=Mediasite.Player.PresentationStatus,f=n==t.Live||n==t.LivePaused||n==t.OpenForLive||n==t.ScheduledForLive;f&&r.fire(u.EnableLiveJumpBackDetection),f&&!d&&Mediasite.BrowserDetect.MacSafari()&&Mediasite.BrowserDetect.MacOS10DotWhat()<7&&(d=new SafariHlsBadStartCorrector(resetLiveMediaElement)),it.setLiveStatus(n),n==t.LiveEnded&&(a.handleMediaEnded(isLivePresentation()),wt=!0,r.fire(u.PositionChanged,0),i.Stop())},this.InactivityExceeded=function(){at=!0,(status===Mediasite.Player.PresentationStatus.Live||status===Mediasite.Player.PresentationStatus.LiveEnded)&&window.location.reload()},this.SetPosition=function(n){var f,i;if(at===!0){window.location.reload();return}if(f=!1,t.seekable.length>0)for(i=0;i=t.seekable.start(i)*1e3&&n<=t.seekable.end(i)*1e3&&(f=!0);f&&(et=!0,o=n,ni=new Date,t.currentTime!=n/1e3&&(t.currentTime=n/1e3,r.fire(u.PositionChanged,n)))},this.PlayDefaultRate=function(){var n=fi;i.SetPlaybackRate(n)},this.PlayFaster=function(n){n=n===!0;var t=getNextPlaybackRate(!0,n);i.SetPlaybackRate(t)},this.PlaySlower=function(n){n=n===!0;var t=getNextPlaybackRate(!1,n);i.SetPlaybackRate(t)},this.SkipBack=function(){var n=i.GetPosition()-ci;n<0&&(n=0),i.SetPosition(n)},this.SkipForward=function(){var n=i.GetPosition()+ei;n0){resetLiveMediaElement();return}ct=i.GetPosition(),b!==Mediasite.Player.MediaState.Playing&&(tt=!0),r.fire(u.PositionChanged,ct,!0);var f=t.playbackRate,n=function(){t.playbackRate!=f&&(t.playbackRate=f)},e=t.play();e!==undefined?e.then(function(){n()}).catch(function(){i.Pause(),n()}):n()}},this.Stop=function(){i.Pause()},this.trustLiveVideoElementPosition=!0,this.GetPosition=function(){var n=getPosition(),t;return(v&&n===0&&(n=v),n.2?this.SetVolume((t.volume-.2)*100):this.SetVolume(0))},this.ToggleMute=function(){l||(i.IsMuted()?i.UnMute():i.Mute())},this.Mute=function(){t.muted=!0,i.IsMuted()&&r.fire(u.VolumeChanged,0)},this.UnMute=function(){l||(t.muted=!1,i.GetVolume()===0?this.SetVolume(50):r.fire(u.VolumeChanged,Math.round(i.GetVolume())))},this.IsMuted=function(){return t.muted},this.TogglePlayPause=function(){t.paused||!isLivePresentation()&&t.ended?i.Play():i.Pause()},this.SetPlaybackRate=function(n){st=n,t&&(t.playbackRate=n)},this.GetPlaybackRate=function(){return t.playbackRate},this.GetVideoWidth=function(){return t.videoWidth},this.SetLiveStartTime=function(n){lt=n,kt=+new Date,it.setLiveStartTime(n)},this.RetrieveBookmark=function(n){li=n}},Mediasite.MediaPlayer.Html5View=function(n){var t,r=this,i;this.Wrapper=undefined,this.CreateMediaElement=function(){var u,e;if(n.mediaContainer.find(".MediaWrapper").remove(),i=$('
').appendTo(n.mediaContainer),this.Wrapper=i,t=$('').appendTo(i),t.bind("focus",function(){t.parent().focus()}),n.height&&n.width&&t.css({height:n.height,width:n.width}),n.isMobile&&n.isMainStream){u=$('
'),e=$("").text(n.playButtonText).appendTo(u),u.appendTo(i),u.bind("click",function(n){n.stopPropagation()}),e.bind({click:function(n){n.stopPropagation(),t.size()>0&&t.get(0).play&&t.trigger("playCoverPressed")},mousemove:function(n){n.stopPropagation()}});var f=function(){n.playCoverOnPause&&u.show()},o=null,s=!1,h=function(){clearTimeout(o),s=!1,o=setTimeout(f,1500)};t.bind({timeupdate:h,play:function(){u.hide()},suspend:f,pause:f,stalled:function(){s=!0}})}return t.get(0).Rebuild=function(){i.remove();return r.CreateMediaElement()},n.mediaContainer.get(0).GetContentDimensions=$.proxy(this.GetContentDimensions,this),t},this.GetContentDimensions=function(){var n=t.offset();containerWidth=t.width(),containerHeight=t.width();var u=t[0].videoWidth,f=t[0].videoHeight,i=u/f,r=containerWidth/containerHeight;return i>r?(n.width=containerWidth,n.height=containerWidth/i,n.top+=(containerHeight-n.height)/2):i