/*

simple postmessage plugin

Useful when a reveal slideshow is inside an iframe.
It allows to call reveal methods from outside.

Example:
         var reveal =  window.frames[0];

         // Reveal.prev(); 
         reveal.postMessage(JSON.stringify({method: 'prev', args: []}), '*');
         // Reveal.next(); 
         reveal.postMessage(JSON.stringify({method: 'next', args: []}), '*');
         // Reveal.slide(2, 2); 
         reveal.postMessage(JSON.stringify({method: 'slide', args: [2,2]}), '*');

Add to the slideshow:

        dependencies: [
                ...
                { src: 'plugin/postmessage/postmessage.js', async: true, condition: function() { return !!document.body.classList; } }
        ]

*/

(function (){

window.addEventListener( "message", function ( event ) {
        var data = JSON.parse( event.data ),
                        method = data.method,
                        args = data.args;

        if( typeof Reveal[method] === 'function' ) {
                Reveal[method].apply( Reveal, data.args );
        }
}, false);

}());