{"version":3,"sources":["VideoEmbed.js"],"names":["$","w","VideoEmbed","this","ELEMENT_CONTAINER","ELEMENT_ID","ELEMENT_CLOSE","ELEMENT_PLAY","VIDEO_PLAYER","loadYouTube","loadVimeo","elements","detectElements","prototype","get","name","self","each","elem","id","attr","type","player","getElementId","loadDependencies","setEvents","tag","firstScriptTag","document","createElement","src","getElementsByTagName","parentNode","insertBefore","YT","loaded","initYoutubePlayers","onYouTubeIframeAPIReady","initVimeo","Vimeo","element","options","hasOwnProperty","loop","Player","setTimeout","bind","videoId","playerVars","autoplay","rel","showinfo","unbind","click","eventPlay","eventClose","e","preventDefault","currentTarget","play","close","playVideo","show","stop","stopVideo","pause","setCurrentTime","hide","THF","Interface","jQuery","window"],"mappings":"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","file":"video-embed.min.js","sourcesContent":["(function ($, w, undefined) {\r\n function VideoEmbed() {\r\n this.ELEMENT_CONTAINER = 'data-video-embed';\r\n this.ELEMENT_ID = 'data-video-embed-id';\r\n this.ELEMENT_CLOSE = 'data-video-embed-close';\r\n this.ELEMENT_PLAY = 'data-video-embed-play';\r\n this.VIDEO_PLAYER = '.video-player';\r\n\r\n\r\n this.loadYouTube = false;\r\n this.loadVimeo = false;\r\n this.elements = {};\r\n\r\n\r\n this.detectElements();\r\n }\r\n\r\n VideoEmbed.prototype.get = function (name) {\r\n\r\n };\r\n\r\n VideoEmbed.prototype.detectElements = function () {\r\n var self = this;\r\n $('[' + this.ELEMENT_CONTAINER + ']').each(function () {\r\n var elem = $(this);\r\n var id = elem.attr(self.ELEMENT_ID);\r\n var type = elem.attr(self.ELEMENT_CONTAINER);\r\n self.elements[id] = {\r\n id: id,\r\n type: type,\r\n player: null,\r\n elem: elem\r\n };\r\n $(self.VIDEO_PLAYER, elem).attr('id', self.getElementId(self.elements[id]));\r\n\r\n if (type === 'youtube') {\r\n self.loadYouTube = true;\r\n }\r\n else if (type === 'vimeo') {\r\n self.loadVimeo = true;\r\n }\r\n });\r\n\r\n this.loadDependencies();\r\n this.setEvents();\r\n };\r\n\r\n VideoEmbed.prototype.loadDependencies = function () {\r\n var self = this;\r\n var tag;\r\n var firstScriptTag;\r\n if (this.loadYouTube) {\r\n tag = document.createElement('script');\r\n tag.src = \"//www.youtube.com/iframe_api\";\r\n firstScriptTag = document.getElementsByTagName('script')[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n\r\n if (w.YT && w.YT.loaded) {\r\n this.initYoutubePlayers();\r\n }\r\n else {\r\n w.onYouTubeIframeAPIReady = function () {\r\n self.initYoutubePlayers();\r\n }\r\n }\r\n }\r\n\r\n if (this.loadVimeo) {\r\n tag = document.createElement('script');\r\n tag.src = \"//player.vimeo.com/api/player.js\";\r\n firstScriptTag = document.getElementsByTagName('script')[0];\r\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n\r\n this.initVimeo();\r\n }\r\n };\r\n\r\n /**\r\n * Checks to see if vimeo has loaded and when it does then initialise it.\r\n */\r\n VideoEmbed.prototype.initVimeo = function () {\r\n if (w.Vimeo) {\r\n for (var element in this.elements) {\r\n if (this.elements.hasOwnProperty(element)) {\r\n if (this.elements[element].type === 'vimeo') {\r\n var options = {\r\n id: this.elements[element].id,\r\n loop: false\r\n };\r\n this.elements[element].player = new Vimeo.Player(this.getElementId(this.elements[element]), options);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n setTimeout(this.initVimeo.bind(this), 120);\r\n }\r\n };\r\n\r\n VideoEmbed.prototype.initYoutubePlayers = function () {\r\n for (var element in this.elements) {\r\n if (this.elements.hasOwnProperty(element)) {\r\n if (this.elements[element].type === 'youtube') {\r\n this.elements[element].player = new YT.Player(this.getElementId(this.elements[element]), {\r\n videoId: this.elements[element].id,\r\n playerVars: {\r\n 'autoplay': 0,\r\n 'rel': 0,\r\n 'showinfo': 0\r\n }\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n VideoEmbed.prototype.setEvents = function () {\r\n var self = this;\r\n $('[' + this.ELEMENT_PLAY + ']').each(function () {\r\n var elem = $(this);\r\n elem.unbind('click').click(self.eventPlay.bind(self));\r\n });\r\n\r\n $('[' + this.ELEMENT_CLOSE + ']').each(function () {\r\n var elem = $(this);\r\n\r\n elem.unbind('click').click(self.eventClose.bind(self));\r\n });\r\n };\r\n\r\n VideoEmbed.prototype.eventPlay = function (e) {\r\n e.preventDefault();\r\n var id = $(e.currentTarget).attr(this.ELEMENT_PLAY);\r\n this.play(id);\r\n };\r\n\r\n VideoEmbed.prototype.eventClose = function (e) {\r\n e.preventDefault();\r\n\r\n var id = $(e.currentTarget).attr(this.ELEMENT_CLOSE);\r\n this.close(id);\r\n };\r\n\r\n VideoEmbed.prototype.getElementId = function (element) {\r\n return element.type + '-' + element.id;\r\n };\r\n\r\n VideoEmbed.prototype.play = function (id) {\r\n if (this.elements[id]) {\r\n var element = this.elements[id];\r\n if (element.type === 'youtube') {\r\n if (element.player && element.player.playVideo) {\r\n element.elem.show();\r\n element.player.playVideo();\r\n }\r\n }\r\n else if (element.type === 'vimeo') {\r\n if (element.player && element.player.play) {\r\n element.elem.show();\r\n element.player.play();\r\n }\r\n }\r\n }\r\n };\r\n\r\n VideoEmbed.prototype.stop = function (id) {\r\n if (this.elements[id]) {\r\n var element = this.elements[id];\r\n if (element.type === 'youtube') {\r\n if (element.player && element.player.stopVideo) {\r\n element.player.stopVideo();\r\n }\r\n }\r\n else if (element.type === 'vimeo') {\r\n if (element.player && element.player.pause) {\r\n element.player.pause();\r\n element.player.setCurrentTime(0);\r\n }\r\n }\r\n }\r\n };\r\n\r\n VideoEmbed.prototype.close = function (id) {\r\n this.stop(id);\r\n if (this.elements[id]) {\r\n var element = this.elements[id];\r\n element.elem.hide();\r\n }\r\n };\r\n\r\n w.THF = w.THF || {};\r\n w.THF.Interface = w.THF.Interface || {};\r\n w.THF.Interface.VideoEmbed = new VideoEmbed();\r\n})(jQuery, window);"]}