aboutsummaryrefslogtreecommitdiffstats
path: root/js/cliplibrejs.developer.min.js
diff options
context:
space:
mode:
authorHeckyel <heckyel@openmailbox.org>2017-03-10 18:27:37 -0500
committerHeckyel <heckyel@openmailbox.org>2017-03-10 18:27:37 -0500
commitbb98b20786c8e3d1d834d2cd30d35cc500a46ab8 (patch)
tree44cfe5b9bf04bd113c136fb9fd9569140493adb0 /js/cliplibrejs.developer.min.js
parent591809d44a736e70c3e35d91904be189214a9373 (diff)
downloadlidra-theme-bb98b20786c8e3d1d834d2cd30d35cc500a46ab8.tar.lz
lidra-theme-bb98b20786c8e3d1d834d2cd30d35cc500a46ab8.tar.xz
lidra-theme-bb98b20786c8e3d1d834d2cd30d35cc500a46ab8.zip
Optimización del código + LibreVideoJS v2.0 + Languages
Diffstat (limited to 'js/cliplibrejs.developer.min.js')
-rw-r--r--js/cliplibrejs.developer.min.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/js/cliplibrejs.developer.min.js b/js/cliplibrejs.developer.min.js
new file mode 100644
index 0000000..bd9055d
--- /dev/null
+++ b/js/cliplibrejs.developer.min.js
@@ -0,0 +1,29 @@
+/*!
+ * @base: https://github.com/videojs/video.js
+ *
+ * @Source: https://notabug.org/Heckyel/LibreVideoJS
+ *
+ * @licstart The following is the entire license notice for the
+ * JavaScript code in this page.
+ *
+ * Copyleft 2017 Jesus Eduardo
+ *
+ * The JavaScript code in this page is free software: you can
+ * redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GNU GPL) as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option)
+ * any later version. The code is distributed WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
+ *
+ * As additional permission under GNU GPL version 3 section 7, you
+ * may distribute non-source (e.g., minimized or compacted) forms of
+ * that code without the copy of the GNU GPL normally required by
+ * section 4, provided you include this license notice and a URL
+ * through which recipients can access the Corresponding Source.
+ *
+ * @licend The above is the entire license notice
+ * for the JavaScript code in this page.
+ *
+ */
+document.createElement("video");document.createElement("audio");document.createElement("track");var librevjs=function(d,b,c){var a;if(typeof d==="string"){if(d.indexOf("#")===0){d=d.slice(1)}if(librevjs.players[d]){return librevjs.players[d]}else{a=librevjs.el(d)}}else{a=d}if(!a||!a.nodeName){throw new TypeError("The element or ID supplied is not valid. (cliplibrejs)")}return a.player||new librevjs.Player(a,b,c)};var cliplibrejs=window.cliplibrejs=librevjs;librevjs.CDN_VERSION="2.0";librevjs.ACCESS_PROTOCOL=("https:"==document.location.protocol?"https://":"http://");librevjs.options={techOrder:["html5","flash"],html5:{},flash:{},width:300,height:150,defaultVolume:0,children:{mediaLoader:{},posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{}},notSupportedMessage:"No compatible source was found for this video."};librevjs.players={};librevjs.CoreObject=librevjs.CoreObject=function(){};librevjs.CoreObject.extend=function(c){var d,a;c=c||{};d=c.init||c.init||this.prototype.init||this.prototype.init||function(){};a=function(){d.apply(this,arguments)};a.prototype=librevjs.obj.create(this.prototype);a.prototype.constructor=a;a.extend=librevjs.CoreObject.extend;a.create=librevjs.CoreObject.create;for(var b in c){if(c.hasOwnProperty(b)){a.prototype[b]=c[b]}}return a};librevjs.CoreObject.create=function(){var a=librevjs.obj.create(this.prototype);this.apply(a,arguments);return a};librevjs.on=function(c,b,a){var d=librevjs.getData(c);if(!d.handlers){d.handlers={}}if(!d.handlers[b]){d.handlers[b]=[]}if(!a.guid){a.guid=librevjs.guid++}d.handlers[b].push(a);if(!d.dispatcher){d.disabled=false;d.dispatcher=function(g){if(d.disabled){return}g=librevjs.fixEvent(g);var f=d.handlers[g.type];if(f){var h=f.slice(0);for(var e=0,j=h.length;e<j;e++){if(g.isImmediatePropagationStopped()){break}else{h[e].call(c,g)}}}}}if(d.handlers[b].length==1){if(document.addEventListener){c.addEventListener(b,d.dispatcher,false)}else{if(document.attachEvent){c.attachEvent("on"+b,d.dispatcher)}}}};librevjs.off=function(e,d,c){if(!librevjs.hasData(e)){return}var f=librevjs.getData(e);if(!f.handlers){return}var g=function(j){f.handlers[j]=[];librevjs.cleanUpEvents(e,j)};if(!d){for(var b in f.handlers){g(b)}return}var a=f.handlers[d];if(!a){return}if(!c){g(d);return}if(c.guid){for(var h=0;h<a.length;h++){if(a[h].guid===c.guid){a.splice(h--,1)}}}librevjs.cleanUpEvents(e,d)};librevjs.cleanUpEvents=function(b,a){var c=librevjs.getData(b);if(c.handlers[a].length===0){delete c.handlers[a];if(b.removeEventListener){b.removeEventListener(a,c.dispatcher,false)}else{if(b.detachEvent){b.detachEvent("on"+a,c.dispatcher)}}}if(librevjs.isEmpty(c.handlers)){delete c.handlers;delete c.dispatcher;delete c.disabled}if(librevjs.isEmpty(c)){librevjs.removeData(b)}};librevjs.fixEvent=function(e){function g(){return true}function d(){return false}if(!e||!e.isPropagationStopped){var b=e||window.event;e={};for(var c in b){if(c!=="layerX"&&c!=="layerY"){e[c]=b[c]}}if(!e.target){e.target=e.srcElement||document}e.relatedTarget=e.fromElement===e.target?e.toElement:e.fromElement;e.preventDefault=function(){if(b.preventDefault){b.preventDefault()}e.returnValue=false;e.isDefaultPrevented=g};e.isDefaultPrevented=d;e.stopPropagation=function(){if(b.stopPropagation){b.stopPropagation()}e.cancelBubble=true;e.isPropagationStopped=g};e.isPropagationStopped=d;e.stopImmediatePropagation=function(){if(b.stopImmediatePropagation){b.stopImmediatePropagation()}e.isImmediatePropagationStopped=g;e.stopPropagation()};e.isImmediatePropagationStopped=d;if(e.clientX!=null){var f=document.documentElement,a=document.body;e.pageX=e.clientX+(f&&f.scrollLeft||a&&a.scrollLeft||0)-(f&&f.clientLeft||a&&a.clientLeft||0);e.pageY=e.clientY+(f&&f.scrollTop||a&&a.scrollTop||0)-(f&&f.clientTop||a&&a.clientTop||0)}e.which=e.charCode||e.keyCode;if(e.button!=null){e.button=(e.button&1?0:(e.button&4?1:(e.button&2?2:0)))}}return e};librevjs.trigger=function(d,c){var a=(librevjs.hasData(d))?librevjs.getData(d):{};var b=d.parentNode||d.ownerDocument;if(typeof c==="string"){c={type:c,target:d}}c=librevjs.fixEvent(c);if(a.dispatcher){a.dispatcher.call(d,c)}if(b&&!c.isPropagationStopped()&&c.bubbles!==false){librevjs.trigger(b,c)}else{if(!b&&!c.isDefaultPrevented()){var e=librevjs.getData(c.target);if(c.target[c.type]){e.disabled=true;if(typeof c.target[c.type]==="function"){c.target[c.type]()}e.disabled=false}}}return !c.isDefaultPrevented()};librevjs.one=function(d,b,a){var c=function(){librevjs.off(d,b,c);a.apply(this,arguments)};c.guid=a.guid=a.guid||librevjs.guid++;librevjs.on(d,b,c)};var hasOwnProp=Object.prototype.hasOwnProperty;librevjs.createEl=function(b,a){var c,d;c=document.createElement(b||"div");for(d in a){if(hasOwnProp.call(a,d)){if(d.indexOf("aria-")!==-1||d=="role"){c.setAttribute(d,a[d])}else{c[d]=a[d]}}}return c};librevjs.capitalize=function(a){return a.charAt(0).toUpperCase()+a.slice(1)};librevjs.obj={};librevjs.obj.create=Object.create||function(b){function a(){}a.prototype=b;return new a()};librevjs.obj.each=function(d,c,b){for(var a in d){if(hasOwnProp.call(d,a)){c.call(b||this,a,d[a])}}};librevjs.obj.merge=function(c,b){if(!b){return c}for(var a in b){if(hasOwnProp.call(b,a)){c[a]=b[a]}}return c};librevjs.obj.deepMerge=function(e,d){var a,c,b;e=librevjs.obj.copy(e);for(a in d){if(hasOwnProp.call(d,a)){c=e[a];b=d[a];if(librevjs.obj.isPlain(c)&&librevjs.obj.isPlain(b)){e[a]=librevjs.obj.deepMerge(c,b)}else{e[a]=d[a]}}}return e};librevjs.obj.copy=function(a){return librevjs.obj.merge({},a)};librevjs.obj.isPlain=function(a){return !!a&&typeof a==="object"&&a.toString()==="[object Object]"&&a.constructor===Object};librevjs.bind=function(c,d,b){if(!d.guid){d.guid=librevjs.guid++}var a=function(){return d.apply(c,arguments)};a.guid=(b)?b+"_"+d.guid:d.guid;return a};librevjs.cache={};librevjs.guid=1;librevjs.expando="vdata"+(new Date()).getTime();librevjs.getData=function(a){var b=a[librevjs.expando];if(!b){b=a[librevjs.expando]=librevjs.guid++;librevjs.cache[b]={}}return librevjs.cache[b]};librevjs.hasData=function(a){var b=a[librevjs.expando];return !(!b||librevjs.isEmpty(librevjs.cache[b]))};librevjs.removeData=function(a){var c=a[librevjs.expando];if(!c){return}delete librevjs.cache[c];try{delete a[librevjs.expando]}catch(b){if(a.removeAttribute){a.removeAttribute(librevjs.expando)}else{a[librevjs.expando]=null}}};librevjs.isEmpty=function(a){for(var b in a){if(a[b]!==null){return false}}return true};librevjs.addClass=function(a,b){if((" "+a.className+" ").indexOf(" "+b+" ")==-1){a.className=a.className===""?b:a.className+" "+b}};librevjs.removeClass=function(c,a){var d,b;if(c.className.indexOf(a)==-1){return}d=c.className.split(" ");for(b=d.length-1;b>=0;b--){if(d[b]===a){d.splice(b,1)}}c.className=d.join(" ")};librevjs.TEST_VID=librevjs.createEl("video");librevjs.USER_AGENT=navigator.userAgent;librevjs.IS_IPHONE=(/iPhone/i).test(librevjs.USER_AGENT);librevjs.IS_IPAD=(/iPad/i).test(librevjs.USER_AGENT);librevjs.IS_IPOD=(/iPod/i).test(librevjs.USER_AGENT);librevjs.IS_IOS=librevjs.IS_IPHONE||librevjs.IS_IPAD||librevjs.IS_IPOD;librevjs.IOS_VERSION=(function(){var a=librevjs.USER_AGENT.match(/OS (\d+)_/i);if(a&&a[1]){return a[1]}})();librevjs.IS_ANDROID=(/Android/i).test(librevjs.USER_AGENT);librevjs.ANDROID_VERSION=(function(){var b=librevjs.USER_AGENT.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i),a,c;if(!b){return null}a=b[1]&&parseFloat(b[1]);c=b[2]&&parseFloat(b[2]);if(a&&c){return parseFloat(b[1]+"."+b[2])}else{if(a){return a}else{return null}}})();librevjs.IS_OLD_ANDROID=librevjs.IS_ANDROID&&(/webkit/i).test(librevjs.USER_AGENT)&&librevjs.ANDROID_VERSION<2.3;librevjs.IS_FIREFOX=(/Firefox/i).test(librevjs.USER_AGENT);librevjs.IS_CHROME=(/Chrome/i).test(librevjs.USER_AGENT);librevjs.TOUCH_ENABLED=("ontouchstart" in window);librevjs.getAttributeValues=function(a){var g,b,d,f,c;g={};b=",autoplay,controls,loop,muted,default,";if(a&&a.attributes&&a.attributes.length>0){d=a.attributes;for(var e=d.length-1;e>=0;e--){f=d[e].name;c=d[e].value;if(typeof a[f]==="boolean"||b.indexOf(","+f+",")!==-1){c=(c!==null)?true:false}g[f]=c}}return g};librevjs.getComputedDimension=function(a,b){var c="";if(document.defaultView&&document.defaultView.getComputedStyle){c=document.defaultView.getComputedStyle(a,"").getPropertyValue(b)}else{if(a.currentStyle){c=a["client"+b.substr(0,1).toUpperCase()+b.substr(1)]+"px"}}return c};librevjs.insertFirst=function(b,a){if(a.firstChild){a.insertBefore(b,a.firstChild)}else{a.appendChild(b)}};librevjs.support={};librevjs.el=function(a){if(a.indexOf("#")===0){a=a.slice(1)}return document.getElementById(a)};librevjs.formatTime=function(g,b){b=b||g;var e=Math.floor(g%60),a=Math.floor(g/60%60),d=Math.floor(g/3600),f=Math.floor(b/60%60),c=Math.floor(b/3600);if(isNaN(g)||g===Infinity){d=a=e="-"}d=(d>0||c>0)?d+":":"";a=(((d||f>=10)&&a<10)?"0"+a:a)+":";e=(e<10)?"0"+e:e;return d+a+e};librevjs.blockTextSelection=function(){document.body.focus();document.onselectstart=function(){return false}};librevjs.unblockTextSelection=function(){document.onselectstart=function(){return true}};librevjs.trim=function(a){return(a+"").replace(/^\s+|\s+$/g,"")};librevjs.round=function(a,b){if(!b){b=0}return Math.round(a*Math.pow(10,b))/Math.pow(10,b)};librevjs.createTimeRange=function(b,a){return{length:1,start:function(){return b},end:function(){return a}}};librevjs.get=function(a,g,d){var b,c;if(typeof XMLHttpRequest==="undefined"){window.XMLHttpRequest=function(){try{return new window.ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(k){}try{return new window.ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(j){}try{return new window.ActiveXObject("Msxml2.XMLHTTP")}catch(h){}throw new Error("This browser does not support XMLHttpRequest.")}}c=new XMLHttpRequest();try{c.open("GET",a)}catch(f){d(f)}b=(a.indexOf("file:")===0||(window.location.href.indexOf("file:")===0&&a.indexOf("http")===-1));c.onreadystatechange=function(){if(c.readyState===4){if(c.status===200||b&&c.status===0){g(c.responseText)}else{if(d){d()}}}};try{c.send()}catch(f){if(d){d(f)}}};librevjs.setLocalStorage=function(b,c){try{var a=window.localStorage||false;if(!a){return}a[b]=c}catch(d){if(d.code==22||d.code==1014){librevjs.log("LocalStorage Full (LibreVideoJS)",d)}else{if(d.code==18){librevjs.log("LocalStorage not allowed (LibreVideoJS)",d)}else{librevjs.log("LocalStorage Error (LibreVideoJS)",d)}}}};librevjs.getAbsoluteURL=function(a){if(!a.match(/^https?:\/\//)){a=librevjs.createEl("div",{innerHTML:'<a href="'+a+'">x</a>'}).firstChild.href}return a};librevjs.log=function(){librevjs.log.history=librevjs.log.history||[];librevjs.log.history.push(arguments);if(window.console){window.console.log(Array.prototype.slice.call(arguments))}};librevjs.findPosition=function(c){var g,b,h,j,e,d,f,a,k;if(c.getBoundingClientRect&&c.parentNode){g=c.getBoundingClientRect()}if(!g){return{left:0,top:0}}b=document.documentElement;h=document.body;j=b.clientLeft||h.clientLeft||0;e=window.pageXOffset||h.scrollLeft;d=g.left+e-j;f=b.clientTop||h.clientTop||0;a=window.pageYOffset||h.scrollTop;k=g.top+a-f;return{left:d,top:k}};librevjs.Component=librevjs.CoreObject.extend({init:function(b,a,c){this.player_=b;this.options_=librevjs.obj.copy(this.options_);a=this.options(a);this.id_=a.id||((a.el&&a.el["id"])?a.el["id"]:b.id()+"_component_"+librevjs.guid++);this.name_=a.name||null;this.el_=a.el||this.createEl();this.children_=[];this.childIndex_={};this.childNameIndex_={};this.initChildren();this.ready(c)}});librevjs.Component.prototype.dispose=function(){this.trigger("dispose");if(this.children_){for(var a=this.children_.length-1;a>=0;a--){if(this.children_[a].dispose){this.children_[a].dispose()}}}this.children_=null;this.childIndex_=null;this.childNameIndex_=null;this.off();if(this.el_.parentNode){this.el_.parentNode.removeChild(this.el_)}librevjs.removeData(this.el_);this.el_=null};librevjs.Component.prototype.player_;librevjs.Component.prototype.player=function(){return this.player_};librevjs.Component.prototype.options_;librevjs.Component.prototype.options=function(a){if(a===undefined){return this.options_}return this.options_=librevjs.obj.deepMerge(this.options_,a)};librevjs.Component.prototype.el_;librevjs.Component.prototype.createEl=function(b,a){return librevjs.createEl(b,a)};librevjs.Component.prototype.el=function(){return this.el_};librevjs.Component.prototype.contentEl_;librevjs.Component.prototype.contentEl=function(){return this.contentEl_||this.el_};librevjs.Component.prototype.id_;librevjs.Component.prototype.id=function(){return this.id_};librevjs.Component.prototype.name_;librevjs.Component.prototype.name=function(){return this.name_};librevjs.Component.prototype.children_;librevjs.Component.prototype.children=function(){return this.children_};librevjs.Component.prototype.childIndex_;librevjs.Component.prototype.getChildById=function(a){return this.childIndex_[a]};librevjs.Component.prototype.childNameIndex_;librevjs.Component.prototype.getChild=function(a){return this.childNameIndex_[a]};librevjs.Component.prototype.addChild=function(f,d){var c,e,a,b;if(typeof f==="string"){a=f;d=d||{};e=d.componentClass||librevjs.capitalize(a);d.name=a;c=new window.cliplibrejs[e](this.player_||this,d)}else{c=f}this.children_.push(c);if(typeof c.id==="function"){this.childIndex_[c.id()]=c}a=a||(c.name&&c.name());if(a){this.childNameIndex_[a]=c}if(typeof c.el==="function"&&c.el()){this.contentEl().appendChild(c.el())}return c};librevjs.Component.prototype.removeChild=function(b){if(typeof b==="string"){b=this.getChild(b)}if(!b||!this.children_){return}var a=false;for(var c=this.children_.length-1;c>=0;c--){if(this.children_[c]===b){a=true;this.children_.splice(c,1);break}}if(!a){return}this.childIndex_[b.id]=null;this.childNameIndex_[b.name]=null;var d=b.el();if(d&&d.parentNode===this.contentEl()){this.contentEl().removeChild(b.el())}};librevjs.Component.prototype.initChildren=function(){var b=this.options_;if(b&&b.children){var a=this;librevjs.obj.each(b.children,function(d,e){if(e===false){return}var c=function(){a[d]=a.addChild(d,e)};if(e.loadEvent){}else{c()}})}};librevjs.Component.prototype.buildCSSClass=function(){return""};librevjs.Component.prototype.on=function(b,a){librevjs.on(this.el_,b,librevjs.bind(this,a));return this};librevjs.Component.prototype.off=function(b,a){librevjs.off(this.el_,b,a);return this};librevjs.Component.prototype.one=function(b,a){librevjs.one(this.el_,b,librevjs.bind(this,a));return this};librevjs.Component.prototype.trigger=function(a,b){librevjs.trigger(this.el_,a,b);return this};librevjs.Component.prototype.isReady_;librevjs.Component.prototype.isReadyOnInitFinish_=true;librevjs.Component.prototype.readyQueue_;librevjs.Component.prototype.ready=function(a){if(a){if(this.isReady_){a.call(this)}else{if(this.readyQueue_===undefined){this.readyQueue_=[]}this.readyQueue_.push(a)}}return this};librevjs.Component.prototype.triggerReady=function(){this.isReady_=true;var c=this.readyQueue_;if(c&&c.length>0){for(var b=0,a=c.length;b<a;b++){c[b].call(this)}this.readyQueue_=[];this.trigger("ready")}};librevjs.Component.prototype.addClass=function(a){librevjs.addClass(this.el_,a);return this};librevjs.Component.prototype.removeClass=function(a){librevjs.removeClass(this.el_,a);return this};librevjs.Component.prototype.show=function(){this.el_.style.display="block";return this};librevjs.Component.prototype.hide=function(){this.el_.style.display="none";return this};librevjs.Component.prototype.lockShowing=function(){this.addClass("librevjs-lock-showing");return this};librevjs.Component.prototype.unlockShowing=function(){this.removeClass("librevjs-lock-showing");return this};librevjs.Component.prototype.disable=function(){this.hide();this.show=function(){}};librevjs.Component.prototype.width=function(a,b){return this.dimension("width",a,b)};librevjs.Component.prototype.height=function(a,b){return this.dimension("height",a,b)};librevjs.Component.prototype.dimensions=function(b,a){return this.width(b,true).height(a)};librevjs.Component.prototype.dimension=function(e,a,d){if(a!==undefined){if((""+a).indexOf("%")!==-1||(""+a).indexOf("px")!==-1){this.el_.style[e]=a}else{if(a==="auto"){this.el_.style[e]=""}else{this.el_.style[e]=a+"px"}}if(!d){this.trigger("resize")}return this}if(!this.el_){return 0}var c=this.el_.style[e];var b=c.indexOf("px");if(b!==-1){return parseInt(c.slice(0,b),10)}else{return parseInt(this.el_["offset"+librevjs.capitalize(e)],10)}};librevjs.Component.prototype.emitTapEvents=function(){var a,b,d,c;a=0;this.on("touchstart",function(e){a=new Date().getTime();d=true});c=function(){d=false};this.on("touchmove",c);this.on("touchleave",c);this.on("touchcancel",c);this.on("touchend",function(){if(d===true){b=new Date().getTime()-a;if(b<250){this.trigger("tap")}}})};librevjs.Button=librevjs.Component.extend({init:function(c,b){librevjs.Component.call(this,c,b);var d=false;this.on("touchstart",function(e){e.preventDefault();d=true});this.on("touchmove",function(){d=false});var a=this;this.on("touchend",function(e){if(d){a.onClick(e)}e.preventDefault()});this.on("click",this.onClick);this.on("focus",this.onFocus);this.on("blur",this.onBlur)}});librevjs.Button.prototype.createEl=function(b,a){a=librevjs.obj.merge({className:this.buildCSSClass(),innerHTML:'<div class="librevjs-control-content"><span class="librevjs-control-text">'+(this.buttonText||"Need Text")+"</span></div>",role:"button","aria-live":"polite",tabIndex:0},a);return librevjs.Component.prototype.createEl.call(this,b,a)};librevjs.Button.prototype.buildCSSClass=function(){return"librevjs-control "+librevjs.Component.prototype.buildCSSClass.call(this)};librevjs.Button.prototype.onClick=function(){};librevjs.Button.prototype.onFocus=function(){librevjs.on(document,"keyup",librevjs.bind(this,this.onKeyPress))};librevjs.Button.prototype.onKeyPress=function(a){if(a.which==32||a.which==13){a.preventDefault();this.onClick()}};librevjs.Button.prototype.onBlur=function(){librevjs.off(document,"keyup",librevjs.bind(this,this.onKeyPress))};librevjs.Slider=librevjs.Component.extend({init:function(b,a){librevjs.Component.call(this,b,a);this.bar=this.getChild(this.options_.barName);this.handle=this.getChild(this.options_.handleName);b.on(this.playerEvent,librevjs.bind(this,this.update));this.on("mousedown",this.onMouseDown);this.on("touchstart",this.onMouseDown);this.on("focus",this.onFocus);this.on("blur",this.onBlur);this.on("click",this.onClick);this.player_.on("controlsvisible",librevjs.bind(this,this.update));b.ready(librevjs.bind(this,this.update));this.boundEvents={}}});librevjs.Slider.prototype.createEl=function(b,a){a=a||{};a.className=a.className+" librevjs-slider";a=librevjs.obj.merge({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},a);return librevjs.Component.prototype.createEl.call(this,b,a)};librevjs.Slider.prototype.onMouseDown=function(a){a.preventDefault();librevjs.blockTextSelection();this.boundEvents.move=librevjs.bind(this,this.onMouseMove);this.boundEvents.end=librevjs.bind(this,this.onMouseUp);librevjs.on(document,"mousemove",this.boundEvents.move);librevjs.on(document,"mouseup",this.boundEvents.end);librevjs.on(document,"touchmove",this.boundEvents.move);librevjs.on(document,"touchend",this.boundEvents.end);this.onMouseMove(a)};librevjs.Slider.prototype.onMouseUp=function(){librevjs.unblockTextSelection();librevjs.off(document,"mousemove",this.boundEvents.move,false);librevjs.off(document,"mouseup",this.boundEvents.end,false);librevjs.off(document,"touchmove",this.boundEvents.move,false);librevjs.off(document,"touchend",this.boundEvents.end,false);this.update()};librevjs.Slider.prototype.update=function(){if(!this.el_){return}var b,a=this.getPercent(),f=this.handle,g=this.bar;if(isNaN(a)){a=0}b=a;if(f){var d=this.el_,e=d.offsetWidth,j=f.el().offsetWidth,k=(j)?j/e:0,c=1-k,h=a*c;b=h+(k/2);f.el().style.left=librevjs.round(h*100,2)+"%"}g.el().style.width=librevjs.round(b*100,2)+"%"};librevjs.Slider.prototype.calculateDistance=function(b){var d,g,m,l,a,j,h,f,e;d=this.el_;g=librevjs.findPosition(d);a=j=d.offsetWidth;h=this.handle;if(this.options_.vertical){l=g.top;if(b.changedTouches){e=b.changedTouches[0].pageY}else{e=b.pageY}if(h){var k=h.el().offsetHeight;l=l+(k/2);j=j-k}return Math.max(0,Math.min(1,((l-e)+j)/j))}else{m=g.left;if(b.changedTouches){f=b.changedTouches[0].pageX}else{f=b.pageX}if(h){var c=h.el().offsetWidth;m=m+(c/2);a=a-c}return Math.max(0,Math.min(1,(f-m)/a))}};librevjs.Slider.prototype.onFocus=function(){librevjs.on(document,"keyup",librevjs.bind(this,this.onKeyPress))};librevjs.Slider.prototype.onKeyPress=function(a){if(a.which==37){a.preventDefault();this.stepBack()}else{if(a.which==39){a.preventDefault();this.stepForward()}}};librevjs.Slider.prototype.onBlur=function(){librevjs.off(document,"keyup",librevjs.bind(this,this.onKeyPress))};librevjs.Slider.prototype.onClick=function(a){a.stopImmediatePropagation();a.preventDefault()};librevjs.SliderHandle=librevjs.Component.extend();librevjs.SliderHandle.prototype.defaultValue=0;librevjs.SliderHandle.prototype.createEl=function(b,a){a=a||{};a.className=a.className+" librevjs-slider-handle";a=librevjs.obj.merge({innerHTML:'<span class="librevjs-control-text">'+this.defaultValue+"</span>"},a);return librevjs.Component.prototype.createEl.call(this,"div",a)};librevjs.Menu=librevjs.Component.extend();librevjs.Menu.prototype.addItem=function(a){this.addChild(a);a.on("click",librevjs.bind(this,function(){this.unlockShowing()}))};librevjs.Menu.prototype.createEl=function(){var b=this.options().contentElType||"ul";this.contentEl_=librevjs.createEl(b,{className:"librevjs-menu-content"});var a=librevjs.Component.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"librevjs-menu"});a.appendChild(this.contentEl_);librevjs.on(a,"click",function(c){c.preventDefault();c.stopImmediatePropagation()});return a};librevjs.MenuItem=librevjs.Button.extend({init:function(b,a){librevjs.Button.call(this,b,a);this.selected(a.selected)}});librevjs.MenuItem.prototype.createEl=function(b,a){return librevjs.Button.prototype.createEl.call(this,"li",librevjs.obj.merge({className:"librevjs-menu-item",innerHTML:this.options_.label},a))};librevjs.MenuItem.prototype.onClick=function(){this.selected(true)};librevjs.MenuItem.prototype.selected=function(a){if(a){this.addClass("librevjs-selected");this.el_.setAttribute("aria-selected",true)}else{this.removeClass("librevjs-selected");this.el_.setAttribute("aria-selected",false)}};librevjs.MenuButton=librevjs.Button.extend({init:function(b,a){librevjs.Button.call(this,b,a);this.menu=this.createMenu();this.addChild(this.menu);if(this.items&&this.items.length===0){this.hide()}this.on("keyup",this.onKeyPress);this.el_.setAttribute("aria-haspopup",true);this.el_.setAttribute("role","button")}});librevjs.MenuButton.prototype.buttonPressed_=false;librevjs.MenuButton.prototype.createMenu=function(){var b=new librevjs.Menu(this.player_);if(this.options().title){b.el().appendChild(librevjs.createEl("li",{className:"librevjs-menu-title",innerHTML:librevjs.capitalize(this.kind_),tabindex:-1}))}this.items=this["createItems"]();if(this.items){for(var a=0;a<this.items.length;a++){b.addItem(this.items[a])}}return b};librevjs.MenuButton.prototype.createItems=function(){};librevjs.MenuButton.prototype.buildCSSClass=function(){return this.className+" librevjs-menu-button "+librevjs.Button.prototype.buildCSSClass.call(this)};librevjs.MenuButton.prototype.onFocus=function(){};librevjs.MenuButton.prototype.onBlur=function(){};librevjs.MenuButton.prototype.onClick=function(){this.one("mouseout",librevjs.bind(this,function(){this.menu.unlockShowing();this.el_.blur()}));if(this.buttonPressed_){this.unpressButton()}else{this.pressButton()}};librevjs.MenuButton.prototype.onKeyPress=function(a){a.preventDefault();if(a.which==32||a.which==13){if(this.buttonPressed_){this.unpressButton()}else{this.pressButton()}}else{if(a.which==27){if(this.buttonPressed_){this.unpressButton()}}}};librevjs.MenuButton.prototype.pressButton=function(){this.buttonPressed_=true;this.menu.lockShowing();this.el_.setAttribute("aria-pressed",true);if(this.items&&this.items.length>0){this.items[0].el().focus()}};librevjs.MenuButton.prototype.unpressButton=function(){this.buttonPressed_=false;this.menu.unlockShowing();this.el_.setAttribute("aria-pressed",false)};librevjs.Player=librevjs.Component.extend({init:function(a,b,c){this.tag=a;b=librevjs.obj.merge(this.getTagSettings(a),b);this.cache_={};this.poster_=b.poster;this.controls_=b.controls;a.controls=false;librevjs.Component.call(this,this,b,c);if(this.controls()){this.addClass("librevjs-controls-enabled")}else{this.addClass("librevjs-controls-disabled")}this.one("play",function(g){var d={type:"firstplay",target:this.el_};var f=librevjs.trigger(this.el_,d);if(!f){g.preventDefault();g.stopPropagation();g.stopImmediatePropagation()}});this.on("ended",this.onEnded);this.on("play",this.onPlay);this.on("firstplay",this.onFirstPlay);this.on("pause",this.onPause);this.on("progress",this.onProgress);this.on("durationchange",this.onDurationChange);this.on("error",this.onError);this.on("fullscreenchange",this.onFullscreenChange);librevjs.players[this.id_]=this;if(b.plugins){librevjs.obj.each(b.plugins,function(d,e){this[d](e)},this)}this.listenForUserActivity()}});librevjs.Player.prototype.options_=librevjs.options;librevjs.Player.prototype.dispose=function(){this.trigger("dispose");this.off("dispose");librevjs.players[this.id_]=null;if(this.tag&&this.tag.player){this.tag.player=null}if(this.el_&&this.el_.player){this.el_.player=null}this.stopTrackingProgress();this.stopTrackingCurrentTime();if(this.tech){this.tech.dispose()}librevjs.Component.prototype.dispose.call(this)};librevjs.Player.prototype.getTagSettings=function(a){var d={sources:[],tracks:[]};librevjs.obj.merge(d,librevjs.getAttributeValues(a));if(a.hasChildNodes()){var f,g,b,e,c;f=a.childNodes;for(e=0,c=f.length;e<c;e++){g=f[e];b=g.nodeName.toLowerCase();if(b==="source"){d.sources.push(librevjs.getAttributeValues(g))}else{if(b==="track"){d.tracks.push(librevjs.getAttributeValues(g))}}}}return d};librevjs.Player.prototype.createEl=function(){var e=this.el_=librevjs.Component.prototype.createEl.call(this,"div");var a=this.tag;a.removeAttribute("width");a.removeAttribute("height");if(a.hasChildNodes()){var b,g,d,f,h,c;b=a.childNodes;g=b.length;c=[];while(g--){f=b[g];h=f.nodeName.toLowerCase();if(h==="track"){c.push(f)}}for(d=0;d<c.length;d++){a.removeChild(c[d])}}a.id=a.id||"librevjs_video_"+librevjs.guid++;e.id=a.id;e.className=a.className;a.id+="_html5_api";a.className="librevjs-tech";a.player=e.player=this;this.addClass("librevjs-paused");this.width(this.options_['width="100%"'],true);this.height(this.options_['height="auto"'],true);if(a.parentNode){a.parentNode.insertBefore(e,a)}librevjs.insertFirst(a,e);return e};librevjs.Player.prototype.loadTech=function(d,b){if(this.tech){this.unloadTech()}else{if(d!=="Html5"&&this.tag){librevjs.Html5.disposeMediaElement(this.tag);this.tag=null}}this.techName=d;this.isReady_=false;var a=function(){this.player_.triggerReady();if(!this.features.progressEvents){this.player_.manualProgressOn()}if(!this.features.timeupdateEvents){this.player_.manualTimeUpdatesOn()}};var c=librevjs.obj.merge({source:b,parentEl:this.el_},this.options_[d.toLowerCase()]);if(b){if(b.src==this.cache_.src&&this.cache_.currentTime>0){c.startTime=this.cache_.currentTime}this.cache_.src=b.src}this.tech=new window.cliplibrejs[d](this,c);this.tech.ready(a)};librevjs.Player.prototype.unloadTech=function(){this.isReady_=false;this.tech.dispose();if(this.manualProgress){this.manualProgressOff()}if(this.manualTimeUpdates){this.manualTimeUpdatesOff()}this.tech=false};librevjs.Player.prototype.manualProgressOn=function(){this.manualProgress=true;this.trackProgress();this.tech.one("progress",function(){this.features.progressEvents=true;this.player_.manualProgressOff()})};librevjs.Player.prototype.manualProgressOff=function(){this.manualProgress=false;this.stopTrackingProgress()};librevjs.Player.prototype.trackProgress=function(){this.progressInterval=setInterval(librevjs.bind(this,function(){if(this.cache_.bufferEnd<this.buffered().end(0)){this.trigger("progress")}else{if(this.bufferedPercent()==1){this.stopTrackingProgress();this.trigger("progress")}}}),500)};librevjs.Player.prototype.stopTrackingProgress=function(){clearInterval(this.progressInterval)};librevjs.Player.prototype.manualTimeUpdatesOn=function(){this.manualTimeUpdates=true;this.on("play",this.trackCurrentTime);this.on("pause",this.stopTrackingCurrentTime);this.tech.one("timeupdate",function(){this.features.timeupdateEvents=true;this.player_.manualTimeUpdatesOff()})};librevjs.Player.prototype.manualTimeUpdatesOff=function(){this.manualTimeUpdates=false;this.stopTrackingCurrentTime();this.off("play",this.trackCurrentTime);this.off("pause",this.stopTrackingCurrentTime)};librevjs.Player.prototype.trackCurrentTime=function(){if(this.currentTimeInterval){this.stopTrackingCurrentTime()}this.currentTimeInterval=setInterval(librevjs.bind(this,function(){this.trigger("timeupdate")}),250)};librevjs.Player.prototype.stopTrackingCurrentTime=function(){clearInterval(this.currentTimeInterval)};librevjs.Player.prototype.onEnded=function(){if(this.options_.loop){this.currentTime(0);this.play()}};librevjs.Player.prototype.onPlay=function(){librevjs.removeClass(this.el_,"librevjs-paused");librevjs.addClass(this.el_,"librevjs-playing")};librevjs.Player.prototype.onFirstPlay=function(){if(this.options_.starttime){this.currentTime(this.options_.starttime)}this.addClass("librevjs-has-started")};librevjs.Player.prototype.onPause=function(){librevjs.removeClass(this.el_,"librevjs-playing");librevjs.addClass(this.el_,"librevjs-paused")};librevjs.Player.prototype.onProgress=function(){if(this.bufferedPercent()==1){this.trigger("loadedalldata")}};librevjs.Player.prototype.onDurationChange=function(){this.duration(this.techGet("duration"))};librevjs.Player.prototype.onError=function(a){librevjs.log("Video Error",a)};librevjs.Player.prototype.onFullscreenChange=function(){if(this.isFullScreen){this.addClass("librevjs-fullscreen")}else{this.removeClass("librevjs-fullscreen")}};librevjs.Player.prototype.cache_;librevjs.Player.prototype.getCache=function(){return this.cache_};librevjs.Player.prototype.techCall=function(c,a){if(this.tech&&!this.tech.isReady_){this.tech.ready(function(){this[c](a)})}else{try{this.tech[c](a)}catch(b){librevjs.log(b);throw b}}};librevjs.Player.prototype.techGet=function(b){if(this.tech&&this.tech.isReady_){try{return this.tech[b]()}catch(a){if(this.tech[b]===undefined){librevjs.log("LibreVideo.js: "+b+" method not defined for "+this.techName+" playback technology.",a)}else{if(a.name=="TypeError"){librevjs.log("LibreVideo.js: "+b+" unavailable on "+this.techName+" playback technology element.",a);this.tech.isReady_=false}else{librevjs.log(a)}}throw a}}return};librevjs.Player.prototype.play=function(){this.techCall("play");return this};librevjs.Player.prototype.pause=function(){this.techCall("pause");return this};librevjs.Player.prototype.paused=function(){return(this.techGet("paused")===false)?false:true};librevjs.Player.prototype.currentTime=function(a){if(a!==undefined){this.cache_.lastSetCurrentTime=a;this.techCall("setCurrentTime",a);if(this.manualTimeUpdates){this.trigger("timeupdate")}return this}return this.cache_.currentTime=(this.techGet("currentTime")||0)};librevjs.Player.prototype.duration=function(a){if(a!==undefined){this.cache_.duration=parseFloat(a);return this}if(this.cache_.duration===undefined){this.onDurationChange()}return this.cache_.duration};librevjs.Player.prototype.remainingTime=function(){return this.duration()-this.currentTime()};librevjs.Player.prototype.buffered=function(){var c=this.techGet("buffered"),d=0,a=c.length-1,b=this.cache_.bufferEnd=this.cache_.bufferEnd||0;if(c&&a>=0&&c.end(a)!==b){b=c.end(a);this.cache_.bufferEnd=b}return librevjs.createTimeRange(d,b)};librevjs.Player.prototype.bufferedPercent=function(){return(this.duration())?this.buffered().end(0)/this.duration():0};librevjs.Player.prototype.volume=function(a){var b;if(a!==undefined){b=Math.max(0,Math.min(1,parseFloat(a)));this.cache_.volume=b;this.techCall("setVolume",b);librevjs.setLocalStorage("volume",b);return this}b=parseFloat(this.techGet("volume"));return(isNaN(b))?1:b};librevjs.Player.prototype.muted=function(a){if(a!==undefined){this.techCall("setMuted",a);return this}return this.techGet("muted")||false};librevjs.Player.prototype.supportsFullScreen=function(){return this.techGet("supportsFullScreen")||false};librevjs.Player.prototype.requestFullScreen=function(){var a=librevjs.support.requestFullScreen;this.isFullScreen=true;if(a){librevjs.on(document,a.eventName,librevjs.bind(this,function(b){this.isFullScreen=document[a.isFullScreen];if(this.isFullScreen===false){librevjs.off(document,a.eventName,arguments.callee)}this.trigger("fullscreenchange")}));this.el_[a.requestFn]()}else{if(this.tech.supportsFullScreen()){this.techCall("enterFullScreen")}else{this.enterFullWindow();this.trigger("fullscreenchange")}}return this};librevjs.Player.prototype.cancelFullScreen=function(){var a=librevjs.support.requestFullScreen;this.isFullScreen=false;if(a){document[a.cancelFn]()}else{if(this.tech.supportsFullScreen()){this.techCall("exitFullScreen")}else{this.exitFullWindow();this.trigger("fullscreenchange")}}return this};librevjs.Player.prototype.enterFullWindow=function(){this.isFullWindow=true;this.docOrigOverflow=document.documentElement.style.overflow;librevjs.on(document,"keydown",librevjs.bind(this,this.fullWindowOnEscKey));document.documentElement.style.overflow="hidden";librevjs.addClass(document.body,"librevjs-full-window");this.trigger("enterFullWindow")};librevjs.Player.prototype.fullWindowOnEscKey=function(a){if(a.keyCode===27){if(this.isFullScreen===true){this.cancelFullScreen()}else{this.exitFullWindow()}}};librevjs.Player.prototype.exitFullWindow=function(){this.isFullWindow=false;librevjs.off(document,"keydown",this.fullWindowOnEscKey);document.documentElement.style.overflow=this.docOrigOverflow;librevjs.removeClass(document.body,"librevjs-full-window");this.trigger("exitFullWindow")};librevjs.Player.prototype.selectSource=function(g){for(var h=0,f=this.options_.techOrder;h<f.length;h++){var l=librevjs.capitalize(f[h]),e=window.cliplibrejs[l];if(e.isSupported()){for(var d=0,c=g;d<c.length;d++){var k=c[d];if(e.canPlaySource(k)){return{source:k,tech:l}}}}}return false};librevjs.Player.prototype.src=function(b){if(b instanceof Array){var a=this.selectSource(b),c;if(a){b=a.source;c=a.tech;if(c==this.techName){this.src(b)}else{this.loadTech(c,b)}}else{this.el_.appendChild(librevjs.createEl("p",{innerHTML:this.options()["notSupportedMessage"]}))}}else{if(b instanceof Object){if(window.cliplibrejs[this.techName]["canPlaySource"](b)){this.src(b.src)}else{this.src([b])}}else{this.cache_.src=b;if(!this.isReady_){this.ready(function(){this.src(b)})}else{this.techCall("src",b);if(this.options_.preload=="auto"){this.load()}if(this.options_.autoplay){this.play()}}}}return this};librevjs.Player.prototype.load=function(){this.techCall("load");return this};librevjs.Player.prototype.currentSrc=function(){return this.techGet("currentSrc")||this.cache_.src||""};librevjs.Player.prototype.preload=function(a){if(a!==undefined){this.techCall("setPreload",a);this.options_.preload=a;return this}return this.techGet("preload")};librevjs.Player.prototype.autoplay=function(a){if(a!==undefined){this.techCall("setAutoplay",a);this.options_.autoplay=a;return this}return this.techGet("autoplay",a)};librevjs.Player.prototype.loop=function(a){if(a!==undefined){this.techCall("setLoop",a);this.options_.loop=a;return this}return this.techGet("loop")};librevjs.Player.prototype.poster_;librevjs.Player.prototype.poster=function(a){if(a!==undefined){this.poster_=a}return this.poster_};librevjs.Player.prototype.controls_;librevjs.Player.prototype.controls=function(a){if(a!==undefined){a=!!a;if(this.controls_!==a){this.controls_=a;if(a){this.removeClass("librevjs-controls-disabled");this.addClass("librevjs-controls-enabled");this.trigger("controlsenabled")}else{this.removeClass("librevjs-controls-enabled");this.addClass("librevjs-controls-disabled");this.trigger("controlsdisabled")}}return this}return this.controls_};librevjs.Player.prototype.usingNativeControls_;librevjs.Player.prototype.usingNativeControls=function(a){if(a!==undefined){a=!!a;if(this.usingNativeControls_!==a){this.usingNativeControls_=a;if(a){this.addClass("librevjs-using-native-controls");this.trigger("usingnativecontrols")}else{this.removeClass("librevjs-using-native-controls");this.trigger("usingcustomcontrols")}}return this}return this.usingNativeControls_};librevjs.Player.prototype.error=function(){return this.techGet("error")};librevjs.Player.prototype.ended=function(){return this.techGet("ended")};librevjs.Player.prototype.seeking=function(){return this.techGet("seeking")};librevjs.Player.prototype.userActivity_=true;librevjs.Player.prototype.reportUserActivity=function(a){this.userActivity_=true};librevjs.Player.prototype.userActive_=true;librevjs.Player.prototype.userActive=function(a){if(a!==undefined){a=!!a;if(a!==this.userActive_){this.userActive_=a;if(a){this.userActivity_=true;this.removeClass("librevjs-user-inactive");this.addClass("librevjs-user-active");this.trigger("useractive")}else{this.userActivity_=false;this.tech.one("mousemove",function(b){b.stopPropagation();b.preventDefault()});this.removeClass("librevjs-user-active");this.addClass("librevjs-user-inactive");this.trigger("userinactive")}}return this}return this.userActive_};librevjs.Player.prototype.listenForUserActivity=function(){var c,e,f,b,a,d;c=this.reportUserActivity;e=function(){c();clearInterval(f);f=setInterval(librevjs.bind(this,c),250)};b=function(g){c();clearInterval(f)};this.on("mousedown",e);this.on("mousemove",c);this.on("mouseup",b);this.on("keydown",c);this.on("keyup",c);this.on("touchstart",e);this.on("touchmove",c);this.on("touchend",b);this.on("touchcancel",b);a=setInterval(librevjs.bind(this,function(){if(this.userActivity_){this.userActivity_=false;this.userActive(true);clearTimeout(d);d=setTimeout(librevjs.bind(this,function(){if(!this.userActivity_){this.userActive(false)}}),2000)}}),250);this.on("dispose",function(){clearInterval(a);clearTimeout(d)})};(function(){var a,b,c;c=document.createElement("div");b={};if(c.cancelFullscreen!==undefined){b.requestFn="requestFullscreen";b.cancelFn="exitFullscreen";b.eventName="fullscreenchange";b.isFullScreen="fullScreen"}else{if(document.mozCancelFullScreen){a="moz";b.isFullScreen=a+"FullScreen"}else{a="webkit";b.isFullScreen=a+"IsFullScreen"}if(c[a+"RequestFullScreen"]){b.requestFn=a+"RequestFullScreen";b.cancelFn=a+"CancelFullScreen"}b.eventName=a+"fullscreenchange"}if(document[b.cancelFn]){librevjs.support.requestFullScreen=b}})();librevjs.ControlBar=librevjs.Component.extend();librevjs.ControlBar.prototype.options_={loadEvent:"play",children:{playToggle:{},currentTimeDisplay:{},timeDivider:{},durationDisplay:{},remainingTimeDisplay:{},progressControl:{},fullscreenToggle:{},volumeControl:{},muteToggle:{}}};librevjs.ControlBar.prototype.createEl=function(){return librevjs.createEl("div",{className:"librevjs-control-bar"})};librevjs.PlayToggle=librevjs.Button.extend({init:function(b,a){librevjs.Button.call(this,b,a);b.on("play",librevjs.bind(this,this.onPlay));b.on("pause",librevjs.bind(this,this.onPause))}});librevjs.PlayToggle.prototype.buttonText="Play";librevjs.PlayToggle.prototype.buildCSSClass=function(){return"librevjs-play-control "+librevjs.Button.prototype.buildCSSClass.call(this)};librevjs.PlayToggle.prototype.onClick=function(){if(this.player_.paused()){this.player_.play()}else{this.player_.pause()}};librevjs.PlayToggle.prototype.onPlay=function(){librevjs.removeClass(this.el_,"librevjs-paused");librevjs.addClass(this.el_,"librevjs-playing");this.el_.children[0].children[0].innerHTML="Pause"};librevjs.PlayToggle.prototype.onPause=function(){librevjs.removeClass(this.el_,"librevjs-playing");librevjs.addClass(this.el_,"librevjs-paused");this.el_.children[0].children[0].innerHTML="Play"};librevjs.CurrentTimeDisplay=librevjs.Component.extend({init:function(b,a){librevjs.Component.call(this,b,a);b.on("timeupdate",librevjs.bind(this,this.updateContent))}});librevjs.CurrentTimeDisplay.prototype.createEl=function(){var a=librevjs.Component.prototype.createEl.call(this,"div",{className:"librevjs-current-time librevjs-time-controls librevjs-control"});this.content=librevjs.createEl("div",{className:"librevjs-current-time-display",innerHTML:'<span class="librevjs-control-text">Current Time </span>0:00',"aria-live":"off"});a.appendChild(librevjs.createEl("div").appendChild(this.content));return a};librevjs.CurrentTimeDisplay.prototype.updateContent=function(){var a=(this.player_.scrubbing)?this.player_.getCache().currentTime:this.player_.currentTime();this.content.innerHTML='<span class="librevjs-control-text">Current Time </span>'+librevjs.formatTime(a,this.player_.duration())};librevjs.DurationDisplay=librevjs.Component.extend({init:function(b,a){librevjs.Component.call(this,b,a);b.on("timeupdate",librevjs.bind(this,this.updateContent))}});librevjs.DurationDisplay.prototype.createEl=function(){var a=librevjs.Component.prototype.createEl.call(this,"div",{className:"librevjs-duration librevjs-time-controls librevjs-control"});this.content=librevjs.createEl("div",{className:"librevjs-duration-display",innerHTML:'<span class="librevjs-control-text">Duration Time </span>0:00',"aria-live":"off"});a.appendChild(librevjs.createEl("div").appendChild(this.content));return a};librevjs.DurationDisplay.prototype.updateContent=function(){var a=this.player_.duration();if(a){this.content.innerHTML='<span class="librevjs-control-text">Duration Time </span>'+librevjs.formatTime(a)}};librevjs.TimeDivider=librevjs.Component.extend({init:function(b,a){librevjs.Component.call(this,b,a)}});librevjs.TimeDivider.prototype.createEl=function(){return librevjs.Component.prototype.createEl.call(this,"div",{className:"librevjs-time-divider",innerHTML:"<div><span>/</span></div>"})};librevjs.RemainingTimeDisplay=librevjs.Component.extend({init:function(b,a){librevjs.Component.call(this,b,a);b.on("timeupdate",librevjs.bind(this,this.updateContent))}});librevjs.RemainingTimeDisplay.prototype.createEl=function(){var a=librevjs.Component.prototype.createEl.call(this,"div",{className:"librevjs-remaining-time librevjs-time-controls librevjs-control"});this.content=librevjs.createEl("div",{className:"librevjs-remaining-time-display",innerHTML:'<span class="librevjs-control-text">Remaining Time </span>-0:00',"aria-live":"off"});a.appendChild(librevjs.createEl("div").appendChild(this.content));return a};librevjs.RemainingTimeDisplay.prototype.updateContent=function(){if(this.player_.duration()){this.content.innerHTML='<span class="librevjs-control-text">Remaining Time </span>-'+librevjs.formatTime(this.player_.remainingTime())}};librevjs.FullscreenToggle=librevjs.Button.extend({init:function(b,a){librevjs.Button.call(this,b,a)}});librevjs.FullscreenToggle.prototype.buttonText="Fullscreen";librevjs.FullscreenToggle.prototype.buildCSSClass=function(){return"librevjs-fullscreen-control "+librevjs.Button.prototype.buildCSSClass.call(this)};librevjs.FullscreenToggle.prototype.onClick=function(){if(!this.player_.isFullScreen){this.player_.requestFullScreen();this.el_.children[0].children[0].innerHTML="Non-Fullscreen"}else{this.player_.cancelFullScreen();this.el_.children[0].children[0].innerHTML="Fullscreen"}};librevjs.ProgressControl=librevjs.Component.extend({init:function(b,a){librevjs.Component.call(this,b,a)}});librevjs.ProgressControl.prototype.options_={children:{seekBar:{}}};librevjs.ProgressControl.prototype.createEl=function(){return librevjs.Component.prototype.createEl.call(this,"div",{className:"librevjs-progress-control librevjs-control"})};librevjs.SeekBar=librevjs.Slider.extend({init:function(b,a){librevjs.Slider.call(this,b,a);b.on("timeupdate",librevjs.bind(this,this.updateARIAAttributes));b.ready(librevjs.bind(this,this.updateARIAAttributes))}});librevjs.SeekBar.prototype.options_={children:{loadProgressBar:{},playProgressBar:{},seekHandle:{}},barName:"playProgressBar",handleName:"seekHandle"};librevjs.SeekBar.prototype.playerEvent="timeupdate";librevjs.SeekBar.prototype.createEl=function(){return librevjs.Slider.prototype.createEl.call(this,"div",{className:"librevjs-progress-holder","aria-label":"video progress bar"})};librevjs.SeekBar.prototype.updateARIAAttributes=function(){var a=(this.player_.scrubbing)?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",librevjs.round(this.getPercent()*100,2));this.el_.setAttribute("aria-valuetext",librevjs.formatTime(a,this.player_.duration()))};librevjs.SeekBar.prototype.getPercent=function(){var b;if(this.player_.techName==="Flash"&&this.player_.seeking()){var a=this.player_.getCache();if(a.lastSetCurrentTime){b=a.lastSetCurrentTime}else{b=this.player_.currentTime()}}else{b=this.player_.currentTime()}return b/this.player_.duration()};librevjs.SeekBar.prototype.onMouseDown=function(a){librevjs.Slider.prototype.onMouseDown.call(this,a);this.player_.scrubbing=true;this.videoWasPlaying=!this.player_.paused();this.player_.pause()};librevjs.SeekBar.prototype.onMouseMove=function(b){var a=this.calculateDistance(b)*this.player_.duration();if(a==this.player_.duration()){a=a-0.1}this.player_.currentTime(a)};librevjs.SeekBar.prototype.onMouseUp=function(a){librevjs.Slider.prototype.onMouseUp.call(this,a);this.player_.scrubbing=false;if(this.videoWasPlaying){this.player_.play()}};librevjs.SeekBar.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)};librevjs.SeekBar.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)};librevjs.LoadProgressBar=librevjs.Component.extend({init:function(b,a){librevjs.Component.call(this,b,a);b.on("progress",librevjs.bind(this,this.update))}});librevjs.LoadProgressBar.prototype.createEl=function(){return librevjs.Component.prototype.createEl.call(this,"div",{className:"librevjs-load-progress",innerHTML:'<span class="librevjs-control-text">Loaded: 0%</span>'})};librevjs.LoadProgressBar.prototype.update=function(){if(this.el_.style){this.el_.style.width=librevjs.round(this.player_.bufferedPercent()*100,2)+"%"}};librevjs.PlayProgressBar=librevjs.Component.extend({init:function(b,a){librevjs.Component.call(this,b,a)}});librevjs.PlayProgressBar.prototype.createEl=function(){return librevjs.Component.prototype.createEl.call(this,"div",{className:"librevjs-play-progress",innerHTML:'<span class="librevjs-control-text">Progress: 0%</span>'})};librevjs.SeekHandle=librevjs.SliderHandle.extend();librevjs.SeekHandle.prototype.defaultValue="00:00";librevjs.SeekHandle.prototype.createEl=function(){return librevjs.SliderHandle.prototype.createEl.call(this,"div",{className:"librevjs-seek-handle"})};librevjs.VolumeControl=librevjs.Component.extend({init:function(b,a){librevjs.Component.call(this,b,a);if(b.tech&&b.tech.features&&b.tech.features.volumeControl===false){this.addClass("librevjs-hidden")}b.on("loadstart",librevjs.bind(this,function(){if(b.tech.features&&b.tech.features.volumeControl===false){this.addClass("librevjs-hidden")}else{this.removeClass("librevjs-hidden")}}))}});librevjs.VolumeControl.prototype.options_={children:{volumeBar:{}}};librevjs.VolumeControl.prototype.createEl=function(){return librevjs.Component.prototype.createEl.call(this,"div",{className:"librevjs-volume-control librevjs-control"})};librevjs.VolumeBar=librevjs.Slider.extend({init:function(b,a){librevjs.Slider.call(this,b,a);b.on("volumechange",librevjs.bind(this,this.updateARIAAttributes));b.ready(librevjs.bind(this,this.updateARIAAttributes));setTimeout(librevjs.bind(this,this.update),0)}});librevjs.VolumeBar.prototype.updateARIAAttributes=function(){this.el_.setAttribute("aria-valuenow",librevjs.round(this.player_.volume()*100,2));this.el_.setAttribute("aria-valuetext",librevjs.round(this.player_.volume()*100,2)+"%")};librevjs.VolumeBar.prototype.options_={children:{volumeLevel:{},volumeHandle:{}},barName:"volumeLevel",handleName:"volumeHandle"};librevjs.VolumeBar.prototype.playerEvent="volumechange";librevjs.VolumeBar.prototype.createEl=function(){return librevjs.Slider.prototype.createEl.call(this,"div",{className:"librevjs-volume-bar","aria-label":"volume level"})};librevjs.VolumeBar.prototype.onMouseMove=function(a){this.player_.volume(this.calculateDistance(a))};librevjs.VolumeBar.prototype.getPercent=function(){if(this.player_.muted()){return 0}else{return this.player_.volume()}};librevjs.VolumeBar.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+0.1)};librevjs.VolumeBar.prototype.stepBack=function(){this.player_.volume(this.player_.volume()-0.1)};librevjs.VolumeLevel=librevjs.Component.extend({init:function(b,a){librevjs.Component.call(this,b,a)}});librevjs.VolumeLevel.prototype.createEl=function(){return librevjs.Component.prototype.createEl.call(this,"div",{className:"librevjs-volume-level",innerHTML:'<span class="librevjs-control-text"></span>'})};librevjs.VolumeHandle=librevjs.SliderHandle.extend();librevjs.VolumeHandle.prototype.defaultValue="00:00";librevjs.VolumeHandle.prototype.createEl=function(){return librevjs.SliderHandle.prototype.createEl.call(this,"div",{className:"librevjs-volume-handle"})};librevjs.MuteToggle=librevjs.Button.extend({init:function(b,a){librevjs.Button.call(this,b,a);b.on("volumechange",librevjs.bind(this,this.update));if(b.tech&&b.tech.features&&b.tech.features.volumeControl===false){this.addClass("librevjs-hidden")}b.on("loadstart",librevjs.bind(this,function(){if(b.tech.features&&b.tech.features.volumeControl===false){this.addClass("librevjs-hidden")}else{this.removeClass("librevjs-hidden")}}))}});librevjs.MuteToggle.prototype.createEl=function(){return librevjs.Button.prototype.createEl.call(this,"div",{className:"librevjs-mute-control librevjs-control",innerHTML:'<div><span class="librevjs-control-text">Mute</span></div>'})};librevjs.MuteToggle.prototype.onClick=function(){this.player_.muted(this.player_.muted()?false:true)};librevjs.MuteToggle.prototype.update=function(){var b=this.player_.volume(),c=3;if(b===0||this.player_.muted()){c=0}else{if(b<0.33){c=1}else{if(b<0.67){c=2}}}if(this.player_.muted()){if(this.el_.children[0].children[0].innerHTML!="Unmute"){this.el_.children[0].children[0].innerHTML="Unmute"}}else{if(this.el_.children[0].children[0].innerHTML!="Mute"){this.el_.children[0].children[0].innerHTML="Mute"}}for(var a=0;a<4;a++){librevjs.removeClass(this.el_,"librevjs-vol-"+a)}librevjs.addClass(this.el_,"librevjs-vol-"+c)};librevjs.VolumeMenuButton=librevjs.MenuButton.extend({init:function(b,a){librevjs.MenuButton.call(this,b,a);b.on("volumechange",librevjs.bind(this,this.update));if(b.tech&&b.tech.features&&b.tech.features.volumeControl===false){this.addClass("librevjs-hidden")}b.on("loadstart",librevjs.bind(this,function(){if(b.tech.features&&b.tech.features.volumeControl===false){this.addClass("librevjs-hidden")}else{this.removeClass("librevjs-hidden")}}));this.addClass("librevjs-menu-button")}});librevjs.VolumeMenuButton.prototype.createMenu=function(){var b=new librevjs.Menu(this.player_,{contentElType:"div"});var a=new librevjs.VolumeBar(this.player_,librevjs.obj.merge({vertical:true},this.options_.volumeBar));b.addChild(a);return b};librevjs.VolumeMenuButton.prototype.onClick=function(){librevjs.MuteToggle.prototype.onClick.call(this);librevjs.MenuButton.prototype.onClick.call(this)};librevjs.VolumeMenuButton.prototype.createEl=function(){return librevjs.Button.prototype.createEl.call(this,"div",{className:"librevjs-volume-menu-button librevjs-menu-button librevjs-control",innerHTML:'<div><span class="librevjs-control-text">Mute</span></div>'})};librevjs.VolumeMenuButton.prototype.update=librevjs.MuteToggle.prototype.update;librevjs.PosterImage=librevjs.Button.extend({init:function(b,a){librevjs.Button.call(this,b,a);if(!b.poster()||!b.controls()){this.hide()}b.on("play",librevjs.bind(this,this.hide))}});librevjs.PosterImage.prototype.createEl=function(){var a=librevjs.createEl("div",{className:"librevjs-poster",tabIndex:-1}),b=this.player_.poster();if(b){if("backgroundSize" in a.style){a.style.backgroundImage='url("'+b+'")'}else{a.appendChild(librevjs.createEl("img",{src:b}))}}return a};librevjs.PosterImage.prototype.onClick=function(){if(this.player().controls()){this.player_.play()}};librevjs.LoadingSpinner=librevjs.Component.extend({init:function(b,a){librevjs.Component.call(this,b,a);b.on("canplay",librevjs.bind(this,this.hide));b.on("canplaythrough",librevjs.bind(this,this.hide));b.on("playing",librevjs.bind(this,this.hide));b.on("seeked",librevjs.bind(this,this.hide));b.on("seeking",librevjs.bind(this,this.show));b.on("seeked",librevjs.bind(this,this.hide));b.on("error",librevjs.bind(this,this.show));b.on("waiting",librevjs.bind(this,this.show))}});librevjs.LoadingSpinner.prototype.createEl=function(){return librevjs.Component.prototype.createEl.call(this,"div",{className:"librevjs-loading-spinner"})};librevjs.BigPlayButton=librevjs.Button.extend();librevjs.BigPlayButton.prototype.createEl=function(){return librevjs.Button.prototype.createEl.call(this,"div",{className:"librevjs-big-play-button",innerHTML:"<span></span>","aria-label":"play video"})};librevjs.BigPlayButton.prototype.onClick=function(){this.player_.play()};librevjs.MediaTechController=librevjs.Component.extend({init:function(b,a,c){librevjs.Component.call(this,b,a,c);this.initControlsListeners()}});librevjs.MediaTechController.prototype.initControlsListeners=function(){var c,b,a,d;b=this;c=this.player();var a=function(){if(c.controls()&&!c.usingNativeControls()){b.addControlsListeners()}};d=librevjs.bind(b,b.removeControlsListeners);this.ready(a);c.on("controlsenabled",a);c.on("controlsdisabled",d)};librevjs.MediaTechController.prototype.addControlsListeners=function(){var a,b;this.on("mousedown",this.onClick);this.on("touchstart",function(c){c.preventDefault();c.stopPropagation();b=this.player_.userActive()});a=function(c){c.stopPropagation();if(b){this.player_.reportUserActivity()}};this.on("touchmove",a);this.on("touchleave",a);this.on("touchcancel",a);this.on("touchend",a);this.emitTapEvents();this.on("tap",this.onTap)};librevjs.MediaTechController.prototype.removeControlsListeners=function(){this.off("tap");this.off("touchstart");this.off("touchmove");this.off("touchleave");this.off("touchcancel");this.off("touchend");this.off("click");this.off("mousedown")};librevjs.MediaTechController.prototype.onClick=function(a){if(a.button!==0){return}if(this.player().controls()){if(this.player().paused()){this.player().play()}else{this.player().pause()}}};librevjs.MediaTechController.prototype.onTap=function(){this.player().userActive(!this.player().userActive())};librevjs.MediaTechController.prototype.features={volumeControl:true,fullscreenResize:false,progressEvents:false,timeupdateEvents:false};librevjs.media={};librevjs.media.ApiMethods="play,pause,paused,currentTime,setCurrentTime,duration,buffered,volume,setVolume,muted,setMuted,width,height,supportsFullScreen,enterFullScreen,src,load,currentSrc,preload,setPreload,autoplay,setAutoplay,loop,setLoop,error,networkState,readyState,seeking,initialTime,startOffsetTime,played,seekable,ended,videoTracks,audioTracks,videoWidth,videoHeight,textTracks,defaultPlaybackRate,playbackRate,mediaGroup,controller,controls,defaultMuted".split(",");function createMethod(a){return function(){throw new Error('The "'+a+"\" method is not available on the playback technology's API")}}for(var i=librevjs.media.ApiMethods.length-1;i>=0;i--){var methodName=librevjs.media.ApiMethods[i];librevjs.MediaTechController.prototype[librevjs.media.ApiMethods[i]]=createMethod(methodName)}librevjs.Html5=librevjs.MediaTechController.extend({init:function(b,a,c){this.features.volumeControl=librevjs.Html5.canControlVolume();this.features.movingMediaElementInDOM=!librevjs.IS_IOS;this.features.fullscreenResize=true;librevjs.MediaTechController.call(this,b,a,c);var d=a.source;if(d&&this.el_.currentSrc===d.src&&this.el_.networkState>0){b.trigger("loadstart")}else{if(d){this.el_.src=d.src}}if(librevjs.TOUCH_ENABLED&&b.options()["nativeControlsForTouch"]===true){this.useNativeControls()}b.ready(function(){if(this.tag&&this.options_.autoplay&&this.paused()){delete this.tag.poster;this.play()}});this.setupTriggers();this.triggerReady()}});librevjs.Html5.prototype.dispose=function(){librevjs.MediaTechController.prototype.dispose.call(this)};librevjs.Html5.prototype.createEl=function(){var d=this.player_,e=d.tag,f,g;if(!e||this.features.movingMediaElementInDOM===false){if(e){g=e.cloneNode(false);librevjs.Html5.disposeMediaElement(e);e=g;d.tag=null}else{e=librevjs.createEl("video",{id:d.id()+"_html5_api",className:"librevjs-tech"})}e.player=d;librevjs.insertFirst(e,d.el())}var b=["autoplay","preload","loop","muted"];for(var c=b.length-1;c>=0;c--){var a=b[c];if(d.options_[a]!==null){e[a]=d.options_[a]}}return e};librevjs.Html5.prototype.setupTriggers=function(){for(var a=librevjs.Html5.Events.length-1;a>=0;a--){librevjs.on(this.el_,librevjs.Html5.Events[a],librevjs.bind(this.player_,this.eventHandler))}};librevjs.Html5.prototype.eventHandler=function(a){this.trigger(a);a.stopPropagation()};librevjs.Html5.prototype.useNativeControls=function(){var a,b,e,d,c;a=this;b=this.player();a.setControls(b.controls());e=function(){a.setControls(true)};d=function(){a.setControls(false)};b.on("controlsenabled",e);b.on("controlsdisabled",d);c=function(){b.off("controlsenabled",e);b.off("controlsdisabled",d)};a.on("dispose",c);b.on("usingcustomcontrols",c);b.usingNativeControls(true)};librevjs.Html5.prototype.play=function(){this.el_.play()};librevjs.Html5.prototype.pause=function(){this.el_.pause()};librevjs.Html5.prototype.paused=function(){return this.el_.paused};librevjs.Html5.prototype.currentTime=function(){return this.el_.currentTime};librevjs.Html5.prototype.setCurrentTime=function(b){try{this.el_.currentTime=b}catch(a){librevjs.log(a,"Video is not ready. (LibreVideo.js)")}};librevjs.Html5.prototype.duration=function(){return this.el_.duration||0};librevjs.Html5.prototype.buffered=function(){return this.el_.buffered};librevjs.Html5.prototype.volume=function(){return this.el_.volume};librevjs.Html5.prototype.setVolume=function(a){this.el_.volume=a};librevjs.Html5.prototype.muted=function(){return this.el_.muted};librevjs.Html5.prototype.setMuted=function(a){this.el_.muted=a};librevjs.Html5.prototype.width=function(){return this.el_.offsetWidth};librevjs.Html5.prototype.height=function(){return this.el_.offsetHeight};librevjs.Html5.prototype.supportsFullScreen=function(){if(typeof this.el_.webkitEnterFullScreen=="function"){if(/Android/.test(librevjs.USER_AGENT)||!/Chrome|Mac OS X 10.5/.test(librevjs.USER_AGENT)){return true}}return false};librevjs.Html5.prototype.enterFullScreen=function(){var a=this.el_;if(a.paused&&a.networkState<=a.HAVE_METADATA){this.el_.play();setTimeout(function(){a.pause();a.webkitEnterFullScreen()},0)}else{a.webkitEnterFullScreen()}};librevjs.Html5.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()};librevjs.Html5.prototype.src=function(a){this.el_.src=a};librevjs.Html5.prototype.load=function(){this.el_.load()};librevjs.Html5.prototype.currentSrc=function(){return this.el_.currentSrc};librevjs.Html5.prototype.preload=function(){return this.el_.preload};librevjs.Html5.prototype.setPreload=function(a){this.el_.preload=a};librevjs.Html5.prototype.autoplay=function(){return this.el_.autoplay};librevjs.Html5.prototype.setAutoplay=function(a){this.el_.autoplay=a};librevjs.Html5.prototype.controls=function(){return this.el_.controls};librevjs.Html5.prototype.setControls=function(a){this.el_.controls=!!a};librevjs.Html5.prototype.loop=function(){return this.el_.loop};librevjs.Html5.prototype.setLoop=function(a){this.el_.loop=a};librevjs.Html5.prototype.error=function(){return this.el_.error};librevjs.Html5.prototype.seeking=function(){return this.el_.seeking};librevjs.Html5.prototype.ended=function(){return this.el_.ended};librevjs.Html5.prototype.defaultMuted=function(){return this.el_.defaultMuted};librevjs.Html5.isSupported=function(){return !!librevjs.TEST_VID.canPlayType};librevjs.Html5.canPlaySource=function(a){try{return !!librevjs.TEST_VID.canPlayType(a.type)}catch(b){return""}};librevjs.Html5.canControlVolume=function(){var a=librevjs.TEST_VID.volume;librevjs.TEST_VID.volume=(a/2)+0.1;return a!==librevjs.TEST_VID.volume};librevjs.Html5.Events="loadstart,suspend,abort,error,emptied,stalled,loadedmetadata,loadeddata,canplay,canplaythrough,playing,waiting,seeking,seeked,ended,durationchange,timeupdate,progress,play,pause,ratechange,volumechange".split(",");librevjs.Html5.disposeMediaElement=function(a){if(!a){return}a.player=null;if(a.parentNode){a.parentNode.removeChild(a)}while(a.hasChildNodes()){a.removeChild(a.firstChild)}a.removeAttribute("src");if(typeof a.load==="function"){a.load()}};if(librevjs.IS_OLD_ANDROID){document.createElement("video").constructor.prototype.canPlayType=function(a){return(a&&a.toLowerCase().indexOf("video/mp4")!=-1)?"maybe":""}}librevjs.Flash=librevjs.MediaTechController.extend({init:function(m,n,k){librevjs.MediaTechController.call(this,m,n,k);var a=n.source,h=n.parentEl,l=this.el_=librevjs.createEl("div",{id:m.id()+"_temp_flash"}),b=m.id()+"_flash_api",c=m.options_,j=librevjs.obj.merge({readyFunction:"cliplibrejs.Flash.onReady",eventProxyFunction:"cliplibrejs.Flash.onEvent",errorEventProxyFunction:"cliplibrejs.Flash.onError",autoplay:c.autoplay,preload:c.preload,loop:c.loop,muted:c.muted},n.flashVars),d=librevjs.obj.merge({wmode:"opaque",bgcolor:"#000000"},n.params),f=librevjs.obj.merge({id:b,name:b,"class":"librevjs-tech"},n.attributes);if(a){if(a.type&&librevjs.Flash.isStreamingType(a.type)){var e=librevjs.Flash.streamToParts(a.src);j.rtmpConnection=encodeURIComponent(e.connection);j.rtmpStream=encodeURIComponent(e.stream)}else{j.src=encodeURIComponent(librevjs.getAbsoluteURL(a.src))}}librevjs.insertFirst(l,h);if(n.startTime){this.ready(function(){this.load();this.play();this.currentTime(n.startTime)})}if(n.iFrameMode===true&&!librevjs.IS_FIREFOX){var g=librevjs.createEl("iframe",{id:b+"_iframe",name:b+"_iframe",className:"librevjs-tech",scrolling:"no",marginWidth:0,marginHeight:0,frameBorder:0});j.readyFunction="ready";j.eventProxyFunction="events";j.errorEventProxyFunction="errors";librevjs.on(g,"load",librevjs.bind(this,function(){var p,o=g.contentWindow;p=g.contentDocument?g.contentDocument:g.contentWindow.document;p.write(librevjs.Flash.getEmbedCode(n.swf,j,d,f));o.player=this.player_;o.ready=librevjs.bind(this.player_,function(r){var t=p.getElementById(r),s=this,q=s.tech;q.el_=t;librevjs.Flash.checkReady(q)});o.events=librevjs.bind(this.player_,function(r,q){var s=this;if(s&&s.techName==="flash"){s.trigger(q)}});o.errors=librevjs.bind(this.player_,function(r,q){librevjs.log("Flash Error",q)})}));l.parentNode.replaceChild(g,l)}else{librevjs.Flash.embed(n.swf,l,j,d,f)}}});librevjs.Flash.prototype.dispose=function(){librevjs.MediaTechController.prototype.dispose.call(this)};librevjs.Flash.prototype.play=function(){this.el_.librevjs_play()};librevjs.Flash.prototype.pause=function(){this.el_.librevjs_pause()};librevjs.Flash.prototype.src=function(b){if(librevjs.Flash.isStreamingSrc(b)){b=librevjs.Flash.streamToParts(b);this.setRtmpConnection(b.connection);this.setRtmpStream(b.stream)}else{b=librevjs.getAbsoluteURL(b);this.el_.librevjs_src(b)}if(this.player_.autoplay()){var a=this;setTimeout(function(){a.play()},0)}};librevjs.Flash.prototype.currentSrc=function(){var c=this.el_.librevjs_getProperty("currentSrc");if(c==null){var a=this.rtmpConnection(),b=this.rtmpStream();if(a&&b){c=librevjs.Flash.streamFromParts(a,b)}}return c};librevjs.Flash.prototype.load=function(){this.el_.librevjs_load()};librevjs.Flash.prototype.poster=function(){this.el_.librevjs_getProperty("poster")};librevjs.Flash.prototype.buffered=function(){return librevjs.createTimeRange(0,this.el_.librevjs_getProperty("buffered"))};librevjs.Flash.prototype.supportsFullScreen=function(){return false};librevjs.Flash.prototype.enterFullScreen=function(){return false};var api=librevjs.Flash.prototype,readWrite="rtmpConnection,rtmpStream,preload,currentTime,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted".split(","),readOnly="error,currentSrc,networkState,readyState,seeking,initialTime,duration,startOffsetTime,paused,played,seekable,ended,videoTracks,audioTracks,videoWidth,videoHeight,textTracks".split(",");var createSetter=function(a){var b=a.charAt(0).toUpperCase()+a.slice(1);api["set"+b]=function(c){return this.el_.librevjs_setProperty(a,c)}};var createGetter=function(a){api[a]=function(){return this.el_.librevjs_getProperty(a)}};(function(){var a;for(a=0;a<readWrite.length;a++){createGetter(readWrite[a]);createSetter(readWrite[a])}for(a=0;a<readOnly.length;a++){createGetter(readOnly[a])}})();librevjs.MediaLoader=librevjs.Component.extend({init:function(e,c,f){librevjs.Component.call(this,e,c,f);if(!e.options_.sources||e.options_.sources.length===0){for(var d=0,b=e.options_.techOrder;d<b.length;d++){var g=librevjs.capitalize(b[d]),a=window.cliplibrejs[g];if(a&&a.isSupported()){e.loadTech(g);break}}}else{e.src(e.options_.sources)}}});librevjs.Player.prototype.textTracks_;librevjs.Player.prototype.textTracks=function(){this.textTracks_=this.textTracks_||[];return this.textTracks_};librevjs.Player.prototype.addTextTrack=function(f,e,g,d){var c=this.textTracks_=this.textTracks_||[];d=d||{};d.kind=f;d.label=e;d.language=g;var b=librevjs.capitalize(f||"subtitles");var a=new window.cliplibrejs[b+"Track"](this,d);c.push(a);return a};librevjs.Player.prototype.addTextTracks=function(b){var c;for(var a=0;a<b.length;a++){c=b[a];this.addTextTrack(c.kind,c.label,c.language,c)}return this};librevjs.Player.prototype.showTextTrack=function(h,f){var c=this.textTracks_,d=0,b=c.length,a,g,e;for(;d<b;d++){a=c[d];if(a.id()===h){a.show();g=a}else{if(f&&a.kind()==f&&a.mode()>0){a.disable()}}}e=(g)?g.kind():((f)?f:false);if(e){this.trigger(e+"trackchange")}return this};librevjs.TextTrack=librevjs.Component.extend({init:function(b,a){librevjs.Component.call(this,b,a);this.id_=a.id||("librevjs_"+a.kind+"_"+a.language+"_"+librevjs.guid++);this.src_=a.src;this.dflt_=a["default"]||a.dflt;this.title_=a.title;this.language_=a.srclang;this.label_=a.label;this.cues_=[];this.activeCues_=[];this.readyState_=0;this.mode_=0;this.player_.on("fullscreenchange",librevjs.bind(this,this.adjustFontSize))}});librevjs.TextTrack.prototype.kind_;librevjs.TextTrack.prototype.kind=function(){return this.kind_};librevjs.TextTrack.prototype.src_;librevjs.TextTrack.prototype.src=function(){return this.src_};librevjs.TextTrack.prototype.dflt_;librevjs.TextTrack.prototype.dflt=function(){return this.dflt_};librevjs.TextTrack.prototype.title_;librevjs.TextTrack.prototype.title=function(){return this.title_};librevjs.TextTrack.prototype.language_;librevjs.TextTrack.prototype.language=function(){return this.language_};librevjs.TextTrack.prototype.label_;librevjs.TextTrack.prototype.label=function(){return this.label_};librevjs.TextTrack.prototype.cues_;librevjs.TextTrack.prototype.cues=function(){return this.cues_};librevjs.TextTrack.prototype.activeCues_;librevjs.TextTrack.prototype.activeCues=function(){return this.activeCues_};librevjs.TextTrack.prototype.readyState_;librevjs.TextTrack.prototype.readyState=function(){return this.readyState_};librevjs.TextTrack.prototype.mode_;librevjs.TextTrack.prototype.mode=function(){return this.mode_};librevjs.TextTrack.prototype.adjustFontSize=function(){if(this.player_.isFullScreen){this.el_.style.fontSize=screen.width/this.player_.width()*2.5*100+"%"}else{this.el_.style.fontSize=""}};librevjs.TextTrack.prototype.createEl=function(){return librevjs.Component.prototype.createEl.call(this,"div",{className:"librevjs-"+this.kind_+" librevjs-text-track"})};librevjs.TextTrack.prototype.show=function(){this.activate();this.mode_=2;librevjs.Component.prototype.show.call(this)};librevjs.TextTrack.prototype.hide=function(){this.activate();this.mode_=1;librevjs.Component.prototype.hide.call(this)};librevjs.TextTrack.prototype.disable=function(){if(this.mode_==2){this.hide()}this.deactivate();this.mode_=0};librevjs.TextTrack.prototype.activate=function(){if(this.readyState_===0){this.load()}if(this.mode_===0){this.player_.on("timeupdate",librevjs.bind(this,this.update,this.id_));this.player_.on("ended",librevjs.bind(this,this.reset,this.id_));if(this.kind_==="captions"||this.kind_==="subtitles"){this.player_.getChild("textTrackDisplay").addChild(this)}}};librevjs.TextTrack.prototype.deactivate=function(){this.player_.off("timeupdate",librevjs.bind(this,this.update,this.id_));this.player_.off("ended",librevjs.bind(this,this.reset,this.id_));this.reset();this.player_.getChild("textTrackDisplay").removeChild(this)};librevjs.TextTrack.prototype.load=function(){if(this.readyState_===0){this.readyState_=1;librevjs.get(this.src_,librevjs.bind(this,this.parseCues),librevjs.bind(this,this.onError))}};librevjs.TextTrack.prototype.onError=function(a){this.error=a;this.readyState_=3;this.trigger("error")};librevjs.TextTrack.prototype.parseCues=function(b){var f,c,g,h=b.split("\n"),k="",a;for(var e=1,d=h.length;e<d;e++){k=librevjs.trim(h[e]);if(k){if(k.indexOf("-->")==-1){a=k;k=librevjs.trim(h[++e])}else{a=this.cues_.length}f={id:a,index:this.cues_.length};c=k.split(" --> ");f.startTime=this.parseCueTime(c[0]);f.endTime=this.parseCueTime(c[1]);g=[];while(h[++e]&&(k=librevjs.trim(h[e]))){g.push(k)}f.text=g.join("<br/>");this.cues_.push(f)}}this.readyState_=2;this.trigger("loaded")};librevjs.TextTrack.prototype.parseCueTime=function(b){var g=b.split(":"),f=0,c,e,a,h,d;if(g.length==3){c=g[0];e=g[1];a=g[2]}else{c=0;e=g[0];a=g[1]}a=a.split(/\s+/);h=a.splice(0,1)[0];h=h.split(/\.|,/);d=parseFloat(h[1]);h=h[0];f+=parseFloat(c)*3600;f+=parseFloat(e)*60;f+=parseFloat(h);if(d){f+=d/1000}return f};librevjs.TextTrack.prototype.update=function(){if(this.cues_.length>0){var b=this.player_.currentTime();if(this.prevChange===undefined||b<this.prevChange||this.nextChange<=b){var f=this.cues_,k=this.player_.duration(),j=0,g=false,a=[],h,e,d,c;if(b>=this.nextChange||this.nextChange===undefined){c=(this.firstActiveIndex!==undefined)?this.firstActiveIndex:0}else{g=true;c=(this.lastActiveIndex!==undefined)?this.lastActiveIndex:f.length-1}while(true){d=f[c];if(d.endTime<=b){j=Math.max(j,d.endTime);if(d.active){d.active=false}}else{if(b<d.startTime){k=Math.min(k,d.startTime);if(d.active){d.active=false}if(!g){break}}else{if(g){a.splice(0,0,d);if(e===undefined){e=c}h=c}else{a.push(d);if(h===undefined){h=c}e=c}k=Math.min(k,d.endTime);j=Math.max(j,d.startTime);d.active=true}}if(g){if(c===0){break}else{c--}}else{if(c===f.length-1){break}else{c++}}}this.activeCues_=a;this.nextChange=k;this.prevChange=j;this.firstActiveIndex=h;this.lastActiveIndex=e;this.updateDisplay();this.trigger("cuechange")}}};librevjs.TextTrack.prototype.updateDisplay=function(){var b=this.activeCues_,d="",c=0,a=b.length;for(;c<a;c++){d+='<span class="librevjs-tt-cue">'+b[c].text+"</span>"}this.el_.innerHTML=d};librevjs.TextTrack.prototype.reset=function(){this.nextChange=0;this.prevChange=this.player_.duration();this.firstActiveIndex=0;this.lastActiveIndex=0};librevjs.CaptionsTrack=librevjs.TextTrack.extend();librevjs.CaptionsTrack.prototype.kind_="captions";librevjs.SubtitlesTrack=librevjs.TextTrack.extend();librevjs.SubtitlesTrack.prototype.kind_="subtitles";librevjs.ChaptersTrack=librevjs.TextTrack.extend();librevjs.ChaptersTrack.prototype.kind_="chapters";librevjs.TextTrackDisplay=librevjs.Component.extend({init:function(b,a,c){librevjs.Component.call(this,b,a,c);if(b.options_.tracks&&b.options_.tracks.length>0){this.player_.addTextTracks(b.options_.tracks)}}});librevjs.TextTrackDisplay.prototype.createEl=function(){return librevjs.Component.prototype.createEl.call(this,"div",{className:"librevjs-text-track-display"})};librevjs.TextTrackMenuItem=librevjs.MenuItem.extend({init:function(c,b){var a=this.track=b.track;b.label=a.label();b.selected=a.dflt();librevjs.MenuItem.call(this,c,b);this.player_.on(a.kind()+"trackchange",librevjs.bind(this,this.update));if(a.dflt()){this.player_.showTextTrack(this.track.id_,this.track.kind())}}});librevjs.TextTrackMenuItem.prototype.onClick=function(){librevjs.MenuItem.prototype.onClick.call(this);this.player_.showTextTrack(this.track.id_,this.track.kind())};librevjs.TextTrackMenuItem.prototype.update=function(){this.selected(this.track.mode()==2)};librevjs.OffTextTrackMenuItem=librevjs.TextTrackMenuItem.extend({init:function(b,a){a.track={kind:function(){return a.kind},player:b,label:function(){return a.kind+" off"},dflt:function(){return false},mode:function(){return false}};librevjs.TextTrackMenuItem.call(this,b,a);this.selected(true)}});librevjs.OffTextTrackMenuItem.prototype.onClick=function(){librevjs.TextTrackMenuItem.prototype.onClick.call(this);this.player_.showTextTrack(this.track.id_,this.track.kind())};librevjs.OffTextTrackMenuItem.prototype.update=function(){var c=this.player_.textTracks(),d=0,b=c.length,a,e=true;for(;d<b;d++){a=c[d];if(a.kind()==this.track.kind()&&a.mode()==2){e=false}}this.selected(e)};librevjs.TextTrackButton=librevjs.MenuButton.extend({init:function(b,a){librevjs.MenuButton.call(this,b,a);if(this.items.length<=1){this.hide()}}});librevjs.TextTrackButton.prototype.createItems=function(){var b=[],a;b.push(new librevjs.OffTextTrackMenuItem(this.player_,{kind:this.kind_}));for(var c=0;c<this.player_.textTracks().length;c++){a=this.player_.textTracks()[c];if(a.kind()===this.kind_){b.push(new librevjs.TextTrackMenuItem(this.player_,{track:a}))}}return b};librevjs.CaptionsButton=librevjs.TextTrackButton.extend({init:function(b,a,c){librevjs.TextTrackButton.call(this,b,a,c);this.el_.setAttribute("aria-label","Captions Menu")}});librevjs.CaptionsButton.prototype.kind_="captions";librevjs.CaptionsButton.prototype.buttonText="Captions";librevjs.CaptionsButton.prototype.className="librevjs-captions-button";librevjs.SubtitlesButton=librevjs.TextTrackButton.extend({init:function(b,a,c){librevjs.TextTrackButton.call(this,b,a,c);this.el_.setAttribute("aria-label","Subtitles Menu")}});librevjs.SubtitlesButton.prototype.kind_="subtitles";librevjs.SubtitlesButton.prototype.buttonText="Subtitles";librevjs.SubtitlesButton.prototype.className="librevjs-subtitles-button";librevjs.ChaptersButton=librevjs.TextTrackButton.extend({init:function(b,a,c){librevjs.TextTrackButton.call(this,b,a,c);this.el_.setAttribute("aria-label","Chapters Menu")}});librevjs.ChaptersButton.prototype.kind_="chapters";librevjs.ChaptersButton.prototype.buttonText="Chapters";librevjs.ChaptersButton.prototype.className="librevjs-chapters-button";librevjs.ChaptersButton.prototype.createItems=function(){var b=[],a;for(var c=0;c<this.player_.textTracks().length;c++){a=this.player_.textTracks()[c];if(a.kind()===this.kind_){b.push(new librevjs.TextTrackMenuItem(this.player_,{track:a}))}}return b};librevjs.ChaptersButton.prototype.createMenu=function(){var h=this.player_.textTracks(),e=0,c=h.length,b,l,k=this.items=[];for(;e<c;e++){b=h[e];if(b.kind()==this.kind_&&b.dflt()){if(b.readyState()<2){this.chaptersTrack=b;b.on("loaded",librevjs.bind(this,this.createMenu));return}else{l=b;break}}}var a=this.menu=new librevjs.Menu(this.player_);a.el_.appendChild(librevjs.createEl("li",{className:"librevjs-menu-title",innerHTML:librevjs.capitalize(this.kind_),tabindex:-1}));if(l){var f=l.cues_,d,g;e=0;c=f.length;for(;e<c;e++){d=f[e];g=new librevjs.ChaptersTrackMenuItem(this.player_,{track:l,cue:d});k.push(g);a.addChild(g)}}if(this.items.length>0){this.show()}return a};librevjs.ChaptersTrackMenuItem=librevjs.MenuItem.extend({init:function(d,c){var b=this.track=c.track,a=this.cue=c.cue,e=d.currentTime();c.label=a.text;c.selected=(a.startTime<=e&&e<a.endTime);librevjs.MenuItem.call(this,d,c);b.on("cuechange",librevjs.bind(this,this.update))}});librevjs.ChaptersTrackMenuItem.prototype.onClick=function(){librevjs.MenuItem.prototype.onClick.call(this);this.player_.currentTime(this.cue.startTime);this.update(this.cue.startTime)};librevjs.ChaptersTrackMenuItem.prototype.update=function(){var a=this.cue,b=this.player_.currentTime();this.selected(a.startTime<=b&&b<a.endTime)};librevjs.obj.merge(librevjs.ControlBar.prototype.options_.children,{subtitlesButton:{},captionsButton:{},chaptersButton:{}});librevjs.JSON;if(typeof window.JSON!=="undefined"&&window.JSON.parse==="function"){librevjs.JSON=window.JSON}else{librevjs.JSON={};var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;librevjs.JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse(): invalid or malformed JSON data")}}librevjs.autoSetup=function(){var d,a,f,c=document.getElementsByTagName("video");if(c&&c.length>0){for(var e=0,b=c.length;e<b;e++){a=c[e];if(a&&a.getAttribute){if(a.player===undefined){d=a.getAttribute("data-setup");if(d!==null){d=librevjs.JSON.parse(d||"{}");f=cliplibrejs(a,d)}}}else{librevjs.autoSetupTimeout(1);break}}}else{if(!librevjs.windowLoaded){librevjs.autoSetupTimeout(1)}}};librevjs.autoSetupTimeout=function(a){setTimeout(librevjs.autoSetup,a)};if(document.readyState==="complete"){librevjs.windowLoaded=true}else{librevjs.one(window,"load",function(){librevjs.windowLoaded=true})}librevjs.autoSetupTimeout(1);librevjs.plugin=function(a,b){librevjs.Player.prototype[a]=b};(function(b){var a={extend:function(c,d){for(var e in d){if(!d.hasOwnProperty(e)){continue}if(typeof d[e]=="object"&&null!==d[e]){c[e]=a.extend(c[e]||{},d[e])}else{c[e]=d[e]}}return c},res_label:function(c){return(/^\d+$/.test(c))?c+"p":c},matchResolution:function(c,d){},buildCookiesDummy:function(){return{get:function(c){return""},set:function(c,d){return false}}}};b.ResolutionMenuItem=b.MenuItem.extend({init:function(d,c){c.label=a.res_label(c.res);c.selected=(c.res.toString()===d.getCurrentRes().toString());b.MenuItem.call(this,d,c);this.resolution=c.res;this.on("click",this.onClick);d.on("changeRes",b.bind(this,function(){if(this.resolution==d.getCurrentRes()){this.selected(true)}else{this.selected(false)}}))}});b.ResolutionMenuItem.prototype.onClick=function(){var d=this.player(),g=d.el().firstChild,h=d.currentTime(),c=d.paused(),f=d.controlBar.resolutionSelector.el().firstChild.children,e=f.length;if(d.getCurrentRes()==this.resolution){return}if("none"==g.preload){g.preload="metadata"}d.src(d.availableRes[this.resolution]).one("loadedmetadata",function(){d.currentTime(h);if(!c){d.play()}});d.currentRes=this.resolution;while(e>0){e--;if("librevjs-current-res"==f[e].className){f[e].innerHTML=a.res_label(this.resolution);break}}d.trigger("changeRes")};b.ResolutionTitleMenuItem=b.MenuItem.extend({init:function(d,c){b.MenuItem.call(this,d,c);this.off("click")}});b.ResolutionSelector=b.MenuButton.extend({init:function(d,c){d.availableRes=c.available_res;b.MenuButton.call(this,d,c)}});b.ResolutionSelector.prototype.createItems=function(){var d=this.player(),c=[],e;c.push(new b.ResolutionTitleMenuItem(d,{el:b.Component.prototype.createEl("li",{className:"librevjs-menu-title librevjs-res-menu-title",innerHTML:"Calidad"})}));for(e in d.availableRes){if("length"==e){continue}c.push(new b.ResolutionMenuItem(d,{res:e}))}c.sort(function(g,f){if(typeof g.resolution=="undefined"){return -1}else{return parseInt(f.resolution)-parseInt(g.resolution)}});return c};b.plugin("resolutionSelector",function(s){if(!this.el().firstChild.canPlayType){return}var r=this,c=r.options().sources,l=c.length,k,p,g=a.extend({default_res:"",force_types:false},s||{}),m={length:0},h,d,e=(g.default_res&&typeof g.default_res=="string")?g.default_res.split(","):[],q="cliplibrejs.resolutionSelector",f=q+".res",o=(typeof(Cookies)==="function")?Cookies:a.buildCookiesDummy();while(l>0){l--;if(!c[l]["data-res"]){continue}h=c[l]["data-res"];if(typeof m[h]!=="object"){m[h]=[];m.length++}m[h].push(c[l])}if(g.force_types){for(h in m){if("length"==h){continue}l=g.force_types.length;while(l>0){l--;k=m[h].length;found_types=0;while(k>0){k--;if(g.force_types[l]===m[h][k].type){found_types++}}if(found_types<g.force_types.length){delete m[h];m.length--;break}}}}if(m.length<2){return}var n=o.get(f);if(n){e=[n].concat(e)}for(l=0;l<e.length;l++){if(m[e[l]]){r.src(m[e[l]]);r.currentRes=e[l];break}}r.getCurrentRes=function(){if(typeof r.currentRes!=="undefined"){return r.currentRes}else{try{return res=r.options().sources[0]["data-res"]}catch(j){return""}}};h=r.getCurrentRes();if(h){h=a.res_label(h)}d=new b.ResolutionSelector(r,{el:b.Component.prototype.createEl(null,{className:"librevjs-res-button librevjs-menu-button librevjs-control",innerHTML:'<div class="librevjs-control-content"><span class="librevjs-current-res">'+(h||"Quality")+"</span></div>",role:"button","aria-live":"polite",tabIndex:0}),available_res:m});this.on("changeRes",function(){o.set(f,r.getCurrentRes())});this.one("loadedmetadata",function(){var j=o.get(f);if(j){r.src(r.availableRes[j]);r.currentRes=j;r.trigger("changeRes")}});r.controlBar.resolutionSelector=r.controlBar.addChild(d)})})(cliplibrejs);!function(c,a){c.cliplibrejs_hotkeys={version:"0.2.5"};var b=function(j){var p=this,d={volumeStep:0.1,seekStep:5,enableMute:true,enableFullscreen:true,enableNumbers:true,};j=j||{};var g=j.volumeStep||d.volumeStep,f=j.seekStep||d.seekStep,o=j.enableMute||d.enableMute,m=j.enableFullscreen||d.enableFullscreen,q=j.enableNumbers||d.enableNumbers;p.el().hasAttribute("tabIndex")||p.el().setAttribute("tabIndex","-1"),p.on("play",function(){var l=p.el().querySelector(".iframeblocker");l&&""==l.style.display&&(l.style.display="block",l.style.bottom="39px")});var k=function(s){var n=s.which;if(p.controls()){document.activeElement;switch(n){case 32:s.preventDefault(),p.paused()?p.play():p.pause();break;case 37:s.preventDefault();var u=p.currentTime()-f;p.currentTime()<=f&&(u=0),p.currentTime(u);break;case 39:s.preventDefault(),p.currentTime(p.currentTime()+f);break;case 40:s.preventDefault(),p.volume(p.volume()-g);break;case 38:s.preventDefault(),p.volume(p.volume()+g);break;case 77:o&&p.muted(p.muted()?!1:!0);break;case 70:m&&(p.isFullScreen?p.player_.cancelFullScreen():p.player_.requestFullScreen());break;default:if((n>47&&59>n||n>95&&106>n)&&q){var l=48;n>95&&(l=96);var t=n-l;s.preventDefault(),p.currentTime(p.duration()*t*0.1)}}}},h=function(){p.controls()&&m&&(p.isFullScreen?p.player_.cancelFullScreen():p.player_.requestFullScreen())};return p.on("keydown",k),p.on("dblclick",h),this};a.plugin("hotkeys",b)}(window,window.cliplibrejs);(function(){cliplibrejs.plugin("progressTips",function(a){var b;b=function(){var c,e,d;c=this;e=$(c.controlBar.progressControl.el());d=$(' <div class="librevjs-progress-tip"> <div class="librevjs-progress-tip-arrow"></div> <div class="librevjs-progress-tip-inner"></div> </div> ').insertAfter(e);e.on("mousemove",function(j){var l,g,n,m,h,f,k;h=$(c.controlBar.progressControl.seekBar.el());n=(j.pageX-h.offset().left)/h.width();f=n*c.duration();if(f===c.duration()){f=f-0.1}g=Math.floor(f/60);m=Math.floor(f-g*60);if(m<10){m="0"+m}d.find(".librevjs-progress-tip-inner").html(""+g+":"+m);l=c.controlBar.height();k=d.outerWidth()/2;d.css("top",""+(0-l-15)+"px").css("left",""+(j.pageX-$(this).offset().left-k)+"px").css("visibility","visible");return});e.on("mouseout",function(){d.css("visibility","hidden")})};this.on("loadedmetadata",b)})}).call(this); \ No newline at end of file