File "mejs-init.js"

Full path: /home/argothem/www/organecyberpresse/plugins/auto/player/v4.3.0/javascript/mejs-init.js
File size: 3.97 KB
MIME-type: text/plain
Charset: utf-8

var mejsloader;
var mejsstart;
(function(){
	var L=mejsloader;
	if (typeof L == "undefined")
		mejsloader = L = {gs:null,plug:{},css:{},init:null,c:0,cssload:null};
	if (!L.init){
		L.cssload = function (f){
			if (typeof L.css[f]=="undefined"){
				L.css[f] = true;
				var stylesheet = document.createElement('link');
				stylesheet.href = f;
				stylesheet.rel = 'stylesheet';
				stylesheet.type = 'text/css';
				document.getElementsByTagName('head')[0].appendChild(stylesheet);
			}
		}
		L.getScript = function (source, callback) {
		    var script = document.createElement('script');
		    var prior = document.getElementsByTagName('script')[0];
		    script.async = 1;

		    script.onload = script.onreadystatechange = function( _, isAbort ) {
		        if(isAbort || !script.readyState || /loaded|complete/.test(script.readyState) ) {
		            script.onload = script.onreadystatechange = null;
		            script = undefined;

		            if(!isAbort && callback) setTimeout(callback, 0);
		        }
		    };

		    script.src = source;
		    prior.parentNode.insertBefore(script, prior);
		}
		L.init = function (){
			if (!(L.gs===true)) return;
			document.querySelectorAll("audio.mejs,video.mejs").forEach(function(node) {
				if (!node.classList.contains('done') && !node.classList.contains('mejs__player')) {
					node.classList.add('done');
					var id;
					if (!(id = node.id)){
						id = "mejs-" + node.dataset.id + "-" + (L.c++);
						node.id = id;
					}
					var opt = {options: {}, plugins: {}, css: [], qualities: [], sources: []}, i, v;
					for (i in opt){
						var v = node.dataset['mejs'+i];
						if (v) {
							opt[i] = JSON.parse(v);
						}
					}
					function loadoneplugin(p) {
						L.getScript(opt.plugins[p], function (){
							L.plug[p] = true;
							runthisplayer();
						});
					};
					function runthisplayer(){
						var run = true;
						for (var c in opt.css){
							L.cssload(opt.css[c]);
						}
						for (var p in opt.plugins){
							// load this plugin
							if (typeof L.plug[p]=="undefined"){
								run = false;
								L.plug[p] = false;
								loadoneplugin(p);
							}
							// this plugin is loading
							else if (L.plug[p] === false){
								run = false;
							}
						}
						if (run){
							opt.options['success'] = function (media, playernode){
								function togglePlayingState(){
									var inner = media.closest('.mejs__inner');
									if (!media.paused) {
										inner.classList.remove('paused');
										inner.classList.remove('pausing');
										inner.classList.add('playing');
										// set the focus on the slider to be able to play/pause manualy
									}
									else {
										inner.classList.add('pausing');
										setTimeout(function(){
												if (inner.classList.contains('pausing')) {
													inner.classList.remove('playing');
													inner.classList.remove('pausing');
													inner.classList.add('paused');
												}
											},100
										);
									}
								}
								togglePlayingState();
								media.addEventListener('play', togglePlayingState, false);
								media.addEventListener('playing', togglePlayingState, false);
								media.addEventListener('pause', togglePlayingState, false);
								media.addEventListener('paused', togglePlayingState, false);
								if (playernode.autoplay) {
									// il faut couper le son pour que la lecture demarre (permission navigateur)
									media.muted = true;
								}
							}

							var thisplayer = new MediaElementPlayer(id, opt.options);
						}
					}
					runthisplayer();
				}
			});
		}
	}
	if (!L.gs){
		if (typeof mejscss !== "undefined"){
			L.cssload(mejscss);
		}
		L.gs = L.getScript(mejspath, function (){
			L.gs = true;
			L.init(); // init immediate des premiers players dans la page
			// init exhaustive de tous les players plus tard si loading pas fini
			if (document.readyState==="loading"){
				document.addEventListener("DOMContentLoaded", L.init);
			}
			onAjaxLoad(L.init); // init lors d'un load ajax
		});
	}
})();