/*
 * Video.js plugin for Pannellum
 * Copyright (c) 2015 Matthew Petroff
 * MIT License
 */

(function(document, videojs, pannellum) {
'use strict';

videojs.plugin('pannellum', function() {
    // Create Pannellum instance
    var player = this;
    var container = player.el();
    var vid = container.getElementsByTagName('video')[0],
        pnlmContainer = document.createElement('div'),
        config = {
            'type': 'equirectangular',
            'dynamic': true,
            'showZoomCtrl': false,
            'showFullscreenCtrl': false,
            'autoLoad': true,
            'panorama': vid
        };
    pnlmContainer.style.visibility = 'hidden';
    var pnlm = pannellum.viewer(pnlmContainer, config);
    container.insertBefore(pnlmContainer, container.firstChild);
    vid.style.display = 'none';

    // Handle update settings
    player.on('play', function() {
        pnlm.setUpdate(true);
    });
    player.on('pause', function() {
        pnlm.setUpdate(false);
    });
    player.on('loadeddata', function() {
        pnlmContainer.style.visibility = 'visible';
    });
    player.on('seeking', function() {
        if (player.paused())
            pnlm.setUpdate(true);
    });
    player.on('seeked', function() {
        if (player.paused())
            pnlm.setUpdate(false);
    });
});

})(document, videojs, pannellum);

/*
 * Video.js plugin for Pannellum
 * Copyright (c) 2015-2016 Matthew Petroff
 * MIT License
 */

(function(document, videojs, pannellum) {
'use strict';

videojs.plugin('pannellum', function() {
    // Create Pannellum instance
    var player = this;
    var container = player.el();
    var vid = container.getElementsByTagName('video')[0],
        pnlmContainer = document.createElement('div'),
        config = {
            'type': 'equirectangular',
            'dynamic': true,
            'showZoomCtrl': false,
            'showFullscreenCtrl': false,
            'autoLoad': true,
            'panorama': vid
        };
    pnlmContainer.style.visibility = 'hidden';
    var pnlm = pannellum.viewer(pnlmContainer, config);
    container.insertBefore(pnlmContainer, container.firstChild);
    vid.style.display = 'none';

    // Handle update settings
    player.on('play', function() {
        if (vid.readyState > 1)
            pnlm.setUpdate(true);
    });
    player.on('canplay', function() {
        if (!player.paused())
            pnlm.setUpdate(true);
    });
    player.on('pause', function() {
        pnlm.setUpdate(false);
    });
    player.on('loadeddata', function() {
        pnlmContainer.style.visibility = 'visible';
    });
    player.on('seeking', function() {
        if (player.paused())
            pnlm.setUpdate(true);
    });
    player.on('seeked', function() {
        if (player.paused())
            pnlm.setUpdate(false);
    });
});

})(document, videojs, pannellum);

Fix bug with video in Chrome.