{"version":3,"sources":["samba.player.api.js"],"names":["EventDispatcher","this","dict","findMediaPosition","array","key","value","i","length","XD","w","interval_id","last_hash","attached_callback","cache_bust","window","postMessage","message","target_url","target","parent","replace","location","Date","receiveMessage","callback","source_origin","e","indexOf","origin","Object","prototype","toString","call","clearInterval","setInterval","hash","document","re","test","data","SambaPlayerUtils","URL_BASE","url","getAllElementsWithAttribute","src","substring","lastIndexOf","tagName","matchingElements","allElements","querySelectorAll","push","createAndAppendScript","name","params","cb","script","createElement","type","done","onload","onreadystatechange","readyState","getElementsByTagName","appendChild","toQueryString","obj","str","p","hasOwnProperty","param","encodeURIComponent","join","getQueryParams","result","slice","split","tmp","unescape","createAndAppendIframe","options","frame","iframe","iframeSRC","playerParams","baseSRC","getIframeAddress","ph","baseSRCQueryParams","href","allowAttributeContent","browserNavigator","ua","navigator","userAgent","regex","browserInfoArray","match","appName","appVersion","toLowerCase","version","parseInt","console","log","setAttribute","m","live","playlistId","mock","encodeURI","width","height","frameBorder","scrolling","responsive","wrap","addFluid","attachEvent","frames","currentProtocol","protocol","iframeBaseURLMap","localhost-8080","qa","staging","prod","iframeURL","addEvent","evnt","elem","func","addEventListener","updateQueryStringParameter","uri","RegExp","separator","inherit","SubClass","SuperClass","T","constructor","className","style","paddingTop","css","head","styleSheet","cssText","createTextNode","handler","removeEventListener","handlers","splice","dispatchEvent","evtReturn","evtReturnTmp","handlersClone","concat","SambaPlayerApiMessage","embedURL","players","onLoadMedia","init","self","returnCallback","hasLoaded","a","messageDomain","host","eval","event","events","sendMessage","msg","player","isPrism","sambaPlayerApiMessage","translatePrismEvents","id","_status","eventsDictionary","player:load","player:start","player:resume","player:pause","player:seek","player:cuepoint","player:mediaview","player:progress","player:listen","player:finish","player:error","status","title","duration","eventParam","doAction","method","action","JSON","stringify","getInfo","fn","SambaPlayer","container","playlist","initPlaylist","initSingle","MEDIA_ID","Math","floor","random","getElementById","sequence","medias","currentPlaylist","loop","timeout","autoplay","onFinish","onPlaylistClick","elements","getElementsByClassName","getAttribute","click","onCancelPlaylist","bindPlaylist","onClick","changeVideo","isClick","triggers","triggersLength","evt","srcElement","mediaId","isTrusted","preventDefault","on","fb","play","pause","mute","unmute","getStatus","media","seek","time","setDRM","drmObj","changeSubtitle","subtitle","voiceScreen","setVolume","volume","changeSpeed","speed","syncSlideshow","changeSlide","num","slidePlayer","jumpTo","provider","allowScriptAccess","atts","flashvars","doc","startSlide","rel","swfobject","embedSWF","info","map","dimLights","flag","dimDiv","zIndex","position","addAnnotations","annotations","annotationHandler","noRepeat","offInterval","showed","timeLast","index","delay","destroyAnnotations","addMidrollLinks","destroyMidrollLinks","initComments","config","comments","exec","addComments","timeInterval","lastTime","treatCommentData","cm","points","dontGroup","cms","n","cuepoints","commentsParsed"],"mappings":"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","file":"samba.player.api.js","sourcesContent":["/*\n * a backwards compatable implementation of postMessage\n * by Josh Fraser (joshfraser.com)\n * released under the Apache 2.0 license.\n *\n * this code was adapted from Ben Alman's jQuery postMessage code found at:\n * http://benalman.com/projects/jquery-postmessage-plugin/\n *\n * other inspiration was taken from Luke Shepard's code for Facebook Connect:\n * http://github.com/facebook/connect-js/blob/master/src/core/xd.js\n *\n * the goal of this project was to make a backwards compatable version of postMessage\n * without having any dependency on jQuery or the FB Connect libraries\n *\n * my goal was to keep this as terse as possible since my own purpose was to use this\n * as part of a distributed widget where filesize could be sensative.\n *\n */\n\n// everything is wrapped in the XD function to reduce namespace collisions\n/*\n * a backwards compatable implementation of postMessage\n * by Josh Fraser (joshfraser.com)\n * released under the Apache 2.0 license.\n *\n * this code was adapted from Ben Alman's jQuery postMessage code found at:\n * http://benalman.com/projects/jquery-postmessage-plugin/\n *\n * other inspiration was taken from Luke Shepard's code for Facebook Connect:\n * http://github.com/facebook/connect-js/blob/master/src/core/xd.js\n *\n * the goal of this project was to make a backwards compatable version of postMessage\n * without having any dependency on jQuery or the FB Connect libraries\n *\n * my goal was to keep this as terse as possible since my own purpose was to use this\n * as part of a distributed widget where filesize could be sensative.\n *\n */\n\n// everything is wrapped in the XD function to reduce namespace collisions\n'use strict';\nvar XD = function(w){\n var interval_id,\n last_hash,\n cache_bust = 1,\n attached_callback,\n window = w;\n\n return {\n postMessage : function(message, target_url, target) {\n if (!target_url) {\n return;\n }\n target = target || parent; // default to parent\n if (window['postMessage']) {\n // the browser supports window.postMessage, so call it with a targetOrigin\n // set appropriately, based on the target_url parameter.\n \t\ttarget['postMessage'](message, target_url.replace( /([^:]+:\\/\\/[^\\/]+).*/, '$1'));\n\n } else if (target_url) {\n // the browser does not support window.postMessage, so set the location\n // of the target to target_url#message. A bit ugly, but it works! A cache\n // bust parameter is added to ensure that repeat messages trigger the callback.\n target.location = target_url.replace(/#.*$/, '') + '#' + (+new Date) + (cache_bust++) + '&' + message;\n }\n },\n\n receiveMessage : function(callback, source_origin) {\n // browser supports window.postMessage\n if (window['postMessage']) {\n // bind the callback to the actual event associated with window.postMessage\n if (callback) {\n attached_callback = function(e) {\n if ((typeof source_origin === 'string' && source_origin.indexOf(e.origin) < 0)\n || (Object.prototype.toString.call(source_origin) === \"[object Function]\" && source_origin(e.origin) === !1)) {\n return !1;\n }\n callback(e);\n };\n }\n if (window['addEventListener']) {\n window[callback ? 'addEventListener' : 'removeEventListener']('message', attached_callback, !1);\n } else {\n window[callback ? 'attachEvent' : 'detachEvent']('onmessage', attached_callback);\n }\n } else {\n // a polling loop is started & callback is called whenever the location.hash changes\n interval_id && clearInterval(interval_id);\n interval_id = null;\n\n if (callback) {\n interval_id = setInterval(function(){\n var hash = document.location.hash,\n re = /^#?\\d+&/;\n\n if (hash !== last_hash && re.test(hash)) {\n last_hash = hash;\n callback({data: hash.replace(re, '')});\n }\n }, 100);\n }\n }\n }\n };\n}(window);\n\n/************************************************************************\n\tSamba player Utils\n*************************************************************************/\nvar SambaPlayerUtils = {\n\tURL_BASE: function(){\n\t\tvar url = this.getAllElementsWithAttribute('samba.player.api.js', 'script')[0].src;\n\t\treturn url.substring(0, url.lastIndexOf('/')) + '/sambalabs/';\n\t},\n\tgetAllElementsWithAttribute: function(src, tagName) {\n\t\tvar matchingElements = [];\n\t\tvar allElements = document.querySelectorAll(tagName);\n\t\tfor (var i = 0; i < allElements.length; i++) {\n\t\t\tif (allElements[i].src.indexOf(src) > -1)\n\t\t\t{\n\t\t\t\t// Element exists with attribute. Add to array.\n\t\t\t\tmatchingElements.push(allElements[i]);\n\t\t\t}\n\t\t}\n\t\treturn matchingElements;\n\t},\n\tcreateAndAppendScript: function(name, params, cb) {\n\t\tvar script = document.createElement(\"script\");\n\t\tscript.type = \"text/javascript\";\n\t\tscript.src = this.URL_BASE() + name;\n\t\tfor(var key in params) {\n\t\t\tscript[key] = params[key];\n\t\t}\n\t\tif(cb) {\n\t\t\tvar done = false;\n\t\t\tscript.onload = script.onreadystatechange = function() {\n\t\t\t\tif ( !done && (!this.readyState || this.readyState === \"loaded\" || this.readyState === \"complete\") ) {\n\t\t\t\t\tdone = true;\n\t\t\t\t\tcb();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar html = document.getElementsByTagName(\"html\")[0];\n\t\thtml.appendChild(script);\n\t},\n\ttoQueryString: function(obj) {\n\t\tvar str = [];\n\n\t\tfor (var p in obj) {\n\t\t\tif (obj.hasOwnProperty(p) === false)\n\t\t\t\tcontinue;\n\n\t\t\tvar param = obj[p];\n\n\t\t\tif (p === 'ad_program') {\n\t\t\t\t// removes brackets if there's any\n\t\t\t\tif (/^(\\[|%5B)\\w{3,5}/.test(param))\n\t\t\t\t\tparam = param.replace(/^(\\[|%5B)|(\\]|%5D)$/g, '');\n\n\t\t\t\t// non-encoded URL with no brackets will add brackets,\n\t\t\t\t// encoded URL will remain w/o brackets\n\t\t\t\tif (/^\\w{3,5}\\:\\/\\//.test(param))\n\t\t\t\t\tparam = '[' + encodeURIComponent(param) + ']';\n\t\t\t}\n\n\t\t\tstr.push(p + \"=\" + param);\n\t\t}\n\n\t\treturn str.join(\"&\");\n\t},\n\tgetQueryParams: function() {\n\t\tvar result = {};\n\t\tvar url = this.getAllElementsWithAttribute('samba.player.api.js', 'script')[0].src;\n\n\t\tif (url)\n\t\t{\n\t\t\tvar params = url.slice(url.indexOf(\"?\") + 1).split(\"&\");\n\t\t\tfor (var i = 0; i < params.length; i++)\n\t\t\t{\n\t\t\t\tvar tmp = params[i].split(\"=\");\n\t\t\t\tresult[tmp[0]] = unescape(tmp[1]).replace(/\\[|\\]/g, \"\");\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t},\n\tcreateAndAppendIframe: function(target, name, options, cb) {\n\t\tvar frame;\n\t\tvar iframe;\n\t\tvar iframeSRC;\n\t\tvar params = (options.playerParams) ? this.toQueryString(options.playerParams) : \"\";\n\t\tvar baseSRC = this.getIframeAddress() + options.ph;\n\t\tvar baseSRCQueryParams = \"jsApi=true&\" + params + \"&parentURL=#\" + document.location.href;\n\t\tvar allowAttributeContent = \"geolocation; microphone; camera; encrypted-media; midi;\";\n\n\n\t\t/*\n\t\t*\n\t\t* AS ALTERAÇÕES ABAIXO FORAM IMPLEMENTADAS PARA RESOLVER UM PROBLEMA DOS EVENTOS DO player.play()\n\t\t* e player.pause() ESPECÍFICOS DA VERSÃO 72 DO GOOGLE CHROME RELACIONADOS AO \"USER ACTIVATION V2\"\n\t\t*\n\t\t* */\n\n try {\n var browserNavigator = (function(){\n var ua = navigator.userAgent;\n var regex = /(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i;\n var browserInfoArray = ua.match(regex) || [];\n\n browserInfoArray = browserInfoArray[2]\n\t\t\t\t\t? [browserInfoArray[1], browserInfoArray[2]]\n\t\t\t\t\t: [navigator.appName, navigator.appVersion, '-?'];\n\n if(browserInfoArray.length >= 2) {\n return {\n name: browserInfoArray[0].toLowerCase(),\n version: parseInt(browserInfoArray[1])\n }\n\t\t\t\t} else {\n return {\n name: null,\n version: -1\n }\n }\n })();\n\n if(browserNavigator.version >= 72 && browserNavigator.name === 'chrome') {\n allowAttributeContent += \" autoplay;\"\n }\n } catch (e) {\n console.log('Erro ao tratar versão do browser para User Activation V2')\n }\n\n /* FIM DAS ALTERAÇÕES PARA A VERSÃO 72 DO CHROME */\n\n\t\ttry {\n\t\t\tiframe = document.createElement('iframe');\n\t\t\tiframe.setAttribute('allowfullscreen', true);\n\t\t\tiframe.setAttribute('webkitallowfullscreen', true);\n\t\t\tiframe.setAttribute('mozallowfullscreen', true);\n\t\t\tiframe.setAttribute('msallowfullscreen', true);\n\t\t\tiframe.setAttribute('allow', allowAttributeContent);\n\t\t} catch (e) {\n\t\t\tiframe = document.createElement(\"iframe\");\n\t\t}\n\n\t\tif(options.m && !options.live) {\n\t\t\tiframeSRC = baseSRC + \"/\" + options.m + \"?\" + baseSRCQueryParams;\n\t\t}else if(options.live) {\n\t\t\tiframeSRC = baseSRC + \"/live/\" + options.live + \"?\" + baseSRCQueryParams;\n\t\t}else if(options.playlistId) {\n\t\t\tiframeSRC = baseSRC + \"/playlist/\" + options.playlistId + (options.mock ? \"/mock\" : \"\") + \"?\" + baseSRCQueryParams;\n\t\t}else {\n\t\t\tiframeSRC = baseSRC + \"?frameId=\" + name + \"&\" + baseSRCQueryParams;\n\t\t}\n\n\t\tiframe.src = encodeURI(iframeSRC);\n\t\tiframe.name = name;\n\t\t// IE11: iframe dimensions cannot be assigned undefined due to a bug\n\t\t// \"options\" var loses its reference and becomes undefined\n\t\t// seems to relate to a wrong management of the memory boundaries\n\t\tiframe.width = options.width || '100%';\n\t\tiframe.height = options.height || '100%';\n\t\tiframe.frameBorder = 0;\n\t\tiframe.scrolling = \"no\";\n\n\t\tif(options.responsive) {\n\t\t\tvar wrap = this.addFluid(iframe);\n\t\t\ttarget.appendChild(wrap);\n\t\t}else {\n\t\t\ttarget.appendChild(iframe);\n\t\t}\n\n\t\tif(iframe.attachEvent) {\n\t\t\tiframe.attachEvent('onload', function(){\n\t\t\t\tframe = {\n\t\t\t\t\tsrc: iframe.src,\n\t\t\t\t\tdocument: frames[iframe.name]\n\t\t\t\t};\n\n\t\t\t\tcb(iframe, frame);\n\t\t\t});\n\t\t}else {\n\t\t\tiframe.onload = function(){\n\t\t\t\tframe = {\n\t\t\t\t\tsrc: iframe.src,\n\t\t\t\t\tdocument: frames[iframe.name]\n\t\t\t\t};\n\n\t\t\t\tcb(iframe, frame);\n\t\t\t}\n\t\t}\n\t},\n\tgetIframeAddress: function() {\n\t\tvar currentProtocol = this.getQueryParams().protocol || this.URL_BASE().match(/(https?:)?/)[0] || window.location.protocol;\n\t\tvar iframeBaseURLMap = {\n\t\t\t\t\t'localhost-8080': currentProtocol + \"//localhost:8080/player-api/embed/\",\n\t\t\t\t\t'qa': currentProtocol + \"//player.qa.sambatech.com/v3/embed/\",\n\t\t\t\t\t'staging': currentProtocol + \"//player.staging.sambatech.com/v3/embed/\",\n\t\t\t\t\t'prod': currentProtocol + \"//fast.player.liquidplatform.com/pApiv2/embed/\"\n\t\t\t};\n\t\tvar iframeSrc = (iframeBaseURLMap[this.getQueryParams().iframeURL]) ? iframeBaseURLMap[this.getQueryParams().iframeURL] : iframeBaseURLMap.prod;\n\t\treturn iframeSrc;\n\t},\n\taddEvent: function(evnt, elem, func) {\n\t if (elem.addEventListener) // W3C DOM\n\t elem.addEventListener(evnt,func,false);\n\t else if (elem.attachEvent) { // IE DOM\n\t elem.attachEvent(\"on\"+evnt, func);\n\t }\n\t else { // No much to do\n\t elem[evnt] = func;\n\t }\n\t},\n\tupdateQueryStringParameter: function(uri, key, value) {\n\t\tvar url = uri.split('#');\n\t var re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\n\t var separator = uri.indexOf('?') !== -1 ? \"&\" : \"?\";\n\t if (uri.match(re)) {\n\t return uri.replace(re, '$1' + key + \"=\" + value + '$2') + '#' + url[1];\n\t }\n\t else {\n\t return url[0] + separator + key + \"=\" + value + '#' + url[1];\n\t }\n\t},\n\t/** Herança **/\n\tinherit: function(SubClass, SuperClass) {\n\t\tvar T = function() {};\n\t\tT.prototype = SuperClass.prototype;\n\t\tSubClass.prototype = new T();\n\t\tSubClass.prototype.constructor = SubClass;\n\t},\n\t/**reponsive layout**/\n\taddFluid: function(elem) {\n\t var wrap = document.createElement('div');\n\t elem.className += (elem.className ? ' ' : '') + 'fluidsambaplayer-item';\n\t wrap.className += 'fluidsambaplayer';\n\t wrap.style.paddingTop = getRatio(elem.height, elem.width);\n\t wrap.appendChild(elem);\n\n\t addStyle();\n\n\t return wrap;\n\n\t function addStyle() {\n\t\tvar css = [\n\t\t\t'.fluidsambaplayer {',\n\t\t\t 'width: 100%; max-width: 100%; position: relative;',\n\t\t\t'}',\n\t\t\t'.fluidsambaplayer-item {',\n\t\t\t 'position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;',\n\t\t\t'}'\n\t\t].join('');\n\t\tvar head = document.head || document.getElementsByTagName('head')[0];\n\t\tvar style = document.createElement('style');\n\t\tstyle.type = 'text/css';\n\t\tif (style.styleSheet) {\n\t\t\tstyle.styleSheet.cssText = css;\n\t\t} else {\n\t\t\tstyle.appendChild(document.createTextNode(css));\n\t\t}\n\t\thead.appendChild(style);\n\t }\n\n function getRatio (height, width) {\n\t return ((parseInt(height, 10) / parseInt(width, 10)) * 100) + '%';\n\t }\n\t},\n};\n\n/** EVENT DISPATCHER **/\n\nfunction EventDispatcher() {\n\tthis.dict = {};\n}\n\nEventDispatcher.prototype.dict = null;\n\nEventDispatcher.prototype.addEventListener = function(type, handler) {\n\tif (this.dict[type] == null)\n\t\tthis.dict[type] = [];\n\n\tthis.dict[type].push(handler);\n};\nEventDispatcher.prototype.removeEventListener = function(type, handler) {\n\tvar handlers = this.dict[type];\n\tvar i = -1;\n\n\tif (handlers == null)\n\t\treturn;\n\n\tfor (i = 0; i < handlers.length; ++i)\n\t\tif (handler === handlers[i])\n\t\t\tbreak;\n\n\tif (i > -1 && i < handlers.length)\n\t\thandlers.splice(i, 1);\n};\nEventDispatcher.prototype.dispatchEvent = function(e) {\n\tvar handlers = this.dict[e.type];\n\tvar evtReturn, evtReturnTmp;\n\n\tif (handlers == null)\n\t\treturn;\n\n\tvar handlersClone = handlers.concat();\n\n\tfor (var i = 0; i < handlersClone.length; ++i) {\n\t\tevtReturnTmp = handlersClone[i].call(this, e);\n\n\t\tif (evtReturn !== false)\n\t\t\tevtReturn = evtReturnTmp;\n\t}\n\n\treturn evtReturn;\n};\n\n/************************************************************************\n\tObjeto de menssagens\n*************************************************************************/\n\nvar SambaPlayerApiMessage = function() {\n\tthis.embedURL = SambaPlayerUtils.getIframeAddress();\n\tthis.players = {};\n\tthis.onLoadMedia = {};\n\tthis.init();\n};\n\nSambaPlayerApiMessage.prototype.init = function() {\n\tvar self = this;\n\tself.returnCallback = function(){};\n\n\tself.hasLoaded = false;\n\n\tvar a = document.createElement(\"a\");\n\ta.href = self.embedURL;\n\tvar messageDomain = a.protocol + \"//\" + a.host;\n\n\tXD.receiveMessage(function(message){\n\t\ttry{\n\t\t\tvar data = eval('(' + message.data + ')');\n\t\t\tif(data.event == \"getStatus\") {\n\t\t\t\tself.returnCallback(data);\n\t\t\t}else {\n\t\t\t\tself.events(data);\n\t\t\t}\n\t\t}catch(e) {\n\t\t}\n\t}, messageDomain);\n};\n\nSambaPlayerApiMessage.prototype.sendMessage = function(msg, frame) {\n\tXD.postMessage(msg, frame.src, frame.document);\n};\n\nSambaPlayerApiMessage.prototype.events = function(player, iframe) {\n\ttry {\n\n\t\t// Validations created to support prism\n\t\t// Prism when created sends 'player:prism' event\n\t\tif (player.data && player.data.type === 'player:prism') {\n\t\t\tthis.isPrism = true;\n\t\t}\n\t\tif (this.isPrism) { // If is prism, translate the event to a known pattern\n\t\t\tplayer = sambaPlayerApiMessage.translatePrismEvents(player);\n\t\t}\n\n\t\t//Eventos específicos\n\t\tif(typeof this.players[player.id][player.event] == \"function\") {\n\t\t\tthis.players[player.id][player.event](player);\n\t\t}else if(typeof this.players[player.id][player.event] == \"string\") {\n\t\t\twindow[this.players[player.id][player.event]](player);\n\t\t}\n\n\t\t//Eventos globais\n\t\tif(this.players[player.id][\"*\"]) {\n\t\t\tif(typeof this.players[player.id][\"*\"] == \"function\") {\n\t\t\t\tthis.players[player.id][\"*\"](player);\n\t\t\t}else if(typeof this.players[player.id][\"*\"] == \"string\") {\n\t\t\t\twindow[this.players[player.id][\"*\"]](player);\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\t// TODO: handle exception\n\t}\n\n};\n\nSambaPlayerApiMessage.prototype.translatePrismEvents = function(event) {\n\tif (event.name === 'status') {\n\t\tthis._status = event.data\n\t}\n\tif (event.data && event.event) {\n\t\tvar eventsDictionary = {\n\t\t\t'player:load': 'onLoad',\n\t\t\t'player:start': 'onStart',\n\t\t\t'player:resume': 'onResume',\n\t\t\t'player:pause': 'onPause',\n\t\t\t'player:seek': 'onSeek',\n\t\t\t'player:cuepoint': 'onCuepoint',\n\t\t\t'player:mediaview': 'onMediaView',\n\t\t\t'player:progress': 'onProgress',\n\t\t\t'player:listen': 'onListen',\n\t\t\t'player:finish': 'onFinish',\n\t\t\t'player:error': 'onError',\n\t\t};\n\t\tvar status = this._status\n\t\tevent = {\n\t\t\ttitle: status.title,\n\t\t\tid: status.id,\n\t\t\tduration: status.duration,\n\t\t\tevent: eventsDictionary[event.data.type],\n\t\t\teventParam: event.data.event\n\t\t}\n\t}\n\treturn event\n};\n\n\nSambaPlayerApiMessage.prototype.doAction = function(method, param, frame){\n\tvar action;\n\tif (this.isPrism) {\n\t\taction = {\n\t\t\tmethod: true,\n\t\t\tname: method,\n\t\t\tdata: [param]\n\t\t}\n\t}\n\telse {\n\t\taction = method;\n\t\tif (param != null)\n\t\t\taction += ':' + (typeof param === 'object' ? encodeURIComponent(JSON.stringify(param)) : param);\n\t}\n\tthis.sendMessage(action, frame);\n};\n\nSambaPlayerApiMessage.prototype.getInfo = function(method, fn, frame){\n\tif (this.isPrism) { // if is prism just call the function with status previously saved\n\t\tfn(this._status)\n\t}\n\telse {\n\t\tthis.returnCallback = fn;\n\t\tthis.sendMessage(method + \":getStatus\", frame);\n\t}\n};\n\nSambaPlayerApiMessage.prototype.getQueryParams = function() {\n\tvar result = {};\n\tvar url = SambaPlayerUtils.getAllElementsWithAttribute(\"samba-player-api\")[0].src;\n if (url)\n {\n var params = url.slice(url.indexOf(\"?\") + 1).split(\"&\");\n for (var i = 0; i < params.length; i++)\n {\n var tmp = params[i].split(\"=\");\n result[tmp[0]] = unescape(tmp[1]).replace(/\\[|\\]/g, \"\");\n }\n }\n\t\treturn result;\n};\n\n//Tratamento se já existir um script nosso na página\nvar sambaPlayerApiMessage = sambaPlayerApiMessage || new SambaPlayerApiMessage();\n\n/************************************************************************\n\tObjeto de controle dos players\n*************************************************************************/\nvar SambaPlayer = function(container, options) {\n\tEventDispatcher.call(this);\n\n\tvar self = this;\n\tif(!options.playlist) {\n\t\tself.initSingle(container, options);\n\t}else {\n\t\tself.initPlaylist(container, options);\n\t}\n\treturn this;\n};\n\nSambaPlayerUtils.inherit(SambaPlayer, EventDispatcher);\n\nSambaPlayer.prototype.initSingle = function(container, options) {\n\tvar self = this;\n\tself.MEDIA_ID = options.m || options.live || options.playlistId || \"player-\" + Math.floor(Math.random()*1000);\n\tvar elem = (typeof container == \"string\") ? document.getElementById(container) : container;\n\n\t//Bindando o iframe correto nos eventos\n\tsambaPlayerApiMessage.players[self.MEDIA_ID] = options.events || {};\n\n\tvar elems = SambaPlayerUtils.createAndAppendIframe(elem, self.MEDIA_ID, options, function(iframe, frame){\n\t\t\tself.iframe = iframe;\n\t\t\tself.frame = frame;\n\n\t\t\tsambaPlayerApiMessage.players[self.MEDIA_ID].event = 'onLoad';\n\t\t\tsambaPlayerApiMessage.players[self.MEDIA_ID].id = self.MEDIA_ID;\n\t\t\tsambaPlayerApiMessage.events(sambaPlayerApiMessage.players[self.MEDIA_ID]);\n\t});\n};\n\n/************************************************************************\n\tPlaylist\n*************************************************************************/\n\nSambaPlayer.prototype.initPlaylist = function(container, options) {\n var self = this;\n self.sequence = (options.playlist.sequence) ? options.playlist.sequence : false;\n\tself.playlist = options.playlist.medias;\n\tself.currentPlaylist = 0;\n\tself.loop = options.playlist.loop || false;\n\tself.timeout = options.playlist.timeout || 5;\n\tself.autoplay = options.playlist.autoplay || false;\n\n\toptions.ph = options.playlist.ph;\n\toptions.m = (typeof self.playlist[self.currentPlaylist] === 'string') ? self.playlist[self.currentPlaylist]: self.playlist[self.currentPlaylist].id;\n\toptions.events = options.events || {};\n\n\t//Loop\n\toptions.events.onFinish = function() {\n\t\tif(self.sequence) {\n self.currentPlaylist = findMediaPosition(self.playlist, 'id', self.MEDIA_ID)\n }\n self.currentPlaylist = ((self.currentPlaylist + 1) == self.playlist.length) ? 0 : self.currentPlaylist + 1;\n\t\tif(self.currentPlaylist != 0 || self.loop) {\n\t\t\tsambaPlayerApiMessage.doAction(\"showPlaylist\", encodeURIComponent(JSON.stringify({title: self.playlist[self.currentPlaylist].title, timeout: self.timeout})), self.frame);\n\t\t}\n\t};\n\n\toptions.events.onPlaylistClick = function() {\n\t\tvar elements = document.getElementsByClassName('samba-playlist-trigger');\n\t\tfor(var i=elements.length; i--;) {\n\t\t\tif(elements[i].getAttribute('data-mediaid') == self.playlist[self.currentPlaylist] || (self.playlist[self.currentPlaylist].id && elements[i].getAttribute('data-mediaid') === self.playlist[self.currentPlaylist].id) ) {\n\t\t\t\telements[i].click();\n\t\t\t}\n\t\t}\n\t};\n\n\toptions.events.onCancelPlaylist = function() {\n\t\tself.currentPlaylist = ((self.currentPlaylist) === 0) ? self.currentPlaylist.length - 1 : self.currentPlaylist - 1;\n\t};\n\n\tthis.initSingle(container, options);\n\tthis.bindPlaylist(options.playlist.onClick);\n};\n\nSambaPlayer.prototype.changeVideo = function(id, isClick) {\n\tvar self = this;\n\tvar url = self.iframe.src;\n\n\tsambaPlayerApiMessage.players[id] = sambaPlayerApiMessage.players[self.MEDIA_ID];\n\n\t//Repopulando o currentPlaylist\n\tfor(var i = 0; i= annotations[i].time + annotations[i].delay;\n\n\t\t\tif (showed[i]) {\n\t\t\t\tif (offInterval) {\n\t\t\t\t\tshowed[i] = false;\n\t\t\t\t\tself.destroyAnnotations(i);\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if (offInterval)\n\t\t\t\tcontinue;\n\n\t\t\tshowed[i] = true;\n\t\t\t// injecting array index in client's config object\n\t\t\tannotations[i].index = i;\n\n\t\t\tsambaPlayerApiMessage.doAction(\"showAnnotation\", annotations[i], self.frame);\n\t\t}\n\t};\n\n\tsambaPlayerApiMessage.players[this.MEDIA_ID][\"onFinish\"] = function(e) {\n\t\tshowed = {};\n\t\tself.destroyAnnotations();\n\t};\n};\n\nSambaPlayer.prototype.addMidrollLinks = function(annotations, annotationHandler, noRepeat) {\n\tthis.addAnnotations(annotations, annotationHandler, noRepeat);\n};\n\n/**\n * Destroys all annotations or a single one.\n *\n * @param index (optional) - Index in collection of the annotation to destroy\n */\nSambaPlayer.prototype.destroyAnnotations = function(index) {\n\tsambaPlayerApiMessage.doAction(\"destroyAnnotations\", index, this.frame);\n};\n\nSambaPlayer.prototype.destroyMidrollLinks = function(index) {\n\tthis.destroyAnnotations(index);\n};\n\n/**\n * Configures comments feature.\n *\n * @param config : Object - Config data\n *\t readOnly : Boolean - Shows comments on cuepoints (HTML5 only) and blocks user interactions; defaults to false\n *\t autoShow : Boolean - Enable/disable automatically showing comments on cuepoints; defaults to false\n *\t timeInterval : int - Group and show comments by n-n seconds\n *\t author : Boolean/String - Whether to show comment author field or to have it pre-filled; defaults to true\n * @param comments : Array - \"addComments()\"\n */\nSambaPlayer.prototype.initComments = function(config, comments) {\n\tvar self = this;\n\tvar timeInterval = config.timeInterval > 0 ? config.timeInterval : 5;\n\tvar lastTime = -1;\n\tif (comments)\n\t\tcomments = this.treatCommentData(comments);\n\n\tfunction exec() {\n\t\tsambaPlayerApiMessage.doAction(\"initComments\", config, self.frame);\n\t\tcomments && self.addComments(comments);\n\t}\n\tif (this.frame)\n\t\texec();\n\telse sambaPlayerApiMessage.players[this.MEDIA_ID][\"onStart\"] = exec;\n\n\t// user action\n\tsambaPlayerApiMessage.players[this.MEDIA_ID][\"onCommentAdded\"] = function(e) {\n\t\tself.dispatchEvent({type: \"commentAdded\", data: e.eventParam});\n\n\t\tif(comments.cm[e.eventParam.time] == null) {\n\t\t\tcomments.cm[e.eventParam.time] = [];\n\t\t\tcomments.points.push(e.eventParam.time);\n\t\t}\n\n\t\tcomments.cm[e.eventParam.time].push(e.eventParam);\n\t};\n\n\t//On comment show\n\tsambaPlayerApiMessage.players[this.MEDIA_ID][\"onCommentCuepoint\"] = function(e) {\n\t\tvar time = +e.eventParam.time;\n\t\tif (e.eventParam.dontGroup)\n\t\t\tsambaPlayerApiMessage.doAction(\"showComment\", comments.cm[time], self.frame);\n\t\telse {\n\t\t\tvar cms = [];\n\t\t\tvar n = timeInterval;\n\n\t\t\tif (lastTime === -1 || time - lastTime > timeInterval) {\n\t\t\t\tlastTime = time;\n\n\t\t\t\twhile (n--) {\n\t\t\t\t\tif (!comments.cm.hasOwnProperty(time + n))\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tcms = cms.concat(comments.cm[time + n]);\n\t\t\t\t}\n\n\t\t\t\tsambaPlayerApiMessage.doAction(\"showComment\", cms, self.frame);\n\t\t\t}\n\t\t}\n\t};\n\n\tsambaPlayerApiMessage.players[this.MEDIA_ID][\"onPause\"] =\n\tsambaPlayerApiMessage.players[this.MEDIA_ID][\"onSeek\"] =\n\tsambaPlayerApiMessage.players[this.MEDIA_ID][\"onFinish\"] = function(e) {\n\t\tlastTime = -1;\n\t};\n};\n\n/**\n * Adds comments to be shown at specific media times.\n *\n * @param comments : Array - Comments config data\n *\t time : int - Time for showing the comment (in seconds)\n * text : String - Comment text\n *\t author : String - Comment author name\n */\nSambaPlayer.prototype.addComments = function(comments) {\n\tif (comments.points == null)\n\t\tcomments = this.treatCommentData(comments);\n\n\tsambaPlayerApiMessage.doAction(\"addComments\", comments.points, this.frame);\n};\n\nSambaPlayer.prototype.treatCommentData = function(comments) {\n\tvar cuepoints = [];\n\tvar commentsParsed = {};\n\n\tfor(var key in comments) {\n\t\tif(comments.hasOwnProperty(key)) {\n\t\t\tvar time = comments[key].time;\n\t\t\tcuepoints.push(time);\n\t\t\tif(commentsParsed.hasOwnProperty(time)) {\n\t\t\t\tcommentsParsed[time].push(comments[key]);\n\t\t\t}else {\n\t\t\t\tcommentsParsed[time] = [comments[key]];\n\t\t\t}\n\n\t\t}\n\t}\n\n\treturn {points: cuepoints, cm: commentsParsed};\n};\n"]}