Changeset 2172


Ignore:
Timestamp:
04/17/12 12:43:04 (13 months ago)
Author:
pablo
Message:

Controlbar now toggles states

Location:
branches/jw6
Files:
6 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/jw6/bin-debug/jwplayer.js

    r2171 r2172  
    551551 */ 
    552552(function(jwplayer) { 
    553         jwplayer.html5 = {}; 
     553        jwplayer.html5 = {} 
    554554})(jwplayer); 
    555555 
     
    666666                 
    667667                var _controlbar, _id; 
     668                 
     669                var _toggles = { 
     670                        play: "pause", 
     671                        mute: "unmute", 
     672                        fullscreen: "normalscreen" 
     673                } 
     674                 
     675                var _toggleStates = { 
     676                        play: false, 
     677                        mute: false, 
     678                        fullscreen: false 
     679                } 
     680                 
     681                var _buttonMapping = { 
     682                        play: _play, 
     683                        mute: _mute, 
     684                        fullscreen: _fullscreen 
     685                }; 
    668686 
    669687                function _init() { 
    670688                        _elements = {}; 
    671689                         
    672                         _api = { 
    673                                 settings: { 
    674                                         controlbar: { 
    675                                                 position: "OVER" 
    676                                         } 
    677                                 }, 
    678                                 id: "player" 
    679                         }; 
     690                        _api = api; 
    680691                         
    681692                        config = _utils.extend({}, config); 
    682693                        _id = _api.id + "_controlbar"; 
    683                          
     694 
     695                        _controlbar = _createSpan(); 
     696                        _controlbar.id = _id; 
     697                        _controlbar.className = "jwcontrolbar"; 
     698 
    684699                        (new html5.skinloader(config.skin, function(skin) { 
    685700                                _api.skin = skin; 
     
    726741                 
    727742                function _buildControlbar() { 
    728                         _controlbar = _createSpan(); 
    729                         _controlbar.id = _id; 
    730                         _controlbar.className = "jwcontrolbar"; 
    731  
    732743                        var capLeft = _buildImage("capLeft"); 
    733744                        var capRight = _buildImage("capRight"); 
     
    805816                        //element.id = _createElementId(name); 
    806817                        element.className = name; 
     818                        element.addEventListener("click", (function(name) { return function() { _buttonClickHandler(name) } })(name)); 
    807819 
    808820                        var outSkin = _getSkinElement(name + "Button"); 
     
    810822                         
    811823                        element.innerHTML = " "; 
    812                         if (!outSkin.src) { 
     824                        if (!_getSkinElement(name + "Button").src) { 
    813825                                return element; 
    814826                        } 
    815827                         
    816                         _style(_internalSelector('.'+name), {  
    817                                 width: outSkin.width, 
    818                                 background: 'url('+ outSkin.src +') center no-repeat' 
     828                        _buttonStyle(_internalSelector('.'+name), outSkin, overSkin); 
     829                        var toggle = _toggles[name]; 
     830                        if (toggle) { 
     831                                _buttonStyle(_internalSelector('.'+name+'.toggle'), _getSkinElement(toggle+"Button"), _getSkinElement(toggle+"ButtonOver")); 
     832                        } 
     833 
     834                        _elements[name] = element; 
     835                         
     836                        return element; 
     837                } 
     838                 
     839                function _buttonStyle(selector, out, over) { 
     840                        if (!out.src) { 
     841                                return; 
     842                        } 
     843                         
     844                        _style(selector, {  
     845                                width: out.width, 
     846                                background: 'url('+ out.src +') center no-repeat' 
    819847                        }); 
    820848                         
    821                         if (overSkin.src) { 
    822                                 _style(_internalSelector('.'+name) + ':hover', {  
    823                                         background: 'url('+ overSkin.src +') center no-repeat' 
     849                        if (over.src) { 
     850                                _style(selector + ':hover', {  
     851                                        background: 'url('+ over.src +') center no-repeat' 
    824852                                }); 
    825853                        } 
    826  
    827                         _elements[name] = element; 
    828                          
    829                         return element; 
    830                 } 
    831  
     854                } 
     855                 
     856                function _buttonClickHandler(name) { 
     857                        if (_buttonMapping[name]) { 
     858                                _buttonMapping[name](); 
     859                        } 
     860                } 
     861                 
     862 
     863                function _play() { 
     864                        if (_toggleStates.play) { 
     865                                _api.jwPause(); 
     866                        } else { 
     867                                _api.jwPlay(); 
     868                        } 
     869                        _toggleButton("play"); 
     870                } 
     871                 
     872                function _mute() { 
     873                        _toggleButton("mute"); 
     874                } 
     875                 
     876                function _fullscreen() { 
     877                        _toggleButton("fullscreen"); 
     878                } 
     879                 
     880                function _toggleButton(name) { 
     881                        _elements[name].className = name + (_toggleStates[name] ? "" : " toggle"); 
     882                        _toggleStates[name] ^= true; 
     883                } 
     884                 
    832885                function _createElementId(name) { 
    833886                        //return (_id + "_" + name + Math.round(Math.random()*10000000)); 
     
    937990                         
    938991                        _style(_internalSelector(".volume"), { 
    939                                 width: (capLeftWidth + railWidth + capRightWidth), 
    940                                 margin: (capLeftWidth * capRightWidth == 0) ? "0 5px" : 0  
     992                                width: (capLeftWidth + railWidth + capRightWidth) 
    941993                        }); 
    942994                } 
     
    10321084                        } 
    10331085                } 
    1034                  
    10351086                 
    10361087                // Call constructor 
     
    10781129                '-o-transition': 'background 1s' 
    10791130            }); 
     1131            _style(CB_CLASS+' button:hover', { 
     1132                '-webkit-transition': 'background 0s', 
     1133                '-moz-transition': 'background 0s', 
     1134                '-o-transition': 'background 0s' 
     1135            }); 
    10801136            _style(CB_CLASS+' .capRight', {  
    10811137                        right: 0, 
     
    10901146            _style(CB_CLASS+' .rail,' + CB_CLASS + ' .thumb', { 
    10911147                position: JW_CSS_ABSOLUTE, 
    1092                 height: JW_CSS_100PCT 
     1148                height: JW_CSS_100PCT, 
     1149                cursor: 'pointer' 
    10931150            }); 
    10941151            _style(CB_CLASS + ' .timeSliderThumb', { 
    10951152                '-webkit-transition': 'left .5s linear 0s, opacity .5s ease .5s', 
    10961153                '-moz-transition': 'left .5s linear 0s, opacity .5s ease .5s' 
    1097                 //OTransition: 'left .5s linear 0s, opacity .5s ease .5s' -- this produces console errors in Opera 
     1154                //-o-transition: 'left .5s linear 0s, opacity .5s ease .5s' -- this produces console errors in Opera 
    10981155            });              
    10991156            _style(CB_CLASS + ' .timeSliderProgress,' + CB_CLASS + ' .timeSliderBuffer', { 
     
    11171174        _generalStyles(); 
    11181175})(jwplayer.html5);/** 
     1176 * jwplayer.html5 API 
     1177 * 
     1178 * @author pablo 
     1179 * @version 6.0 
     1180 */ 
     1181(function(html5) { 
     1182        html5.controller = function(model, view) { 
     1183                var _model,  
     1184                        _view = view, 
     1185                        _video, _controlbar; 
     1186                 
     1187                function _init() { 
     1188                        _model = model; 
     1189                        _view = view; 
     1190                        _video = model.video; 
     1191                        _controlbar = view.controlbar; 
     1192                } 
     1193                 
     1194                this.play = function() { 
     1195                        if (_video.getTag().canPlayType("video/mp4")) { 
     1196                                _video.load("http://content.bitsontherun.com/videos/nPripu9l-1ahmry41.mp4");             
     1197                        } else { 
     1198                                _video.load("http://content.bitsontherun.com/videos/nPripu9l-1Lq5Mnwq.webm");            
     1199                        } 
     1200                        _video.play(); 
     1201                } 
     1202 
     1203                this.stop = function() { 
     1204                        _video.stop(); 
     1205                } 
     1206 
     1207                this.pause = function() { 
     1208                        _video.pause(); 
     1209                } 
     1210 
     1211                _init(); 
     1212        } 
     1213})(jwplayer.html5); 
     1214 
     1215/** 
    11191216 * JW Player Default skin 
    11201217 * 
     
    11411238         
    11421239})(jwplayer); 
     1240/** 
     1241 * Main HTMl5 player class 
     1242 * 
     1243 * @author pablo 
     1244 * @version 6.0 
     1245 */ 
     1246(function(html5) { 
     1247        html5.player = function(config) { 
     1248                var _model, _view, _controller, 
     1249                        _api = this; 
     1250                 
     1251                function _init() { 
     1252                        _model = { 
     1253                                video: new html5.video(document.createElement("video")), 
     1254                                settings: config 
     1255                        }; 
     1256                 
     1257                        _api.id = "player"; 
     1258                        _api.settings = _model.settings; 
     1259 
     1260                        _view = { 
     1261                                container: document.getElementById(_api.id), 
     1262                                controlbar: new html5.controlbar(_api, _model.settings) 
     1263                        }; 
     1264                         
     1265                        _controller = new html5.controller(_model, _view); 
     1266                 
     1267                        jwplayer.utils.appendStylesheet("#"+_api.id+" video", { 
     1268                                width: "100%", 
     1269                                height: "100%", 
     1270                                background: "#000", 
     1271                                display: "none" 
     1272                        }); 
     1273                         
     1274                        _view.container.appendChild(_model.video.getTag()); 
     1275                        _view.container.appendChild(_view.controlbar.getDisplayElement()); 
     1276                         
     1277                } 
     1278                 
     1279                this.jwPlay = function(){ _controller.play() }; 
     1280                this.jwPause = function(){ _controller.pause() }; 
     1281                this.jwStop = function(){ _controller.stop() }; 
     1282                 
     1283                _init(); 
     1284        } 
     1285})(jwplayer.html5); 
     1286 
    11431287/** 
    11441288 * JW Player component that loads PNG skins. 
     
    14991643                  _video.play(); 
    15001644          } 
    1501    
     1645 
     1646          this.pause = function() { 
     1647                  _video.pause(); 
     1648          } 
     1649 
    15021650          var _seek = this.seek = function(pos) { 
    15031651                  if (_canSeek) { 
     
    15081656                          _delayedSeek = pos; 
    15091657                  } 
     1658          } 
     1659 
     1660          // Provide access to video tag 
     1661          // TODO: remove 
     1662          this.getTag = function() { 
     1663                  return videotag; 
    15101664          } 
    15111665           
  • branches/jw6/build/build.xml

    r2166 r2172  
    1010                        <fileset dir="${basedir}/src/js/utils" includes="jwplayer.utils.js" excludes="" /> 
    1111                        <fileset dir="${basedir}/src/js/utils" includes="jwplayer.utils.*.js" excludes="" /> 
    12                         <fileset dir="${basedir}/src/js/html5" includes="jwplayer.html5.js" excludes="" /> 
    13                         <fileset dir="${basedir}/src/js/html5" includes="jwplayer.html5.*.js" excludes="" /> 
     12                        <fileset dir="${basedir}/src/js/html5" includes="jwplayer.html5.js" /> 
     13                        <fileset dir="${basedir}/src/js/html5" includes="jwplayer.html5*.js" excludes="jwplayer.html5.js" /> 
    1414                        <fileset dir="${basedir}/src/js/html5/utils" includes="jwplayer.html5.utils.js" /> 
    1515                        <fileset dir="${basedir}/src/js/html5/utils" includes="jwplayer.html5.utils.*.js" excludes="" /> 
  • branches/jw6/jwplayer.min.js

    r2171 r2172  
    1 if(typeof jwplayer=="undefined"){jwplayer=function(a){if(jwplayer.api){return jwplayer.api.selectPlayer(a)}};var $jw=jwplayer;jwplayer.version="6.0";jwplayer.vid=document.createElement("video");jwplayer.audio=document.createElement("audio");jwplayer.source=document.createElement("source");(function(c){var b=c.utils=function(){};b.exists=function(h){switch(typeof(h)){case"string":return(h.length>0);break;case"object":return(h!==null);case"undefined":return false}return true};var e;var d={};b.css=function(h,k){if(b.exists(h)){for(var i in k){try{if(typeof k[i]==="undefined"){continue}else{if(typeof k[i]=="number"&&!(i=="zIndex"||i=="opacity")){if(isNaN(k[i])){continue}if(i.match(/color/i)){k[i]="#"+b.strings.pad(k[i].toString(16),6)}else{k[i]=Math.ceil(k[i])+"px"}}}if(k[i]){h.style[i]=k[i]}}catch(j){}}}};b.appendStylesheet=function(h,j){if(!e){e=document.createElement("style");e.type="text/css";document.getElementsByTagName("head")[0].appendChild(e)}if(!d[h]){d[h]={}}for(var i in j){var k=g(i,j[i]);if(b.exists(d[h][i])&&!b.exists(k)){delete d[h][i]}else{d[h][i]=k}}f()};function g(h,i){if(typeof i==="undefined"){return undefined}if(typeof i=="number"){if(isNaN(i)){return undefined}switch(h){case"z-index":case"opacity":return i;break;default:if(h.match(/color/i)){return"#"+b.strings.pad(i.toString(16),6)}else{return Math.ceil(i)+"px"}break}}else{return i}}function f(){if(e){var h="";for(var k in d){var j=d[k];h+=k+"{\n";for(var i in j){h+="  "+i+": "+j[i]+";\n"}h+="}\n"}e.innerHTML=h}}b.clearCss=function(h){for(var i in d){if(i.indexOf(h)>=0){delete d[i]}}f()};b.getAbsolutePath=function(o,n){if(!b.exists(n)){n=document.location.href}if(!b.exists(o)){return undefined}if(a(o)){return o}var p=n.substring(0,n.indexOf("://")+3);var m=n.substring(p.length,n.indexOf("/",p.length+1));var j;if(o.indexOf("/")===0){j=o.split("/")}else{var k=n.split("?")[0];k=k.substring(p.length+m.length+1,k.lastIndexOf("/"));j=k.split("/").concat(o.split("/"))}var h=[];for(var l=0;l<j.length;l++){if(!j[l]||!b.exists(j[l])||j[l]=="."){continue}else{if(j[l]==".."){h.pop()}else{h.push(j[l])}}}return p+m+"/"+h.join("/")};function a(i){if(!b.exists(i)){return}var j=i.indexOf("://");var h=i.indexOf("?");return(j>0&&(h<0||(h>j)))}b.extend=function(){var h=b.extend["arguments"];if(h.length>1){for(var k=1;k<h.length;k++){for(var j in h[k]){h[0][j]=h[k][j]}}return h[0]}return null};b.parseDimension=function(h){if(typeof h=="string"){if(h===""){return 0}else{if(h.lastIndexOf("%")>-1){return h}else{return parseInt(h.replace("px",""),10)}}}return h}})(jwplayer);(function(a){a.ajax=function(f,e,b){var d;if(window.XMLHttpRequest){d=new XMLHttpRequest()}else{d=new ActiveXObject("Microsoft.XMLHTTP")}d.onreadystatechange=function(){if(d.readyState===4){if(d.status===200){if(e){if(!jwplayer.utils.exists(d.responseXML)){try{if(window.DOMParser){var g=(new DOMParser()).parseFromString(d.responseText,"text/xml");if(g){d=jwplayer.utils.extend({},d,{responseXML:g})}}else{g=new ActiveXObject("Microsoft.XMLDOM");g.async="false";g.loadXML(d.responseText);d=jwplayer.utils.extend({},d,{responseXML:g})}}catch(h){if(b){b(f)}}}e(d)}}else{if(b){b(f)}}}};try{d.open("GET",f,true);d.send(null)}catch(c){if(b){b(f)}}return d}})(jwplayer.utils);(function(a){jwplayer.utils.strings=function(){};jwplayer.utils.strings.trim=function(b){return b.replace(/^\s*/,"").replace(/\s*$/,"")};jwplayer.utils.strings.pad=function(c,d,b){if(!b){b="0"}while(c.length<d){c=b+c}return c};jwplayer.utils.strings.serialize=function(b){if(b==null){return null}else{if(b=="true"){return true}else{if(b=="false"){return false}else{if(isNaN(Number(b))||b.length>5||b.length==0){return b}else{return Number(b)}}}}};jwplayer.utils.strings.seconds=function(d){d=d.replace(",",".");var b=d.split(":");var c=0;if(d.substr(-1)=="s"){c=Number(d.substr(0,d.length-1))}else{if(d.substr(-1)=="m"){c=Number(d.substr(0,d.length-1))*60}else{if(d.substr(-1)=="h"){c=Number(d.substr(0,d.length-1))*3600}else{if(b.length>1){c=Number(b[b.length-1]);c+=Number(b[b.length-2])*60;if(b.length==3){c+=Number(b[b.length-3])*3600}}else{c=Number(d)}}}}return c};jwplayer.utils.strings.xmlAttribute=function(b,c){for(var d=0;d<b.attributes.length;d++){if(b.attributes[d].name&&b.attributes[d].name.toLowerCase()==c.toLowerCase()){return b.attributes[d].value.toString()}}return""};jwplayer.utils.strings.jsonToString=function(f){var h=h||{};if(h&&h.stringify){return h.stringify(f)}var c=typeof(f);if(c!="object"||f===null){if(c=="string"){f='"'+f.replace(/"/g,'\\"')+'"'}else{return String(f)}}else{var g=[],b=(f&&f.constructor==Array);for(var d in f){var e=f[d];switch(typeof(e)){case"string":e='"'+e.replace(/"/g,'\\"')+'"';break;case"object":if(jwplayer.utils.exists(e)){e=jwplayer.utils.strings.jsonToString(e)}break}if(b){if(typeof(e)!="function"){g.push(String(e))}}else{if(typeof(e)!="function"){g.push('"'+d+'":'+String(e))}}}if(b){return"["+String(g)+"]"}else{return"{"+String(g)+"}"}}}})(jwplayer.utils);(function(b){var d=new RegExp(/^(#|0x)[0-9a-fA-F]{3,6}/);jwplayer.utils.typechecker=function(g,f){f=!jwplayer.utils.exists(f)?c(g):f;return e(g,f)};function c(f){var g=["true","false","t","f"];if(g.toString().indexOf(f.toLowerCase().replace(" ",""))>=0){return"boolean"}else{if(d.test(f)){return"color"}else{if(!isNaN(parseInt(f,10))&&parseInt(f,10).toString().length==f.length){return"integer"}else{if(!isNaN(parseFloat(f))&&parseFloat(f).toString().length==f.length){return"float"}}}}return"string"}function e(g,f){if(!jwplayer.utils.exists(f)){return g}switch(f){case"color":if(g.length>0){return a(g)}return null;case"integer":return parseInt(g,10);case"float":return parseFloat(g);case"boolean":if(g.toLowerCase()=="true"){return true}else{if(g=="1"){return true}}return false}return g}function a(f){switch(f.toLowerCase()){case"blue":return parseInt("0000FF",16);case"green":return parseInt("00FF00",16);case"red":return parseInt("FF0000",16);case"cyan":return parseInt("00FFFF",16);case"magenta":return parseInt("FF00FF",16);case"yellow":return parseInt("FFFF00",16);case"black":return parseInt("000000",16);case"white":return parseInt("FFFFFF",16);default:f=f.replace(/(#|0x)?([0-9A-F]{3,6})$/gi,"$2");if(f.length==3){f=f.charAt(0)+f.charAt(0)+f.charAt(1)+f.charAt(1)+f.charAt(2)+f.charAt(2)}return parseInt(f,16)}return parseInt("000000",16)}})(jwplayer.utils);(function(a){a.html5={}})(jwplayer);(function(h){var i=jwplayer.utils,g=i.appendStylesheet,b="button",m="text",d="divider",n="slider",e="relative",f="absolute",a="none",l="block",o="inline",k="inline-block",c="left",r="right",j="100%",q=".jwcontrolbar";h.controlbar=function(N,Y){var T;var S={backgroundcolor:"",margin:10,font:"Arial,sans-serif",fontsize:10,fontcolor:parseInt("000000",16),fontstyle:"normal",fontweight:"bold",buttoncolor:parseInt("ffffff",16),position:"OVER",idlehide:false,hideplaylistcontrols:false,forcenextprev:false,layout:{left:{position:"left",elements:[{name:"play",type:b},{name:"divider",type:d},{name:"prev",type:b},{name:"divider",type:d},{name:"next",type:b},{name:"divider",type:d},{name:"elapsed",type:m}]},center:{position:"center",elements:[{name:"time",type:n}]},right:{position:"right",elements:[{name:"duration",type:m},{name:"blank",type:b},{name:"divider",type:d},{name:"mute",type:b},{name:"volume",type:n},{name:"divider",type:d},{name:"fullscreen",type:b}]}}};var t,D,y;var Q,x;function I(){y={};T={settings:{controlbar:{position:"OVER"}},id:"player"};Y=i.extend({},Y);x=T.id+"_controlbar";(new h.skinloader(Y.skin,function(Z){T.skin=Z;t=i.extend({},S,T.skin.controlbar.settings,T.settings.controlbar);D=(Z.controlbar.layout.left||Z.controlbar.layout.right||Z.controlbar.layout.center)?Z.controlbar.layout:S.layout;L();M()},function(Z){console.log(Z)}))}function L(){i.clearCss("#"+x);g("#"+x,{height:O("background").height,bottom:t.position=="OVER"?t.margin:0,left:t.position=="OVER"?t.margin:0,right:t.position=="OVER"?t.margin:0});g(z(".text"),{font:t.fontsize+"px/"+O("background").height+"px "+t.font,color:t.fontcolor,"font-weight":t.fontweight,"font-style":t.fontstyle,"text-align":"center",padding:"0 5px"})}function z(Z){return"#"+x+" "+Z}function J(){return document.createElement("span")}function M(){Q=J();Q.id=x;Q.className="jwcontrolbar";var ab=E("capLeft");var aa=E("capRight");var Z=E("background",{position:f,left:O("capLeft").width,right:O("capRight").width,backgroundRepeat:"repeat-x"},true);Q.style.opacity=0;if(Z){Q.appendChild(Z)}if(ab){Q.appendChild(ab)}K();if(aa){Q.appendChild(aa)}setTimeout(function(){G();h.utils.animations.fadeIn(Q,250)},1000)}function w(Z){switch(Z.type){case d:return v(Z);break;case m:return H(Z.name);break;case b:if(Z.name!="blank"){return R(Z.name)}break;case n:return C(Z.name);break}}function E(ab,ae,aa,ag){var ad=J();ad.className=ab;var Z=ag?"":"center";var ac=O(ab);ad.innerHTML="&nbsp;";if(!ac||ac.src==""){return}var af;if(aa){af={background:"url('"+ac.src+"') "+Z+" repeat-x"}}else{af={background:"url('"+ac.src+"') "+Z+" no-repeat",width:ac.width}}g(z("."+ab),i.extend(af,ae));y[ab]=ad;return ad}function R(aa){var ab=document.createElement("button");ab.className=aa;var ac=O(aa+"Button");var Z=O(aa+"ButtonOver");ab.innerHTML="&nbsp;";if(!ac.src){return ab}g(z("."+aa),{width:ac.width,background:"url("+ac.src+") center no-repeat"});if(Z.src){g(z("."+aa)+":hover",{background:"url("+Z.src+") center no-repeat"})}y[aa]=ab;return ab}function A(Z){return x+"_"+Z}function H(Z,ad){var ab=J();ab.id=A(Z);ab.className="text "+Z;var aa={};var ac=O(Z+"Background");if(ac.src){aa.background="url("+ac.src+") no-repeat center";aa["background-size"]="100% "+O("background").height+"px"}g(z("."+Z),aa);ab.innerHTML="00:00";y[Z]=ab;return ab}function v(aa){if(aa.width){var Z=J();Z.className="blankDivider";g(Z,{width:parseInt(aa.width)});return Z}else{if(aa.element){return E(aa.element)}else{return E(aa.name)}}}function C(aa){var ac=J();ac.className="slider "+aa;var ab=J();ab.className="rail";var ae=["Rail","Buffer","Progress"];for(var af=0;af<ae.length;af++){var ag=E(aa+"Slider"+ae[af],null,true,(aa=="volume"));if(ag){ag.className+=" stretch";ab.appendChild(ag)}}var Z=E(aa+"SliderThumb");if(Z){Z.className+=" thumb";ab.appendChild(Z)}var ad=E(aa+"SliderCapLeft");var ah=E(aa+"SliderCapRight");if(ah){ah.className+=" capRight"}if(ad){ac.appendChild(ad)}ac.appendChild(ab);if(ad){ac.appendChild(ah)}g(z("."+aa+" .rail"),{left:O(aa+"SliderCapLeft").width,right:O(aa+"SliderCapRight").width,});if(aa=="time"){V(ac);F(0);U(0)}else{if(aa=="volume"){P(ac)}}y[aa]=ac;return ac}function V(Z){if(y.timeSliderThumb){g(z(".timeSliderThumb"),{"margin-left":(O("timeSliderThumb").width/-2)})}U(0);F(0)}function P(ab){var aa=O("volumeSliderCapLeft").width,Z=O("volumeSliderCapRight").width,ac=O("volumeSliderRail").width;g(z(".volume"),{width:(aa+ac+Z),margin:(aa*Z==0)?"0 5px":0})}var B={};function K(){s("left");s("center");s("right");Q.appendChild(B.left);Q.appendChild(B.center);Q.appendChild(B.right);g(z(".right"),{right:O("capRight").width})}function s(aa){var Z=J();Z.className="group "+aa;B[aa]=Z;if(D[aa]){u(D[aa],B[aa])}}function u(ac,Z){if(ac&&ac.elements.length>0){for(var ab=0;ab<ac.elements.length;ab++){var aa=w(ac.elements[ab]);if(aa){Z.appendChild(aa)}}}}var G=this.resize=function(aa,Z){g(z(".group.center"),{left:i.parseDimension(B.left.offsetWidth)+O("capLeft").width,right:i.parseDimension(B.right.offsetWidth)+O("capRight").width})};this.getDisplayElement=function(){return Q};var U=this.setBuffer=function(Z){Z=Math.min(Math.max(0,Z),1);y.timeSliderBuffer.style.width=100*Z+"%"};function X(ab,ac,ad){ac=Math.min(Math.max(0,ac),1);var aa=y[ab+"SliderProgress"];var Z=y[ab+"SliderThumb"];if(aa){aa.style.width=100*ac+"%"}if(Z){Z.style.left=ac*i.parseDimension(y[ab+"SliderRail"].clientWidth)+"px"}}var W=this.setVolume=function(Z){X("volume",Z,true)};var F=this.setProgress=function(Z){X("time",Z)};this.getSkin=function(){return T.skin};function O(Z){if(T.skin.controlbar.elements[Z]){return T.skin.controlbar.elements[Z]}else{return{width:0,height:0,src:"",image:undefined,ready:false}}}I()};function p(){g(q,{position:f,overflow:"hidden"});g(q+" span",{height:j,"-webkit-user-select":a,"-webkit-user-drag":a,"user-select":a,"user-drag":a});g(q+" .group",{display:o});g(q+" span, "+q+" .group button,"+q+" .left",{position:e,"float":c});g(q+" .right",{position:e,"float":r});g(q+" .center",{position:f,"float":c});g(q+" button",{display:k,height:j,border:a,cursor:"pointer","-webkit-transition":"background .5s","-moz-transition":"background .5s","-o-transition":"background 1s"});g(q+" .capRight",{right:0,position:f});g(q+" .time,"+q+" .group span.stretch",{position:f,height:j,width:j,left:0});g(q+" .rail,"+q+" .thumb",{position:f,height:j});g(q+" .timeSliderThumb",{"-webkit-transition":"left .5s linear 0s, opacity .5s ease .5s","-moz-transition":"left .5s linear 0s, opacity .5s ease .5s"});g(q+" .timeSliderProgress,"+q+" .timeSliderBuffer",{"-webkit-transition":"width .5s linear","-moz-transition":"width .5s linear","-o-transition":"width .5s linear"});g(q+" .volume",{display:k});g(q+" .divider+.divider",{display:a});g(q+" .text",{padding:"0 5px",textAlign:"center"})}p()})(jwplayer.html5);(function(a){a.html5.defaultskin=function(){this.text='<?xml version="1.0" ?><skin author="LongTail Video" name="Five" version="1.1"><components><component name="controlbar"><settings><setting name="margin" value="20"/><setting name="fontsize" value="11"/><setting name="fontcolor" value="0x000000"/></settings><layout><group position="left"><button name="play"/><divider name="divider"/><button name="prev"/><divider name="divider"/><button name="next"/><divider name="divider"/><text name="elapsed"/></group><group position="center"><slider name="time"/></group><group position="right"><text name="duration"/><divider name="divider"/><button name="blank"/><divider name="divider"/><button name="mute"/><slider name="volume"/><divider name="divider"/><button name="fullscreen"/></group></layout><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAElJREFUOI3t1LERACAMQlFgGvcfxNIhHMK4gsUvUviOmgtNsiAZkBSEKxKEnCYkkQrJn/YwbUNiSDDYRZaQRDaShv+oX9GBZEIuK+8hXVLs+/YAAAAASUVORK5CYII="/><element name="blankButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAYCAYAAAAyJzegAAAAFElEQVQYV2P8//8/AzpgHBUc7oIAGZdH0RjKN8EAAAAASUVORK5CYII="/><element name="capLeft" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAYAAAA7zJfaAAAAQElEQVQIWz3LsRGAMADDQJ0XB5bMINABZ9GENGrszxhjT2WLSqxEJG2JQrTMdV2q5LpOAvyRaVmsi7WdeZ/7+AAaOTq7BVrfOQAAAABJRU5ErkJggg=="/><element name="capRight" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAYAAAA7zJfaAAAAQElEQVQIWz3LsRGAMADDQJ0XB5bMINABZ9GENGrszxhjT2WLSqxEJG2JQrTMdV2q5LpOAvyRaVmsi7WdeZ/7+AAaOTq7BVrfOQAAAABJRU5ErkJggg=="/><element name="divider" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADhJREFUCB0FwcENgEAAw7Aq+893g8APUILNOQcbFRktVGqUVFRkWNz3xTa2sUaLNUosKlRUvvf5AdbWOTtzmzyWAAAAAElFTkSuQmCC"/><element name="playButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAANUlEQVR42u2RsQkAAAjD/NTTPaW6dXLrINJA1kBpGPMAjDWmOgp1HFQXx+b1KOefO4oxY57R73YnVYCQUCQAAAAASUVORK5CYII="/><element name="pauseButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAIUlEQVQ4jWNgGAWjYOiD/0gYG3/U0FFDB4Oho2AUDAYAAEwiL9HrpdMVAAAAAElFTkSuQmCC"/><element name="prevButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAQklEQVQ4y2NgGAWjYOiD/1AMA/JAfB5NjCJD/YH4PRaLyDa0H4lNNUP/DxlD59PCUBCIp3ZEwYA+NZLUKBgFgwEAAN+HLX9sB8u8AAAAAElFTkSuQmCC"/><element name="nextButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAQElEQVQ4y2NgGAWjYOiD/0B8Hojl0cT+U2ooCL8HYn9qGwrD/bQw9P+QMXQ+tSMqnpoRBUpS+tRMUqNgFAwGAADxZy1/mHvFnAAAAABJRU5ErkJggg=="/><element name="timeSliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAOElEQVRIDe3BwQkAIRADwAhhw/nU/kWwUK+KPITMABFh19Y+F0acY8CJvX9wYpXgRElwolSIiMf9ZWEDhtwurFsAAAAASUVORK5CYII="/><element name="timeSliderBuffer" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAN0lEQVRIDe3BwQkAMQwDMBcc55mRe9zi7RR+FCwBEWG39vcfGHFm4MTuhhMlwYlVBSdKhYh43AW/LQMKm1spzwAAAABJRU5ErkJggg=="/><element name="timeSliderProgress" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAIElEQVRIiWNgGAWjYBTQBfynMR61YCRYMApGwSigMQAAiVWPcbq6UkIAAAAASUVORK5CYII="/><element name="timeSliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAYCAYAAAA/OUfnAAAAO0lEQVQYlWP4//8/Awwz0JgDBP/BeN6Cxf/hnI2btiI4u/fsQ3AOHjqK4Jw4eQbBOX/hEoKDYjSd/AMA4cS4mfLsorgAAAAASUVORK5CYII="/><element name="muteButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAJklEQVQ4y2NgGAUjDcwH4v/kaPxPikZkxcNVI9mBQ5XoGAWDFwAAsKAXKQQmfbUAAAAASUVORK5CYII="/><element name="unmuteButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAMklEQVQ4y2NgGAWDHPyntub5xBr6Hwv/Pzk2/yfVG/8psRFE25Oq8T+tQnsIaB4FVAcAi2YVysVY52AAAAAASUVORK5CYII="/><element name="volumeSliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAgMAAACdGdVrAAAACVBMVEUAAACmpqampqbBXAu8AAAAAnRSTlMAgJsrThgAAAArSURBVAhbY2AgErBAyA4I2QEhOyBkB4TsYOhAoaCCUCUwDTDtMMNgRuMHAFB5FoGH5T0UAAAAAElFTkSuQmCC"/><element name="volumeSliderProgress" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAgMAAACdGdVrAAAACVBMVEUAAAAAAAAAAACDY+nAAAAAAnRSTlMAgJsrThgAAAArSURBVAhbY2AgErBAyA4I2QEhOyBkB4TsYOhAoaCCUCUwDTDtMMNgRuMHAFB5FoGH5T0UAAAAAElFTkSuQmCC"/><element name="volumeSliderCapRight" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAYCAYAAAAyJzegAAAAFElEQVQYV2P8//8/AzpgHBUc7oIAGZdH0RjKN8EAAAAASUVORK5CYII="/><element name="fullscreenButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAQklEQVRIiWNgGAWjYMiD/0iYFDmSLbDHImdPLQtgBpEiR7Zl2NijAA5oEkT/0Whi5UiyAJ8BVMsHNMtoo2AUDAIAAGdcIN3IDNXoAAAAAElFTkSuQmCC"/><element name="normalscreenButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAP0lEQVRIx2NgGAWjYMiD/1RSQ5QB/wmIUWzJfzx8qhj+n4DYCAY0DyJ7PBbYU8sHMEvwiZFtODXUjIJRMJgBACpWIN2ZxdPTAAAAAElFTkSuQmCC"/></elements></component><component name="display"><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAQMAAAAk8RryAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlOZpuml+rYAAAASSURBVBhXY2AYJuA/GBwY6jQAyDyoK8QcL4QAAAAASUVORK5CYII="/><element name="playIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAiUlEQVR42u3XSw2AMBREURwgAQlIQAISKgUpSEFKJeCg5b0E0kWBTVcD9ySTsL0Jn9IBAAAA+K2UUrBlW/Rr5ZDoIeeuoFkxJD9ss03aIXXQqB9SttoG7ZA6qNcOKdttiwcJh9RB+iFl4SshkRBuLR72+9cvH0SOKI2HRo7x/Fi1/uoCAAAAwLsD8ki99IlO2dQAAAAASUVORK5CYII="/><element name="muteIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAVUlEQVR42u3WMQrAIAxAUW/g/SdvGmvpoOBeSHgPsjj5QTANAACARCJilIhYM0tEvJM+Ik3Id9E957kQIb+F3OdCPC0hPkQriqWx9hp/x/QGAABQyAPLB22VGrpLDgAAAABJRU5ErkJggg=="/><element name="errorIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAA/0lEQVR42u2U0QmEMBAF7cASLMESUoIlpARLSCkpwRJSgiWkhOvAXD4WsgRkyaG5DbyB+Yvg8KITAAAAAAAYk+u61mwk15EjPtlEfihmqIiZR1Qx80ghjgdUuiHXGHSVsoag0x6x8DUoyjD5KovmEJ9NTDMRPIT0mtdIUkjlonuNohO+Ha99DTmkuGgKCTcvebAzx82ZoCWC3/3aIMWSRucaxcjORSFY4xpFdjYJGp1rFGcyCYZ/RVh6AUnfcNZ2zih3/mGj1jVCdiNDwyrq1rA/xMdeEXvDVdnYc1vDc3uPkDObXrlaxbNHSOohQhr/WOeLEWfWTgAAAAAAADzNF9sHJ7PJ57MlAAAAAElFTkSuQmCC"/><element name="bufferIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAACBklEQVR42u3Zv0sCYRzH8USTzOsHHEWGkC1HgaDgkktGDjUYtDQ01RDSljQ1BLU02+rk1NTm2NLq4Nx/0L/h9fnCd3j4cnZe1/U8xiO8h3uurufF0/3COd/3/0UWYiEWYiEWYiGJQ+J8xuPxKhXjEMZANinjIZhkGuVRNioE4wVURo4JkHm0xKWmhRAc1bh1EyCUw5BcBIjHiApKa4CErko6DEJwuRo6IRKzyJD8FJAyI3Zp2zRImiBcRhlfo5RtlxCcE3CcDNpGrhYIT2IhAJKilO0VRmzJ32fAMTpBTS0QMfGwlcuKMRftE0DJ0wCJdcOsCkBdXP3Mh9CEFUBTPS9mDZJBG6io4aqVzMdCokCw9H3kT6j/C/9iDdSeUMNC7DkyyxAs/Rk6Qss8FPWRZgdVtUH4DjxEn1zxh+/zj1wHlf4MQhNGrwqA6sY40U8JonRJwEQh+AO3AvCG6gHv4U7IY4krxkroWoAOkoQMGfCBrgIm+YBGqPENpIJ66CJg3x66Y0gnSUidAEEnNr9jjLiWMn5DiWP0OC/oAsCgkq43xBdGDMQr7YASP/vEkHvdl1+JOCcEV5sC4hGEOzTlPuKgd0b0xD4JkRcOgnRRTjdErkYhAsQVq6IdUuPJtmk7BCL3t/h88cx91pKQkI/pkDx6pmYTIjEoxiHsN1YWYiEWYiEWknhflZ5IErA5nr8AAAAASUVORK5CYII="/></elements></component><component name="dock"><settings><setting name="fontcolor" value="0xffffff"/></settings><elements><element name="button" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAQMAAAAk8RryAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlOZpuml+rYAAAASSURBVBhXY2AYJuA/GBwY6jQAyDyoK8QcL4QAAAAASUVORK5CYII="/></elements></component><component name="playlist"><settings><setting name="backgroundcolor" value="0xe8e8e8"/></settings><elements><element name="item" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAIAAAC1nk4lAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHBJREFUaN7t2MENwCAMBEEe9N8wSKYC/D8YV7CyJoRkVtVImxkZPQInMxoP0XiIxkM0HsGbjjSNBx544IEHHnjggUe/6UQeey0PIh7XTftGxKPj4eXCtLsHHh+ZxkO0Iw8PR55Ni8ZD9Hu/EAoP0dc5RRg9qeRjVF8AAAAASUVORK5CYII="/><element name="sliderCapTop" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAHCAYAAADnCQYGAAAAFUlEQVQokWP8//8/A7UB46ihI9hQAKt6FPPXhVGHAAAAAElFTkSuQmCC"/><element name="sliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUCAYAAABiS3YzAAAAKElEQVQ4y2P4//8/Az68bNmy/+iYkB6GUUNHDR01dNTQUUNHDaXcUABUDOKhcxnsSwAAAABJRU5ErkJggg=="/><element name="sliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUCAYAAABiS3YzAAAAJUlEQVQ4T2P4//8/Ay4MBP9xYbz6Rg0dNXTU0FFDRw0dNZRyQwHH4NBa7GJsXAAAAABJRU5ErkJggg=="/><element name="sliderCapBottom" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAHCAYAAADnCQYGAAAAFUlEQVQokWP8//8/A7UB46ihI9hQAKt6FPPXhVGHAAAAAElFTkSuQmCC"/></elements></component></components></skin>';this.xml=null;if(window.DOMParser){parser=new DOMParser();this.xml=parser.parseFromString(this.text,"text/xml")}else{this.xml=new ActiveXObject("Microsoft.XMLDOM");this.xml.async="false";this.xml.loadXML(this.text)}return this}})(jwplayer);(function(a){a.html5.skin=function(){var b={};var c=false;this.load=function(d,e){new a.html5.skinloader(d,function(f){c=true;b=f;e()},function(){new a.html5.skinloader("",function(f){c=true;b=f;e()})})};this.getSkinElement=function(d,e){if(c){try{return b[d].elements[e]}catch(f){a.utils.log("No such skin component / element: ",[d,e])}}return null};this.getComponentSettings=function(d){if(c&&b&&b[d]){return b[d].settings}return null};this.getComponentLayout=function(d){if(c){var e=b[d].layout;if(e&&(e.left||e.right||e.center)){return b[d].layout}}return null}}})(jwplayer);(function(a){a.html5.skinloader=function(f,o,j){var n={};var c=o;var k=j;var e=true;var i;var m=f;var r=false;function l(){if(typeof m!="string"||m===""){d(a.html5.defaultskin().xml)}else{a.utils.ajax(a.utils.getAbsolutePath(m),function(s){try{if(a.utils.exists(s.responseXML)){d(s.responseXML);return}}catch(t){h()}d(a.html5.defaultskin().xml)},function(s){d(a.html5.defaultskin().xml)})}}function d(x){var D=x.getElementsByTagName("component");if(D.length===0){return}for(var G=0;G<D.length;G++){var B=D[G].getAttribute("name");var A={settings:{},elements:{},layout:{}};n[B]=A;var F=D[G].getElementsByTagName("elements")[0].getElementsByTagName("element");for(var E=0;E<F.length;E++){b(F[E],B)}var y=D[G].getElementsByTagName("settings")[0];if(y&&y.childNodes.length>0){var J=y.getElementsByTagName("setting");for(var O=0;O<J.length;O++){var P=J[O].getAttribute("name");var H=J[O].getAttribute("value");var w=/color$/.test(P)?"color":null;n[B].settings[P]=a.utils.typechecker(H,w)}}var K=D[G].getElementsByTagName("layout")[0];if(K&&K.childNodes.length>0){var L=K.getElementsByTagName("group");for(var v=0;v<L.length;v++){var z=L[v];n[B].layout[z.getAttribute("position")]={elements:[]};for(var N=0;N<z.attributes.length;N++){var C=z.attributes[N];n[B].layout[z.getAttribute("position")][C.name]=C.value}var M=z.getElementsByTagName("*");for(var u=0;u<M.length;u++){var s=M[u];n[B].layout[z.getAttribute("position")].elements.push({type:s.tagName});for(var t=0;t<s.attributes.length;t++){var I=s.attributes[t];n[B].layout[z.getAttribute("position")].elements[u][I.name]=I.value}if(!a.utils.exists(n[B].layout[z.getAttribute("position")].elements[u].name)){n[B].layout[z.getAttribute("position")].elements[u].name=s.tagName}}}}e=false;q()}}function q(){clearInterval(i);if(!r){i=setInterval(function(){p()},100)}}function b(x,w){var v=new Image();var s=x.getAttribute("name");var u=x.getAttribute("src");var z;if(u.indexOf("data:image/png;base64,")===0){z=u}else{var t=a.utils.getAbsolutePath(m);var y=t.substr(0,t.lastIndexOf("/"));z=[y,w,u].join("/")}n[w].elements[s]={height:0,width:0,src:"",ready:false,image:v};v.onload=function(A){g(v,s,w)};v.onerror=function(A){r=true;q();k()};v.src=z}function h(){for(var t in n){var v=n[t];for(var s in v.elements){var w=v.elements[s];var u=w.image;u.onload=null;u.onerror=null;delete w.image;delete v.elements[s]}delete n[t]}}function p(){for(var s in n){if(s!="properties"){for(var t in n[s].elements){if(!n[s].elements[t].ready){return}}}}if(e===false){clearInterval(i);c(n)}}function g(s,u,t){if(n[t]&&n[t].elements[u]){n[t].elements[u].height=s.height;n[t].elements[u].width=s.width;n[t].elements[u].src=s.src;n[t].elements[u].ready=true;q()}else{a.utils.log("Loaded an image for a missing element: "+t+"."+u)}}l()}})(jwplayer);(function(a){a.video=function(k){var b={abort:c,canplay:m,canplaythrough:c,durationchange:c,emptied:c,ended:c,error:h,loadeddata:c,loadedmetadata:c,loadstart:c,pause:c,play:c,playing:c,progress:c,ratechange:c,readystatechange:c,seeked:c,seeking:c,stalled:c,suspend:c,timeupdate:c,volumechange:c,waiting:c};var e;var g;var d;function l(p){e=p;i()}function i(){for(var p in b){e.addEventListener(p,b[p])}}function c(p){console.log("%s %o (%s,%s)",p.type,p,f(),j())}function m(p){g=true;c(p);if(d>0){n(d)}}function h(p){console.log("Error: %o",e.error);c(p)}function f(){if(e.buffered.length>0){return e.buffered.start(0)}else{return 0}}function j(){if(e.buffered.length>0){return Math.ceil(e.buffered.end(e.buffered.length-1))}else{return 0}}var o;this.load=function(p){g=false;d=0;o=p;e.src=o;e.load()};this.stop=function(){e.removeAttribute("src");e.load();e.style.display="none"};this.play=function(){e.style.display="block";e.play()};var n=this.seek=function(p){if(g){d=0;e.play();e.currentTime=p}else{d=p}};l(k)}})(jwplayer.html5);(function(a){a.utils={}})(jwplayer.html5);(function(a){a.animations=function(d,j,t,e,b,q){var p,o,l,r,h,k,i,g;var s,w,f,w,c;function m(){k=q?q:a.animations.easing.quint.easeOut;p=d;o=j;if(p.id&&!a.animations.active[p.id]){a.animations.active[p.id]={}}if(isNaN(t)){if(t.indexOf("%")>0){i="%"}else{if(t.indexOf("px")){i="px"}}l=parseFloat(t.replace(i,""));r=parseFloat(e.replace(i,""))}else{i="";l=parseFloat(t);r=parseFloat(e)}h=parseFloat(b);this.id=Math.random()}this.start=function(){if(p.id){if(a.animations.active[p.id][o]&&a.animations.active[p.id][o]!=g){a.animations.active[p.id][o].stop();newFrom=parseFloat(p.style[o].toString().replace(i,""));w=h*(l/newFrom)}a.animations.active[p.id][o]=g}if(c){clearInterval(c)}f=(new Date()).valueOf();n();c=setInterval(n,a.animations.INTERVAL_SPEED)};this.stop=function(){clearInterval(c);if(p.id){a.animations.active[p.id][o]=null}};function n(){w=(new Date()).valueOf();if(w-f>=h){u();return}value=k((w-f),0,1,h);v(value)}function u(){v(1);g.stop()}function v(x){var y=(l+(r-l)*x);p.style[o]=y+i}g=this;m()};a.animations.INTERVAL_SPEED=10;a.animations.easing={};a.animations.easing.quint={easeIn:function(f,e,h,g){return h*(f/=g)*f*f*f*f+e},easeOut:function(f,e,h,g){return h*((f=f/g-1)*f*f*f*f+1)+e},easeInOut:function(f,e,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+e}return h/2*((f-=2)*f*f*f*f+2)+e}};a.animations.easing.linear={easeIn:function(f,e,h,g){return h*f/g+e},easeOut:function(f,e,h,g){return h*f/g+e},easeInOut:function(f,e,h,g){return h*f/g+e}};a.animations.active={};a.animations.fadeIn=function(b,d,e){var c=new a.animations(b,"opacity",0,1,d,e);c.start()};a.animations.fadeOut=function(b,d,e){var c=new a.animations(b,"opacity",1,0,d,e);c.start()};a.animations.transform=function(c,h,f,i,g,b,e){var j=new a.animations(c,"left",h,i,b,e);var d=new a.animations(c,"top",f,g,b,e);j.start();d.start()}})(jwplayer.html5.utils)}; 
     1if(typeof jwplayer=="undefined"){jwplayer=function(a){if(jwplayer.api){return jwplayer.api.selectPlayer(a)}};var $jw=jwplayer;jwplayer.version="6.0";jwplayer.vid=document.createElement("video");jwplayer.audio=document.createElement("audio");jwplayer.source=document.createElement("source");(function(c){var b=c.utils=function(){};b.exists=function(h){switch(typeof(h)){case"string":return(h.length>0);break;case"object":return(h!==null);case"undefined":return false}return true};var e;var d={};b.css=function(h,k){if(b.exists(h)){for(var i in k){try{if(typeof k[i]==="undefined"){continue}else{if(typeof k[i]=="number"&&!(i=="zIndex"||i=="opacity")){if(isNaN(k[i])){continue}if(i.match(/color/i)){k[i]="#"+b.strings.pad(k[i].toString(16),6)}else{k[i]=Math.ceil(k[i])+"px"}}}if(k[i]){h.style[i]=k[i]}}catch(j){}}}};b.appendStylesheet=function(h,j){if(!e){e=document.createElement("style");e.type="text/css";document.getElementsByTagName("head")[0].appendChild(e)}if(!d[h]){d[h]={}}for(var i in j){var k=g(i,j[i]);if(b.exists(d[h][i])&&!b.exists(k)){delete d[h][i]}else{d[h][i]=k}}f()};function g(h,i){if(typeof i==="undefined"){return undefined}if(typeof i=="number"){if(isNaN(i)){return undefined}switch(h){case"z-index":case"opacity":return i;break;default:if(h.match(/color/i)){return"#"+b.strings.pad(i.toString(16),6)}else{return Math.ceil(i)+"px"}break}}else{return i}}function f(){if(e){var h="";for(var k in d){var j=d[k];h+=k+"{\n";for(var i in j){h+="  "+i+": "+j[i]+";\n"}h+="}\n"}e.innerHTML=h}}b.clearCss=function(h){for(var i in d){if(i.indexOf(h)>=0){delete d[i]}}f()};b.getAbsolutePath=function(o,n){if(!b.exists(n)){n=document.location.href}if(!b.exists(o)){return undefined}if(a(o)){return o}var p=n.substring(0,n.indexOf("://")+3);var m=n.substring(p.length,n.indexOf("/",p.length+1));var j;if(o.indexOf("/")===0){j=o.split("/")}else{var k=n.split("?")[0];k=k.substring(p.length+m.length+1,k.lastIndexOf("/"));j=k.split("/").concat(o.split("/"))}var h=[];for(var l=0;l<j.length;l++){if(!j[l]||!b.exists(j[l])||j[l]=="."){continue}else{if(j[l]==".."){h.pop()}else{h.push(j[l])}}}return p+m+"/"+h.join("/")};function a(i){if(!b.exists(i)){return}var j=i.indexOf("://");var h=i.indexOf("?");return(j>0&&(h<0||(h>j)))}b.extend=function(){var h=b.extend["arguments"];if(h.length>1){for(var k=1;k<h.length;k++){for(var j in h[k]){h[0][j]=h[k][j]}}return h[0]}return null};b.parseDimension=function(h){if(typeof h=="string"){if(h===""){return 0}else{if(h.lastIndexOf("%")>-1){return h}else{return parseInt(h.replace("px",""),10)}}}return h}})(jwplayer);(function(a){a.ajax=function(f,e,b){var d;if(window.XMLHttpRequest){d=new XMLHttpRequest()}else{d=new ActiveXObject("Microsoft.XMLHTTP")}d.onreadystatechange=function(){if(d.readyState===4){if(d.status===200){if(e){if(!jwplayer.utils.exists(d.responseXML)){try{if(window.DOMParser){var g=(new DOMParser()).parseFromString(d.responseText,"text/xml");if(g){d=jwplayer.utils.extend({},d,{responseXML:g})}}else{g=new ActiveXObject("Microsoft.XMLDOM");g.async="false";g.loadXML(d.responseText);d=jwplayer.utils.extend({},d,{responseXML:g})}}catch(h){if(b){b(f)}}}e(d)}}else{if(b){b(f)}}}};try{d.open("GET",f,true);d.send(null)}catch(c){if(b){b(f)}}return d}})(jwplayer.utils);(function(a){jwplayer.utils.strings=function(){};jwplayer.utils.strings.trim=function(b){return b.replace(/^\s*/,"").replace(/\s*$/,"")};jwplayer.utils.strings.pad=function(c,d,b){if(!b){b="0"}while(c.length<d){c=b+c}return c};jwplayer.utils.strings.serialize=function(b){if(b==null){return null}else{if(b=="true"){return true}else{if(b=="false"){return false}else{if(isNaN(Number(b))||b.length>5||b.length==0){return b}else{return Number(b)}}}}};jwplayer.utils.strings.seconds=function(d){d=d.replace(",",".");var b=d.split(":");var c=0;if(d.substr(-1)=="s"){c=Number(d.substr(0,d.length-1))}else{if(d.substr(-1)=="m"){c=Number(d.substr(0,d.length-1))*60}else{if(d.substr(-1)=="h"){c=Number(d.substr(0,d.length-1))*3600}else{if(b.length>1){c=Number(b[b.length-1]);c+=Number(b[b.length-2])*60;if(b.length==3){c+=Number(b[b.length-3])*3600}}else{c=Number(d)}}}}return c};jwplayer.utils.strings.xmlAttribute=function(b,c){for(var d=0;d<b.attributes.length;d++){if(b.attributes[d].name&&b.attributes[d].name.toLowerCase()==c.toLowerCase()){return b.attributes[d].value.toString()}}return""};jwplayer.utils.strings.jsonToString=function(f){var h=h||{};if(h&&h.stringify){return h.stringify(f)}var c=typeof(f);if(c!="object"||f===null){if(c=="string"){f='"'+f.replace(/"/g,'\\"')+'"'}else{return String(f)}}else{var g=[],b=(f&&f.constructor==Array);for(var d in f){var e=f[d];switch(typeof(e)){case"string":e='"'+e.replace(/"/g,'\\"')+'"';break;case"object":if(jwplayer.utils.exists(e)){e=jwplayer.utils.strings.jsonToString(e)}break}if(b){if(typeof(e)!="function"){g.push(String(e))}}else{if(typeof(e)!="function"){g.push('"'+d+'":'+String(e))}}}if(b){return"["+String(g)+"]"}else{return"{"+String(g)+"}"}}}})(jwplayer.utils);(function(b){var d=new RegExp(/^(#|0x)[0-9a-fA-F]{3,6}/);jwplayer.utils.typechecker=function(g,f){f=!jwplayer.utils.exists(f)?c(g):f;return e(g,f)};function c(f){var g=["true","false","t","f"];if(g.toString().indexOf(f.toLowerCase().replace(" ",""))>=0){return"boolean"}else{if(d.test(f)){return"color"}else{if(!isNaN(parseInt(f,10))&&parseInt(f,10).toString().length==f.length){return"integer"}else{if(!isNaN(parseFloat(f))&&parseFloat(f).toString().length==f.length){return"float"}}}}return"string"}function e(g,f){if(!jwplayer.utils.exists(f)){return g}switch(f){case"color":if(g.length>0){return a(g)}return null;case"integer":return parseInt(g,10);case"float":return parseFloat(g);case"boolean":if(g.toLowerCase()=="true"){return true}else{if(g=="1"){return true}}return false}return g}function a(f){switch(f.toLowerCase()){case"blue":return parseInt("0000FF",16);case"green":return parseInt("00FF00",16);case"red":return parseInt("FF0000",16);case"cyan":return parseInt("00FFFF",16);case"magenta":return parseInt("FF00FF",16);case"yellow":return parseInt("FFFF00",16);case"black":return parseInt("000000",16);case"white":return parseInt("FFFFFF",16);default:f=f.replace(/(#|0x)?([0-9A-F]{3,6})$/gi,"$2");if(f.length==3){f=f.charAt(0)+f.charAt(0)+f.charAt(1)+f.charAt(1)+f.charAt(2)+f.charAt(2)}return parseInt(f,16)}return parseInt("000000",16)}})(jwplayer.utils);(function(a){a.html5={}})(jwplayer);(function(h){var i=jwplayer.utils,g=i.appendStylesheet,b="button",m="text",d="divider",n="slider",e="relative",f="absolute",a="none",l="block",o="inline",k="inline-block",c="left",r="right",j="100%",q=".jwcontrolbar";h.controlbar=function(w,V){var u;var v={backgroundcolor:"",margin:10,font:"Arial,sans-serif",fontsize:10,fontcolor:parseInt("000000",16),fontstyle:"normal",fontweight:"bold",buttoncolor:parseInt("ffffff",16),position:"OVER",idlehide:false,hideplaylistcontrols:false,forcenextprev:false,layout:{left:{position:"left",elements:[{name:"play",type:b},{name:"divider",type:d},{name:"prev",type:b},{name:"divider",type:d},{name:"next",type:b},{name:"divider",type:d},{name:"elapsed",type:m}]},center:{position:"center",elements:[{name:"time",type:n}]},right:{position:"right",elements:[{name:"duration",type:m},{name:"blank",type:b},{name:"divider",type:d},{name:"mute",type:b},{name:"volume",type:n},{name:"divider",type:d},{name:"fullscreen",type:b}]}}};var D,ad,R;var ab,U;var G={play:"pause",mute:"unmute",fullscreen:"normalscreen"};var ac={play:false,mute:false,fullscreen:false};var t={play:L,mute:y,fullscreen:I};function af(){R={};u=w;V=i.extend({},V);U=u.id+"_controlbar";ab=z();ab.id=U;ab.className="jwcontrolbar";(new h.skinloader(V.skin,function(ai){u.skin=ai;D=i.extend({},v,u.skin.controlbar.settings,u.settings.controlbar);ad=(ai.controlbar.layout.left||ai.controlbar.layout.right||ai.controlbar.layout.center)?ai.controlbar.layout:v.layout;F();X()},function(ai){console.log(ai)}))}function F(){i.clearCss("#"+U);g("#"+U,{height:K("background").height,bottom:D.position=="OVER"?D.margin:0,left:D.position=="OVER"?D.margin:0,right:D.position=="OVER"?D.margin:0});g(W(".text"),{font:D.fontsize+"px/"+K("background").height+"px "+D.font,color:D.fontcolor,"font-weight":D.fontweight,"font-style":D.fontstyle,"text-align":"center",padding:"0 5px"})}function W(ai){return"#"+U+" "+ai}function z(){return document.createElement("span")}function X(){var ak=S("capLeft");var aj=S("capRight");var ai=S("background",{position:f,left:K("capLeft").width,right:K("capRight").width,backgroundRepeat:"repeat-x"},true);ab.style.opacity=0;if(ai){ab.appendChild(ai)}if(ak){ab.appendChild(ak)}Y();if(aj){ab.appendChild(aj)}setTimeout(function(){O();h.utils.animations.fadeIn(ab,250)},1000)}function A(ai){switch(ai.type){case d:return N(ai);break;case m:return T(ai.name);break;case b:if(ai.name!="blank"){return M(ai.name)}break;case n:return B(ai.name);break}}function S(ak,an,aj,ap){var am=z();am.className=ak;var ai=ap?"":"center";var al=K(ak);am.innerHTML="&nbsp;";if(!al||al.src==""){return}var ao;if(aj){ao={background:"url('"+al.src+"') "+ai+" repeat-x"}}else{ao={background:"url('"+al.src+"') "+ai+" no-repeat",width:al.width}}g(W("."+ak),i.extend(ao,an));R[ak]=am;return am}function M(ak){var al=document.createElement("button");al.className=ak;al.addEventListener("click",(function(an){return function(){P(an)}})(ak));var am=K(ak+"Button");var aj=K(ak+"ButtonOver");al.innerHTML="&nbsp;";if(!K(ak+"Button").src){return al}E(W("."+ak),am,aj);var ai=G[ak];if(ai){E(W("."+ak+".toggle"),K(ai+"Button"),K(ai+"ButtonOver"))}R[ak]=al;return al}function E(ai,aj,ak){if(!aj.src){return}g(ai,{width:aj.width,background:"url("+aj.src+") center no-repeat"});if(ak.src){g(ai+":hover",{background:"url("+ak.src+") center no-repeat"})}}function P(ai){if(t[ai]){t[ai]()}}function L(){if(ac.play){u.jwPause()}else{u.jwPlay()}C("play")}function y(){C("mute")}function I(){C("fullscreen")}function C(ai){R[ai].className=ai+(ac[ai]?"":" toggle");ac[ai]^=true}function x(ai){return U+"_"+ai}function T(ai,am){var ak=z();ak.id=x(ai);ak.className="text "+ai;var aj={};var al=K(ai+"Background");if(al.src){aj.background="url("+al.src+") no-repeat center";aj["background-size"]="100% "+K("background").height+"px"}g(W("."+ai),aj);ak.innerHTML="00:00";R[ai]=ak;return ak}function N(aj){if(aj.width){var ai=z();ai.className="blankDivider";g(ai,{width:parseInt(aj.width)});return ai}else{if(aj.element){return S(aj.element)}else{return S(aj.name)}}}function B(aj){var al=z();al.className="slider "+aj;var ak=z();ak.className="rail";var an=["Rail","Buffer","Progress"];for(var ao=0;ao<an.length;ao++){var ap=S(aj+"Slider"+an[ao],null,true,(aj=="volume"));if(ap){ap.className+=" stretch";ak.appendChild(ap)}}var ai=S(aj+"SliderThumb");if(ai){ai.className+=" thumb";ak.appendChild(ai)}var am=S(aj+"SliderCapLeft");var aq=S(aj+"SliderCapRight");if(aq){aq.className+=" capRight"}if(am){al.appendChild(am)}al.appendChild(ak);if(am){al.appendChild(aq)}g(W("."+aj+" .rail"),{left:K(aj+"SliderCapLeft").width,right:K(aj+"SliderCapRight").width,});if(aj=="time"){ag(al);aa(0);ae(0)}else{if(aj=="volume"){Z(al)}}R[aj]=al;return al}function ag(ai){if(R.timeSliderThumb){g(W(".timeSliderThumb"),{"margin-left":(K("timeSliderThumb").width/-2)})}ae(0);aa(0)}function Z(ak){var aj=K("volumeSliderCapLeft").width,ai=K("volumeSliderCapRight").width,al=K("volumeSliderRail").width;g(W(".volume"),{width:(aj+al+ai)})}var H={};function Y(){ah("left");ah("center");ah("right");ab.appendChild(H.left);ab.appendChild(H.center);ab.appendChild(H.right);g(W(".right"),{right:K("capRight").width})}function ah(aj){var ai=z();ai.className="group "+aj;H[aj]=ai;if(ad[aj]){J(ad[aj],H[aj])}}function J(al,ai){if(al&&al.elements.length>0){for(var ak=0;ak<al.elements.length;ak++){var aj=A(al.elements[ak]);if(aj){ai.appendChild(aj)}}}}var O=this.resize=function(aj,ai){g(W(".group.center"),{left:i.parseDimension(H.left.offsetWidth)+K("capLeft").width,right:i.parseDimension(H.right.offsetWidth)+K("capRight").width})};this.getDisplayElement=function(){return ab};var ae=this.setBuffer=function(ai){ai=Math.min(Math.max(0,ai),1);R.timeSliderBuffer.style.width=100*ai+"%"};function Q(ak,al,am){al=Math.min(Math.max(0,al),1);var aj=R[ak+"SliderProgress"];var ai=R[ak+"SliderThumb"];if(aj){aj.style.width=100*al+"%"}if(ai){ai.style.left=al*i.parseDimension(R[ak+"SliderRail"].clientWidth)+"px"}}var s=this.setVolume=function(ai){Q("volume",ai,true)};var aa=this.setProgress=function(ai){Q("time",ai)};this.getSkin=function(){return u.skin};function K(ai){if(u.skin.controlbar.elements[ai]){return u.skin.controlbar.elements[ai]}else{return{width:0,height:0,src:"",image:undefined,ready:false}}}af()};function p(){g(q,{position:f,overflow:"hidden"});g(q+" span",{height:j,"-webkit-user-select":a,"-webkit-user-drag":a,"user-select":a,"user-drag":a});g(q+" .group",{display:o});g(q+" span, "+q+" .group button,"+q+" .left",{position:e,"float":c});g(q+" .right",{position:e,"float":r});g(q+" .center",{position:f,"float":c});g(q+" button",{display:k,height:j,border:a,cursor:"pointer","-webkit-transition":"background .5s","-moz-transition":"background .5s","-o-transition":"background 1s"});g(q+" button:hover",{"-webkit-transition":"background 0s","-moz-transition":"background 0s","-o-transition":"background 0s"});g(q+" .capRight",{right:0,position:f});g(q+" .time,"+q+" .group span.stretch",{position:f,height:j,width:j,left:0});g(q+" .rail,"+q+" .thumb",{position:f,height:j,cursor:"pointer"});g(q+" .timeSliderThumb",{"-webkit-transition":"left .5s linear 0s, opacity .5s ease .5s","-moz-transition":"left .5s linear 0s, opacity .5s ease .5s"});g(q+" .timeSliderProgress,"+q+" .timeSliderBuffer",{"-webkit-transition":"width .5s linear","-moz-transition":"width .5s linear","-o-transition":"width .5s linear"});g(q+" .volume",{display:k});g(q+" .divider+.divider",{display:a});g(q+" .text",{padding:"0 5px",textAlign:"center"})}p()})(jwplayer.html5);(function(a){a.controller=function(d,c){var g,h=c,b,f;function e(){g=d;h=c;b=d.video;f=c.controlbar}this.play=function(){if(b.getTag().canPlayType("video/mp4")){b.load("http://content.bitsontherun.com/videos/nPripu9l-1ahmry41.mp4")}else{b.load("http://content.bitsontherun.com/videos/nPripu9l-1Lq5Mnwq.webm")}b.play()};this.stop=function(){b.stop()};this.pause=function(){b.pause()};e()}})(jwplayer.html5);(function(a){a.html5.defaultskin=function(){this.text='<?xml version="1.0" ?><skin author="LongTail Video" name="Five" version="1.1"><components><component name="controlbar"><settings><setting name="margin" value="20"/><setting name="fontsize" value="11"/><setting name="fontcolor" value="0x000000"/></settings><layout><group position="left"><button name="play"/><divider name="divider"/><button name="prev"/><divider name="divider"/><button name="next"/><divider name="divider"/><text name="elapsed"/></group><group position="center"><slider name="time"/></group><group position="right"><text name="duration"/><divider name="divider"/><button name="blank"/><divider name="divider"/><button name="mute"/><slider name="volume"/><divider name="divider"/><button name="fullscreen"/></group></layout><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAElJREFUOI3t1LERACAMQlFgGvcfxNIhHMK4gsUvUviOmgtNsiAZkBSEKxKEnCYkkQrJn/YwbUNiSDDYRZaQRDaShv+oX9GBZEIuK+8hXVLs+/YAAAAASUVORK5CYII="/><element name="blankButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAYCAYAAAAyJzegAAAAFElEQVQYV2P8//8/AzpgHBUc7oIAGZdH0RjKN8EAAAAASUVORK5CYII="/><element name="capLeft" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAYAAAA7zJfaAAAAQElEQVQIWz3LsRGAMADDQJ0XB5bMINABZ9GENGrszxhjT2WLSqxEJG2JQrTMdV2q5LpOAvyRaVmsi7WdeZ/7+AAaOTq7BVrfOQAAAABJRU5ErkJggg=="/><element name="capRight" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAYAAAA7zJfaAAAAQElEQVQIWz3LsRGAMADDQJ0XB5bMINABZ9GENGrszxhjT2WLSqxEJG2JQrTMdV2q5LpOAvyRaVmsi7WdeZ/7+AAaOTq7BVrfOQAAAABJRU5ErkJggg=="/><element name="divider" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADhJREFUCB0FwcENgEAAw7Aq+893g8APUILNOQcbFRktVGqUVFRkWNz3xTa2sUaLNUosKlRUvvf5AdbWOTtzmzyWAAAAAElFTkSuQmCC"/><element name="playButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAANUlEQVR42u2RsQkAAAjD/NTTPaW6dXLrINJA1kBpGPMAjDWmOgp1HFQXx+b1KOefO4oxY57R73YnVYCQUCQAAAAASUVORK5CYII="/><element name="pauseButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAIUlEQVQ4jWNgGAWjYOiD/0gYG3/U0FFDB4Oho2AUDAYAAEwiL9HrpdMVAAAAAElFTkSuQmCC"/><element name="prevButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAQklEQVQ4y2NgGAWjYOiD/1AMA/JAfB5NjCJD/YH4PRaLyDa0H4lNNUP/DxlD59PCUBCIp3ZEwYA+NZLUKBgFgwEAAN+HLX9sB8u8AAAAAElFTkSuQmCC"/><element name="nextButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAQElEQVQ4y2NgGAWjYOiD/0B8Hojl0cT+U2ooCL8HYn9qGwrD/bQw9P+QMXQ+tSMqnpoRBUpS+tRMUqNgFAwGAADxZy1/mHvFnAAAAABJRU5ErkJggg=="/><element name="timeSliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAOElEQVRIDe3BwQkAIRADwAhhw/nU/kWwUK+KPITMABFh19Y+F0acY8CJvX9wYpXgRElwolSIiMf9ZWEDhtwurFsAAAAASUVORK5CYII="/><element name="timeSliderBuffer" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAN0lEQVRIDe3BwQkAMQwDMBcc55mRe9zi7RR+FCwBEWG39vcfGHFm4MTuhhMlwYlVBSdKhYh43AW/LQMKm1spzwAAAABJRU5ErkJggg=="/><element name="timeSliderProgress" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAIElEQVRIiWNgGAWjYBTQBfynMR61YCRYMApGwSigMQAAiVWPcbq6UkIAAAAASUVORK5CYII="/><element name="timeSliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAYCAYAAAA/OUfnAAAAO0lEQVQYlWP4//8/Awwz0JgDBP/BeN6Cxf/hnI2btiI4u/fsQ3AOHjqK4Jw4eQbBOX/hEoKDYjSd/AMA4cS4mfLsorgAAAAASUVORK5CYII="/><element name="muteButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAJklEQVQ4y2NgGAUjDcwH4v/kaPxPikZkxcNVI9mBQ5XoGAWDFwAAsKAXKQQmfbUAAAAASUVORK5CYII="/><element name="unmuteButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAMklEQVQ4y2NgGAWDHPyntub5xBr6Hwv/Pzk2/yfVG/8psRFE25Oq8T+tQnsIaB4FVAcAi2YVysVY52AAAAAASUVORK5CYII="/><element name="volumeSliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAgMAAACdGdVrAAAACVBMVEUAAACmpqampqbBXAu8AAAAAnRSTlMAgJsrThgAAAArSURBVAhbY2AgErBAyA4I2QEhOyBkB4TsYOhAoaCCUCUwDTDtMMNgRuMHAFB5FoGH5T0UAAAAAElFTkSuQmCC"/><element name="volumeSliderProgress" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAgMAAACdGdVrAAAACVBMVEUAAAAAAAAAAACDY+nAAAAAAnRSTlMAgJsrThgAAAArSURBVAhbY2AgErBAyA4I2QEhOyBkB4TsYOhAoaCCUCUwDTDtMMNgRuMHAFB5FoGH5T0UAAAAAElFTkSuQmCC"/><element name="volumeSliderCapRight" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAYCAYAAAAyJzegAAAAFElEQVQYV2P8//8/AzpgHBUc7oIAGZdH0RjKN8EAAAAASUVORK5CYII="/><element name="fullscreenButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAQklEQVRIiWNgGAWjYMiD/0iYFDmSLbDHImdPLQtgBpEiR7Zl2NijAA5oEkT/0Whi5UiyAJ8BVMsHNMtoo2AUDAIAAGdcIN3IDNXoAAAAAElFTkSuQmCC"/><element name="normalscreenButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAP0lEQVRIx2NgGAWjYMiD/1RSQ5QB/wmIUWzJfzx8qhj+n4DYCAY0DyJ7PBbYU8sHMEvwiZFtODXUjIJRMJgBACpWIN2ZxdPTAAAAAElFTkSuQmCC"/></elements></component><component name="display"><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAQMAAAAk8RryAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlOZpuml+rYAAAASSURBVBhXY2AYJuA/GBwY6jQAyDyoK8QcL4QAAAAASUVORK5CYII="/><element name="playIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAiUlEQVR42u3XSw2AMBREURwgAQlIQAISKgUpSEFKJeCg5b0E0kWBTVcD9ySTsL0Jn9IBAAAA+K2UUrBlW/Rr5ZDoIeeuoFkxJD9ss03aIXXQqB9SttoG7ZA6qNcOKdttiwcJh9RB+iFl4SshkRBuLR72+9cvH0SOKI2HRo7x/Fi1/uoCAAAAwLsD8ki99IlO2dQAAAAASUVORK5CYII="/><element name="muteIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAVUlEQVR42u3WMQrAIAxAUW/g/SdvGmvpoOBeSHgPsjj5QTANAACARCJilIhYM0tEvJM+Ik3Id9E957kQIb+F3OdCPC0hPkQriqWx9hp/x/QGAABQyAPLB22VGrpLDgAAAABJRU5ErkJggg=="/><element name="errorIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAA/0lEQVR42u2U0QmEMBAF7cASLMESUoIlpARLSCkpwRJSgiWkhOvAXD4WsgRkyaG5DbyB+Yvg8KITAAAAAAAYk+u61mwk15EjPtlEfihmqIiZR1Qx80ghjgdUuiHXGHSVsoag0x6x8DUoyjD5KovmEJ9NTDMRPIT0mtdIUkjlonuNohO+Ha99DTmkuGgKCTcvebAzx82ZoCWC3/3aIMWSRucaxcjORSFY4xpFdjYJGp1rFGcyCYZ/RVh6AUnfcNZ2zih3/mGj1jVCdiNDwyrq1rA/xMdeEXvDVdnYc1vDc3uPkDObXrlaxbNHSOohQhr/WOeLEWfWTgAAAAAAADzNF9sHJ7PJ57MlAAAAAElFTkSuQmCC"/><element name="bufferIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAACBklEQVR42u3Zv0sCYRzH8USTzOsHHEWGkC1HgaDgkktGDjUYtDQ01RDSljQ1BLU02+rk1NTm2NLq4Nx/0L/h9fnCd3j4cnZe1/U8xiO8h3uurufF0/3COd/3/0UWYiEWYiEWYiGJQ+J8xuPxKhXjEMZANinjIZhkGuVRNioE4wVURo4JkHm0xKWmhRAc1bh1EyCUw5BcBIjHiApKa4CErko6DEJwuRo6IRKzyJD8FJAyI3Zp2zRImiBcRhlfo5RtlxCcE3CcDNpGrhYIT2IhAJKilO0VRmzJ32fAMTpBTS0QMfGwlcuKMRftE0DJ0wCJdcOsCkBdXP3Mh9CEFUBTPS9mDZJBG6io4aqVzMdCokCw9H3kT6j/C/9iDdSeUMNC7DkyyxAs/Rk6Qss8FPWRZgdVtUH4DjxEn1zxh+/zj1wHlf4MQhNGrwqA6sY40U8JonRJwEQh+AO3AvCG6gHv4U7IY4krxkroWoAOkoQMGfCBrgIm+YBGqPENpIJ66CJg3x66Y0gnSUidAEEnNr9jjLiWMn5DiWP0OC/oAsCgkq43xBdGDMQr7YASP/vEkHvdl1+JOCcEV5sC4hGEOzTlPuKgd0b0xD4JkRcOgnRRTjdErkYhAsQVq6IdUuPJtmk7BCL3t/h88cx91pKQkI/pkDx6pmYTIjEoxiHsN1YWYiEWYiEWknhflZ5IErA5nr8AAAAASUVORK5CYII="/></elements></component><component name="dock"><settings><setting name="fontcolor" value="0xffffff"/></settings><elements><element name="button" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAQMAAAAk8RryAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlOZpuml+rYAAAASSURBVBhXY2AYJuA/GBwY6jQAyDyoK8QcL4QAAAAASUVORK5CYII="/></elements></component><component name="playlist"><settings><setting name="backgroundcolor" value="0xe8e8e8"/></settings><elements><element name="item" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAIAAAC1nk4lAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHBJREFUaN7t2MENwCAMBEEe9N8wSKYC/D8YV7CyJoRkVtVImxkZPQInMxoP0XiIxkM0HsGbjjSNBx544IEHHnjggUe/6UQeey0PIh7XTftGxKPj4eXCtLsHHh+ZxkO0Iw8PR55Ni8ZD9Hu/EAoP0dc5RRg9qeRjVF8AAAAASUVORK5CYII="/><element name="sliderCapTop" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAHCAYAAADnCQYGAAAAFUlEQVQokWP8//8/A7UB46ihI9hQAKt6FPPXhVGHAAAAAElFTkSuQmCC"/><element name="sliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUCAYAAABiS3YzAAAAKElEQVQ4y2P4//8/Az68bNmy/+iYkB6GUUNHDR01dNTQUUNHDaXcUABUDOKhcxnsSwAAAABJRU5ErkJggg=="/><element name="sliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUCAYAAABiS3YzAAAAJUlEQVQ4T2P4//8/Ay4MBP9xYbz6Rg0dNXTU0FFDRw0dNZRyQwHH4NBa7GJsXAAAAABJRU5ErkJggg=="/><element name="sliderCapBottom" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAHCAYAAADnCQYGAAAAFUlEQVQokWP8//8/A7UB46ihI9hQAKt6FPPXhVGHAAAAAElFTkSuQmCC"/></elements></component></components></skin>';this.xml=null;if(window.DOMParser){parser=new DOMParser();this.xml=parser.parseFromString(this.text,"text/xml")}else{this.xml=new ActiveXObject("Microsoft.XMLDOM");this.xml.async="false";this.xml.loadXML(this.text)}return this}})(jwplayer);(function(a){a.player=function(b){var f,g,e,c=this;function d(){f={video:new a.video(document.createElement("video")),settings:b};c.id="player";c.settings=f.settings;g={container:document.getElementById(c.id),controlbar:new a.controlbar(c,f.settings)};e=new a.controller(f,g);jwplayer.utils.appendStylesheet("#"+c.id+" video",{width:"100%",height:"100%",background:"#000",display:"none"});g.container.appendChild(f.video.getTag());g.container.appendChild(g.controlbar.getDisplayElement())}this.jwPlay=function(){e.play()};this.jwPause=function(){e.pause()};this.jwStop=function(){e.stop()};d()}})(jwplayer.html5);(function(a){a.html5.skin=function(){var b={};var c=false;this.load=function(d,e){new a.html5.skinloader(d,function(f){c=true;b=f;e()},function(){new a.html5.skinloader("",function(f){c=true;b=f;e()})})};this.getSkinElement=function(d,e){if(c){try{return b[d].elements[e]}catch(f){a.utils.log("No such skin component / element: ",[d,e])}}return null};this.getComponentSettings=function(d){if(c&&b&&b[d]){return b[d].settings}return null};this.getComponentLayout=function(d){if(c){var e=b[d].layout;if(e&&(e.left||e.right||e.center)){return b[d].layout}}return null}}})(jwplayer);(function(a){a.html5.skinloader=function(f,o,j){var n={};var c=o;var k=j;var e=true;var i;var m=f;var r=false;function l(){if(typeof m!="string"||m===""){d(a.html5.defaultskin().xml)}else{a.utils.ajax(a.utils.getAbsolutePath(m),function(s){try{if(a.utils.exists(s.responseXML)){d(s.responseXML);return}}catch(t){h()}d(a.html5.defaultskin().xml)},function(s){d(a.html5.defaultskin().xml)})}}function d(x){var D=x.getElementsByTagName("component");if(D.length===0){return}for(var G=0;G<D.length;G++){var B=D[G].getAttribute("name");var A={settings:{},elements:{},layout:{}};n[B]=A;var F=D[G].getElementsByTagName("elements")[0].getElementsByTagName("element");for(var E=0;E<F.length;E++){b(F[E],B)}var y=D[G].getElementsByTagName("settings")[0];if(y&&y.childNodes.length>0){var J=y.getElementsByTagName("setting");for(var O=0;O<J.length;O++){var P=J[O].getAttribute("name");var H=J[O].getAttribute("value");var w=/color$/.test(P)?"color":null;n[B].settings[P]=a.utils.typechecker(H,w)}}var K=D[G].getElementsByTagName("layout")[0];if(K&&K.childNodes.length>0){var L=K.getElementsByTagName("group");for(var v=0;v<L.length;v++){var z=L[v];n[B].layout[z.getAttribute("position")]={elements:[]};for(var N=0;N<z.attributes.length;N++){var C=z.attributes[N];n[B].layout[z.getAttribute("position")][C.name]=C.value}var M=z.getElementsByTagName("*");for(var u=0;u<M.length;u++){var s=M[u];n[B].layout[z.getAttribute("position")].elements.push({type:s.tagName});for(var t=0;t<s.attributes.length;t++){var I=s.attributes[t];n[B].layout[z.getAttribute("position")].elements[u][I.name]=I.value}if(!a.utils.exists(n[B].layout[z.getAttribute("position")].elements[u].name)){n[B].layout[z.getAttribute("position")].elements[u].name=s.tagName}}}}e=false;q()}}function q(){clearInterval(i);if(!r){i=setInterval(function(){p()},100)}}function b(x,w){var v=new Image();var s=x.getAttribute("name");var u=x.getAttribute("src");var z;if(u.indexOf("data:image/png;base64,")===0){z=u}else{var t=a.utils.getAbsolutePath(m);var y=t.substr(0,t.lastIndexOf("/"));z=[y,w,u].join("/")}n[w].elements[s]={height:0,width:0,src:"",ready:false,image:v};v.onload=function(A){g(v,s,w)};v.onerror=function(A){r=true;q();k()};v.src=z}function h(){for(var t in n){var v=n[t];for(var s in v.elements){var w=v.elements[s];var u=w.image;u.onload=null;u.onerror=null;delete w.image;delete v.elements[s]}delete n[t]}}function p(){for(var s in n){if(s!="properties"){for(var t in n[s].elements){if(!n[s].elements[t].ready){return}}}}if(e===false){clearInterval(i);c(n)}}function g(s,u,t){if(n[t]&&n[t].elements[u]){n[t].elements[u].height=s.height;n[t].elements[u].width=s.width;n[t].elements[u].src=s.src;n[t].elements[u].ready=true;q()}else{a.utils.log("Loaded an image for a missing element: "+t+"."+u)}}l()}})(jwplayer);(function(a){a.video=function(k){var b={abort:c,canplay:m,canplaythrough:c,durationchange:c,emptied:c,ended:c,error:h,loadeddata:c,loadedmetadata:c,loadstart:c,pause:c,play:c,playing:c,progress:c,ratechange:c,readystatechange:c,seeked:c,seeking:c,stalled:c,suspend:c,timeupdate:c,volumechange:c,waiting:c};var e;var g;var d;function l(p){e=p;i()}function i(){for(var p in b){e.addEventListener(p,b[p])}}function c(p){console.log("%s %o (%s,%s)",p.type,p,f(),j())}function m(p){g=true;c(p);if(d>0){n(d)}}function h(p){console.log("Error: %o",e.error);c(p)}function f(){if(e.buffered.length>0){return e.buffered.start(0)}else{return 0}}function j(){if(e.buffered.length>0){return Math.ceil(e.buffered.end(e.buffered.length-1))}else{return 0}}var o;this.load=function(p){g=false;d=0;o=p;e.src=o;e.load()};this.stop=function(){e.removeAttribute("src");e.load();e.style.display="none"};this.play=function(){e.style.display="block";e.play()};this.pause=function(){e.pause()};var n=this.seek=function(p){if(g){d=0;e.play();e.currentTime=p}else{d=p}};this.getTag=function(){return k};l(k)}})(jwplayer.html5);(function(a){a.utils={}})(jwplayer.html5);(function(a){a.animations=function(d,j,t,e,b,q){var p,o,l,r,h,k,i,g;var s,w,f,w,c;function m(){k=q?q:a.animations.easing.quint.easeOut;p=d;o=j;if(p.id&&!a.animations.active[p.id]){a.animations.active[p.id]={}}if(isNaN(t)){if(t.indexOf("%")>0){i="%"}else{if(t.indexOf("px")){i="px"}}l=parseFloat(t.replace(i,""));r=parseFloat(e.replace(i,""))}else{i="";l=parseFloat(t);r=parseFloat(e)}h=parseFloat(b);this.id=Math.random()}this.start=function(){if(p.id){if(a.animations.active[p.id][o]&&a.animations.active[p.id][o]!=g){a.animations.active[p.id][o].stop();newFrom=parseFloat(p.style[o].toString().replace(i,""));w=h*(l/newFrom)}a.animations.active[p.id][o]=g}if(c){clearInterval(c)}f=(new Date()).valueOf();n();c=setInterval(n,a.animations.INTERVAL_SPEED)};this.stop=function(){clearInterval(c);if(p.id){a.animations.active[p.id][o]=null}};function n(){w=(new Date()).valueOf();if(w-f>=h){u();return}value=k((w-f),0,1,h);v(value)}function u(){v(1);g.stop()}function v(x){var y=(l+(r-l)*x);p.style[o]=y+i}g=this;m()};a.animations.INTERVAL_SPEED=10;a.animations.easing={};a.animations.easing.quint={easeIn:function(f,e,h,g){return h*(f/=g)*f*f*f*f+e},easeOut:function(f,e,h,g){return h*((f=f/g-1)*f*f*f*f+1)+e},easeInOut:function(f,e,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+e}return h/2*((f-=2)*f*f*f*f+2)+e}};a.animations.easing.linear={easeIn:function(f,e,h,g){return h*f/g+e},easeOut:function(f,e,h,g){return h*f/g+e},easeInOut:function(f,e,h,g){return h*f/g+e}};a.animations.active={};a.animations.fadeIn=function(b,d,e){var c=new a.animations(b,"opacity",0,1,d,e);c.start()};a.animations.fadeOut=function(b,d,e){var c=new a.animations(b,"opacity",1,0,d,e);c.start()};a.animations.transform=function(c,h,f,i,g,b,e){var j=new a.animations(c,"left",h,i,b,e);var d=new a.animations(c,"top",f,g,b,e);j.start();d.start()}})(jwplayer.html5.utils)}; 
  • branches/jw6/src/js/html5/jwplayer.html5.controlbar.js

    r2171 r2172  
    111111                 
    112112                var _controlbar, _id; 
     113                 
     114                var _toggles = { 
     115                        play: "pause", 
     116                        mute: "unmute", 
     117                        fullscreen: "normalscreen" 
     118                } 
     119                 
     120                var _toggleStates = { 
     121                        play: false, 
     122                        mute: false, 
     123                        fullscreen: false 
     124                } 
     125                 
     126                var _buttonMapping = { 
     127                        play: _play, 
     128                        mute: _mute, 
     129                        fullscreen: _fullscreen 
     130                }; 
    113131 
    114132                function _init() { 
    115133                        _elements = {}; 
    116134                         
    117                         _api = { 
    118                                 settings: { 
    119                                         controlbar: { 
    120                                                 position: "OVER" 
    121                                         } 
    122                                 }, 
    123                                 id: "player" 
    124                         }; 
     135                        _api = api; 
    125136                         
    126137                        config = _utils.extend({}, config); 
    127138                        _id = _api.id + "_controlbar"; 
    128                          
     139 
     140                        _controlbar = _createSpan(); 
     141                        _controlbar.id = _id; 
     142                        _controlbar.className = "jwcontrolbar"; 
     143 
    129144                        (new html5.skinloader(config.skin, function(skin) { 
    130145                                _api.skin = skin; 
     
    171186                 
    172187                function _buildControlbar() { 
    173                         _controlbar = _createSpan(); 
    174                         _controlbar.id = _id; 
    175                         _controlbar.className = "jwcontrolbar"; 
    176  
    177188                        var capLeft = _buildImage("capLeft"); 
    178189                        var capRight = _buildImage("capRight"); 
     
    250261                        //element.id = _createElementId(name); 
    251262                        element.className = name; 
     263                        element.addEventListener("click", (function(name) { return function() { _buttonClickHandler(name) } })(name)); 
    252264 
    253265                        var outSkin = _getSkinElement(name + "Button"); 
     
    255267                         
    256268                        element.innerHTML = "&nbsp;"; 
    257                         if (!outSkin.src) { 
     269                        if (!_getSkinElement(name + "Button").src) { 
    258270                                return element; 
    259271                        } 
    260272                         
    261                         _style(_internalSelector('.'+name), {  
    262                                 width: outSkin.width, 
    263                                 background: 'url('+ outSkin.src +') center no-repeat' 
     273                        _buttonStyle(_internalSelector('.'+name), outSkin, overSkin); 
     274                        var toggle = _toggles[name]; 
     275                        if (toggle) { 
     276                                _buttonStyle(_internalSelector('.'+name+'.toggle'), _getSkinElement(toggle+"Button"), _getSkinElement(toggle+"ButtonOver")); 
     277                        } 
     278 
     279                        _elements[name] = element; 
     280                         
     281                        return element; 
     282                } 
     283                 
     284                function _buttonStyle(selector, out, over) { 
     285                        if (!out.src) { 
     286                                return; 
     287                        } 
     288                         
     289                        _style(selector, {  
     290                                width: out.width, 
     291                                background: 'url('+ out.src +') center no-repeat' 
    264292                        }); 
    265293                         
    266                         if (overSkin.src) { 
    267                                 _style(_internalSelector('.'+name) + ':hover', {  
    268                                         background: 'url('+ overSkin.src +') center no-repeat' 
     294                        if (over.src) { 
     295                                _style(selector + ':hover', {  
     296                                        background: 'url('+ over.src +') center no-repeat' 
    269297                                }); 
    270298                        } 
    271  
    272                         _elements[name] = element; 
    273                          
    274                         return element; 
    275                 } 
    276  
     299                } 
     300                 
     301                function _buttonClickHandler(name) { 
     302                        if (_buttonMapping[name]) { 
     303                                _buttonMapping[name](); 
     304                        } 
     305                } 
     306                 
     307 
     308                function _play() { 
     309                        if (_toggleStates.play) { 
     310                                _api.jwPause(); 
     311                        } else { 
     312                                _api.jwPlay(); 
     313                        } 
     314                        _toggleButton("play"); 
     315                } 
     316                 
     317                function _mute() { 
     318                        _toggleButton("mute"); 
     319                } 
     320                 
     321                function _fullscreen() { 
     322                        _toggleButton("fullscreen"); 
     323                } 
     324                 
     325                function _toggleButton(name) { 
     326                        _elements[name].className = name + (_toggleStates[name] ? "" : " toggle"); 
     327                        _toggleStates[name] ^= true; 
     328                } 
     329                 
    277330                function _createElementId(name) { 
    278331                        //return (_id + "_" + name + Math.round(Math.random()*10000000)); 
     
    382435                         
    383436                        _style(_internalSelector(".volume"), { 
    384                                 width: (capLeftWidth + railWidth + capRightWidth), 
    385                                 margin: (capLeftWidth * capRightWidth == 0) ? "0 5px" : 0  
     437                                width: (capLeftWidth + railWidth + capRightWidth) 
    386438                        }); 
    387439                } 
     
    477529                        } 
    478530                } 
    479                  
    480531                 
    481532                // Call constructor 
     
    523574                '-o-transition': 'background 1s' 
    524575            }); 
     576            _style(CB_CLASS+' button:hover', { 
     577                '-webkit-transition': 'background 0s', 
     578                '-moz-transition': 'background 0s', 
     579                '-o-transition': 'background 0s' 
     580            }); 
    525581            _style(CB_CLASS+' .capRight', {  
    526582                        right: 0, 
     
    535591            _style(CB_CLASS+' .rail,' + CB_CLASS + ' .thumb', { 
    536592                position: JW_CSS_ABSOLUTE, 
    537                 height: JW_CSS_100PCT 
     593                height: JW_CSS_100PCT, 
     594                cursor: 'pointer' 
    538595            }); 
    539596            _style(CB_CLASS + ' .timeSliderThumb', { 
    540597                '-webkit-transition': 'left .5s linear 0s, opacity .5s ease .5s', 
    541598                '-moz-transition': 'left .5s linear 0s, opacity .5s ease .5s' 
    542                 //OTransition: 'left .5s linear 0s, opacity .5s ease .5s' -- this produces console errors in Opera 
     599                //-o-transition: 'left .5s linear 0s, opacity .5s ease .5s' -- this produces console errors in Opera 
    543600            });              
    544601            _style(CB_CLASS + ' .timeSliderProgress,' + CB_CLASS + ' .timeSliderBuffer', { 
  • branches/jw6/src/js/html5/jwplayer.html5.js

    r2167 r2172  
    66 */ 
    77(function(jwplayer) { 
    8         jwplayer.html5 = {}; 
     8        jwplayer.html5 = {} 
    99})(jwplayer); 
    1010 
  • branches/jw6/src/js/html5/jwplayer.html5.player.js

    r2167 r2172  
    11/** 
    2  * jwplayer.html5 namespace 
     2 * Main HTMl5 player class 
    33 * 
    44 * @author pablo 
    55 * @version 6.0 
    66 */ 
    7 (function(jwplayer) { 
    8         jwplayer.html5 = {}; 
    9 })(jwplayer); 
     7(function(html5) { 
     8        html5.player = function(config) { 
     9                var _model, _view, _controller, 
     10                        _api = this; 
     11                 
     12                function _init() { 
     13                        _model = { 
     14                                video: new html5.video(document.createElement("video")), 
     15                                settings: config 
     16                        }; 
     17                 
     18                        _api.id = "player"; 
     19                        _api.settings = _model.settings; 
    1020 
     21                        _view = { 
     22                                container: document.getElementById(_api.id), 
     23                                controlbar: new html5.controlbar(_api, _model.settings) 
     24                        }; 
     25                         
     26                        _controller = new html5.controller(_model, _view); 
     27                 
     28                        jwplayer.utils.appendStylesheet("#"+_api.id+" video", { 
     29                                width: "100%", 
     30                                height: "100%", 
     31                                background: "#000", 
     32                                display: "none" 
     33                        }); 
     34                         
     35                        _view.container.appendChild(_model.video.getTag()); 
     36                        _view.container.appendChild(_view.controlbar.getDisplayElement()); 
     37                         
     38                } 
     39                 
     40                this.jwPlay = function(){ _controller.play() }; 
     41                this.jwPause = function(){ _controller.pause() }; 
     42                this.jwStop = function(){ _controller.stop() }; 
     43                 
     44                _init(); 
     45        } 
     46})(jwplayer.html5); 
     47 
  • branches/jw6/src/js/html5/jwplayer.html5.video.js

    r2167 r2172  
    108108                  _video.play(); 
    109109          } 
    110    
     110 
     111          this.pause = function() { 
     112                  _video.pause(); 
     113          } 
     114 
    111115          var _seek = this.seek = function(pos) { 
    112116                  if (_canSeek) { 
     
    118122                  } 
    119123          } 
     124 
     125          // Provide access to video tag 
     126          // TODO: remove 
     127          this.getTag = function() { 
     128                  return videotag; 
     129          } 
    120130           
    121131          // Call constructor 
Note: See TracChangeset for help on using the changeset viewer.