(function(n,t,i){typeof module!="undefined"?module.exports=i(n,t):typeof define=="function"&&typeof define.amd=="object"?define(i):t[n]=i(n,t)})("radio",this,function(n,t){function i(n){return i.$.channel(n),i.$}return i.$={version:"0.2",channelName:"",channels:[],broadcast:function(){for(var r=this.channels[this.channelName],e=r.length,n,u,f,i=0;i<e;i++)n=r[i],typeof n=="object"&&n.length&&(u=n[0],f=n[1]||t),u.apply(f,arguments);return this},channel:function(n){var t=this.channels;return t[n]||(t[n]=[]),this.channelName=n,this},subscribe:function(){for(var r=arguments,u=this.channels[this.channelName],f=r.length,t,i=[],n=0;n<f;n++)i=r[n],t=typeof i=="function"?[i]:i,typeof t=="object"&&t.length&&u.push(t);return this},unsubscribe:function(){for(var f=arguments,t,i=this.channels[this.channelName],o=f.length,e=i.length,r=0,u,n=0;n<o;n++)for(r=0,e=i.length,t=0;t<e;t++)u=t-r,i[u][0]===f[n]&&(i.splice(u,1),r++);return this}},i});var QA=QA||{};QA.Widgets=QA.Widgets||{};QA.Widgets.Broker=QA.Widgets.Broker||function(n,t){var i=function(){return((1+Math.random())*65536|0).toString(16).substring(1)},r=function(){return i()+i()+"-"+i()+"-"+i()+"-"+i()+"-"+i()+i()+i()};this.brokerId=r();var u=function(t,i,r){r?n(t).subscribe([i,r]):n(t).subscribe(i)},f=function(t,i){n(t).unsubscribe(i)},e=function(i){var r,u,f;i.source&&brokerId==i.source||(r=i.source||brokerId,n(i.eventName).broadcast.apply(n(i.eventName),Array.prototype.slice.call(arguments,1)),u=[],u.push({eventName:i.eventName,source:r}),f=Array.prototype.slice.call(arguments,1),f&&u.push(f),window.parent!==window.window&&t&&t.call({destination:window.parent,publicProcedureName:"qaWidgetsPmrpcEventReceiver",params:[{eventName:i.eventName,source:r}]}),window.frames&&window.frames.length!=0&&t&&t.call({destination:window.frames,publicProcedureName:"qaWidgetsPmrpcEventReceiver",params:[{eventName:i.eventName,source:r}]}))};return{subscribe:u,unsubscribe:f,publish:e}}(radio,window.pmrpc);window.pmrpc&&function(n){var t=function(n){console.log("pmrpc caught event",n,"brokerId: ",brokerId);QA.Widgets.Broker.publish(n[0],Array.prototype.slice.call(arguments,1))};n.register({publicProcedureName:"qaWidgetsPmrpcEventReceiver",procedure:t})}(pmrpc)