Changeset 2172
- Timestamp:
- 04/17/12 12:43:04 (13 months ago)
- Location:
- branches/jw6
- Files:
-
- 6 edited
- 1 copied
-
bin-debug/jwplayer.js (modified) (13 diffs)
-
build/build.xml (modified) (1 diff)
-
jwplayer.min.js (modified) (1 diff)
-
src/js/html5/jwplayer.html5.controlbar.js (modified) (8 diffs)
-
src/js/html5/jwplayer.html5.js (modified) (1 diff)
-
src/js/html5/jwplayer.html5.player.js (copied) (copied from branches/jw6/src/js/html5/jwplayer.html5.js) (1 diff)
-
src/js/html5/jwplayer.html5.video.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/jw6/bin-debug/jwplayer.js
r2171 r2172 551 551 */ 552 552 (function(jwplayer) { 553 jwplayer.html5 = {} ;553 jwplayer.html5 = {} 554 554 })(jwplayer); 555 555 … … 666 666 667 667 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 }; 668 686 669 687 function _init() { 670 688 _elements = {}; 671 689 672 _api = { 673 settings: { 674 controlbar: { 675 position: "OVER" 676 } 677 }, 678 id: "player" 679 }; 690 _api = api; 680 691 681 692 config = _utils.extend({}, config); 682 693 _id = _api.id + "_controlbar"; 683 694 695 _controlbar = _createSpan(); 696 _controlbar.id = _id; 697 _controlbar.className = "jwcontrolbar"; 698 684 699 (new html5.skinloader(config.skin, function(skin) { 685 700 _api.skin = skin; … … 726 741 727 742 function _buildControlbar() { 728 _controlbar = _createSpan();729 _controlbar.id = _id;730 _controlbar.className = "jwcontrolbar";731 732 743 var capLeft = _buildImage("capLeft"); 733 744 var capRight = _buildImage("capRight"); … … 805 816 //element.id = _createElementId(name); 806 817 element.className = name; 818 element.addEventListener("click", (function(name) { return function() { _buttonClickHandler(name) } })(name)); 807 819 808 820 var outSkin = _getSkinElement(name + "Button"); … … 810 822 811 823 element.innerHTML = " "; 812 if (! outSkin.src) {824 if (!_getSkinElement(name + "Button").src) { 813 825 return element; 814 826 } 815 827 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' 819 847 }); 820 848 821 if (over Skin.src) {822 _style( _internalSelector('.'+name)+ ':hover', {823 background: 'url('+ over Skin.src +') center no-repeat'849 if (over.src) { 850 _style(selector + ':hover', { 851 background: 'url('+ over.src +') center no-repeat' 824 852 }); 825 853 } 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 832 885 function _createElementId(name) { 833 886 //return (_id + "_" + name + Math.round(Math.random()*10000000)); … … 937 990 938 991 _style(_internalSelector(".volume"), { 939 width: (capLeftWidth + railWidth + capRightWidth), 940 margin: (capLeftWidth * capRightWidth == 0) ? "0 5px" : 0 992 width: (capLeftWidth + railWidth + capRightWidth) 941 993 }); 942 994 } … … 1032 1084 } 1033 1085 } 1034 1035 1086 1036 1087 // Call constructor … … 1078 1129 '-o-transition': 'background 1s' 1079 1130 }); 1131 _style(CB_CLASS+' button:hover', { 1132 '-webkit-transition': 'background 0s', 1133 '-moz-transition': 'background 0s', 1134 '-o-transition': 'background 0s' 1135 }); 1080 1136 _style(CB_CLASS+' .capRight', { 1081 1137 right: 0, … … 1090 1146 _style(CB_CLASS+' .rail,' + CB_CLASS + ' .thumb', { 1091 1147 position: JW_CSS_ABSOLUTE, 1092 height: JW_CSS_100PCT 1148 height: JW_CSS_100PCT, 1149 cursor: 'pointer' 1093 1150 }); 1094 1151 _style(CB_CLASS + ' .timeSliderThumb', { 1095 1152 '-webkit-transition': 'left .5s linear 0s, opacity .5s ease .5s', 1096 1153 '-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 Opera1154 //-o-transition: 'left .5s linear 0s, opacity .5s ease .5s' -- this produces console errors in Opera 1098 1155 }); 1099 1156 _style(CB_CLASS + ' .timeSliderProgress,' + CB_CLASS + ' .timeSliderBuffer', { … … 1117 1174 _generalStyles(); 1118 1175 })(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 /** 1119 1216 * JW Player Default skin 1120 1217 * … … 1141 1238 1142 1239 })(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 1143 1287 /** 1144 1288 * JW Player component that loads PNG skins. … … 1499 1643 _video.play(); 1500 1644 } 1501 1645 1646 this.pause = function() { 1647 _video.pause(); 1648 } 1649 1502 1650 var _seek = this.seek = function(pos) { 1503 1651 if (_canSeek) { … … 1508 1656 _delayedSeek = pos; 1509 1657 } 1658 } 1659 1660 // Provide access to video tag 1661 // TODO: remove 1662 this.getTag = function() { 1663 return videotag; 1510 1664 } 1511 1665 -
branches/jw6/build/build.xml
r2166 r2172 10 10 <fileset dir="${basedir}/src/js/utils" includes="jwplayer.utils.js" excludes="" /> 11 11 <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" /> 14 14 <fileset dir="${basedir}/src/js/html5/utils" includes="jwplayer.html5.utils.js" /> 15 15 <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=" ";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=" ";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)};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(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=" ";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=" ";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 111 111 112 112 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 }; 113 131 114 132 function _init() { 115 133 _elements = {}; 116 134 117 _api = { 118 settings: { 119 controlbar: { 120 position: "OVER" 121 } 122 }, 123 id: "player" 124 }; 135 _api = api; 125 136 126 137 config = _utils.extend({}, config); 127 138 _id = _api.id + "_controlbar"; 128 139 140 _controlbar = _createSpan(); 141 _controlbar.id = _id; 142 _controlbar.className = "jwcontrolbar"; 143 129 144 (new html5.skinloader(config.skin, function(skin) { 130 145 _api.skin = skin; … … 171 186 172 187 function _buildControlbar() { 173 _controlbar = _createSpan();174 _controlbar.id = _id;175 _controlbar.className = "jwcontrolbar";176 177 188 var capLeft = _buildImage("capLeft"); 178 189 var capRight = _buildImage("capRight"); … … 250 261 //element.id = _createElementId(name); 251 262 element.className = name; 263 element.addEventListener("click", (function(name) { return function() { _buttonClickHandler(name) } })(name)); 252 264 253 265 var outSkin = _getSkinElement(name + "Button"); … … 255 267 256 268 element.innerHTML = " "; 257 if (! outSkin.src) {269 if (!_getSkinElement(name + "Button").src) { 258 270 return element; 259 271 } 260 272 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' 264 292 }); 265 293 266 if (over Skin.src) {267 _style( _internalSelector('.'+name)+ ':hover', {268 background: 'url('+ over Skin.src +') center no-repeat'294 if (over.src) { 295 _style(selector + ':hover', { 296 background: 'url('+ over.src +') center no-repeat' 269 297 }); 270 298 } 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 277 330 function _createElementId(name) { 278 331 //return (_id + "_" + name + Math.round(Math.random()*10000000)); … … 382 435 383 436 _style(_internalSelector(".volume"), { 384 width: (capLeftWidth + railWidth + capRightWidth), 385 margin: (capLeftWidth * capRightWidth == 0) ? "0 5px" : 0 437 width: (capLeftWidth + railWidth + capRightWidth) 386 438 }); 387 439 } … … 477 529 } 478 530 } 479 480 531 481 532 // Call constructor … … 523 574 '-o-transition': 'background 1s' 524 575 }); 576 _style(CB_CLASS+' button:hover', { 577 '-webkit-transition': 'background 0s', 578 '-moz-transition': 'background 0s', 579 '-o-transition': 'background 0s' 580 }); 525 581 _style(CB_CLASS+' .capRight', { 526 582 right: 0, … … 535 591 _style(CB_CLASS+' .rail,' + CB_CLASS + ' .thumb', { 536 592 position: JW_CSS_ABSOLUTE, 537 height: JW_CSS_100PCT 593 height: JW_CSS_100PCT, 594 cursor: 'pointer' 538 595 }); 539 596 _style(CB_CLASS + ' .timeSliderThumb', { 540 597 '-webkit-transition': 'left .5s linear 0s, opacity .5s ease .5s', 541 598 '-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 Opera599 //-o-transition: 'left .5s linear 0s, opacity .5s ease .5s' -- this produces console errors in Opera 543 600 }); 544 601 _style(CB_CLASS + ' .timeSliderProgress,' + CB_CLASS + ' .timeSliderBuffer', { -
branches/jw6/src/js/html5/jwplayer.html5.js
r2167 r2172 6 6 */ 7 7 (function(jwplayer) { 8 jwplayer.html5 = {} ;8 jwplayer.html5 = {} 9 9 })(jwplayer); 10 10 -
branches/jw6/src/js/html5/jwplayer.html5.player.js
r2167 r2172 1 1 /** 2 * jwplayer.html5 namespace2 * Main HTMl5 player class 3 3 * 4 4 * @author pablo 5 5 * @version 6.0 6 6 */ 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; 10 20 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 108 108 _video.play(); 109 109 } 110 110 111 this.pause = function() { 112 _video.pause(); 113 } 114 111 115 var _seek = this.seek = function(pos) { 112 116 if (_canSeek) { … … 118 122 } 119 123 } 124 125 // Provide access to video tag 126 // TODO: remove 127 this.getTag = function() { 128 return videotag; 129 } 120 130 121 131 // Call constructor
Note: See TracChangeset
for help on using the changeset viewer.
