{"version":3,"sources":["webpack:///./node_modules/vimeo-froogaloop2/javascript/froogaloop.js"],"names":["Froogaloop","iframe","fn","init","eventCallbacks","isReady","playerOrigin","Array","prototype","slice","postMessage","method","params","target","contentWindow","data","JSON","stringify","value","onMessageReceived","event","parse","e","test","origin","eventData","target_id","player_id","callback","eventName","getCallback","undefined","push","length","apply","call","storeCallback","isFunction","obj","constructor","element","document","getElementById","this","api","valueOrCallback","id","addEvent","removeEvent","removed","removeCallback","window","addEventListener","attachEvent","$f"],"mappings":"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","file":"167.js","sourcesContent":["// Init style shamelessly stolen from jQuery http://jquery.com\nvar Froogaloop = (function(){\n    // Define a local copy of Froogaloop\n    function Froogaloop(iframe) {\n        // The Froogaloop object is actually just the init constructor\n        return new Froogaloop.fn.init(iframe);\n    }\n\n    var eventCallbacks = {},\n        hasWindowEvent = false,\n        isReady = false,\n        slice = Array.prototype.slice,\n        playerOrigin = '*';\n\n    Froogaloop.fn = Froogaloop.prototype = {\n        element: null,\n\n        init: function(iframe) {\n            if (typeof iframe === \"string\") {\n                iframe = document.getElementById(iframe);\n            }\n\n            this.element = iframe;\n\n            return this;\n        },\n\n        /*\n         * Calls a function to act upon the player.\n         *\n         * @param {string} method The name of the Javascript API method to call. Eg: 'play'.\n         * @param {Array|Function} valueOrCallback params Array of parameters to pass when calling an API method\n         *                                or callback function when the method returns a value.\n         */\n        api: function(method, valueOrCallback) {\n            if (!this.element || !method) {\n                return false;\n            }\n\n            var self = this,\n                element = self.element,\n                target_id = element.id !== '' ? element.id : null,\n                params = !isFunction(valueOrCallback) ? valueOrCallback : null,\n                callback = isFunction(valueOrCallback) ? valueOrCallback : null;\n\n            // Store the callback for get functions\n            if (callback) {\n                storeCallback(method, callback, target_id);\n            }\n\n            postMessage(method, params, element);\n            return self;\n        },\n\n        /*\n         * Registers an event listener and a callback function that gets called when the event fires.\n         *\n         * @param eventName (String): Name of the event to listen for.\n         * @param callback (Function): Function that should be called when the event fires.\n         */\n        addEvent: function(eventName, callback) {\n            if (!this.element) {\n                return false;\n            }\n\n            var self = this,\n                element = self.element,\n                target_id = element.id !== '' ? element.id : null;\n\n\n            storeCallback(eventName, callback, target_id);\n\n            // The ready event is not registered via postMessage. It fires regardless.\n            if (eventName != 'ready') {\n                postMessage('addEventListener', eventName, element);\n            }\n            else if (eventName == 'ready' && isReady) {\n                callback.call(null, target_id);\n            }\n\n            return self;\n        },\n\n        /*\n         * Unregisters an event listener that gets called when the event fires.\n         *\n         * @param eventName (String): Name of the event to stop listening for.\n         */\n        removeEvent: function(eventName) {\n            if (!this.element) {\n                return false;\n            }\n\n            var self = this,\n                element = self.element,\n                target_id = element.id !== '' ? element.id : null,\n                removed = removeCallback(eventName, target_id);\n\n            // The ready event is not registered\n            if (eventName != 'ready' && removed) {\n                postMessage('removeEventListener', eventName, element);\n            }\n        }\n    };\n\n    /**\n     * Handles posting a message to the parent window.\n     *\n     * @param method (String): name of the method to call inside the player. For api calls\n     * this is the name of the api method (api_play or api_pause) while for events this method\n     * is api_addEventListener.\n     * @param params (Object or Array): List of parameters to submit to the method. Can be either\n     * a single param or an array list of parameters.\n     * @param target (HTMLElement): Target iframe to post the message to.\n     */\n    function postMessage(method, params, target) {\n        if (!target.contentWindow.postMessage) {\n            return false;\n        }\n\n        var data = JSON.stringify({\n            method: method,\n            value: params\n        });\n\n        target.contentWindow.postMessage(data, playerOrigin);\n    }\n\n    /**\n     * Event that fires whenever the window receives a message from its parent\n     * via window.postMessage.\n     */\n    function onMessageReceived(event) {\n        var data, method;\n\n        try {\n            data = JSON.parse(event.data);\n            method = data.event || data.method;\n        }\n        catch(e)  {\n            //fail silently... like a ninja!\n        }\n\n        if (method == 'ready' && !isReady) {\n            isReady = true;\n        }\n\n        // Handles messages from the vimeo player only\n        if (!(/^https?:\\/\\/player.vimeo.com/).test(event.origin)) {\n            return false;\n        }\n\n        if (playerOrigin === '*') {\n            playerOrigin = event.origin;\n        }\n\n        var value = data.value,\n            eventData = data.data,\n            target_id = target_id === '' ? null : data.player_id,\n\n            callback = getCallback(method, target_id),\n            params = [];\n\n        if (!callback) {\n            return false;\n        }\n\n        if (value !== undefined) {\n            params.push(value);\n        }\n\n        if (eventData) {\n            params.push(eventData);\n        }\n\n        if (target_id) {\n            params.push(target_id);\n        }\n\n        return params.length > 0 ? callback.apply(null, params) : callback.call();\n    }\n\n\n    /**\n     * Stores submitted callbacks for each iframe being tracked and each\n     * event for that iframe.\n     *\n     * @param eventName (String): Name of the event. Eg. api_onPlay\n     * @param callback (Function): Function that should get executed when the\n     * event is fired.\n     * @param target_id (String) [Optional]: If handling more than one iframe then\n     * it stores the different callbacks for different iframes based on the iframe's\n     * id.\n     */\n    function storeCallback(eventName, callback, target_id) {\n        if (target_id) {\n            if (!eventCallbacks[target_id]) {\n                eventCallbacks[target_id] = {};\n            }\n            eventCallbacks[target_id][eventName] = callback;\n        }\n        else {\n            eventCallbacks[eventName] = callback;\n        }\n    }\n\n    /**\n     * Retrieves stored callbacks.\n     */\n    function getCallback(eventName, target_id) {\n        if (target_id) {\n            return eventCallbacks[target_id][eventName];\n        }\n        else {\n            return eventCallbacks[eventName];\n        }\n    }\n\n    function removeCallback(eventName, target_id) {\n        if (target_id && eventCallbacks[target_id]) {\n            if (!eventCallbacks[target_id][eventName]) {\n                return false;\n            }\n            eventCallbacks[target_id][eventName] = null;\n        }\n        else {\n            if (!eventCallbacks[eventName]) {\n                return false;\n            }\n            eventCallbacks[eventName] = null;\n        }\n\n        return true;\n    }\n\n    function isFunction(obj) {\n        return !!(obj && obj.constructor && obj.call && obj.apply);\n    }\n\n    function isArray(obj) {\n        return toString.call(obj) === '[object Array]';\n    }\n\n    // Give the init function the Froogaloop prototype for later instantiation\n    Froogaloop.fn.init.prototype = Froogaloop.fn;\n\n    // Listens for the message event.\n    // W3C\n    if (window.addEventListener) {\n        window.addEventListener('message', onMessageReceived, false);\n    }\n    // IE\n    else {\n        window.attachEvent('onmessage', onMessageReceived);\n    }\n\n    // Expose froogaloop to the global object\n    return (window.Froogaloop = window.$f = Froogaloop);\n\n})();\n"],"sourceRoot":""}