var mejs=mejs||{};mejs.version='2.9.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/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']}]};mejs.Utility={encodeUrl:function(url){return encodeURIComponent(url);},escapeHTML:function(s){return s.toString().split('&').join('&').split('<').join('<').split('"').join('"');},absolutizeUrl:function(url){var el=document.createElement('div');el.innerHTML='x';return el.firstChild.href;},getScriptPath:function(scriptNames){var i=0,j,path='',name='',script,scripts=document.getElementsByTagName('script'),il=scripts.length,jl=scriptNames.length;for(;i-1){path=script.substring(0,script.indexOf(name));break;}} if(path!==''){break;}} return path;},secondsToTimeCode:function(time,forceHours,showFrameCount,fps){if(typeof showFrameCount=='undefined'){showFrameCount=false;}else if(typeof fps=='undefined'){fps=25;} var hours=Math.floor(time/3600)%24,minutes=Math.floor(time/60)%60,seconds=Math.floor(time%60),frames=Math.floor(((time%1)*fps).toFixed(3)),result=((forceHours||hours>0)?(hours<10?'0'+hours:hours)+':':'')+(minutes<10?'0'+minutes:minutes)+':'+(seconds<10?'0'+seconds:seconds)+((showFrameCount)?':'+(frames<10?'0'+frames:frames):'');return result;},timeCodeToSeconds:function(hh_mm_ss_ff,forceHours,showFrameCount,fps){if(typeof showFrameCount=='undefined'){showFrameCount=false;}else if(typeof fps=='undefined'){fps=25;} var tc_array=hh_mm_ss_ff.split(":"),tc_hh=parseInt(tc_array[0],10),tc_mm=parseInt(tc_array[1],10),tc_ss=parseInt(tc_array[2],10),tc_ff=0,tc_in_seconds=0;if(showFrameCount){tc_ff=parseInt(tc_array[3])/fps;} tc_in_seconds=(tc_hh*3600)+(tc_mm*60)+tc_ss+tc_ff;return tc_in_seconds;},removeSwf:function(id){var obj=document.getElementById(id);if(obj&&obj.nodeName=="OBJECT"){if(mejs.MediaFeatures.isIE){obj.style.display="none";(function(){if(obj.readyState==4){mejs.Utility.removeObjectInIE(id);}else{setTimeout(arguments.callee,10);}})();}else{obj.parentNode.removeChild(obj);}}},removeObjectInIE:function(id){var obj=document.getElementById(id);if(obj){for(var i in obj){if(typeof obj[i]=="function"){obj[i]=null;}} obj.parentNode.removeChild(obj);}}};mejs.PluginDetector={hasPluginVersion:function(plugin,v){var pv=this.plugins[plugin];v[1]=v[1]||0;v[2]=v[2]||0;return(pv[0]>v[0]||(pv[0]==v[0]&&pv[1]>v[1])||(pv[0]==v[0]&&pv[1]==v[1]&&pv[2]>=v[2]))?true:false;},nav:window.navigator,ua:window.navigator.userAgent.toLowerCase(),plugins:[],addPlugin:function(p,pluginName,mimeType,activeX,axDetect){this.plugins[p]=this.detectPlugin(pluginName,mimeType,activeX,axDetect);},detectPlugin:function(pluginName,mimeType,activeX,axDetect){var version=[0,0,0],description,i,ax;if(typeof(this.nav.plugins)!='undefined'&&typeof this.nav.plugins[pluginName]=='object'){description=this.nav.plugins[pluginName].description;if(description&&!(typeof this.nav.mimeTypes!='undefined'&&this.nav.mimeTypes[mimeType]&&!this.nav.mimeTypes[mimeType].enabledPlugin)){version=description.replace(pluginName,'').replace(/^\s+/,'').replace(/\sr/gi,'.').split('.');for(i=0;i0){this.removeChild(existingSources[0]);} if(typeof url=='string'){this.src=url;}else{var i,media;for(i=0;i0&&mediaFiles[0].url!==null&&this.getTypeFromFile(mediaFiles[0].url).indexOf('audio')>-1){result.isVideo=false;} if(mejs.MediaFeatures.isBustedAndroid){htmlMediaElement.canPlayType=function(type){return(type.match(/video\/(mp4|m4v)/gi)!==null)?'maybe':'';};} if(supportsMediaTag&&(options.mode==='auto'||options.mode==='native')){if(!isMediaTag){dummy=document.createElement(result.isVideo?'video':'audio');htmlMediaElement.parentNode.insertBefore(dummy,htmlMediaElement);htmlMediaElement.style.display='none';result.htmlMediaElement=htmlMediaElement=dummy;} for(i=0;i0){result.url=mediaFiles[0].url;} return result;},formatType:function(url,type){var ext;if(url&&!type){return this.getTypeFromFile(url);}else{if(type&&~type.indexOf(';')){return type.substr(0,type.indexOf(';'));}else{return type;}}},getTypeFromFile:function(url){var ext=url.substring(url.lastIndexOf('.')+1);return(/(mp4|m4v|ogg|ogv|webm|flv|wmv|mpeg|mov)/gi.test(ext)?'video':'audio')+'/'+ext;},createErrorMessage:function(playback,options,poster){var htmlMediaElement=playback.htmlMediaElement,errorContainer=document.createElement('div');errorContainer.className='me-cannotplay';try{errorContainer.style.width=htmlMediaElement.width+'px';errorContainer.style.height=htmlMediaElement.height+'px';}catch(e){} errorContainer.innerHTML=(poster!=='')?'':'Download File';htmlMediaElement.parentNode.insertBefore(errorContainer,htmlMediaElement);htmlMediaElement.style.display='none';options.error(htmlMediaElement);},createPlugin:function(playback,options,poster,autoplay,preload,controls){var htmlMediaElement=playback.htmlMediaElement,width=1,height=1,pluginid='me_'+playback.method+'_'+(mejs.meIndex++),pluginMediaElement=new mejs.PluginMediaElement(pluginid,playback.method,playback.url),container=document.createElement('div'),specialIEContainer,node,initVars;pluginMediaElement.tagName=htmlMediaElement.tagName for(var i=0;i0)?options.videoWidth:(htmlMediaElement.getAttribute('width')!==null)?htmlMediaElement.getAttribute('width'):options.defaultVideoWidth;height=(options.videoHeight>0)?options.videoHeight:(htmlMediaElement.getAttribute('height')!==null)?htmlMediaElement.getAttribute('height'):options.defaultVideoHeight;width=mejs.Utility.encodeUrl(width);height=mejs.Utility.encodeUrl(height);}else{if(options.enablePluginDebug){width=320;height=240;}} pluginMediaElement.success=options.success;mejs.MediaPluginBridge.registerPluginElement(pluginid,pluginMediaElement,htmlMediaElement);container.className='me-plugin';container.id=pluginid+'_container';if(playback.isVideo){htmlMediaElement.parentNode.insertBefore(container,htmlMediaElement);}else{document.body.insertBefore(container,document.body.childNodes[0]);} initVars=['id='+pluginid,'isvideo='+((playback.isVideo)?"true":"false"),'autoplay='+((autoplay)?"true":"false"),'preload='+preload,'width='+width,'startvolume='+options.startVolume,'timerrate='+options.timerRate,'height='+height];if(playback.url!==null){if(playback.method=='flash'){initVars.push('file='+mejs.Utility.encodeUrl(playback.url));}else{initVars.push('file='+playback.url);}} if(options.enablePluginDebug){initVars.push('debug=true');} if(options.enablePluginSmoothing){initVars.push('smoothing=true');} if(controls){initVars.push('controls=true');} if(options.pluginVars){initVars=initVars.concat(options.pluginVars);} switch(playback.method){case'silverlight':container.innerHTML=''+''+''+''+''+''+''+'';break;case'flash':if(mejs.MediaFeatures.isIE){specialIEContainer=document.createElement('div');container.appendChild(specialIEContainer);specialIEContainer.outerHTML=''+''+''+''+''+''+''+''+'';}else{container.innerHTML='';} break;case'youtube':var videoId=playback.url.substr(playback.url.lastIndexOf('=')+1);youtubeSettings={container:container,containerId:container.id,pluginMediaElement:pluginMediaElement,pluginId:pluginid,videoId:videoId,height:height,width:width};if(mejs.PluginDetector.hasPluginVersion('flash',[10,0,0])){mejs.YouTubeApi.createFlash(youtubeSettings);}else{mejs.YouTubeApi.enqueueIframe(youtubeSettings);} break;case'vimeo':console.log('vimeoid');pluginMediaElement.vimeoid=playback.url.substr(playback.url.lastIndexOf('/')+1);container.innerHTML=''+''+''+''+''+''+'';break;} htmlMediaElement.style.display='none';return pluginMediaElement;},updateNative:function(playback,options,autoplay,preload){var htmlMediaElement=playback.htmlMediaElement,m;for(m in mejs.HtmlMediaElement){htmlMediaElement[m]=mejs.HtmlMediaElement[m];} options.success(htmlMediaElement,htmlMediaElement);return htmlMediaElement;}};mejs.YouTubeApi={isIframeStarted:false,isIframeLoaded:false,loadIframeApi:function(){if(!this.isIframeStarted){var tag=document.createElement('script');tag.src="http://www.youtube.com/player_api";var firstScriptTag=document.getElementsByTagName('script')[0];firstScriptTag.parentNode.insertBefore(tag,firstScriptTag);this.isIframeStarted=true;}},iframeQueue:[],enqueueIframe:function(yt){if(this.isLoaded){this.createIframe(yt);}else{this.loadIframeApi();this.iframeQueue.push(yt);}},createIframe:function(settings){var pluginMediaElement=settings.pluginMediaElement,player=new YT.Player(settings.containerId,{height:settings.height,width:settings.width,videoId:settings.videoId,playerVars:{controls:0},events:{'onReady':function(){settings.pluginMediaElement.pluginApi=player;mejs.MediaPluginBridge.initPlugin(settings.pluginId);setInterval(function(){mejs.YouTubeApi.createEvent(player,pluginMediaElement,'timeupdate');},250);},'onStateChange':function(e){mejs.YouTubeApi.handleStateChange(e.data,player,pluginMediaElement);}}});},createEvent:function(player,pluginMediaElement,eventName){var obj={type:eventName,target:pluginMediaElement};if(player&&player.getDuration){pluginMediaElement.currentTime=obj.currentTime=player.getCurrentTime();pluginMediaElement.duration=obj.duration=player.getDuration();obj.paused=pluginMediaElement.paused;obj.ended=pluginMediaElement.ended;obj.muted=player.isMuted();obj.volume=player.getVolume()/100;obj.bytesTotal=player.getVideoBytesTotal();obj.bufferedBytes=player.getVideoBytesLoaded();var bufferedTime=obj.bufferedBytes/obj.bytesTotal*obj.duration;obj.target.buffered=obj.buffered={start:function(index){return 0;},end:function(index){return bufferedTime;},length:1};} pluginMediaElement.dispatchEvent(obj.type,obj);},iFrameReady:function(){this.isLoaded=true;this.isIframeLoaded=true;while(this.iframeQueue.length>0){var settings=this.iframeQueue.pop();this.createIframe(settings);}},flashPlayers:{},createFlash:function(settings){this.flashPlayers[settings.pluginId]=settings;var specialIEContainer,youtubeUrl='http://www.youtube.com/apiplayer?enablejsapi=1&playerapiid='+settings.pluginId+'&version=3&autoplay=0&controls=0&modestbranding=1&loop=0';if(mejs.MediaFeatures.isIE){specialIEContainer=document.createElement('div');settings.container.appendChild(specialIEContainer);specialIEContainer.outerHTML=''+''+''+''+''+'';}else{settings.container.innerHTML=''+''+''+'';}},flashReady:function(id){var settings=this.flashPlayers[id],player=document.getElementById(id),pluginMediaElement=settings.pluginMediaElement;pluginMediaElement.pluginApi=pluginMediaElement.pluginElement=player;mejs.MediaPluginBridge.initPlugin(id);player.cueVideoById(settings.videoId);var callbackName=settings.containerId+'_callback' window[callbackName]=function(e){mejs.YouTubeApi.handleStateChange(e,player,pluginMediaElement);} player.addEventListener('onStateChange',callbackName);setInterval(function(){mejs.YouTubeApi.createEvent(player,pluginMediaElement,'timeupdate');},250);},handleStateChange:function(youTubeState,player,pluginMediaElement){switch(youTubeState){case-1:pluginMediaElement.paused=true;pluginMediaElement.ended=true;mejs.YouTubeApi.createEvent(player,pluginMediaElement,'loadedmetadata');break;case 0:pluginMediaElement.paused=false;pluginMediaElement.ended=true;mejs.YouTubeApi.createEvent(player,pluginMediaElement,'ended');break;case 1:pluginMediaElement.paused=false;pluginMediaElement.ended=false;mejs.YouTubeApi.createEvent(player,pluginMediaElement,'play');mejs.YouTubeApi.createEvent(player,pluginMediaElement,'playing');break;case 2:pluginMediaElement.paused=true;pluginMediaElement.ended=false;mejs.YouTubeApi.createEvent(player,pluginMediaElement,'pause');break;case 3:mejs.YouTubeApi.createEvent(player,pluginMediaElement,'progress');break;case 5:break;}}} function onYouTubePlayerAPIReady(){mejs.YouTubeApi.iFrameReady();} function onYouTubePlayerReady(id){mejs.YouTubeApi.flashReady(id);} window.mejs=mejs;window.MediaElement=mejs.MediaElement;