WordPress.org

Make WordPress Core

Changeset 23958


Ignore:
Timestamp:
04/10/13 22:38:30 (15 months ago)
Author:
ryan
Message:

Update MediaElement.js to 2.11.0.

Props wonderboymusic
see #24015

Location:
trunk/wp-includes/js/mediaelement
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/js/mediaelement/mediaelement-and-player.js

    r23729 r23958  
    99* 
    1010* Copyright 2010-2012, John Dyer (http://j.hn) 
    11 * Dual licensed under the MIT or GPL Version 2 licenses. 
     11* License: MIT 
    1212* 
    1313*/ 
     
    1616 
    1717// version number 
    18 mejs.version = '2.10.1'; 
     18mejs.version = '2.11.0'; 
    1919 
    2020// player number (for missing, same id attr) 
     
    3131    ], 
    3232    youtube: [ 
    33         {version: null, types: ['video/youtube', 'video/x-youtube']} 
     33        {version: null, types: ['video/youtube', 'video/x-youtube', 'audio/youtube', 'audio/x-youtube']} 
    3434    ], 
    3535    vimeo: [ 
     
    3737    ] 
    3838}; 
     39 
    3940 
    4041/* 
     
    8687            fps = 25; 
    8788        } 
    88      
     89 
    8990        var hours = Math.floor(time / 3600) % 24, 
    9091            minutes = Math.floor(time / 60) % 60, 
    9192            seconds = Math.floor(time % 60), 
    9293            frames = Math.floor(((time % 1)*fps).toFixed(3)), 
    93             result =  
     94            result = 
    9495                    ( (forceHours || hours > 0) ? (hours < 10 ? '0' + hours : hours) + ':' : '') 
    9596                        + (minutes < 10 ? '0' + minutes : minutes) + ':' 
    9697                        + (seconds < 10 ? '0' + seconds : seconds) 
    9798                        + ((showFrameCount) ? ':' + (frames < 10 ? '0' + frames : frames) : ''); 
    98      
     99 
    99100        return result; 
    100101    }, 
    101      
     102 
    102103    timeCodeToSeconds: function(hh_mm_ss_ff, forceHours, showFrameCount, fps){ 
    103104        if (typeof showFrameCount == 'undefined') { 
     
    106107            fps = 25; 
    107108        } 
    108      
     109 
    109110        var tc_array = hh_mm_ss_ff.split(":"), 
    110111            tc_hh = parseInt(tc_array[0], 10), 
     
    113114            tc_ff = 0, 
    114115            tc_in_seconds = 0; 
    115          
     116 
    116117        if (showFrameCount) { 
    117118            tc_ff = parseInt(tc_array[3])/fps; 
    118119        } 
    119          
     120 
    120121        tc_in_seconds = ( tc_hh * 3600 ) + ( tc_mm * 60 ) + tc_ss + tc_ff; 
    121          
     122 
    122123        return tc_in_seconds; 
    123124    }, 
    124      
     125 
    125126 
    126127    convertSMPTEtoSeconds: function (SMPTE) { 
    127         if (typeof SMPTE != 'string')  
     128        if (typeof SMPTE != 'string') 
    128129            return false; 
    129130 
    130131        SMPTE = SMPTE.replace(',', '.'); 
    131          
     132 
    132133        var secs = 0, 
    133134            decimalLen = (SMPTE.indexOf('.') != -1) ? SMPTE.split('.')[1].length : 0, 
    134135            multiplier = 1; 
    135          
     136 
    136137        SMPTE = SMPTE.split(':').reverse(); 
    137          
     138 
    138139        for (var i = 0; i < SMPTE.length; i++) { 
    139140            multiplier = 1; 
    140141            if (i > 0) { 
    141                 multiplier = Math.pow(60, i);  
     142                multiplier = Math.pow(60, i); 
    142143            } 
    143144            secs += Number(SMPTE[i]) * multiplier; 
    144145        } 
    145146        return Number(secs.toFixed(decimalLen)); 
    146     },   
    147      
     147    }, 
     148 
    148149    /* borrowed from SWFObject: http://code.google.com/p/swfobject/source/browse/trunk/swfobject/src/swfobject.js#474 */ 
    149150    removeSwf: function(id) { 
    150151        var obj = document.getElementById(id); 
    151         if (obj && obj.nodeName == "OBJECT") { 
     152        if (obj && /object|embed/i.test(obj.nodeName)) { 
    152153            if (mejs.MediaFeatures.isIE) { 
    153154                obj.style.display = "none"; 
     
    173174            } 
    174175            obj.parentNode.removeChild(obj); 
    175         }        
     176        } 
    176177    } 
    177178}; 
     
    304305        t.isOpera = (ua.match(/opera/gi) !== null); 
    305306        t.hasTouch = ('ontouchstart' in window); 
    306          
     307 
    307308        // borrowed from Modernizr 
    308309        t.svg = !! document.createElementNS && 
     
    313314            v = document.createElement(html5Elements[i]); 
    314315        } 
    315          
     316 
    316317        t.supportsMediaTag = (typeof v.canPlayType !== 'undefined' || t.isBustedAndroid); 
    317318 
    318319        // detect native JavaScript fullscreen (Safari/Firefox only, Chrome still fails) 
    319          
     320 
    320321        // iOS 
    321322        t.hasSemiNativeFullScreen = (typeof v.webkitEnterFullscreen !== 'undefined'); 
    322          
     323 
    323324        // Webkit/firefox 
    324325        t.hasWebkitNativeFullScreen = (typeof v.webkitRequestFullScreen !== 'undefined'); 
    325326        t.hasMozNativeFullScreen = (typeof v.mozRequestFullScreen !== 'undefined'); 
    326          
     327 
    327328        t.hasTrueNativeFullScreen = (t.hasWebkitNativeFullScreen || t.hasMozNativeFullScreen); 
    328329        t.nativeFullScreenEnabled = t.hasTrueNativeFullScreen; 
     
    330331            t.nativeFullScreenEnabled = v.mozFullScreenEnabled; 
    331332        } 
    332          
    333          
     333 
     334 
    334335        if (this.isChrome) { 
    335336            t.hasSemiNativeFullScreen = false; 
    336337        } 
    337          
     338 
    338339        if (t.hasTrueNativeFullScreen) { 
    339340            t.fullScreenEventName = (t.hasWebkitNativeFullScreen) ? 'webkitfullscreenchange' : 'mozfullscreenchange'; 
    340              
    341              
     341 
     342 
    342343            t.isFullScreen = function() { 
    343344                if (v.mozRequestFullScreen) { 
     
    347348                } 
    348349            } 
    349                      
     350 
    350351            t.requestFullScreen = function(el) { 
    351          
     352 
    352353                if (t.hasWebkitNativeFullScreen) { 
    353354                    el.webkitRequestFullScreen(); 
     
    356357                } 
    357358            } 
    358              
    359             t.cancelFullScreen = function() {                
     359 
     360            t.cancelFullScreen = function() { 
    360361                if (t.hasWebkitNativeFullScreen) { 
    361362                    document.webkitCancelFullScreen(); 
     
    363364                    document.mozCancelFullScreen(); 
    364365                } 
    365             }    
    366              
    367         } 
    368          
    369          
     366            } 
     367 
     368        } 
     369 
     370 
    370371        // OS X 10.5 can't do this even if it says it can :( 
    371372        if (t.hasSemiNativeFullScreen && ua.match(/mac os x 10_5/i)) { 
     
    373374            t.hasSemiNativeFullScreen = false; 
    374375        } 
    375          
     376 
    376377    } 
    377378}; 
    378379mejs.MediaFeatures.init(); 
    379  
    380380 
    381381/* 
     
    406406    // or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}] 
    407407    setSrc: function (url) { 
    408          
     408 
    409409        // Fix for IE9 which can't set .src when there are <source> elements. Awesome, right? 
    410         var  
     410        var 
    411411            existingSources = this.getElementsByTagName('source'); 
    412412        while (existingSources.length > 0){ 
    413413            this.removeChild(existingSources[0]); 
    414414        } 
    415      
     415 
    416416        if (typeof url == 'string') { 
    417417            this.src = url; 
     
    443443    this.src = mediaUrl; 
    444444    this.events = {}; 
     445    this.attributes = {}; 
    445446}; 
    446447 
     
    491492                this.pluginApi.loadMedia(); 
    492493            } 
    493              
     494 
    494495            this.paused = false; 
    495496        } 
     
    501502            } else { 
    502503                this.pluginApi.pauseMedia(); 
    503             }            
    504              
    505              
     504            } 
     505 
     506 
    506507            this.paused = true; 
    507508        } 
     
    513514            } else { 
    514515                this.pluginApi.stopMedia(); 
    515             }    
     516            } 
    516517            this.paused = true; 
    517518        } 
     
    533534                    // find plugin that can play the type 
    534535                    if (type == pluginInfo.types[j]) { 
    535                         return true; 
     536                        return 'probably'; 
    536537                    } 
    537538                } 
     
    539540        } 
    540541 
    541         return false; 
    542     }, 
    543      
     542        return ''; 
     543    }, 
     544 
    544545    positionFullscreenButton: function(x,y,visibleAndAbove) { 
    545546        if (this.pluginApi != null && this.pluginApi.positionFullscreenButton) { 
     
    547548        } 
    548549    }, 
    549      
     550 
    550551    hideFullscreenButton: function() { 
    551552        if (this.pluginApi != null && this.pluginApi.hideFullscreenButton) { 
    552553            this.pluginApi.hideFullscreenButton(); 
    553         }        
    554     },   
    555      
     554        } 
     555    }, 
     556 
    556557 
    557558    // custom methods since not all JavaScript implementations support get/set 
     
    583584            } else { 
    584585                this.pluginApi.setCurrentTime(time); 
    585             }                
    586              
    587              
    588              
     586            } 
     587 
     588 
     589 
    589590            this.currentTime = time; 
    590591        } 
     
    620621    // additional non-HTML5 methods 
    621622    setVideoSize: function (width, height) { 
    622          
     623 
    623624        //if (this.pluginType == 'flash' || this.pluginType == 'silverlight') { 
    624625            if ( this.pluginElement.style) { 
     
    637638        } 
    638639    }, 
    639      
     640 
    640641    enterFullScreen: function() { 
    641642        if (this.pluginApi != null && this.pluginApi.setFullscreen) { 
    642643            this.setFullscreen(true); 
    643         }        
    644          
    645     }, 
    646      
     644        } 
     645 
     646    }, 
     647 
    647648    exitFullScreen: function() { 
    648649        if (this.pluginApi != null && this.pluginApi.setFullscreen) { 
    649650            this.setFullscreen(false); 
    650651        } 
    651     },   
     652    }, 
    652653 
    653654    // start: fake events 
     
    668669        } 
    669670        return false; 
    670     },   
     671    }, 
    671672    dispatchEvent: function (eventName) { 
    672673        var i, 
     
    682683    }, 
    683684    // end: fake events 
    684      
     685 
    685686    // fake DOM attribute methods 
    686     attributes: {}, 
    687687    hasAttribute: function(name){ 
    688         return (name in this.attributes);   
     688        return (name in this.attributes); 
    689689    }, 
    690690    removeAttribute: function(name){ 
     
    703703    remove: function() { 
    704704        mejs.Utility.removeSwf(this.pluginElement.id); 
     705        mejs.MediaPluginBridge.unregisterPluginElement(this.pluginElement.id); 
    705706    } 
    706707}; 
     
    715716        this.pluginMediaElements[id] = pluginMediaElement; 
    716717        this.htmlMediaElements[id] = htmlMediaElement; 
     718    }, 
     719 
     720    unregisterPluginElement: function (id) { 
     721        delete this.pluginMediaElements[id]; 
     722        delete this.htmlMediaElements[id]; 
    717723    }, 
    718724 
     
    734740                    break; 
    735741            } 
    736      
     742 
    737743            if (pluginMediaElement.pluginApi != null && pluginMediaElement.success) { 
    738744                pluginMediaElement.success(pluginMediaElement, htmlMediaElement); 
     
    816822    pluginHeight: -1, 
    817823    // additional plugin variables in 'key=value' form 
    818     pluginVars: [],  
     824    pluginVars: [], 
    819825    // rate in milliseconds for Flash and Silverlight to fire the timeupdate event 
    820826    // larger number is less accurate, but less strain on plugin->JavaScript bridge 
     
    857863 
    858864        // clean up attributes 
    859         src =       (typeof src == 'undefined'  || src === null || src == '') ? null : src;      
     865        src =       (typeof src == 'undefined'  || src === null || src == '') ? null : src; 
    860866        poster =    (typeof poster == 'undefined'   || poster === null) ? '' : poster; 
    861867        preload =   (typeof preload == 'undefined'  || preload === null || preload === 'false') ? 'none' : preload; 
     
    875881                }, false); 
    876882            } 
    877          
     883 
    878884            // add methods to native HTMLMediaElement 
    879885            return this.updateNative(playback, options, autoplay, preload); 
    880886        } else if (playback.method !== '') { 
    881887            // create plugin to mimic HTMLMediaElement 
    882              
     888 
    883889            return this.createPlugin( playback,  options, poster, autoplay, preload, controls); 
    884890        } else { 
    885891            // boo, no HTML5, no Flash, no Silverlight. 
    886892            this.createErrorMessage( playback, options, poster ); 
    887              
     893 
    888894            return this; 
    889895        } 
    890896    }, 
    891      
     897 
    892898    determinePlayback: function(htmlMediaElement, options, supportsMediaTag, isMediaTag, src) { 
    893899        var 
     
    905911            dummy, 
    906912            media; 
    907              
     913 
    908914        // STEP 1: Get URL and type from <video src> or <source src> 
    909915 
    910916        // supplied type overrides <video type> and <source type> 
    911917        if (typeof options.type != 'undefined' && options.type !== '') { 
    912              
     918 
    913919            // accept either string or array of types 
    914920            if (typeof options.type == 'string') { 
    915921                mediaFiles.push({type:options.type, url:src}); 
    916922            } else { 
    917                  
     923 
    918924                for (i=0; i<options.type.length; i++) { 
    919925                    mediaFiles.push({type:options.type[i], url:src}); 
     
    942948            } 
    943949        } 
    944          
     950 
    945951        // in the case of dynamicly created players 
    946952        // check for audio types 
     
    948954            result.isVideo = false; 
    949955        } 
    950          
     956 
    951957 
    952958        // STEP 2: Test for playback method 
    953          
     959 
    954960        // special case for Android which sadly doesn't implement the canPlayType function (always returns '') 
    955961        if (mejs.MediaFeatures.isBustedAndroid) { 
     
    957963                return (type.match(/video\/(mp4|m4v)/gi) !== null) ? 'maybe' : ''; 
    958964            }; 
    959         }        
    960          
     965        } 
     966 
    961967 
    962968        // test for native playback first 
    963969        if (supportsMediaTag && (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'native')) { 
    964                          
     970 
    965971            if (!isMediaTag) { 
    966972 
    967                 // create a real HTML5 Media Element  
    968                 dummy = document.createElement( result.isVideo ? 'video' : 'audio');             
     973                // create a real HTML5 Media Element 
     974                dummy = document.createElement( result.isVideo ? 'video' : 'audio'); 
    969975                htmlMediaElement.parentNode.insertBefore(dummy, htmlMediaElement); 
    970976                htmlMediaElement.style.display = 'none'; 
    971                  
     977 
    972978                // use this one from now on 
    973979                result.htmlMediaElement = htmlMediaElement = dummy; 
    974980            } 
    975                  
     981 
    976982            for (i=0; i<mediaFiles.length; i++) { 
    977983                // normal check 
    978                 if (htmlMediaElement.canPlayType(mediaFiles[i].type).replace(/no/, '') !== ''  
     984                if (htmlMediaElement.canPlayType(mediaFiles[i].type).replace(/no/, '') !== '' 
    979985                    // special case for Mac/Safari 5.0.3 which answers '' to canPlayType('audio/mp3') but 'maybe' to canPlayType('audio/mpeg') 
    980986                    || htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/mp3/,'mpeg')).replace(/no/, '') !== '') { 
     
    983989                    break; 
    984990                } 
    985             }            
    986              
     991            } 
     992 
    987993            if (result.method === 'native') { 
    988994                if (result.url !== null) { 
    989995                    htmlMediaElement.src = result.url; 
    990996                } 
    991              
     997 
    992998                // if `auto_plugin` mode, then cache the native result but try plugins. 
    993999                if (options.mode !== 'auto_plugin') { 
     
    10061012 
    10071013                    pluginName = options.plugins[j]; 
    1008              
     1014 
    10091015                    // test version of plugin (for future features) 
    1010                     pluginVersions = mejs.plugins[pluginName];               
    1011                      
     1016                    pluginVersions = mejs.plugins[pluginName]; 
     1017 
    10121018                    for (k=0; k<pluginVersions.length; k++) { 
    10131019                        pluginInfo = pluginVersions[k]; 
    1014                      
     1020 
    10151021                        // test if user has the correct plugin version 
    1016                          
     1022 
    10171023                        // for youtube/vimeo 
    1018                         if (pluginInfo.version == null ||  
    1019                              
     1024                        if (pluginInfo.version == null || 
     1025 
    10201026                            mejs.PluginDetector.hasPluginVersion(pluginName, pluginInfo.version)) { 
    10211027 
     
    10341040            } 
    10351041        } 
    1036          
     1042 
    10371043        // at this point, being in 'auto_plugin' mode implies that we tried plugins but failed. 
    10381044        // if we have native support then return that. 
     
    10531059 
    10541060        // if no type is supplied, fake it with the extension 
    1055         if (url && !type) {      
     1061        if (url && !type) { 
    10561062            return this.getTypeFromFile(url); 
    10571063        } else { 
     
    10591065            // see http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element 
    10601066            // `video/mp4; codecs="avc1.42E01E, mp4a.40.2"` becomes `video/mp4` 
    1061              
     1067 
    10621068            if (type && ~type.indexOf(';')) { 
    1063                 return type.substr(0, type.indexOf(';'));  
     1069                return type.substr(0, type.indexOf(';')); 
    10641070            } else { 
    10651071                return type; 
     
    10671073        } 
    10681074    }, 
    1069      
     1075 
    10701076    getTypeFromFile: function(url) { 
    10711077        url = url.split('?')[0]; 
     
    10731079        return (/(mp4|m4v|ogg|ogv|webm|webmv|flv|wmv|mpeg|mov)/gi.test(ext) ? 'video' : 'audio') + '/' + this.getTypeFromExtension(ext); 
    10741080    }, 
    1075      
     1081 
    10761082    getTypeFromExtension: function(ext) { 
    1077          
     1083 
    10781084        switch (ext) { 
    10791085            case 'mp4': 
     
    10821088            case 'webm': 
    10831089            case 'webma': 
    1084             case 'webmv':    
     1090            case 'webmv': 
    10851091                return 'webm'; 
    10861092            case 'ogg': 
    10871093            case 'oga': 
    1088             case 'ogv':  
     1094            case 'ogv': 
    10891095                return 'ogg'; 
    10901096            default: 
     
    10941100 
    10951101    createErrorMessage: function(playback, options, poster) { 
    1096         var  
     1102        var 
    10971103            htmlMediaElement = playback.htmlMediaElement, 
    10981104            errorContainer = document.createElement('div'); 
    1099              
     1105 
    11001106        errorContainer.className = 'me-cannotplay'; 
    11011107 
     
    11161122 
    11171123    createPlugin:function(playback, options, poster, autoplay, preload, controls) { 
    1118         var  
     1124        var 
    11191125            htmlMediaElement = playback.htmlMediaElement, 
    11201126            width = 1, 
     
    11511157            width = (options.videoWidth > 0) ? options.videoWidth : (htmlMediaElement.getAttribute('width') !== null) ? htmlMediaElement.getAttribute('width') : options.defaultVideoWidth; 
    11521158            height = (options.videoHeight > 0) ? options.videoHeight : (htmlMediaElement.getAttribute('height') !== null) ? htmlMediaElement.getAttribute('height') : options.defaultVideoHeight; 
    1153          
     1159 
    11541160            // in case of '%' make sure it's encoded 
    11551161            width = mejs.Utility.encodeUrl(width); 
    11561162            height = mejs.Utility.encodeUrl(height); 
    1157          
     1163 
    11581164        } else { 
    11591165            if (options.enablePluginDebug) { 
     
    11701176        container.className = 'me-plugin'; 
    11711177        container.id = pluginid + '_container'; 
    1172          
     1178 
    11731179        if (playback.isVideo) { 
    11741180                htmlMediaElement.parentNode.insertBefore(container, htmlMediaElement); 
     
    12071213        if (options.pluginVars) { 
    12081214            initVars = initVars.concat(options.pluginVars); 
    1209         }        
     1215        } 
    12101216 
    12111217        switch (playback.method) { 
    12121218            case 'silverlight': 
    12131219                container.innerHTML = 
    1214 '<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="' + pluginid + '" name="' + pluginid + '" width="' + width + '" height="' + height + '">' + 
     1220'<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="' + pluginid + '" name="' + pluginid + '" width="' + width + '" height="' + height + '" class="mejs-shim">' + 
    12151221'<param name="initParams" value="' + initVars.join(',') + '" />' + 
    12161222'<param name="windowless" value="true" />' + 
     
    12291235                    specialIEContainer.outerHTML = 
    12301236'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" ' + 
    1231 'id="' + pluginid + '" width="' + width + '" height="' + height + '">' + 
     1237'id="' + pluginid + '" width="' + width + '" height="' + height + '" class="mejs-shim">' + 
    12321238'<param name="movie" value="' + options.pluginPath + options.flashName + '?x=' + (new Date()) + '" />' + 
    12331239'<param name="flashvars" value="' + initVars.join('&amp;') + '" />' + 
     
    12541260'flashvars="' + initVars.join('&') + '" ' + 
    12551261'width="' + width + '" ' + 
    1256 'height="' + height + '"></embed>'; 
     1262'height="' + height + '" ' + 
     1263'class="mejs-shim"></embed>'; 
    12571264                } 
    12581265                break; 
    1259              
     1266 
    12601267            case 'youtube': 
    1261              
    1262                  
     1268 
     1269 
    12631270                var 
    12641271                    videoId = playback.url.substr(playback.url.lastIndexOf('=')+1); 
     
    12701277                        videoId: videoId, 
    12711278                        height: height, 
    1272                         width: width     
    1273                     };               
    1274                  
     1279                        width: width 
     1280                    }; 
     1281 
    12751282                if (mejs.PluginDetector.hasPluginVersion('flash', [10,0,0]) ) { 
    12761283                    mejs.YouTubeApi.createFlash(youtubeSettings); 
    12771284                } else { 
    1278                     mejs.YouTubeApi.enqueueIframe(youtubeSettings);      
    1279                 } 
    1280                  
     1285                    mejs.YouTubeApi.enqueueIframe(youtubeSettings); 
     1286                } 
     1287 
    12811288                break; 
    1282              
     1289 
    12831290            // DEMO Code. Does NOT work. 
    12841291            case 'vimeo': 
    12851292                //console.log('vimeoid'); 
    1286                  
     1293 
    12871294                pluginMediaElement.vimeoid = playback.url.substr(playback.url.lastIndexOf('/')+1); 
    1288                  
    1289                 container.innerHTML ='<iframe src="http://player.vimeo.com/video/' + pluginMediaElement.vimeoid + '?portrait=0&byline=0&title=0" width="' + width +'" height="' + height +'" frameborder="0"></iframe>'; 
    1290                  
     1295 
     1296                container.innerHTML ='<iframe src="http://player.vimeo.com/video/' + pluginMediaElement.vimeoid + '?portrait=0&byline=0&title=0" width="' + width +'" height="' + height +'" frameborder="0" class="mejs-shim"></iframe>'; 
     1297 
    12911298                /* 
    12921299                container.innerHTML = 
    1293                     '<object width="' + width + '" height="' + height + '">' + 
     1300                    '<object width="' + width + '" height="' + height + '" class="mejs-shim">' + 
    12941301                        '<param name="allowfullscreen" value="true" />' + 
    12951302                        '<param name="allowscriptaccess" value="always" />' + 
    1296                         '<param name="flashvars" value="api=1" />' +  
     1303                        '<param name="flashvars" value="api=1" />' + 
    12971304                        '<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=' + pluginMediaElement.vimeoid  + '&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" />' + 
    1298                         '<embed src="//vimeo.com/moogaloop.swf?api=1&amp;clip_id=' + pluginMediaElement.vimeoid + '&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="' + width + '" height="' + height + '"></embed>' + 
     1305                        '<embed src="//vimeo.com/moogaloop.swf?api=1&amp;clip_id=' + pluginMediaElement.vimeoid + '&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="' + width + '" height="' + height + '" class="mejs-shim"></embed>' + 
    12991306                    '</object>'; 
    13001307                    */ 
    1301                                      
    1302                 break;           
     1308 
     1309                break; 
    13031310        } 
    13041311        // hide original element 
     
    13061313 
    13071314        // FYI: options.success will be fired by the MediaPluginBridge 
    1308          
     1315 
    13091316        return pluginMediaElement; 
    13101317    }, 
    13111318 
    13121319    updateNative: function(playback, options, autoplay, preload) { 
    1313          
     1320 
    13141321        var htmlMediaElement = playback.htmlMediaElement, 
    13151322            m; 
    1316          
    1317          
     1323 
     1324 
    13181325        // add methods to video object to bring it into parity with Flash Object 
    13191326        for (m in mejs.HtmlMediaElement) { 
     
    13241331        Chrome now supports preload="none" 
    13251332        if (mejs.MediaFeatures.isChrome) { 
    1326          
     1333 
    13271334            // special case to enforce preload attribute (Chrome doesn't respect this) 
    13281335            if (preload === 'none' && !autoplay) { 
    1329              
     1336 
    13301337                // forces the browser to stop loading (note: fails in IE9) 
    13311338                htmlMediaElement.src = ''; 
     
    13511358        // fire success code 
    13521359        options.success(htmlMediaElement, htmlMediaElement); 
    1353          
     1360 
    13541361        return htmlMediaElement; 
    13551362    } 
     
    13771384    iframeQueue: [], 
    13781385    enqueueIframe: function(yt) { 
    1379          
     1386 
    13801387        if (this.isLoaded) { 
    13811388            this.createIframe(yt); 
     
    13861393    }, 
    13871394    createIframe: function(settings) { 
    1388          
     1395 
    13891396        var 
    1390         pluginMediaElement = settings.pluginMediaElement,    
     1397        pluginMediaElement = settings.pluginMediaElement, 
    13911398        player = new YT.Player(settings.containerId, { 
    13921399            height: settings.height, 
     
    13961403            events: { 
    13971404                'onReady': function() { 
    1398                      
     1405 
    13991406                    // hook up iframe object to MEjs 
    14001407                    settings.pluginMediaElement.pluginApi = player; 
    1401                      
     1408 
    14021409                    // init mejs 
    14031410                    mejs.MediaPluginBridge.initPlugin(settings.pluginId); 
    1404                      
     1411 
    14051412                    // create timer 
    14061413                    setInterval(function() { 
    14071414                        mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate'); 
    1408                     }, 250);                     
     1415                    }, 250); 
    14091416                }, 
    14101417                'onStateChange': function(e) { 
    1411                      
     1418 
    14121419                    mejs.YouTubeApi.handleStateChange(e.data, player, pluginMediaElement); 
    1413                      
     1420 
    14141421                } 
    14151422            } 
    14161423        }); 
    14171424    }, 
    1418      
     1425 
    14191426    createEvent: function (player, pluginMediaElement, eventName) { 
    14201427        var obj = { 
     
    14241431 
    14251432        if (player && player.getDuration) { 
    1426              
    1427             // time  
     1433 
     1434            // time 
    14281435            pluginMediaElement.currentTime = obj.currentTime = player.getCurrentTime(); 
    14291436            pluginMediaElement.duration = obj.duration = player.getDuration(); 
    1430              
     1437 
    14311438            // state 
    14321439            obj.paused = pluginMediaElement.paused; 
    1433             obj.ended = pluginMediaElement.ended;            
    1434              
     1440            obj.ended = pluginMediaElement.ended; 
     1441 
    14351442            // sound 
    14361443            obj.muted = player.isMuted(); 
    14371444            obj.volume = player.getVolume() / 100; 
    1438              
     1445 
    14391446            // progress 
    14401447            obj.bytesTotal = player.getVideoBytesTotal(); 
    14411448            obj.bufferedBytes = player.getVideoBytesLoaded(); 
    1442              
     1449 
    14431450            // fake the W3C buffered TimeRange 
    14441451            var bufferedTime = obj.bufferedBytes / obj.bytesTotal * obj.duration; 
    1445              
     1452 
    14461453            obj.target.buffered = obj.buffered = { 
    14471454                start: function(index) { 
     
    14531460                length: 1 
    14541461            }; 
    1455              
    1456         } 
    1457          
     1462 
     1463        } 
     1464 
    14581465        // send event up the chain 
    14591466        pluginMediaElement.dispatchEvent(obj.type, obj); 
    1460     },   
    1461      
     1467    }, 
     1468 
    14621469    iFrameReady: function() { 
    1463          
     1470 
    14641471        this.isLoaded = true; 
    14651472        this.isIframeLoaded = true; 
    1466          
     1473 
    14671474        while (this.iframeQueue.length > 0) { 
    14681475            var settings = this.iframeQueue.pop(); 
    14691476            this.createIframe(settings); 
    1470         }    
    1471     }, 
    1472      
     1477        } 
     1478    }, 
     1479 
    14731480    // FLASH! 
    14741481    flashPlayers: {}, 
    14751482    createFlash: function(settings) { 
    1476          
     1483 
    14771484        this.flashPlayers[settings.pluginId] = settings; 
    1478          
     1485 
    14791486        /* 
    14801487        settings.container.innerHTML = 
    14811488            '<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="//www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId  + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0" ' + 
    1482                 'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; ">' + 
     1489                'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; " class="mejs-shim">' + 
    14831490                '<param name="allowScriptAccess" value="always">' + 
    14841491                '<param name="wmode" value="transparent">' + 
     
    14881495        var specialIEContainer, 
    14891496            youtubeUrl = 'http://www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId  + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0'; 
    1490              
     1497 
    14911498        if (mejs.MediaFeatures.isIE) { 
    1492              
     1499 
    14931500            specialIEContainer = document.createElement('div'); 
    14941501            settings.container.appendChild(specialIEContainer); 
    14951502            specialIEContainer.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" ' + 
    1496 'id="' + settings.pluginId + '" width="' + settings.width + '" height="' + settings.height + '">' + 
     1503'id="' + settings.pluginId + '" width="' + settings.width + '" height="' + settings.height + '" class="mejs-shim">' + 
    14971504    '<param name="movie" value="' + youtubeUrl + '" />' + 
    14981505    '<param name="wmode" value="transparent" />' + 
     
    15031510        settings.container.innerHTML = 
    15041511            '<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="' + youtubeUrl + '" ' + 
    1505                 'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; ">' + 
     1512                'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; " class="mejs-shim">' + 
    15061513                '<param name="allowScriptAccess" value="always">' + 
    15071514                '<param name="wmode" value="transparent">' + 
    15081515            '</object>'; 
    1509         }        
    1510          
    1511     }, 
    1512      
     1516        } 
     1517 
     1518    }, 
     1519 
    15131520    flashReady: function(id) { 
    15141521        var 
     
    15161523            player = document.getElementById(id), 
    15171524            pluginMediaElement = settings.pluginMediaElement; 
    1518          
    1519         // hook up and return to MediaELementPlayer.success  
    1520         pluginMediaElement.pluginApi =  
     1525 
     1526        // hook up and return to MediaELementPlayer.success 
     1527        pluginMediaElement.pluginApi = 
    15211528        pluginMediaElement.pluginElement = player; 
    15221529        mejs.MediaPluginBridge.initPlugin(id); 
    1523          
     1530 
    15241531        // load the youtube video 
    15251532        player.cueVideoById(settings.videoId); 
    1526          
    1527         var callbackName = settings.containerId + '_callback' 
    1528          
     1533 
     1534        var callbackName = settings.containerId + '_callback'; 
     1535 
    15291536        window[callbackName] = function(e) { 
    15301537            mejs.YouTubeApi.handleStateChange(e, player, pluginMediaElement); 
    15311538        } 
    1532          
     1539 
    15331540        player.addEventListener('onStateChange', callbackName); 
    1534          
     1541 
    15351542        setInterval(function() { 
    15361543            mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate'); 
    15371544        }, 250); 
    15381545    }, 
    1539      
     1546 
    15401547    handleStateChange: function(youTubeState, player, pluginMediaElement) { 
    15411548        switch (youTubeState) { 
     
    15531560            case 1: 
    15541561                pluginMediaElement.paused = false; 
    1555                 pluginMediaElement.ended = false;                
     1562                pluginMediaElement.ended = false; 
    15561563                mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'play'); 
    15571564                mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'playing'); 
     
    15591566            case 2: 
    15601567                pluginMediaElement.paused = true; 
    1561                 pluginMediaElement.ended = false;                
     1568                pluginMediaElement.ended = false; 
    15621569                mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'pause'); 
    15631570                break; 
     
    15671574            case 5: 
    15681575                // cued? 
    1569                 break;                       
    1570              
    1571         }            
    1572          
     1576                break; 
     1577 
     1578        } 
     1579 
    15731580    } 
    15741581} 
     
    18151822 * 
    18161823 * Copyright 2010-2012, John Dyer (http://j.hn/) 
    1817  * Dual licensed under the MIT or GPL Version 2 licenses. 
     1824 * License: MIT 
    18181825 * 
    18191826 */ 
     
    18421849        defaultAudioHeight: 30, 
    18431850 
    1844         // default amount to move back when back key is pressed      
     1851        // default amount to move back when back key is pressed 
    18451852        defaultSeekBackwardInterval: function(media) { 
    18461853            return (media.duration * 0.05); 
    1847         },       
    1848         // default amount to move forward when forward key is pressed                
     1854        }, 
     1855        // default amount to move forward when forward key is pressed 
    18491856        defaultSeekForwardInterval: function(media) { 
    18501857            return (media.duration * 0.05); 
    1851         },       
    1852          
     1858        }, 
     1859 
    18531860        // width of audio player 
    18541861        audioWidth: -1, 
    18551862        // height of audio player 
    1856         audioHeight: -1,         
     1863        audioHeight: -1, 
    18571864        // initial volume when the player starts (overrided by user cookie) 
    18581865        startVolume: 0.8, 
    18591866        // useful for <audio> player loops 
    18601867        loop: false, 
     1868        // rewind to beginning when media ends 
     1869                autoRewind: true, 
    18611870        // resize to media dimensions 
    18621871        enableAutosize: true, 
     
    18681877        // used when showTimecodeFrameCount is set to true 
    18691878        framesPerSecond: 25, 
    1870          
     1879 
    18711880        // automatically calculate the width of the progress bar based on the sizes of other elements 
    18721881        autosizeProgress : true, 
    18731882        // Hide controls when playing and mouse is not over the video 
    18741883        alwaysShowControls: false, 
     1884        // Display the video control 
     1885        hideVideoControlsOnLoad: false, 
     1886        // Enable click video element to toggle play/pause 
     1887        clickToPlayPause: true, 
    18751888        // force iPad's native controls 
    18761889        iPadUseNativeControls: false, 
    18771890        // force iPhone's native controls 
    1878         iPhoneUseNativeControls: false,  
     1891        iPhoneUseNativeControls: false, 
    18791892        // force Android's native controls 
    1880         AndroidUseNativeControls: false,             
     1893        AndroidUseNativeControls: false, 
    18811894        // features to show 
    18821895        features: ['playpause','current','progress','duration','tracks','volume','fullscreen'], 
    18831896        // only for dynamic 
    18841897        isVideo: true, 
    1885          
     1898 
    18861899        // turns keyboard support on and off for this instance 
    18871900        enableKeyboard: true, 
    1888          
     1901 
    18891902        // whenthis player starts, it will pause other players 
    18901903        pauseOtherPlayers: true, 
    1891          
     1904 
    18921905        // array of keyboard actions such as play pause 
    18931906        keyActions: [ 
     
    18991912                        action: function(player, media) { 
    19001913                                if (media.paused || media.ended) { 
    1901                                         media.play();    
     1914                                        media.play(); 
    19021915                                } else { 
    19031916                                        media.pause(); 
    1904                                 }                                        
     1917                                } 
    19051918                        } 
    19061919                }, 
     
    19301943                                                player.startControlsTimer(); 
    19311944                                        } 
    1932                                          
     1945 
    19331946                                        // 5% 
    19341947                                        var newTime = Math.max(media.currentTime - player.options.defaultSeekBackwardInterval(media), 0); 
     
    19411954                                39, // RIGHT 
    19421955                                228 // Google TV forward 
    1943                         ],  
     1956                        ], 
    19441957                        action: function(player, media) { 
    19451958                                if (!isNaN(media.duration) && media.duration > 0) { 
     
    19481961                                                player.startControlsTimer(); 
    19491962                                        } 
    1950                                          
     1963 
    19511964                                        // 5% 
    1952                                         var newTime = Math.min(media.currentTime + player.options.defaultSeekForwardInterval(media), media.duration);                                        
     1965                                        var newTime = Math.min(media.currentTime + player.options.defaultSeekForwardInterval(media), media.duration); 
    19531966                                        media.setCurrentTime(newTime); 
    19541967                                } 
     
    19661979                                } 
    19671980                        } 
    1968                 }                    
    1969         ]        
     1981                } 
     1982        ] 
    19701983    }; 
    19711984 
    19721985    mejs.mepIndex = 0; 
    1973      
    1974     mejs.players = []; 
     1986 
     1987    mejs.players = {}; 
    19751988 
    19761989    // wraps a MediaElement object in player controls 
     
    19791992        if ( !(this instanceof mejs.MediaElementPlayer) ) { 
    19801993            return new mejs.MediaElementPlayer(node, o); 
    1981         }  
     1994        } 
    19821995 
    19831996        var t = this; 
    1984          
     1997 
    19851998        // these will be reset after the MediaElement.success fires 
    19861999        t.$media = t.$node = $(node); 
    1987         t.node = t.media = t.$media[0];      
    1988          
     2000        t.node = t.media = t.$media[0]; 
     2001 
    19892002        // check for existing player 
    19902003        if (typeof t.node.player != 'undefined') { 
     
    19942007            t.node.player = t; 
    19952008        } 
    1996                  
    1997                  
     2009 
     2010 
    19982011        // try to get options from data-mejsoptions 
    19992012        if (typeof o == 'undefined') { 
    2000             o = t.$node.data('mejsoptions');     
    2001         } 
    2002              
     2013            o = t.$node.data('mejsoptions'); 
     2014        } 
     2015 
    20032016        // extend default options 
    20042017        t.options = $.extend({},mejs.MepDefaults,o); 
    2005          
     2018 
     2019        // unique ID 
     2020        t.id = 'mep_' + mejs.mepIndex++; 
     2021 
    20062022        // add to player array (for focus events) 
    2007         mejs.players.push(t); 
    2008          
     2023        mejs.players[t.id] = t; 
     2024 
    20092025        // start up 
    20102026        t.init(); 
     
    20152031    // actual player 
    20162032    mejs.MediaElementPlayer.prototype = { 
    2017          
     2033 
    20182034        hasFocus: false, 
    2019          
     2035 
    20202036        controlsAreVisible: true, 
    2021          
     2037 
    20222038        init: function() { 
    20232039 
     
    20312047                }), 
    20322048                tagName = t.media.tagName.toLowerCase(); 
    2033          
     2049 
    20342050            t.isDynamic = (tagName !== 'audio' && tagName !== 'video'); 
    2035              
    2036             if (t.isDynamic) {   
    2037                 // get video from src or href?               
    2038                 t.isVideo = t.options.isVideo;                       
     2051 
     2052            if (t.isDynamic) { 
     2053                // get video from src or href? 
     2054                t.isVideo = t.options.isVideo; 
    20392055            } else { 
    20402056                t.isVideo = (tagName !== 'audio' && t.options.isVideo); 
    20412057            } 
    2042          
    2043             // use native controls in iPad, iPhone, and Android  
     2058 
     2059            // use native controls in iPad, iPhone, and Android 
    20442060            if ((mf.isiPad && t.options.iPadUseNativeControls) || (mf.isiPhone && t.options.iPhoneUseNativeControls)) { 
    2045                  
     2061 
    20462062                // add controls and stop 
    20472063                t.$media.attr('controls', 'controls'); 
     
    20562072                    t.media.play(); 
    20572073                } 
    2058                      
    2059             } else if (mf.isAndroid && t.AndroidUseNativeControls) { 
    2060                  
     2074 
     2075            } else if (mf.isAndroid && t.options.AndroidUseNativeControls) { 
     2076 
    20612077                // leave default player 
    20622078 
     
    20642080 
    20652081                // DESKTOP: use MediaElementPlayer controls 
    2066                  
    2067                 // remove native controls            
    2068                 t.$media.removeAttr('controls');                     
    2069                  
    2070                 // unique ID 
    2071                 t.id = 'mep_' + mejs.mepIndex++; 
     2082 
     2083                // remove native controls 
     2084                t.$media.removeAttr('controls'); 
    20722085 
    20732086                // build container 
     
    20822095                    '</div>') 
    20832096                    .addClass(t.$media[0].className) 
    2084                     .insertBefore(t.$media);     
    2085                      
     2097                    .insertBefore(t.$media); 
     2098 
    20862099                // add classes for user and content 
    20872100                t.container.addClass( 
     
    20912104                    (mf.isiPhone ? 'mejs-iphone ' : '') + 
    20922105                    (t.isVideo ? 'mejs-video ' : 'mejs-audio ') 
    2093                 );   
    2094                      
     2106                ); 
     2107 
    20952108 
    20962109                // move the <video/video> tag into the right spot 
    20972110                if (mf.isiOS) { 
    2098                  
     2111 
    20992112                    // sadly, you can't move nodes in iOS, so we have to destroy and recreate it! 
    21002113                    var $newMedia = t.$media.clone(); 
    2101                      
     2114 
    21022115                    t.container.find('.mejs-mediaelement').append($newMedia); 
    2103                      
     2116 
    21042117                    t.$media.remove(); 
    21052118                    t.$node = t.$media = $newMedia; 
    21062119                    t.node = t.media = $newMedia[0] 
    2107                      
     2120 
    21082121                } else { 
    2109                      
     2122 
    21102123                    // normal way of moving it into place (doesn't work on iOS) 
    21112124                    t.container.find('.mejs-mediaelement').append(t.$media); 
    21122125                } 
    2113                  
     2126 
    21142127                // find parts 
    21152128                t.controls = t.container.find('.mejs-controls'); 
     
    21172130 
    21182131                // determine the size 
    2119                  
     2132 
    21202133                /* size priority: 
    2121                     (1) videoWidth (forced),  
     2134                    (1) videoWidth (forced), 
    21222135                    (2) style="width;height;" 
    21232136                    (3) width attribute, 
    21242137                    (4) defaultVideoWidth (for unspecified cases) 
    21252138                */ 
    2126                  
     2139 
    21272140                var tagType = (t.isVideo ? 'video' : 'audio'), 
    21282141                    capsTagName = tagType.substring(0,1).toUpperCase() + tagType.substring(1); 
    2129                      
    2130                  
     2142 
     2143 
    21312144                if (t.options[tagType + 'Width'] > 0 || t.options[tagType + 'Width'].toString().indexOf('%') > -1) { 
    21322145                    t.width = t.options[tagType + 'Width']; 
    21332146                } else if (t.media.style.width !== '' && t.media.style.width !== null) { 
    2134                     t.width = t.media.style.width;                       
     2147                    t.width = t.media.style.width; 
    21352148                } else if (t.media.getAttribute('width') !== null) { 
    21362149                    t.width = t.$media.attr('width'); 
     
    21382151                    t.width = t.options['default' + capsTagName + 'Width']; 
    21392152                } 
    2140                  
     2153 
    21412154                if (t.options[tagType + 'Height'] > 0 || t.options[tagType + 'Height'].toString().indexOf('%') > -1) { 
    21422155                    t.height = t.options[tagType + 'Height']; 
     
    21442157                    t.height = t.media.style.height; 
    21452158                } else if (t.$media[0].getAttribute('height') !== null) { 
    2146                     t.height = t.$media.attr('height');  
     2159                    t.height = t.$media.attr('height'); 
    21472160                } else { 
    21482161                    t.height = t.options['default' + capsTagName + 'Height']; 
     
    21512164                // set the size, while we wait for the plugins to load below 
    21522165                t.setPlayerSize(t.width, t.height); 
    2153                  
     2166 
    21542167                // create MediaElementShim 
    21552168                meOptions.pluginWidth = t.height; 
    2156                 meOptions.pluginHeight = t.width;                
    2157             } 
    2158              
    2159              
     2169                meOptions.pluginHeight = t.width; 
     2170            } 
     2171 
     2172 
    21602173 
    21612174            // create MediaElement shim 
    21622175            mejs.MediaElement(t.$media[0], meOptions); 
    2163         }, 
    2164          
     2176 
     2177            // controls are shown when loaded 
     2178            t.container.trigger('controlsshown'); 
     2179        }, 
     2180 
    21652181        showControls: function(doAnimation) { 
    21662182            var t = this; 
    2167              
     2183 
    21682184            doAnimation = typeof doAnimation == 'undefined' || doAnimation; 
    2169              
     2185 
    21702186            if (t.controlsAreVisible) 
    21712187                return; 
    2172              
     2188 
    21732189            if (doAnimation) { 
    21742190                t.controls 
    21752191                    .css('visibility','visible') 
    2176                     .stop(true, true).fadeIn(200, function() {t.controlsAreVisible = true;});    
    2177      
     2192                    .stop(true, true).fadeIn(200, function() { 
     2193                          t.controlsAreVisible = true; 
     2194                          t.container.trigger('controlsshown'); 
     2195                    }); 
     2196 
    21782197                // any additional controls people might add and want to hide 
    21792198                t.container.find('.mejs-control') 
    21802199                    .css('visibility','visible') 
    2181                     .stop(true, true).fadeIn(200, function() {t.controlsAreVisible = true;});    
    2182                      
     2200                    .stop(true, true).fadeIn(200, function() {t.controlsAreVisible = true;}); 
     2201 
    21832202            } else { 
    21842203                t.controls 
    21852204                    .css('visibility','visible') 
    21862205                    .css('display','block'); 
    2187      
     2206 
    21882207                // any additional controls people might add and want to hide 
    21892208                t.container.find('.mejs-control') 
    21902209                    .css('visibility','visible') 
    21912210                    .css('display','block'); 
    2192                      
     2211 
    21932212                t.controlsAreVisible = true; 
    2194             } 
    2195              
     2213                t.container.trigger('controlsshown'); 
     2214            } 
     2215 
    21962216            t.setControlsSize(); 
    2197              
     2217 
    21982218        }, 
    21992219 
    22002220        hideControls: function(doAnimation) { 
    22012221            var t = this; 
    2202              
     2222 
    22032223            doAnimation = typeof doAnimation == 'undefined' || doAnimation; 
    2204              
     2224 
    22052225            if (!t.controlsAreVisible) 
    22062226                return; 
    2207              
     2227 
    22082228            if (doAnimation) { 
    22092229                // fade out main controls 
     
    22122232                        .css('visibility','hidden') 
    22132233                        .css('display','block'); 
    2214                          
     2234 
    22152235                    t.controlsAreVisible = false; 
    2216                 });  
    2217      
     2236                    t.container.trigger('controlshidden'); 
     2237                }); 
     2238 
    22182239                // any additional controls people might add and want to hide 
    22192240                t.container.find('.mejs-control').stop(true, true).fadeOut(200, function() { 
     
    22212242                        .css('visibility','hidden') 
    22222243                        .css('display','block'); 
    2223                 });  
     2244                }); 
    22242245            } else { 
    2225                  
     2246 
    22262247                // hide main controls 
    22272248                t.controls 
    22282249                    .css('visibility','hidden') 
    2229                     .css('display','block');         
    2230                  
     2250                    .css('display','block'); 
     2251 
    22312252                // hide others 
    22322253                t.container.find('.mejs-control') 
    22332254                    .css('visibility','hidden') 
    22342255                    .css('display','block'); 
    2235                      
     2256 
    22362257                t.controlsAreVisible = false; 
    2237             } 
    2238         },       
     2258                t.container.trigger('controlshidden'); 
     2259            } 
     2260        }, 
    22392261 
    22402262        controlsTimer: null, 
     
    22432265 
    22442266            var t = this; 
    2245              
     2267 
    22462268            timeout = typeof timeout != 'undefined' ? timeout : 1500; 
    22472269 
     
    22642286                t.controlsTimer = null; 
    22652287            } 
    2266         },       
    2267          
     2288        }, 
     2289 
    22682290        controlsEnabled: true, 
    2269          
     2291 
    22702292        disableControls: function() { 
    22712293            var t= this; 
    2272              
     2294 
    22732295            t.killControlsTimer(); 
    22742296            t.hideControls(false); 
    22752297            this.controlsEnabled = false; 
    22762298        }, 
    2277          
     2299 
    22782300        enableControls: function() { 
    22792301            var t= this; 
    2280              
     2302 
    22812303            t.showControls(false); 
    2282              
     2304 
    22832305            t.controlsEnabled = true; 
    2284         },       
    2285          
     2306        }, 
     2307 
    22862308 
    22872309        // Sets up all controls and events 
    2288         meReady: function(media, domNode) {          
    2289          
    2290          
     2310        meReady: function(media, domNode) { 
     2311 
     2312 
    22912313            var t = this, 
    22922314                mf = mejs.MediaFeatures, 
     
    23002322                return; 
    23012323            else 
    2302                 t.created = true;            
     2324                t.created = true; 
    23032325 
    23042326            t.media = media; 
    23052327            t.domNode = domNode; 
    2306              
    2307             if (!(mf.isAndroid && t.options.AndroidUseNativeControls) && !(mf.isiPad && t.options.iPadUseNativeControls) && !(mf.isiPhone && t.options.iPhoneUseNativeControls)) {               
    2308                  
     2328 
     2329            if (!(mf.isAndroid && t.options.AndroidUseNativeControls) && !(mf.isiPad && t.options.iPadUseNativeControls) && !(mf.isiPhone && t.options.iPhoneUseNativeControls)) { 
     2330 
    23092331                // two built in features 
    23102332                t.buildposter(t, t.controls, t.layers, t.media); 
     
    23312353 
    23322354                t.container.trigger('controlsready'); 
    2333                  
     2355 
    23342356                // reset all layers and controls 
    23352357                t.setPlayerSize(t.width, t.height); 
    23362358                t.setControlsSize(); 
    2337                  
     2359 
    23382360 
    23392361                // controls fade 
    23402362                if (t.isVideo) { 
    2341                  
     2363 
    23422364                    if (mejs.MediaFeatures.hasTouch) { 
    2343                          
     2365 
    23442366                        // for touch devices (iOS, Android) 
    23452367                        // show/hide without animation on touch 
    2346                          
     2368 
    23472369                        t.$media.bind('touchstart', function() { 
    2348                              
    2349                              
     2370 
     2371 
    23502372                            // toggle controls 
    23512373                            if (t.controlsAreVisible) { 
     
    23562378                                } 
    23572379                            } 
    2358                         });                  
    2359                      
     2380                        }); 
     2381 
    23602382                    } else { 
    23612383            // click to play/pause 
    23622384            t.media.addEventListener('click', function() { 
    2363               if (t.media.paused) { 
    2364                 t.media.play(); 
    2365               } else { 
    2366                 t.media.pause(); 
     2385              if (t.options.clickToPlayPause) { 
     2386                  if (t.media.paused) { 
     2387                    t.media.play(); 
     2388                  } else { 
     2389                    t.media.pause(); 
     2390                  } 
    23672391              } 
    23682392            }); 
    2369                      
     2393 
    23702394                        // show/hide controls 
    23712395                        t.container 
    23722396                            .bind('mouseenter mouseover', function () { 
    23732397                                if (t.controlsEnabled) { 
    2374                                     if (!t.options.alwaysShowControls) {                                 
     2398                                    if (!t.options.alwaysShowControls) { 
    23752399                                        t.killControlsTimer('enter'); 
    23762400                                        t.showControls(); 
    2377                                         t.startControlsTimer(2500);      
     2401                                        t.startControlsTimer(2500); 
    23782402                                    } 
    23792403                                } 
     
    23932417                                if (t.controlsEnabled) { 
    23942418                                    if (!t.media.paused && !t.options.alwaysShowControls) { 
    2395                                         t.startControlsTimer(1000);                              
     2419                                        t.startControlsTimer(1000); 
    23962420                                    } 
    23972421                                } 
    23982422                            }); 
    23992423                    } 
    2400                      
     2424 
     2425                    if(t.options.hideVideoControlsOnLoad) { 
     2426                        t.hideControls(false); 
     2427                    } 
     2428 
    24012429                    // check for autoplay 
    24022430                    if (autoplay && !t.options.alwaysShowControls) { 
     
    24172445                    } 
    24182446                } 
    2419                  
     2447 
    24202448                // EVENTS 
    24212449 
    24222450                // FOCUS: when a video starts playing, it takes focus from other players (possibily pausing them) 
    24232451                media.addEventListener('play', function() { 
    2424                          
     2452                        var playerIndex; 
     2453 
    24252454                        // go through all other players 
    2426                         for (var i=0, il=mejs.players.length; i<il; i++) { 
    2427                             var p = mejs.players[i]; 
     2455                        for (playerIndex in mejs.players) { 
     2456                            var p = mejs.players[playerIndex]; 
    24282457                            if (p.id != t.id && t.options.pauseOtherPlayers && !p.paused && !p.ended) { 
    24292458                                p.pause(); 
     
    24312460                            p.hasFocus = false; 
    24322461                        } 
    2433                          
     2462 
    24342463                        t.hasFocus = true; 
    24352464                },false); 
    2436                                  
     2465 
    24372466 
    24382467                // ended for all 
    24392468                t.media.addEventListener('ended', function (e) { 
    2440                     try{ 
    2441                         t.media.setCurrentTime(0); 
    2442                     } catch (exp) { 
    2443                          
     2469                    if(t.options.autoRewind) { 
     2470                        try{ 
     2471                            t.media.setCurrentTime(0); 
     2472                        } catch (exp) { 
     2473 
     2474                        } 
    24442475                    } 
    24452476                    t.media.pause(); 
    2446                      
     2477 
    24472478                    if (t.setProgressRail) 
    24482479                        t.setProgressRail(); 
    24492480                    if (t.setCurrentRail) 
    2450                         t.setCurrentRail();                      
     2481                        t.setCurrentRail(); 
    24512482 
    24522483                    if (t.options.loop) { 
     
    24562487                    } 
    24572488                }, false); 
    2458                  
     2489 
    24592490                // resize on the first play 
    24602491                t.media.addEventListener('loadedmetadata', function(e) { 
     
    24652496                        t.updateCurrent(); 
    24662497                    } 
    2467                      
     2498 
    24682499                    if (!t.isFullScreen) { 
    24692500                        t.setPlayerSize(t.width, t.height); 
     
    24782509                    t.setControlsSize(); 
    24792510                }, 50); 
    2480                  
     2511 
    24812512                // adjust controls whenever window sizes (used to be in fullscreen only) 
    2482                 $(window).resize(function() { 
    2483                      
    2484                     // don't resize for fullscreen mode              
     2513                t.globalBind('resize', function() { 
     2514 
     2515                    // don't resize for fullscreen mode 
    24852516                    if ( !(t.isFullScreen || (mejs.MediaFeatures.hasTrueNativeFullScreen && document.webkitIsFullScreen)) ) { 
    24862517                        t.setPlayerSize(t.width, t.height); 
    24872518                    } 
    2488                      
     2519 
    24892520                    // always adjust controls 
    24902521                    t.setControlsSize(); 
    2491                 });              
     2522                }); 
    24922523 
    24932524                // TEMP: needs to be moved somewhere else 
    24942525                if (t.media.pluginType == 'youtube') { 
    2495                     t.container.find('.mejs-overlay-play').hide();   
    2496                 } 
    2497             } 
    2498              
     2526                    t.container.find('.mejs-overlay-play').hide(); 
     2527                } 
     2528            } 
     2529 
    24992530            // force autoplay for HTML5 
    25002531            if (autoplay && media.pluginType == 'native') { 
     
    25052536 
    25062537            if (t.options.success) { 
    2507                  
     2538 
    25082539                if (typeof t.options.success == 'string') { 
    25092540                        window[t.options.success](t.media, t.domNode, t); 
     
    25162547        handleError: function(e) { 
    25172548            var t = this; 
    2518              
     2549 
    25192550            t.controls.hide(); 
    2520          
     2551 
    25212552            // Tell user that the file cannot be played 
    25222553            if (t.options.error) { 
     
    25302561            if (typeof width != 'undefined') 
    25312562                t.width = width; 
    2532                  
     2563 
    25332564            if (typeof height != 'undefined') 
    25342565                t.height = height; 
     
    25362567      // detect 100% mode - use currentStyle for IE since css() doesn't return percentages 
    25372568      if (t.height.toString().indexOf('%') > 0 || t.$node.css('max-width') === '100%' || (t.$node[0].currentStyle && t.$node[0].currentStyle.maxWidth === '100%')) { 
    2538              
     2569 
    25392570                // do we have the native dimensions yet? 
    2540                 var  
     2571                var 
    25412572                    nativeWidth = t.isVideo ? ((t.media.videoWidth && t.media.videoWidth > 0) ? t.media.videoWidth : t.options.defaultVideoWidth) : t.options.defaultAudioWidth, 
    25422573                    nativeHeight = t.isVideo ? ((t.media.videoHeight && t.media.videoHeight > 0) ? t.media.videoHeight : t.options.defaultVideoHeight) : t.options.defaultAudioHeight, 
    25432574                    parentWidth = t.container.parent().closest(':visible').width(), 
    2544                     newHeight = parseInt(parentWidth * nativeHeight/nativeWidth, 10); 
    2545                      
     2575                    newHeight = t.isVideo || !t.options.autosizeProgress ? parseInt(parentWidth * nativeHeight/nativeWidth, 10) : nativeHeight; 
     2576 
    25462577                if (t.container.parent()[0].tagName.toLowerCase() === 'body') { // && t.container.siblings().count == 0) { 
    25472578                    parentWidth = $(window).width(); 
    25482579                    newHeight = $(window).height(); 
    25492580                } 
    2550                  
    2551                 if ( newHeight != 0 ) { 
     2581 
     2582                if ( newHeight != 0 && parentWidth != 0 ) { 
    25522583                    // set outer container size 
    25532584                    t.container 
    25542585                        .width(parentWidth) 
    25552586                        .height(newHeight); 
    2556                          
    2557                     // set native <video> or <audio> 
    2558                     t.$media 
     2587 
     2588                    // set native <video> or <audio> and shims 
     2589                    t.$media.add(t.container.find('.mejs-shim')) 
    25592590                        .width('100%') 
    25602591                        .height('100%'); 
    2561                          
    2562                     // set shims 
    2563                     t.container.find('object, embed, iframe') 
    2564                         .width('100%') 
    2565                         .height('100%'); 
    2566                          
    2567                     // if shim is ready, send the size to the embeded plugin     
     2592 
     2593                    // if shim is ready, send the size to the embeded plugin 
    25682594                    if (t.isVideo) { 
    25692595                        if (t.media.setVideoSize) { 
     
    25712597                        } 
    25722598                    } 
    2573                      
     2599 
    25742600                    // set the layers 
    25752601                    t.layers.children('.mejs-layer') 
     
    25772603                        .height('100%'); 
    25782604                } 
    2579              
    2580              
     2605 
     2606 
    25812607            } else { 
    25822608 
     
    25842610                    .width(t.width) 
    25852611                    .height(t.height); 
    2586      
     2612 
    25872613                t.layers.children('.mejs-layer') 
    25882614                    .width(t.width) 
    25892615                    .height(t.height); 
    2590                      
     2616 
    25912617            } 
    25922618        }, 
     
    26012627                loaded = t.controls.find('.mejs-time-loaded'), 
    26022628                others = rail.siblings(); 
    2603              
     2629 
    26042630 
    26052631            // allow the size to come from custom CSS 
    26062632            if (t.options && !t.options.autosizeProgress) { 
    2607                 // Also, frontends devs can be more flexible  
     2633                // Also, frontends devs can be more flexible 
    26082634                // due the opportunity of absolute positioning. 
    26092635                railWidth = parseInt(rail.css('width')); 
    26102636            } 
    2611              
     2637 
    26122638            // attempt to autosize 
    26132639            if (railWidth === 0 || !railWidth) { 
    2614                  
     2640 
    26152641                // find the size of all the other controls besides the rail 
    26162642                others.each(function() { 
    2617                     if ($(this).css('position') != 'absolute') { 
     2643                    var $this = $(this); 
     2644                    if ($this.css('position') != 'absolute' && $this.is(':visible')) { 
    26182645                        usedWidth += $(this).outerWidth(true); 
    26192646                    } 
    26202647                }); 
    2621                  
     2648 
    26222649                // fit the rail into the remaining space 
    26232650                railWidth = t.controls.width() - usedWidth - (rail.outerWidth(true) - rail.width()); 
     
    26282655            // dark space 
    26292656            total.width(railWidth - (total.outerWidth(true) - total.width())); 
    2630              
     2657 
    26312658            if (t.setProgressRail) 
    26322659                t.setProgressRail(); 
    26332660            if (t.setCurrentRail) 
    2634                 t.setCurrentRail();              
     2661                t.setCurrentRail(); 
    26352662        }, 
    26362663 
     
    26382665        buildposter: function(player, controls, layers, media) { 
    26392666            var t = this, 
    2640                 poster =  
     2667                poster = 
    26412668                $('<div class="mejs-poster mejs-layer">' + 
    26422669                '</div>') 
     
    26472674            if (player.options.poster !== '') { 
    26482675                posterUrl = player.options.poster; 
    2649             }    
    2650                  
     2676            } 
     2677 
    26512678            // second, try the real poster 
    26522679            if (posterUrl !== '' && posterUrl != null) { 
     
    26602687            }, false); 
    26612688        }, 
    2662          
     2689 
    26632690        setPoster: function(url) { 
    26642691            var t = this, 
    26652692                posterDiv = t.container.find('.mejs-poster'), 
    26662693                posterImg = posterDiv.find('img'); 
    2667                  
     2694 
    26682695            if (posterImg.length == 0) { 
    26692696                posterImg = $('<img width="100%" height="100%" />').appendTo(posterDiv); 
    2670             }    
    2671              
     2697            } 
     2698 
    26722699            posterImg.attr('src', url); 
    26732700        }, 
    26742701 
    26752702        buildoverlays: function(player, controls, layers, media) { 
     2703            var t = this; 
    26762704            if (!player.isVideo) 
    26772705                return; 
    26782706 
    2679             var  
    2680             loading =  
     2707            var 
     2708            loading = 
    26812709                $('<div class="mejs-overlay mejs-layer">'+ 
    26822710                    '<div class="mejs-overlay-loading"><span></span></div>'+ 
     
    26842712                .hide() // start out hidden 
    26852713                .appendTo(layers), 
    2686             error =  
     2714            error = 
    26872715                $('<div class="mejs-overlay mejs-layer">'+ 
    26882716                    '<div class="mejs-overlay-error"></div>'+ 
     
    26912719                .appendTo(layers), 
    26922720            // this needs to come last so it's on top 
    2693             bigPlay =  
     2721            bigPlay = 
    26942722                $('<div class="mejs-overlay mejs-layer mejs-overlay-play">'+ 
    26952723                    '<div class="mejs-overlay-button"></div>'+ 
     
    26972725                .appendTo(layers) 
    26982726                .click(function() { 
    2699                     if (media.paused) { 
    2700                         media.play(); 
    2701                     } else { 
    2702                         media.pause(); 
    2703                     } 
     2727                    if (t.options.clickToPlayPause) { 
     2728                        if (media.paused) { 
     2729                            media.play(); 
     2730                        } else { 
     2731                            media.pause(); 
     2732                        } 
     2733                    } 
    27042734                }); 
    2705              
     2735 
    27062736            /* 
    27072737            if (mejs.MediaFeatures.isiOS || mejs.MediaFeatures.isAndroid) { 
     
    27102740            } 
    27112741            */ 
    2712      
     2742 
    27132743 
    27142744            // show/hide big play button 
     
    27182748                controls.find('.mejs-time-buffering').hide(); 
    27192749                error.hide(); 
    2720             }, false);   
    2721              
     2750            }, false); 
     2751 
    27222752            media.addEventListener('playing', function() { 
    27232753                bigPlay.hide(); 
    27242754                loading.hide(); 
    27252755                controls.find('.mejs-time-buffering').hide(); 
    2726                 error.hide();            
     2756                error.hide(); 
    27272757            }, false); 
    27282758 
     
    27362766                controls.find('.mejs-time-buffering').hide(); 
    27372767            }, false); 
    2738      
     2768 
    27392769            media.addEventListener('pause',function() { 
    27402770                if (!mejs.MediaFeatures.isiPhone) { 
     
    27422772                } 
    27432773            }, false); 
    2744              
     2774 
    27452775            media.addEventListener('waiting', function() { 
    2746                 loading.show();  
     2776                loading.show(); 
    27472777                controls.find('.mejs-time-buffering').show(); 
    2748             }, false);           
    2749              
    2750              
    2751             // show/hide loading             
     2778            }, false); 
     2779 
     2780 
     2781            // show/hide loading 
    27522782            media.addEventListener('loadeddata',function() { 
    27532783                // for some reason Chrome is firing this event 
    27542784                //if (mejs.MediaFeatures.isChrome && media.getAttribute && media.getAttribute('preload') === 'none') 
    27552785                //  return; 
    2756                      
     2786 
    27572787                loading.show(); 
    27582788                controls.find('.mejs-time-buffering').show(); 
    2759             }, false);   
     2789            }, false); 
    27602790            media.addEventListener('canplay',function() { 
    27612791                loading.hide(); 
    27622792                controls.find('.mejs-time-buffering').hide(); 
    2763             }, false);   
     2793            }, false); 
    27642794 
    27652795            // error handling 
     
    27692799                error.show(); 
    27702800                error.find('mejs-overlay-error').html("Error loading this resource"); 
    2771             }, false);               
    2772         }, 
    2773          
     2801            }, false); 
     2802        }, 
     2803 
    27742804        buildkeyboard: function(player, controls, layers, media) { 
    27752805 
    27762806                var t = this; 
    2777                  
     2807 
    27782808                // listen for key presses 
    2779                 $(document).keydown(function(e) { 
    2780                          
     2809                t.globalBind('keydown', function(e) { 
     2810 
    27812811                        if (player.hasFocus && player.options.enableKeyboard) { 
    2782                                          
     2812 
    27832813                                // find a matching key 
    27842814                                for (var i=0, il=player.options.keyActions.length; i<il; i++) { 
    27852815                                        var keyAction = player.options.keyActions[i]; 
    2786                                          
     2816 
    27872817                                        for (var j=0, jl=keyAction.keys.length; j<jl; j++) { 
    27882818                                                if (e.keyCode == keyAction.keys[j]) { 
     
    27902820                                                        keyAction.action(player, media, e.keyCode); 
    27912821                                                        return false; 
    2792                                                 }                                                
     2822                                                } 
    27932823                                        } 
    27942824                                } 
    27952825                        } 
    2796                          
     2826 
    27972827                        return true; 
    27982828                }); 
    2799                  
     2829 
    28002830                // check if someone clicked outside a player region, then kill its focus 
    2801                 $(document).click(function(event) { 
     2831                t.globalBind('click', function(event) { 
    28022832                        if ($(event.target).closest('.mejs-container').length == 0) { 
    28032833                                player.hasFocus = false; 
    28042834                        } 
    28052835                }); 
    2806              
     2836 
    28072837        }, 
    28082838 
     
    28142844            t.tracks = []; 
    28152845            tracktags.each(function(index, track) { 
    2816                  
     2846 
    28172847                track = $(track); 
    2818                  
     2848 
    28192849                t.tracks.push({ 
    2820                     srclang: track.attr('srclang').toLowerCase(), 
     2850                    srclang: (track.attr('srclang')) ? track.attr('srclang').toLowerCase() : '', 
    28212851                    src: track.attr('src'), 
    28222852                    kind: track.attr('kind'), 
     
    28602890        }, 
    28612891        remove: function() { 
    2862             var t = this; 
    2863              
    2864             if (t.media.pluginType === 'flash') { 
     2892            var t = this, featureIndex, feature; 
     2893 
     2894            // invoke features cleanup 
     2895            for (featureIndex in t.options.features) { 
     2896                feature = t.options.features[featureIndex]; 
     2897                if (t['clean' + feature]) { 
     2898                    try { 
     2899                        t['clean' + feature](t); 
     2900                    } catch (e) { 
     2901                        // TODO: report control error 
     2902                        //throw e; 
     2903                        //console.log('error building ' + feature); 
     2904                        //console.log(e); 
     2905                    } 
     2906                } 
     2907            } 
     2908 
     2909            if (t.media.pluginType === 'native') { 
     2910                t.$media.prop('controls', true); 
     2911            } else { 
    28652912                t.media.remove(); 
    2866             } else if (t.media.pluginType === 'native') { 
    2867                 t.$media.prop('controls', true); 
    2868             } 
    2869              
     2913            } 
     2914 
    28702915            // grab video and put it back in place 
    28712916            if (!t.isDynamic) { 
    2872                 t.$node.insertBefore(t.container) 
    2873             } 
    2874              
     2917                if (t.media.pluginType === 'native') { 
     2918                    // detach events from the video 
     2919                    // TODO: detach event listeners better than this; 
     2920                    //       also detach ONLY the events attached by this plugin! 
     2921                    //t.$node.clone().insertBefore(t.container); 
     2922                    //t.$node.remove(); 
     2923                } 
     2924                /*else*/ t.$node.insertBefore(t.container) 
     2925            } 
     2926 
     2927            // Remove the player from the mejs.players array so that pauseOtherPlayers doesn't blow up when trying to pause a non existance flash api. 
     2928            mejs.players.splice( $.inArray( t, mejs.players ), 1); 
     2929 
    28752930            t.container.remove(); 
     2931            t.globalUnbind(); 
     2932            delete t.node.player; 
     2933            delete mejs.players[t.id]; 
    28762934        } 
    28772935    }; 
     2936 
     2937    (function(){ 
     2938        var rwindow = /^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/; 
     2939 
     2940        function splitEvents(events, id) { 
     2941            // add player ID as an event namespace so it's easier to unbind them all later 
     2942            var ret = {d: [], w: []}; 
     2943            $.each((events || '').split(' '), function(k, v){ 
     2944                ret[rwindow.test(v) ? 'w' : 'd'].push(v + '.' + id); 
     2945            }); 
     2946            ret.d = ret.d.join(' '); 
     2947            ret.w = ret.w.join(' '); 
     2948            return ret; 
     2949        } 
     2950 
     2951        mejs.MediaElementPlayer.prototype.globalBind = function(events, data, callback) { 
     2952            var t = this; 
     2953            events = splitEvents(events, t.id); 
     2954            if (events.d) $(document).bind(events.d, data, callback); 
     2955            if (events.w) $(window).bind(events.w, data, callback); 
     2956        }; 
     2957 
     2958        mejs.MediaElementPlayer.prototype.globalUnbind = function(events, callback) { 
     2959            var t = this; 
     2960            events = splitEvents(events, t.id); 
     2961            if (events.d) $(document).unbind(events.d, callback); 
     2962            if (events.w) $(window).unbind(events.w, callback); 
     2963        }; 
     2964    })(); 
    28782965 
    28792966    // turn into jQuery plugin 
    28802967    if (typeof jQuery != 'undefined') { 
    28812968        jQuery.fn.mediaelementplayer = function (options) { 
    2882             return this.each(function () { 
    2883                 new mejs.MediaElementPlayer(this, options); 
    2884             }); 
     2969            if (options === false) { 
     2970                this.each(function () { 
     2971                    var player = jQuery(this).data('mediaelementplayer'); 
     2972                    if (player) { 
     2973                        player.remove(); 
     2974                    } 
     2975                    jQuery(this).removeData('mediaelementplayer'); 
     2976                }); 
     2977            } 
     2978            else { 
     2979                this.each(function () { 
     2980                    jQuery(this).data('mediaelementplayer', new mejs.MediaElementPlayer(this, options)); 
     2981                }); 
     2982            } 
     2983            return this; 
    28852984        }; 
    28862985    } 
    2887      
     2986 
    28882987    $(document).ready(function() { 
    28892988        // auto enable using JSON attribute 
    28902989        $('.mejs-player').mediaelementplayer(); 
    28912990    }); 
    2892      
     2991 
    28932992    // push out to window 
    28942993    window.MediaElementPlayer = mejs.MediaElementPlayer; 
     
    29053004    $.extend(MediaElementPlayer.prototype, { 
    29063005        buildplaypause: function(player, controls, layers, media) { 
    2907             var  
     3006            var 
    29083007                t = this, 
    2909                 play =  
     3008                play = 
    29103009                $('<div class="mejs-button mejs-playpause-button mejs-play" >' + 
    29113010                    '<button type="button" aria-controls="' + t.id + '" title="' + t.options.playpauseText + '"></button>' + 
     
    29143013                .click(function(e) { 
    29153014                    e.preventDefault(); 
    2916                  
     3015 
    29173016                    if (media.paused) { 
    29183017                        media.play(); 
     
    29203019                        media.pause(); 
    29213020                    } 
    2922                      
     3021 
    29233022                    return false; 
    29243023                }); 
     
    29403039        } 
    29413040    }); 
    2942      
     3041 
    29433042})(mejs.$); 
    29443043(function($) { 
     
    29523051        buildstop: function(player, controls, layers, media) { 
    29533052            var t = this, 
    2954                 stop =  
     3053                stop = 
    29553054                $('<div class="mejs-button mejs-stop-button mejs-stop">' + 
    29563055                    '<button type="button" aria-controls="' + t.id + '" title="' + t.options.stopText + '"></button>' + 
     
    29673066                        controls.find('.mejs-time-handle').css('left', '0px'); 
    29683067                        controls.find('.mejs-time-float-current').html( mejs.Utility.secondsToTimeCode(0) ); 
    2969                         controls.find('.mejs-currenttime').html( mejs.Utility.secondsToTimeCode(0) );                    
     3068                        controls.find('.mejs-currenttime').html( mejs.Utility.secondsToTimeCode(0) ); 
    29703069                        layers.find('.mejs-poster').show(); 
    29713070                    } 
     
    29733072        } 
    29743073    }); 
    2975      
     3074 
    29763075})(mejs.$); 
    29773076(function($) { 
     
    29863085                    '<span class="mejs-time-current"></span>'+ 
    29873086                    '<span class="mejs-time-handle"></span>'+ 
    2988                     '<span class="mejs-time-float">' +  
    2989                         '<span class="mejs-time-float-current">00:00</span>' +  
    2990                         '<span class="mejs-time-float-corner"></span>' +  
     3087                    '<span class="mejs-time-float">' + 
     3088                        '<span class="mejs-time-float-current">00:00</span>' + 
     3089                        '<span class="mejs-time-float-corner"></span>' + 
    29913090                    '</span>'+ 
    29923091                '</span>'+ 
     
    29953094                controls.find('.mejs-time-buffering').hide(); 
    29963095 
    2997             var  
     3096            var 
    29983097                t = this, 
    29993098                total = controls.find('.mejs-time-total'), 
     
    30103109                        percentage = 0, 
    30113110                        newTime = 0, 
     3111                        pos = 0; 
     3112 
     3113 
     3114                    if (media.duration) { 
     3115                        if (x < offset.left) { 
     3116                            x = offset.left; 
     3117                        } else if (x > width + offset.left) { 
     3118                            x = width + offset.left; 
     3119                        } 
     3120 
    30123121                        pos = x - offset.left; 
    3013  
    3014  
    3015                     if (x > offset.left && x <= width + offset.left && media.duration) { 
    3016                         percentage = ((x - offset.left) / width); 
     3122                        percentage = (pos / width); 
    30173123                        newTime = (percentage <= 0.02) ? 0 : percentage * media.duration; 
    30183124 
    30193125                        // seek to where the mouse is 
    3020                         if (mouseIsDown) { 
     3126                        if (mouseIsDown && newTime !== media.currentTime) { 
    30213127                            media.setCurrentTime(newTime); 
    30223128                        } 
     
    30413147                        mouseIsDown = true; 
    30423148                        handleMouseMove(e); 
    3043                         $(document) 
    3044                             .bind('mousemove.dur', function(e) { 
    3045                                 handleMouseMove(e); 
    3046                             }) 
    3047                             .bind('mouseup.dur', function (e) { 
    3048                                 mouseIsDown = false; 
    3049                                 timefloat.hide(); 
    3050                                 $(document).unbind('.dur'); 
    3051                             }); 
     3149                        t.globalBind('mousemove.dur', function(e) { 
     3150                            handleMouseMove(e); 
     3151                        }); 
     3152                        t.globalBind('mouseup.dur', function (e) { 
     3153                            mouseIsDown = false; 
     3154                            timefloat.hide(); 
     3155                            t.globalUnbind('.dur'); 
     3156                        }); 
    30523157                        return false; 
    30533158                    } 
     
    30553160                .bind('mouseenter', function(e) { 
    30563161                    mouseIsOver = true; 
    3057                     $(document).bind('mousemove.dur', function(e) { 
     3162                    t.globalBind('mousemove.dur', function(e) { 
    30583163                        handleMouseMove(e); 
    30593164                    }); 
     
    30653170                    mouseIsOver = false; 
    30663171                    if (!mouseIsDown) { 
    3067                         $(document).unbind('.dur'); 
     3172                        t.globalUnbind('.dur'); 
    30683173                        timefloat.hide(); 
    30693174                    } 
     
    30813186                player.setCurrentRail(e); 
    30823187            }, false); 
    3083              
    3084              
     3188 
     3189 
    30853190            // store for later use 
    30863191            t.loaded = loaded; 
     
    30943199                t = this, 
    30953200                target = (e != undefined) ? e.target : t.media, 
    3096                 percent = null;          
     3201                percent = null; 
    30973202 
    30983203            // newest HTML5 spec has buffered array (FF4, Webkit) 
    30993204            if (target && target.buffered && target.buffered.length > 0 && target.buffered.end && target.duration) { 
    3100                 // TODO: account for a real array with multiple values (only Firefox 4 has this so far)  
     3205                // TODO: account for a real array with multiple values (only Firefox 4 has this so far) 
    31013206                percent = target.buffered.end(0) / target.duration; 
    3102             }  
     3207            } 
    31033208            // Some browsers (e.g., FF3.6 and Safari 5) cannot calculate target.bufferered.end() 
    31043209            // to be anything other than 0. If the byte count is available we use this instead. 
     
    31253230 
    31263231            var t = this; 
    3127          
     3232 
    31283233            if (t.media.currentTime != undefined && t.media.duration) { 
    31293234 
    31303235                // update bar and handle 
    31313236                if (t.total && t.handle) { 
    3132                     var  
    3133                         newWidth = t.total.width() * t.media.currentTime / t.media.duration, 
    3134                         handlePos = newWidth - (t.handle.outerWidth(true) / 2); 
     3237                    var 
     3238                        newWidth = Math.round(t.total.width() * t.media.currentTime / t.media.duration), 
     3239                        handlePos = newWidth - Math.round(t.handle.outerWidth(true) / 2); 
    31353240 
    31363241                    t.current.width(newWidth); 
     
    31393244            } 
    31403245 
    3141         }    
     3246        } 
    31423247    }); 
    31433248})(mejs.$); 
     3249 
    31443250(function($) { 
    3145      
     3251 
    31463252    // options 
    31473253    $.extend(mejs.MepDefaults, { 
     
    31553261        buildcurrent: function(player, controls, layers, media) { 
    31563262            var t = this; 
    3157              
     3263 
    31583264            $('<div class="mejs-time">'+ 
    31593265                    '<span class="mejs-currenttime">' + (player.options.alwaysShowHours ? '00:' : '') 
     
    31613267                    '</div>') 
    31623268                    .appendTo(controls); 
    3163              
     3269 
    31643270            t.currenttime = t.controls.find('.mejs-currenttime'); 
    31653271 
     
    31723278        buildduration: function(player, controls, layers, media) { 
    31733279            var t = this; 
    3174              
     3280 
    31753281            if (controls.children().last().find('.mejs-currenttime').length > 0) { 
    31763282                $(t.options.timeAndDurationSeparator + 
    3177                     '<span class="mejs-duration">' +  
    3178                         (t.options.duration > 0 ?  
     3283                    '<span class="mejs-duration">' + 
     3284                        (t.options.duration > 0 ? 
    31793285                            mejs.Utility.secondsToTimeCode(t.options.duration, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount,  t.options.framesPerSecond || 25) : 
    3180                             ((player.options.alwaysShowHours ? '00:' : '') + (player.options.showTimecodeFrameCount? '00:00:00':'00:00'))  
    3181                         ) +  
     3286                            ((player.options.alwaysShowHours ? '00:' : '') + (player.options.showTimecodeFrameCount? '00:00:00':'00:00')) 
     3287                        ) + 
    31823288                    '</span>') 
    31833289                    .appendTo(controls.find('.mejs-time')); 
     
    31863292                // add class to current time 
    31873293                controls.find('.mejs-currenttime').parent().addClass('mejs-currenttime-container'); 
    3188                  
     3294 
    31893295                $('<div class="mejs-time mejs-duration-container">'+ 
    3190                     '<span class="mejs-duration">' +  
    3191                         (t.options.duration > 0 ?  
     3296                    '<span class="mejs-duration">' + 
     3297                        (t.options.duration > 0 ? 
    31923298                            mejs.Utility.secondsToTimeCode(t.options.duration, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount,  t.options.framesPerSecond || 25) : 
    3193                             ((player.options.alwaysShowHours ? '00:' : '') + (player.options.showTimecodeFrameCount? '00:00:00':'00:00'))  
    3194                         ) +  
     3299                            ((player.options.alwaysShowHours ? '00:' : '') + (player.options.showTimecodeFrameCount? '00:00:00':'00:00')) 
     3300                        ) + 
    31953301                    '</span>' + 
    31963302                '</div>') 
    31973303                .appendTo(controls); 
    31983304            } 
    3199              
     3305 
    32003306            t.durationD = t.controls.find('.mejs-duration'); 
    32013307 
     
    32043310            }, false); 
    32053311        }, 
    3206          
     3312 
    32073313        updateCurrent:  function() { 
    32083314            var t = this; 
     
    32123318            } 
    32133319        }, 
    3214          
    3215         updateDuration: function() {     
     3320 
     3321        updateDuration: function() { 
    32163322            var t = this; 
    3217              
    3218             if (t.media.duration && t.durationD) { 
    3219                 t.durationD.html(mejs.Utility.secondsToTimeCode(t.media.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond || 25)); 
    3220             }        
     3323 
     3324            //Toggle the long video class if the video is longer than an hour. 
     3325            t.container.toggleClass("mejs-long-video", t.media.duration > 3600); 
     3326 
     3327            if (t.durationD && (t.options.duration > 0 || t.media.duration)) { 
     3328                t.durationD.html(mejs.Utility.secondsToTimeCode(t.options.duration > 0 ? t.options.duration : t.media.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond || 25)); 
     3329            } 
    32213330        } 
    32223331    }); 
     
    32283337        muteText: 'Mute Toggle', 
    32293338        hideVolumeOnTouchDevices: true, 
    3230          
     3339 
    32313340        audioVolume: 'horizontal', 
    32323341        videoVolume: 'vertical' 
     
    32353344    $.extend(MediaElementPlayer.prototype, { 
    32363345        buildvolume: function(player, controls, layers, media) { 
    3237                  
     3346 
    32383347            // Android and iOS don't support volume controls 
    32393348            if (mejs.MediaFeatures.hasTouch && this.options.hideVolumeOnTouchDevices) 
    32403349                return; 
    3241              
     3350 
    32423351            var t = this, 
    32433352                mode = (t.isVideo) ? t.options.videoVolume : t.options.audioVolume, 
    32443353                mute = (mode == 'horizontal') ? 
    3245                  
     3354 
    32463355                // horizontal version 
    32473356                $('<div class="mejs-button mejs-volume-button mejs-mute">'+ 
     
    32553364                ) 
    32563365                    .appendTo(controls) : 
    3257                  
     3366 
    32583367                // vertical version 
    32593368                $('<div class="mejs-button mejs-volume-button mejs-mute">'+ 
     
    32793388                    return; 
    32803389                } 
    3281              
     3390 
    32823391                // correct to 0-1 
    32833392                volume = Math.max(0,volume); 
    3284                 volume = Math.min(volume,1);                     
    3285                  
     3393                volume = Math.min(volume,1); 
     3394 
    32863395                // ajust mute button style 
    32873396                if (volume == 0) { 
     
    32893398                } else { 
    32903399                    mute.removeClass('mejs-unmute').addClass('mejs-mute'); 
    3291                 }                
    3292  
    3293                 // position slider  
     3400                } 
     3401 
     3402                // position slider 
    32943403                if (mode == 'vertical') { 
    3295                     var  
    3296                      
     3404                    var 
     3405 
    32973406                        // height of the full size volume slider background 
    32983407                        totalHeight = volumeTotal.height(), 
    3299                          
     3408 
    33003409                        // top/left of full size volume slider background 
    33013410                        totalPosition = volumeTotal.position(), 
    3302                          
     3411 
    33033412                        // the new top position based on the current volume 
    33043413                        // 70% volume on 100px height == top:30px 
    33053414                        newTop = totalHeight - (totalHeight * volume); 
    3306      
     3415 
    33073416                    // handle 
    33083417                    volumeHandle.css('top', Math.round(totalPosition.top + newTop - (volumeHandle.height() / 2))); 
    3309      
     3418 
    33103419                    // show the current visibility 
    33113420                    volumeCurrent.height(totalHeight - newTop ); 
    33123421                    volumeCurrent.css('top', totalPosition.top + newTop); 
    33133422                } else { 
    3314                     var  
    3315                      
     3423                    var 
     3424 
    33163425                        // height of the full size volume slider background 
    33173426                        totalWidth = volumeTotal.width(), 
    3318                          
     3427 
    33193428                        // top/left of full size volume slider background 
    33203429                        totalPosition = volumeTotal.position(), 
    3321                          
     3430 
    33223431                        // the new left position based on the current volume 
    33233432                        newLeft = totalWidth * volume; 
    3324      
     3433 
    33253434                    // handle 
    33263435                    volumeHandle.css('left', Math.round(totalPosition.left + newLeft - (volumeHandle.width() / 2))); 
    3327      
     3436 
    33283437                    // rezize the current part of the volume bar 
    33293438                    volumeCurrent.width( Math.round(newLeft) ); 
     
    33313440            }, 
    33323441            handleVolumeMove = function(e) { 
    3333                  
     3442 
    33343443                var volume = null, 
    33353444                    totalOffset = volumeTotal.offset(); 
    3336                  
     3445 
    33373446                // calculate the new volume based on the moust position 
    33383447                if (mode == 'vertical') { 
    3339                  
     3448 
    33403449                    var 
    33413450                        railHeight = volumeTotal.height(), 
    33423451                        totalTop = parseInt(volumeTotal.css('top').replace(/px/,''),10), 
    33433452                        newY = e.pageY - totalOffset.top; 
    3344                          
     3453 
    33453454                    volume = (railHeight - newY) / railHeight; 
    3346                          
     3455 
    33473456                    // the controls just hide themselves (usually when mouse moves too far up) 
    33483457                    if (totalOffset.top == 0 || totalOffset.left == 0) 
    33493458                        return; 
    3350                      
     3459 
    33513460                } else { 
    33523461                    var 
    33533462                        railWidth = volumeTotal.width(), 
    33543463                        newX = e.pageX - totalOffset.left; 
    3355                          
     3464 
    33563465                    volume = newX / railWidth; 
    33573466                } 
    3358                  
     3467 
    33593468                // ensure the volume isn't outside 0-1 
    33603469                volume = Math.max(0,volume); 
    33613470                volume = Math.min(volume,1); 
    3362                  
    3363                 // position the slider and handle            
     3471 
     3472                // position the slider and handle 
    33643473                positionVolumeHandle(volume); 
    3365                  
     3474 
    33663475                // set the media object (this will trigger the volumechanged event) 
    33673476                if (volume == 0) { 
     
    33703479                    media.setMuted(false); 
    33713480                } 
    3372                 media.setVolume(volume);             
     3481                media.setVolume(volume); 
    33733482            }, 
    33743483            mouseIsDown = false, 
     
    33763485 
    33773486            // SLIDER 
    3378              
     3487 
    33793488            mute 
    33803489                .hover(function() { 
     
    33823491                    mouseIsOver = true; 
    33833492                }, function() { 
    3384                     mouseIsOver = false;     
    3385                          
     3493                    mouseIsOver = false; 
     3494 
    33863495                    if (!mouseIsDown && mode == 'vertical') { 
    33873496                        volumeSlider.hide(); 
    33883497                    } 
    33893498                }); 
    3390              
     3499 
    33913500            volumeSlider 
    33923501                .bind('mouseover', function() { 
    3393                     mouseIsOver = true;  
     3502                    mouseIsOver = true; 
    33943503                }) 
    33953504                .bind('mousedown', function (e) { 
    33963505                    handleVolumeMove(e); 
    3397                     $(document) 
    3398                         .bind('mousemove.vol', function(e) { 
    3399                             handleVolumeMove(e); 
    3400                         }) 
    3401                         .bind('mouseup.vol', function () { 
    3402                             mouseIsDown = false; 
    3403                             $(document).unbind('.vol'); 
    3404  
    3405                             if (!mouseIsOver && mode == 'vertical') { 
    3406                                 volumeSlider.hide(); 
    3407                             } 
    3408                         }); 
     3506                    t.globalBind('mousemove.vol', function(e) { 
     3507                        handleVolumeMove(e); 
     3508                    }); 
     3509                    t.globalBind('mouseup.vol', function () { 
     3510                        mouseIsDown = false; 
     3511                        t.globalUnbind('.vol'); 
     3512 
     3513                        if (!mouseIsOver && mode == 'vertical') { 
     3514                            volumeSlider.hide(); 
     3515                        } 
     3516                    }); 
    34093517                    mouseIsDown = true; 
    3410                          
     3518 
    34113519                    return false; 
    34123520                }); 
     
    34343542                // set initial volume 
    34353543                positionVolumeHandle(player.options.startVolume); 
    3436                  
     3544 
     3545                // mutes the media and sets the volume icon muted if the initial volume is set to 0 
     3546        if (player.options.startVolume === 0) { 
     3547          media.setMuted(true); 
     3548        } 
     3549 
    34373550                // shim gets the startvolume as a parameter, but we have to set it on the native <video> and <audio> elements 
    34383551                if (media.pluginType === 'native') { 
     
    34423555        } 
    34433556    }); 
    3444      
     3557 
    34453558})(mejs.$); 
    34463559 
     
    34743587 
    34753588                // chrome doesn't alays fire this in an iframe 
    3476                 var target = null; 
    3477  
    3478                 if (mejs.MediaFeatures.hasMozNativeFullScreen) { 
    3479                     target = $(document); 
    3480                 } else { 
    3481                     target = player.container; 
    3482                 } 
    3483  
    3484                 target.bind(mejs.MediaFeatures.fullScreenEventName, function(e) { 
     3589                var func = function(e) { 
    34853590 
    34863591                    if (mejs.MediaFeatures.isFullScreen()) { 
     
    34943599                        player.exitFullScreen(); 
    34953600                    } 
    3496                 }); 
     3601                }; 
     3602 
     3603                if (mejs.MediaFeatures.hasMozNativeFullScreen) { 
     3604                    player.globalBind(mejs.MediaFeatures.fullScreenEventName, func); 
     3605                } else { 
     3606                    player.container.bind(mejs.MediaFeatures.fullScreenEventName, func); 
     3607                } 
    34973608            } 
    34983609 
     
    36003711                            }; 
    36013712 
    3602                         $(document).resize(function() { 
     3713                        t.globalBind('resize', function() { 
    36033714                            positionHoverDivs(); 
    36043715                        }); 
     
    36403751                        // so we use the document.mousemove event to restore controls when the mouse moves outside the fullscreen button 
    36413752                        /* 
    3642                         $(document).mousemove(function(e) { 
     3753                        t.globalBind('mousemove', function(e) { 
    36433754 
    36443755                            // if the mouse is anywhere but the fullsceen button, then restore it all 
     
    36983809            player.fullscreenBtn = fullscreenBtn; 
    36993810 
    3700             $(document).bind('keydown',function (e) { 
     3811            t.globalBind('keydown',function (e) { 
    37013812                if (((mejs.MediaFeatures.hasTrueNativeFullScreen && mejs.MediaFeatures.isFullScreen()) || t.isFullScreen) && e.keyCode == 27) { 
    37023813                    player.exitFullScreen(); 
     
    37053816 
    37063817        }, 
     3818 
     3819        cleanfullscreen: function(player) { 
     3820            player.exitFullScreen(); 
     3821        }, 
     3822 
    37073823        enterFullScreen: function() { 
    37083824 
     
    38083924                    .height('100%'); 
    38093925            } else { 
    3810                 t.container.find('object, embed, iframe') 
     3926                t.container.find('.mejs-shim') 
    38113927                    .width('100%') 
    38123928                    .height('100%'); 
     
    38854001(function($) { 
    38864002 
    3887     // add extra default options  
     4003    // add extra default options 
    38884004    $.extend(mejs.MepDefaults, { 
    38894005        // this will automatically turn on a <track> 
    38904006        startLanguage: '', 
    3891          
    3892         tracksText: 'Captions/Subtitles' 
     4007 
     4008        tracksText: 'Captions/Subtitles', 
     4009 
     4010        // option to remove the [cc] button when no <track kind="subtitles"> are present 
     4011        hideCaptionsButtonWhenEmpty: true, 
     4012 
     4013        // If true and we only have one track, change captions to popup 
     4014        toggleCaptionsButtonWhenOnlyOne: false, 
     4015 
     4016        // #id or .class 
     4017        slidesSelector: '' 
    38934018    }); 
    38944019 
    38954020    $.extend(MediaElementPlayer.prototype, { 
    3896      
     4021 
    38974022        hasChapters: false, 
    38984023 
     
    39044029                return; 
    39054030 
    3906             var t= this, i, options = ''; 
    3907  
    3908             player.chapters =  
     4031            var t = this, 
     4032                i, 
     4033                options = ''; 
     4034 
     4035            player.chapters = 
    39094036                    $('<div class="mejs-chapters mejs-layer"></div>') 
    39104037                        .prependTo(layers).hide(); 
    3911             player.captions =  
    3912                     $('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position"><span class="mejs-captions-text"></span></div></div>') 
     4038            player.captions = 
     4039                    $('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position mejs-captions-position-hover"><span class="mejs-captions-text"></span></div></div>') 
    39134040                        .prependTo(layers).hide(); 
    39144041            player.captionsText = player.captions.find('.mejs-captions-text'); 
    3915             player.captionsButton =  
     4042            player.captionsButton = 
    39164043                    $('<div class="mejs-button mejs-captions-button">'+ 
    39174044                        '<button type="button" aria-controls="' + t.id + '" title="' + t.options.tracksText + '"></button>'+ 
     
    39254052                        '</div>'+ 
    39264053                    '</div>') 
    3927                         .appendTo(controls) 
    3928                          
    3929                         // hover 
    3930                         .hover(function() { 
    3931                             $(this).find('.mejs-captions-selector').css('visibility','visible'); 
    3932                         }, function() { 
    3933                             $(this).find('.mejs-captions-selector').css('visibility','hidden'); 
    3934                         })                   
    3935                          
    3936                         // handle clicks to the language radio buttons 
    3937                         .delegate('input[type=radio]','click',function() { 
    3938                             lang = this.value; 
    3939  
    3940                             if (lang == 'none') { 
    3941                                 player.selectedTrack = null; 
    3942                             } else { 
    3943                                 for (i=0; i<player.tracks.length; i++) { 
    3944                                     if (player.tracks[i].srclang == lang) { 
    3945                                         player.selectedTrack = player.tracks[i]; 
    3946                                         player.captions.attr('lang', player.selectedTrack.srclang); 
    3947                                         player.displayCaptions(); 
    3948                                         break; 
    3949                                     } 
    3950                                 } 
    3951                             } 
    3952                         }); 
    3953                         //.bind('mouseenter', function() { 
    3954                         //  player.captionsButton.find('.mejs-captions-selector').css('visibility','visible') 
    3955                         //}); 
     4054                        .appendTo(controls); 
     4055 
     4056 
     4057            var subtitleCount = 0; 
     4058            for (i=0; i<player.tracks.length; i++) { 
     4059                if (player.tracks[i].kind == 'subtitles') { 
     4060                    subtitleCount++; 
     4061                } 
     4062            } 
     4063 
     4064            // if only one language then just make the button a toggle 
     4065            if (t.options.toggleCaptionsButtonWhenOnlyOne && subtitleCount == 1){ 
     4066                // click 
     4067                player.captionsButton.on('click',function() { 
     4068                    if (player.selectedTrack == null) { 
     4069                        var lang = player.tracks[0].srclang; 
     4070                    } else { 
     4071                        var lang = 'none'; 
     4072                    } 
     4073                    player.setTrack(lang); 
     4074                }); 
     4075            } else { 
     4076                // hover 
     4077                player.captionsButton.hover(function() { 
     4078                    $(this).find('.mejs-captions-selector').css('visibility','visible'); 
     4079                }, function() { 
     4080                    $(this).find('.mejs-captions-selector').css('visibility','hidden'); 
     4081                }) 
     4082 
     4083                // handle clicks to the language radio buttons 
     4084                .on('click','input[type=radio]',function() { 
     4085                    lang = this.value; 
     4086                    player.setTrack(lang); 
     4087                }); 
     4088 
     4089            } 
    39564090 
    39574091            if (!player.options.alwaysShowControls) { 
    39584092                // move with controls 
    39594093                player.container 
    3960                     .bind('mouseenter', function () { 
     4094                    .bind('controlsshown', function () { 
    39614095                        // push captions above controls 
    39624096                        player.container.find('.mejs-captions-position').addClass('mejs-captions-position-hover'); 
    39634097 
    39644098                    }) 
    3965                     .bind('mouseleave', function () { 
     4099                    .bind('controlshidden', function () { 
    39664100                        if (!media.paused) { 
    39674101                            // move back to normal place 
     
    39774111            player.isLoadingTrack = false; 
    39784112 
    3979              
     4113 
    39804114 
    39814115            // add to list 
     
    39864120            } 
    39874121 
     4122            // start loading tracks 
    39884123            player.loadNextTrack(); 
    39894124 
     
    39924127                player.displayCaptions(); 
    39934128            }, false); 
     4129 
     4130            if (player.options.slidesSelector != '') { 
     4131                player.slidesContainer = $(player.options.slidesSelector); 
     4132 
     4133                media.addEventListener('timeupdate',function(e) { 
     4134                    player.displaySlides(); 
     4135                }, false); 
     4136 
     4137            } 
    39944138 
    39954139            media.addEventListener('loadedmetadata', function(e) { 
     
    40134157                    } 
    40144158                }); 
    4015                  
     4159 
    40164160            // check for autoplay 
    40174161            if (player.node.getAttribute('autoplay') !== null) { 
    40184162                player.chapters.css('visibility','hidden'); 
     4163            } 
     4164        }, 
     4165 
     4166        setTrack: function(lang){ 
     4167 
     4168            var t = this, 
     4169                i; 
     4170 
     4171            if (lang == 'none') { 
     4172                t.selectedTrack = null; 
     4173                t.captionsButton.removeClass('mejs-captions-enabled'); 
     4174            } else { 
     4175                for (i=0; i<t.tracks.length; i++) { 
     4176                    if (t.tracks[i].srclang == lang) { 
     4177                        if (t.selectedTrack == null) 
     4178                            t.captionsButton.addClass('mejs-captions-enabled'); 
     4179                        t.selectedTrack = t.tracks[i]; 
     4180                        t.captions.attr('lang', t.selectedTrack.srclang); 
     4181                        t.displayCaptions(); 
     4182                        break; 
     4183                    } 
     4184                } 
    40194185            } 
    40204186        }, 
     
    40304196                // add done? 
    40314197                t.isLoadingTrack = false; 
     4198 
     4199                t.checkForTracks(); 
    40324200            } 
    40334201        }, 
     
    40574225                    // parse the loaded file 
    40584226                    if (typeof d == "string" && (/<tt\s+xml/ig).exec(d)) { 
    4059                         track.entries = mejs.TrackFormatParser.dfxp.parse(d);                    
    4060                     } else {     
     4227                        track.entries = mejs.TrackFormatParser.dfxp.parse(d); 
     4228                    } else { 
    40614229                        track.entries = mejs.TrackFormatParser.webvvt.parse(d); 
    40624230                    } 
    4063                      
     4231 
    40644232                    after(); 
    40654233 
     
    40714239                        }, false); 
    40724240                    } 
     4241 
     4242                    if (track.kind == 'slides') { 
     4243                        t.setupSlides(track); 
     4244                    } 
    40734245                }, 
    40744246                error: function() { 
     
    40804252        enableTrackButton: function(lang, label) { 
    40814253            var t = this; 
    4082              
     4254 
    40834255            if (label === '') { 
    40844256                label = mejs.language.codes[lang] || lang; 
    4085             }            
     4257            } 
    40864258 
    40874259            t.captionsButton 
     
    41274299        }, 
    41284300 
     4301        checkForTracks: function() { 
     4302            var 
     4303                t = this, 
     4304                hasSubtitles = false; 
     4305 
     4306            // check if any subtitles 
     4307            if (t.options.hideCaptionsButtonWhenEmpty) { 
     4308                for (i=0; i<t.tracks.length; i++) { 
     4309                    if (t.tracks[i].kind == 'subtitles') { 
     4310                        hasSubtitles = true; 
     4311                        break; 
     4312                    } 
     4313                } 
     4314 
     4315                if (!hasSubtitles) { 
     4316                    t.captionsButton.hide(); 
     4317                    t.setControlsSize(); 
     4318                } 
     4319            } 
     4320        }, 
     4321 
    41294322        displayCaptions: function() { 
    41304323 
     
    41514344        }, 
    41524345 
     4346        setupSlides: function(track) { 
     4347            var t = this; 
     4348 
     4349            t.slides = track; 
     4350            t.slides.entries.imgs = [t.slides.entries.text.length]; 
     4351            t.showSlide(0); 
     4352 
     4353        }, 
     4354 
     4355        showSlide: function(index) { 
     4356            if (typeof this.tracks == 'undefined' || typeof this.slidesContainer == 'undefined') { 
     4357                return; 
     4358            } 
     4359 
     4360            var t = this, 
     4361                url = t.slides.entries.text[index], 
     4362                img = t.slides.entries.imgs[index]; 
     4363 
     4364            if (typeof img == 'undefined' || typeof img.fadeIn == 'undefined') { 
     4365 
     4366                t.slides.entries.imgs[index] = img = $('<img src="' + url + '">') 
     4367                        .on('load', function() { 
     4368                            img.appendTo(t.slidesContainer) 
     4369                                .hide() 
     4370                                .fadeIn() 
     4371                                .siblings(':visible') 
     4372                                    .fadeOut(); 
     4373 
     4374                        }); 
     4375 
     4376            } else { 
     4377 
     4378                if (!img.is(':visible') && !img.is(':animated')) { 
     4379 
     4380                    console.log('showing existing slide'); 
     4381 
     4382                    img.fadeIn() 
     4383                        .siblings(':visible') 
     4384                            .fadeOut(); 
     4385                } 
     4386            } 
     4387 
     4388        }, 
     4389 
     4390        displaySlides: function() { 
     4391 
     4392            if (typeof this.slides == 'undefined') 
     4393                return; 
     4394 
     4395            var 
     4396                t = this, 
     4397                slides = t.slides, 
     4398                i; 
     4399 
     4400            for (i=0; i<slides.entries.times.length; i++) { 
     4401                if (t.media.currentTime >= slides.entries.times[i].start && t.media.currentTime <= slides.entries.times[i].stop){ 
     4402 
     4403                    t.showSlide(i); 
     4404 
     4405                    return; // exit out if one is visible; 
     4406                } 
     4407            } 
     4408        }, 
     4409 
    41534410        displayChapters: function() { 
    4154             var  
     4411            var 
    41554412                t = this, 
    41564413                i; 
     
    41664423 
    41674424        drawChapters: function(chapters) { 
    4168             var  
     4425            var 
    41694426                t = this, 
    41704427                i, 
     
    41924449 
    41934450                t.chapters.append( $( 
    4194                     '<div class="mejs-chapter" rel="' + chapters.entries.times[i].start + '" style="left: ' + usedPercent.toString() + '%;width: ' + percent.toString() + '%;">' +  
    4195                         '<div class="mejs-chapter-block' + ((i==chapters.entries.times.length-1) ? ' mejs-chapter-block-last' : '') + '">' +  
    4196                             '<span class="ch-title">' + chapters.entries.text[i] + '</span>' +  
    4197                             '<span class="ch-time">' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].start) + '&ndash;' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].stop) + '</span>' +  
     4451                    '<div class="mejs-chapter" rel="' + chapters.entries.times[i].start + '" style="left: ' + usedPercent.toString() + '%;width: ' + percent.toString() + '%;">' + 
     4452                        '<div class="mejs-chapter-block' + ((i==chapters.entries.times.length-1) ? ' mejs-chapter-block-last' : '') + '">' + 
     4453                            '<span class="ch-title">' + chapters.entries.text[i] + '</span>' + 
     4454                            '<span class="ch-time">' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].start) + '&ndash;' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].stop) + '</span>' + 
    41984455                        '</div>' + 
    41994456                    '</div>')); 
     
    42044461                t.media.setCurrentTime( parseFloat( $(this).attr('rel') ) ); 
    42054462                if (t.media.paused) { 
    4206                     t.media.play();  
     4463                    t.media.play(); 
    42074464                } 
    42084465            }); 
     
    42794536    ================================ 
    42804537    WEBVTT 
    4281      
     4538 
    42824539    1 
    42834540    00:00:01,1 --> 00:00:05,000 
     
    42874544    00:01:15,1 --> 00:02:05,000 
    42884545    A second line of text 
    4289      
     4546 
    42904547    =============================== 
    42914548 
     
    42994556 
    43004557            parse: function(trackText) { 
    4301                 var  
     4558                var 
    43024559                    i = 0, 
    43034560                    lines = mejs.TrackFormatParser.split2(trackText, /\r?\n/), 
     
    43104567                        // skip to the next line where the start --> end time code should be 
    43114568                        i++; 
    4312                         timecode = this.pattern_timecode.exec(lines[i]);                 
     4569                        timecode = this.pattern_timecode.exec(lines[i]); 
    43134570 
    43144571                        if (timecode && i<lines.length){ 
     
    43404597            parse: function(trackText) { 
    43414598                trackText = $(trackText).filter("tt"); 
    4342                 var  
     4599                var 
    43434600                    i = 0, 
    43444601                    container = trackText.children("div").eq(0), 
     
    43764633                        style = ""; 
    43774634                        for (var _style in styles) { 
    4378                             style += _style + ":" + styles[_style] + ";";                    
     4635                            style += _style + ":" + styles[_style] + ";"; 
    43794636                        } 
    43804637                    } 
     
    43954652        } 
    43964653    }; 
    4397      
     4654 
    43984655    // test for browsers with bad String.split method. 
    43994656    if ('x\n\ny'.split(/\n/gi).length != 3) { 
    44004657        // add super slow IE8 and below version 
    44014658        mejs.TrackFormatParser.split2 = function(text, regex) { 
    4402             var  
    4403                 parts = [],  
     4659            var 
     4660                parts = [], 
    44044661                chunk = '', 
    44054662                i; 
     
    44154672            return parts; 
    44164673        } 
    4417     }    
     4674    } 
    44184675 
    44194676})(mejs.$); 
     
    44214678/* 
    44224679* ContextMenu Plugin 
    4423 *  
     4680* 
    44244681* 
    44254682*/ 
     
    44304687    { 'contextMenuItems': [ 
    44314688        // demo of a fullscreen option 
    4432         {  
     4689        { 
    44334690            render: function(player) { 
    4434                  
     4691 
    44354692                // check for fullscreen plugin 
    44364693                if (typeof player.enterFullScreen == 'undefined') 
    44374694                    return null; 
    4438              
     4695 
    44394696                if (player.isFullScreen) { 
    44404697                    return "Turn off Fullscreen"; 
     
    44534710        , 
    44544711        // demo of a mute/unmute button 
    4455         {  
     4712        { 
    44564713            render: function(player) { 
    44574714                if (player.media.muted) { 
     
    44754732        , 
    44764733        // demo of simple download video 
    4477         {  
     4734        { 
    44784735            render: function(player) { 
    44794736                return "Download Video"; 
     
    44824739                window.location.href = player.media.currentSrc; 
    44834740            } 
    4484         }    
     4741        } 
    44854742    ]} 
    44864743); 
     
    44894746    $.extend(MediaElementPlayer.prototype, { 
    44904747        buildcontextmenu: function(player, controls, layers, media) { 
    4491              
     4748 
    44924749            // create context menu 
    44934750            player.contextMenu = $('<div class="mejs-contextmenu"></div>') 
    44944751                                .appendTo($('body')) 
    44954752                                .hide(); 
    4496              
     4753 
    44974754            // create events for showing context menu 
    44984755            player.container.bind('contextmenu', function(e) { 
     
    45054762            player.container.bind('click', function() { 
    45064763                player.contextMenu.hide(); 
    4507             });  
     4764            }); 
    45084765            player.contextMenu.bind('mouseleave', function() { 
    45094766 
    45104767                //console.log('context hover out'); 
    45114768                player.startContextMenuTimer(); 
    4512                  
    4513             });      
    4514         }, 
    4515          
     4769 
     4770            }); 
     4771        }, 
     4772 
     4773        cleancontextmenu: function(player) { 
     4774            player.contextMenu.remove(); 
     4775        }, 
     4776 
    45164777        isContextMenuEnabled: true, 
    45174778        enableContextMenu: function() { 
     
    45214782            this.isContextMenuEnabled = false; 
    45224783        }, 
    4523          
     4784 
    45244785        contextMenuTimeout: null, 
    45254786        startContextMenuTimer: function() { 
    45264787            //console.log('startContextMenuTimer'); 
    4527              
     4788 
    45284789            var t = this; 
    4529              
     4790 
    45304791            t.killContextMenuTimer(); 
    4531              
     4792 
    45324793            t.contextMenuTimer = setTimeout(function() { 
    45334794                t.hideContextMenu(); 
     
    45374798        killContextMenuTimer: function() { 
    45384799            var timer = this.contextMenuTimer; 
    4539              
     4800 
    45404801            //console.log('killContextMenuTimer', timer); 
    4541              
    4542             if (timer != null) {                 
     4802 
     4803            if (timer != null) { 
    45434804                clearTimeout(timer); 
    45444805                delete timer; 
    45454806                timer = null; 
    45464807            } 
    4547         },       
    4548          
     4808        }, 
     4809 
    45494810        hideContextMenu: function() { 
    45504811            this.contextMenu.hide(); 
    45514812        }, 
    4552          
     4813 
    45534814        renderContextMenu: function(x,y) { 
    4554              
     4815 
    45554816            // alway re-render the items so that things like "turn fullscreen on" and "turn fullscreen off" are always written correctly 
    45564817            var t = this, 
    45574818                html = '', 
    45584819                items = t.options.contextMenuItems; 
    4559              
     4820 
    45604821            for (var i=0, il=items.length; i<il; i++) { 
    4561                  
     4822 
    45624823                if (items[i].isSeparator) { 
    45634824                    html += '<div class="mejs-contextmenu-separator"></div>'; 
    45644825                } else { 
    4565                  
     4826 
    45664827                    var rendered = items[i].render(t); 
    4567                  
     4828 
    45684829                    // render can return null if the item doesn't need to be used at the moment 
    45694830                    if (rendered != null) { 
     
    45724833                } 
    45734834            } 
    4574              
     4835 
    45754836            // position and show the context menu 
    45764837            t.contextMenu 
     
    45794840                .css({top:y, left:x}) 
    45804841                .show(); 
    4581                  
     4842 
    45824843            // bind events 
    45834844            t.contextMenu.find('.mejs-contextmenu-item').each(function() { 
    4584                              
     4845 
    45854846                // which one is this? 
    45864847                var $dom = $(this), 
    45874848                    itemIndex = parseInt( $dom.data('itemindex'), 10 ), 
    45884849                    item = t.options.contextMenuItems[itemIndex]; 
    4589                  
     4850 
    45904851                // bind extra functionality? 
    45914852                if (typeof item.show != 'undefined') 
    45924853                    item.show( $dom , t); 
    4593                  
     4854 
    45944855                // bind click action 
    4595                 $dom.click(function() {          
     4856                $dom.click(function() { 
    45964857                    // perform click action 
    45974858                    if (typeof item.click != 'undefined') 
    45984859                        item.click(t); 
    4599                      
     4860 
    46004861                    // close 
    4601                     t.contextMenu.hide();                
    4602                 });              
    4603             });  
    4604              
     4862                    t.contextMenu.hide(); 
     4863                }); 
     4864            }); 
     4865 
    46054866            // stop the controls from hiding 
    46064867            setTimeout(function() { 
    4607                 t.killControlsTimer('rev3');     
     4868                t.killControlsTimer('rev3'); 
    46084869            }, 100); 
    4609                          
     4870 
    46104871        } 
    46114872    }); 
    4612      
     4873 
    46134874})(mejs.$); 
    46144875/** 
  • trunk/wp-includes/js/mediaelement/mediaelement-and-player.min.js

    r23731 r23958  
    99* 
    1010* Copyright 2010-2012, John Dyer (http://j.hn) 
    11 * Dual licensed under the MIT or GPL Version 2 licenses. 
     11* License: MIT 
    1212* 
    13 */ 
    14 var mejs=mejs||{};mejs.version="2.10.1";mejs.meIndex=0;mejs.plugins={silverlight:[{version:[3,0],types:["video/mp4","video/m4v","video/mov","video/wmv","audio/wma","audio/m4a","audio/mp3","audio/wav","audio/mpeg"]}],flash:[{version:[9,0,124],types:["video/mp4","video/m4v","video/mov","video/flv","video/rtmp","video/x-flv","audio/flv","audio/x-flv","audio/mp3","audio/m4a","audio/mpeg","video/youtube","video/x-youtube"]}],youtube:[{version:null,types:["video/youtube","video/x-youtube"]}],vimeo:[{version:null,types:["video/vimeo","video/x-vimeo"]}]};mejs.Utility={encodeUrl:function(a){return encodeURIComponent(a)},escapeHTML:function(a){return a.toString().split("&").join("&amp;").split("<").join("&lt;").split('"').join("&quot;")},absolutizeUrl:function(a){var b=document.createElement("div");b.innerHTML='<a href="'+this.escapeHTML(a)+'">x</a>';return b.firstChild.href},getScriptPath:function(h){var e=0,c,k="",a="",f,b=document.getElementsByTagName("script"),g=b.length,d=h.length;for(;e<g;e++){f=b[e].src;for(c=0;c<d;c++){a=h[c];if(f.indexOf(a)>-1){k=f.substring(0,f.indexOf(a));break}}if(k!==""){break}}return k},secondsToTimeCode:function(c,g,a,b){if(typeof a=="undefined"){a=false}else{if(typeof b=="undefined"){b=25}}var f=Math.floor(c/3600)%24,d=Math.floor(c/60)%60,h=Math.floor(c%60),e=Math.floor(((c%1)*b).toFixed(3)),j=((g||f>0)?(f<10?"0"+f:f)+":":"")+(d<10?"0"+d:d)+":"+(h<10?"0"+h:h)+((a)?":"+(e<10?"0"+e:e):"");return j},timeCodeToSeconds:function(c,k,d,e){if(typeof d=="undefined"){d=false}else{if(typeof e=="undefined"){e=25}}var f=c.split(":"),a=parseInt(f[0],10),b=parseInt(f[1],10),h=parseInt(f[2],10),j=0,g=0;if(d){j=parseInt(f[3])/e}g=(a*3600)+(b*60)+h+j;return g},convertSMPTEtoSeconds:function(a){if(typeof a!="string"){return false}a=a.replace(",",".");var d=0,b=(a.indexOf(".")!=-1)?a.split(".")[1].length:0,e=1;a=a.split(":").reverse();for(var c=0;c<a.length;c++){e=1;if(c>0){e=Math.pow(60,c)}d+=Number(a[c])*e}return Number(d.toFixed(b))},removeSwf:function(b){var a=document.getElementById(b);if(a&&a.nodeName=="OBJECT"){if(mejs.MediaFeatures.isIE){a.style.display="none";(function(){if(a.readyState==4){mejs.Utility.removeObjectInIE(b)}else{setTimeout(arguments.callee,10)}})()}else{a.parentNode.removeChild(a)}}},removeObjectInIE:function(c){var b=document.getElementById(c);if(b){for(var a in b){if(typeof b[a]=="function"){b[a]=null}}b.parentNode.removeChild(b)}}};mejs.PluginDetector={hasPluginVersion:function(c,a){var b=this.plugins[c];a[1]=a[1]||0;a[2]=a[2]||0;return(b[0]>a[0]||(b[0]==a[0]&&b[1]>a[1])||(b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]))?true:false},nav:window.navigator,ua:window.navigator.userAgent.toLowerCase(),plugins:[],addPlugin:function(d,c,e,a,b){this.plugins[d]=this.detectPlugin(c,e,a,b)},detectPlugin:function(g,b,c,k){var h=[0,0,0],j,d,a;if(typeof(this.nav.plugins)!="undefined"&&typeof this.nav.plugins[g]=="object"){j=this.nav.plugins[g].description;if(j&&!(typeof this.nav.mimeTypes!="undefined"&&this.nav.mimeTypes[b]&&!this.nav.mimeTypes[b].enabledPlugin)){h=j.replace(g,"").replace(/^\s+/,"").replace(/\sr/gi,".").split(".");for(d=0;d<h.length;d++){h[d]=parseInt(h[d].match(/\d+/),10)}}}else{if(typeof(window.ActiveXObject)!="undefined"){try{a=new ActiveXObject(c);if(a){h=k(a)}}catch(f){}}}return h}};mejs.PluginDetector.addPlugin("flash","Shockwave Flash","application/x-shockwave-flash","ShockwaveFlash.ShockwaveFlash",function(b){var a=[],c=b.GetVariable("$version");if(c){c=c.split(" ")[1].split(",");a=[parseInt(c[0],10),parseInt(c[1],10),parseInt(c[2],10)]}return a});mejs.PluginDetector.addPlugin("silverlight","Silverlight Plug-In","application/x-silverlight-2","AgControl.AgControl",function(b){var a=[0,0,0,0],c=function(f,d,e,g){while(f.isVersionSupported(d[0]+"."+d[1]+"."+d[2]+"."+d[3])){d[e]+=g}d[e]-=g};c(b,a,0,1);c(b,a,1,1);c(b,a,2,10000);c(b,a,2,1000);c(b,a,2,100);c(b,a,2,10);c(b,a,2,1);c(b,a,3,1);return a});mejs.MediaFeatures={init:function(){var e=this,h=document,g=mejs.PluginDetector.nav,c=mejs.PluginDetector.ua.toLowerCase(),b,a,f=["source","track","audio","video"];e.isiPad=(c.match(/ipad/i)!==null);e.isiPhone=(c.match(/iphone/i)!==null);e.isiOS=e.isiPhone||e.isiPad;e.isAndroid=(c.match(/android/i)!==null);e.isBustedAndroid=(c.match(/android 2\.[12]/)!==null);e.isIE=(g.appName.toLowerCase().indexOf("microsoft")!=-1);e.isChrome=(c.match(/chrome/gi)!==null);e.isFirefox=(c.match(/firefox/gi)!==null);e.isWebkit=(c.match(/webkit/gi)!==null);e.isGecko=(c.match(/gecko/gi)!==null)&&!e.isWebkit;e.isOpera=(c.match(/opera/gi)!==null);e.hasTouch=("ontouchstart" in window);e.svg=!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect;for(b=0;b<f.length;b++){a=document.createElement(f[b])}e.supportsMediaTag=(typeof a.canPlayType!=="undefined"||e.isBustedAndroid);e.hasSemiNativeFullScreen=(typeof a.webkitEnterFullscreen!=="undefined");e.hasWebkitNativeFullScreen=(typeof a.webkitRequestFullScreen!=="undefined");e.hasMozNativeFullScreen=(typeof a.mozRequestFullScreen!=="undefined");e.hasTrueNativeFullScreen=(e.hasWebkitNativeFullScreen||e.hasMozNativeFullScreen);e.nativeFullScreenEnabled=e.hasTrueNativeFullScreen;if(e.hasMozNativeFullScreen){e.nativeFullScreenEnabled=a.mozFullScreenEnabled}if(this.isChrome){e.hasSemiNativeFullScreen=false}if(e.hasTrueNativeFullScreen){e.fullScreenEventName=(e.hasWebkitNativeFullScreen)?"webkitfullscreenchange":"mozfullscreenchange";e.isFullScreen=function(){if(a.mozRequestFullScreen){return h.mozFullScreen}else{if(a.webkitRequestFullScreen){return h.webkitIsFullScreen}}};e.requestFullScreen=function(d){if(e.hasWebkitNativeFullScreen){d.webkitRequestFullScreen()}else{if(e.hasMozNativeFullScreen){d.mozRequestFullScreen()}}};e.cancelFullScreen=function(){if(e.hasWebkitNativeFullScreen){document.webkitCancelFullScreen()}else{if(e.hasMozNativeFullScreen){document.mozCancelFullScreen()}}}}if(e.hasSemiNativeFullScreen&&c.match(/mac os x 10_5/i)){e.hasNativeFullScreen=false;e.hasSemiNativeFullScreen=false}}};mejs.MediaFeatures.init();mejs.HtmlMediaElement={pluginType:"native",isFullScreen:false,setCurrentTime:function(a){this.currentTime=a},setMuted:function(a){this.muted=a},setVolume:function(a){this.volume=a},stop:function(){this.pause()},setSrc:function(a){var c=this.getElementsByTagName("source");while(c.length>0){this.removeChild(c[0])}if(typeof a=="string"){this.src=a}else{var b,d;for(b=0;b<a.length;b++){d=a[b];if(this.canPlayType(d.type)){this.src=d.src;break}}}},setVideoSize:function(b,a){this.width=b;this.height=a}};mejs.PluginMediaElement=function(b,c,a){this.id=b;this.pluginType=c;this.src=a;this.events={}};mejs.PluginMediaElement.prototype={pluginElement:null,pluginType:"",isFullScreen:false,playbackRate:-1,defaultPlaybackRate:-1,seekable:[],played:[],paused:true,ended:false,seeking:false,duration:0,error:null,tagName:"",muted:false,volume:1,currentTime:0,play:function(){if(this.pluginApi!=null){if(this.pluginType=="youtube"){this.pluginApi.playVideo()}else{this.pluginApi.playMedia()}this.paused=false}},load:function(){if(this.pluginApi!=null){if(this.pluginType=="youtube"){}else{this.pluginApi.loadMedia()}this.paused=false}},pause:function(){if(this.pluginApi!=null){if(this.pluginType=="youtube"){this.pluginApi.pauseVideo()}else{this.pluginApi.pauseMedia()}this.paused=true}},stop:function(){if(this.pluginApi!=null){if(this.pluginType=="youtube"){this.pluginApi.stopVideo()}else{this.pluginApi.stopMedia()}this.paused=true}},canPlayType:function(e){var d,c,a,b=mejs.plugins[this.pluginType];for(d=0;d<b.length;d++){a=b[d];if(mejs.PluginDetector.hasPluginVersion(this.pluginType,a.version)){for(c=0;c<a.types.length;c++){if(e==a.types[c]){return true}}}}return false},positionFullscreenButton:function(a,c,b){if(this.pluginApi!=null&&this.pluginApi.positionFullscreenButton){this.pluginApi.positionFullscreenButton(a,c,b)}},hideFullscreenButton:function(){if(this.pluginApi!=null&&this.pluginApi.hideFullscreenButton){this.pluginApi.hideFullscreenButton()}},setSrc:function(a){if(typeof a=="string"){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(a));this.src=mejs.Utility.absolutizeUrl(a)}else{var b,c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(c.src));this.src=mejs.Utility.absolutizeUrl(a);break}}}},setCurrentTime:function(a){if(this.pluginApi!=null){if(this.pluginType=="youtube"){this.pluginApi.seekTo(a)}else{this.pluginApi.setCurrentTime(a)}this.currentTime=a}},setVolume:function(a){if(this.pluginApi!=null){if(this.pluginType=="youtube"){this.pluginApi.setVolume(a*100)}else{this.pluginApi.setVolume(a)}this.volume=a}},setMuted:function(a){if(this.pluginApi!=null){if(this.pluginType=="youtube"){if(a){this.pluginApi.mute()}else{this.pluginApi.unMute()}this.muted=a;this.dispatchEvent("volumechange")}else{this.pluginApi.setMuted(a)}this.muted=a}},setVideoSize:function(b,a){if(this.pluginElement.style){this.pluginElement.style.width=b+"px";this.pluginElement.style.height=a+"px"}if(this.pluginApi!=null&&this.pluginApi.setVideoSize){this.pluginApi.setVideoSize(b,a)}},setFullscreen:function(a){if(this.pluginApi!=null&&this.pluginApi.setFullscreen){this.pluginApi.setFullscreen(a)}},enterFullScreen:function(){if(this.pluginApi!=null&&this.pluginApi.setFullscreen){this.setFullscreen(true)}},exitFullScreen:function(){if(this.pluginApi!=null&&this.pluginApi.setFullscreen){this.setFullscreen(false)}},addEventListener:function(b,c,a){this.events[b]=this.events[b]||[];this.events[b].push(c)},removeEventListener:function(a,c){if(!a){this.events={};return true}var b=this.events[a];if(!b){return true}if(!c){this.events[a]=[];return true}for(i=0;i<b.length;i++){if(b[i]===c){this.events[a].splice(i,1);return true}}return false},dispatchEvent:function(a){var c,b,d=this.events[a];if(d){b=Array.prototype.slice.call(arguments,1);for(c=0;c<d.length;c++){d[c].apply(null,b)}}},attributes:{},hasAttribute:function(a){return(a in this.attributes)},removeAttribute:function(a){delete this.attributes[a]},getAttribute:function(a){if(this.hasAttribute(a)){return this.attributes[a]}return""},setAttribute:function(a,b){this.attributes[a]=b},remove:function(){mejs.Utility.removeSwf(this.pluginElement.id)}};mejs.MediaPluginBridge={pluginMediaElements:{},htmlMediaElements:{},registerPluginElement:function(c,a,b){this.pluginMediaElements[c]=a;this.htmlMediaElements[c]=b},initPlugin:function(c){var a=this.pluginMediaElements[c],b=this.htmlMediaElements[c];if(a){switch(a.pluginType){case"flash":a.pluginElement=a.pluginApi=document.getElementById(c);break;case"silverlight":a.pluginElement=document.getElementById(a.id);a.pluginApi=a.pluginElement.Content.MediaElementJS;break}if(a.pluginApi!=null&&a.success){a.success(a,b)}}},fireEvent:function(h,c,b){var g,f,a,d=this.pluginMediaElements[h];g={type:c,target:d};for(f in b){d[f]=b[f];g[f]=b[f]}a=b.bufferedTime||0;g.target.buffered=g.buffered={start:function(e){return 0},end:function(e){return a},length:1};d.dispatchEvent(g.type,g)}};mejs.MediaElementDefaults={mode:"auto",plugins:["flash","silverlight","youtube","vimeo"],enablePluginDebug:false,type:"",pluginPath:mejs.Utility.getScriptPath(["mediaelement.js","mediaelement.min.js","mediaelement-and-player.js","mediaelement-and-player.min.js"]),flashName:"flashmediaelement.swf",flashStreamer:"",enablePluginSmoothing:false,silverlightName:"silverlightmediaelement.xap",defaultVideoWidth:480,defaultVideoHeight:270,pluginWidth:-1,pluginHeight:-1,pluginVars:[],timerRate:250,startVolume:0.8,success:function(){},error:function(){}};mejs.MediaElement=function(a,b){return mejs.HtmlMediaElementShim.create(a,b)};mejs.HtmlMediaElementShim={create:function(e,d){var n=mejs.MediaElementDefaults,k=(typeof(e)=="string")?document.getElementById(e):e,h=k.tagName.toLowerCase(),g=(h==="audio"||h==="video"),b=(g)?k.getAttribute("src"):k.getAttribute("href"),l=k.getAttribute("poster"),f=k.getAttribute("autoplay"),j=k.getAttribute("preload"),m=k.getAttribute("controls"),a,c;for(c in d){n[c]=d[c]}b=(typeof b=="undefined"||b===null||b=="")?null:b;l=(typeof l=="undefined"||l===null)?"":l;j=(typeof j=="undefined"||j===null||j==="false")?"none":j;f=!(typeof f=="undefined"||f===null||f==="false");m=!(typeof m=="undefined"||m===null||m==="false");a=this.determinePlayback(k,n,mejs.MediaFeatures.supportsMediaTag,g,b);a.url=(a.url!==null)?mejs.Utility.absolutizeUrl(a.url):"";if(a.method=="native"){if(mejs.MediaFeatures.isBustedAndroid){k.src=a.url;k.addEventListener("click",function(){k.play()},false)}return this.updateNative(a,n,f,j)}else{if(a.method!==""){return this.createPlugin(a,n,l,f,j,m)}else{this.createErrorMessage(a,n,l);return this}}},determinePlayback:function(t,c,h,v,f){var o=[],s,r,q,p,m,d,g={method:"",url:"",htmlMediaElement:t,isVideo:(t.tagName.toLowerCase()!="audio")},a,b,u,w,e;if(typeof c.type!="undefined"&&c.type!==""){if(typeof c.type=="string"){o.push({type:c.type,url:f})}else{for(s=0;s<c.type.length;s++){o.push({type:c.type[s],url:f})}}}else{if(f!==null){d=this.formatType(f,t.getAttribute("type"));o.push({type:d,url:f})}else{for(s=0;s<t.childNodes.length;s++){m=t.childNodes[s];if(m.nodeType==1&&m.tagName.toLowerCase()=="source"){f=m.getAttribute("src");d=this.formatType(f,m.getAttribute("type"));e=m.getAttribute("media");if(!e||!window.matchMedia||(window.matchMedia&&window.matchMedia(e).matches)){o.push({type:d,url:f})}}}}}if(!v&&o.length>0&&o[0].url!==null&&this.getTypeFromFile(o[0].url).indexOf("audio")>-1){g.isVideo=false}if(mejs.MediaFeatures.isBustedAndroid){t.canPlayType=function(j){return(j.match(/video\/(mp4|m4v)/gi)!==null)?"maybe":""}}if(h&&(c.mode==="auto"||c.mode==="auto_plugin"||c.mode==="native")){if(!v){w=document.createElement(g.isVideo?"video":"audio");t.parentNode.insertBefore(w,t);t.style.display="none";g.htmlMediaElement=t=w}for(s=0;s<o.length;s++){if(t.canPlayType(o[s].type).replace(/no/,"")!==""||t.canPlayType(o[s].type.replace(/mp3/,"mpeg")).replace(/no/,"")!==""){g.method="native";g.url=o[s].url;break}}if(g.method==="native"){if(g.url!==null){t.src=g.url}if(c.mode!=="auto_plugin"){return g}}}if(c.mode==="auto"||c.mode==="auto_plugin"||c.mode==="shim"){for(s=0;s<o.length;s++){d=o[s].type;for(r=0;r<c.plugins.length;r++){a=c.plugins[r];b=mejs.plugins[a];for(q=0;q<b.length;q++){u=b[q];if(u.version==null||mejs.PluginDetector.hasPluginVersion(a,u.version)){for(p=0;p<u.types.length;p++){if(d==u.types[p]){g.method=a;g.url=o[s].url;return g}}}}}}}if(c.mode==="auto_plugin"&&g.method==="native"){return g}if(g.method===""&&o.length>0){g.url=o[0].url}return g},formatType:function(a,c){var b;if(a&&!c){return this.getTypeFromFile(a)}else{if(c&&~c.indexOf(";")){return c.substr(0,c.indexOf(";"))}else{return c}}},getTypeFromFile:function(a){a=a.split("?")[0];var b=a.substring(a.lastIndexOf(".")+1);return(/(mp4|m4v|ogg|ogv|webm|webmv|flv|wmv|mpeg|mov)/gi.test(b)?"video":"audio")+"/"+this.getTypeFromExtension(b)},getTypeFromExtension:function(a){switch(a){case"mp4":case"m4v":return"mp4";case"webm":case"webma":case"webmv":return"webm";case"ogg":case"oga":case"ogv":return"ogg";default:return a}},createErrorMessage:function(c,b,g){var d=c.htmlMediaElement,a=document.createElement("div");a.className="me-cannotplay";try{a.style.width=d.width+"px";a.style.height=d.height+"px"}catch(f){}a.innerHTML=(g!=="")?'<a href="'+c.url+'"><img src="'+g+'" width="100%" height="100%" /></a>':'<a href="'+c.url+'"><span>'+mejs.i18n.t("Download File")+"</span></a>";d.parentNode.insertBefore(a,d);d.style.display="none";b.error(d)},createPlugin:function(n,a,c,e,d,h){var r=n.htmlMediaElement,m=1,l=1,s="me_"+n.method+"_"+(mejs.meIndex++),o=new mejs.PluginMediaElement(s,n.method,n.url),g=document.createElement("div"),b,p,j;o.tagName=r.tagName;for(var q=0;q<r.attributes.length;q++){var f=r.attributes[q];if(f.specified==true){o.setAttribute(f.name,f.value)}}p=r.parentNode;while(p!==null&&p.tagName.toLowerCase()!="body"){if(p.parentNode.tagName.toLowerCase()=="p"){p.parentNode.parentNode.insertBefore(p,p.parentNode);break}p=p.parentNode}if(n.isVideo){m=(a.videoWidth>0)?a.videoWidth:(r.getAttribute("width")!==null)?r.getAttribute("width"):a.defaultVideoWidth;l=(a.videoHeight>0)?a.videoHeight:(r.getAttribute("height")!==null)?r.getAttribute("height"):a.defaultVideoHeight;m=mejs.Utility.encodeUrl(m);l=mejs.Utility.encodeUrl(l)}else{if(a.enablePluginDebug){m=320;l=240}}o.success=a.success;mejs.MediaPluginBridge.registerPluginElement(s,o,r);g.className="me-plugin";g.id=s+"_container";if(n.isVideo){r.parentNode.insertBefore(g,r)}else{document.body.insertBefore(g,document.body.childNodes[0])}j=["id="+s,"isvideo="+((n.isVideo)?"true":"false"),"autoplay="+((e)?"true":"false"),"preload="+d,"width="+m,"startvolume="+a.startVolume,"timerrate="+a.timerRate,"flashstreamer="+a.flashStreamer,"height="+l];if(n.url!==null){if(n.method=="flash"){j.push("file="+mejs.Utility.encodeUrl(n.url))}else{j.push("file="+n.url)}}if(a.enablePluginDebug){j.push("debug=true")}if(a.enablePluginSmoothing){j.push("smoothing=true")}if(h){j.push("controls=true")}if(a.pluginVars){j=j.concat(a.pluginVars)}switch(n.method){case"silverlight":g.innerHTML='<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="'+s+'" name="'+s+'" width="'+m+'" height="'+l+'"><param name="initParams" value="'+j.join(",")+'" /><param name="windowless" value="true" /><param name="background" value="black" /><param name="minRuntimeVersion" value="3.0.0.0" /><param name="autoUpgrade" value="true" /><param name="source" value="'+a.pluginPath+a.silverlightName+'" /></object>';break;case"flash":if(mejs.MediaFeatures.isIE){b=document.createElement("div");g.appendChild(b);b.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+s+'" width="'+m+'" height="'+l+'"><param name="movie" value="'+a.pluginPath+a.flashName+"?x="+(new Date())+'" /><param name="flashvars" value="'+j.join("&amp;")+'" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object>'}else{g.innerHTML='<embed id="'+s+'" name="'+s+'" play="true" loop="false" quality="high" bgcolor="#000000" wmode="transparent" allowScriptAccess="always" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" src="'+a.pluginPath+a.flashName+'" flashvars="'+j.join("&")+'" width="'+m+'" height="'+l+'"></embed>'}break;case"youtube":var k=n.url.substr(n.url.lastIndexOf("=")+1);youtubeSettings={container:g,containerId:g.id,pluginMediaElement:o,pluginId:s,videoId:k,height:l,width:m};if(mejs.PluginDetector.hasPluginVersion("flash",[10,0,0])){mejs.YouTubeApi.createFlash(youtubeSettings)}else{mejs.YouTubeApi.enqueueIframe(youtubeSettings)}break;case"vimeo":o.vimeoid=n.url.substr(n.url.lastIndexOf("/")+1);g.innerHTML='<iframe src="http://player.vimeo.com/video/'+o.vimeoid+'?portrait=0&byline=0&title=0" width="'+m+'" height="'+l+'" frameborder="0"></iframe>';break}r.style.display="none";return o},updateNative:function(d,c,f,b){var e=d.htmlMediaElement,a;for(a in mejs.HtmlMediaElement){e[a]=mejs.HtmlMediaElement[a]}c.success(e,e);return e}};mejs.YouTubeApi={isIframeStarted:false,isIframeLoaded:false,loadIframeApi:function(){if(!this.isIframeStarted){var a=document.createElement("script");a.src="http://www.youtube.com/player_api";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);this.isIframeStarted=true}},iframeQueue:[],enqueueIframe:function(a){if(this.isLoaded){this.createIframe(a)}else{this.loadIframeApi();this.iframeQueue.push(a)}},createIframe:function(c){var b=c.pluginMediaElement,a=new YT.Player(c.containerId,{height:c.height,width:c.width,videoId:c.videoId,playerVars:{controls:0},events:{onReady:function(){c.pluginMediaElement.pluginApi=a;mejs.MediaPluginBridge.initPlugin(c.pluginId);setInterval(function(){mejs.YouTubeApi.createEvent(a,b,"timeupdate")},250)},onStateChange:function(d){mejs.YouTubeApi.handleStateChange(d.data,a,b)}}})},createEvent:function(d,c,b){var e={type:b,target:c};if(d&&d.getDuration){c.currentTime=e.currentTime=d.getCurrentTime();c.duration=e.duration=d.getDuration();e.paused=c.paused;e.ended=c.ended;e.muted=d.isMuted();e.volume=d.getVolume()/100;e.bytesTotal=d.getVideoBytesTotal();e.bufferedBytes=d.getVideoBytesLoaded();var a=e.bufferedBytes/e.bytesTotal*e.duration;e.target.buffered=e.buffered={start:function(f){return 0},end:function(f){return a},length:1}}c.dispatchEvent(e.type,e)},iFrameReady:function(){this.isLoaded=true;this.isIframeLoaded=true;while(this.iframeQueue.length>0){var a=this.iframeQueue.pop();this.createIframe(a)}},flashPlayers:{},createFlash:function(c){this.flashPlayers[c.pluginId]=c;var b,a="http://www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid="+c.pluginId+"&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0";if(mejs.MediaFeatures.isIE){b=document.createElement("div");c.container.appendChild(b);b.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+c.pluginId+'" width="'+c.width+'" height="'+c.height+'"><param name="movie" value="'+a+'" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object>'}else{c.container.innerHTML='<object type="application/x-shockwave-flash" id="'+c.pluginId+'" data="'+a+'" width="'+c.width+'" height="'+c.height+'" style="visibility: visible; "><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"></object>'}},flashReady:function(e){var c=this.flashPlayers[e],b=document.getElementById(e),a=c.pluginMediaElement;a.pluginApi=a.pluginElement=b;mejs.MediaPluginBridge.initPlugin(e);b.cueVideoById(c.videoId);var d=c.containerId+"_callback";window[d]=function(f){mejs.YouTubeApi.handleStateChange(f,b,a)};b.addEventListener("onStateChange",d);setInterval(function(){mejs.YouTubeApi.createEvent(b,a,"timeupdate")},250)},handleStateChange:function(c,b,a){switch(c){case -1:a.paused=true;a.ended=true;mejs.YouTubeApi.createEvent(b,a,"loadedmetadata");break;case 0:a.paused=false;a.ended=true;mejs.YouTubeApi.createEvent(b,a,"ended");break;case 1:a.paused=false;a.ended=false;mejs.YouTubeApi.createEvent(b,a,"play");mejs.YouTubeApi.createEvent(b,a,"playing");break;case 2:a.paused=true;a.ended=false;mejs.YouTubeApi.createEvent(b,a,"pause");break;case 3:mejs.YouTubeApi.createEvent(b,a,"progress");break;case 5:break}}};function onYouTubePlayerAPIReady(){mejs.YouTubeApi.iFrameReady()}function onYouTubePlayerReady(a){mejs.YouTubeApi.flashReady(a)}window.mejs=mejs;window.MediaElement=mejs.MediaElement; 
    15 /*! 
    16  * Adds Internationalization and localization to objects. 
    17  * 
    18  * What is the concept beyond i18n? 
    19  *   http://en.wikipedia.org/wiki/Internationalization_and_localization 
    20  * 
    21  * 
    22  * This file both i18n methods and locale which is used to translate 
    23  * strings into other languages. 
    24  * 
    25  * Default translations are not available, you have to add them 
    26  * through locale objects which are named exactly as the langcode 
    27  * they stand for. The default language is always english (en). 
    28  * 
    29  * 
    30  * Wrapper built to be able to attach the i18n object to 
    31  * other objects without changing more than one line. 
    32  * 
    33  * 
    34  * LICENSE: 
    35  * 
    36  *   The i18n file uses methods from the Drupal project (drupal.js): 
    37  *     - i18n.methods.t() (modified) 
    38  *     - i18n.methods.checkPlain() (full copy) 
    39  *     - i18n.methods.formatString() (full copy) 
    40  * 
    41  *   The Drupal project is (like mediaelementjs) licensed under GPLv2. 
    42  *    - http://drupal.org/licensing/faq/#q1 
    43  *    - https://github.com/johndyer/mediaelement 
    44  *    - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 
    45  * 
    46  * 
    47  * @author 
    48  *   Tim Latz (latz.tim@gmail.com) 
    49  * 
    50  * @see 
    51  *   me-i18n-locale.js 
    52  * 
    53  * @params 
    54  *  - $       - zepto || jQuery  .. 
    55  *  - context - document, iframe .. 
    56  *  - exports - CommonJS, window .. 
    57  * 
    58  */ 
    59 (function(d,b,a,e){var c={locale:{strings:{}},methods:{}};c.locale.getLanguage=function(){return{language:navigator.language}};c.locale.INIT_LANGUAGE=c.locale.getLanguage();c.methods.checkPlain=function(j){var h,g,f={"&":"&amp;",'"':"&quot;","<":"&lt;",">":"&gt;"};j=String(j);for(h in f){if(f.hasOwnProperty(h)){g=new RegExp(h,"g");j=j.replace(g,f[h])}}return j};c.methods.formatString=function(h,f){for(var g in f){switch(g.charAt(0)){case"@":f[g]=c.methods.checkPlain(f[g]);break;case"!":break;case"%":default:f[g]='<em class="placeholder">'+c.methods.checkPlain(f[g])+"</em>";break}h=h.replace(g,f[g])}return h};c.methods.t=function(h,g,f){if(c.locale.strings&&c.locale.strings[f.context]&&c.locale.strings[f.context][h]){h=c.locale.strings[f.context][h]}if(g){h=c.methods.formatString(h,g)}return h};c.t=function(j,g,f){if(typeof j==="string"&&j.length>0){var h=c.locale.getLanguage();f=f||{context:h.language};return c.methods.t(j,g,f)}else{throw {name:"InvalidArgumentException",message:"First argument is either not a string or empty."}}};a.i18n=c}(jQuery,document,mejs)); 
    60 /*! 
    61  * This is a i18n.locale language object. 
    62  * 
    63  *<de> German translation by Tim Latz, latz.tim@gmail.com 
    64  * 
    65  * @author 
    66  *   Tim Latz (latz.tim@gmail.com) 
    67  * 
    68  * @see 
    69  *   me-i18n.js 
    70  * 
    71  * @params 
    72  *  - exports - CommonJS, window .. 
    73  */ 
    74 (function(a,b){a.de={Fullscreen:"Vollbild","Go Fullscreen":"Vollbild an","Turn off Fullscreen":"Vollbild aus",Close:"Schließen"}}(mejs.i18n.locale.strings)); 
     13*/var mejs=mejs||{};mejs.version="2.11.0";mejs.meIndex=0; 
     14mejs.plugins={silverlight:[{version:[3,0],types:["video/mp4","video/m4v","video/mov","video/wmv","audio/wma","audio/m4a","audio/mp3","audio/wav","audio/mpeg"]}],flash:[{version:[9,0,124],types:["video/mp4","video/m4v","video/mov","video/flv","video/rtmp","video/x-flv","audio/flv","audio/x-flv","audio/mp3","audio/m4a","audio/mpeg","video/youtube","video/x-youtube"]}],youtube:[{version:null,types:["video/youtube","video/x-youtube","audio/youtube","audio/x-youtube"]}],vimeo:[{version:null,types:["video/vimeo", 
     15"video/x-vimeo"]}]}; 
     16mejs.Utility={encodeUrl:function(a){return encodeURIComponent(a)},escapeHTML:function(a){return a.toString().split("&").join("&amp;").split("<").join("&lt;").split('"').join("&quot;")},absolutizeUrl:function(a){var b=document.createElement("div");b.innerHTML='<a href="'+this.escapeHTML(a)+'">x</a>';return b.firstChild.href},getScriptPath:function(a){for(var b=0,c,d="",e="",g,f=document.getElementsByTagName("script"),h=f.length,l=a.length;b<h;b++){g=f[b].src;for(c=0;c<l;c++){e=a[c];if(g.indexOf(e)> 
     17-1){d=g.substring(0,g.indexOf(e));break}}if(d!=="")break}return d},secondsToTimeCode:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d=="undefined")d=25;var e=Math.floor(a/3600)%24,g=Math.floor(a/60)%60,f=Math.floor(a%60);a=Math.floor((a%1*d).toFixed(3));return(b||e>0?(e<10?"0"+e:e)+":":"")+(g<10?"0"+g:g)+":"+(f<10?"0"+f:f)+(c?":"+(a<10?"0"+a:a):"")},timeCodeToSeconds:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d=="undefined")d=25;a=a.split(":");b=parseInt(a[0], 
     1810);var e=parseInt(a[1],10),g=parseInt(a[2],10),f=0,h=0;if(c)f=parseInt(a[3])/d;return h=b*3600+e*60+g+f},convertSMPTEtoSeconds:function(a){if(typeof a!="string")return false;a=a.replace(",",".");var b=0,c=a.indexOf(".")!=-1?a.split(".")[1].length:0,d=1;a=a.split(":").reverse();for(var e=0;e<a.length;e++){d=1;if(e>0)d=Math.pow(60,e);b+=Number(a[e])*d}return Number(b.toFixed(c))},removeSwf:function(a){var b=document.getElementById(a);if(b&&/object|embed/i.test(b.nodeName))if(mejs.MediaFeatures.isIE){b.style.display= 
     19"none";(function(){b.readyState==4?mejs.Utility.removeObjectInIE(a):setTimeout(arguments.callee,10)})()}else b.parentNode.removeChild(b)},removeObjectInIE:function(a){if(a=document.getElementById(a)){for(var b in a)if(typeof a[b]=="function")a[b]=null;a.parentNode.removeChild(a)}}}; 
     20mejs.PluginDetector={hasPluginVersion:function(a,b){var c=this.plugins[a];b[1]=b[1]||0;b[2]=b[2]||0;return c[0]>b[0]||c[0]==b[0]&&c[1]>b[1]||c[0]==b[0]&&c[1]==b[1]&&c[2]>=b[2]?true:false},nav:window.navigator,ua:window.navigator.userAgent.toLowerCase(),plugins:[],addPlugin:function(a,b,c,d,e){this.plugins[a]=this.detectPlugin(b,c,d,e)},detectPlugin:function(a,b,c,d){var e=[0,0,0],g;if(typeof this.nav.plugins!="undefined"&&typeof this.nav.plugins[a]=="object"){if((c=this.nav.plugins[a].description)&& 
     21!(typeof this.nav.mimeTypes!="undefined"&&this.nav.mimeTypes[b]&&!this.nav.mimeTypes[b].enabledPlugin)){e=c.replace(a,"").replace(/^\s+/,"").replace(/\sr/gi,".").split(".");for(a=0;a<e.length;a++)e[a]=parseInt(e[a].match(/\d+/),10)}}else if(typeof window.ActiveXObject!="undefined")try{if(g=new ActiveXObject(c))e=d(g)}catch(f){}return e}}; 
     22mejs.PluginDetector.addPlugin("flash","Shockwave Flash","application/x-shockwave-flash","ShockwaveFlash.ShockwaveFlash",function(a){var b=[];if(a=a.GetVariable("$version")){a=a.split(" ")[1].split(",");b=[parseInt(a[0],10),parseInt(a[1],10),parseInt(a[2],10)]}return b}); 
     23mejs.PluginDetector.addPlugin("silverlight","Silverlight Plug-In","application/x-silverlight-2","AgControl.AgControl",function(a){var b=[0,0,0,0],c=function(d,e,g,f){for(;d.isVersionSupported(e[0]+"."+e[1]+"."+e[2]+"."+e[3]);)e[g]+=f;e[g]-=f};c(a,b,0,1);c(a,b,1,1);c(a,b,2,1E4);c(a,b,2,1E3);c(a,b,2,100);c(a,b,2,10);c(a,b,2,1);c(a,b,3,1);return b}); 
     24mejs.MediaFeatures={init:function(){var a=this,b=document,c=mejs.PluginDetector.nav,d=mejs.PluginDetector.ua.toLowerCase(),e,g=["source","track","audio","video"];a.isiPad=d.match(/ipad/i)!==null;a.isiPhone=d.match(/iphone/i)!==null;a.isiOS=a.isiPhone||a.isiPad;a.isAndroid=d.match(/android/i)!==null;a.isBustedAndroid=d.match(/android 2\.[12]/)!==null;a.isIE=c.appName.toLowerCase().indexOf("microsoft")!=-1;a.isChrome=d.match(/chrome/gi)!==null;a.isFirefox=d.match(/firefox/gi)!==null;a.isWebkit=d.match(/webkit/gi)!== 
     25null;a.isGecko=d.match(/gecko/gi)!==null&&!a.isWebkit;a.isOpera=d.match(/opera/gi)!==null;a.hasTouch="ontouchstart"in window;a.svg=!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect;for(c=0;c<g.length;c++)e=document.createElement(g[c]);a.supportsMediaTag=typeof e.canPlayType!=="undefined"||a.isBustedAndroid;a.hasSemiNativeFullScreen=typeof e.webkitEnterFullscreen!=="undefined";a.hasWebkitNativeFullScreen=typeof e.webkitRequestFullScreen!=="undefined"; 
     26a.hasMozNativeFullScreen=typeof e.mozRequestFullScreen!=="undefined";a.hasTrueNativeFullScreen=a.hasWebkitNativeFullScreen||a.hasMozNativeFullScreen;a.nativeFullScreenEnabled=a.hasTrueNativeFullScreen;if(a.hasMozNativeFullScreen)a.nativeFullScreenEnabled=e.mozFullScreenEnabled;if(this.isChrome)a.hasSemiNativeFullScreen=false;if(a.hasTrueNativeFullScreen){a.fullScreenEventName=a.hasWebkitNativeFullScreen?"webkitfullscreenchange":"mozfullscreenchange";a.isFullScreen=function(){if(e.mozRequestFullScreen)return b.mozFullScreen; 
     27else if(e.webkitRequestFullScreen)return b.webkitIsFullScreen};a.requestFullScreen=function(f){if(a.hasWebkitNativeFullScreen)f.webkitRequestFullScreen();else a.hasMozNativeFullScreen&&f.mozRequestFullScreen()};a.cancelFullScreen=function(){if(a.hasWebkitNativeFullScreen)document.webkitCancelFullScreen();else a.hasMozNativeFullScreen&&document.mozCancelFullScreen()}}if(a.hasSemiNativeFullScreen&&d.match(/mac os x 10_5/i)){a.hasNativeFullScreen=false;a.hasSemiNativeFullScreen=false}}};mejs.MediaFeatures.init(); 
     28mejs.HtmlMediaElement={pluginType:"native",isFullScreen:false,setCurrentTime:function(a){this.currentTime=a},setMuted:function(a){this.muted=a},setVolume:function(a){this.volume=a},stop:function(){this.pause()},setSrc:function(a){for(var b=this.getElementsByTagName("source");b.length>0;)this.removeChild(b[0]);if(typeof a=="string")this.src=a;else{var c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.src=c.src;break}}}},setVideoSize:function(a,b){this.width=a;this.height=b}}; 
     29mejs.PluginMediaElement=function(a,b,c){this.id=a;this.pluginType=b;this.src=c;this.events={};this.attributes={}}; 
     30mejs.PluginMediaElement.prototype={pluginElement:null,pluginType:"",isFullScreen:false,playbackRate:-1,defaultPlaybackRate:-1,seekable:[],played:[],paused:true,ended:false,seeking:false,duration:0,error:null,tagName:"",muted:false,volume:1,currentTime:0,play:function(){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.playVideo():this.pluginApi.playMedia();this.paused=false}},load:function(){if(this.pluginApi!=null){this.pluginType!="youtube"&&this.pluginApi.loadMedia();this.paused= 
     31false}},pause:function(){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.pauseVideo():this.pluginApi.pauseMedia();this.paused=true}},stop:function(){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.stopVideo():this.pluginApi.stopMedia();this.paused=true}},canPlayType:function(a){var b,c,d,e=mejs.plugins[this.pluginType];for(b=0;b<e.length;b++){d=e[b];if(mejs.PluginDetector.hasPluginVersion(this.pluginType,d.version))for(c=0;c<d.types.length;c++)if(a==d.types[c])return"probably"}return""}, 
     32positionFullscreenButton:function(a,b,c){this.pluginApi!=null&&this.pluginApi.positionFullscreenButton&&this.pluginApi.positionFullscreenButton(a,b,c)},hideFullscreenButton:function(){this.pluginApi!=null&&this.pluginApi.hideFullscreenButton&&this.pluginApi.hideFullscreenButton()},setSrc:function(a){if(typeof a=="string"){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(a));this.src=mejs.Utility.absolutizeUrl(a)}else{var b,c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(c.src)); 
     33this.src=mejs.Utility.absolutizeUrl(a);break}}}},setCurrentTime:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.seekTo(a):this.pluginApi.setCurrentTime(a);this.currentTime=a}},setVolume:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.setVolume(a*100):this.pluginApi.setVolume(a);this.volume=a}},setMuted:function(a){if(this.pluginApi!=null){if(this.pluginType=="youtube"){a?this.pluginApi.mute():this.pluginApi.unMute();this.muted=a;this.dispatchEvent("volumechange")}else this.pluginApi.setMuted(a); 
     34this.muted=a}},setVideoSize:function(a,b){if(this.pluginElement.style){this.pluginElement.style.width=a+"px";this.pluginElement.style.height=b+"px"}this.pluginApi!=null&&this.pluginApi.setVideoSize&&this.pluginApi.setVideoSize(a,b)},setFullscreen:function(a){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.pluginApi.setFullscreen(a)},enterFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.setFullscreen(true)},exitFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&& 
     35this.setFullscreen(false)},addEventListener:function(a,b){this.events[a]=this.events[a]||[];this.events[a].push(b)},removeEventListener:function(a,b){if(!a){this.events={};return true}var c=this.events[a];if(!c)return true;if(!b){this.events[a]=[];return true}for(i=0;i<c.length;i++)if(c[i]===b){this.events[a].splice(i,1);return true}return false},dispatchEvent:function(a){var b,c,d=this.events[a];if(d){c=Array.prototype.slice.call(arguments,1);for(b=0;b<d.length;b++)d[b].apply(null,c)}},hasAttribute:function(a){return a in 
     36this.attributes},removeAttribute:function(a){delete this.attributes[a]},getAttribute:function(a){if(this.hasAttribute(a))return this.attributes[a];return""},setAttribute:function(a,b){this.attributes[a]=b},remove:function(){mejs.Utility.removeSwf(this.pluginElement.id);mejs.MediaPluginBridge.unregisterPluginElement(this.pluginElement.id)}}; 
     37mejs.MediaPluginBridge={pluginMediaElements:{},htmlMediaElements:{},registerPluginElement:function(a,b,c){this.pluginMediaElements[a]=b;this.htmlMediaElements[a]=c},unregisterPluginElement:function(a){delete this.pluginMediaElements[a];delete this.htmlMediaElements[a]},initPlugin:function(a){var b=this.pluginMediaElements[a],c=this.htmlMediaElements[a];if(b){switch(b.pluginType){case "flash":b.pluginElement=b.pluginApi=document.getElementById(a);break;case "silverlight":b.pluginElement=document.getElementById(b.id); 
     38b.pluginApi=b.pluginElement.Content.MediaElementJS}b.pluginApi!=null&&b.success&&b.success(b,c)}},fireEvent:function(a,b,c){var d,e;a=this.pluginMediaElements[a];b={type:b,target:a};for(d in c){a[d]=c[d];b[d]=c[d]}e=c.bufferedTime||0;b.target.buffered=b.buffered={start:function(){return 0},end:function(){return e},length:1};a.dispatchEvent(b.type,b)}}; 
     39mejs.MediaElementDefaults={mode:"auto",plugins:["flash","silverlight","youtube","vimeo"],enablePluginDebug:false,type:"",pluginPath:mejs.Utility.getScriptPath(["mediaelement.js","mediaelement.min.js","mediaelement-and-player.js","mediaelement-and-player.min.js"]),flashName:"flashmediaelement.swf",flashStreamer:"",enablePluginSmoothing:false,silverlightName:"silverlightmediaelement.xap",defaultVideoWidth:480,defaultVideoHeight:270,pluginWidth:-1,pluginHeight:-1,pluginVars:[],timerRate:250,startVolume:0.8, 
     40success:function(){},error:function(){}};mejs.MediaElement=function(a,b){return mejs.HtmlMediaElementShim.create(a,b)}; 
     41mejs.HtmlMediaElementShim={create:function(a,b){var c=mejs.MediaElementDefaults,d=typeof a=="string"?document.getElementById(a):a,e=d.tagName.toLowerCase(),g=e==="audio"||e==="video",f=g?d.getAttribute("src"):d.getAttribute("href");e=d.getAttribute("poster");var h=d.getAttribute("autoplay"),l=d.getAttribute("preload"),j=d.getAttribute("controls"),k;for(k in b)c[k]=b[k];f=typeof f=="undefined"||f===null||f==""?null:f;e=typeof e=="undefined"||e===null?"":e;l=typeof l=="undefined"||l===null||l==="false"? 
     42"none":l;h=!(typeof h=="undefined"||h===null||h==="false");j=!(typeof j=="undefined"||j===null||j==="false");k=this.determinePlayback(d,c,mejs.MediaFeatures.supportsMediaTag,g,f);k.url=k.url!==null?mejs.Utility.absolutizeUrl(k.url):"";if(k.method=="native"){if(mejs.MediaFeatures.isBustedAndroid){d.src=k.url;d.addEventListener("click",function(){d.play()},false)}return this.updateNative(k,c,h,l)}else if(k.method!=="")return this.createPlugin(k,c,e,h,l,j);else{this.createErrorMessage(k,c,e);return this}}, 
     43determinePlayback:function(a,b,c,d,e){var g=[],f,h,l,j={method:"",url:"",htmlMediaElement:a,isVideo:a.tagName.toLowerCase()!="audio"},k;if(typeof b.type!="undefined"&&b.type!=="")if(typeof b.type=="string")g.push({type:b.type,url:e});else for(f=0;f<b.type.length;f++)g.push({type:b.type[f],url:e});else if(e!==null){l=this.formatType(e,a.getAttribute("type"));g.push({type:l,url:e})}else for(f=0;f<a.childNodes.length;f++){h=a.childNodes[f];if(h.nodeType==1&&h.tagName.toLowerCase()=="source"){e=h.getAttribute("src"); 
     44l=this.formatType(e,h.getAttribute("type"));h=h.getAttribute("media");if(!h||!window.matchMedia||window.matchMedia&&window.matchMedia(h).matches)g.push({type:l,url:e})}}if(!d&&g.length>0&&g[0].url!==null&&this.getTypeFromFile(g[0].url).indexOf("audio")>-1)j.isVideo=false;if(mejs.MediaFeatures.isBustedAndroid)a.canPlayType=function(m){return m.match(/video\/(mp4|m4v)/gi)!==null?"maybe":""};if(c&&(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="native")){if(!d){f=document.createElement(j.isVideo? 
     45"video":"audio");a.parentNode.insertBefore(f,a);a.style.display="none";j.htmlMediaElement=a=f}for(f=0;f<g.length;f++)if(a.canPlayType(g[f].type).replace(/no/,"")!==""||a.canPlayType(g[f].type.replace(/mp3/,"mpeg")).replace(/no/,"")!==""){j.method="native";j.url=g[f].url;break}if(j.method==="native"){if(j.url!==null)a.src=j.url;if(b.mode!=="auto_plugin")return j}}if(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="shim")for(f=0;f<g.length;f++){l=g[f].type;for(a=0;a<b.plugins.length;a++){e=b.plugins[a]; 
     46h=mejs.plugins[e];for(c=0;c<h.length;c++){k=h[c];if(k.version==null||mejs.PluginDetector.hasPluginVersion(e,k.version))for(d=0;d<k.types.length;d++)if(l==k.types[d]){j.method=e;j.url=g[f].url;return j}}}}if(b.mode==="auto_plugin"&&j.method==="native")return j;if(j.method===""&&g.length>0)j.url=g[0].url;return j},formatType:function(a,b){return a&&!b?this.getTypeFromFile(a):b&&~b.indexOf(";")?b.substr(0,b.indexOf(";")):b},getTypeFromFile:function(a){a=a.split("?")[0];a=a.substring(a.lastIndexOf(".")+ 
     471);return(/(mp4|m4v|ogg|ogv|webm|webmv|flv|wmv|mpeg|mov)/gi.test(a)?"video":"audio")+"/"+this.getTypeFromExtension(a)},getTypeFromExtension:function(a){switch(a){case "mp4":case "m4v":return"mp4";case "webm":case "webma":case "webmv":return"webm";case "ogg":case "oga":case "ogv":return"ogg";default:return a}},createErrorMessage:function(a,b,c){var d=a.htmlMediaElement,e=document.createElement("div");e.className="me-cannotplay";try{e.style.width=d.width+"px";e.style.height=d.height+"px"}catch(g){}e.innerHTML= 
     48c!==""?'<a href="'+a.url+'"><img src="'+c+'" width="100%" height="100%" /></a>':'<a href="'+a.url+'"><span>'+mejs.i18n.t("Download File")+"</span></a>";d.parentNode.insertBefore(e,d);d.style.display="none";b.error(d)},createPlugin:function(a,b,c,d,e,g){c=a.htmlMediaElement;var f=1,h=1,l="me_"+a.method+"_"+mejs.meIndex++,j=new mejs.PluginMediaElement(l,a.method,a.url),k=document.createElement("div"),m;j.tagName=c.tagName;for(m=0;m<c.attributes.length;m++){var n=c.attributes[m];n.specified==true&&j.setAttribute(n.name, 
     49n.value)}for(m=c.parentNode;m!==null&&m.tagName.toLowerCase()!="body";){if(m.parentNode.tagName.toLowerCase()=="p"){m.parentNode.parentNode.insertBefore(m,m.parentNode);break}m=m.parentNode}if(a.isVideo){f=b.videoWidth>0?b.videoWidth:c.getAttribute("width")!==null?c.getAttribute("width"):b.defaultVideoWidth;h=b.videoHeight>0?b.videoHeight:c.getAttribute("height")!==null?c.getAttribute("height"):b.defaultVideoHeight;f=mejs.Utility.encodeUrl(f);h=mejs.Utility.encodeUrl(h)}else if(b.enablePluginDebug){f= 
     50320;h=240}j.success=b.success;mejs.MediaPluginBridge.registerPluginElement(l,j,c);k.className="me-plugin";k.id=l+"_container";a.isVideo?c.parentNode.insertBefore(k,c):document.body.insertBefore(k,document.body.childNodes[0]);d=["id="+l,"isvideo="+(a.isVideo?"true":"false"),"autoplay="+(d?"true":"false"),"preload="+e,"width="+f,"startvolume="+b.startVolume,"timerrate="+b.timerRate,"flashstreamer="+b.flashStreamer,"height="+h];if(a.url!==null)a.method=="flash"?d.push("file="+mejs.Utility.encodeUrl(a.url)): 
     51d.push("file="+a.url);b.enablePluginDebug&&d.push("debug=true");b.enablePluginSmoothing&&d.push("smoothing=true");g&&d.push("controls=true");if(b.pluginVars)d=d.concat(b.pluginVars);switch(a.method){case "silverlight":k.innerHTML='<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="'+l+'" name="'+l+'" width="'+f+'" height="'+h+'" class="mejs-shim"><param name="initParams" value="'+d.join(",")+'" /><param name="windowless" value="true" /><param name="background" value="black" /><param name="minRuntimeVersion" value="3.0.0.0" /><param name="autoUpgrade" value="true" /><param name="source" value="'+ 
     52b.pluginPath+b.silverlightName+'" /></object>';break;case "flash":if(mejs.MediaFeatures.isIE){a=document.createElement("div");k.appendChild(a);a.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+l+'" width="'+f+'" height="'+h+'" class="mejs-shim"><param name="movie" value="'+b.pluginPath+b.flashName+"?x="+new Date+'" /><param name="flashvars" value="'+d.join("&amp;")+'" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object>'}else k.innerHTML= 
     53'<embed id="'+l+'" name="'+l+'" play="true" loop="false" quality="high" bgcolor="#000000" wmode="transparent" allowScriptAccess="always" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" src="'+b.pluginPath+b.flashName+'" flashvars="'+d.join("&")+'" width="'+f+'" height="'+h+'" class="mejs-shim"></embed>';break;case "youtube":b=a.url.substr(a.url.lastIndexOf("=")+1);youtubeSettings={container:k,containerId:k.id,pluginMediaElement:j,pluginId:l, 
     54videoId:b,height:h,width:f};mejs.PluginDetector.hasPluginVersion("flash",[10,0,0])?mejs.YouTubeApi.createFlash(youtubeSettings):mejs.YouTubeApi.enqueueIframe(youtubeSettings);break;case "vimeo":j.vimeoid=a.url.substr(a.url.lastIndexOf("/")+1);k.innerHTML='<iframe src="http://player.vimeo.com/video/'+j.vimeoid+'?portrait=0&byline=0&title=0" width="'+f+'" height="'+h+'" frameborder="0" class="mejs-shim"></iframe>'}c.style.display="none";return j},updateNative:function(a,b){var c=a.htmlMediaElement, 
     55d;for(d in mejs.HtmlMediaElement)c[d]=mejs.HtmlMediaElement[d];b.success(c,c);return c}}; 
     56mejs.YouTubeApi={isIframeStarted:false,isIframeLoaded:false,loadIframeApi:function(){if(!this.isIframeStarted){var a=document.createElement("script");a.src="http://www.youtube.com/player_api";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);this.isIframeStarted=true}},iframeQueue:[],enqueueIframe:function(a){if(this.isLoaded)this.createIframe(a);else{this.loadIframeApi();this.iframeQueue.push(a)}},createIframe:function(a){var b=a.pluginMediaElement,c=new YT.Player(a.containerId, 
     57{height:a.height,width:a.width,videoId:a.videoId,playerVars:{controls:0},events:{onReady:function(){a.pluginMediaElement.pluginApi=c;mejs.MediaPluginBridge.initPlugin(a.pluginId);setInterval(function(){mejs.YouTubeApi.createEvent(c,b,"timeupdate")},250)},onStateChange:function(d){mejs.YouTubeApi.handleStateChange(d.data,c,b)}}})},createEvent:function(a,b,c){c={type:c,target:b};if(a&&a.getDuration){b.currentTime=c.currentTime=a.getCurrentTime();b.duration=c.duration=a.getDuration();c.paused=b.paused; 
     58c.ended=b.ended;c.muted=a.isMuted();c.volume=a.getVolume()/100;c.bytesTotal=a.getVideoBytesTotal();c.bufferedBytes=a.getVideoBytesLoaded();var d=c.bufferedBytes/c.bytesTotal*c.duration;c.target.buffered=c.buffered={start:function(){return 0},end:function(){return d},length:1}}b.dispatchEvent(c.type,c)},iFrameReady:function(){for(this.isIframeLoaded=this.isLoaded=true;this.iframeQueue.length>0;)this.createIframe(this.iframeQueue.pop())},flashPlayers:{},createFlash:function(a){this.flashPlayers[a.pluginId]= 
     59a;var b,c="http://www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid="+a.pluginId+"&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0";if(mejs.MediaFeatures.isIE){b=document.createElement("div");a.container.appendChild(b);b.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+a.pluginId+'" width="'+a.width+'" height="'+a.height+'" class="mejs-shim"><param name="movie" value="'+ 
     60c+'" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object>'}else a.container.innerHTML='<object type="application/x-shockwave-flash" id="'+a.pluginId+'" data="'+c+'" width="'+a.width+'" height="'+a.height+'" style="visibility: visible; " class="mejs-shim"><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"></object>'},flashReady:function(a){var b=this.flashPlayers[a],c= 
     61document.getElementById(a),d=b.pluginMediaElement;d.pluginApi=d.pluginElement=c;mejs.MediaPluginBridge.initPlugin(a);c.cueVideoById(b.videoId);a=b.containerId+"_callback";window[a]=function(e){mejs.YouTubeApi.handleStateChange(e,c,d)};c.addEventListener("onStateChange",a);setInterval(function(){mejs.YouTubeApi.createEvent(c,d,"timeupdate")},250)},handleStateChange:function(a,b,c){switch(a){case -1:c.paused=true;c.ended=true;mejs.YouTubeApi.createEvent(b,c,"loadedmetadata");break;case 0:c.paused=false; 
     62c.ended=true;mejs.YouTubeApi.createEvent(b,c,"ended");break;case 1:c.paused=false;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"play");mejs.YouTubeApi.createEvent(b,c,"playing");break;case 2:c.paused=true;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"pause");break;case 3:mejs.YouTubeApi.createEvent(b,c,"progress")}}};function onYouTubePlayerAPIReady(){mejs.YouTubeApi.iFrameReady()}function onYouTubePlayerReady(a){mejs.YouTubeApi.flashReady(a)}window.mejs=mejs;window.MediaElement=mejs.MediaElement; 
     63(function(a,b,c){var d={locale:{strings:{}},methods:{}};d.locale.getLanguage=function(){return{language:navigator.language}};d.locale.INIT_LANGUAGE=d.locale.getLanguage();d.methods.checkPlain=function(e){var g,f,h={"&":"&amp;",'"':"&quot;","<":"&lt;",">":"&gt;"};e=String(e);for(g in h)if(h.hasOwnProperty(g)){f=RegExp(g,"g");e=e.replace(f,h[g])}return e};d.methods.formatString=function(e,g){for(var f in g){switch(f.charAt(0)){case "@":g[f]=d.methods.checkPlain(g[f]);break;case "!":break;default:g[f]= 
     64'<em class="placeholder">'+d.methods.checkPlain(g[f])+"</em>"}e=e.replace(f,g[f])}return e};d.methods.t=function(e,g,f){if(d.locale.strings&&d.locale.strings[f.context]&&d.locale.strings[f.context][e])e=d.locale.strings[f.context][e];if(g)e=d.methods.formatString(e,g);return e};d.t=function(e,g,f){if(typeof e==="string"&&e.length>0){var h=d.locale.getLanguage();f=f||{context:h.language};return d.methods.t(e,g,f)}else throw{name:"InvalidArgumentException",message:"First argument is either not a string or empty."}; 
     65};c.i18n=d})(jQuery,document,mejs);(function(a){a.de={Fullscreen:"Vollbild","Go Fullscreen":"Vollbild an","Turn off Fullscreen":"Vollbild aus",Close:"Schlie\u00dfen"}})(mejs.i18n.locale.strings); 
     66 
    7567/*! 
    7668 * MediaElementPlayer 
     
    8173 * 
    8274 * Copyright 2010-2012, John Dyer (http://j.hn/) 
    83  * Dual licensed under the MIT or GPL Version 2 licenses. 
     75 * License: MIT 
    8476 * 
    85  */ 
    86 if(typeof jQuery!="undefined"){mejs.$=jQuery}else{if(typeof ender!="undefined"){mejs.$=ender}}(function(a){mejs.MepDefaults={poster:"",defaultVideoWidth:480,defaultVideoHeight:270,videoWidth:-1,videoHeight:-1,defaultAudioWidth:400,defaultAudioHeight:30,defaultSeekBackwardInterval:function(b){return(b.duration*0.05)},defaultSeekForwardInterval:function(b){return(b.duration*0.05)},audioWidth:-1,audioHeight:-1,startVolume:0.8,loop:false,enableAutosize:true,alwaysShowHours:false,showTimecodeFrameCount:false,framesPerSecond:25,autosizeProgress:true,alwaysShowControls:false,iPadUseNativeControls:false,iPhoneUseNativeControls:false,AndroidUseNativeControls:false,features:["playpause","current","progress","duration","tracks","volume","fullscreen"],isVideo:true,enableKeyboard:true,pauseOtherPlayers:true,keyActions:[{keys:[32,179],action:function(b,c){if(c.paused||c.ended){c.play()}else{c.pause()}}},{keys:[38],action:function(b,d){var c=Math.min(d.volume+0.1,1);d.setVolume(c)}},{keys:[40],action:function(b,d){var c=Math.max(d.volume-0.1,0);d.setVolume(c)}},{keys:[37,227],action:function(b,d){if(!isNaN(d.duration)&&d.duration>0){if(b.isVideo){b.showControls();b.startControlsTimer()}var c=Math.max(d.currentTime-b.options.defaultSeekBackwardInterval(d),0);d.setCurrentTime(c)}}},{keys:[39,228],action:function(b,d){if(!isNaN(d.duration)&&d.duration>0){if(b.isVideo){b.showControls();b.startControlsTimer()}var c=Math.min(d.currentTime+b.options.defaultSeekForwardInterval(d),d.duration);d.setCurrentTime(c)}}},{keys:[70],action:function(b,c){if(typeof b.enterFullScreen!="undefined"){if(b.isFullScreen){b.exitFullScreen()}else{b.enterFullScreen()}}}}]};mejs.mepIndex=0;mejs.players=[];mejs.MediaElementPlayer=function(c,d){if(!(this instanceof mejs.MediaElementPlayer)){return new mejs.MediaElementPlayer(c,d)}var b=this;b.$media=b.$node=a(c);b.node=b.media=b.$media[0];if(typeof b.node.player!="undefined"){return b.node.player}else{b.node.player=b}if(typeof d=="undefined"){d=b.$node.data("mejsoptions")}b.options=a.extend({},mejs.MepDefaults,d);mejs.players.push(b);b.init();return b};mejs.MediaElementPlayer.prototype={hasFocus:false,controlsAreVisible:true,init:function(){var d=this,e=mejs.MediaFeatures,h=a.extend(true,{},d.options,{success:function(k,j){d.meReady(k,j)},error:function(j){d.handleError(j)}}),c=d.media.tagName.toLowerCase();d.isDynamic=(c!=="audio"&&c!=="video");if(d.isDynamic){d.isVideo=d.options.isVideo}else{d.isVideo=(c!=="audio"&&d.options.isVideo)}if((e.isiPad&&d.options.iPadUseNativeControls)||(e.isiPhone&&d.options.iPhoneUseNativeControls)){d.$media.attr("controls","controls");if(e.isiPad&&d.media.getAttribute("autoplay")!==null){d.media.load();d.media.play()}}else{if(e.isAndroid&&d.AndroidUseNativeControls){}else{d.$media.removeAttr("controls");d.id="mep_"+mejs.mepIndex++;d.container=a('<div id="'+d.id+'" class="mejs-container '+(mejs.MediaFeatures.svg?"svg":"no-svg")+'"><div class="mejs-inner"><div class="mejs-mediaelement"></div><div class="mejs-layers"></div><div class="mejs-controls"></div><div class="mejs-clear"></div></div></div>').addClass(d.$media[0].className).insertBefore(d.$media);d.container.addClass((e.isAndroid?"mejs-android ":"")+(e.isiOS?"mejs-ios ":"")+(e.isiPad?"mejs-ipad ":"")+(e.isiPhone?"mejs-iphone ":"")+(d.isVideo?"mejs-video ":"mejs-audio "));if(e.isiOS){var g=d.$media.clone();d.container.find(".mejs-mediaelement").append(g);d.$media.remove();d.$node=d.$media=g;d.node=d.media=g[0]}else{d.container.find(".mejs-mediaelement").append(d.$media)}d.controls=d.container.find(".mejs-controls");d.layers=d.container.find(".mejs-layers");var f=(d.isVideo?"video":"audio"),b=f.substring(0,1).toUpperCase()+f.substring(1);if(d.options[f+"Width"]>0||d.options[f+"Width"].toString().indexOf("%")>-1){d.width=d.options[f+"Width"]}else{if(d.media.style.width!==""&&d.media.style.width!==null){d.width=d.media.style.width}else{if(d.media.getAttribute("width")!==null){d.width=d.$media.attr("width")}else{d.width=d.options["default"+b+"Width"]}}}if(d.options[f+"Height"]>0||d.options[f+"Height"].toString().indexOf("%")>-1){d.height=d.options[f+"Height"]}else{if(d.media.style.height!==""&&d.media.style.height!==null){d.height=d.media.style.height}else{if(d.$media[0].getAttribute("height")!==null){d.height=d.$media.attr("height")}else{d.height=d.options["default"+b+"Height"]}}}d.setPlayerSize(d.width,d.height);h.pluginWidth=d.height;h.pluginHeight=d.width}}mejs.MediaElement(d.$media[0],h)},showControls:function(b){var c=this;b=typeof b=="undefined"||b;if(c.controlsAreVisible){return}if(b){c.controls.css("visibility","visible").stop(true,true).fadeIn(200,function(){c.controlsAreVisible=true});c.container.find(".mejs-control").css("visibility","visible").stop(true,true).fadeIn(200,function(){c.controlsAreVisible=true})}else{c.controls.css("visibility","visible").css("display","block");c.container.find(".mejs-control").css("visibility","visible").css("display","block");c.controlsAreVisible=true}c.setControlsSize()},hideControls:function(b){var c=this;b=typeof b=="undefined"||b;if(!c.controlsAreVisible){return}if(b){c.controls.stop(true,true).fadeOut(200,function(){a(this).css("visibility","hidden").css("display","block");c.controlsAreVisible=false});c.container.find(".mejs-control").stop(true,true).fadeOut(200,function(){a(this).css("visibility","hidden").css("display","block")})}else{c.controls.css("visibility","hidden").css("display","block");c.container.find(".mejs-control").css("visibility","hidden").css("display","block");c.controlsAreVisible=false}},controlsTimer:null,startControlsTimer:function(c){var b=this;c=typeof c!="undefined"?c:1500;b.killControlsTimer("start");b.controlsTimer=setTimeout(function(){b.hideControls();b.killControlsTimer("hide")},c)},killControlsTimer:function(c){var b=this;if(b.controlsTimer!==null){clearTimeout(b.controlsTimer);delete b.controlsTimer;b.controlsTimer=null}},controlsEnabled:true,disableControls:function(){var b=this;b.killControlsTimer();b.hideControls(false);this.controlsEnabled=false},enableControls:function(){var b=this;b.showControls(false);b.controlsEnabled=true},meReady:function(c,f){var k=this,j=mejs.MediaFeatures,g=f.getAttribute("autoplay"),d=!(typeof g=="undefined"||g===null||g==="false"),b,l;if(k.created){return}else{k.created=true}k.media=c;k.domNode=f;if(!(j.isAndroid&&k.options.AndroidUseNativeControls)&&!(j.isiPad&&k.options.iPadUseNativeControls)&&!(j.isiPhone&&k.options.iPhoneUseNativeControls)){k.buildposter(k,k.controls,k.layers,k.media);k.buildkeyboard(k,k.controls,k.layers,k.media);k.buildoverlays(k,k.controls,k.layers,k.media);k.findTracks();for(b in k.options.features){l=k.options.features[b];if(k["build"+l]){try{k["build"+l](k,k.controls,k.layers,k.media)}catch(h){}}}k.container.trigger("controlsready");k.setPlayerSize(k.width,k.height);k.setControlsSize();if(k.isVideo){if(mejs.MediaFeatures.hasTouch){k.$media.bind("touchstart",function(){if(k.controlsAreVisible){k.hideControls(false)}else{if(k.controlsEnabled){k.showControls(false)}}})}else{k.media.addEventListener("click",function(){if(k.media.paused){k.media.play()}else{k.media.pause()}});k.container.bind("mouseenter mouseover",function(){if(k.controlsEnabled){if(!k.options.alwaysShowControls){k.killControlsTimer("enter");k.showControls();k.startControlsTimer(2500)}}}).bind("mousemove",function(){if(k.controlsEnabled){if(!k.controlsAreVisible){k.showControls()}if(!k.options.alwaysShowControls){k.startControlsTimer(2500)}}}).bind("mouseleave",function(){if(k.controlsEnabled){if(!k.media.paused&&!k.options.alwaysShowControls){k.startControlsTimer(1000)}}})}if(d&&!k.options.alwaysShowControls){k.hideControls()}if(k.options.enableAutosize){k.media.addEventListener("loadedmetadata",function(m){if(k.options.videoHeight<=0&&k.domNode.getAttribute("height")===null&&!isNaN(m.target.videoHeight)){k.setPlayerSize(m.target.videoWidth,m.target.videoHeight);k.setControlsSize();k.media.setVideoSize(m.target.videoWidth,m.target.videoHeight)}},false)}}c.addEventListener("play",function(){for(var m=0,e=mejs.players.length;m<e;m++){var n=mejs.players[m];if(n.id!=k.id&&k.options.pauseOtherPlayers&&!n.paused&&!n.ended){n.pause()}n.hasFocus=false}k.hasFocus=true},false);k.media.addEventListener("ended",function(m){try{k.media.setCurrentTime(0)}catch(n){}k.media.pause();if(k.setProgressRail){k.setProgressRail()}if(k.setCurrentRail){k.setCurrentRail()}if(k.options.loop){k.media.play()}else{if(!k.options.alwaysShowControls&&k.controlsEnabled){k.showControls()}}},false);k.media.addEventListener("loadedmetadata",function(m){if(k.updateDuration){k.updateDuration()}if(k.updateCurrent){k.updateCurrent()}if(!k.isFullScreen){k.setPlayerSize(k.width,k.height);k.setControlsSize()}},false);setTimeout(function(){k.setPlayerSize(k.width,k.height);k.setControlsSize()},50);a(window).resize(function(){if(!(k.isFullScreen||(mejs.MediaFeatures.hasTrueNativeFullScreen&&document.webkitIsFullScreen))){k.setPlayerSize(k.width,k.height)}k.setControlsSize()});if(k.media.pluginType=="youtube"){k.container.find(".mejs-overlay-play").hide()}}if(d&&c.pluginType=="native"){c.load();c.play()}if(k.options.success){if(typeof k.options.success=="string"){window[k.options.success](k.media,k.domNode,k)}else{k.options.success(k.media,k.domNode,k)}}},handleError:function(c){var b=this;b.controls.hide();if(b.options.error){b.options.error(c)}},setPlayerSize:function(g,b){var e=this;if(typeof g!="undefined"){e.width=g}if(typeof b!="undefined"){e.height=b}if(e.height.toString().indexOf("%")>0||e.$node.css("max-width")==="100%"||(e.$node[0].currentStyle&&e.$node[0].currentStyle.maxWidth==="100%")){var h=e.isVideo?((e.media.videoWidth&&e.media.videoWidth>0)?e.media.videoWidth:e.options.defaultVideoWidth):e.options.defaultAudioWidth,d=e.isVideo?((e.media.videoHeight&&e.media.videoHeight>0)?e.media.videoHeight:e.options.defaultVideoHeight):e.options.defaultAudioHeight,f=e.container.parent().closest(":visible").width(),c=parseInt(f*d/h,10);if(e.container.parent()[0].tagName.toLowerCase()==="body"){f=a(window).width();c=a(window).height()}if(c!=0){e.container.width(f).height(c);e.$media.width("100%").height("100%");e.container.find("object, embed, iframe").width("100%").height("100%");if(e.isVideo){if(e.media.setVideoSize){e.media.setVideoSize(f,c)}}e.layers.children(".mejs-layer").width("100%").height("100%")}}else{e.container.width(e.width).height(e.height);e.layers.children(".mejs-layer").width(e.width).height(e.height)}},setControlsSize:function(){var c=this,g=0,j=0,h=c.controls.find(".mejs-time-rail"),e=c.controls.find(".mejs-time-total"),f=c.controls.find(".mejs-time-current"),b=c.controls.find(".mejs-time-loaded"),d=h.siblings();if(c.options&&!c.options.autosizeProgress){j=parseInt(h.css("width"))}if(j===0||!j){d.each(function(){if(a(this).css("position")!="absolute"){g+=a(this).outerWidth(true)}});j=c.controls.width()-g-(h.outerWidth(true)-h.width())}h.width(j);e.width(j-(e.outerWidth(true)-e.width()));if(c.setProgressRail){c.setProgressRail()}if(c.setCurrentRail){c.setCurrentRail()}},buildposter:function(e,b,g,f){var d=this,h=a('<div class="mejs-poster mejs-layer"></div>').appendTo(g),c=e.$media.attr("poster");if(e.options.poster!==""){c=e.options.poster}if(c!==""&&c!=null){d.setPoster(c)}else{h.hide()}f.addEventListener("play",function(){h.hide()},false)},setPoster:function(c){var d=this,e=d.container.find(".mejs-poster"),b=e.find("img");if(b.length==0){b=a('<img width="100%" height="100%" />').appendTo(e)}b.attr("src",c)},buildoverlays:function(e,b,g,f){if(!e.isVideo){return}var h=a('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-loading"><span></span></div></div>').hide().appendTo(g),c=a('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-error"></div></div>').hide().appendTo(g),d=a('<div class="mejs-overlay mejs-layer mejs-overlay-play"><div class="mejs-overlay-button"></div></div>').appendTo(g).click(function(){if(f.paused){f.play()}else{f.pause()}});f.addEventListener("play",function(){d.hide();h.hide();b.find(".mejs-time-buffering").hide();c.hide()},false);f.addEventListener("playing",function(){d.hide();h.hide();b.find(".mejs-time-buffering").hide();c.hide()},false);f.addEventListener("seeking",function(){h.show();b.find(".mejs-time-buffering").show()},false);f.addEventListener("seeked",function(){h.hide();b.find(".mejs-time-buffering").hide()},false);f.addEventListener("pause",function(){if(!mejs.MediaFeatures.isiPhone){d.show()}},false);f.addEventListener("waiting",function(){h.show();b.find(".mejs-time-buffering").show()},false);f.addEventListener("loadeddata",function(){h.show();b.find(".mejs-time-buffering").show()},false);f.addEventListener("canplay",function(){h.hide();b.find(".mejs-time-buffering").hide()},false);f.addEventListener("error",function(){h.hide();b.find(".mejs-time-buffering").hide();c.show();c.find("mejs-overlay-error").html("Error loading this resource")},false)},buildkeyboard:function(d,b,f,e){var c=this;a(document).keydown(function(n){if(d.hasFocus&&d.options.enableKeyboard){for(var m=0,g=d.options.keyActions.length;m<g;m++){var l=d.options.keyActions[m];for(var h=0,k=l.keys.length;h<k;h++){if(n.keyCode==l.keys[h]){n.preventDefault();l.action(d,e,n.keyCode);return false}}}}return true});a(document).click(function(g){if(a(g.target).closest(".mejs-container").length==0){d.hasFocus=false}})},findTracks:function(){var b=this,c=b.$media.find("track");b.tracks=[];c.each(function(e,d){d=a(d);b.tracks.push({srclang:d.attr("srclang").toLowerCase(),src:d.attr("src"),kind:d.attr("kind"),label:d.attr("label")||"",entries:[],isLoaded:false})})},changeSkin:function(b){this.container[0].className="mejs-container "+b;this.setPlayerSize(this.width,this.height);this.setControlsSize()},play:function(){this.media.play()},pause:function(){this.media.pause()},load:function(){this.media.load()},setMuted:function(b){this.media.setMuted(b)},setCurrentTime:function(b){this.media.setCurrentTime(b)},getCurrentTime:function(){return this.media.currentTime},setVolume:function(b){this.media.setVolume(b)},getVolume:function(){return this.media.volume},setSrc:function(b){this.media.setSrc(b)},remove:function(){var b=this;if(b.media.pluginType==="flash"){b.media.remove()}else{if(b.media.pluginType==="native"){b.$media.prop("controls",true)}}if(!b.isDynamic){b.$node.insertBefore(b.container)}b.container.remove()}};if(typeof jQuery!="undefined"){jQuery.fn.mediaelementplayer=function(b){return this.each(function(){new mejs.MediaElementPlayer(this,b)})}}a(document).ready(function(){a(".mejs-player").mediaelementplayer()});window.MediaElementPlayer=mejs.MediaElementPlayer})(mejs.$);(function(a){a.extend(mejs.MepDefaults,{playpauseText:"Play/Pause"});a.extend(MediaElementPlayer.prototype,{buildplaypause:function(d,b,g,f){var c=this,e=a('<div class="mejs-button mejs-playpause-button mejs-play" ><button type="button" aria-controls="'+c.id+'" title="'+c.options.playpauseText+'"></button></div>').appendTo(b).click(function(h){h.preventDefault();if(f.paused){f.play()}else{f.pause()}return false});f.addEventListener("play",function(){e.removeClass("mejs-play").addClass("mejs-pause")},false);f.addEventListener("playing",function(){e.removeClass("mejs-play").addClass("mejs-pause")},false);f.addEventListener("pause",function(){e.removeClass("mejs-pause").addClass("mejs-play")},false);f.addEventListener("paused",function(){e.removeClass("mejs-pause").addClass("mejs-play")},false)}})})(mejs.$);(function(a){a.extend(mejs.MepDefaults,{stopText:"Stop"});a.extend(MediaElementPlayer.prototype,{buildstop:function(e,b,g,f){var d=this,c=a('<div class="mejs-button mejs-stop-button mejs-stop"><button type="button" aria-controls="'+d.id+'" title="'+d.options.stopText+'"></button></div>').appendTo(b).click(function(){if(!f.paused){f.pause()}if(f.currentTime>0){f.setCurrentTime(0);f.pause();b.find(".mejs-time-current").width("0px");b.find(".mejs-time-handle").css("left","0px");b.find(".mejs-time-float-current").html(mejs.Utility.secondsToTimeCode(0));b.find(".mejs-currenttime").html(mejs.Utility.secondsToTimeCode(0));g.find(".mejs-poster").show()}})}})})(mejs.$);(function(a){a.extend(MediaElementPlayer.prototype,{buildprogress:function(n,o,f,c){a('<div class="mejs-time-rail"><span class="mejs-time-total"><span class="mejs-time-buffering"></span><span class="mejs-time-loaded"></span><span class="mejs-time-current"></span><span class="mejs-time-handle"></span><span class="mejs-time-float"><span class="mejs-time-float-current">00:00</span><span class="mejs-time-float-corner"></span></span></span></div>').appendTo(o);o.find(".mejs-time-buffering").hide();var p=this,l=o.find(".mejs-time-total"),g=o.find(".mejs-time-loaded"),k=o.find(".mejs-time-current"),j=o.find(".mejs-time-handle"),m=o.find(".mejs-time-float"),b=o.find(".mejs-time-float-current"),e=function(u){var q=u.pageX,v=l.offset(),s=l.outerWidth(true),r=0,t=0,w=q-v.left;if(q>v.left&&q<=s+v.left&&c.duration){r=((q-v.left)/s);t=(r<=0.02)?0:r*c.duration;if(h){c.setCurrentTime(t)}if(!mejs.MediaFeatures.hasTouch){m.css("left",w);b.html(mejs.Utility.secondsToTimeCode(t));m.show()}}},h=false,d=false;l.bind("mousedown",function(q){if(q.which===1){h=true;e(q);a(document).bind("mousemove.dur",function(r){e(r)}).bind("mouseup.dur",function(r){h=false;m.hide();a(document).unbind(".dur")});return false}}).bind("mouseenter",function(q){d=true;a(document).bind("mousemove.dur",function(r){e(r)});if(!mejs.MediaFeatures.hasTouch){m.show()}}).bind("mouseleave",function(q){d=false;if(!h){a(document).unbind(".dur");m.hide()}});c.addEventListener("progress",function(q){n.setProgressRail(q);n.setCurrentRail(q)},false);c.addEventListener("timeupdate",function(q){n.setProgressRail(q);n.setCurrentRail(q)},false);p.loaded=g;p.total=l;p.current=k;p.handle=j},setProgressRail:function(f){var b=this,d=(f!=undefined)?f.target:b.media,c=null;if(d&&d.buffered&&d.buffered.length>0&&d.buffered.end&&d.duration){c=d.buffered.end(0)/d.duration}else{if(d&&d.bytesTotal!=undefined&&d.bytesTotal>0&&d.bufferedBytes!=undefined){c=d.bufferedBytes/d.bytesTotal}else{if(f&&f.lengthComputable&&f.total!=0){c=f.loaded/f.total}}}if(c!==null){c=Math.min(1,Math.max(0,c));if(b.loaded&&b.total){b.loaded.width(b.total.width()*c)}}},setCurrentRail:function(){var b=this;if(b.media.currentTime!=undefined&&b.media.duration){if(b.total&&b.handle){var d=b.total.width()*b.media.currentTime/b.media.duration,c=d-(b.handle.outerWidth(true)/2);b.current.width(d);b.handle.css("left",c)}}}})})(mejs.$);(function(a){a.extend(mejs.MepDefaults,{duration:-1,timeAndDurationSeparator:" <span> | </span> "});a.extend(MediaElementPlayer.prototype,{buildcurrent:function(d,b,f,e){var c=this;a('<div class="mejs-time"><span class="mejs-currenttime">'+(d.options.alwaysShowHours?"00:":"")+(d.options.showTimecodeFrameCount?"00:00:00":"00:00")+"</span></div>").appendTo(b);c.currenttime=c.controls.find(".mejs-currenttime");e.addEventListener("timeupdate",function(){d.updateCurrent()},false)},buildduration:function(d,b,f,e){var c=this;if(b.children().last().find(".mejs-currenttime").length>0){a(c.options.timeAndDurationSeparator+'<span class="mejs-duration">'+(c.options.duration>0?mejs.Utility.secondsToTimeCode(c.options.duration,c.options.alwaysShowHours||c.media.duration>3600,c.options.showTimecodeFrameCount,c.options.framesPerSecond||25):((d.options.alwaysShowHours?"00:":"")+(d.options.showTimecodeFrameCount?"00:00:00":"00:00")))+"</span>").appendTo(b.find(".mejs-time"))}else{b.find(".mejs-currenttime").parent().addClass("mejs-currenttime-container");a('<div class="mejs-time mejs-duration-container"><span class="mejs-duration">'+(c.options.duration>0?mejs.Utility.secondsToTimeCode(c.options.duration,c.options.alwaysShowHours||c.media.duration>3600,c.options.showTimecodeFrameCount,c.options.framesPerSecond||25):((d.options.alwaysShowHours?"00:":"")+(d.options.showTimecodeFrameCount?"00:00:00":"00:00")))+"</span></div>").appendTo(b)}c.durationD=c.controls.find(".mejs-duration");e.addEventListener("timeupdate",function(){d.updateDuration()},false)},updateCurrent:function(){var b=this;if(b.currenttime){b.currenttime.html(mejs.Utility.secondsToTimeCode(b.media.currentTime,b.options.alwaysShowHours||b.media.duration>3600,b.options.showTimecodeFrameCount,b.options.framesPerSecond||25))}},updateDuration:function(){var b=this;if(b.media.duration&&b.durationD){b.durationD.html(mejs.Utility.secondsToTimeCode(b.media.duration,b.options.alwaysShowHours,b.options.showTimecodeFrameCount,b.options.framesPerSecond||25))}}})})(mejs.$);(function(a){a.extend(mejs.MepDefaults,{muteText:"Mute Toggle",hideVolumeOnTouchDevices:true,audioVolume:"horizontal",videoVolume:"vertical"});a.extend(MediaElementPlayer.prototype,{buildvolume:function(n,o,j,d){if(mejs.MediaFeatures.hasTouch&&this.options.hideVolumeOnTouchDevices){return}var p=this,l=(p.isVideo)?p.options.videoVolume:p.options.audioVolume,f=(l=="horizontal")?a('<div class="mejs-button mejs-volume-button mejs-mute"><button type="button" aria-controls="'+p.id+'" title="'+p.options.muteText+'"></button></div><div class="mejs-horizontal-volume-slider"><div class="mejs-horizontal-volume-total"></div><div class="mejs-horizontal-volume-current"></div><div class="mejs-horizontal-volume-handle"></div></div>').appendTo(o):a('<div class="mejs-button mejs-volume-button mejs-mute"><button type="button" aria-controls="'+p.id+'" title="'+p.options.muteText+'"></button><div class="mejs-volume-slider"><div class="mejs-volume-total"></div><div class="mejs-volume-current"></div><div class="mejs-volume-handle"></div></div></div>').appendTo(o),q=p.container.find(".mejs-volume-slider, .mejs-horizontal-volume-slider"),b=p.container.find(".mejs-volume-total, .mejs-horizontal-volume-total"),h=p.container.find(".mejs-volume-current, .mejs-horizontal-volume-current"),g=p.container.find(".mejs-volume-handle, .mejs-horizontal-volume-handle"),m=function(w,x){if(!q.is(":visible")&&typeof x=="undefined"){q.show();m(w,true);q.hide();return}w=Math.max(0,w);w=Math.min(w,1);if(w==0){f.removeClass("mejs-mute").addClass("mejs-unmute")}else{f.removeClass("mejs-unmute").addClass("mejs-mute")}if(l=="vertical"){var u=b.height(),t=b.position(),s=u-(u*w);g.css("top",Math.round(t.top+s-(g.height()/2)));h.height(u-s);h.css("top",t.top+s)}else{var r=b.width(),t=b.position(),v=r*w;g.css("left",Math.round(t.left+v-(g.width()/2)));h.width(Math.round(v))}},c=function(w){var u=null,s=b.offset();if(l=="vertical"){var t=b.height(),r=parseInt(b.css("top").replace(/px/,""),10),v=w.pageY-s.top;u=(t-v)/t;if(s.top==0||s.left==0){return}}else{var y=b.width(),x=w.pageX-s.left;u=x/y}u=Math.max(0,u);u=Math.min(u,1);m(u);if(u==0){d.setMuted(true)}else{d.setMuted(false)}d.setVolume(u)},k=false,e=false;f.hover(function(){q.show();e=true},function(){e=false;if(!k&&l=="vertical"){q.hide()}});q.bind("mouseover",function(){e=true}).bind("mousedown",function(r){c(r);a(document).bind("mousemove.vol",function(s){c(s)}).bind("mouseup.vol",function(){k=false;a(document).unbind(".vol");if(!e&&l=="vertical"){q.hide()}});k=true;return false});f.find("button").click(function(){d.setMuted(!d.muted)});d.addEventListener("volumechange",function(r){if(!k){if(d.muted){m(0);f.removeClass("mejs-mute").addClass("mejs-unmute")}else{m(d.volume);f.removeClass("mejs-unmute").addClass("mejs-mute")}}},false);if(p.container.is(":visible")){m(n.options.startVolume);if(d.pluginType==="native"){d.setVolume(n.options.startVolume)}}}})})(mejs.$);(function(a){a.extend(mejs.MepDefaults,{usePluginFullScreen:true,newWindowCallback:function(){return""},fullscreenText:mejs.i18n.t("Fullscreen")});a.extend(MediaElementPlayer.prototype,{isFullScreen:false,isNativeFullScreen:false,docStyleOverflow:null,isInIframe:false,buildfullscreen:function(q,p,g,f){if(!q.isVideo){return}q.isInIframe=(window.location!=window.parent.location);if(mejs.MediaFeatures.hasTrueNativeFullScreen){var u=null;if(mejs.MediaFeatures.hasMozNativeFullScreen){u=a(document)}else{u=q.container}u.bind(mejs.MediaFeatures.fullScreenEventName,function(t){if(mejs.MediaFeatures.isFullScreen()){q.isNativeFullScreen=true;q.setControlsSize()}else{q.isNativeFullScreen=false;q.exitFullScreen()}})}var o=this,e=0,c=0,n=q.container,b=a('<div class="mejs-button mejs-fullscreen-button"><button type="button" aria-controls="'+o.id+'" title="'+o.options.fullscreenText+'"></button></div>').appendTo(p);if(o.media.pluginType==="native"||(!o.options.usePluginFullScreen&&!mejs.MediaFeatures.isFirefox)){b.click(function(){var t=(mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen())||q.isFullScreen;if(t){q.exitFullScreen()}else{q.enterFullScreen()}})}else{var m=null,h=(function(){var v=document.createElement("x"),w=document.documentElement,x=window.getComputedStyle,t;if(!("pointerEvents" in v.style)){return false}v.style.pointerEvents="auto";v.style.pointerEvents="x";w.appendChild(v);t=x&&x(v,"").pointerEvents==="auto";w.removeChild(v);return !!t})();if(h&&!mejs.MediaFeatures.isOpera){var l=false,r=function(){if(l){j.hide();d.hide();k.hide();b.css("pointer-events","");o.controls.css("pointer-events","");l=false}},j=a('<div class="mejs-fullscreen-hover" />').appendTo(o.container).mouseover(r),d=a('<div class="mejs-fullscreen-hover"  />').appendTo(o.container).mouseover(r),k=a('<div class="mejs-fullscreen-hover"  />').appendTo(o.container).mouseover(r),s=function(){var v={position:"absolute",top:0,left:0};j.css(v);d.css(v);k.css(v);j.width(o.container.width()).height(o.container.height()-o.controls.height());var t=b.offset().left-o.container.offset().left;fullScreenBtnWidth=b.outerWidth(true);d.width(t).height(o.controls.height()).css({top:o.container.height()-o.controls.height()});k.width(o.container.width()-t-fullScreenBtnWidth).height(o.controls.height()).css({top:o.container.height()-o.controls.height(),left:t+fullScreenBtnWidth})};a(document).resize(function(){s()});b.mouseover(function(){if(!o.isFullScreen){var t=b.offset(),v=q.container.offset();f.positionFullscreenButton(t.left-v.left,t.top-v.top,false);b.css("pointer-events","none");o.controls.css("pointer-events","none");j.show();k.show();d.show();s();l=true}});f.addEventListener("fullscreenchange",function(t){r()})}else{b.mouseover(function(){if(m!==null){clearTimeout(m);delete m}var t=b.offset(),v=q.container.offset();f.positionFullscreenButton(t.left-v.left,t.top-v.top,true)}).mouseout(function(){if(m!==null){clearTimeout(m);delete m}m=setTimeout(function(){f.hideFullscreenButton()},1500)})}}q.fullscreenBtn=b;a(document).bind("keydown",function(t){if(((mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen())||o.isFullScreen)&&t.keyCode==27){q.exitFullScreen()}})},enterFullScreen:function(){var c=this;if(c.media.pluginType!=="native"&&(mejs.MediaFeatures.isFirefox||c.options.usePluginFullScreen)){return}docStyleOverflow=document.documentElement.style.overflow;document.documentElement.style.overflow="hidden";normalHeight=c.container.height();normalWidth=c.container.width();if(c.media.pluginType==="native"){if(mejs.MediaFeatures.hasTrueNativeFullScreen){mejs.MediaFeatures.requestFullScreen(c.container[0]);if(c.isInIframe){setTimeout(function d(){if(c.isNativeFullScreen){if(a(window).width()!==screen.width){c.exitFullScreen()}else{setTimeout(d,500)}}},500)}}else{if(mejs.MediaFeatures.hasSemiNativeFullScreen){c.media.webkitEnterFullscreen();return}}}if(c.isInIframe){var b=c.options.newWindowCallback(this);if(b!==""){if(!mejs.MediaFeatures.hasTrueNativeFullScreen){c.pause();window.open(b,c.id,"top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no");return}else{setTimeout(function(){if(!c.isNativeFullScreen){c.pause();window.open(b,c.id,"top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no")}},250)}}}c.container.addClass("mejs-container-fullscreen").width("100%").height("100%");setTimeout(function(){c.container.css({width:"100%",height:"100%"});c.setControlsSize()},500);if(c.pluginType==="native"){c.$media.width("100%").height("100%")}else{c.container.find("object, embed, iframe").width("100%").height("100%");c.media.setVideoSize(a(window).width(),a(window).height())}c.layers.children("div").width("100%").height("100%");if(c.fullscreenBtn){c.fullscreenBtn.removeClass("mejs-fullscreen").addClass("mejs-unfullscreen")}c.setControlsSize();c.isFullScreen=true},exitFullScreen:function(){var b=this;if(b.media.pluginType!=="native"&&mejs.MediaFeatures.isFirefox){b.media.setFullscreen(false);return}if(mejs.MediaFeatures.hasTrueNativeFullScreen&&(mejs.MediaFeatures.isFullScreen()||b.isFullScreen)){mejs.MediaFeatures.cancelFullScreen()}document.documentElement.style.overflow=docStyleOverflow;b.container.removeClass("mejs-container-fullscreen").width(normalWidth).height(normalHeight);if(b.pluginType==="native"){b.$media.width(normalWidth).height(normalHeight)}else{b.container.find("object embed").width(normalWidth).height(normalHeight);b.media.setVideoSize(normalWidth,normalHeight)}b.layers.children("div").width(normalWidth).height(normalHeight);b.fullscreenBtn.removeClass("mejs-unfullscreen").addClass("mejs-fullscreen");b.setControlsSize();b.isFullScreen=false}})})(mejs.$);(function(a){a.extend(mejs.MepDefaults,{startLanguage:"",tracksText:"Captions/Subtitles"});a.extend(MediaElementPlayer.prototype,{hasChapters:false,buildtracks:function(f,b,h,g){if(!f.isVideo){return}if(f.tracks.length==0){return}var e=this,d,c="";f.chapters=a('<div class="mejs-chapters mejs-layer"></div>').prependTo(h).hide();f.captions=a('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position"><span class="mejs-captions-text"></span></div></div>').prependTo(h).hide();f.captionsText=f.captions.find(".mejs-captions-text");f.captionsButton=a('<div class="mejs-button mejs-captions-button"><button type="button" aria-controls="'+e.id+'" title="'+e.options.tracksText+'"></button><div class="mejs-captions-selector"><ul><li><input type="radio" name="'+f.id+'_captions" id="'+f.id+'_captions_none" value="none" checked="checked" /><label for="'+f.id+'_captions_none">None</label></li></ul></div></div>').appendTo(b).hover(function(){a(this).find(".mejs-captions-selector").css("visibility","visible")},function(){a(this).find(".mejs-captions-selector").css("visibility","hidden")}).delegate("input[type=radio]","click",function(){lang=this.value;if(lang=="none"){f.selectedTrack=null}else{for(d=0;d<f.tracks.length;d++){if(f.tracks[d].srclang==lang){f.selectedTrack=f.tracks[d];f.captions.attr("lang",f.selectedTrack.srclang);f.displayCaptions();break}}}});if(!f.options.alwaysShowControls){f.container.bind("mouseenter",function(){f.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover")}).bind("mouseleave",function(){if(!g.paused){f.container.find(".mejs-captions-position").removeClass("mejs-captions-position-hover")}})}else{f.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover")}f.trackToLoad=-1;f.selectedTrack=null;f.isLoadingTrack=false;for(d=0;d<f.tracks.length;d++){if(f.tracks[d].kind=="subtitles"){f.addTrackButton(f.tracks[d].srclang,f.tracks[d].label)}}f.loadNextTrack();g.addEventListener("timeupdate",function(j){f.displayCaptions()},false);g.addEventListener("loadedmetadata",function(j){f.displayChapters()},false);f.container.hover(function(){if(f.hasChapters){f.chapters.css("visibility","visible");f.chapters.fadeIn(200).height(f.chapters.find(".mejs-chapter").outerHeight())}},function(){if(f.hasChapters&&!g.paused){f.chapters.fadeOut(200,function(){a(this).css("visibility","hidden");a(this).css("display","block")})}});if(f.node.getAttribute("autoplay")!==null){f.chapters.css("visibility","hidden")}},loadNextTrack:function(){var b=this;b.trackToLoad++;if(b.trackToLoad<b.tracks.length){b.isLoadingTrack=true;b.loadTrack(b.trackToLoad)}else{b.isLoadingTrack=false}},loadTrack:function(c){var d=this,b=d.tracks[c],e=function(){b.isLoaded=true;d.enableTrackButton(b.srclang,b.label);d.loadNextTrack()};a.ajax({url:b.src,dataType:"text",success:function(f){if(typeof f=="string"&&(/<tt\s+xml/ig).exec(f)){b.entries=mejs.TrackFormatParser.dfxp.parse(f)}else{b.entries=mejs.TrackFormatParser.webvvt.parse(f)}e();if(b.kind=="chapters"){d.media.addEventListener("play",function(g){if(d.media.duration>0){d.displayChapters(b)}},false)}},error:function(){d.loadNextTrack()}})},enableTrackButton:function(d,b){var c=this;if(b===""){b=mejs.language.codes[d]||d}c.captionsButton.find("input[value="+d+"]").prop("disabled",false).siblings("label").html(b);if(c.options.startLanguage==d){a("#"+c.id+"_captions_"+d).click()}c.adjustLanguageBox()},addTrackButton:function(d,b){var c=this;if(b===""){b=mejs.language.codes[d]||d}c.captionsButton.find("ul").append(a('<li><input type="radio" name="'+c.id+'_captions" id="'+c.id+"_captions_"+d+'" value="'+d+'" disabled="disabled" /><label for="'+c.id+"_captions_"+d+'">'+b+" (loading)</label></li>"));c.adjustLanguageBox();c.container.find(".mejs-captions-translations option[value="+d+"]").remove()},adjustLanguageBox:function(){var b=this;b.captionsButton.find(".mejs-captions-selector").height(b.captionsButton.find(".mejs-captions-selector ul").outerHeight(true)+b.captionsButton.find(".mejs-captions-translations").outerHeight(true))},displayCaptions:function(){if(typeof this.tracks=="undefined"){return}var d=this,c,b=d.selectedTrack;if(b!=null&&b.isLoaded){for(c=0;c<b.entries.times.length;c++){if(d.media.currentTime>=b.entries.times[c].start&&d.media.currentTime<=b.entries.times[c].stop){d.captionsText.html(b.entries.text[c]);d.captions.show().height(0);return}}d.captions.hide()}else{d.captions.hide()}},displayChapters:function(){var c=this,b;for(b=0;b<c.tracks.length;b++){if(c.tracks[b].kind=="chapters"&&c.tracks[b].isLoaded){c.drawChapters(c.tracks[b]);c.hasChapters=true;break}}},drawChapters:function(f){var c=this,b,d,e=0,g=0;c.chapters.empty();for(b=0;b<f.entries.times.length;b++){d=f.entries.times[b].stop-f.entries.times[b].start;e=Math.floor(d/c.media.duration*100);if(e+g>100||b==f.entries.times.length-1&&e+g<100){e=100-g}c.chapters.append(a('<div class="mejs-chapter" rel="'+f.entries.times[b].start+'" style="left: '+g.toString()+"%;width: "+e.toString()+'%;"><div class="mejs-chapter-block'+((b==f.entries.times.length-1)?" mejs-chapter-block-last":"")+'"><span class="ch-title">'+f.entries.text[b]+'</span><span class="ch-time">'+mejs.Utility.secondsToTimeCode(f.entries.times[b].start)+"&ndash;"+mejs.Utility.secondsToTimeCode(f.entries.times[b].stop)+"</span></div></div>"));g+=e}c.chapters.find("div.mejs-chapter").click(function(){c.media.setCurrentTime(parseFloat(a(this).attr("rel")));if(c.media.paused){c.media.play()}});c.chapters.show()}});mejs.language={codes:{af:"Afrikaans",sq:"Albanian",ar:"Arabic",be:"Belarusian",bg:"Bulgarian",ca:"Catalan",zh:"Chinese","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",et:"Estonian",tl:"Filipino",fi:"Finnish",fr:"French",gl:"Galician",de:"German",el:"Greek",ht:"Haitian Creole",iw:"Hebrew",hi:"Hindi",hu:"Hungarian",is:"Icelandic",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",ko:"Korean",lv:"Latvian",lt:"Lithuanian",mk:"Macedonian",ms:"Malay",mt:"Maltese",no:"Norwegian",fa:"Persian",pl:"Polish",pt:"Portuguese",ro:"Romanian",ru:"Russian",sr:"Serbian",sk:"Slovak",sl:"Slovenian",es:"Spanish",sw:"Swahili",sv:"Swedish",tl:"Tagalog",th:"Thai",tr:"Turkish",uk:"Ukrainian",vi:"Vietnamese",cy:"Welsh",yi:"Yiddish"}};mejs.TrackFormatParser={webvvt:{pattern_identifier:/^([a-zA-z]+-)?[0-9]+$/,pattern_timecode:/^([0-9]{2}:[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ([0-9]{2}:[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,parse:function(g){var e=0,d=mejs.TrackFormatParser.split2(g,/\r?\n/),c={text:[],times:[]},b,f;for(;e<d.length;e++){if(this.pattern_identifier.exec(d[e])){e++;b=this.pattern_timecode.exec(d[e]);if(b&&e<d.length){e++;f=d[e];e++;while(d[e]!==""&&e<d.length){f=f+"\n"+d[e];e++}f=a.trim(f).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,"<a href='$1' target='_blank'>$1</a>");c.text.push(f);c.times.push({start:(mejs.Utility.convertSMPTEtoSeconds(b[1])==0)?0.2:mejs.Utility.convertSMPTEtoSeconds(b[1]),stop:mejs.Utility.convertSMPTEtoSeconds(b[3]),settings:b[5]})}}}return c}},dfxp:{parse:function(l){l=a(l).filter("tt");var j=0,c=l.children("div").eq(0),p=c.find("p"),h=l.find("#"+c.attr("style")),o,d,f,n,k={text:[],times:[]};if(h.length){var g=h.removeAttr("id").get(0).attributes;if(g.length){o={};for(j=0;j<g.length;j++){o[g[j].name.split(":")[1]]=g[j].value}}}for(j=0;j<p.length;j++){var b;var m={start:null,stop:null,style:null};if(p.eq(j).attr("begin")){m.start=mejs.Utility.convertSMPTEtoSeconds(p.eq(j).attr("begin"))}if(!m.start&&p.eq(j-1).attr("end")){m.start=mejs.Utility.convertSMPTEtoSeconds(p.eq(j-1).attr("end"))}if(p.eq(j).attr("end")){m.stop=mejs.Utility.convertSMPTEtoSeconds(p.eq(j).attr("end"))}if(!m.stop&&p.eq(j+1).attr("begin")){m.stop=mejs.Utility.convertSMPTEtoSeconds(p.eq(j+1).attr("begin"))}if(o){b="";for(var e in o){b+=e+":"+o[e]+";"}}if(b){m.style=b}if(m.start==0){m.start=0.2}k.times.push(m);n=a.trim(p.eq(j).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,"<a href='$1' target='_blank'>$1</a>");k.text.push(n);if(k.times.start==0){k.times.start=2}}return k}},split2:function(c,b){return c.split(b)}};if("x\n\ny".split(/\n/gi).length!=3){mejs.TrackFormatParser.split2=function(f,d){var e=[],b="",c;for(c=0;c<f.length;c++){b+=f.substring(c,c+1);if(d.test(b)){e.push(b.replace(d,""));b=""}}e.push(b);return e}}})(mejs.$);(function(a){a.extend(mejs.MepDefaults,{contextMenuItems:[{render:function(b){if(typeof b.enterFullScreen=="undefined"){return null}if(b.isFullScreen){return"Turn off Fullscreen"}else{return"Go Fullscreen"}},click:function(b){if(b.isFullScreen){b.exitFullScreen()}else{b.enterFullScreen()}}},{render:function(b){if(b.media.muted){return"Unmute"}else{return"Mute"}},click:function(b){if(b.media.muted){b.setMuted(false)}else{b.setMuted(true)}}},{isSeparator:true},{render:function(b){return"Download Video"},click:function(b){window.location.href=b.media.currentSrc}}]});a.extend(MediaElementPlayer.prototype,{buildcontextmenu:function(c,b,e,d){c.contextMenu=a('<div class="mejs-contextmenu"></div>').appendTo(a("body")).hide();c.container.bind("contextmenu",function(f){if(c.isContextMenuEnabled){f.preventDefault();c.renderContextMenu(f.clientX-1,f.clientY-1);return false}});c.container.bind("click",function(){c.contextMenu.hide()});c.contextMenu.bind("mouseleave",function(){c.startContextMenuTimer()})},isContextMenuEnabled:true,enableContextMenu:function(){this.isContextMenuEnabled=true},disableContextMenu:function(){this.isContextMenuEnabled=false},contextMenuTimeout:null,startContextMenuTimer:function(){var b=this;b.killContextMenuTimer();b.contextMenuTimer=setTimeout(function(){b.hideContextMenu();b.killContextMenuTimer()},750)},killContextMenuTimer:function(){var b=this.contextMenuTimer;if(b!=null){clearTimeout(b);delete b;b=null}},hideContextMenu:function(){this.contextMenu.hide()},renderContextMenu:function(b,j){var g=this,f="",d=g.options.contextMenuItems;for(var e=0,c=d.length;e<c;e++){if(d[e].isSeparator){f+='<div class="mejs-contextmenu-separator"></div>'}else{var h=d[e].render(g);if(h!=null){f+='<div class="mejs-contextmenu-item" data-itemindex="'+e+'" id="element-'+(Math.random()*1000000)+'">'+h+"</div>"}}}g.contextMenu.empty().append(a(f)).css({top:j,left:b}).show();g.contextMenu.find(".mejs-contextmenu-item").each(function(){var k=a(this),l=parseInt(k.data("itemindex"),10),m=g.options.contextMenuItems[l];if(typeof m.show!="undefined"){m.show(k,g)}k.click(function(){if(typeof m.click!="undefined"){m.click(g)}g.contextMenu.hide()})});setTimeout(function(){g.killControlsTimer("rev3")},100)}})})(mejs.$);(function(a){a.extend(mejs.MepDefaults,{postrollCloseText:mejs.i18n.t("Close")});a.extend(MediaElementPlayer.prototype,{buildpostroll:function(e,c,g,f){var d=this,b=d.container.find('link[rel="postroll"]').attr("href");if(typeof b!=="undefined"){e.postroll=a('<div class="mejs-postroll-layer mejs-layer"><a class="mejs-postroll-close" onclick="$(this).parent().hide();return false;">'+d.options.postrollCloseText+'</a><div class="mejs-postroll-layer-content"></div></div>').prependTo(g).hide();d.media.addEventListener("ended",function(h){a.ajax({dataType:"html",url:b,success:function(j,k){g.find(".mejs-postroll-layer-content").html(j)}});e.postroll.show()},false)}}})})(mejs.$); 
     77 */if(typeof jQuery!="undefined")mejs.$=jQuery;else if(typeof ender!="undefined")mejs.$=ender; 
     78(function(f){mejs.MepDefaults={poster:"",defaultVideoWidth:480,defaultVideoHeight:270,videoWidth:-1,videoHeight:-1,defaultAudioWidth:400,defaultAudioHeight:30,defaultSeekBackwardInterval:function(a){return a.duration*0.05},defaultSeekForwardInterval:function(a){return a.duration*0.05},audioWidth:-1,audioHeight:-1,startVolume:0.8,loop:false,autoRewind:true,enableAutosize:true,alwaysShowHours:false,showTimecodeFrameCount:false,framesPerSecond:25,autosizeProgress:true,alwaysShowControls:false,hideVideoControlsOnLoad:false, 
     79clickToPlayPause:true,iPadUseNativeControls:false,iPhoneUseNativeControls:false,AndroidUseNativeControls:false,features:["playpause","current","progress","duration","tracks","volume","fullscreen"],isVideo:true,enableKeyboard:true,pauseOtherPlayers:true,keyActions:[{keys:[32,179],action:function(a,b){b.paused||b.ended?b.play():b.pause()}},{keys:[38],action:function(a,b){b.setVolume(Math.min(b.volume+0.1,1))}},{keys:[40],action:function(a,b){b.setVolume(Math.max(b.volume-0.1,0))}},{keys:[37,227],action:function(a, 
     80b){if(!isNaN(b.duration)&&b.duration>0){if(a.isVideo){a.showControls();a.startControlsTimer()}var c=Math.max(b.currentTime-a.options.defaultSeekBackwardInterval(b),0);b.setCurrentTime(c)}}},{keys:[39,228],action:function(a,b){if(!isNaN(b.duration)&&b.duration>0){if(a.isVideo){a.showControls();a.startControlsTimer()}var c=Math.min(b.currentTime+a.options.defaultSeekForwardInterval(b),b.duration);b.setCurrentTime(c)}}},{keys:[70],action:function(a){if(typeof a.enterFullScreen!="undefined")a.isFullScreen? 
     81a.exitFullScreen():a.enterFullScreen()}}]};mejs.mepIndex=0;mejs.players={};mejs.MediaElementPlayer=function(a,b){if(!(this instanceof mejs.MediaElementPlayer))return new mejs.MediaElementPlayer(a,b);this.$media=this.$node=f(a);this.node=this.media=this.$media[0];if(typeof this.node.player!="undefined")return this.node.player;else this.node.player=this;if(typeof b=="undefined")b=this.$node.data("mejsoptions");this.options=f.extend({},mejs.MepDefaults,b);this.id="mep_"+mejs.mepIndex++;mejs.players[this.id]= 
     82this;this.init();return this};mejs.MediaElementPlayer.prototype={hasFocus:false,controlsAreVisible:true,init:function(){var a=this,b=mejs.MediaFeatures,c=f.extend(true,{},a.options,{success:function(e,g){a.meReady(e,g)},error:function(e){a.handleError(e)}}),d=a.media.tagName.toLowerCase();a.isDynamic=d!=="audio"&&d!=="video";a.isVideo=a.isDynamic?a.options.isVideo:d!=="audio"&&a.options.isVideo;if(b.isiPad&&a.options.iPadUseNativeControls||b.isiPhone&&a.options.iPhoneUseNativeControls){a.$media.attr("controls", 
     83"controls");if(b.isiPad&&a.media.getAttribute("autoplay")!==null){a.media.load();a.media.play()}}else if(!(b.isAndroid&&a.options.AndroidUseNativeControls)){a.$media.removeAttr("controls");a.container=f('<div id="'+a.id+'" class="mejs-container '+(mejs.MediaFeatures.svg?"svg":"no-svg")+'"><div class="mejs-inner"><div class="mejs-mediaelement"></div><div class="mejs-layers"></div><div class="mejs-controls"></div><div class="mejs-clear"></div></div></div>').addClass(a.$media[0].className).insertBefore(a.$media); 
     84a.container.addClass((b.isAndroid?"mejs-android ":"")+(b.isiOS?"mejs-ios ":"")+(b.isiPad?"mejs-ipad ":"")+(b.isiPhone?"mejs-iphone ":"")+(a.isVideo?"mejs-video ":"mejs-audio "));if(b.isiOS){b=a.$media.clone();a.container.find(".mejs-mediaelement").append(b);a.$media.remove();a.$node=a.$media=b;a.node=a.media=b[0]}else a.container.find(".mejs-mediaelement").append(a.$media);a.controls=a.container.find(".mejs-controls");a.layers=a.container.find(".mejs-layers");b=a.isVideo?"video":"audio";d=b.substring(0, 
     851).toUpperCase()+b.substring(1);a.width=a.options[b+"Width"]>0||a.options[b+"Width"].toString().indexOf("%")>-1?a.options[b+"Width"]:a.media.style.width!==""&&a.media.style.width!==null?a.media.style.width:a.media.getAttribute("width")!==null?a.$media.attr("width"):a.options["default"+d+"Width"];a.height=a.options[b+"Height"]>0||a.options[b+"Height"].toString().indexOf("%")>-1?a.options[b+"Height"]:a.media.style.height!==""&&a.media.style.height!==null?a.media.style.height:a.$media[0].getAttribute("height")!== 
     86null?a.$media.attr("height"):a.options["default"+d+"Height"];a.setPlayerSize(a.width,a.height);c.pluginWidth=a.height;c.pluginHeight=a.width}mejs.MediaElement(a.$media[0],c);a.container.trigger("controlsshown")},showControls:function(a){var b=this;a=typeof a=="undefined"||a;if(!b.controlsAreVisible){if(a){b.controls.css("visibility","visible").stop(true,true).fadeIn(200,function(){b.controlsAreVisible=true;b.container.trigger("controlsshown")});b.container.find(".mejs-control").css("visibility","visible").stop(true, 
     87true).fadeIn(200,function(){b.controlsAreVisible=true})}else{b.controls.css("visibility","visible").css("display","block");b.container.find(".mejs-control").css("visibility","visible").css("display","block");b.controlsAreVisible=true;b.container.trigger("controlsshown")}b.setControlsSize()}},hideControls:function(a){var b=this;a=typeof a=="undefined"||a;if(b.controlsAreVisible)if(a){b.controls.stop(true,true).fadeOut(200,function(){f(this).css("visibility","hidden").css("display","block");b.controlsAreVisible= 
     88false;b.container.trigger("controlshidden")});b.container.find(".mejs-control").stop(true,true).fadeOut(200,function(){f(this).css("visibility","hidden").css("display","block")})}else{b.controls.css("visibility","hidden").css("display","block");b.container.find(".mejs-control").css("visibility","hidden").css("display","block");b.controlsAreVisible=false;b.container.trigger("controlshidden")}},controlsTimer:null,startControlsTimer:function(a){var b=this;a=typeof a!="undefined"?a:1500;b.killControlsTimer("start"); 
     89b.controlsTimer=setTimeout(function(){b.hideControls();b.killControlsTimer("hide")},a)},killControlsTimer:function(){if(this.controlsTimer!==null){clearTimeout(this.controlsTimer);delete this.controlsTimer;this.controlsTimer=null}},controlsEnabled:true,disableControls:function(){this.killControlsTimer();this.hideControls(false);this.controlsEnabled=false},enableControls:function(){this.showControls(false);this.controlsEnabled=true},meReady:function(a,b){var c=this,d=mejs.MediaFeatures,e=b.getAttribute("autoplay"); 
     90e=!(typeof e=="undefined"||e===null||e==="false");var g;if(!c.created){c.created=true;c.media=a;c.domNode=b;if(!(d.isAndroid&&c.options.AndroidUseNativeControls)&&!(d.isiPad&&c.options.iPadUseNativeControls)&&!(d.isiPhone&&c.options.iPhoneUseNativeControls)){c.buildposter(c,c.controls,c.layers,c.media);c.buildkeyboard(c,c.controls,c.layers,c.media);c.buildoverlays(c,c.controls,c.layers,c.media);c.findTracks();for(g in c.options.features){d=c.options.features[g];if(c["build"+d])try{c["build"+d](c, 
     91c.controls,c.layers,c.media)}catch(l){}}c.container.trigger("controlsready");c.setPlayerSize(c.width,c.height);c.setControlsSize();if(c.isVideo){if(mejs.MediaFeatures.hasTouch)c.$media.bind("touchstart",function(){if(c.controlsAreVisible)c.hideControls(false);else c.controlsEnabled&&c.showControls(false)});else{c.media.addEventListener("click",function(){if(c.options.clickToPlayPause)c.media.paused?c.media.play():c.media.pause()});c.container.bind("mouseenter mouseover",function(){if(c.controlsEnabled)if(!c.options.alwaysShowControls){c.killControlsTimer("enter"); 
     92c.showControls();c.startControlsTimer(2500)}}).bind("mousemove",function(){if(c.controlsEnabled){c.controlsAreVisible||c.showControls();c.options.alwaysShowControls||c.startControlsTimer(2500)}}).bind("mouseleave",function(){c.controlsEnabled&&!c.media.paused&&!c.options.alwaysShowControls&&c.startControlsTimer(1E3)})}c.options.hideVideoControlsOnLoad&&c.hideControls(false);e&&!c.options.alwaysShowControls&&c.hideControls();c.options.enableAutosize&&c.media.addEventListener("loadedmetadata",function(j){if(c.options.videoHeight<= 
     930&&c.domNode.getAttribute("height")===null&&!isNaN(j.target.videoHeight)){c.setPlayerSize(j.target.videoWidth,j.target.videoHeight);c.setControlsSize();c.media.setVideoSize(j.target.videoWidth,j.target.videoHeight)}},false)}a.addEventListener("play",function(){for(var j in mejs.players){var k=mejs.players[j];k.id!=c.id&&c.options.pauseOtherPlayers&&!k.paused&&!k.ended&&k.pause();k.hasFocus=false}c.hasFocus=true},false);c.media.addEventListener("ended",function(){if(c.options.autoRewind)try{c.media.setCurrentTime(0)}catch(j){}c.media.pause(); 
     94c.setProgressRail&&c.setProgressRail();c.setCurrentRail&&c.setCurrentRail();if(c.options.loop)c.media.play();else!c.options.alwaysShowControls&&c.controlsEnabled&&c.showControls()},false);c.media.addEventListener("loadedmetadata",function(){c.updateDuration&&c.updateDuration();c.updateCurrent&&c.updateCurrent();if(!c.isFullScreen){c.setPlayerSize(c.width,c.height);c.setControlsSize()}},false);setTimeout(function(){c.setPlayerSize(c.width,c.height);c.setControlsSize()},50);c.globalBind("resize",function(){c.isFullScreen|| 
     95mejs.MediaFeatures.hasTrueNativeFullScreen&&document.webkitIsFullScreen||c.setPlayerSize(c.width,c.height);c.setControlsSize()});c.media.pluginType=="youtube"&&c.container.find(".mejs-overlay-play").hide()}if(e&&a.pluginType=="native"){a.load();a.play()}if(c.options.success)typeof c.options.success=="string"?window[c.options.success](c.media,c.domNode,c):c.options.success(c.media,c.domNode,c)}},handleError:function(a){this.controls.hide();this.options.error&&this.options.error(a)},setPlayerSize:function(a, 
     96b){if(typeof a!="undefined")this.width=a;if(typeof b!="undefined")this.height=b;if(this.height.toString().indexOf("%")>0||this.$node.css("max-width")==="100%"||this.$node[0].currentStyle&&this.$node[0].currentStyle.maxWidth==="100%"){var c=this.isVideo?this.media.videoWidth&&this.media.videoWidth>0?this.media.videoWidth:this.options.defaultVideoWidth:this.options.defaultAudioWidth,d=this.isVideo?this.media.videoHeight&&this.media.videoHeight>0?this.media.videoHeight:this.options.defaultVideoHeight: 
     97this.options.defaultAudioHeight,e=this.container.parent().closest(":visible").width();c=this.isVideo||!this.options.autosizeProgress?parseInt(e*d/c,10):d;if(this.container.parent()[0].tagName.toLowerCase()==="body"){e=f(window).width();c=f(window).height()}if(c!=0&&e!=0){this.container.width(e).height(c);this.$media.add(this.container.find(".mejs-shim")).width("100%").height("100%");this.isVideo&&this.media.setVideoSize&&this.media.setVideoSize(e,c);this.layers.children(".mejs-layer").width("100%").height("100%")}}else{this.container.width(this.width).height(this.height); 
     98this.layers.children(".mejs-layer").width(this.width).height(this.height)}},setControlsSize:function(){var a=0,b=0,c=this.controls.find(".mejs-time-rail"),d=this.controls.find(".mejs-time-total");this.controls.find(".mejs-time-current");this.controls.find(".mejs-time-loaded");var e=c.siblings();if(this.options&&!this.options.autosizeProgress)b=parseInt(c.css("width"));if(b===0||!b){e.each(function(){var g=f(this);if(g.css("position")!="absolute"&&g.is(":visible"))a+=f(this).outerWidth(true)});b=this.controls.width()- 
     99a-(c.outerWidth(true)-c.width())}c.width(b);d.width(b-(d.outerWidth(true)-d.width()));this.setProgressRail&&this.setProgressRail();this.setCurrentRail&&this.setCurrentRail()},buildposter:function(a,b,c,d){var e=f('<div class="mejs-poster mejs-layer"></div>').appendTo(c);b=a.$media.attr("poster");if(a.options.poster!=="")b=a.options.poster;b!==""&&b!=null?this.setPoster(b):e.hide();d.addEventListener("play",function(){e.hide()},false)},setPoster:function(a){var b=this.container.find(".mejs-poster"), 
     100c=b.find("img");if(c.length==0)c=f('<img width="100%" height="100%" />').appendTo(b);c.attr("src",a)},buildoverlays:function(a,b,c,d){var e=this;if(a.isVideo){var g=f('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-loading"><span></span></div></div>').hide().appendTo(c),l=f('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-error"></div></div>').hide().appendTo(c),j=f('<div class="mejs-overlay mejs-layer mejs-overlay-play"><div class="mejs-overlay-button"></div></div>').appendTo(c).click(function(){if(e.options.clickToPlayPause)d.paused? 
     101d.play():d.pause()});d.addEventListener("play",function(){j.hide();g.hide();b.find(".mejs-time-buffering").hide();l.hide()},false);d.addEventListener("playing",function(){j.hide();g.hide();b.find(".mejs-time-buffering").hide();l.hide()},false);d.addEventListener("seeking",function(){g.show();b.find(".mejs-time-buffering").show()},false);d.addEventListener("seeked",function(){g.hide();b.find(".mejs-time-buffering").hide()},false);d.addEventListener("pause",function(){mejs.MediaFeatures.isiPhone||j.show()}, 
     102false);d.addEventListener("waiting",function(){g.show();b.find(".mejs-time-buffering").show()},false);d.addEventListener("loadeddata",function(){g.show();b.find(".mejs-time-buffering").show()},false);d.addEventListener("canplay",function(){g.hide();b.find(".mejs-time-buffering").hide()},false);d.addEventListener("error",function(){g.hide();b.find(".mejs-time-buffering").hide();l.show();l.find("mejs-overlay-error").html("Error loading this resource")},false)}},buildkeyboard:function(a,b,c,d){this.globalBind("keydown", 
     103function(e){if(a.hasFocus&&a.options.enableKeyboard)for(var g=0,l=a.options.keyActions.length;g<l;g++)for(var j=a.options.keyActions[g],k=0,s=j.keys.length;k<s;k++)if(e.keyCode==j.keys[k]){e.preventDefault();j.action(a,d,e.keyCode);return false}return true});this.globalBind("click",function(e){if(f(e.target).closest(".mejs-container").length==0)a.hasFocus=false})},findTracks:function(){var a=this,b=a.$media.find("track");a.tracks=[];b.each(function(c,d){d=f(d);a.tracks.push({srclang:d.attr("srclang")? 
     104d.attr("srclang").toLowerCase():"",src:d.attr("src"),kind:d.attr("kind"),label:d.attr("label")||"",entries:[],isLoaded:false})})},changeSkin:function(a){this.container[0].className="mejs-container "+a;this.setPlayerSize(this.width,this.height);this.setControlsSize()},play:function(){this.media.play()},pause:function(){this.media.pause()},load:function(){this.media.load()},setMuted:function(a){this.media.setMuted(a)},setCurrentTime:function(a){this.media.setCurrentTime(a)},getCurrentTime:function(){return this.media.currentTime}, 
     105setVolume:function(a){this.media.setVolume(a)},getVolume:function(){return this.media.volume},setSrc:function(a){this.media.setSrc(a)},remove:function(){var a,b;for(a in this.options.features){b=this.options.features[a];if(this["clean"+b])try{this["clean"+b](this)}catch(c){}}this.media.pluginType==="native"?this.$media.prop("controls",true):this.media.remove();this.isDynamic||this.$node.insertBefore(this.container);mejs.players.splice(f.inArray(this,mejs.players),1);this.container.remove();this.globalUnbind(); 
     106delete this.node.player;delete mejs.players[this.id]}};(function(){function a(c,d){var e={d:[],w:[]};f.each((c||"").split(" "),function(g,l){e[b.test(l)?"w":"d"].push(l+"."+d)});e.d=e.d.join(" ");e.w=e.w.join(" ");return e}var b=/^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;mejs.MediaElementPlayer.prototype.globalBind=function(c,d,e){c=a(c,this.id);c.d&&f(document).bind(c.d,d,e);c.w&&f(window).bind(c.w,d,e)};mejs.MediaElementPlayer.prototype.globalUnbind= 
     107function(c,d){c=a(c,this.id);c.d&&f(document).unbind(c.d,d);c.w&&f(window).unbind(c.w,d)}})();if(typeof jQuery!="undefined")jQuery.fn.mediaelementplayer=function(a){a===false?this.each(function(){var b=jQuery(this).data("mediaelementplayer");b&&b.remove();jQuery(this).removeData("mediaelementplayer")}):this.each(function(){jQuery(this).data("mediaelementplayer",new mejs.MediaElementPlayer(this,a))});return this};f(document).ready(function(){f(".mejs-player").mediaelementplayer()});window.MediaElementPlayer= 
     108mejs.MediaElementPlayer})(mejs.$); 
     109(function(f){f.extend(mejs.MepDefaults,{playpauseText:"Play/Pause"});f.extend(MediaElementPlayer.prototype,{buildplaypause:function(a,b,c,d){var e=f('<div class="mejs-button mejs-playpause-button mejs-play" ><button type="button" aria-controls="'+this.id+'" title="'+this.options.playpauseText+'"></button></div>').appendTo(b).click(function(g){g.preventDefault();d.paused?d.play():d.pause();return false});d.addEventListener("play",function(){e.removeClass("mejs-play").addClass("mejs-pause")},false); 
     110d.addEventListener("playing",function(){e.removeClass("mejs-play").addClass("mejs-pause")},false);d.addEventListener("pause",function(){e.removeClass("mejs-pause").addClass("mejs-play")},false);d.addEventListener("paused",function(){e.removeClass("mejs-pause").addClass("mejs-play")},false)}})})(mejs.$); 
     111(function(f){f.extend(mejs.MepDefaults,{stopText:"Stop"});f.extend(MediaElementPlayer.prototype,{buildstop:function(a,b,c,d){f('<div class="mejs-button mejs-stop-button mejs-stop"><button type="button" aria-controls="'+this.id+'" title="'+this.options.stopText+'"></button></div>').appendTo(b).click(function(){d.paused||d.pause();if(d.currentTime>0){d.setCurrentTime(0);d.pause();b.find(".mejs-time-current").width("0px");b.find(".mejs-time-handle").css("left","0px");b.find(".mejs-time-float-current").html(mejs.Utility.secondsToTimeCode(0)); 
     112b.find(".mejs-currenttime").html(mejs.Utility.secondsToTimeCode(0));c.find(".mejs-poster").show()}})}})})(mejs.$); 
     113(function(f){f.extend(MediaElementPlayer.prototype,{buildprogress:function(a,b,c,d){f('<div class="mejs-time-rail"><span class="mejs-time-total"><span class="mejs-time-buffering"></span><span class="mejs-time-loaded"></span><span class="mejs-time-current"></span><span class="mejs-time-handle"></span><span class="mejs-time-float"><span class="mejs-time-float-current">00:00</span><span class="mejs-time-float-corner"></span></span></span></div>').appendTo(b);b.find(".mejs-time-buffering").hide();var e= 
     114this,g=b.find(".mejs-time-total");c=b.find(".mejs-time-loaded");var l=b.find(".mejs-time-current"),j=b.find(".mejs-time-handle"),k=b.find(".mejs-time-float"),s=b.find(".mejs-time-float-current"),p=function(n){n=n.pageX;var h=g.offset(),q=g.outerWidth(true),m=0,o=m=0;if(d.duration){if(n<h.left)n=h.left;else if(n>q+h.left)n=q+h.left;o=n-h.left;m=o/q;m=m<=0.02?0:m*d.duration;r&&m!==d.currentTime&&d.setCurrentTime(m);if(!mejs.MediaFeatures.hasTouch){k.css("left",o);s.html(mejs.Utility.secondsToTimeCode(m)); 
     115k.show()}}},r=false;g.bind("mousedown",function(n){if(n.which===1){r=true;p(n);e.globalBind("mousemove.dur",function(h){p(h)});e.globalBind("mouseup.dur",function(){r=false;k.hide();e.globalUnbind(".dur")});return false}}).bind("mouseenter",function(){e.globalBind("mousemove.dur",function(n){p(n)});mejs.MediaFeatures.hasTouch||k.show()}).bind("mouseleave",function(){if(!r){e.globalUnbind(".dur");k.hide()}});d.addEventListener("progress",function(n){a.setProgressRail(n);a.setCurrentRail(n)},false); 
     116d.addEventListener("timeupdate",function(n){a.setProgressRail(n);a.setCurrentRail(n)},false);e.loaded=c;e.total=g;e.current=l;e.handle=j},setProgressRail:function(a){var b=a!=undefined?a.target:this.media,c=null;if(b&&b.buffered&&b.buffered.length>0&&b.buffered.end&&b.duration)c=b.buffered.end(0)/b.duration;else if(b&&b.bytesTotal!=undefined&&b.bytesTotal>0&&b.bufferedBytes!=undefined)c=b.bufferedBytes/b.bytesTotal;else if(a&&a.lengthComputable&&a.total!=0)c=a.loaded/a.total;if(c!==null){c=Math.min(1, 
     117Math.max(0,c));this.loaded&&this.total&&this.loaded.width(this.total.width()*c)}},setCurrentRail:function(){if(this.media.currentTime!=undefined&&this.media.duration)if(this.total&&this.handle){var a=Math.round(this.total.width()*this.media.currentTime/this.media.duration),b=a-Math.round(this.handle.outerWidth(true)/2);this.current.width(a);this.handle.css("left",b)}}})})(mejs.$); 
     118(function(f){f.extend(mejs.MepDefaults,{duration:-1,timeAndDurationSeparator:" <span> | </span> "});f.extend(MediaElementPlayer.prototype,{buildcurrent:function(a,b,c,d){f('<div class="mejs-time"><span class="mejs-currenttime">'+(a.options.alwaysShowHours?"00:":"")+(a.options.showTimecodeFrameCount?"00:00:00":"00:00")+"</span></div>").appendTo(b);this.currenttime=this.controls.find(".mejs-currenttime");d.addEventListener("timeupdate",function(){a.updateCurrent()},false)},buildduration:function(a, 
     119b,c,d){if(b.children().last().find(".mejs-currenttime").length>0)f(this.options.timeAndDurationSeparator+'<span class="mejs-duration">'+(this.options.duration>0?mejs.Utility.secondsToTimeCode(this.options.duration,this.options.alwaysShowHours||this.media.duration>3600,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25):(a.options.alwaysShowHours?"00:":"")+(a.options.showTimecodeFrameCount?"00:00:00":"00:00"))+"</span>").appendTo(b.find(".mejs-time"));else{b.find(".mejs-currenttime").parent().addClass("mejs-currenttime-container"); 
     120f('<div class="mejs-time mejs-duration-container"><span class="mejs-duration">'+(this.options.duration>0?mejs.Utility.secondsToTimeCode(this.options.duration,this.options.alwaysShowHours||this.media.duration>3600,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25):(a.options.alwaysShowHours?"00:":"")+(a.options.showTimecodeFrameCount?"00:00:00":"00:00"))+"</span></div>").appendTo(b)}this.durationD=this.controls.find(".mejs-duration");d.addEventListener("timeupdate",function(){a.updateDuration()}, 
     121false)},updateCurrent:function(){if(this.currenttime)this.currenttime.html(mejs.Utility.secondsToTimeCode(this.media.currentTime,this.options.alwaysShowHours||this.media.duration>3600,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25))},updateDuration:function(){this.container.toggleClass("mejs-long-video",this.media.duration>3600);if(this.durationD&&(this.options.duration>0||this.media.duration))this.durationD.html(mejs.Utility.secondsToTimeCode(this.options.duration>0?this.options.duration: 
     122this.media.duration,this.options.alwaysShowHours,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25))}})})(mejs.$); 
     123(function(f){f.extend(mejs.MepDefaults,{muteText:"Mute Toggle",hideVolumeOnTouchDevices:true,audioVolume:"horizontal",videoVolume:"vertical"});f.extend(MediaElementPlayer.prototype,{buildvolume:function(a,b,c,d){if(!(mejs.MediaFeatures.hasTouch&&this.options.hideVolumeOnTouchDevices)){var e=this,g=e.isVideo?e.options.videoVolume:e.options.audioVolume,l=g=="horizontal"?f('<div class="mejs-button mejs-volume-button mejs-mute"><button type="button" aria-controls="'+e.id+'" title="'+e.options.muteText+ 
     124'"></button></div><div class="mejs-horizontal-volume-slider"><div class="mejs-horizontal-volume-total"></div><div class="mejs-horizontal-volume-current"></div><div class="mejs-horizontal-volume-handle"></div></div>').appendTo(b):f('<div class="mejs-button mejs-volume-button mejs-mute"><button type="button" aria-controls="'+e.id+'" title="'+e.options.muteText+'"></button><div class="mejs-volume-slider"><div class="mejs-volume-total"></div><div class="mejs-volume-current"></div><div class="mejs-volume-handle"></div></div></div>').appendTo(b), 
     125j=e.container.find(".mejs-volume-slider, .mejs-horizontal-volume-slider"),k=e.container.find(".mejs-volume-total, .mejs-horizontal-volume-total"),s=e.container.find(".mejs-volume-current, .mejs-horizontal-volume-current"),p=e.container.find(".mejs-volume-handle, .mejs-horizontal-volume-handle"),r=function(m,o){if(!j.is(":visible")&&typeof o=="undefined"){j.show();r(m,true);j.hide()}else{m=Math.max(0,m);m=Math.min(m,1);m==0?l.removeClass("mejs-mute").addClass("mejs-unmute"):l.removeClass("mejs-unmute").addClass("mejs-mute"); 
     126if(g=="vertical"){var t=k.height(),u=k.position(),v=t-t*m;p.css("top",Math.round(u.top+v-p.height()/2));s.height(t-v);s.css("top",u.top+v)}else{t=k.width();u=k.position();t=t*m;p.css("left",Math.round(u.left+t-p.width()/2));s.width(Math.round(t))}}},n=function(m){var o=null,t=k.offset();if(g=="vertical"){o=k.height();parseInt(k.css("top").replace(/px/,""),10);o=(o-(m.pageY-t.top))/o;if(t.top==0||t.left==0)return}else{o=k.width();o=(m.pageX-t.left)/o}o=Math.max(0,o);o=Math.min(o,1);r(o);o==0?d.setMuted(true): 
     127d.setMuted(false);d.setVolume(o)},h=false,q=false;l.hover(function(){j.show();q=true},function(){q=false;!h&&g=="vertical"&&j.hide()});j.bind("mouseover",function(){q=true}).bind("mousedown",function(m){n(m);e.globalBind("mousemove.vol",function(o){n(o)});e.globalBind("mouseup.vol",function(){h=false;e.globalUnbind(".vol");!q&&g=="vertical"&&j.hide()});h=true;return false});l.find("button").click(function(){d.setMuted(!d.muted)});d.addEventListener("volumechange",function(){if(!h)if(d.muted){r(0); 
     128l.removeClass("mejs-mute").addClass("mejs-unmute")}else{r(d.volume);l.removeClass("mejs-unmute").addClass("mejs-mute")}},false);if(e.container.is(":visible")){r(a.options.startVolume);a.options.startVolume===0&&d.setMuted(true);d.pluginType==="native"&&d.setVolume(a.options.startVolume)}}}})})(mejs.$); 
     129(function(f){f.extend(mejs.MepDefaults,{usePluginFullScreen:true,newWindowCallback:function(){return""},fullscreenText:mejs.i18n.t("Fullscreen")});f.extend(MediaElementPlayer.prototype,{isFullScreen:false,isNativeFullScreen:false,docStyleOverflow:null,isInIframe:false,buildfullscreen:function(a,b,c,d){if(a.isVideo){a.isInIframe=window.location!=window.parent.location;if(mejs.MediaFeatures.hasTrueNativeFullScreen){c=function(){if(mejs.MediaFeatures.isFullScreen()){a.isNativeFullScreen=true;a.setControlsSize()}else{a.isNativeFullScreen= 
     130false;a.exitFullScreen()}};mejs.MediaFeatures.hasMozNativeFullScreen?a.globalBind(mejs.MediaFeatures.fullScreenEventName,c):a.container.bind(mejs.MediaFeatures.fullScreenEventName,c)}var e=this,g=f('<div class="mejs-button mejs-fullscreen-button"><button type="button" aria-controls="'+e.id+'" title="'+e.options.fullscreenText+'"></button></div>').appendTo(b);if(e.media.pluginType==="native"||!e.options.usePluginFullScreen&&!mejs.MediaFeatures.isFirefox)g.click(function(){mejs.MediaFeatures.hasTrueNativeFullScreen&& 
     131mejs.MediaFeatures.isFullScreen()||a.isFullScreen?a.exitFullScreen():a.enterFullScreen()});else{var l=null;if(function(){var h=document.createElement("x"),q=document.documentElement,m=window.getComputedStyle;if(!("pointerEvents"in h.style))return false;h.style.pointerEvents="auto";h.style.pointerEvents="x";q.appendChild(h);m=m&&m(h,"").pointerEvents==="auto";q.removeChild(h);return!!m}()&&!mejs.MediaFeatures.isOpera){var j=false,k=function(){if(j){s.hide();p.hide();r.hide();g.css("pointer-events", 
     132"");e.controls.css("pointer-events","");j=false}},s=f('<div class="mejs-fullscreen-hover" />').appendTo(e.container).mouseover(k),p=f('<div class="mejs-fullscreen-hover"  />').appendTo(e.container).mouseover(k),r=f('<div class="mejs-fullscreen-hover"  />').appendTo(e.container).mouseover(k),n=function(){var h={position:"absolute",top:0,left:0};s.css(h);p.css(h);r.css(h);s.width(e.container.width()).height(e.container.height()-e.controls.height());h=g.offset().left-e.container.offset().left;fullScreenBtnWidth= 
     133g.outerWidth(true);p.width(h).height(e.controls.height()).css({top:e.container.height()-e.controls.height()});r.width(e.container.width()-h-fullScreenBtnWidth).height(e.controls.height()).css({top:e.container.height()-e.controls.height(),left:h+fullScreenBtnWidth})};e.globalBind("resize",function(){n()});g.mouseover(function(){if(!e.isFullScreen){var h=g.offset(),q=a.container.offset();d.positionFullscreenButton(h.left-q.left,h.top-q.top,false);g.css("pointer-events","none");e.controls.css("pointer-events", 
     134"none");s.show();r.show();p.show();n();j=true}});d.addEventListener("fullscreenchange",function(){k()})}else g.mouseover(function(){if(l!==null){clearTimeout(l);delete l}var h=g.offset(),q=a.container.offset();d.positionFullscreenButton(h.left-q.left,h.top-q.top,true)}).mouseout(function(){if(l!==null){clearTimeout(l);delete l}l=setTimeout(function(){d.hideFullscreenButton()},1500)})}a.fullscreenBtn=g;e.globalBind("keydown",function(h){if((mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen()|| 
     135e.isFullScreen)&&h.keyCode==27)a.exitFullScreen()})}},cleanfullscreen:function(a){a.exitFullScreen()},enterFullScreen:function(){var a=this;if(!(a.media.pluginType!=="native"&&(mejs.MediaFeatures.isFirefox||a.options.usePluginFullScreen))){docStyleOverflow=document.documentElement.style.overflow;document.documentElement.style.overflow="hidden";normalHeight=a.container.height();normalWidth=a.container.width();if(a.media.pluginType==="native")if(mejs.MediaFeatures.hasTrueNativeFullScreen){mejs.MediaFeatures.requestFullScreen(a.container[0]); 
     136a.isInIframe&&setTimeout(function c(){if(a.isNativeFullScreen)f(window).width()!==screen.width?a.exitFullScreen():setTimeout(c,500)},500)}else if(mejs.MediaFeatures.hasSemiNativeFullScreen){a.media.webkitEnterFullscreen();return}if(a.isInIframe){var b=a.options.newWindowCallback(this);if(b!=="")if(mejs.MediaFeatures.hasTrueNativeFullScreen)setTimeout(function(){if(!a.isNativeFullScreen){a.pause();window.open(b,a.id,"top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no")}}, 
     137250);else{a.pause();window.open(b,a.id,"top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no");return}}a.container.addClass("mejs-container-fullscreen").width("100%").height("100%");setTimeout(function(){a.container.css({width:"100%",height:"100%"});a.setControlsSize()},500);if(a.pluginType==="native")a.$media.width("100%").height("100%");else{a.container.find(".mejs-shim").width("100%").height("100%");a.media.setVideoSize(f(window).width(), 
     138f(window).height())}a.layers.children("div").width("100%").height("100%");a.fullscreenBtn&&a.fullscreenBtn.removeClass("mejs-fullscreen").addClass("mejs-unfullscreen");a.setControlsSize();a.isFullScreen=true}},exitFullScreen:function(){if(this.media.pluginType!=="native"&&mejs.MediaFeatures.isFirefox)this.media.setFullscreen(false);else{if(mejs.MediaFeatures.hasTrueNativeFullScreen&&(mejs.MediaFeatures.isFullScreen()||this.isFullScreen))mejs.MediaFeatures.cancelFullScreen();document.documentElement.style.overflow= 
     139docStyleOverflow;this.container.removeClass("mejs-container-fullscreen").width(normalWidth).height(normalHeight);if(this.pluginType==="native")this.$media.width(normalWidth).height(normalHeight);else{this.container.find("object embed").width(normalWidth).height(normalHeight);this.media.setVideoSize(normalWidth,normalHeight)}this.layers.children("div").width(normalWidth).height(normalHeight);this.fullscreenBtn.removeClass("mejs-unfullscreen").addClass("mejs-fullscreen");this.setControlsSize();this.isFullScreen= 
     140false}}})})(mejs.$); 
     141(function(f){f.extend(mejs.MepDefaults,{startLanguage:"",tracksText:"Captions/Subtitles",hideCaptionsButtonWhenEmpty:true,toggleCaptionsButtonWhenOnlyOne:false,slidesSelector:""});f.extend(MediaElementPlayer.prototype,{hasChapters:false,buildtracks:function(a,b,c,d){if(a.isVideo)if(a.tracks.length!=0){a.chapters=f('<div class="mejs-chapters mejs-layer"></div>').prependTo(c).hide();a.captions=f('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position mejs-captions-position-hover"><span class="mejs-captions-text"></span></div></div>').prependTo(c).hide();a.captionsText= 
     142a.captions.find(".mejs-captions-text");a.captionsButton=f('<div class="mejs-button mejs-captions-button"><button type="button" aria-controls="'+this.id+'" title="'+this.options.tracksText+'"></button><div class="mejs-captions-selector"><ul><li><input type="radio" name="'+a.id+'_captions" id="'+a.id+'_captions_none" value="none" checked="checked" /><label for="'+a.id+'_captions_none">None</label></li></ul></div></div>').appendTo(b);for(b=c=0;b<a.tracks.length;b++)a.tracks[b].kind=="subtitles"&&c++; 
     143this.options.toggleCaptionsButtonWhenOnlyOne&&c==1?a.captionsButton.on("click",function(){a.setTrack(a.selectedTrack==null?a.tracks[0].srclang:"none")}):a.captionsButton.hover(function(){f(this).find(".mejs-captions-selector").css("visibility","visible")},function(){f(this).find(".mejs-captions-selector").css("visibility","hidden")}).on("click","input[type=radio]",function(){lang=this.value;a.setTrack(lang)});a.options.alwaysShowControls?a.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover"): 
     144a.container.bind("controlsshown",function(){a.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover")}).bind("controlshidden",function(){d.paused||a.container.find(".mejs-captions-position").removeClass("mejs-captions-position-hover")});a.trackToLoad=-1;a.selectedTrack=null;a.isLoadingTrack=false;for(b=0;b<a.tracks.length;b++)a.tracks[b].kind=="subtitles"&&a.addTrackButton(a.tracks[b].srclang,a.tracks[b].label);a.loadNextTrack();d.addEventListener("timeupdate",function(){a.displayCaptions()}, 
     145false);if(a.options.slidesSelector!=""){a.slidesContainer=f(a.options.slidesSelector);d.addEventListener("timeupdate",function(){a.displaySlides()},false)}d.addEventListener("loadedmetadata",function(){a.displayChapters()},false);a.container.hover(function(){if(a.hasChapters){a.chapters.css("visibility","visible");a.chapters.fadeIn(200).height(a.chapters.find(".mejs-chapter").outerHeight())}},function(){a.hasChapters&&!d.paused&&a.chapters.fadeOut(200,function(){f(this).css("visibility","hidden"); 
     146f(this).css("display","block")})});a.node.getAttribute("autoplay")!==null&&a.chapters.css("visibility","hidden")}},setTrack:function(a){var b;if(a=="none"){this.selectedTrack=null;this.captionsButton.removeClass("mejs-captions-enabled")}else for(b=0;b<this.tracks.length;b++)if(this.tracks[b].srclang==a){this.selectedTrack==null&&this.captionsButton.addClass("mejs-captions-enabled");this.selectedTrack=this.tracks[b];this.captions.attr("lang",this.selectedTrack.srclang);this.displayCaptions();break}}, 
     147loadNextTrack:function(){this.trackToLoad++;if(this.trackToLoad<this.tracks.length){this.isLoadingTrack=true;this.loadTrack(this.trackToLoad)}else{this.isLoadingTrack=false;this.checkForTracks()}},loadTrack:function(a){var b=this,c=b.tracks[a];f.ajax({url:c.src,dataType:"text",success:function(d){c.entries=typeof d=="string"&&/<tt\s+xml/ig.exec(d)?mejs.TrackFormatParser.dfxp.parse(d):mejs.TrackFormatParser.webvvt.parse(d);c.isLoaded=true;b.enableTrackButton(c.srclang,c.label);b.loadNextTrack();c.kind== 
     148"chapters"&&b.media.addEventListener("play",function(){b.media.duration>0&&b.displayChapters(c)},false);c.kind=="slides"&&b.setupSlides(c)},error:function(){b.loadNextTrack()}})},enableTrackButton:function(a,b){if(b==="")b=mejs.language.codes[a]||a;this.captionsButton.find("input[value="+a+"]").prop("disabled",false).siblings("label").html(b);this.options.startLanguage==a&&f("#"+this.id+"_captions_"+a).click();this.adjustLanguageBox()},addTrackButton:function(a,b){if(b==="")b=mejs.language.codes[a]|| 
     149a;this.captionsButton.find("ul").append(f('<li><input type="radio" name="'+this.id+'_captions" id="'+this.id+"_captions_"+a+'" value="'+a+'" disabled="disabled" /><label for="'+this.id+"_captions_"+a+'">'+b+" (loading)</label></li>"));this.adjustLanguageBox();this.container.find(".mejs-captions-translations option[value="+a+"]").remove()},adjustLanguageBox:function(){this.captionsButton.find(".mejs-captions-selector").height(this.captionsButton.find(".mejs-captions-selector ul").outerHeight(true)+ 
     150this.captionsButton.find(".mejs-captions-translations").outerHeight(true))},checkForTracks:function(){var a=false;if(this.options.hideCaptionsButtonWhenEmpty){for(i=0;i<this.tracks.length;i++)if(this.tracks[i].kind=="subtitles"){a=true;break}if(!a){this.captionsButton.hide();this.setControlsSize()}}},displayCaptions:function(){if(typeof this.tracks!="undefined"){var a,b=this.selectedTrack;if(b!=null&&b.isLoaded)for(a=0;a<b.entries.times.length;a++)if(this.media.currentTime>=b.entries.times[a].start&& 
     151this.media.currentTime<=b.entries.times[a].stop){this.captionsText.html(b.entries.text[a]);this.captions.show().height(0);return}this.captions.hide()}},setupSlides:function(a){this.slides=a;this.slides.entries.imgs=[this.slides.entries.text.length];this.showSlide(0)},showSlide:function(a){if(!(typeof this.tracks=="undefined"||typeof this.slidesContainer=="undefined")){var b=this,c=b.slides.entries.text[a],d=b.slides.entries.imgs[a];if(typeof d=="undefined"||typeof d.fadeIn=="undefined")b.slides.entries.imgs[a]= 
     152d=f('<img src="'+c+'">').on("load",function(){d.appendTo(b.slidesContainer).hide().fadeIn().siblings(":visible").fadeOut()});else if(!d.is(":visible")&&!d.is(":animated")){console.log("showing existing slide");d.fadeIn().siblings(":visible").fadeOut()}}},displaySlides:function(){if(typeof this.slides!="undefined"){var a=this.slides,b;for(b=0;b<a.entries.times.length;b++)if(this.media.currentTime>=a.entries.times[b].start&&this.media.currentTime<=a.entries.times[b].stop){this.showSlide(b);break}}}, 
     153displayChapters:function(){var a;for(a=0;a<this.tracks.length;a++)if(this.tracks[a].kind=="chapters"&&this.tracks[a].isLoaded){this.drawChapters(this.tracks[a]);this.hasChapters=true;break}},drawChapters:function(a){var b=this,c,d,e=d=0;b.chapters.empty();for(c=0;c<a.entries.times.length;c++){d=a.entries.times[c].stop-a.entries.times[c].start;d=Math.floor(d/b.media.duration*100);if(d+e>100||c==a.entries.times.length-1&&d+e<100)d=100-e;b.chapters.append(f('<div class="mejs-chapter" rel="'+a.entries.times[c].start+ 
     154'" style="left: '+e.toString()+"%;width: "+d.toString()+'%;"><div class="mejs-chapter-block'+(c==a.entries.times.length-1?" mejs-chapter-block-last":"")+'"><span class="ch-title">'+a.entries.text[c]+'</span><span class="ch-time">'+mejs.Utility.secondsToTimeCode(a.entries.times[c].start)+"&ndash;"+mejs.Utility.secondsToTimeCode(a.entries.times[c].stop)+"</span></div></div>"));e+=d}b.chapters.find("div.mejs-chapter").click(function(){b.media.setCurrentTime(parseFloat(f(this).attr("rel")));b.media.paused&& 
     155b.media.play()});b.chapters.show()}});mejs.language={codes:{af:"Afrikaans",sq:"Albanian",ar:"Arabic",be:"Belarusian",bg:"Bulgarian",ca:"Catalan",zh:"Chinese","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",et:"Estonian",tl:"Filipino",fi:"Finnish",fr:"French",gl:"Galician",de:"German",el:"Greek",ht:"Haitian Creole",iw:"Hebrew",hi:"Hindi",hu:"Hungarian",is:"Icelandic",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",ko:"Korean", 
     156lv:"Latvian",lt:"Lithuanian",mk:"Macedonian",ms:"Malay",mt:"Maltese",no:"Norwegian",fa:"Persian",pl:"Polish",pt:"Portuguese",ro:"Romanian",ru:"Russian",sr:"Serbian",sk:"Slovak",sl:"Slovenian",es:"Spanish",sw:"Swahili",sv:"Swedish",tl:"Tagalog",th:"Thai",tr:"Turkish",uk:"Ukrainian",vi:"Vietnamese",cy:"Welsh",yi:"Yiddish"}};mejs.TrackFormatParser={webvvt:{pattern_identifier:/^([a-zA-z]+-)?[0-9]+$/,pattern_timecode:/^([0-9]{2}:[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ([0-9]{2}:[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/, 
     157parse:function(a){var b=0;a=mejs.TrackFormatParser.split2(a,/\r?\n/);for(var c={text:[],times:[]},d,e;b<a.length;b++)if(this.pattern_identifier.exec(a[b])){b++;if((d=this.pattern_timecode.exec(a[b]))&&b<a.length){b++;e=a[b];for(b++;a[b]!==""&&b<a.length;){e=e+"\n"+a[b];b++}e=f.trim(e).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,"<a href='$1' target='_blank'>$1</a>");c.text.push(e);c.times.push({start:mejs.Utility.convertSMPTEtoSeconds(d[1])==0?0.2:mejs.Utility.convertSMPTEtoSeconds(d[1]), 
     158stop:mejs.Utility.convertSMPTEtoSeconds(d[3]),settings:d[5]})}}return c}},dfxp:{parse:function(a){a=f(a).filter("tt");var b=0;b=a.children("div").eq(0);var c=b.find("p");b=a.find("#"+b.attr("style"));var d,e;a={text:[],times:[]};if(b.length){e=b.removeAttr("id").get(0).attributes;if(e.length){d={};for(b=0;b<e.length;b++)d[e[b].name.split(":")[1]]=e[b].value}}for(b=0;b<c.length;b++){var g;e={start:null,stop:null,style:null};if(c.eq(b).attr("begin"))e.start=mejs.Utility.convertSMPTEtoSeconds(c.eq(b).attr("begin")); 
     159if(!e.start&&c.eq(b-1).attr("end"))e.start=mejs.Utility.convertSMPTEtoSeconds(c.eq(b-1).attr("end"));if(c.eq(b).attr("end"))e.stop=mejs.Utility.convertSMPTEtoSeconds(c.eq(b).attr("end"));if(!e.stop&&c.eq(b+1).attr("begin"))e.stop=mejs.Utility.convertSMPTEtoSeconds(c.eq(b+1).attr("begin"));if(d){g="";for(var l in d)g+=l+":"+d[l]+";"}if(g)e.style=g;if(e.start==0)e.start=0.2;a.times.push(e);e=f.trim(c.eq(b).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, 
     160"<a href='$1' target='_blank'>$1</a>");a.text.push(e);if(a.times.start==0)a.times.start=2}return a}},split2:function(a,b){return a.split(b)}};if("x\n\ny".split(/\n/gi).length!=3)mejs.TrackFormatParser.split2=function(a,b){var c=[],d="",e;for(e=0;e<a.length;e++){d+=a.substring(e,e+1);if(b.test(d)){c.push(d.replace(b,""));d=""}}c.push(d);return c}})(mejs.$); 
     161(function(f){f.extend(mejs.MepDefaults,{contextMenuItems:[{render:function(a){if(typeof a.enterFullScreen=="undefined")return null;return a.isFullScreen?"Turn off Fullscreen":"Go Fullscreen"},click:function(a){a.isFullScreen?a.exitFullScreen():a.enterFullScreen()}},{render:function(a){return a.media.muted?"Unmute":"Mute"},click:function(a){a.media.muted?a.setMuted(false):a.setMuted(true)}},{isSeparator:true},{render:function(){return"Download Video"},click:function(a){window.location.href=a.media.currentSrc}}]}); 
     162f.extend(MediaElementPlayer.prototype,{buildcontextmenu:function(a){a.contextMenu=f('<div class="mejs-contextmenu"></div>').appendTo(f("body")).hide();a.container.bind("contextmenu",function(b){if(a.isContextMenuEnabled){b.preventDefault();a.renderContextMenu(b.clientX-1,b.clientY-1);return false}});a.container.bind("click",function(){a.contextMenu.hide()});a.contextMenu.bind("mouseleave",function(){a.startContextMenuTimer()})},cleancontextmenu:function(a){a.contextMenu.remove()},isContextMenuEnabled:true, 
     163enableContextMenu:function(){this.isContextMenuEnabled=true},disableContextMenu:function(){this.isContextMenuEnabled=false},contextMenuTimeout:null,startContextMenuTimer:function(){var a=this;a.killContextMenuTimer();a.contextMenuTimer=setTimeout(function(){a.hideContextMenu();a.killContextMenuTimer()},750)},killContextMenuTimer:function(){var a=this.contextMenuTimer;if(a!=null){clearTimeout(a);delete a}},hideContextMenu:function(){this.contextMenu.hide()},renderContextMenu:function(a,b){for(var c= 
     164this,d="",e=c.options.contextMenuItems,g=0,l=e.length;g<l;g++)if(e[g].isSeparator)d+='<div class="mejs-contextmenu-separator"></div>';else{var j=e[g].render(c);if(j!=null)d+='<div class="mejs-contextmenu-item" data-itemindex="'+g+'" id="element-'+Math.random()*1E6+'">'+j+"</div>"}c.contextMenu.empty().append(f(d)).css({top:b,left:a}).show();c.contextMenu.find(".mejs-contextmenu-item").each(function(){var k=f(this),s=parseInt(k.data("itemindex"),10),p=c.options.contextMenuItems[s];typeof p.show!="undefined"&& 
     165p.show(k,c);k.click(function(){typeof p.click!="undefined"&&p.click(c);c.contextMenu.hide()})});setTimeout(function(){c.killControlsTimer("rev3")},100)}})})(mejs.$); 
     166(function(f){f.extend(mejs.MepDefaults,{postrollCloseText:mejs.i18n.t("Close")});f.extend(MediaElementPlayer.prototype,{buildpostroll:function(a,b,c){var d=this.container.find('link[rel="postroll"]').attr("href");if(typeof d!=="undefined"){a.postroll=f('<div class="mejs-postroll-layer mejs-layer"><a class="mejs-postroll-close" onclick="$(this).parent().hide();return false;">'+this.options.postrollCloseText+'</a><div class="mejs-postroll-layer-content"></div></div>').prependTo(c).hide();this.media.addEventListener("ended", 
     167function(){f.ajax({dataType:"html",url:d,success:function(e){c.find(".mejs-postroll-layer-content").html(e)}});a.postroll.show()},false)}}})})(mejs.$); 
     168 
  • trunk/wp-includes/js/mediaelement/mediaelementplayer.css

    r23729 r23958  
    7777    background: url(bigplay.svg) no-repeat; 
    7878} 
    79 .no-svg .mejs-overlay-button {  
     79.no-svg .mejs-overlay-button { 
    8080    background-image: url(bigplay.png); 
    8181} 
     
    121121    background: rgba(0, 0, 0, 0.7); 
    122122    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(50,50,50,0.7)), to(rgba(0,0,0,0.7))); 
    123     background: -webkit-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));  
     123    background: -webkit-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7)); 
    124124    background: -moz-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7)); 
    125     background: -o-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));  
    126     background: -ms-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));   
    127     background: linear-gradient(rgba(50,50,50,0.7), rgba(0,0,0,0.7));    
     125    background: -o-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7)); 
     126    background: -ms-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7)); 
     127    background: linear-gradient(rgba(50,50,50,0.7), rgba(0,0,0,0.7)); 
    128128    height: 30px; 
    129129    width: 100%; 
     
    160160} 
    161161 
    162 .no-svg .mejs-controls .mejs-button button {  
     162.no-svg .mejs-controls .mejs-button button { 
    163163    background-image: url(controls.png); 
    164164} 
     
    233233    background: rgba(50,50,50,0.8); 
    234234    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(30,30,30,0.8)), to(rgba(60,60,60,0.8))); 
    235     background: -webkit-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));  
     235    background: -webkit-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8)); 
    236236    background: -moz-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8)); 
    237237    background: -o-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8)); 
     
    267267    background: #3caac8; 
    268268    background: rgba(60,170,200,0.8); 
    269     background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(44,124,145,0.8)), to(rgba(78,183,212,0.8)));  
     269    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(44,124,145,0.8)), to(rgba(78,183,212,0.8))); 
    270270    background: -webkit-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8)); 
    271271    background: -moz-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8)); 
     
    281281    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.9)), to(rgba(200,200,200,0.8))); 
    282282    background: -webkit-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8)); 
    283     background: -moz-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));  
     283    background: -moz-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8)); 
    284284    background: -o-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8)); 
    285285    background: -ms-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8)); 
     
    322322    left: 0; 
    323323} 
     324 
    324325.mejs-controls .mejs-time-rail .mejs-time-float-corner { 
    325326    position: absolute; 
     
    335336    top: 15px; 
    336337    left: 13px; 
    337  
    338 } 
    339  
     338} 
     339 
     340.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float { 
     341    width: 48px; 
     342} 
     343 
     344.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-current { 
     345    width: 44px; 
     346} 
     347 
     348.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-corner { 
     349    left: 18px; 
     350} 
    340351 
    341352 
     
    455466    padding: 0; 
    456467    font-size: 1px; 
    457      
     468 
    458469    -webkit-border-radius: 2px; 
    459470    -moz-border-radius: 2px; 
    460     border-radius: 2px;  
     471    border-radius: 2px; 
    461472 
    462473    background: #333; 
    463474    background: rgba(50,50,50,0.8); 
    464475    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(30,30,30,0.8)), to(rgba(60,60,60,0.8))); 
    465     background: -webkit-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));  
     476    background: -webkit-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8)); 
    466477    background: -moz-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8)); 
    467478    background: -o-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8)); 
     
    489500    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.9)), to(rgba(200,200,200,0.8))); 
    490501    background: -webkit-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8)); 
    491     background: -moz-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));  
     502    background: -moz-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8)); 
    492503    background: -o-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8)); 
    493504    background: -ms-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8)); 
     
    589600    background: -o-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7)); 
    590601    background: -ms-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7)); 
    591     background: linear-gradient(rgba(50,50,50,0.7), rgba(0,0,0,0.7));  
    592     filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, startColorstr=#323232,endColorstr=#000000);       
     602    background: linear-gradient(rgba(50,50,50,0.7), rgba(0,0,0,0.7)); 
     603    filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, startColorstr=#323232,endColorstr=#000000); 
    593604    overflow: hidden; 
    594605    border: 0; 
     
    617628    background: -ms-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6)); 
    618629    background: linear-gradient(rgba(102,102,102,0.7), rgba(50,50,50,0.6)); 
    619     filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, startColorstr=#666666,endColorstr=#323232);       
     630    filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, startColorstr=#666666,endColorstr=#323232); 
    620631} 
    621632.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-title { 
     
    738749    font-size: 0; 
    739750    margin: 5px 6px; 
    740     background: #333;    
     751    background: #333; 
    741752} 
    742753 
     
    746757    padding: 4px 6px; 
    747758    cursor: pointer; 
    748     color: #333;     
     759    color: #333; 
    749760} 
    750761.mejs-contextmenu .mejs-contextmenu-item:hover { 
  • trunk/wp-includes/js/mediaelement/mediaelementplayer.min.css

    r23731 r23958  
    1 .mejs-container{position:relative;background:#000;font-family:Helvetica,Arial;text-align:left;vertical-align:top;text-indent:0}.me-plugin{position:absolute}.mejs-embed,.mejs-embed body{width:100%;height:100%;margin:0;padding:0;background:#000;overflow:hidden}.mejs-container-fullscreen{position:fixed;left:0;top:0;right:0;bottom:0;overflow:hidden;z-index:1000}.mejs-container-fullscreen .mejs-mediaelement,.mejs-container-fullscreen video{width:100%;height:100%}.mejs-background{position:absolute;top:0;left:0}.mejs-mediaelement{position:absolute;top:0;left:0;width:100%;height:100%}.mejs-poster{position:absolute;top:0;left:0}.mejs-poster img{border:0;padding:0;border:0;display:block}.mejs-overlay{position:absolute;top:0;left:0}.mejs-overlay-play{cursor:pointer}.mejs-overlay-button{position:absolute;top:50%;left:50%;width:100px;height:100px;margin:-50px 0 0 -50px;background:url(bigplay.svg) no-repeat}.no-svg .mejs-overlay-button{background-image:url(bigplay.png)}.mejs-overlay:hover .mejs-overlay-button{background-position:0 -100px}.mejs-overlay-loading{position:absolute;top:50%;left:50%;width:80px;height:80px;margin:-40px 0 0 -40px;background:#333;background:url(background.png);background:rgba(0,0,0,0.9);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.9)),to(rgba(0,0,0,0.9)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-moz-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-o-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-ms-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:linear-gradient(rgba(50,50,50,0.9),rgba(0,0,0,0.9))}.mejs-overlay-loading span{display:block;width:80px;height:80px;background:transparent url(loading.gif) 50% 50% no-repeat}.mejs-container .mejs-controls{position:absolute;background:0;list-style-type:none;margin:0;padding:0;bottom:0;left:0;background:url(background.png);background:rgba(0,0,0,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.7)),to(rgba(0,0,0,0.7)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-moz-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-o-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-ms-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:linear-gradient(rgba(50,50,50,0.7),rgba(0,0,0,0.7));height:30px;width:100%}.mejs-container .mejs-controls div{list-style-type:none;background-image:none;display:block;float:left;margin:0;padding:0;width:26px;height:26px;font-size:11px;line-height:11px;background:0;font-family:Helvetica,Arial;border:0}.mejs-controls .mejs-button button{cursor:pointer;display:block;font-size:0;line-height:0;text-decoration:none;margin:7px 5px;padding:0;position:absolute;height:16px;width:16px;border:0;background:transparent url(controls.svg) no-repeat}.no-svg .mejs-controls .mejs-button button{background-image:url(controls.png)}.mejs-controls .mejs-button button:focus{outline:solid 1px yellow}.mejs-container .mejs-controls .mejs-time{color:#fff;display:block;height:17px;width:auto;padding:8px 3px 0 3px;overflow:hidden;text-align:center;padding:auto 4px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.mejs-container .mejs-controls .mejs-time span{font-size:11px;color:#fff;line-height:12px;display:block;float:left;margin:1px 2px 0 0;width:auto}.mejs-controls .mejs-play button{background-position:0 0}.mejs-controls .mejs-pause button{background-position:0 -16px}.mejs-controls .mejs-stop button{background-position:-112px 0}.mejs-controls div.mejs-time-rail{width:200px;padding-top:5px}.mejs-controls .mejs-time-rail span{display:block;position:absolute;width:180px;height:10px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;cursor:pointer}.mejs-controls .mejs-time-rail .mejs-time-total{margin:5px;background:#333;background:rgba(50,50,50,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(30,30,30,0.8)),to(rgba(60,60,60,0.8)));background:-webkit-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-moz-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-o-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-ms-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:linear-gradient(rgba(30,30,30,0.8),rgba(60,60,60,0.8))}.mejs-controls .mejs-time-rail .mejs-time-buffering{width:100%;background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:15px 15px;-moz-background-size:15px 15px;-o-background-size:15px 15px;background-size:15px 15px;-webkit-animation:buffering-stripes 2s linear infinite;-moz-animation:buffering-stripes 2s linear infinite;-ms-animation:buffering-stripes 2s linear infinite;-o-animation:buffering-stripes 2s linear infinite;animation:buffering-stripes 2s linear infinite}@-webkit-keyframes buffering-stripes{from{background-position:0 0}to{background-position:30px 0}}@-moz-keyframes buffering-stripes{from{background-position:0 0}to{background-position:30px 0}}@-ms-keyframes buffering-stripes{from{background-position:0 0}to{background-position:30px 0}}@-o-keyframes buffering-stripes{from{background-position:0 0}to{background-position:30px 0}}@keyframes buffering-stripes{from{background-position:0 0}to{background-position:30px 0}}.mejs-controls .mejs-time-rail .mejs-time-loaded{background:#3caac8;background:rgba(60,170,200,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(44,124,145,0.8)),to(rgba(78,183,212,0.8)));background:-webkit-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-moz-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-o-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-ms-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:linear-gradient(rgba(44,124,145,0.8),rgba(78,183,212,0.8));width:0}.mejs-controls .mejs-time-rail .mejs-time-current{width:0;background:#fff;background:rgba(255,255,255,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(255,255,255,0.9)),to(rgba(200,200,200,0.8)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-moz-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-o-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-ms-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:linear-gradient(rgba(255,255,255,0.9),rgba(200,200,200,0.8))}.mejs-controls .mejs-time-rail .mejs-time-handle{display:none;position:absolute;margin:0;width:10px;background:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;cursor:pointer;border:solid 2px #333;top:-2px;text-align:center}.mejs-controls .mejs-time-rail .mejs-time-float{position:absolute;display:none;background:#eee;width:36px;height:17px;border:solid 1px #333;top:-26px;margin-left:-18px;text-align:center;color:#111}.mejs-controls .mejs-time-rail .mejs-time-float-current{margin:2px;width:30px;display:block;text-align:center;left:0}.mejs-controls .mejs-time-rail .mejs-time-float-corner{position:absolute;display:block;width:0;height:0;line-height:0;border:solid 5px #eee;border-color:#eee transparent transparent transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;top:15px;left:13px}.mejs-controls .mejs-fullscreen-button button{background-position:-32px 0}.mejs-controls .mejs-unfullscreen button{background-position:-32px -16px}.mejs-controls .mejs-mute button{background-position:-16px -16px}.mejs-controls .mejs-unmute button{background-position:-16px 0}.mejs-controls .mejs-volume-button{position:relative}.mejs-controls .mejs-volume-button .mejs-volume-slider{display:none;height:115px;width:25px;background:url(background.png);background:rgba(50,50,50,0.7);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;top:-115px;left:0;z-index:1;position:absolute;margin:0}.mejs-controls .mejs-volume-button:hover{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-total{position:absolute;left:11px;top:8px;width:2px;height:100px;background:#ddd;background:rgba(255,255,255,0.5);margin:0}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-current{position:absolute;left:11px;top:8px;width:2px;height:100px;background:#ddd;background:rgba(255,255,255,0.9);margin:0}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-handle{position:absolute;left:4px;top:-3px;width:16px;height:6px;background:#ddd;background:rgba(255,255,255,0.9);cursor:N-resize;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;margin:0}.mejs-controls div.mejs-horizontal-volume-slider{height:26px;width:60px;position:relative}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total{position:absolute;left:0;top:11px;width:50px;height:8px;margin:0;padding:0;font-size:1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#333;background:rgba(50,50,50,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(30,30,30,0.8)),to(rgba(60,60,60,0.8)));background:-webkit-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-moz-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-o-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-ms-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:linear-gradient(rgba(30,30,30,0.8),rgba(60,60,60,0.8))}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current{position:absolute;left:0;top:11px;width:50px;height:8px;margin:0;padding:0;font-size:1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#fff;background:rgba(255,255,255,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(255,255,255,0.9)),to(rgba(200,200,200,0.8)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-moz-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-o-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-ms-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:linear-gradient(rgba(255,255,255,0.9),rgba(200,200,200,0.8))}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle{display:none}.mejs-controls .mejs-captions-button{position:relative}.mejs-controls .mejs-captions-button button{background-position:-48px 0}.mejs-controls .mejs-captions-button .mejs-captions-selector{visibility:hidden;position:absolute;bottom:26px;right:-10px;width:130px;height:100px;background:url(background.png);background:rgba(50,50,50,0.7);border:solid 1px transparent;padding:10px;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mejs-controls .mejs-captions-button .mejs-captions-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li{margin:0 0 6px 0;padding:0;list-style-type:none!important;display:block;color:#fff;overflow:hidden}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li label{width:100px;float:left;padding:4px 0 0 0;line-height:15px;font-family:helvetica,arial;font-size:10px}.mejs-controls .mejs-captions-button .mejs-captions-translations{font-size:10px;margin:0 0 5px 0}.mejs-chapters{position:absolute;top:0;left:0;-xborder-right:solid 1px #fff;width:10000px;z-index:1}.mejs-chapters .mejs-chapter{position:absolute;float:left;background:#222;background:rgba(0,0,0,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.7)),to(rgba(0,0,0,0.7)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-moz-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-o-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-ms-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:linear-gradient(rgba(50,50,50,0.7),rgba(0,0,0,0.7));filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,startColorstr=#323232,endColorstr=#000000);overflow:hidden;border:0}.mejs-chapters .mejs-chapter .mejs-chapter-block{font-size:11px;color:#fff;padding:5px;display:block;border-right:solid 1px #333;border-bottom:solid 1px #333;cursor:pointer}.mejs-chapters .mejs-chapter .mejs-chapter-block-last{border-right:0}.mejs-chapters .mejs-chapter .mejs-chapter-block:hover{background:#666;background:rgba(102,102,102,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(102,102,102,0.7)),to(rgba(50,50,50,0.6)));background:-webkit-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-moz-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-o-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-ms-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:linear-gradient(rgba(102,102,102,0.7),rgba(50,50,50,0.6));filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,startColorstr=#666666,endColorstr=#323232)}.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-title{font-size:12px;font-weight:bold;display:block;white-space:nowrap;text-overflow:ellipsis;margin:0 0 3px 0;line-height:12px}.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-timespan{font-size:12px;line-height:12px;margin:3px 0 4px 0;display:block;white-space:nowrap;text-overflow:ellipsis}.mejs-captions-layer{position:absolute;bottom:0;left:0;text-align:center;line-height:22px;font-size:12px;color:#fff}.mejs-captions-layer a{color:#fff;text-decoration:underline}.mejs-captions-layer[lang=ar]{font-size:20px;font-weight:normal}.mejs-captions-position{position:absolute;width:100%;bottom:15px;left:0}.mejs-captions-position-hover{bottom:45px}.mejs-captions-text{padding:3px 5px;background:url(background.png);background:rgba(20,20,20,0.8)}.mejs-clear{clear:both}.me-cannotplay a{color:#fff;font-weight:bold}.me-cannotplay span{padding:15px;display:block}.mejs-controls .mejs-loop-off button{background-position:-64px -16px}.mejs-controls .mejs-loop-on button{background-position:-64px 0}.mejs-controls .mejs-backlight-off button{background-position:-80px -16px}.mejs-controls .mejs-backlight-on button{background-position:-80px 0}.mejs-controls .mejs-picturecontrols-button{background-position:-96px 0}.mejs-contextmenu{position:absolute;width:150px;padding:10px;border-radius:4px;top:0;left:0;background:#fff;border:solid 1px #999;z-index:1001}.mejs-contextmenu .mejs-contextmenu-separator{height:1px;font-size:0;margin:5px 6px;background:#333}.mejs-contextmenu .mejs-contextmenu-item{font-family:Helvetica,Arial;font-size:12px;padding:4px 6px;cursor:pointer;color:#333}.mejs-contextmenu .mejs-contextmenu-item:hover{background:#2c7c91;color:#fff}.mejs-controls .mejs-sourcechooser-button{position:relative}.mejs-controls .mejs-sourcechooser-button button{background-position:-128px 0}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector{visibility:hidden;position:absolute;bottom:26px;right:-10px;width:130px;height:100px;background:url(background.png);background:rgba(50,50,50,0.7);border:solid 1px transparent;padding:10px;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li{margin:0 0 6px 0;padding:0;list-style-type:none!important;display:block;color:#fff;overflow:hidden}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li label{width:100px;float:left;padding:4px 0 0 0;line-height:15px;font-family:helvetica,arial;font-size:10px}.mejs-postroll-layer{position:absolute;bottom:0;left:0;width:100%;height:100%;background:url(background.png);background:rgba(50,50,50,0.7);z-index:1000;overflow:hidden}.mejs-postroll-layer-content{width:100%;height:100%}.mejs-postroll-close{position:absolute;right:0;top:0;background:url(background.png);background:rgba(50,50,50,0.7);color:#fff;padding:4px;z-index:100;cursor:pointer} 
     1.mejs-container{position:relative;background:#000;font-family:Helvetica,Arial;text-align:left;vertical-align:top;text-indent:0;}.me-plugin{position:absolute;}.mejs-embed,.mejs-embed body{width:100%;height:100%;margin:0;padding:0;background:#000;overflow:hidden;}.mejs-container-fullscreen{position:fixed;left:0;top:0;right:0;bottom:0;overflow:hidden;z-index:1000;}.mejs-container-fullscreen .mejs-mediaelement,.mejs-container-fullscreen video{width:100%;height:100%;}.mejs-background{position:absolute;top:0;left:0;}.mejs-mediaelement{position:absolute;top:0;left:0;width:100%;height:100%;}.mejs-poster{position:absolute;top:0;left:0;}.mejs-poster img{border:0;padding:0;border:0;display:block;}.mejs-overlay{position:absolute;top:0;left:0;}.mejs-overlay-play{cursor:pointer;}.mejs-overlay-button{position:absolute;top:50%;left:50%;width:100px;height:100px;margin:-50px 0 0 -50px;background:url(bigplay.svg) no-repeat;}.no-svg .mejs-overlay-button{background-image:url(bigplay.png);}.mejs-overlay:hover .mejs-overlay-button{background-position:0 -100px;}.mejs-overlay-loading{position:absolute;top:50%;left:50%;width:80px;height:80px;margin:-40px 0 0 -40px;background:#333;background:url(background.png);background:rgba(0,0,0,0.9);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.9)),to(rgba(0,0,0,0.9)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-moz-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-o-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-ms-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:linear-gradient(rgba(50,50,50,0.9),rgba(0,0,0,0.9));}.mejs-overlay-loading span{display:block;width:80px;height:80px;background:transparent url(loading.gif) 50% 50% no-repeat;}.mejs-container .mejs-controls{position:absolute;background:none;list-style-type:none;margin:0;padding:0;bottom:0;left:0;background:url(background.png);background:rgba(0,0,0,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.7)),to(rgba(0,0,0,0.7)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-moz-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-o-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-ms-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:linear-gradient(rgba(50,50,50,0.7),rgba(0,0,0,0.7));height:30px;width:100%;}.mejs-container .mejs-controls div{list-style-type:none;background-image:none;display:block;float:left;margin:0;padding:0;width:26px;height:26px;font-size:11px;line-height:11px;background:0;font-family:Helvetica,Arial;border:0;}.mejs-controls .mejs-button button{cursor:pointer;display:block;font-size:0;line-height:0;text-decoration:none;margin:7px 5px;padding:0;position:absolute;height:16px;width:16px;border:0;background:transparent url(controls.svg) no-repeat;}.no-svg .mejs-controls .mejs-button button{background-image:url(controls.png);}.mejs-controls .mejs-button button:focus{outline:solid 1px yellow;}.mejs-container .mejs-controls .mejs-time{color:#fff;display:block;height:17px;width:auto;padding:8px 3px 0 3px;overflow:hidden;text-align:center;padding:auto 4px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}.mejs-container .mejs-controls .mejs-time span{font-size:11px;color:#fff;line-height:12px;display:block;float:left;margin:1px 2px 0 0;width:auto;}.mejs-controls .mejs-play button{background-position:0 0;}.mejs-controls .mejs-pause button{background-position:0 -16px;}.mejs-controls .mejs-stop button{background-position:-112px 0;}.mejs-controls div.mejs-time-rail{width:200px;padding-top:5px;}.mejs-controls .mejs-time-rail span{display:block;position:absolute;width:180px;height:10px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;cursor:pointer;}.mejs-controls .mejs-time-rail .mejs-time-total{margin:5px;background:#333;background:rgba(50,50,50,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(30,30,30,0.8)),to(rgba(60,60,60,0.8)));background:-webkit-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-moz-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-o-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-ms-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:linear-gradient(rgba(30,30,30,0.8),rgba(60,60,60,0.8));}.mejs-controls .mejs-time-rail .mejs-time-buffering{width:100%;background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:15px 15px;-moz-background-size:15px 15px;-o-background-size:15px 15px;background-size:15px 15px;-webkit-animation:buffering-stripes 2s linear infinite;-moz-animation:buffering-stripes 2s linear infinite;-ms-animation:buffering-stripes 2s linear infinite;-o-animation:buffering-stripes 2s linear infinite;animation:buffering-stripes 2s linear infinite;}@-webkit-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@-moz-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@-ms-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@-o-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}.mejs-controls .mejs-time-rail .mejs-time-loaded{background:#3caac8;background:rgba(60,170,200,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(44,124,145,0.8)),to(rgba(78,183,212,0.8)));background:-webkit-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-moz-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-o-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-ms-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:linear-gradient(rgba(44,124,145,0.8),rgba(78,183,212,0.8));width:0;}.mejs-controls .mejs-time-rail .mejs-time-current{width:0;background:#fff;background:rgba(255,255,255,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(255,255,255,0.9)),to(rgba(200,200,200,0.8)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-moz-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-o-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-ms-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:linear-gradient(rgba(255,255,255,0.9),rgba(200,200,200,0.8));}.mejs-controls .mejs-time-rail .mejs-time-handle{display:none;position:absolute;margin:0;width:10px;background:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;cursor:pointer;border:solid 2px #333;top:-2px;text-align:center;}.mejs-controls .mejs-time-rail .mejs-time-float{position:absolute;display:none;background:#eee;width:36px;height:17px;border:solid 1px #333;top:-26px;margin-left:-18px;text-align:center;color:#111;}.mejs-controls .mejs-time-rail .mejs-time-float-current{margin:2px;width:30px;display:block;text-align:center;left:0;}.mejs-controls .mejs-time-rail .mejs-time-float-corner{position:absolute;display:block;width:0;height:0;line-height:0;border:solid 5px #eee;border-color:#eee transparent transparent transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;top:15px;left:13px;}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float{width:48px;}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-current{width:44px;}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-corner{left:18px;}.mejs-controls .mejs-fullscreen-button button{background-position:-32px 0;}.mejs-controls .mejs-unfullscreen button{background-position:-32px -16px;}.mejs-controls .mejs-mute button{background-position:-16px -16px;}.mejs-controls .mejs-unmute button{background-position:-16px 0;}.mejs-controls .mejs-volume-button{position:relative;}.mejs-controls .mejs-volume-button .mejs-volume-slider{display:none;height:115px;width:25px;background:url(background.png);background:rgba(50,50,50,0.7);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;top:-115px;left:0;z-index:1;position:absolute;margin:0;}.mejs-controls .mejs-volume-button:hover{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-total{position:absolute;left:11px;top:8px;width:2px;height:100px;background:#ddd;background:rgba(255,255,255,0.5);margin:0;}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-current{position:absolute;left:11px;top:8px;width:2px;height:100px;background:#ddd;background:rgba(255,255,255,0.9);margin:0;}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-handle{position:absolute;left:4px;top:-3px;width:16px;height:6px;background:#ddd;background:rgba(255,255,255,0.9);cursor:N-resize;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;margin:0;}.mejs-controls div.mejs-horizontal-volume-slider{height:26px;width:60px;position:relative;}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total{position:absolute;left:0;top:11px;width:50px;height:8px;margin:0;padding:0;font-size:1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#333;background:rgba(50,50,50,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(30,30,30,0.8)),to(rgba(60,60,60,0.8)));background:-webkit-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-moz-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-o-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-ms-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:linear-gradient(rgba(30,30,30,0.8),rgba(60,60,60,0.8));}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current{position:absolute;left:0;top:11px;width:50px;height:8px;margin:0;padding:0;font-size:1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#fff;background:rgba(255,255,255,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(255,255,255,0.9)),to(rgba(200,200,200,0.8)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-moz-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-o-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-ms-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:linear-gradient(rgba(255,255,255,0.9),rgba(200,200,200,0.8));}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle{display:none;}.mejs-controls .mejs-captions-button{position:relative;}.mejs-controls .mejs-captions-button button{background-position:-48px 0;}.mejs-controls .mejs-captions-button .mejs-captions-selector{visibility:hidden;position:absolute;bottom:26px;right:-10px;width:130px;height:100px;background:url(background.png);background:rgba(50,50,50,0.7);border:solid 1px transparent;padding:10px;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li{margin:0 0 6px 0;padding:0;list-style-type:none!important;display:block;color:#fff;overflow:hidden;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li label{width:100px;float:left;padding:4px 0 0 0;line-height:15px;font-family:helvetica,arial;font-size:10px;}.mejs-controls .mejs-captions-button .mejs-captions-translations{font-size:10px;margin:0 0 5px 0;}.mejs-chapters{position:absolute;top:0;left:0;-xborder-right:solid 1px #fff;width:10000px;z-index:1;}.mejs-chapters .mejs-chapter{position:absolute;float:left;background:#222;background:rgba(0,0,0,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.7)),to(rgba(0,0,0,0.7)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-moz-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-o-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-ms-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:linear-gradient(rgba(50,50,50,0.7),rgba(0,0,0,0.7));filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,startColorstr=#323232,endColorstr=#000000);overflow:hidden;border:0;}.mejs-chapters .mejs-chapter .mejs-chapter-block{font-size:11px;color:#fff;padding:5px;display:block;border-right:solid 1px #333;border-bottom:solid 1px #333;cursor:pointer;}.mejs-chapters .mejs-chapter .mejs-chapter-block-last{border-right:none;}.mejs-chapters .mejs-chapter .mejs-chapter-block:hover{background:#666;background:rgba(102,102,102,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(102,102,102,0.7)),to(rgba(50,50,50,0.6)));background:-webkit-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-moz-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-o-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-ms-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:linear-gradient(rgba(102,102,102,0.7),rgba(50,50,50,0.6));filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,startColorstr=#666666,endColorstr=#323232);}.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-title{font-size:12px;font-weight:bold;display:block;white-space:nowrap;text-overflow:ellipsis;margin:0 0 3px 0;line-height:12px;}.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-timespan{font-size:12px;line-height:12px;margin:3px 0 4px 0;display:block;white-space:nowrap;text-overflow:ellipsis;}.mejs-captions-layer{position:absolute;bottom:0;left:0;text-align:center;line-height:22px;font-size:12px;color:#fff;}.mejs-captions-layer a{color:#fff;text-decoration:underline;}.mejs-captions-layer[lang=ar]{font-size:20px;font-weight:normal;}.mejs-captions-position{position:absolute;width:100%;bottom:15px;left:0;}.mejs-captions-position-hover{bottom:45px;}.mejs-captions-text{padding:3px 5px;background:url(background.png);background:rgba(20,20,20,0.8);}.mejs-clear{clear:both;}.me-cannotplay a{color:#fff;font-weight:bold;}.me-cannotplay span{padding:15px;display:block;}.mejs-controls .mejs-loop-off button{background-position:-64px -16px;}.mejs-controls .mejs-loop-on button{background-position:-64px 0;}.mejs-controls .mejs-backlight-off button{background-position:-80px -16px;}.mejs-controls .mejs-backlight-on button{background-position:-80px 0;}.mejs-controls .mejs-picturecontrols-button{background-position:-96px 0;}.mejs-contextmenu{position:absolute;width:150px;padding:10px;border-radius:4px;top:0;left:0;background:#fff;border:solid 1px #999;z-index:1001;}.mejs-contextmenu .mejs-contextmenu-separator{height:1px;font-size:0;margin:5px 6px;background:#333;}.mejs-contextmenu .mejs-contextmenu-item{font-family:Helvetica,Arial;font-size:12px;padding:4px 6px;cursor:pointer;color:#333;}.mejs-contextmenu .mejs-contextmenu-item:hover{background:#2C7C91;color:#fff;}.mejs-controls .mejs-sourcechooser-button{position:relative;}.mejs-controls .mejs-sourcechooser-button button{background-position:-128px 0;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector{visibility:hidden;position:absolute;bottom:26px;right:-10px;width:130px;height:100px;background:url(background.png);background:rgba(50,50,50,0.7);border:solid 1px transparent;padding:10px;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li{margin:0 0 6px 0;padding:0;list-style-type:none!important;display:block;color:#fff;overflow:hidden;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li label{width:100px;float:left;padding:4px 0 0 0;line-height:15px;font-family:helvetica,arial;font-size:10px;}.mejs-postroll-layer{position:absolute;bottom:0;left:0;width:100%;height:100%;background:url(background.png);background:rgba(50,50,50,0.7);z-index:1000;overflow:hidden;}.mejs-postroll-layer-content{width:100%;height:100%;}.mejs-postroll-close{position:absolute;right:0;top:0;background:url(background.png);background:rgba(50,50,50,0.7);color:#fff;padding:4px;z-index:100;cursor:pointer;} 
Note: See TracChangeset for help on using the changeset viewer.