24dc65ca5fa1dda5548874c7764fc6c897c09b35
[lhc/web/www.git] / www / plugins-dist / medias / javascript / mejs-init.js
1 var mejsloader;
2 (function(){
3 var L=mejsloader;
4 if (typeof L == "undefined")
5 mejsloader = L = {gs:null,plug:{},css:{},init:null,c:0,cssload:null};
6 if (!L.init){
7 L.cssload = function (f){
8 if (typeof L.css[f]=="undefined"){
9 L.css[f] = true;
10 var stylesheet = document.createElement('link');
11 stylesheet.href = f;
12 stylesheet.rel = 'stylesheet';
13 stylesheet.type = 'text/css';
14 document.getElementsByTagName('head')[0].appendChild(stylesheet);
15 }
16 }
17 L.init = function (){
18 if (!(L.gs===true)) return;
19 (function ($){
20 jQuery("audio.mejs,video.mejs").not('.done').each(function (){
21 var me = jQuery(this).addClass('done');
22 //console.log(this);
23 var id;
24 if (!(id = me.attr('id'))){
25 id = "mejs-"+(me.attr('data-id'))+"-"+(L.c++);
26 me.attr('id', id);
27 }
28 var opt = {options: {}, plugins: {}, css: []}, i, v;
29 for (i in opt){
30 if (v = me.attr('data-mejs'+i)) opt[i] = jQuery.parseJSON(v);
31 }
32 function runthisplayer(){
33 var run = true;
34 //console.log(css);
35 for (var c in opt.css){
36 L.cssload(opt.css[c]);
37 }
38 for (var p in opt.plugins){
39 //console.log(p);
40 //console.log(L.plug[p]);
41 // load this plugin
42 if (typeof L.plug[p]=="undefined"){
43 //console.log("Load Plugin "+p);
44 run = false;
45 L.plug[p] = false;
46 jQuery.getScript(opt.plugins[p], function (){
47 L.plug[p] = true;
48 runthisplayer();
49 });
50 }
51 // this plugin is loading
52 else if (L.plug[p]==false){
53 //console.log("Plugin "+p+" loading...");
54 run = false;
55 }
56 else {
57 //console.log("Plugin "+p+" loaded");
58 }
59 }
60 if (run){
61 new MediaElementPlayer('#'+id, jQuery.extend(opt.options, {
62 "success": function (media){
63 function togglePlayingState(){
64 jQuery(media).closest('.mejs-inner').removeClass(media.paused ? 'playing' : 'paused').addClass(media.paused ? 'paused' : 'playing');
65 }
66
67 togglePlayingState();
68 media.addEventListener('play', togglePlayingState, false);
69 media.addEventListener('playing', togglePlayingState, false);
70 media.addEventListener('pause', togglePlayingState, false);
71 media.addEventListener('paused', togglePlayingState, false);
72 if (me.attr('autoplay')) media.play();
73 }
74 }));
75 }
76 }
77
78 runthisplayer();
79 })
80 })(jQuery);
81 }
82 }
83 if (!L.gs){
84 if (typeof mejscss !== "undefined"){
85 L.cssload(mejscss);
86 }
87 L.gs = jQuery.getScript(mejspath,function(){
88 L.gs = true;
89 L.init(); // init immediate des premiers players dans la page
90 jQuery(L.init); // init exhaustive de tous les players
91 onAjaxLoad(L.init); // init lors d'un load ajax
92 });
93 }
94 })();