Mediasite.namespace("MediaPlayer"),Mediasite.namespace("MediaPlayer.Views"),Mediasite.MediaPlayer.ModelHtml5=function(n){function isLivePresentation(){return!!ut}function detectFullScreen(n){f.Debug("Detecting fullscreen functionality..."),c=!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"&&(c=!0),f.Debug("... can fullscreen: "+c,h&&h.toString())}function resetMediaElement(){i.SetupMediaElement(t.Rebuild(),nt)}function handleMediaError(){var i=recoverFromMediaError(),n;if(!i){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+")"}r.fire(u.MediaError,n)}}function recoverFromMediaError(){var i,n;if(!b||!(b+1e41&&t.duration!=100&&t.duration!=Infinity&&(l=!0),f.Debug("Attempting to load media metadata.","Live status? "+(et?"live":"on-demand"),"Media? "+(l?"ready":"not ready"),"media duration: "+t.duration),(k||!v)&&l&&(c=getMediaInfo(t),y.UpdateMediaInfo(c),v||(v=!0,i.SetVolume(pt),dt=Mediasite.BrowserDetect.IOS6(),dt&&!et?e.bind("progress",function(){e.unbind("progress"),r.fire(u.MediaLoaded,c)}):r.fire(u.MediaLoaded,c)))),h.type==="durationchange"&&Mediasite.BrowserDetect.Android()&&v&&k&&(c=getMediaInfo(),r.fire(u.MediaUpdated,c));switch(h.type){case"volumechange":yt=0,t.muted||(yt=Math.round(i.GetVolume())),r.fire(u.VolumeChanged,yt);break;case"ratechange":st={Min:p[0],Max:p[p.length-1],Current:Math.round(i.GetPlaybackRate()*100)/100,Rates:o.extend([],p)},f.Debug("Playback rate now "+st.Current),r.fire(u.PlaybackRateChanged,st);break;case"playing":if(t.playbackRate=rt,reportStateChanged(Mediasite.Player.MediaState.Playing),isLivePresentation()&&Mediasite.BrowserDetect.Safari()&&!Mediasite.BrowserDetect.IOS()&&(kt=new Date,tt=kt-ut-39e3-t.currentTime*1e3,tt=Math.max(0,tt)),isLivePresentation()&&t.seekable&&t.seekable.length>0&&(b=t.seekable.end(t.seekable.length-1),b-=1,b-2>t.currentTime)){f.Debug("Seeking closer to end."),g=!0,t.currentTime=b;return}g=!1,bt++;break;case"pause":r.fire(u.PositionChanged,i.GetPosition()),i.GetPosition()!=0&&reportStateChanged(Mediasite.Player.MediaState.Paused);break;case"seeked":g=!1,it?it=!1:s=i.GetPosition();break;case"timeupdate":if(g)return;if(ht=i.GetPosition(),n.isMainStream){var ti=new Date,wt=ti-at,ii=wt*rt,gt=s+ii,ni=Math.abs(ht-gt);if(s>0&&wt<5e3&&ni>5e3)return}r.fire(u.PositionChanged,ht);break;case"ended":r.fire(u.PositionChanged,i.GetPosition()),i.Stop(),s=0,r.fire(u.PositionChanged,0),reportStateChanged(Mediasite.Player.MediaState.MediaEnded)}}function getMediaInfo(){var e,s,h,r,o,u;return f.Debug("Loading media metadata ..."),e=isLivePresentation(),s=!(e||Mediasite.BrowserDetect.IOS()||Mediasite.BrowserDetect.Android()),detectFullScreen(t),h=t.videoHeight<=0,r=0,t.videoHeight>0&&t.videoWidth>0&&(r=t.videoWidth/t.videoHeight),o=i.GetDuration(),u={AspectRatio:r,AudioOnly:h,Duration:o,CanChangeSpeed:s,CanFullScreen:c,CurrentLanguageIndex:0,Languages:{},StreamType:n.streamType,IsMainStream:n.isMainStream},f.Debug("... finished loading media metadata.",u),u}function getNextPlaybackRate(n,t){var u,r,f;return n=n!==!1,t=t!==!1,u=Math.round(i.GetPlaybackRate()*100)/100,r=o.extend([],p),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]:o.each(r,function(n,t){if(0>=f*(t-u)&&0kt)throw{name:"ExcessiveMediaUrlUniquifications",message:"The maximum number of media URL uniquification attempts has been exceeded."};return t=k,n+r+i+"="+t}function touchThePublishingPoint(n,t,i){f.Debug("Kicking the HLS publishing point to make sure it is awake.");var r=o(""),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(){return t.currentTime*1e3+tt}function SafariHlsBadStartCorrector(n){function correctionIsScheduled(){return!!t}function cancelScheduledCorrection(){window.clearTimeout(t),t=null}function scheduleNextCorrection(){var n=u[i];t=window.setTimeout(timer_tick,n)}function timer_tick(){f(),i++,t=null}function shouldScheduleCorrection(){return r&&i0||n)&&(a=f),n=!1}else a=!1}}var t,n;return handleFullscreenTimeEvents}(),this.SetupMediaElement=function(f){var a=+new Date-wt,l=a<2e3,h,c,s;for(y=o.extend(new Mediasite.MediaPlayer.BaseView,new st(n)),e=y.CreateMediaElement(),ht=y.Wrapper,t=e.get(0),nt=f,Mediasite.BrowserDetect.Android()&&t.setAttribute("preload","none"),Mediasite.BrowserDetect.IOS()&&e.bind("webkitbeginfullscreen webkitendfullscreen seeked timeupdate",et),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}),s=0;s");r.attr({src:t,type:i}),n.prepend(r),n.load()},this.UpdateOptions=function(n){pt=n.Volume,r.fire(u.EnableLiveStartDelay,1e4)},this.LiveStatusChange=function(n){var t=Mediasite.Player.PresentationStatus,i=n==t.Live||n==t.LivePaused||n==t.OpenForLive||n==t.ScheduledForLive;i&&r.fire(u.EnableLiveJumpBackDetection),i&&!w&&Mediasite.BrowserDetect.MacSafari()&&Mediasite.BrowserDetect.MacOS10DotWhat()<7&&(w=new SafariHlsBadStartCorrector(resetMediaElement)),n==t.LiveEnded&&(vt=!0,r.fire(u.PositionChanged,0),this.Stop())},this.InactivityExceeded=function(){yt=!0,(status===Mediasite.Player.PresentationStatus.Live||status===Mediasite.Player.PresentationStatus.LiveEnded)&&window.location.reload()},this.SetPosition=function(n){var f=!1,i;if(t.seekable.length>0)for(i=0;i=t.seekable.start(i)*1e3&&n<=t.seekable.end(i)*1e3&&(f=!0);f&&(it=!0,s=n,at=new Date,t.currentTime!=n/1e3&&(t.currentTime=n/1e3,r.fire(u.PositionChanged,n)))},this.PlayDefaultRate=function(){var n=ri;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()-gt;n<0&&(n=0),i.SetPosition(n)},this.SkipForward=function(){var n=i.GetPosition()+dt;n0&&Mediasite.BrowserDetect.MacSafari()&&Mediasite.BrowserDetect.MacOS10DotWhat()<7){resetMediaElement();return}var n=t.playbackRate;t.play(),t.playbackRate!=n&&(t.playbackRate=n)}},this.Stop=function(){t.pause(),t.currentTime=0,reportStateChanged(Mediasite.Player.MediaState.Stopped)},this.GetPosition=function(){var n=getPosition(),t;return(a&&n===0&&(n=a),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){rt=n,t&&(t.playbackRate=n)},this.GetPlaybackRate=function(){return t.playbackRate},this.GetVideoWidth=function(){return t.videoWidth},this.SetLiveStartTime=function(n){ut=n,wt=+new Date},this.RetrieveBookmark=function(n){ti=n},st=function(n){var t,r=this,i;this.Wrapper=undefined,this.CreateMediaElement=function(){var u,h;if(n.mediaContainer.find(".MediaWrapper").remove(),i=o('
').appendTo(n.mediaContainer),this.Wrapper=i,t=o('').appendTo(i),t.bind("focus",function(){t.parent().focus()}),n.height&&n.width&&t.css({height:n.height,width:n.width}),n.isMobile){u=o('
'),h=o("").text(n.playButtonText).appendTo(u),u.appendTo(i),u.bind("click",function(n){n.stopPropagation()}),h.bind({click:function(n){n.stopPropagation(),t.size()>0&&t.get(0).play&&t.trigger("playCoverPressed")}});var f=function(){n.playCoverOnPause&&u.show()},s=null,e=!1,c=function(){clearTimeout(s),e=!1,s=setTimeout(f,1500)};t.bind({timeupdate:c,play:function(){u.hide()},suspend:f,pause:f,stalled:function(){e=!0}})}return t.get(0).Rebuild=function(){i.remove();return r.CreateMediaElement()},n.mediaContainer.get(0).GetContentDimensions=o.proxy(this.GetContentDimensions,this),t},this.GetContentDimensions=function(){var n=t.offset();containerWidth=t.width(),containerHeight=t.width();var f=t[0].videoWidth,u=t[0].videoHeight,i=f/u,r=containerWidth/containerHeight;return i>r?(n.width=containerWidth,n.height=containerWidth/i,n.top+=(containerHeight-n.height)/2):i