var Mediasite=window.Mediasite||{};Mediasite.Player=Mediasite.Player||{},Mediasite.Player.CurrentViewTracking=function(){function onStart(n){r.fire(e.Start,n)}function onEnd(u){n!=null&&t!=null&&t-n>i*f&&r.fire(e.End,n,t,u),n=s,t=null}function onPlaybackRateChanged(n){i=Math.max(1,n)}function onPositionChanged(r){clearTimeout(o),s=r,t===null?n===null||r-n>i*f||ri*f?onEnd():(t=r,o=setTimeout(onEnd,h))}var r,e;if(!(this instanceof Mediasite.Player.CurrentViewTracking))return new Mediasite.Player.CurrentViewTracking;var u=this,f=.5,i=1,h=2e3,n=null,t=null,s=null,o;u.onPositionChanged=onPositionChanged,u.onPlaybackRateChanged=onPlaybackRateChanged,u.push=function(n){n=n!==void 0?n:!0,onEnd(n)},r=new Mediasite.Player.EventBundle,e=Mediasite.Player.CurrentViewTracking.Event,this.addHandler=function(n,t){r.addHandler(n,t)},u.trackPresentation=function(n){var t,r,i;if(!n){window.console&&console.warn("Reporting cannot track presentation: no player API to attach to");return}t=this,n.addHandler("currenttimechanged",function(n){t.onPositionChanged(n.currentTime)}),n.addHandler("playbackratechanged",function(n){t.onPlaybackRateChanged(n.currentRate)});$(window).on("beforeunload",t.push.bind(t,!0));r=3e4,t.addHandler(Mediasite.Player.CurrentViewTracking.Event.Start,function(){clearTimeout(i),i=setInterval(t.push.bind(t,!1),r)}),t.addHandler(Mediasite.Player.CurrentViewTracking.Event.End,function(){clearTimeout(i)})}},Mediasite.Player.CurrentViewTracking.Event={Start:"start",End:"end"},Mediasite.Player.ViewReporting=function(){function reportViewStart(t,r){n.reportViewStart(t,r),i.Debug("Reporting media view start","\n   start: ",t,r?"\n (important)":"")}function reportViewEnd(t,r,u){n.reportViewEnd(t,r,u),i.Debug("Reporting media view end","\n   start: ",t,"\n   duration: ",r-t,u?"\n (important)":"")}var t,i,n;if(!(this instanceof Mediasite.Player.ViewReporting))return new Mediasite.Player.ViewReporting;t=this,i=Mediasite.Logging&&Mediasite.Logging.LoggerFactory("Playback Reporting")||{Debug:function(){console.log(arguments)}},t.setStrategy=function(t){for(var i in n)n.hasOwnProperty(i)&&t[i]&&(n[i]=t[i])},n={reportViewStart:function(){},reportViewEnd:function(){}},t.watchViewTracking=function(n){n.addHandler({start:reportViewStart,end:reportViewEnd})},t.reportToConsole=function(){this.setStrategy({reportViewStart:function(n){window.console&&console.log("Media view started @ "+n)},reportViewEnd:function(n,t){window.console&&console.log("Media view ended, "+n+" -- "+t)}})},t.reportToDataProvider=function(n,t){function reportViewEnd(i,r,u){var e=u!==!0,f=Math.round(r-i);i=Math.round(i),t.ReportMediaView(JSON.stringify({playbackTicket:n,startTime:i,duration:f}),e)}if(!n||!t){i.Debug("Reporting cannot report to data provider: no playback ticket or data provider");return}this.setStrategy({reportViewEnd:reportViewEnd})}},Mediasite.Player.StateReporting=function(){function getContainerUrl(){if(window.self!=window.top)try{var n=window.parent.document.location.href;return n?n:void 0}catch(t){}}if(!(this instanceof Mediasite.Player.StateReporting))return new Mediasite.Player.StateReporting;var n=this,u=Mediasite.Logging&&Mediasite.Logging.LoggerFactory("Playback Reporting")||{Debug:function(){console.log(arguments)}},f,t,r,i=!1;n.reportMediaOpened=function(){if(t&&!i){i=!0;var n={playbackTicket:f,playerType:"Javascript",mediaPlayerType:Mediasite.Player.MediaPlayerType.GetDisplayName(r),embeddedPlayer:window.self!=window.top,url:document.location.href},e=getContainerUrl();e&&(n.container=e),t.ReportMediaOpen(JSON.stringify(n)),u.Debug("Reporting media opened","\n mediaPlayerType="+n.mediaPlayerType,"\n url="+n.url,"\n embedded="+n.embeddedPlayer)}},n.setMediaPlayerType=function(n){r=n},n.watchPlayer=function(t){t.addHandler({playstatechanged:function(){n.reportMediaOpened()}})},n.reportToDataProvider=function(n,i){if(!n||!i){u.Debug("Reporting cannot report to data provider: no playback ticket or data provider");return}f=n,t=i}}