Mediasite.namespace("Player"),Mediasite.Player.APIBroker=function(n){function addHandler(n,t){return i||(i=new Mediasite.Player.EventBundle),i.addHandler(n,t)}function removeHandler(n,t){if(i)return i.removeHandler(n,t)}function postEventMessage(n,t){var i={event:n,data:[]},r;$.isArray(t)?i.data=t:t&&(i.data=[t]),r=o+l+JSON.stringify(i),postMessage(r)}function postMessage(n){var t=c||new Mediasite.Player.WindowInterface(window.parent),i=e||r;return t&&t.postMessage&&i&&t.postMessage(n,i),!0}function receiveMessageEvent(n){var c=n.data,a=n.source,h=n.origin,r=t.isAllowedBrokerOrigin(h,u,e),i,f,s;r&&(i=t.parseMessageData(c,o,l),i&&i.command)&&(f=i.command,s=i.params,t.ReceiveCommand(f,s,a,r))}function receiveCommand(n,t,r,u){var f=callBrokerMethod(n,t,r,u);f===!1&&i.fire("command",n,t)}function callBrokerMethod(n,r,f,o){switch(n){case"_broker_activate":var l=t.findMatchingOrigin(o,u);if(!l)return;c=new Mediasite.Player.WindowInterface(f),e=l,t.SendEvent("_broker_activated",h),s=!0,i&&i.fire("activated",r);break;default:return!1}}var u,e,c,o,s,h,f,t=this,l=":",r="*",a="null",i;(function(){u=$.isArray(n.allowedBrokerSites)&&n.allowedBrokerSites.length&&n.allowedBrokerSites||r,o=n.messagePrefix||"Mediasite",s=!1,h=n.activationData||[],typeof n.events=="object"&&addHandler(n.events)})(),this.ListenForMessages=function(n){f||(f=n,f.addHandler("message",receiveMessageEvent))},this.SendMessage=function(n){return postMessage(JSON.stringify(n))},this.SendEvent=function(n,t){return postEventMessage(n,t)},this.CurrySendEvent=function(n,i){var f,r=0,u;return function(){var e,o;if(f=Array.prototype.slice.call(arguments,0),i){if(e=new Date,e-i0&&(r=transformMethodArguments(t,r)),n[t].apply(n,r)}catch(e){f=e.message||e.description||e,u={errorCode:Mediasite.Player.Error.Code.MethodError,details:f}}u&&(u.command=t,u.params=r,i.SendEvent("error",u))}function transformMethodArguments(n,t){var i=t[0];switch(n){case"setLayoutOptions":t=[i.options];break;case"seekTo":t=[i.seconds];break;case"setVolume":t=[i.volume];break;case"setVisibleStreamTypes":t=[i.streamTypes]}return t}function onBrokerActivated(t){var f,u;t&&t[0]&&typeof t[0].version!="undefined"||i.SendEvent("error",{errorCode:520,details:"cannot use 6.1.3 MediasitePlayerIFrameAPI with this server"}),r||(r=!0,f=["error","durationchanged","playstatechanged","playbackratechanged","slidechanged","slideadded","captionchanged","chapterchanged","timedeventreached","livestatuschanged","currenttimechanged","playerstatechanged","visiblestreamschanged"],$.each(f,function(t,r){var u=i.CurrySendEvent(r);n.addHandler(r,u)}),u={volumechanged:400},$.each(u,function(t,r){var u=i.CurrySendEvent(t,r);n.addHandler(t,u)}),n.isReady()||(n.addHandler("ready",onReady),onLoaded())),n.isReady()&&onReady()}function onReady(){updateState(!0),i.SendEvent("ready")}function onLoaded(){var r,t;updateState(!1),r=n.getPlayerState(),r.state!=Mediasite.Player.PlayerState.NotReady&&(t={},t.state=r.state,t.isLive=r.isLive,i.SendEvent("playerstatechanged",t))}function updateState(t){var f={},u={},r;t&&(f={ready:n.isReady(),playState:n.getPlayState(),playerState:n.getPlayerState(),currentTime:n.getCurrentTime(),duration:n.getDuration(),volume:n.getVolume(),muted:n.isMuted(),playbackRate:n.getPlaybackRate()}),u={ready:n.isReady(),playerState:n.getPlayerState(),liveStatus:n.getLiveStatus(),chapters:n.getChapters(),timedevents:n.getTimedEvents(),slides:n.getAllSlides(),captions:n.getCaptions(),links:n.getLinks(),pollsUri:n.getPollsUri(),allStreams:n.getAllStreams(),visibleStreamTypes:n.getVisibleStreamTypes(),pastSessionPlayedSegments:n.getPastSessionPlayedSegments()},r=$.extend({},f,u),i.SendEvent("_api_state",[r])}var e=t||"",f="MediasitePlayer",o=new Mediasite.Player.WindowInterface(window),u={version:"7.0.29",supports:["6.1.5","6.1.7","6.1.9","6.1.11","7.0","7.0.28","7.0.29"],application:"MediasitePlayer"},i=new Mediasite.Player.APIBroker({allowedBrokerSites:e,messagePrefix:f,events:{activated:onBrokerActivated,command:onReceiveCommand},activationData:{version:u}}),r;return i.ListenForMessages(o),i.SendMessage(u),r=!1,i},Mediasite.Player.APIBroker.playerNotInitialized=function(n){var i="MediasitePlayer",r=new Mediasite.Player.WindowInterface(window),t=new Mediasite.Player.APIBroker({messagePrefix:i});t.ListenForMessages(r),t.SendMessage(n)}