Changeset 2234
- Timestamp:
- 06/07/12 05:15:17 (12 months ago)
- Location:
- branches/jw6
- Files:
-
- 3 added
- 1 deleted
- 33 edited
-
bin-debug/jwplayer.flash.swf (modified) (previous)
-
bin-debug/jwplayer.html5.js (modified) (18 diffs)
-
bin-debug/jwplayer.js (modified) (6 diffs)
-
jwplayer.flash.swf (modified) (previous)
-
jwplayer.html5.js (modified) (1 diff)
-
jwplayer.js (modified) (1 diff)
-
src/flash/com/longtailvideo/jwplayer/controller/Controller.as (modified) (2 diffs)
-
src/flash/com/longtailvideo/jwplayer/controller/PlayerSetup.as (modified) (3 diffs)
-
src/flash/com/longtailvideo/jwplayer/media/MediaProvider.as (modified) (1 diff)
-
src/flash/com/longtailvideo/jwplayer/model/Model.as (modified) (3 diffs)
-
src/flash/com/longtailvideo/jwplayer/model/PlaylistItem.as (modified) (1 diff)
-
src/flash/com/longtailvideo/jwplayer/player/PlayerVersion.as (modified) (1 diff)
-
src/flash/com/longtailvideo/jwplayer/view/View.as (modified) (5 diffs)
-
src/flash/com/longtailvideo/jwplayer/view/components/ControlbarComponent.as (modified) (1 diff)
-
src/flash/com/longtailvideo/jwplayer/view/components/CoreComponent.as (modified) (2 diffs)
-
src/flash/com/longtailvideo/jwplayer/view/components/DisplayComponent.as (modified) (16 diffs)
-
src/flash/com/longtailvideo/jwplayer/view/components/DisplayIcon.as (added)
-
src/flash/com/longtailvideo/jwplayer/view/components/PlaylistComponent.as (modified) (1 diff)
-
src/flash/com/longtailvideo/jwplayer/view/interfaces/IDisplayComponent.as (modified) (1 diff)
-
src/flash/com/longtailvideo/jwplayer/view/interfaces/ISkin.as (modified) (2 diffs)
-
src/flash/com/longtailvideo/jwplayer/view/skins/PNGSkin.as (modified) (9 diffs)
-
src/flash/com/longtailvideo/jwplayer/view/skins/SkinBase.as (deleted)
-
src/flash/com/longtailvideo/jwplayer/view/skins/ZIPSkin.as (modified) (1 diff)
-
src/js/embed/jwplayer.embed.download.js (modified) (1 diff)
-
src/js/embed/jwplayer.embed.flash.js (modified) (1 diff)
-
src/js/embed/jwplayer.embed.js (modified) (2 diffs)
-
src/js/html5/jwplayer.html5.controlbar.js (modified) (1 diff)
-
src/js/html5/jwplayer.html5.display.js (modified) (3 diffs)
-
src/js/html5/jwplayer.html5.js (modified) (1 diff)
-
src/js/html5/jwplayer.html5.skin.js (modified) (4 diffs)
-
src/js/html5/jwplayer.html5.skinloader.js (modified) (8 diffs)
-
src/js/html5/utils/jwplayer.html5.utils.css.js (modified) (1 diff)
-
src/js/jwplayer.js (modified) (1 diff)
-
src/js/utils/jwplayer.utils.extensionmap.js (modified) (1 diff)
-
test/embedder.html (modified) (3 diffs)
-
test/error.html (added)
-
test/quality.html (added)
Legend:
- Unmodified
- Added
- Removed
-
branches/jw6/bin-debug/jwplayer.html5.js
r2220 r2234 7 7 (function(jwplayer) { 8 8 jwplayer.html5 = {}; 9 jwplayer.html5.version = '6.0.22 20';9 jwplayer.html5.version = '6.0.2234'; 10 10 })(jwplayer);/** 11 11 * HTML5-only utilities for the JW Player. … … 279 279 default: 280 280 if (style.match(/color/i)) { 281 return "#" + utils.pad(value.toString(16) , 6) + importantString;281 return "#" + utils.pad(value.toString(16).replace(/^0x/i,""), 6) + importantString; 282 282 } else if (value === 0) { 283 283 return 0 + importantString; … … 725 725 726 726 })(jwplayer.html5.parsers); 727 // TODO: remove backgroundcolor 728 // TODO: remove buttonColor, blankButton 729 730 727 731 /** 728 732 * JW Player HTML5 Controlbar component … … 1984 1988 // Create the icons which will be displayed inside of the display button 1985 1989 function _createIcons() { 1986 var iconNames = ['play', 'buffer' ];1990 var iconNames = ['play', 'buffer', 'error', 'repeat']; 1987 1991 for (var i=0; i<iconNames.length; i++) { 1988 1992 var iconName = iconNames[i], … … 1991 1995 icon = DOCUMENT.createElement("div"), 1992 1996 bg = _getSkinElement("background"), 1993 bgOver = _getSkinElement("backgroundOver"); 1997 bgOver = _getSkinElement("backgroundOver"), 1998 capLeft = _getSkinElement("capLeft"), 1999 capLeftOver = _getSkinElement("capLeftOver"), 2000 capRight = _getSkinElement("capRight"), 2001 capRightOver = _getSkinElement("capRightOver"), 1994 2002 button = DOCUMENT.createElement("button"); 1995 2003 … … 2000 2008 2001 2009 _buttonStyle('#'+_display.id+' .'+button.className, bg, bgOver); 2002 _buttonStyle('#'+_display.id+' .'+button.className+' div', iconOut, iconOver);2010 _buttonStyle('#'+_display.id+' .'+button.className+' .'+icon.className, iconOut, iconOver); 2003 2011 2004 2012 if (bgOver || iconOver) { … … 3484 3492 3485 3493 this.getSkinElement = function(component, element) { 3494 component = _lowerCase(component); 3495 element = _lowerCase(element); 3486 3496 if (_loaded) { 3487 3497 try { … … 3495 3505 3496 3506 this.getComponentSettings = function(component) { 3507 component = _lowerCase(component); 3497 3508 if (_loaded && _components && _components[component]) { 3498 3509 return _components[component].settings; … … 3502 3513 3503 3514 this.getComponentLayout = function(component) { 3515 component = _lowerCase(component); 3504 3516 if (_loaded) { 3505 3517 var lo = _components[component].layout; … … 3509 3521 return null; 3510 3522 }; 3523 3524 function _lowerCase(string) { 3525 return string.toLowerCase(); 3526 } 3511 3527 3512 3528 }; … … 3524 3540 /** Constructor **/ 3525 3541 html5.skinloader = function(skinPath, completeHandler, errorHandler) { 3526 var _skin = {}; 3527 var _completeHandler = completeHandler; 3528 var _errorHandler = errorHandler; 3529 var _loading = true; 3530 var _completeInterval; 3531 var _skinPath = skinPath; 3532 var _error = false; 3542 var _skin = {}, 3543 _completeHandler = completeHandler, 3544 _errorHandler = errorHandler, 3545 _loading = true, 3546 _completeInterval, 3547 _skinPath = skinPath, 3548 _error = false, 3549 _defaultSkin; 3533 3550 3534 3551 /** Load the skin **/ … … 3541 3558 return; 3542 3559 } 3543 _utils.ajax(_utils.getAbsolutePath(_skinPath), function(xmlrequest) { 3544 try { 3545 if (_utils.exists(xmlrequest.responseXML)){ 3546 _loadSkin(xmlrequest.responseXML); 3547 return; 3548 } 3549 } catch (err){ 3550 _clearSkin(); 3560 // Load the default skin first; if any components are defined in the loaded skin, they will overwrite the default 3561 var defaultLoader = new html5.skinloader("", _defaultLoaded, errorHandler); 3562 } 3563 3564 } 3565 3566 3567 function _defaultLoaded(defaultSkin) { 3568 _skin = defaultSkin; 3569 _utils.ajax(_utils.getAbsolutePath(_skinPath), function(xmlrequest) { 3570 try { 3571 if (_utils.exists(xmlrequest.responseXML)){ 3572 _loadSkin(xmlrequest.responseXML); 3573 return; 3551 3574 } 3552 _loadSkin(html5.defaultskin().xml); 3553 }, function(message) { 3554 _errorHandler(message); 3555 }); 3556 } 3557 3558 } 3559 3575 } catch (err){ 3576 _clearSkin(); 3577 } 3578 }, function(message) { 3579 _errorHandler(message); 3580 }); 3581 } 3560 3582 3561 3583 function _loadSkin(xml) { 3562 3584 var components = xml.getElementsByTagName('component'); 3563 3585 if (components.length === 0) { 3564 return;3586 errorHandler("Skin formatting error") 3565 3587 } 3566 3588 for (var componentIndex = 0; componentIndex < components.length; componentIndex++) { 3567 var componentName = components[componentIndex].getAttribute("name");3589 var componentName = _lowerCase(components[componentIndex].getAttribute("name")); 3568 3590 var component = { 3569 3591 settings: {}, … … 3583 3605 var value = settings[settingIndex].getAttribute("value"); 3584 3606 if(/color$/.test(name)) { value = _utils.stringToColor(value); } 3585 _skin[componentName].settings[name] = value;3607 component.settings[_lowerCase(name)] = value; 3586 3608 } 3587 3609 } … … 3590 3612 var groups = layout.getElementsByTagName('group'); 3591 3613 for (var groupIndex = 0; groupIndex < groups.length; groupIndex++) { 3592 var group = groups[groupIndex]; 3593 _skin[componentName].layout[group.getAttribute("position")] = { 3594 elements: [] 3595 }; 3614 var group = groups[groupIndex], 3615 _layout = { 3616 elements: [] 3617 }; 3618 component.layout[_lowerCase(group.getAttribute("position"))] = _layout; 3596 3619 for (var attributeIndex = 0; attributeIndex < group.attributes.length; attributeIndex++) { 3597 3620 var attribute = group.attributes[attributeIndex]; 3598 _ skin[componentName].layout[group.getAttribute("position")][attribute.name] = attribute.value;3621 _layout[attribute.name] = attribute.value; 3599 3622 } 3600 3623 var groupElements = group.getElementsByTagName('*'); 3601 3624 for (var groupElementIndex = 0; groupElementIndex < groupElements.length; groupElementIndex++) { 3602 3625 var element = groupElements[groupElementIndex]; 3603 _ skin[componentName].layout[group.getAttribute("position")].elements.push({3626 _layout.elements.push({ 3604 3627 type: element.tagName 3605 3628 }); 3606 3629 for (var elementAttributeIndex = 0; elementAttributeIndex < element.attributes.length; elementAttributeIndex++) { 3607 3630 var elementAttribute = element.attributes[elementAttributeIndex]; 3608 _ skin[componentName].layout[group.getAttribute("position")].elements[groupElementIndex][elementAttribute.name] = elementAttribute.value;3631 _layout.elements[groupElementIndex][_lowerCase(elementAttribute.name)] = elementAttribute.value; 3609 3632 } 3610 if (!_utils.exists(_ skin[componentName].layout[group.getAttribute("position")].elements[groupElementIndex].name)) {3611 _ skin[componentName].layout[group.getAttribute("position")].elements[groupElementIndex].name = element.tagName;3633 if (!_utils.exists(_layout.elements[groupElementIndex].name)) { 3634 _layout.elements[groupElementIndex].name = element.tagName; 3612 3635 } 3613 3636 } … … 3634 3657 /** Load the data for a single element. **/ 3635 3658 function _loadImage(element, component) { 3636 var img = new Image(); 3637 var elementName = element.getAttribute("name"); 3638 var elementSource = element.getAttribute("src"); 3639 var imgUrl; 3659 component = _lowerCase(component); 3660 var img = new Image(), 3661 elementName = _lowerCase(element.getAttribute("name")), 3662 elementSource = element.getAttribute("src"), 3663 imgUrl; 3664 3640 3665 if (elementSource.indexOf('data:image/png;base64,') === 0) { 3641 3666 imgUrl = elementSource; … … 3685 3710 if (component != 'properties') { 3686 3711 for (var element in _skin[component].elements) { 3687 if (!_ skin[component].elements[element].ready) {3712 if (!_getElement(component, element).ready) { 3688 3713 return; 3689 3714 } … … 3697 3722 } 3698 3723 3699 3700 3724 function _completeImageLoad(img, element, component) { 3701 if(_skin[component] && _skin[component].elements[element]) { 3702 _skin[component].elements[element].height = img.height; 3703 _skin[component].elements[element].width = img.width; 3704 _skin[component].elements[element].src = img.src; 3705 _skin[component].elements[element].ready = true; 3725 var elementObj = _getElement(component, element); 3726 if(elementObj) { 3727 elementObj.height = img.height; 3728 elementObj.width = img.width; 3729 elementObj.src = img.src; 3730 elementObj.ready = true; 3706 3731 _resetCompleteIntervalTest(); 3707 3732 } else { … … 3710 3735 } 3711 3736 3737 3738 function _getElement(component, element) { 3739 return _skin[_lowerCase(component)] ? _skin[_lowerCase(component)].elements[_lowerCase(element)] : null; 3740 } 3741 3742 function _lowerCase(string) { 3743 return string ? string.toLowerCase() : ''; 3744 } 3712 3745 _load(); 3713 3746 }; -
branches/jw6/bin-debug/jwplayer.js
r2220 r2234 19 19 var $jw = jwplayer; 20 20 21 jwplayer.version = '6.0.22 20';21 jwplayer.version = '6.0.2234'; 22 22 23 23 // "Shiv" method for older IE browsers; required for parsing media tags … … 395 395 "ogg": mimeMap[ogg], 396 396 "oga": mimeMap[ogg], 397 "ogv": mimeMap[ogg],398 397 "webm": mimeMap[webm], 399 398 "m3u8": mimeMap.hls, … … 1340 1339 1341 1340 function _errorScreen(container, message) { 1341 if (!_config.fallback) return; 1342 1342 1343 var style = container.style; 1343 1344 style.backgroundColor = "#000"; … … 1348 1349 style.padding = "50px"; 1349 1350 1350 var text = document.createElement("p"); 1351 text.style.verticalAlign = "middle"; 1352 text.style.textAlign = "center"; 1353 text.style.display = "table-cell"; 1354 text.innerHTML = message; 1351 var text = document.createElement("p"), 1352 textStyle = text.style; 1353 textStyle.verticalAlign = "middle"; 1354 textStyle.textAlign = "center"; 1355 textStyle.display = "table-cell"; 1356 textStyle.font = "15px/20px Arial, Helvetica, sans-serif"; 1357 text.innerHTML = message.replace(":", ":<br>"); 1355 1358 1356 1359 container.innerHTML = ""; … … 1694 1697 }; 1695 1698 1699 /** 1700 * Although this function creates a flash embed, the target is iOS, which interprets the embed code as a YouTube video, 1701 * and plays it using the browser 1702 */ 1696 1703 function _embedYouTube(path) { 1697 1704 var embed = _createElement("embed", "", _container); … … 1934 1941 appendAttribute(obj, 'wmode', wmode); 1935 1942 appendAttribute(obj, 'flashvars', flashvars); 1936 1937 obj.onerror = function() {1938 alert("does this work?");1939 }1940 1943 1941 1944 _container.parentNode.replaceChild(obj, _container); -
branches/jw6/jwplayer.html5.js
r2220 r2234 1 (function(a){a.html5={};a.html5.version="6.0.22 20"})(jwplayer);(function(a){var g=document,e=window;a.serialize=function(j){if(j==null){return null}else{if(j=="true"){return true}else{if(j=="false"){return false}else{if(isNaN(Number(j))||j.length>5||j.length==0){return j}else{return Number(j)}}}}};a.filterSources=function(j){var n,o;if(j){o=[];for(var l=0;l<j.length;l++){var m=j[l].type,k=j[l].file;if(!m){m=a.extension(k);j[l].type=m}if(c(m)){if(!n){n=m}if(m==n){o.push(j[l])}}}}return o};function c(j){var k=a.extensionmap[j];return(!!k&&!!k.html5&&jwplayer.vid.canPlayType(k.html5))}a.ajax=function(n,m,j){var l;if(b(n)&&a.exists(e.XDomainRequest)){l=new XDomainRequest();l.onload=f(l,n,m,j);l.onerror=d(j,n,l)}else{if(a.exists(e.XMLHttpRequest)){l=new XMLHttpRequest();l.onreadystatechange=h(l,n,m,j);l.onerror=d(j,n)}else{if(j){j()}}}try{l.open("GET",n,true);l.send(null)}catch(k){if(j){j(n)}}return l};function b(j){if(j&&j.indexOf("://")>=0){if(j.split("/")[2]!=e.location.href.split("/")[2]){return true}}return false}function d(j,l,k){return function(){j("Error loading file")}}function h(k,m,l,j){return function(){if(k.readyState===4){switch(k.status){case 200:f(k,m,l,j)();break;case 404:j("File not found")}}}}function f(k,m,l,j){return function(){if(!a.exists(k.responseXML)){try{var n;if(e.DOMParser){n=(new DOMParser()).parseFromString(k.responseText,"text/xml")}else{n=new ActiveXObject("Microsoft.XMLDOM");n.async="false";n.loadXML(k.responseText)}if(n){k=a.extend({},k,{responseXML:n})}}catch(o){if(j){j(m)}return}}l(k)}}a.parseDimension=function(j){if(typeof j=="string"){if(j===""){return 0}else{if(j.lastIndexOf("%")>-1){return j}else{return parseInt(j.replace("px",""),10)}}}return j};a.timeFormat=function(j){if(j>0){var k=Math.floor(j/60)<10?"0"+Math.floor(j/60)+":":Math.floor(j/60)+":";k+=Math.floor(j%60)<10?"0"+Math.floor(j%60):Math.floor(j%60);return k}else{return"00:00"}};a.getBoundingClientRect=function(j){if(typeof j.getBoundingClientRect=="function"){return j.getBoundingClientRect()}else{return{left:j.offsetLeft+g.body.scrollLeft,top:j.offsetTop+g.body.scrollTop,width:j.offsetWidth,height:j.offsetHeight}}}})(jwplayer.utils);(function(a){var b=a.animations=function(){};b.rotate=function(c,d){a.transform(c,"rotate("+d+"deg)")}})(jwplayer.utils);(function(h){var a={},g,b={};function f(){var k=document.createElement("style");k.type="text/css";document.getElementsByTagName("head")[0].appendChild(k);return k}h.css=function(k,n,l){if(!h.exists(l)){l=false}if(h.isIE()){if(!g){g=f()}}else{if(!a[k]){a[k]=f()}}if(!b[k]){b[k]={}}for(var m in n){var o=j(m,n[m],l);if(h.exists(b[k][m])&&!h.exists(o)){delete b[k][m]}else{b[k][m]=o}}if(h.isIE()){e()}else{d(k,a[k])}};function j(m,n,k){if(typeof n==="undefined"){return undefined}var l=k?" !important":"";if(!isNaN(n)){switch(m){case"z-index":case"opacity":return n+l;break;default:if(m.match(/color/i)){return"#"+h.pad(n.toString(16),6)+l}else{if(n===0){return 0+l}else{return Math.ceil(n)+"px"+l}}break}}else{return n+l}}function e(){var k="\n";for(var l in b){k+=c(l)}g.innerHTML=k}function d(k,l){if(l){l.innerHTML=c(k)}}function c(k){var l=k+"{\n";var n=b[k];for(var m in n){l+=" "+m+": "+n[m]+";\n"}l+="}\n";return l}h.clearCss=function(l){for(var m in b){if(m.indexOf(l)>=0){delete b[m]}}for(var k in a){if(k.indexOf(l)>=0){a[k].innerHTML=""}}}})(jwplayer.utils);(function(a){var b=a.exists;a.scale=function(f,e,d,h,j){var g;if(!b(e)){e=1}if(!b(d)){d=1}if(!b(h)){h=0}if(!b(j)){j=0}if(e==1&&d==1&&h==0&&j==0){g=""}else{g="scale("+e+","+d+") translate("+h+"px,"+j+"px)"}};a.transform=function(d,f){var e=d.style;if(b(f)){e.webkitTransform=f;e.MozTransform=f;e.msTransform=f;e.OTransform=f}};a.stretch=function(m,r,q,j,o,k){if(!r){return}if(!m){m=c.UNIFORM}if(!q||!j||!o||!k){return}var e=q/o,h=j/k,p=0,l=0,d={},f=(r.tagName.toLowerCase()=="video"),g=false,n;if(f){a.transform(r)}n="jw"+m.toLowerCase();switch(m.toLowerCase()){case c.FILL:if(e>h){o=o*e;k=k*e}else{o=o*h;k=k*h}case c.NONE:e=h=1;case c.EXACTFIT:g=true;break;case c.UNIFORM:default:if(e>h){o=o*h;k=k*h;if(o/q>0.95){g=true;n="jwexactfit";e=Math.ceil(100*q/o)/100;h=1}}else{o=o*e;k=k*e;if(k/j>0.95){g=true;n="jwexactfit";h=Math.ceil(100*j/k)/100;e=1}}break}if(f){if(g){r.style.width=o+"px";r.style.height=k+"px";p=((q-o)/2)/e;l=((j-k)/2)/h;a.scale(r,e,h,p,l)}else{r.style.width="";r.style.height=""}}else{r.className=r.className.replace(/\s*jw(none|exactfit|uniform|fill)/g,"");r.className+=" "+n}};var c=a.stretching={NONE:"none",FILL:"fill",UNIFORM:"uniform",EXACTFIT:"exactfit"}})(jwplayer.utils);(function(a){a.parsers={localName:function(b){if(!b){return""}else{if(b.localName){return b.localName}else{if(b.baseName){return b.baseName}else{return""}}}},textContent:function(b){if(!b){return""}else{if(b.textContent){return b.textContent}else{if(b.text){return b.text}else{return""}}}},getChildNode:function(c,b){return c.childNodes[b]},numChildren:function(b){if(b.childNodes){return b.childNodes.length}else{return 0}}}})(jwplayer.html5);(function(b){var a=b.html5.parsers;var d=a.jwparser=function(){};var c="jwplayer";d.parseEntry=function(h,j){for(var f=0;f<h.childNodes.length;f++){var g=h.childNodes[f];if(g.prefix==c){var e=a.localName(g);j[e]=b.utils.serialize(a.textContent(g));if(e=="file"&&j.sources){delete j.sources}}if(!j.file){j.file=j.link}}return j}})(jwplayer);(function(e){var b=jwplayer.utils,h=b.xmlAttribute,c=e.localName,a=e.textContent,d=e.numChildren;var g=e.mediaparser=function(){};var f="media";g.parseGroup=function(m,n){for(var k=0;k<d(m);k++){var l=m.childNodes[k];if(l.prefix==f){if(!c(l)){continue}switch(c(l).toLowerCase()){case"content":n.file=h(l,"url");if(h(l,"duration")){n.duration=b.seconds(h(l,"duration"))}if(d(l)>0){n=g.parseGroup(l,n)}if(h(l,"url")){if(!n.sources){n.sources=[]}n.sources.push({file:h(l,"url"),type:h(l,"type"),width:h(l,"width"),label:h(l,"height")?h(l,"height")+"p":undefined})}break;case"title":n.title=a(l);break;case"description":n.description=a(l);break;case"guid":n.mediaid=a(l);break;case"thumbnail":n.image=h(l,"url");break;case"player":var j=l.url;break;case"group":g.parseGroup(l,n);break}}}return n}})(jwplayer.html5.parsers);(function(g){var b=jwplayer.utils,a=g.textContent,e=g.getChildNode,f=g.numChildren,d=g.localName;g.rssparser={};g.rssparser.parse=function(o){var h=[];for(var m=0;m<f(o);m++){var n=e(o,m),k=d(n).toLowerCase();if(k=="channel"){for(var l=0;l<f(n);l++){var p=e(n,l);if(d(p).toLowerCase()=="item"){h.push(c(p))}}}}return h};function c(l){var m={};for(var j=0;j<l.childNodes.length;j++){var k=l.childNodes[j];var h=d(k);if(!h){continue}switch(h.toLowerCase()){case"enclosure":m.file=b.xmlAttribute(k,"url");break;case"title":m.title=a(k);break;case"pubdate":m.date=a(k);break;case"description":m.description=a(k);break;case"link":m.link=a(k);break;case"category":if(m.tags){m.tags+=a(k)}else{m.tags=a(k)}break}}m=g.mediaparser.parseGroup(l,m);m=g.jwparser.parseEntry(l,m);return new jwplayer.playlist.item(m)}})(jwplayer.html5.parsers);(function(n){var w=n.html5,h=n.utils,k=n.events,r=n.events.state,q=h.css,b="button",p="text",e="divider",s="slider",f="relative",g="absolute",a="none",o="block",u="inline",m="inline-block",j="hidden",c="left",x="right",l="100%",t="width .25s linear, left .25s linear, opacity .25s, background .25s, visibility .25s",v=".jwcontrolbar",d=document;w.controlbar=function(E,at){var C,Y,D={margin:10,font:"Arial,sans-serif",fontsize:10,fontcolor:parseInt("000000",16),fontstyle:"normal",fontweight:"bold",layout:{left:{position:"left",elements:[{name:"play",type:b},{name:"divider",type:e},{name:"prev",type:b},{name:"divider",type:e},{name:"next",type:b},{name:"divider",type:e},{name:"elapsed",type:p}]},center:{position:"center",elements:[{name:"time",type:s}]},right:{position:"right",elements:[{name:"duration",type:p},{name:"blank",type:b},{name:"divider",type:e},{name:"mute",type:b},{name:"volume",type:s},{name:"divider",type:e},{name:"fullscreen",type:b}]}}},W,aC,an,aA,aq,aK,L,O,ak=false,au=0,ab={play:"pause",mute:"unmute",fullscreen:"normalscreen"},aB={play:false,mute:false,fullscreen:false},B={play:ag,mute:P,fullscreen:ad,next:A,prev:aj},F={time:aa,volume:aF};function aE(){an={};C=E;aq=C.id+"_controlbar";aK=L=0;aA=Q();aA.id=aq;aA.className="jwcontrolbar";window.addEventListener("mousemove",aJ,false);window.addEventListener("mouseup",aJ,false);Y=C.skin;aC=Y.getComponentLayout("controlbar");if(!aC){aC=D.layout}h.clearCss("#"+aq);Z();aw();y();R();G();aG()}function y(){C.jwAddEventListener(n.events.JWPLAYER_MEDIA_TIME,aL);C.jwAddEventListener(n.events.JWPLAYER_PLAYER_STATE,I);C.jwAddEventListener(n.events.JWPLAYER_MEDIA_MUTE,aG);C.jwAddEventListener(n.events.JWPLAYER_MEDIA_VOLUME,G);C.jwAddEventListener(n.events.JWPLAYER_MEDIA_BUFFER,M);C.jwAddEventListener(n.events.JWPLAYER_FULLSCREEN,H);C.jwAddEventListener(n.events.JWPLAYER_PLAYLIST_LOADED,R)}function aL(aN){var aM=false,aO;if(an.elapsed){aO=h.timeFormat(aN.position);an.elapsed.innerHTML=aO;aM=(aO.length!=h.timeFormat(L).length)}if(an.duration){aO=h.timeFormat(aN.duration);an.duration.innerHTML=aO;aM=(aM||(aO.length!=h.timeFormat(aK).length))}if(aN.duration>0){az(aN.position/aN.duration)}else{az(0)}aK=aN.duration;L=aN.position;if(aM){U()}}function I(aM){switch(aM.newstate){case r.BUFFERING:case r.PLAYING:q(av(".jwtimeSliderThumb"),{opacity:1});V("play",true);break;case r.PAUSED:if(!ak){V("play",false)}break;case r.IDLE:V("play",false);q(av(".jwtimeSliderThumb"),{opacity:0});if(an.timeRail){an.timeRail.className="jwrail";setTimeout(function(){an.timeRail.className+=" jwsmooth"},100)}aD(0);aL({position:0,duration:0});break;case r.COMPLETED:q(av(),{opacity:0});break}}function aG(){var aM=C.jwGetMute();V("mute",aM);z(aM?0:O)}function G(){O=C.jwGetVolume()/100;z(O)}function M(aM){aD(aM.bufferPercent/100)}function H(aM){V("fullscreen",aM.fullscreen)}function R(aM){if(C.jwGetPlaylist().length<2){q(av(".jwnext"),{display:"none"});q(av(".jwprev"),{display:"none"})}else{q(av(".jwnext"),{display:undefined});q(av(".jwprev"),{display:undefined})}U()}function Z(){W=h.extend({},D,Y.getComponentSettings("controlbar"),at);q("#"+aq,{height:af("background").height,bottom:W.margin?W.margin:0,left:W.margin?W.margin:0,right:W.margin?W.margin:0});q(av(".jwtext"),{font:W.fontsize+"px/"+af("background").height+"px "+W.font,color:W.fontcolor,"font-weight":W.fontweight,"font-style":W.fontstyle,"text-align":"center",padding:"0 5px"})}function av(aM){return"#"+aq+(aM?" "+aM:"")}function Q(){return d.createElement("span")}function aw(){var aO=ao("capLeft");var aN=ao("capRight");var aM=ao("background",{position:g,left:af("capLeft").width,right:af("capRight").width,"background-repeat":"repeat-x"},true);if(aM){aA.appendChild(aM)}if(aO){aA.appendChild(aO)}ax();if(aN){aA.appendChild(aN)}}function S(aM){switch(aM.type){case e:return ai(aM);break;case p:return ap(aM.name);break;case b:if(aM.name!="blank"){return ah(aM.name)}break;case s:return T(aM.name);break}}function ao(aO,aR,aN,aT){var aQ=Q();aQ.className="jw"+aO;var aM=aT?" left center":" center";var aP=af(aO);aQ.innerHTML=" ";if(!aP||aP.src==""){return}var aS;if(aN){aS={background:"url('"+aP.src+"') repeat-x "+aM}}else{aS={background:"url('"+aP.src+"') no-repeat"+aM,width:aP.width}}q(av(".jw"+aO),h.extend(aS,aR));an[aO]=aQ;return aQ}function ah(aO){if(!af(aO+"Button").src){return null}var aP=d.createElement("button");aP.className="jw"+aO;aP.addEventListener("click",al(aO),false);var aQ=af(aO+"Button");var aN=af(aO+"ButtonOver");aP.innerHTML=" ";X(av(".jw"+aO),aQ,aN);var aM=ab[aO];if(aM){X(av(".jw"+aO+".jwtoggle"),af(aM+"Button"),af(aM+"ButtonOver"))}an[aO]=aP;return aP}function X(aM,aN,aO){if(!aN.src){return}q(aM,{width:aN.width,background:"url("+aN.src+") center no-repeat"});if(aO.src){q(aM+":hover",{background:"url("+aO.src+") center no-repeat"})}}function al(aM){return function(){if(B[aM]){B[aM]()}}}function ag(){if(aB.play){C.jwPause()}else{C.jwPlay()}}function P(){C.jwSetMute();aG({mute:aB.mute})}function aF(aM){if(aM<0.1){aM=0}if(aM>0.9){aM=1}C.jwSetVolume(aM*100);z(aM)}function aa(aM){C.jwSeek(aM*aK)}function ad(){C.jwSetFullscreen()}function A(){C.jwPlaylistNext()}function aj(){C.jwPlaylistNext()}function V(aM,aN){if(!h.exists(aN)){aN=!aB[aM]}if(an[aM]){an[aM].className="jw"+aM+(aN?" jwtoggle jwtoggling":" jwtoggling");setTimeout(function(){an[aM].className=an[aM].className.replace(" jwtoggling","")},100)}aB[aM]=aN}function N(aM){return aq+"_"+aM}function ap(aM,aQ){var aO=Q();aO.id=N(aM);aO.className="jwtext jw"+aM;var aN={};var aP=af(aM+"Background");if(aP.src){aN.background="url("+aP.src+") no-repeat center";aN["background-size"]="100% "+af("background").height+"px"}q(av(".jw"+aM),aN);aO.innerHTML="00:00";an[aM]=aO;return aO}function ai(aN){if(aN.width){var aM=Q();aM.className="jwblankDivider";q(aM,{width:parseInt(aN.width)});return aM}else{if(aN.element){return ao(aN.element)}else{return ao(aN.name)}}}function T(aM){var aP=Q();aP.className="jwslider jw"+aM;var aO=ao(aM+"SliderCapLeft");var aN=ao(aM+"SliderCapRight");var aQ=ar(aM);if(aO){aP.appendChild(aO)}aP.appendChild(aQ);if(aO){aP.appendChild(aN)}q(av(".jw"+aM+" .jwrail"),{left:af(aM+"SliderCapLeft").width,right:af(aM+"SliderCapRight").width,});an[aM]=aP;if(aM=="time"){aI(aP);az(0);aD(0)}else{if(aM=="volume"){ay(aP)}}return aP}function ar(aO){var aR=Q();aR.className="jwrail jwsmooth";var aM=["Rail","Buffer","Progress"];for(var aQ=0;aQ<aM.length;aQ++){var aP=ao(aO+"Slider"+aM[aQ],null,true,(aO=="volume"));if(aP){aP.className+=" jwstretch";aR.appendChild(aP)}}var aN=ao(aO+"SliderThumb");if(aN){q(av("."+aN.className),{opacity:0});aN.className+=" jwthumb";aR.appendChild(aN)}aR.addEventListener("mousedown",J(aO),false);an[aO+"Rail"]=aR;return aR}function K(){var aM=C.jwGetState();return(aM==r.IDLE||aM==r.COMPLETED)}function J(aM){return(function(aN){if(aN.button!=0){return}an[aM+"Rail"].className="jwrail";if(aM=="time"){if(!K()){C.jwSeekDrag(true);ak=aM}}else{ak=aM}})}function aJ(aM){if(!ak||aM.button!=0){return}var aQ=an[ak].getElementsByClassName("jwrail")[0],aR=h.getBoundingClientRect(aQ),aP=(aM.clientX-aR.left)/aR.width;if(aM.type=="mouseup"){var aN=ak;if(aN=="time"){C.jwSeekDrag(false)}an[aN+"Rail"].className="jwrail jwsmooth";ak=null;F[aN](aP)}else{if(ak=="time"){az(aP)}else{z(aP)}var aO=(new Date()).getTime();if(aO-au>500){au=aO;F[ak](aP)}}}function aI(aM){if(an.timeSliderThumb){q(av(".jwtimeSliderThumb"),{"margin-left":(af("timeSliderThumb").width/-2)})}aD(0);az(0)}function ay(aO){var aN=af("volumeSliderCapLeft").width,aM=af("volumeSliderCapRight").width,aP=af("volumeSliderRail").width;q(av(".jwvolume"),{width:(aN+aP+aM)})}var ac={};function ax(){aH("left");aH("center");aH("right");aA.appendChild(ac.left);aA.appendChild(ac.center);aA.appendChild(ac.right);q(av(".jwright"),{right:af("capRight").width})}function aH(aN){var aM=Q();aM.className="jwgroup jw"+aN;ac[aN]=aM;if(aC[aN]){ae(aC[aN],ac[aN])}}function ae(aP,aM){if(aP&&aP.elements.length>0){for(var aO=0;aO<aP.elements.length;aO++){var aN=S(aP.elements[aO]);if(aN){aM.appendChild(aN)}}}}var U=this.redraw=function(){Z();q(av(".jwgroup.jwcenter"),{left:Math.round(h.parseDimension(ac.left.offsetWidth)+af("capLeft").width),right:Math.round(h.parseDimension(ac.right.offsetWidth)+af("capRight").width)})};this.getDisplayElement=function(){return aA};function aD(aM){aM=Math.min(Math.max(0,aM),1);if(an.timeSliderBuffer){an.timeSliderBuffer.style.width=aM*100+"%"}}function am(aM,aO,aP){var aN=100*Math.min(Math.max(0,aO),1)+"%";if(an[aM+"SliderProgress"]){an[aM+"SliderProgress"].style.width=aN}if(an[aM+"SliderThumb"]){an[aM+"SliderThumb"].style.left=aN}}function z(aM){am("volume",aM,true)}function az(aM){am("time",aM)}function af(aM){var aN=Y.getSkinElement("controlbar",aM);if(aN){return aN}else{return{width:0,height:0,src:"",image:undefined,ready:false}}}this.show=function(){q(av(),{opacity:1,visibility:"visible"})};this.hide=function(){q(av(),{opacity:0,visibility:j})};aE()};q(v,{position:g,overflow:j,visibility:j,opacity:0,"-webkit-transition":t,"-moz-transition":t,"-o-transition":t});q(v+" span",{height:l,"-webkit-user-select":a,"-webkit-user-drag":a,"user-select":a,"user-drag":a});q(v+" .jwgroup",{display:u});q(v+" span, "+v+" .jwgroup button,"+v+" .jwleft",{position:f,"float":c});q(v+" .jwright",{position:g});q(v+" .jwcenter",{position:g});q(v+" button",{display:m,height:l,border:a,cursor:"pointer","-webkit-transition":t,"-moz-transition":t,"-o-transition":t});q(v+" .jwcapRight,"+v+" .jwtimeSliderCapRight,"+v+" .jwvolumeSliderCapRight",{right:0,position:g});q(v+" .jwtime,"+v+" .jwgroup span.jwstretch",{position:g,height:l,width:l,left:0});q(v+" .jwrail,"+v+" .jwthumb",{position:g,height:l,cursor:"pointer"});q(v+" .jwtime .jwsmooth span",{"-webkit-transition":t,"-moz-transition":t,"-o-transition":t});q(v+" .jwdivider+.jwdivider",{display:a});q(v+" .jwtext",{padding:"0 5px","text-align":"center"});q(v+" .jwtoggling",{"-webkit-transition":a,"-moz-transition":a,"-o-transition":a})})(jwplayer);(function(d){var c=d.html5,a=d.utils,e=d.events,b=e.state;c.controller=function(j,A){var H=j,g=A,r=j.getVideo(),z=this,o=new e.eventdispatcher(H.id,H.config.debug),f=false,u=[];a.extend(this,o);function s(){H.addEventListener(e.JWPLAYER_MEDIA_BUFFER_FULL,E);H.addEventListener(e.JWPLAYER_MEDIA_COMPLETE,function(P){setTimeout(v,25)})}function K(P){if(!f){f=true;g.completeSetup();o.sendEvent(P.type,P);if(d.utils.exists(window.playerReady)){playerReady(P)}o.sendEvent(d.events.JWPLAYER_PLAYLIST_LOADED,{playlist:H.playlist});o.sendEvent(d.events.JWPLAYER_PLAYLIST_ITEM,{index:H.item});H.addGlobalListener(M);g.addGlobalListener(M);O();if(H.autostart&&!a.isIOS()){y()}while(u.length>0){var Q=u.shift();B(Q.method,Q.arguments)}}}function M(P){o.sendEvent(P.type,P)}function E(P){r.play()}function O(P){p();switch(a.typeOf(P)){case"string":H.setPlaylist(new d.playlist({file:P}));H.setItem(0);break;case"object":case"array":H.setPlaylist(new d.playlist(P));H.setItem(0);break;case"number":H.setItem(P);break}}var t,n,q;function y(){try{n=y;if(!t){t=true;o.sendEvent(e.JWPLAYER_MEDIA_BEFOREPLAY);t=false;if(q){q=false;n=null;return}}if(N()){r.load(H.playlist[H.item])}else{if(H.state==b.PAUSED){r.play()}}return true}catch(P){o.sendEvent(e.JWPLAYER_ERROR,P);n=null}return false}function p(){n=null;try{if(!N()){r.stop()}if(t){q=true}return true}catch(P){o.sendEvent(e.JWPLAYER_ERROR,P)}return false}function J(){try{switch(H.state){case b.PLAYING:case b.BUFFERING:r.pause();break;default:if(t){q=true}}return true}catch(P){o.sendEvent(e.JWPLAYER_ERROR,P)}return false;if(H.state==b.PLAYING||H.state==b.BUFFERING){r.pause()}}function N(){return(H.state==b.IDLE||H.state==b.COMPLETED)}function F(P){r.seek(P)}function D(P){g.fullscreen(P)}function x(P){H.stretching=P;g.resize()}function w(P){O(P);y()}function k(){w(H.item-1)}function l(){w(H.item+1)}function v(){if(!N()){return}n=v;switch(H.repeat.toLowerCase()){case"single":y();break;case"always":l();break;case"list":if(H.item==H.playlist.length-1){O(0);H.setState(b.COMPLETED)}else{l()}break;default:H.setState(b.COMPLETED);break}}function L(P){r.setCurrentQuality(P)}function I(){if(r){return r.getCurrentQuality()}else{return -1}}function m(){if(r){return r.getQualityLevels()}else{return null}}function C(){try{return H.getVideo().detachMedia()}catch(P){return null}}function h(){try{var P=H.getVideo().attachMedia();if(typeof n=="function"){n()}}catch(Q){return null}}function G(P){return function(){if(f){B(P,arguments)}else{u.push({method:P,arguments:arguments})}}}function B(R,Q){var P=[];for(i=0;i<Q.length;i++){P.push(Q[i])}R.apply(this,P)}this.play=G(y);this.pause=G(J);this.seek=G(F);this.stop=G(p);this.load=G(O);this.next=G(l);this.prev=G(k);this.item=G(w);this.setVolume=G(H.setVolume);this.setMute=G(H.setMute);this.setFullscreen=G(D);this.setStretching=G(x);this.detachMedia=C;this.attachMedia=h;this.setCurrentQuality=G(L);this.getCurrentQuality=I;this.getQualityLevels=m;this.playerReady=K;s()}})(jwplayer);(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="0"/><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="mute"/><slider name="volume"/><divider name="divider"/><button name="fullscreen"/></group></layout><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAYCAYAAADd5VyeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFdJREFUeNqczMsOgCAMRFEw/v/PtkAfUNg6aEx0lieZmyOC0mV5jIHQe0dwdwQzQ1DdQEQRWhOEWhtCKRWBuSAQMcBJzAlgzvkRjrTtR+MJbtF4vywBBgAcr05Vhd9mLAAAAABJRU5ErkJggg=="/><element name="divider" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAYAAAA7zJfaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAC5JREFUeNpimDlzZgMTAxAQTQgICDAwiYqKMjCJiYlBWcLCwgxMzMzMRJsCEGAAXVQDrCAU8IQAAAAASUVORK5CYII="/><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,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAYCAYAAAAyJzegAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEVJREFUeNpiYBhaYD4Q/4fSDAxNza3/oQJgDOIz8fDwoGgB8ZnY2NhQBEF8JhZWFhRBEJ+JlYUVRRDEx6oSu5OGCAAIMAC30g1QKMx9igAAAABJRU5ErkJggg=="/><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"><settings><setting name="bufferinterval" value="150"/><setting name="bufferrotation" value="90"/></settings><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGJJREFUeNrs0UERACAMBLGDwUf9S0JI/1jg36yDzK6quhnUzrCAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgX873e0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBw8gQYACnjBI/ihM8BAAAAAElFTkSuQmCC"/><element name="playIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAiUlEQVR42u3XSw2AMBREURwgAQlIQAISKgUpSEFKJeCg5b0E0kWBTVcD9ySTsL0Jn9IBAAAA+K2UUrBlW/Rr5ZDoIeeuoFkxJD9ss03aIXXQqB9SttoG7ZA6qNcOKdttiwcJh9RB+iFl4SshkRBuLR72+9cvH0SOKI2HRo7x/Fi1/uoCAAAAwLsD8ki99IlO2dQAAAAASUVORK5CYII="/><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,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGJJREFUeNrs2TEBADAIxMCnGtjxL6luaqE7Fwc3p2bmZlEnywIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYG/q262z0EBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgZOngADAE0iAsIr/u2qAAAAAElFTkSuQmCC"/></elements></component><component name="playlist"><settings><setting name="backgroundcolor" value="0xe6e6e6"/><setting name="fontcolor" value="0x000000"/></settings><elements><element name="item" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABPCAYAAAAJMDwFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQpJREFUeNrs1sGKhDAQRdHY+P+fqr1WSXQpojsLLHIONAzMTh6pO9RaW4F7y/GbH37/09/T9f8/344IhoVhkcfYmsTCi4VhYVjwfmP5CAQMqxTLwinEsNBYoLFwCjEseLexfANCGku94xRiWGgsCGgsH4GIYVkWGguNhcYCjYXGQmOBxsIpRLyDxkJjobFAY6GxcApBvPPdYa3b6ivgFOIU4sUCw8Kw6LaxJBYx8a7ecQoxLAwLDIsk8a7d8WJhWPR9Cl1CvFgkinf1jhcLw8KwwLBIEu/aHS8WaV4sDxZeLAyL3uNdvePFwrAwLDAsksS7didiWHaFU4hhYVgQEO/qHS8WhkXXdgEGAKAsO7NPrr2OAAAAAElFTkSuQmCC"/><element name="itemImage" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAAA7CAIAAABKR2XkAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAK5JREFUeNrslksKwCAMRGvplfzcf6VeQDyA57ABwW0XjVDpm0WILtrhOURNa+3YSuexm67eO4xxTCpgDGMYkwoYwxjGMCYVMIYxjJlun3LcVWWtfdx5KWXGOWfn3FxKLzu6vzC1VvWD896nlEZV//gSxzvleEjozqou/VkRQogxSiNV+q9Pt2l3aIVpU0rhBuFdwbuCVMAYxjDGMamAMYxhjGNSAWMYw/hfjm8BBgDatbXqT4uvsgAAAABJRU5ErkJggg=="/><element name="sliderCapTop" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAKCAYAAABBq/VWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABNJREFUeNpiYBgFo2AUjBwAEGAAA/IAAdBu5L8AAAAASUVORK5CYII="/><element name="sliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAECAYAAAB7oZQmAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABxJREFUeNpiZCAeOGARO0CMRiYGOoDhYwlAgAEAYPMBCML0c4MAAAAASUVORK5CYII="/><element name="sliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAECAYAAAB7oZQmAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABtJREFUeNpiZCAO/Mcjx0hIMxMDHcDwsQQgwABz1wEIMGLXPQAAAABJRU5ErkJggg=="/><element name="sliderCapBottom" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAKCAYAAABBq/VWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABNJREFUeNpiYBgFo2AUjBwAEGAAA/IAAdBu5L8AAAAASUVORK5CYII="/></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(f){var m=jwplayer.utils,o=jwplayer.events,p=o.state,n=m.animations.rotate,k=m.css,l=document,a=".jwdisplay",h=".jwpreview",j=".jwerror",b="absolute",c="none",g="100%",d="hidden",e="opacity .25s";f.display=function(t,O){var s=t,E=t.skin,W,aa,u,H,T,V,ab={},R=false,I,r,L,A,Q,X=m.extend({backgroundcolor:"#000",showicons:true},E.getComponentSettings("display"),O);_bufferRotation=!m.exists(X.bufferrotation)?15:parseInt(X.bufferrotation,10),_bufferInterval=!m.exists(X.bufferinterval)?100:parseInt(X.bufferinterval,10),_eventDispatcher=new o.eventdispatcher();m.extend(this,_eventDispatcher);function U(){W=l.createElement("div");W.id=s.id+"_display";W.className="jwdisplay";aa=l.createElement("div");aa.className="jwpreview";W.appendChild(aa);s.jwAddEventListener(o.JWPLAYER_PLAYER_STATE,x);s.jwAddEventListener(o.JWPLAYER_PLAYLIST_ITEM,v);s.jwAddEventListener(o.JWPLAYER_MEDIA_ERROR,w);W.addEventListener("click",Y,false);S();M();x({newstate:p.IDLE})}function Y(ac){switch(s.jwGetState()){case p.PLAYING:case p.BUFFERING:s.jwPause();break;default:s.jwPlay();break}_eventDispatcher.sendEvent(o.JWPLAYER_DISPLAY_CLICK)}function S(){var ac=["play","buffer"];for(var af=0;af<ac.length;af++){var aj=ac[af],ah=K(aj+"Icon"),ae=K(aj+"IconOver"),ag=l.createElement("div"),ad=K("background"),ai=K("backgroundOver");button=l.createElement("button");if(ah){button.className="jw"+aj;ag.className="jwicon";button.appendChild(ag);F("#"+W.id+" ."+button.className,ad,ai);F("#"+W.id+" ."+button.className+" div",ah,ae);if(ai||ae){button.addEventListener("mouseover",Z(button),false);button.addEventListener("mouseout",q(button),false)}ab[aj]=button}}}function Z(ac){return function(ad){if(ac.className.indexOf("jwhover")<0){ac.className+=" jwhover"}if(ac.childNodes[0].className.indexOf("jwhover")<0){ac.childNodes[0].className+=" jwhover"}}}function q(ac){return function(ad){ac.className=ac.className.replace(" jwhover","");ac.childNodes[0].className=ac.childNodes[0].className.replace(" jwhover","")}}function F(ac,ad,ae){if(!(ad&&ad.src)){return}k(ac,{width:ad.width,height:ad.height,"margin-left":ad.width/-2,"margin-top":ad.height/-2,background:"url("+ad.src+") center no-repeat"});if(ae&&ae.src){k(ac+".jwhover",{background:"url("+ae.src+") center no-repeat"})}}function M(){I=l.createElement("div");I.className="jwerror";W.appendChild(I)}function z(ac){if(!X.showicons){return}if(L){W.removeChild(L)}L=ab[ac];if(L){W.appendChild(L)}if(ac=="buffer"){A=0;Q=setInterval(function(){A+=_bufferRotation;n(L.childNodes[0],A%360)},_bufferInterval)}}function v(){var ac=s.jwGetPlaylist()[s.jwGetPlaylistIndex()];var ad=ac?ac.image:"";if(u!=ad){u=ad;N(h,false);J()}}var G;function x(ac){clearTimeout(G);G=setTimeout(function(){y(ac.newstate)},100)}function y(ac){clearInterval(Q);switch(ac){case p.COMPLETED:case p.IDLE:if(!R){N(h,true);z("play")}break;case p.BUFFERING:B();z("buffer");break;case p.PLAYING:z();break;case p.PAUSED:z("play");break}}this.hidePreview=function(ac){N(h,!ac)};this.getDisplayElement=function(){return W};function P(ac){return"#"+W.id+" "+ac}function J(){if(u){var ac=new Image();ac.addEventListener("load",D,false);ac.src=u}else{N(h,false);H=T=0}}function D(){H=this.width;T=this.height;C();if(u){k(P(h),{"background-image":"url("+u+")"})}}function K(ac){var ad=E.getSkinElement("display",ac);if(ad){return ad}return null}function w(ac){R=true;z();k(P(j),{display:"table"});I.innerHTML="<p>"+ac.message+"</p>"}function B(){R=false;k(P(j),{display:"none"});I.innerHTML=""}function C(){m.stretch(s.jwGetStretching(),aa,W.clientWidth,W.clientHeight,H,T)}this.redraw=C;function N(ac,ad){k(P(ac),{opacity:ad?1:0})}this.show=function(){N("",true)};this.hide=function(){N("",false)};this.getBGColor=function(){return X.backgroundcolor};this.setAlternateClickHandler=function(ac){_alternateClickHandler=ac};this.revertAlternateClickHandler=function(){_alternateClickHandler=undefined};U()};k(a,{position:b,cursor:"pointer",width:g,height:g,overflow:d,opacity:0});k(a+" .jwpreview",{position:b,width:g,height:g,background:"no-repeat center",overflow:d});k(a+" "+j,{display:"none",position:b,width:g,height:g});k(a+" "+j+" p",{display:"table-cell","vertical-align":"middle","text-align":"center",background:"rgba(0, 0, 0, 0.5)",color:"#fff"});k(a+", "+a+" *",{"-webkit-transition":e,"-moz-transition":e,"-o-transition":e});k(a+" button, "+a+" .jwicon",{border:c,position:b,left:"50%",top:"50%",padding:0,cursor:"pointer"})})(jwplayer.html5);(function(a){var e=jwplayer,c=e.utils,d=e.events,b=d.state,f=e.playlist;a.instream=function(C,q,B,D){var x={controlbarseekable:"always",controlbarpausable:true,controlbarstoppable:true,playlistclickable:true};var z,E,G=C,I=q,n=B,A=D,v,L,s,K,j,k,l,p,u,m=false,o,h,r=this;this.load=function(P,O){g();m=true;E=c.extend(x,O);z=new f.item(P);J();h=document.createElement("div");h.id=r.id+"_instream_container";A.detachMedia();v=l.getTag();k=I.playlist[I.item];j=G.jwGetState();if(j==b.BUFFERING||j==b.PLAYING){v.pause()}L=v.src?v.src:v.currentSrc;s=v.innerHTML;K=v.currentTime;u=new a.display(r);u.setAlternateClickHandler(function(Q){if(_fakemodel.state==b.PAUSED){r.jwInstreamPlay()}else{H(d.JWPLAYER_INSTREAM_CLICK,Q)}});h.appendChild(u.getDisplayElement());if(!c.isMobile()){p=new a.controlbar(r);h.appendChild(p.getDisplayElement())}n.setupInstream(h,v);t();l.load(z)};this.jwInstreamDestroy=function(O){if(!m){return}m=false;if(j!=b.IDLE){l.load(k,false)}else{l.stop(true)}l.detachMedia();n.destroyInstream();if(p){try{p.getDisplayElement().parentNode.removeChild(p.getDisplayElement())}catch(P){}}H(d.JWPLAYER_INSTREAM_DESTROYED,{reason:(O?"complete":"destroyed")},true);A.attachMedia();if(j==b.BUFFERING||j==b.PLAYING){v.play();if(I.playlist[I.item]==k){I.getVideo().seek(K)}}return};this.jwInstreamAddEventListener=function(O,P){o.addEventListener(O,P)};this.jwInstreamRemoveEventListener=function(O,P){o.removeEventListener(O,P)};this.jwInstreamPlay=function(){if(!m){return}l.play(true)};this.jwInstreamPause=function(){if(!m){return}l.pause(true)};this.jwInstreamSeek=function(O){if(!m){return}l.seek(O)};this.jwInstreamGetState=function(){if(!m){return undefined}return _fakemodel.state};this.jwInstreamGetPosition=function(){if(!m){return undefined}return _fakemodel.position};this.jwInstreamGetDuration=function(){if(!m){return undefined}return _fakemodel.duration};this.playlistClickable=function(){return(!m||E.playlistclickable.toString().toLowerCase()=="true")};function w(){_fakemodel=new a.model({});o=new d.eventdispatcher();G.jwAddEventListener(d.JWPLAYER_RESIZE,t);G.jwAddEventListener(d.JWPLAYER_FULLSCREEN,t)}function g(){A.setMute(I.mute);A.setVolume(I.volume)}function J(){if(!l){l=new a.video(I.getVideo().getTag());l.addGlobalListener(M);l.addEventListener(d.JWPLAYER_MEDIA_META,N);l.addEventListener(d.JWPLAYER_MEDIA_COMPLETE,y);l.addEventListener(d.JWPLAYER_MEDIA_BUFFER_FULL,F)}l.attachMedia()}function M(O){if(m){H(O.type,O)}}function F(O){if(m){l.play()}}function y(O){if(m){setTimeout(function(){r.jwInstreamDestroy(true)},10)}}function N(O){if(O.metadata.width&&O.metadata.height){n.resizeMedia()}}function H(O,P,Q){if(m||Q){o.sendEvent(O,P)}}function t(){if(p){p.redraw()}if(u){u.redraw()}}this.jwPlay=function(O){if(E.controlbarpausable.toString().toLowerCase()=="true"){this.jwInstreamPlay()}};this.jwPause=function(O){if(E.controlbarpausable.toString().toLowerCase()=="true"){this.jwInstreamPause()}};this.jwStop=function(){if(E.controlbarstoppable.toString().toLowerCase()=="true"){this.jwInstreamDestroy();G.jwStop()}};this.jwSeek=function(O){switch(E.controlbarseekable.toLowerCase()){case"always":this.jwInstreamSeek(O);break;case"backwards":if(_fakemodel.position>O){this.jwInstreamSeek(O)}break}};this.jwGetPosition=function(){};this.jwGetDuration=function(){};this.jwGetWidth=G.jwGetWidth;this.jwGetHeight=G.jwGetHeight;this.jwGetFullscreen=G.jwGetFullscreen;this.jwSetFullscreen=G.jwSetFullscreen;this.jwGetVolume=function(){return I.volume};this.jwSetVolume=function(O){l.volume(O);G.jwSetVolume(O)};this.jwGetMute=function(){return I.mute};this.jwSetMute=function(O){l.mute(O);G.jwSetMute(O)};this.jwGetState=function(){return _fakemodel.state};this.jwGetPlaylist=function(){return[z]};this.jwGetPlaylistIndex=function(){return 0};this.jwGetStretching=function(){return I.config.stretching};this.jwAddEventListener=function(P,O){o.addEventListener(P,O)};this.jwRemoveEventListener=function(P,O){o.removeEventListener(P,O)};this.skin=G.skin;this.id=G.id+"_instream";w();return this}})(jwplayer.html5);(function(b){var a=jwplayer.utils,c=jwplayer.events,d=undefined;b.model=function(g){var n=this,j,p,q=a.getCookies(),e={};_defaults={autostart:false,controlbar:true,debug:d,height:320,icons:true,item:0,mobilecontrols:false,mute:false,playlist:[],playlistposition:"right",playlistsize:0,repeat:"list",skin:d,stretching:a.stretching.UNIFORM,volume:90,width:480};function m(r){for(var s in r){r[s]=a.serialize(r[s])}return r}function o(){a.extend(n,new c.eventdispatcher());n.config=m(a.extend({},_defaults,q,g));a.extend(n,{id:g.id,state:c.state.IDLE,position:0,buffer:0,},n.config);l();n.setItem(n.config.item);p=document.createElement("video");j=new b.video(p);j.volume(n.volume);j.mute(n.mute);j.addGlobalListener(h)}function l(){e.display={showicons:n.icons};e.controlbar={}}var k={};k[c.JWPLAYER_MEDIA_MUTE]="mute";k[c.JWPLAYER_MEDIA_VOLUME]="volume";k[c.JWPLAYER_PLAYER_STATE]="newstate->state";k[c.JWPLAYER_MEDIA_BUFFER]="bufferPercent->buffer";k[c.JWPLAYER_MEDIA_TIME]="position";function h(r){var t=k[r.type];if(t){var u=t.split("->"),v=u[0],s=u[1]?u[1]:v;if(n[s]!=r[v]){n[s]=r[v];n.sendEvent(r.type,r)}}else{n.sendEvent(r.type,r)}}n.setState=function(r){var s=n.state;n.state=r;if(r!=s){n.sendEvent(c.JWPLAYER_PLAYER_STATE,{newstate:n.state,oldstate:s})}};n.getVideo=function(){return j};n.seekDrag=function(r){j.seekDrag(r)};n.setFullscreen=function(r){if(r!=n.fullscreen){n.fullscreen=r;n.sendEvent(c.JWPLAYER_FULLSCREEN,{fullscreen:r})}};n.setPlaylist=function(r){n.playlist=r;f(r);n.sendEvent(c.JWPLAYER_PLAYLIST_LOADED,{playlist:r})};function f(s){for(var r=0;r<s.length;r++){s[r].sources=a.filterSources(s[r].sources)}}n.setItem=function(r){var s;if(r==n.playlist.length||r<-1){s=0}else{if(r==-1||r>n.playlist.length){s=n.playlist.length-1}else{s=r}}if(s!=n.item){n.item=s;n.sendEvent(c.JWPLAYER_PLAYLIST_ITEM,{index:n.item})}};n.setVolume=function(r){if(n.mute&&r>0){n.setMute(false)}r=Math.round(r);a.saveCookie("volume",r);j.volume(r)};n.setMute=function(r){if(!a.exists(r)){r=!n.mute}a.saveCookie("mute",r);j.mute(r)};n.componentConfig=function(r){return e[r]};o()}})(jwplayer.html5);(function(a){a.player=function(c){var m=this,k,g,h,b;function l(){k=new a.model(c);m.id=k.id;g=new a.view(m,k);h=new a.controller(k,g);d();var n=new a.setup(k,g,h);n.addEventListener(jwplayer.events.JWPLAYER_READY,e);n.addEventListener(jwplayer.events.JWPLAYER_ERROR,j);n.start()}function e(n){h.playerReady(n)}function j(n){jwplayer.utils.log("There was a problem setting up the player: ",n)}function d(){m.jwPlay=h.play;m.jwPause=h.pause;m.jwStop=h.stop;m.jwSeek=h.seek;m.jwSetVolume=h.setVolume;m.jwSetMute=h.setMute;m.jwLoad=h.load;m.jwPlaylistNext=h.next;m.jwPlaylistPrev=h.prev;m.jwPlaylistItem=h.item;m.jwSetFullscreen=h.setFullscreen;m.jwResize=g.resize;m.jwSeekDrag=k.seekDrag;m.jwSetStretching=h.setStretching;m.jwGetQualityLevels=h.getQualityLevels;m.jwGetCurrentQuality=h.getCurrentQuality;m.jwSetCurrentQuality=h.setCurrentQuality;m.jwGetPlaylistIndex=f("item");m.jwGetPosition=f("position");m.jwGetDuration=f("duration");m.jwGetBuffer=f("buffer");m.jwGetWidth=f("width");m.jwGetHeight=f("height");m.jwGetFullscreen=f("fullscreen");m.jwGetVolume=f("volume");m.jwGetMute=f("mute");m.jwGetState=f("state");m.jwGetStretching=f("stretching");m.jwGetPlaylist=f("playlist");m.jwDetachMedia=h.detachMedia;m.jwAttachMedia=h.attachMedia;m.jwLoadInstream=function(o,n){if(!b){b=new a.instream(m,k,g,h)}setTimeout(function(){b.load(o,n)},10)};m.jwInstreamDestroy=function(){if(b){b.jwInstreamDestroy()}};m.jwAddEventListener=h.addEventListener;m.jwRemoveEventListener=h.removeEventListener}function f(n){return function(){return k[n]}}l()}})(jwplayer.html5);(function(f){var d={size:180,itemheight:60,thumbs:true,fontcolor:"#000000",overcolor:"",activecolor:"",backgroundcolor:"#f8f8f8",font:"_sans",fontsize:"",fontstyle:"",fontweight:""},k={_sans:"Arial, Helvetica, sans-serif",_serif:"Times, Times New Roman, serif",_typewriter:"Courier New, Courier, monospace"},m=jwplayer.utils,h=m.css,e=jwplayer.events,l=".jwplaylist",j=document,a="absolute",b="relative",c="hidden",g="100%";f.playlistcomponent=function(A,M){var G=A,v=G.skin,o=m.extend({},d,G.skin.getComponentSettings("playlist"),M),H,n,q,p,u=-1,r={background:undefined,item:undefined,itemOver:undefined,itemImage:undefined,itemActive:undefined};this.getDisplayElement=function(){return H};this.redraw=function(){};this.show=function(){_show(H)};this.hide=function(){_hide(H)};function s(){H=K("div","jwplaylist");H.id=G.id+"_jwplayer_playlistcomponent";J();if(r.item){o.itemheight=r.item.height}x();G.jwAddEventListener(jwplayer.events.JWPLAYER_PLAYLIST_LOADED,B);G.jwAddEventListener(jwplayer.events.JWPLAYER_PLAYLIST_ITEM,E)}function t(N){return"#"+H.id+(N?" ."+N:"")}function x(){var R=0,Q=0,N=0,P=o.itemheight,T=o.fontsize;m.clearCss(t());h(t("jwlist"),{"background-image":r.background?" url("+r.background.src+")":"","background-color":o.backgroundcolor,color:o.fontcolor,font:o.fontweight+" "+o.fontstyle+" "+(T?T:11)+"px "+(k[o.font]?k[o.font]:k._sans)});if(r.itemImage){R=(P-r.itemImage.height)/2;Q=r.itemImage.width;N=r.itemImage.height}else{Q=P*4/3;N=P}h(t("jwplaylistimg"),{height:N,width:Q,margin:R});h(t("jwlist li"),{"background-image":r.item?"url("+r.item.src+")":"",height:P,"background-size":g+" "+P+"px",cursor:"pointer"});var O={overflow:"hidden"};if(o.activecolor!==""){O.color=o.activecolor}if(r.itemActive){O["background-image"]="url("+r.itemActive.src+")"}h(t("jwlist li.active"),O);var S={overflow:"hidden"};if(o.overcolor!==""){S.color=o.overcolor}if(r.itemOver){S["background-image"]="url("+r.itemOver.src+")"}h(t("jwlist li:hover"),S);h(t("jwtextwrapper"),{padding:"5px 5px 0 "+(R?0:"5px"),height:P-5,position:b});h(t("jwtitle"),{height:T?T+10:20,"line-height":T?T+10:20,overflow:"hidden",display:"inline-block",width:g,"font-size":T?T:13,"font-weight":o.fontweight?o.fontweight:"bold"});h(t("jwdescription"),{display:"block","line-height":T?T+4:16,overflow:"hidden",height:P,position:b});h(t("jwduration"),{position:"absolute",right:5})}function y(){var N=K("ul","jwlist");N.id=H.id+"_ul"+Math.round(Math.random()*10000000);return N}function z(Q){var V=n[Q],U=K("li","jwitem");U.id=p.id+"_item_"+Q;var R=K("div","jwplaylistimg jwfill");if(F()&&(V.image||V["playlist.image"]||r.itemImage)){var S;if(V["playlist.image"]){S=V["playlist.image"]}else{if(V.image){S=V.image}else{if(r.itemImage){S=r.itemImage.src}}}h("#"+U.id+" .jwplaylistimg",{"background-image":S?"url("+S+")":null});L(U,R)}var N=K("div","jwtextwrapper");var T=K("span","jwtitle");T.innerHTML=V?V.title:"";L(N,T);if(V.description){var P=K("span","jwdescription");P.innerHTML=V.description;L(N,P)}if(V.duration>0){var O=K("span","jwduration");O.innerHTML=m.timeFormat(V.duration);L(T,O)}L(U,N);return U}function K(O,N){var P=j.createElement(O);if(N){P.className=N}return P}function L(N,O){N.appendChild(O)}function B(O){H.innerHTML="";n=C();if(!n){return}items=[];p=y();for(var P=0;P<n.length;P++){var N=z(P);N.onclick=I(P);L(p,N);items.push(N)}u=G.jwGetPlaylistIndex();L(H,p);if(m.isIOS()&&window.iScroll){p.style.height=o.itemheight*n.length+"px";var Q=new iScroll(H.id)}}function C(){var O=G.jwGetPlaylist();var P=[];for(var N=0;N<O.length;N++){if(!O[N]["ova.hidden"]){P.push(O[N])}}return P}function I(N){return function(){G.jwPlaylistItem(N);G.jwPlay(true)}}function w(){p.scrollTop=G.jwGetPlaylistIndex()*o.itemheight}function F(){return o.thumbs.toString().toLowerCase()=="true"}function E(N){if(u>=0){j.getElementById(p.id+"_item_"+u).className="jwitem";u=N.index}j.getElementById(p.id+"_item_"+N.index).className="jwitem active";w()}function J(){for(var N in r){r[N]=D(N)}}function D(N){return v.getSkinElement("playlist",N)}s();return this};h(l,{overflow:c,position:a,width:g,height:g});h(l+" .jwplaylistimg",{position:b,width:g,"float":"left",margin:"0 5px 0 0",background:"#000",overflow:c});h(l+" .jwlist",{width:g,height:g,"list-style":"none",margin:0,padding:0,"overflow-y":"auto"});h(l+" .jwlist li",{width:g});h(l+" .jwtextwrapper",{overflow:c})})(jwplayer.html5);(function(b){var d=jwplayer,a=d.utils,c=d.events;b.playlistloader=function(){var f=new c.eventdispatcher();a.extend(this,f);this.load=function(h){a.ajax(h,g,e)};function g(h){try{var l=h.responseXML.firstChild;if(b.parsers.localName(l)=="xml"){l=l.nextSibling}if(b.parsers.localName(l)!="rss"){e("Playlist is not a valid RSS feed.");return}var k=new d.playlist(b.parsers.rssparser.parse(l));if(k&&k.length&&k[0].sources&&k[0].sources.length&&k[0].sources[0].file){f.sendEvent(c.JWPLAYER_PLAYLIST_LOADED,{playlist:k})}else{e("No playable sources found")}}catch(j){e("Could not load the playlist.")}}function e(h){f.sendEvent(c.JWPLAYER_ERROR,{message:h?h:"Could not load playlist an unknown reason."})}}})(jwplayer.html5);(function(f){var h=jwplayer,l=h.utils,m=h.events,a=h.playlist,j=1,e=2,d=3,k=4,c=5,b=6,g=7;f.setup=function(t,I,J){var M=t,q=I,G=J,v={},D={},B,A=new m.eventdispatcher(),w=false,x=[];function u(){s(j,p);s(e,R,j);s(d,z,j);s(k,L,d);s(c,Q,k+","+e);s(b,K,c+","+d);s(g,E,b)}function s(S,U,T){x.push({name:S,method:U,depends:T})}function H(){for(var U=0;U<x.length;U++){var S=x[U];if(P(S.depends)){x.splice(U,1);try{S.method();H()}catch(T){y(T.message)}return}}if(x.length>0&&!w){setTimeout(H,500)}}function P(U){if(!U){return true}var T=U.toString().split(",");for(var S=0;S<T.length;S++){if(!v[T[S]]){return false}}return true}function o(S){v[S]=true}function p(){o(j)}function R(){B=new f.skin();B.load(M.config.skin,C,O)}function C(S){o(e)}function O(S){y("Error loading skin: "+S)}function z(){switch(l.typeOf(M.config.playlist)){case"string":var S=new f.playlistloader();S.addEventListener(m.JWPLAYER_PLAYLIST_LOADED,n);S.addEventListener(m.JWPLAYER_ERROR,F);S.load(M.config.playlist);break;case"array":r(new a(M.config.playlist))}}function n(S){r(S.playlist)}function r(S){M.setPlaylist(S);if(M.playlist[0].sources.length==0){y("Error loading playlist: No playable sources found")}else{o(d)}}function F(S){y("Error loading playlist: "+S.message)}function L(){var T=M.playlist[M.item].image;if(T){var S=new Image();S.addEventListener("load",N,false);S.addEventListener("error",N,false);S.src=T}else{o(k)}}function N(S){o(k)}function Q(){q.setup(B);o(c)}function K(){o(b)}function E(){A.sendEvent(m.JWPLAYER_READY);o(g)}function y(S){w=true;A.sendEvent(m.JWPLAYER_ERROR,{message:S});q.setupError(S)}l.extend(this,A);this.start=H;u()}})(jwplayer.html5);(function(a){a.skin=function(){var b={};var c=false;this.load=function(f,e,d){new a.skinloader(f,function(g){c=true;b=g;if(typeof e=="function"){e()}},function(g){if(typeof d=="function"){d(g)}})};this.getSkinElement=function(d,e){if(c){try{return b[d].elements[e]}catch(f){jwplayer.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.html5);(function(a){var b=jwplayer.utils;a.skinloader=function(g,q,l){var p={};var d=q;var m=l;var f=true;var k;var o=g;var t=false;function n(){if(typeof o!="string"||o===""){e(a.defaultskin().xml)}else{if(b.extension(o)!="xml"){m("Skin not a valid file type");return}b.ajax(b.getAbsolutePath(o),function(u){try{if(b.exists(u.responseXML)){e(u.responseXML);return}}catch(v){j()}e(a.defaultskin().xml)},function(u){m(u)})}}function e(y){var E=y.getElementsByTagName("component");if(E.length===0){return}for(var H=0;H<E.length;H++){var C=E[H].getAttribute("name");var B={settings:{},elements:{},layout:{}};p[C]=B;var G=E[H].getElementsByTagName("elements")[0].getElementsByTagName("element");for(var F=0;F<G.length;F++){c(G[F],C)}var z=E[H].getElementsByTagName("settings")[0];if(z&&z.childNodes.length>0){var K=z.getElementsByTagName("setting");for(var O=0;O<K.length;O++){var Q=K[O].getAttribute("name");var I=K[O].getAttribute("value");if(/color$/.test(Q)){I=b.stringToColor(I)}p[C].settings[Q]=I}}var L=E[H].getElementsByTagName("layout")[0];if(L&&L.childNodes.length>0){var M=L.getElementsByTagName("group");for(var x=0;x<M.length;x++){var A=M[x];p[C].layout[A.getAttribute("position")]={elements:[]};for(var P=0;P<A.attributes.length;P++){var D=A.attributes[P];p[C].layout[A.getAttribute("position")][D.name]=D.value}var N=A.getElementsByTagName("*");for(var w=0;w<N.length;w++){var u=N[w];p[C].layout[A.getAttribute("position")].elements.push({type:u.tagName});for(var v=0;v<u.attributes.length;v++){var J=u.attributes[v];p[C].layout[A.getAttribute("position")].elements[w][J.name]=J.value}if(!b.exists(p[C].layout[A.getAttribute("position")].elements[w].name)){p[C].layout[A.getAttribute("position")].elements[w].name=u.tagName}}}}f=false;s()}}function s(){clearInterval(k);if(!t){k=setInterval(function(){r()},100)}}function c(z,y){var x=new Image();var u=z.getAttribute("name");var w=z.getAttribute("src");var B;if(w.indexOf("data:image/png;base64,")===0){B=w}else{var v=b.getAbsolutePath(o);var A=v.substr(0,v.lastIndexOf("/"));B=[A,y,w].join("/")}p[y].elements[u]={height:0,width:0,src:"",ready:false,image:x};x.onload=function(C){h(x,u,y)};x.onerror=function(C){t=true;s();m("Skin image not found: "+this.src)};x.src=B}function j(){for(var v in p){var x=p[v];for(var u in x.elements){var y=x.elements[u];var w=y.image;w.onload=null;w.onerror=null;delete y.image;delete x.elements[u]}delete p[v]}}function r(){for(var u in p){if(u!="properties"){for(var v in p[u].elements){if(!p[u].elements[v].ready){return}}}}if(f===false){clearInterval(k);d(p)}}function h(u,w,v){if(p[v]&&p[v].elements[w]){p[v].elements[w].height=u.height;p[v].elements[w].width=u.width;p[v].elements[w].src=u.src;p[v].elements[w].ready=true;s()}else{b.log("Loaded an image for a missing element: "+v+"."+w)}}n()}})(jwplayer.html5);(function(c){var a=c.utils,d=c.events,b=d.state;c.html5.video=function(R){var L={abort:x,canplay:p,canplaythrough:x,durationchange:z,emptied:x,ended:x,error:l,loadeddata:x,loadedmetadata:p,loadstart:x,pause:Q,play:Q,playing:Q,progress:x,ratechange:x,readystatechange:x,seeked:x,seeking:x,stalled:x,suspend:x,timeupdate:S,volumechange:k,waiting:s},v=a.extensionmap,B,G,X,t,W,n,O,V,F,M,C,e=b.IDLE,H,m=-1,E=-1,I=new d.eventdispatcher(),r=false,D,A=-1,g=this;a.extend(g,I);function T(Y){t=Y;N();t.controls=true;t.controls=false;r=true}function N(){for(var Y in L){t.addEventListener(Y,L[Y],false)}}function q(Y,Z){if(r){I.sendEvent(Y,Z)}}function x(Y){}function z(Y){if(!r){return}if(W<0){W=t.duration}S()}function S(Y){if(!r){return}if(e==b.PLAYING&&!C){n=t.currentTime;q(d.JWPLAYER_MEDIA_TIME,{position:n,duration:W});if(n>=W&&W>0){P()}}}function p(Y){if(!r){return}if(!V){V=true;o();if(M>0){y(M)}}}function o(){if(!F){F=true;q(d.JWPLAYER_MEDIA_BUFFER_FULL)}}function Q(Y){if(!r||C){return}if(t.paused){f()}else{u(b.PLAYING)}}function s(Y){if(!r){return}u(b.BUFFERING)}function l(Y){if(!r){return}a.log("Error playing media: %o",t.error);I.sendEvent(d.JWPLAYER_MEDIA_ERROR,{message:"Error loading media: File could not be played"});u(b.IDLE)}function j(ab){if(a.typeOf(ab)=="array"&&ab.length>0){var Y=[];for(var aa=0;aa<ab.length;aa++){var ac=ab[aa],Z={};Z.label=K(ac)?K(ac):aa;if(ac.width){Z.width=ac.width}if(ac.height){Z.height=ac.height}if(ac.bitrate){Z.bitrate=ac.bitrate}Y[aa]=Z}I.sendEvent(d.JWPLAYER_MEDIA_LEVELS,{levels:Y,currentQuality:A})}}function K(Y){if(Y.label){return Y.label}else{if(Y.height){return Y.height+"p"}else{if(Y.width){return(Y.width*9/16)+"p"}else{if(Y.bitrate){return Y.bitrate+"kbps"}else{return 0}}}}}g.load=function(Y){if(!r){return}B=Y;V=false;F=false;M=0;W=Y.duration?Y.duration:-1;n=0;if(A<0){A=0}D=B.sources;j(D);G=D[A];u(b.BUFFERING);t.src=G.file;t.load();m=setInterval(h,100);if(a.isIPod()){o()}};var w=g.stop=function(){if(!r){return}t.removeAttribute("src");t.load();A=-1;clearInterval(m);u(b.IDLE)};g.play=function(){if(r){t.play()}};var f=g.pause=function(){if(r){t.pause();u(b.PAUSED)}};g.seekDrag=function(Y){if(!r){return}C=Y;if(Y){t.pause()}else{t.play()}};var y=g.seek=function(Y){if(!r){return}if(t.readyState>=t.HAVE_FUTURE_DATA){M=0;if(!C){q(d.JWPLAYER_MEDIA_SEEK,{position:n,offset:Y})}t.currentTime=Y}else{M=Y}};var U=g.volume=function(Y){t.volume=Y/100};function k(Y){q(d.JWPLAYER_MEDIA_VOLUME,{volume:Math.round(t.volume*100)});q(d.JWPLAYER_MEDIA_MUTE,{mute:t.muted})}g.mute=function(Y){if(!a.exists(Y)){Y=!t.mute}if(Y){if(!t.muted){H=t.volume*100;t.muted=true;U(0)}}else{if(t.muted){U(H);t.muted=false}}};function u(Y){if(Y==b.PAUSED&&e==b.IDLE){return}if(C){return}if(e!=Y){var Z=e;e=Y;q(d.JWPLAYER_PLAYER_STATE,{oldstate:Z,newstate:Y})}}function h(){if(!r){return}var Y=J();if(Y!=E){E=Y;q(d.JWPLAYER_MEDIA_BUFFER,{bufferPercent:Math.round(E*100)})}if(Y>=1){clearInterval(m)}}function J(){if(t.buffered.length==0||t.duration==0){return 0}else{return t.buffered.end(t.buffered.length-1)/t.duration}}function P(){A=-1;u(b.IDLE);q(d.JWPLAYER_MEDIA_BEFORECOMPLETE);q(d.JWPLAYER_MEDIA_COMPLETE)}g.detachMedia=function(){r=false;return t};g.attachMedia=function(){r=true};g.getTag=function(){return t};g.audioMode=function(){if(!D){return false}var Y=D[0].type;return(Y=="aac"||Y=="mp3"||Y=="vorbis")};g.setCurrentQuality=function(Z){if(A==Z){return}if(Z>=0){if(D&&D.length>Z){A=Z;q(d.JWPLAYER_MEDIA_QUALITY_CHANGED,{currentQuality:Z,levels:D});var Y=t.currentTime;g.load(B);g.seek(Y)}}};g.getCurrentQuality=function(){return A};g.getQualityLevels=function(){return D};T(R)}})(jwplayer);(function(h){var m=jwplayer,r=m.utils,a=jwplayer.events,d=a.state,o=r.css,e=document,l="jwplayer",b="."+l+".jwfullscreen",n="jwmain",t="jwinstream",s="jwvideo",c="jwcontrols",f="jwplaylistcontainer",q="opacity .5s ease",k="100%",g="absolute",p=" !important",j="hidden";h.view=function(E,z){var D=E,B=z,X,N,M,aa,v=0,ah=2000,x,ao,H,ag,ap,aj,J,A=r.isMobile(),ar=r.isIPad(),S=(ar&&B.mobilecontrols),ac=new a.eventdispatcher();r.extend(this,ac);function al(){X=ai("div",l);X.id=D.id;var au=document.getElementById(D.id);au.parentNode.replaceChild(X,au)}this.setup=function(au){D.skin=au;N=ai("span",n);ao=ai("span",s);x=B.getVideo().getTag();ao.appendChild(x);M=ai("span",c);H=ai("span",t);aa=ai("span",f);u();N.appendChild(ao);N.appendChild(M);N.appendChild(H);X.appendChild(N);X.appendChild(aa);e.addEventListener("webkitfullscreenchange",ak,false);e.addEventListener("mozfullscreenchange",ak,false);e.addEventListener("keydown",ad,false);D.jwAddEventListener(a.JWPLAYER_PLAYER_STATE,F);F({newstate:d.IDLE});M.addEventListener("mouseout",ab,false);M.addEventListener("mousemove",aq,false);if(ag){ag.getDisplayElement().addEventListener("mousemove",V,false);ag.getDisplayElement().addEventListener("mouseout",an,false)}};function ai(av,au){var aw=e.createElement(av);if(au){aw.className=au}return aw}function aq(){clearTimeout(v);if(D.jwGetState()==d.PLAYING||D.jwGetState()==d.PAUSED){L();if(!af){v=setTimeout(ab,ah)}}}var af=false;function V(){clearTimeout(v);af=true}function an(){af=false}function ab(){if(D.jwGetState()==d.PLAYING||D.jwGetState()==d.PAUSED){G()}clearTimeout(v);v=0}function u(){var av=B.width,au=B.height,aw=B.componentConfig("controlbar");displaySettings=B.componentConfig("display");ap=new h.display(D,displaySettings);ap.addEventListener(a.JWPLAYER_DISPLAY_CLICK,function(ax){ac.sendEvent(ax.type,ax)});M.appendChild(ap.getDisplayElement());if(B.playlistsize&&B.playlistposition&&B.playlistposition!="none"){aj=new h.playlistcomponent(D,{});aa.appendChild(aj.getDisplayElement())}if(!A||S){ag=new h.controlbar(D,aw);M.appendChild(ag.getDisplayElement());if(S){L()}}else{x.controls=true}T(av,au)}var Q=this.fullscreen=function(au){if(!r.exists(au)){au=!B.fullscreen}if(au){if(!B.fullscreen){U(true);if(X.requestFullScreen){X.requestFullScreen()}else{if(X.mozRequestFullScreen){X.mozRequestFullScreen()}else{if(X.webkitRequestFullScreen){X.webkitRequestFullScreen()}}}B.setFullscreen(true)}}else{U(false);if(B.fullscreen){if(e.cancelFullScreen){e.cancelFullScreen()}else{if(e.mozCancelFullScreen){e.mozCancelFullScreen()}else{if(e.webkitCancelFullScreen){e.webkitCancelFullScreen()}}}B.setFullscreen(false)}}};function T(aw,au){if(r.exists(aw)&&r.exists(au)){o(Z(),{width:aw,height:au});B.width=aw;B.height=au}if(ap){ap.redraw()}if(ag){ag.redraw()}var ay=B.playlistsize,az=B.playlistposition;if(aj&&ay&&az){aj.redraw();var av={display:"block"},ax={};av[az]=0;ax[az]=ay;if(az=="left"||az=="right"){av.width=ay}else{av.height=ay}o(Z(f),av);o(Z(n),ax)}y(au);C();return}function y(au){J=(!!ag&&au<=40&&au.toString().indexOf("%")<0);if(J){B.componentConfig("controlbar").margin=0;ag.redraw();L();K();O(false)}else{am(D.jwGetState())}o(Z(),{"background-color":J?"transparent":ap.getBGColor()})}function C(){r.stretch(B.stretching,x,ao.clientWidth,ao.clientHeight,x.videoWidth,x.videoHeight)}this.resize=T;this.resizeMedia=C;var W=this.completeSetup=function(){o(Z(),{opacity:1})};function ad(au){if(B.fullscreen){switch(au.keyCode){case 27:Q(false);break}}}function U(au){if(au){X.className+=" jwfullscreen"}else{X.className=X.className.replace(/\s+jwfullscreen/,"")}}function at(){var au=[e.mozFullScreenElement,e.webkitCurrentFullScreenElement];for(var av=0;av<au.length;av++){if(au[av]&&au[av].id==D.id){return true}}return false}function ak(au){B.setFullscreen(at());Q(B.fullscreen)}function L(){if(ag&&B.controlbar){ag.show()}}function G(){if(ag&&!J&&!S){ag.hide()}}function w(){if(ap&&!J){ap.show()}}function K(){if(ap){ap.hide()}}function I(){G();K()}function ae(){L();w()}function O(au){au=au&&!J;o(Z(s),{visibility:au?"visible":"hidden",opacity:au?1:0})}var P;function F(au){clearTimeout(P);P=setTimeout(function(){am(au.newstate)},100)}function am(au){switch(au){case d.PLAYING:if(!B.getVideo().audioMode()||A){O(true);C();ap.hidePreview(true);if(A){if(ar&&!S){x.controls=true}else{K()}}}aq();break;case d.COMPLETED:case d.IDLE:if(!A){O(false)}G();ap.hidePreview(false);w();if(ar){x.controls=false}break;case d.BUFFERING:if(A){O(true)}else{ae()}break;case d.PAUSED:if(!A||S){ae()}else{if(ar){x.controls=false}}break}}function Z(au){return"#"+D.id+(au?" ."+au:"")}this.setupInstream=function(au,av){Y(Z(t),true);Y(Z(c),false);H.appendChild(au);_instreamVideo=av;F({newstate:d.PLAYING});_instreamMode=true};var R=this.destroyInstream=function(){Y(Z(t),false);Y(Z(c),true);H.innerHTML="";_instreamVideo=null;_instreamMode=false;T(B.width,B.height)};this.setupError=function(au){jwplayer.embed.errorScreen(X,au);W()};function Y(au,av){o(au,{display:av?"block":"none"})}al()};o("."+l,{position:"relative",overflow:"hidden",opacity:0,"-webkit-transition":q,"-moz-transition":q,"-o-transition":q});o("."+n,{position:g,left:0,right:0,top:0,bottom:0,"-webkit-transition":q,"-moz-transition":q,"-o-transition":q});o("."+s+" ,."+c,{position:g,height:k,width:k,"-webkit-transition":q,"-moz-transition":q,"-o-transition":q});o("."+s,{visibility:"hidden"});o("."+s+" video",{background:"transparent",width:k,height:k});o("."+f,{position:g,height:k,width:k,display:"none"});o("."+t,{overflow:"hidden",position:g,top:0,left:0,bottom:0,right:0,display:"none"});o(b,{width:k,height:k,left:0,right:0,top:0,bottom:0,"z-index":1000,position:"fixed"},true);o(b+" ."+n,{left:0,right:0,top:0,bottom:0},true);o(b+" ."+f,{display:"none"},true);o("."+l+" .jwuniform",{"background-size":"contain"+p});o("."+l+" .jwfill",{"background-size":"cover"+p,"background-position":"center"});o("."+l+" .jwexactfit",{"background-size":k+" "+k+p})})(jwplayer.html5);1 (function(a){a.html5={};a.html5.version="6.0.2234"})(jwplayer);(function(a){var g=document,e=window;a.serialize=function(j){if(j==null){return null}else{if(j=="true"){return true}else{if(j=="false"){return false}else{if(isNaN(Number(j))||j.length>5||j.length==0){return j}else{return Number(j)}}}}};a.filterSources=function(j){var n,o;if(j){o=[];for(var l=0;l<j.length;l++){var m=j[l].type,k=j[l].file;if(!m){m=a.extension(k);j[l].type=m}if(c(m)){if(!n){n=m}if(m==n){o.push(j[l])}}}}return o};function c(j){var k=a.extensionmap[j];return(!!k&&!!k.html5&&jwplayer.vid.canPlayType(k.html5))}a.ajax=function(n,m,j){var l;if(b(n)&&a.exists(e.XDomainRequest)){l=new XDomainRequest();l.onload=f(l,n,m,j);l.onerror=d(j,n,l)}else{if(a.exists(e.XMLHttpRequest)){l=new XMLHttpRequest();l.onreadystatechange=h(l,n,m,j);l.onerror=d(j,n)}else{if(j){j()}}}try{l.open("GET",n,true);l.send(null)}catch(k){if(j){j(n)}}return l};function b(j){if(j&&j.indexOf("://")>=0){if(j.split("/")[2]!=e.location.href.split("/")[2]){return true}}return false}function d(j,l,k){return function(){j("Error loading file")}}function h(k,m,l,j){return function(){if(k.readyState===4){switch(k.status){case 200:f(k,m,l,j)();break;case 404:j("File not found")}}}}function f(k,m,l,j){return function(){if(!a.exists(k.responseXML)){try{var n;if(e.DOMParser){n=(new DOMParser()).parseFromString(k.responseText,"text/xml")}else{n=new ActiveXObject("Microsoft.XMLDOM");n.async="false";n.loadXML(k.responseText)}if(n){k=a.extend({},k,{responseXML:n})}}catch(o){if(j){j(m)}return}}l(k)}}a.parseDimension=function(j){if(typeof j=="string"){if(j===""){return 0}else{if(j.lastIndexOf("%")>-1){return j}else{return parseInt(j.replace("px",""),10)}}}return j};a.timeFormat=function(j){if(j>0){var k=Math.floor(j/60)<10?"0"+Math.floor(j/60)+":":Math.floor(j/60)+":";k+=Math.floor(j%60)<10?"0"+Math.floor(j%60):Math.floor(j%60);return k}else{return"00:00"}};a.getBoundingClientRect=function(j){if(typeof j.getBoundingClientRect=="function"){return j.getBoundingClientRect()}else{return{left:j.offsetLeft+g.body.scrollLeft,top:j.offsetTop+g.body.scrollTop,width:j.offsetWidth,height:j.offsetHeight}}}})(jwplayer.utils);(function(a){var b=a.animations=function(){};b.rotate=function(c,d){a.transform(c,"rotate("+d+"deg)")}})(jwplayer.utils);(function(h){var a={},g,b={};function f(){var k=document.createElement("style");k.type="text/css";document.getElementsByTagName("head")[0].appendChild(k);return k}h.css=function(k,n,l){if(!h.exists(l)){l=false}if(h.isIE()){if(!g){g=f()}}else{if(!a[k]){a[k]=f()}}if(!b[k]){b[k]={}}for(var m in n){var o=j(m,n[m],l);if(h.exists(b[k][m])&&!h.exists(o)){delete b[k][m]}else{b[k][m]=o}}if(h.isIE()){e()}else{d(k,a[k])}};function j(m,n,k){if(typeof n==="undefined"){return undefined}var l=k?" !important":"";if(!isNaN(n)){switch(m){case"z-index":case"opacity":return n+l;break;default:if(m.match(/color/i)){return"#"+h.pad(n.toString(16).replace(/^0x/i,""),6)+l}else{if(n===0){return 0+l}else{return Math.ceil(n)+"px"+l}}break}}else{return n+l}}function e(){var k="\n";for(var l in b){k+=c(l)}g.innerHTML=k}function d(k,l){if(l){l.innerHTML=c(k)}}function c(k){var l=k+"{\n";var n=b[k];for(var m in n){l+=" "+m+": "+n[m]+";\n"}l+="}\n";return l}h.clearCss=function(l){for(var m in b){if(m.indexOf(l)>=0){delete b[m]}}for(var k in a){if(k.indexOf(l)>=0){a[k].innerHTML=""}}}})(jwplayer.utils);(function(a){var b=a.exists;a.scale=function(f,e,d,h,j){var g;if(!b(e)){e=1}if(!b(d)){d=1}if(!b(h)){h=0}if(!b(j)){j=0}if(e==1&&d==1&&h==0&&j==0){g=""}else{g="scale("+e+","+d+") translate("+h+"px,"+j+"px)"}};a.transform=function(d,f){var e=d.style;if(b(f)){e.webkitTransform=f;e.MozTransform=f;e.msTransform=f;e.OTransform=f}};a.stretch=function(m,r,q,j,o,k){if(!r){return}if(!m){m=c.UNIFORM}if(!q||!j||!o||!k){return}var e=q/o,h=j/k,p=0,l=0,d={},f=(r.tagName.toLowerCase()=="video"),g=false,n;if(f){a.transform(r)}n="jw"+m.toLowerCase();switch(m.toLowerCase()){case c.FILL:if(e>h){o=o*e;k=k*e}else{o=o*h;k=k*h}case c.NONE:e=h=1;case c.EXACTFIT:g=true;break;case c.UNIFORM:default:if(e>h){o=o*h;k=k*h;if(o/q>0.95){g=true;n="jwexactfit";e=Math.ceil(100*q/o)/100;h=1}}else{o=o*e;k=k*e;if(k/j>0.95){g=true;n="jwexactfit";h=Math.ceil(100*j/k)/100;e=1}}break}if(f){if(g){r.style.width=o+"px";r.style.height=k+"px";p=((q-o)/2)/e;l=((j-k)/2)/h;a.scale(r,e,h,p,l)}else{r.style.width="";r.style.height=""}}else{r.className=r.className.replace(/\s*jw(none|exactfit|uniform|fill)/g,"");r.className+=" "+n}};var c=a.stretching={NONE:"none",FILL:"fill",UNIFORM:"uniform",EXACTFIT:"exactfit"}})(jwplayer.utils);(function(a){a.parsers={localName:function(b){if(!b){return""}else{if(b.localName){return b.localName}else{if(b.baseName){return b.baseName}else{return""}}}},textContent:function(b){if(!b){return""}else{if(b.textContent){return b.textContent}else{if(b.text){return b.text}else{return""}}}},getChildNode:function(c,b){return c.childNodes[b]},numChildren:function(b){if(b.childNodes){return b.childNodes.length}else{return 0}}}})(jwplayer.html5);(function(b){var a=b.html5.parsers;var d=a.jwparser=function(){};var c="jwplayer";d.parseEntry=function(h,j){for(var f=0;f<h.childNodes.length;f++){var g=h.childNodes[f];if(g.prefix==c){var e=a.localName(g);j[e]=b.utils.serialize(a.textContent(g));if(e=="file"&&j.sources){delete j.sources}}if(!j.file){j.file=j.link}}return j}})(jwplayer);(function(e){var b=jwplayer.utils,h=b.xmlAttribute,c=e.localName,a=e.textContent,d=e.numChildren;var g=e.mediaparser=function(){};var f="media";g.parseGroup=function(m,n){for(var k=0;k<d(m);k++){var l=m.childNodes[k];if(l.prefix==f){if(!c(l)){continue}switch(c(l).toLowerCase()){case"content":n.file=h(l,"url");if(h(l,"duration")){n.duration=b.seconds(h(l,"duration"))}if(d(l)>0){n=g.parseGroup(l,n)}if(h(l,"url")){if(!n.sources){n.sources=[]}n.sources.push({file:h(l,"url"),type:h(l,"type"),width:h(l,"width"),label:h(l,"height")?h(l,"height")+"p":undefined})}break;case"title":n.title=a(l);break;case"description":n.description=a(l);break;case"guid":n.mediaid=a(l);break;case"thumbnail":n.image=h(l,"url");break;case"player":var j=l.url;break;case"group":g.parseGroup(l,n);break}}}return n}})(jwplayer.html5.parsers);(function(g){var b=jwplayer.utils,a=g.textContent,e=g.getChildNode,f=g.numChildren,d=g.localName;g.rssparser={};g.rssparser.parse=function(o){var h=[];for(var m=0;m<f(o);m++){var n=e(o,m),k=d(n).toLowerCase();if(k=="channel"){for(var l=0;l<f(n);l++){var p=e(n,l);if(d(p).toLowerCase()=="item"){h.push(c(p))}}}}return h};function c(l){var m={};for(var j=0;j<l.childNodes.length;j++){var k=l.childNodes[j];var h=d(k);if(!h){continue}switch(h.toLowerCase()){case"enclosure":m.file=b.xmlAttribute(k,"url");break;case"title":m.title=a(k);break;case"pubdate":m.date=a(k);break;case"description":m.description=a(k);break;case"link":m.link=a(k);break;case"category":if(m.tags){m.tags+=a(k)}else{m.tags=a(k)}break}}m=g.mediaparser.parseGroup(l,m);m=g.jwparser.parseEntry(l,m);return new jwplayer.playlist.item(m)}})(jwplayer.html5.parsers);(function(n){var w=n.html5,h=n.utils,k=n.events,r=n.events.state,q=h.css,b="button",p="text",e="divider",s="slider",f="relative",g="absolute",a="none",o="block",u="inline",m="inline-block",j="hidden",c="left",x="right",l="100%",t="width .25s linear, left .25s linear, opacity .25s, background .25s, visibility .25s",v=".jwcontrolbar",d=document;w.controlbar=function(E,at){var C,Y,D={margin:10,font:"Arial,sans-serif",fontsize:10,fontcolor:parseInt("000000",16),fontstyle:"normal",fontweight:"bold",layout:{left:{position:"left",elements:[{name:"play",type:b},{name:"divider",type:e},{name:"prev",type:b},{name:"divider",type:e},{name:"next",type:b},{name:"divider",type:e},{name:"elapsed",type:p}]},center:{position:"center",elements:[{name:"time",type:s}]},right:{position:"right",elements:[{name:"duration",type:p},{name:"blank",type:b},{name:"divider",type:e},{name:"mute",type:b},{name:"volume",type:s},{name:"divider",type:e},{name:"fullscreen",type:b}]}}},W,aC,an,aA,aq,aK,L,O,ak=false,au=0,ab={play:"pause",mute:"unmute",fullscreen:"normalscreen"},aB={play:false,mute:false,fullscreen:false},B={play:ag,mute:P,fullscreen:ad,next:A,prev:aj},F={time:aa,volume:aF};function aE(){an={};C=E;aq=C.id+"_controlbar";aK=L=0;aA=Q();aA.id=aq;aA.className="jwcontrolbar";window.addEventListener("mousemove",aJ,false);window.addEventListener("mouseup",aJ,false);Y=C.skin;aC=Y.getComponentLayout("controlbar");if(!aC){aC=D.layout}h.clearCss("#"+aq);Z();aw();y();R();G();aG()}function y(){C.jwAddEventListener(n.events.JWPLAYER_MEDIA_TIME,aL);C.jwAddEventListener(n.events.JWPLAYER_PLAYER_STATE,I);C.jwAddEventListener(n.events.JWPLAYER_MEDIA_MUTE,aG);C.jwAddEventListener(n.events.JWPLAYER_MEDIA_VOLUME,G);C.jwAddEventListener(n.events.JWPLAYER_MEDIA_BUFFER,M);C.jwAddEventListener(n.events.JWPLAYER_FULLSCREEN,H);C.jwAddEventListener(n.events.JWPLAYER_PLAYLIST_LOADED,R)}function aL(aN){var aM=false,aO;if(an.elapsed){aO=h.timeFormat(aN.position);an.elapsed.innerHTML=aO;aM=(aO.length!=h.timeFormat(L).length)}if(an.duration){aO=h.timeFormat(aN.duration);an.duration.innerHTML=aO;aM=(aM||(aO.length!=h.timeFormat(aK).length))}if(aN.duration>0){az(aN.position/aN.duration)}else{az(0)}aK=aN.duration;L=aN.position;if(aM){U()}}function I(aM){switch(aM.newstate){case r.BUFFERING:case r.PLAYING:q(av(".jwtimeSliderThumb"),{opacity:1});V("play",true);break;case r.PAUSED:if(!ak){V("play",false)}break;case r.IDLE:V("play",false);q(av(".jwtimeSliderThumb"),{opacity:0});if(an.timeRail){an.timeRail.className="jwrail";setTimeout(function(){an.timeRail.className+=" jwsmooth"},100)}aD(0);aL({position:0,duration:0});break;case r.COMPLETED:q(av(),{opacity:0});break}}function aG(){var aM=C.jwGetMute();V("mute",aM);z(aM?0:O)}function G(){O=C.jwGetVolume()/100;z(O)}function M(aM){aD(aM.bufferPercent/100)}function H(aM){V("fullscreen",aM.fullscreen)}function R(aM){if(C.jwGetPlaylist().length<2){q(av(".jwnext"),{display:"none"});q(av(".jwprev"),{display:"none"})}else{q(av(".jwnext"),{display:undefined});q(av(".jwprev"),{display:undefined})}U()}function Z(){W=h.extend({},D,Y.getComponentSettings("controlbar"),at);q("#"+aq,{height:af("background").height,bottom:W.margin?W.margin:0,left:W.margin?W.margin:0,right:W.margin?W.margin:0});q(av(".jwtext"),{font:W.fontsize+"px/"+af("background").height+"px "+W.font,color:W.fontcolor,"font-weight":W.fontweight,"font-style":W.fontstyle,"text-align":"center",padding:"0 5px"})}function av(aM){return"#"+aq+(aM?" "+aM:"")}function Q(){return d.createElement("span")}function aw(){var aO=ao("capLeft");var aN=ao("capRight");var aM=ao("background",{position:g,left:af("capLeft").width,right:af("capRight").width,"background-repeat":"repeat-x"},true);if(aM){aA.appendChild(aM)}if(aO){aA.appendChild(aO)}ax();if(aN){aA.appendChild(aN)}}function S(aM){switch(aM.type){case e:return ai(aM);break;case p:return ap(aM.name);break;case b:if(aM.name!="blank"){return ah(aM.name)}break;case s:return T(aM.name);break}}function ao(aO,aR,aN,aT){var aQ=Q();aQ.className="jw"+aO;var aM=aT?" left center":" center";var aP=af(aO);aQ.innerHTML=" ";if(!aP||aP.src==""){return}var aS;if(aN){aS={background:"url('"+aP.src+"') repeat-x "+aM}}else{aS={background:"url('"+aP.src+"') no-repeat"+aM,width:aP.width}}q(av(".jw"+aO),h.extend(aS,aR));an[aO]=aQ;return aQ}function ah(aO){if(!af(aO+"Button").src){return null}var aP=d.createElement("button");aP.className="jw"+aO;aP.addEventListener("click",al(aO),false);var aQ=af(aO+"Button");var aN=af(aO+"ButtonOver");aP.innerHTML=" ";X(av(".jw"+aO),aQ,aN);var aM=ab[aO];if(aM){X(av(".jw"+aO+".jwtoggle"),af(aM+"Button"),af(aM+"ButtonOver"))}an[aO]=aP;return aP}function X(aM,aN,aO){if(!aN.src){return}q(aM,{width:aN.width,background:"url("+aN.src+") center no-repeat"});if(aO.src){q(aM+":hover",{background:"url("+aO.src+") center no-repeat"})}}function al(aM){return function(){if(B[aM]){B[aM]()}}}function ag(){if(aB.play){C.jwPause()}else{C.jwPlay()}}function P(){C.jwSetMute();aG({mute:aB.mute})}function aF(aM){if(aM<0.1){aM=0}if(aM>0.9){aM=1}C.jwSetVolume(aM*100);z(aM)}function aa(aM){C.jwSeek(aM*aK)}function ad(){C.jwSetFullscreen()}function A(){C.jwPlaylistNext()}function aj(){C.jwPlaylistNext()}function V(aM,aN){if(!h.exists(aN)){aN=!aB[aM]}if(an[aM]){an[aM].className="jw"+aM+(aN?" jwtoggle jwtoggling":" jwtoggling");setTimeout(function(){an[aM].className=an[aM].className.replace(" jwtoggling","")},100)}aB[aM]=aN}function N(aM){return aq+"_"+aM}function ap(aM,aQ){var aO=Q();aO.id=N(aM);aO.className="jwtext jw"+aM;var aN={};var aP=af(aM+"Background");if(aP.src){aN.background="url("+aP.src+") no-repeat center";aN["background-size"]="100% "+af("background").height+"px"}q(av(".jw"+aM),aN);aO.innerHTML="00:00";an[aM]=aO;return aO}function ai(aN){if(aN.width){var aM=Q();aM.className="jwblankDivider";q(aM,{width:parseInt(aN.width)});return aM}else{if(aN.element){return ao(aN.element)}else{return ao(aN.name)}}}function T(aM){var aP=Q();aP.className="jwslider jw"+aM;var aO=ao(aM+"SliderCapLeft");var aN=ao(aM+"SliderCapRight");var aQ=ar(aM);if(aO){aP.appendChild(aO)}aP.appendChild(aQ);if(aO){aP.appendChild(aN)}q(av(".jw"+aM+" .jwrail"),{left:af(aM+"SliderCapLeft").width,right:af(aM+"SliderCapRight").width,});an[aM]=aP;if(aM=="time"){aI(aP);az(0);aD(0)}else{if(aM=="volume"){ay(aP)}}return aP}function ar(aO){var aR=Q();aR.className="jwrail jwsmooth";var aM=["Rail","Buffer","Progress"];for(var aQ=0;aQ<aM.length;aQ++){var aP=ao(aO+"Slider"+aM[aQ],null,true,(aO=="volume"));if(aP){aP.className+=" jwstretch";aR.appendChild(aP)}}var aN=ao(aO+"SliderThumb");if(aN){q(av("."+aN.className),{opacity:0});aN.className+=" jwthumb";aR.appendChild(aN)}aR.addEventListener("mousedown",J(aO),false);an[aO+"Rail"]=aR;return aR}function K(){var aM=C.jwGetState();return(aM==r.IDLE||aM==r.COMPLETED)}function J(aM){return(function(aN){if(aN.button!=0){return}an[aM+"Rail"].className="jwrail";if(aM=="time"){if(!K()){C.jwSeekDrag(true);ak=aM}}else{ak=aM}})}function aJ(aM){if(!ak||aM.button!=0){return}var aQ=an[ak].getElementsByClassName("jwrail")[0],aR=h.getBoundingClientRect(aQ),aP=(aM.clientX-aR.left)/aR.width;if(aM.type=="mouseup"){var aN=ak;if(aN=="time"){C.jwSeekDrag(false)}an[aN+"Rail"].className="jwrail jwsmooth";ak=null;F[aN](aP)}else{if(ak=="time"){az(aP)}else{z(aP)}var aO=(new Date()).getTime();if(aO-au>500){au=aO;F[ak](aP)}}}function aI(aM){if(an.timeSliderThumb){q(av(".jwtimeSliderThumb"),{"margin-left":(af("timeSliderThumb").width/-2)})}aD(0);az(0)}function ay(aO){var aN=af("volumeSliderCapLeft").width,aM=af("volumeSliderCapRight").width,aP=af("volumeSliderRail").width;q(av(".jwvolume"),{width:(aN+aP+aM)})}var ac={};function ax(){aH("left");aH("center");aH("right");aA.appendChild(ac.left);aA.appendChild(ac.center);aA.appendChild(ac.right);q(av(".jwright"),{right:af("capRight").width})}function aH(aN){var aM=Q();aM.className="jwgroup jw"+aN;ac[aN]=aM;if(aC[aN]){ae(aC[aN],ac[aN])}}function ae(aP,aM){if(aP&&aP.elements.length>0){for(var aO=0;aO<aP.elements.length;aO++){var aN=S(aP.elements[aO]);if(aN){aM.appendChild(aN)}}}}var U=this.redraw=function(){Z();q(av(".jwgroup.jwcenter"),{left:Math.round(h.parseDimension(ac.left.offsetWidth)+af("capLeft").width),right:Math.round(h.parseDimension(ac.right.offsetWidth)+af("capRight").width)})};this.getDisplayElement=function(){return aA};function aD(aM){aM=Math.min(Math.max(0,aM),1);if(an.timeSliderBuffer){an.timeSliderBuffer.style.width=aM*100+"%"}}function am(aM,aO,aP){var aN=100*Math.min(Math.max(0,aO),1)+"%";if(an[aM+"SliderProgress"]){an[aM+"SliderProgress"].style.width=aN}if(an[aM+"SliderThumb"]){an[aM+"SliderThumb"].style.left=aN}}function z(aM){am("volume",aM,true)}function az(aM){am("time",aM)}function af(aM){var aN=Y.getSkinElement("controlbar",aM);if(aN){return aN}else{return{width:0,height:0,src:"",image:undefined,ready:false}}}this.show=function(){q(av(),{opacity:1,visibility:"visible"})};this.hide=function(){q(av(),{opacity:0,visibility:j})};aE()};q(v,{position:g,overflow:j,visibility:j,opacity:0,"-webkit-transition":t,"-moz-transition":t,"-o-transition":t});q(v+" span",{height:l,"-webkit-user-select":a,"-webkit-user-drag":a,"user-select":a,"user-drag":a});q(v+" .jwgroup",{display:u});q(v+" span, "+v+" .jwgroup button,"+v+" .jwleft",{position:f,"float":c});q(v+" .jwright",{position:g});q(v+" .jwcenter",{position:g});q(v+" button",{display:m,height:l,border:a,cursor:"pointer","-webkit-transition":t,"-moz-transition":t,"-o-transition":t});q(v+" .jwcapRight,"+v+" .jwtimeSliderCapRight,"+v+" .jwvolumeSliderCapRight",{right:0,position:g});q(v+" .jwtime,"+v+" .jwgroup span.jwstretch",{position:g,height:l,width:l,left:0});q(v+" .jwrail,"+v+" .jwthumb",{position:g,height:l,cursor:"pointer"});q(v+" .jwtime .jwsmooth span",{"-webkit-transition":t,"-moz-transition":t,"-o-transition":t});q(v+" .jwdivider+.jwdivider",{display:a});q(v+" .jwtext",{padding:"0 5px","text-align":"center"});q(v+" .jwtoggling",{"-webkit-transition":a,"-moz-transition":a,"-o-transition":a})})(jwplayer);(function(d){var c=d.html5,a=d.utils,e=d.events,b=e.state;c.controller=function(j,A){var H=j,g=A,r=j.getVideo(),z=this,o=new e.eventdispatcher(H.id,H.config.debug),f=false,u=[];a.extend(this,o);function s(){H.addEventListener(e.JWPLAYER_MEDIA_BUFFER_FULL,E);H.addEventListener(e.JWPLAYER_MEDIA_COMPLETE,function(P){setTimeout(v,25)})}function K(P){if(!f){f=true;g.completeSetup();o.sendEvent(P.type,P);if(d.utils.exists(window.playerReady)){playerReady(P)}o.sendEvent(d.events.JWPLAYER_PLAYLIST_LOADED,{playlist:H.playlist});o.sendEvent(d.events.JWPLAYER_PLAYLIST_ITEM,{index:H.item});H.addGlobalListener(M);g.addGlobalListener(M);O();if(H.autostart&&!a.isIOS()){y()}while(u.length>0){var Q=u.shift();B(Q.method,Q.arguments)}}}function M(P){o.sendEvent(P.type,P)}function E(P){r.play()}function O(P){p();switch(a.typeOf(P)){case"string":H.setPlaylist(new d.playlist({file:P}));H.setItem(0);break;case"object":case"array":H.setPlaylist(new d.playlist(P));H.setItem(0);break;case"number":H.setItem(P);break}}var t,n,q;function y(){try{n=y;if(!t){t=true;o.sendEvent(e.JWPLAYER_MEDIA_BEFOREPLAY);t=false;if(q){q=false;n=null;return}}if(N()){r.load(H.playlist[H.item])}else{if(H.state==b.PAUSED){r.play()}}return true}catch(P){o.sendEvent(e.JWPLAYER_ERROR,P);n=null}return false}function p(){n=null;try{if(!N()){r.stop()}if(t){q=true}return true}catch(P){o.sendEvent(e.JWPLAYER_ERROR,P)}return false}function J(){try{switch(H.state){case b.PLAYING:case b.BUFFERING:r.pause();break;default:if(t){q=true}}return true}catch(P){o.sendEvent(e.JWPLAYER_ERROR,P)}return false;if(H.state==b.PLAYING||H.state==b.BUFFERING){r.pause()}}function N(){return(H.state==b.IDLE||H.state==b.COMPLETED)}function F(P){r.seek(P)}function D(P){g.fullscreen(P)}function x(P){H.stretching=P;g.resize()}function w(P){O(P);y()}function k(){w(H.item-1)}function l(){w(H.item+1)}function v(){if(!N()){return}n=v;switch(H.repeat.toLowerCase()){case"single":y();break;case"always":l();break;case"list":if(H.item==H.playlist.length-1){O(0);H.setState(b.COMPLETED)}else{l()}break;default:H.setState(b.COMPLETED);break}}function L(P){r.setCurrentQuality(P)}function I(){if(r){return r.getCurrentQuality()}else{return -1}}function m(){if(r){return r.getQualityLevels()}else{return null}}function C(){try{return H.getVideo().detachMedia()}catch(P){return null}}function h(){try{var P=H.getVideo().attachMedia();if(typeof n=="function"){n()}}catch(Q){return null}}function G(P){return function(){if(f){B(P,arguments)}else{u.push({method:P,arguments:arguments})}}}function B(R,Q){var P=[];for(i=0;i<Q.length;i++){P.push(Q[i])}R.apply(this,P)}this.play=G(y);this.pause=G(J);this.seek=G(F);this.stop=G(p);this.load=G(O);this.next=G(l);this.prev=G(k);this.item=G(w);this.setVolume=G(H.setVolume);this.setMute=G(H.setMute);this.setFullscreen=G(D);this.setStretching=G(x);this.detachMedia=C;this.attachMedia=h;this.setCurrentQuality=G(L);this.getCurrentQuality=I;this.getQualityLevels=m;this.playerReady=K;s()}})(jwplayer);(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="0"/><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="mute"/><slider name="volume"/><divider name="divider"/><button name="fullscreen"/></group></layout><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAYCAYAAADd5VyeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFdJREFUeNqczMsOgCAMRFEw/v/PtkAfUNg6aEx0lieZmyOC0mV5jIHQe0dwdwQzQ1DdQEQRWhOEWhtCKRWBuSAQMcBJzAlgzvkRjrTtR+MJbtF4vywBBgAcr05Vhd9mLAAAAABJRU5ErkJggg=="/><element name="divider" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAYAAAA7zJfaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAC5JREFUeNpimDlzZgMTAxAQTQgICDAwiYqKMjCJiYlBWcLCwgxMzMzMRJsCEGAAXVQDrCAU8IQAAAAASUVORK5CYII="/><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,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAYCAYAAAAyJzegAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEVJREFUeNpiYBhaYD4Q/4fSDAxNza3/oQJgDOIz8fDwoGgB8ZnY2NhQBEF8JhZWFhRBEJ+JlYUVRRDEx6oSu5OGCAAIMAC30g1QKMx9igAAAABJRU5ErkJggg=="/><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"><settings><setting name="bufferinterval" value="150"/><setting name="bufferrotation" value="90"/></settings><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGJJREFUeNrs0UERACAMBLGDwUf9S0JI/1jg36yDzK6quhnUzrCAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgX873e0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBw8gQYACnjBI/ihM8BAAAAAElFTkSuQmCC"/><element name="playIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAiUlEQVR42u3XSw2AMBREURwgAQlIQAISKgUpSEFKJeCg5b0E0kWBTVcD9ySTsL0Jn9IBAAAA+K2UUrBlW/Rr5ZDoIeeuoFkxJD9ss03aIXXQqB9SttoG7ZA6qNcOKdttiwcJh9RB+iFl4SshkRBuLR72+9cvH0SOKI2HRo7x/Fi1/uoCAAAAwLsD8ki99IlO2dQAAAAASUVORK5CYII="/><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,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGJJREFUeNrs2TEBADAIxMCnGtjxL6luaqE7Fwc3p2bmZlEnywIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYG/q262z0EBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgZOngADAE0iAsIr/u2qAAAAAElFTkSuQmCC"/></elements></component><component name="playlist"><settings><setting name="backgroundcolor" value="0xe6e6e6"/><setting name="fontcolor" value="0x000000"/></settings><elements><element name="item" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABPCAYAAAAJMDwFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQpJREFUeNrs1sGKhDAQRdHY+P+fqr1WSXQpojsLLHIONAzMTh6pO9RaW4F7y/GbH37/09/T9f8/344IhoVhkcfYmsTCi4VhYVjwfmP5CAQMqxTLwinEsNBYoLFwCjEseLexfANCGku94xRiWGgsCGgsH4GIYVkWGguNhcYCjYXGQmOBxsIpRLyDxkJjobFAY6GxcApBvPPdYa3b6ivgFOIU4sUCw8Kw6LaxJBYx8a7ecQoxLAwLDIsk8a7d8WJhWPR9Cl1CvFgkinf1jhcLw8KwwLBIEu/aHS8WaV4sDxZeLAyL3uNdvePFwrAwLDAsksS7didiWHaFU4hhYVgQEO/qHS8WhkXXdgEGAKAsO7NPrr2OAAAAAElFTkSuQmCC"/><element name="itemImage" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAAA7CAIAAABKR2XkAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAK5JREFUeNrslksKwCAMRGvplfzcf6VeQDyA57ABwW0XjVDpm0WILtrhOURNa+3YSuexm67eO4xxTCpgDGMYkwoYwxjGMCYVMIYxjJlun3LcVWWtfdx5KWXGOWfn3FxKLzu6vzC1VvWD896nlEZV//gSxzvleEjozqou/VkRQogxSiNV+q9Pt2l3aIVpU0rhBuFdwbuCVMAYxjDGMamAMYxhjGNSAWMYw/hfjm8BBgDatbXqT4uvsgAAAABJRU5ErkJggg=="/><element name="sliderCapTop" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAKCAYAAABBq/VWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABNJREFUeNpiYBgFo2AUjBwAEGAAA/IAAdBu5L8AAAAASUVORK5CYII="/><element name="sliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAECAYAAAB7oZQmAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABxJREFUeNpiZCAeOGARO0CMRiYGOoDhYwlAgAEAYPMBCML0c4MAAAAASUVORK5CYII="/><element name="sliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAECAYAAAB7oZQmAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABtJREFUeNpiZCAO/Mcjx0hIMxMDHcDwsQQgwABz1wEIMGLXPQAAAABJRU5ErkJggg=="/><element name="sliderCapBottom" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAKCAYAAABBq/VWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABNJREFUeNpiYBgFo2AUjBwAEGAAA/IAAdBu5L8AAAAASUVORK5CYII="/></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(f){var m=jwplayer.utils,o=jwplayer.events,p=o.state,n=m.animations.rotate,k=m.css,l=document,a=".jwdisplay",h=".jwpreview",j=".jwerror",b="absolute",c="none",g="100%",d="hidden",e="opacity .25s";f.display=function(t,O){var s=t,E=t.skin,W,aa,u,H,T,V,ab={},R=false,I,r,L,A,Q,X=m.extend({backgroundcolor:"#000",showicons:true},E.getComponentSettings("display"),O);_bufferRotation=!m.exists(X.bufferrotation)?15:parseInt(X.bufferrotation,10),_bufferInterval=!m.exists(X.bufferinterval)?100:parseInt(X.bufferinterval,10),_eventDispatcher=new o.eventdispatcher();m.extend(this,_eventDispatcher);function U(){W=l.createElement("div");W.id=s.id+"_display";W.className="jwdisplay";aa=l.createElement("div");aa.className="jwpreview";W.appendChild(aa);s.jwAddEventListener(o.JWPLAYER_PLAYER_STATE,x);s.jwAddEventListener(o.JWPLAYER_PLAYLIST_ITEM,v);s.jwAddEventListener(o.JWPLAYER_MEDIA_ERROR,w);W.addEventListener("click",Y,false);S();M();x({newstate:p.IDLE})}function Y(ac){switch(s.jwGetState()){case p.PLAYING:case p.BUFFERING:s.jwPause();break;default:s.jwPlay();break}_eventDispatcher.sendEvent(o.JWPLAYER_DISPLAY_CLICK)}function S(){var ad=["play","buffer","error","repeat"];for(var ah=0;ah<ad.length;ah++){var an=ad[ah],af=K(an+"Icon"),ae=K(an+"IconOver"),ao=l.createElement("div"),ai=K("background"),ac=K("backgroundOver"),ag=K("capLeft"),al=K("capLeftOver"),am=K("capRight"),ak=K("capRightOver"),aj=l.createElement("button");if(af){aj.className="jw"+an;ao.className="jwicon";aj.appendChild(ao);F("#"+W.id+" ."+aj.className,ai,ac);F("#"+W.id+" ."+aj.className+" ."+ao.className,af,ae);if(ac||ae){aj.addEventListener("mouseover",Z(aj),false);aj.addEventListener("mouseout",q(aj),false)}ab[an]=aj}}}function Z(ac){return function(ad){if(ac.className.indexOf("jwhover")<0){ac.className+=" jwhover"}if(ac.childNodes[0].className.indexOf("jwhover")<0){ac.childNodes[0].className+=" jwhover"}}}function q(ac){return function(ad){ac.className=ac.className.replace(" jwhover","");ac.childNodes[0].className=ac.childNodes[0].className.replace(" jwhover","")}}function F(ac,ad,ae){if(!(ad&&ad.src)){return}k(ac,{width:ad.width,height:ad.height,"margin-left":ad.width/-2,"margin-top":ad.height/-2,background:"url("+ad.src+") center no-repeat"});if(ae&&ae.src){k(ac+".jwhover",{background:"url("+ae.src+") center no-repeat"})}}function M(){I=l.createElement("div");I.className="jwerror";W.appendChild(I)}function z(ac){if(!X.showicons){return}if(L){W.removeChild(L)}L=ab[ac];if(L){W.appendChild(L)}if(ac=="buffer"){A=0;Q=setInterval(function(){A+=_bufferRotation;n(L.childNodes[0],A%360)},_bufferInterval)}}function v(){var ac=s.jwGetPlaylist()[s.jwGetPlaylistIndex()];var ad=ac?ac.image:"";if(u!=ad){u=ad;N(h,false);J()}}var G;function x(ac){clearTimeout(G);G=setTimeout(function(){y(ac.newstate)},100)}function y(ac){clearInterval(Q);switch(ac){case p.COMPLETED:case p.IDLE:if(!R){N(h,true);z("play")}break;case p.BUFFERING:B();z("buffer");break;case p.PLAYING:z();break;case p.PAUSED:z("play");break}}this.hidePreview=function(ac){N(h,!ac)};this.getDisplayElement=function(){return W};function P(ac){return"#"+W.id+" "+ac}function J(){if(u){var ac=new Image();ac.addEventListener("load",D,false);ac.src=u}else{N(h,false);H=T=0}}function D(){H=this.width;T=this.height;C();if(u){k(P(h),{"background-image":"url("+u+")"})}}function K(ac){var ad=E.getSkinElement("display",ac);if(ad){return ad}return null}function w(ac){R=true;z();k(P(j),{display:"table"});I.innerHTML="<p>"+ac.message+"</p>"}function B(){R=false;k(P(j),{display:"none"});I.innerHTML=""}function C(){m.stretch(s.jwGetStretching(),aa,W.clientWidth,W.clientHeight,H,T)}this.redraw=C;function N(ac,ad){k(P(ac),{opacity:ad?1:0})}this.show=function(){N("",true)};this.hide=function(){N("",false)};this.getBGColor=function(){return X.backgroundcolor};this.setAlternateClickHandler=function(ac){_alternateClickHandler=ac};this.revertAlternateClickHandler=function(){_alternateClickHandler=undefined};U()};k(a,{position:b,cursor:"pointer",width:g,height:g,overflow:d,opacity:0});k(a+" .jwpreview",{position:b,width:g,height:g,background:"no-repeat center",overflow:d});k(a+" "+j,{display:"none",position:b,width:g,height:g});k(a+" "+j+" p",{display:"table-cell","vertical-align":"middle","text-align":"center",background:"rgba(0, 0, 0, 0.5)",color:"#fff"});k(a+", "+a+" *",{"-webkit-transition":e,"-moz-transition":e,"-o-transition":e});k(a+" button, "+a+" .jwicon",{border:c,position:b,left:"50%",top:"50%",padding:0,cursor:"pointer"})})(jwplayer.html5);(function(a){var e=jwplayer,c=e.utils,d=e.events,b=d.state,f=e.playlist;a.instream=function(C,q,B,D){var x={controlbarseekable:"always",controlbarpausable:true,controlbarstoppable:true,playlistclickable:true};var z,E,G=C,I=q,n=B,A=D,v,L,s,K,j,k,l,p,u,m=false,o,h,r=this;this.load=function(P,O){g();m=true;E=c.extend(x,O);z=new f.item(P);J();h=document.createElement("div");h.id=r.id+"_instream_container";A.detachMedia();v=l.getTag();k=I.playlist[I.item];j=G.jwGetState();if(j==b.BUFFERING||j==b.PLAYING){v.pause()}L=v.src?v.src:v.currentSrc;s=v.innerHTML;K=v.currentTime;u=new a.display(r);u.setAlternateClickHandler(function(Q){if(_fakemodel.state==b.PAUSED){r.jwInstreamPlay()}else{H(d.JWPLAYER_INSTREAM_CLICK,Q)}});h.appendChild(u.getDisplayElement());if(!c.isMobile()){p=new a.controlbar(r);h.appendChild(p.getDisplayElement())}n.setupInstream(h,v);t();l.load(z)};this.jwInstreamDestroy=function(O){if(!m){return}m=false;if(j!=b.IDLE){l.load(k,false)}else{l.stop(true)}l.detachMedia();n.destroyInstream();if(p){try{p.getDisplayElement().parentNode.removeChild(p.getDisplayElement())}catch(P){}}H(d.JWPLAYER_INSTREAM_DESTROYED,{reason:(O?"complete":"destroyed")},true);A.attachMedia();if(j==b.BUFFERING||j==b.PLAYING){v.play();if(I.playlist[I.item]==k){I.getVideo().seek(K)}}return};this.jwInstreamAddEventListener=function(O,P){o.addEventListener(O,P)};this.jwInstreamRemoveEventListener=function(O,P){o.removeEventListener(O,P)};this.jwInstreamPlay=function(){if(!m){return}l.play(true)};this.jwInstreamPause=function(){if(!m){return}l.pause(true)};this.jwInstreamSeek=function(O){if(!m){return}l.seek(O)};this.jwInstreamGetState=function(){if(!m){return undefined}return _fakemodel.state};this.jwInstreamGetPosition=function(){if(!m){return undefined}return _fakemodel.position};this.jwInstreamGetDuration=function(){if(!m){return undefined}return _fakemodel.duration};this.playlistClickable=function(){return(!m||E.playlistclickable.toString().toLowerCase()=="true")};function w(){_fakemodel=new a.model({});o=new d.eventdispatcher();G.jwAddEventListener(d.JWPLAYER_RESIZE,t);G.jwAddEventListener(d.JWPLAYER_FULLSCREEN,t)}function g(){A.setMute(I.mute);A.setVolume(I.volume)}function J(){if(!l){l=new a.video(I.getVideo().getTag());l.addGlobalListener(M);l.addEventListener(d.JWPLAYER_MEDIA_META,N);l.addEventListener(d.JWPLAYER_MEDIA_COMPLETE,y);l.addEventListener(d.JWPLAYER_MEDIA_BUFFER_FULL,F)}l.attachMedia()}function M(O){if(m){H(O.type,O)}}function F(O){if(m){l.play()}}function y(O){if(m){setTimeout(function(){r.jwInstreamDestroy(true)},10)}}function N(O){if(O.metadata.width&&O.metadata.height){n.resizeMedia()}}function H(O,P,Q){if(m||Q){o.sendEvent(O,P)}}function t(){if(p){p.redraw()}if(u){u.redraw()}}this.jwPlay=function(O){if(E.controlbarpausable.toString().toLowerCase()=="true"){this.jwInstreamPlay()}};this.jwPause=function(O){if(E.controlbarpausable.toString().toLowerCase()=="true"){this.jwInstreamPause()}};this.jwStop=function(){if(E.controlbarstoppable.toString().toLowerCase()=="true"){this.jwInstreamDestroy();G.jwStop()}};this.jwSeek=function(O){switch(E.controlbarseekable.toLowerCase()){case"always":this.jwInstreamSeek(O);break;case"backwards":if(_fakemodel.position>O){this.jwInstreamSeek(O)}break}};this.jwGetPosition=function(){};this.jwGetDuration=function(){};this.jwGetWidth=G.jwGetWidth;this.jwGetHeight=G.jwGetHeight;this.jwGetFullscreen=G.jwGetFullscreen;this.jwSetFullscreen=G.jwSetFullscreen;this.jwGetVolume=function(){return I.volume};this.jwSetVolume=function(O){l.volume(O);G.jwSetVolume(O)};this.jwGetMute=function(){return I.mute};this.jwSetMute=function(O){l.mute(O);G.jwSetMute(O)};this.jwGetState=function(){return _fakemodel.state};this.jwGetPlaylist=function(){return[z]};this.jwGetPlaylistIndex=function(){return 0};this.jwGetStretching=function(){return I.config.stretching};this.jwAddEventListener=function(P,O){o.addEventListener(P,O)};this.jwRemoveEventListener=function(P,O){o.removeEventListener(P,O)};this.skin=G.skin;this.id=G.id+"_instream";w();return this}})(jwplayer.html5);(function(b){var a=jwplayer.utils,c=jwplayer.events,d=undefined;b.model=function(g){var n=this,j,p,q=a.getCookies(),e={};_defaults={autostart:false,controlbar:true,debug:d,height:320,icons:true,item:0,mobilecontrols:false,mute:false,playlist:[],playlistposition:"right",playlistsize:0,repeat:"list",skin:d,stretching:a.stretching.UNIFORM,volume:90,width:480};function m(r){for(var s in r){r[s]=a.serialize(r[s])}return r}function o(){a.extend(n,new c.eventdispatcher());n.config=m(a.extend({},_defaults,q,g));a.extend(n,{id:g.id,state:c.state.IDLE,position:0,buffer:0,},n.config);l();n.setItem(n.config.item);p=document.createElement("video");j=new b.video(p);j.volume(n.volume);j.mute(n.mute);j.addGlobalListener(h)}function l(){e.display={showicons:n.icons};e.controlbar={}}var k={};k[c.JWPLAYER_MEDIA_MUTE]="mute";k[c.JWPLAYER_MEDIA_VOLUME]="volume";k[c.JWPLAYER_PLAYER_STATE]="newstate->state";k[c.JWPLAYER_MEDIA_BUFFER]="bufferPercent->buffer";k[c.JWPLAYER_MEDIA_TIME]="position";function h(r){var t=k[r.type];if(t){var u=t.split("->"),v=u[0],s=u[1]?u[1]:v;if(n[s]!=r[v]){n[s]=r[v];n.sendEvent(r.type,r)}}else{n.sendEvent(r.type,r)}}n.setState=function(r){var s=n.state;n.state=r;if(r!=s){n.sendEvent(c.JWPLAYER_PLAYER_STATE,{newstate:n.state,oldstate:s})}};n.getVideo=function(){return j};n.seekDrag=function(r){j.seekDrag(r)};n.setFullscreen=function(r){if(r!=n.fullscreen){n.fullscreen=r;n.sendEvent(c.JWPLAYER_FULLSCREEN,{fullscreen:r})}};n.setPlaylist=function(r){n.playlist=r;f(r);n.sendEvent(c.JWPLAYER_PLAYLIST_LOADED,{playlist:r})};function f(s){for(var r=0;r<s.length;r++){s[r].sources=a.filterSources(s[r].sources)}}n.setItem=function(r){var s;if(r==n.playlist.length||r<-1){s=0}else{if(r==-1||r>n.playlist.length){s=n.playlist.length-1}else{s=r}}if(s!=n.item){n.item=s;n.sendEvent(c.JWPLAYER_PLAYLIST_ITEM,{index:n.item})}};n.setVolume=function(r){if(n.mute&&r>0){n.setMute(false)}r=Math.round(r);a.saveCookie("volume",r);j.volume(r)};n.setMute=function(r){if(!a.exists(r)){r=!n.mute}a.saveCookie("mute",r);j.mute(r)};n.componentConfig=function(r){return e[r]};o()}})(jwplayer.html5);(function(a){a.player=function(c){var m=this,k,g,h,b;function l(){k=new a.model(c);m.id=k.id;g=new a.view(m,k);h=new a.controller(k,g);d();var n=new a.setup(k,g,h);n.addEventListener(jwplayer.events.JWPLAYER_READY,e);n.addEventListener(jwplayer.events.JWPLAYER_ERROR,j);n.start()}function e(n){h.playerReady(n)}function j(n){jwplayer.utils.log("There was a problem setting up the player: ",n)}function d(){m.jwPlay=h.play;m.jwPause=h.pause;m.jwStop=h.stop;m.jwSeek=h.seek;m.jwSetVolume=h.setVolume;m.jwSetMute=h.setMute;m.jwLoad=h.load;m.jwPlaylistNext=h.next;m.jwPlaylistPrev=h.prev;m.jwPlaylistItem=h.item;m.jwSetFullscreen=h.setFullscreen;m.jwResize=g.resize;m.jwSeekDrag=k.seekDrag;m.jwSetStretching=h.setStretching;m.jwGetQualityLevels=h.getQualityLevels;m.jwGetCurrentQuality=h.getCurrentQuality;m.jwSetCurrentQuality=h.setCurrentQuality;m.jwGetPlaylistIndex=f("item");m.jwGetPosition=f("position");m.jwGetDuration=f("duration");m.jwGetBuffer=f("buffer");m.jwGetWidth=f("width");m.jwGetHeight=f("height");m.jwGetFullscreen=f("fullscreen");m.jwGetVolume=f("volume");m.jwGetMute=f("mute");m.jwGetState=f("state");m.jwGetStretching=f("stretching");m.jwGetPlaylist=f("playlist");m.jwDetachMedia=h.detachMedia;m.jwAttachMedia=h.attachMedia;m.jwLoadInstream=function(o,n){if(!b){b=new a.instream(m,k,g,h)}setTimeout(function(){b.load(o,n)},10)};m.jwInstreamDestroy=function(){if(b){b.jwInstreamDestroy()}};m.jwAddEventListener=h.addEventListener;m.jwRemoveEventListener=h.removeEventListener}function f(n){return function(){return k[n]}}l()}})(jwplayer.html5);(function(f){var d={size:180,itemheight:60,thumbs:true,fontcolor:"#000000",overcolor:"",activecolor:"",backgroundcolor:"#f8f8f8",font:"_sans",fontsize:"",fontstyle:"",fontweight:""},k={_sans:"Arial, Helvetica, sans-serif",_serif:"Times, Times New Roman, serif",_typewriter:"Courier New, Courier, monospace"},m=jwplayer.utils,h=m.css,e=jwplayer.events,l=".jwplaylist",j=document,a="absolute",b="relative",c="hidden",g="100%";f.playlistcomponent=function(A,M){var G=A,v=G.skin,o=m.extend({},d,G.skin.getComponentSettings("playlist"),M),H,n,q,p,u=-1,r={background:undefined,item:undefined,itemOver:undefined,itemImage:undefined,itemActive:undefined};this.getDisplayElement=function(){return H};this.redraw=function(){};this.show=function(){_show(H)};this.hide=function(){_hide(H)};function s(){H=K("div","jwplaylist");H.id=G.id+"_jwplayer_playlistcomponent";J();if(r.item){o.itemheight=r.item.height}x();G.jwAddEventListener(jwplayer.events.JWPLAYER_PLAYLIST_LOADED,B);G.jwAddEventListener(jwplayer.events.JWPLAYER_PLAYLIST_ITEM,E)}function t(N){return"#"+H.id+(N?" ."+N:"")}function x(){var R=0,Q=0,N=0,P=o.itemheight,T=o.fontsize;m.clearCss(t());h(t("jwlist"),{"background-image":r.background?" url("+r.background.src+")":"","background-color":o.backgroundcolor,color:o.fontcolor,font:o.fontweight+" "+o.fontstyle+" "+(T?T:11)+"px "+(k[o.font]?k[o.font]:k._sans)});if(r.itemImage){R=(P-r.itemImage.height)/2;Q=r.itemImage.width;N=r.itemImage.height}else{Q=P*4/3;N=P}h(t("jwplaylistimg"),{height:N,width:Q,margin:R});h(t("jwlist li"),{"background-image":r.item?"url("+r.item.src+")":"",height:P,"background-size":g+" "+P+"px",cursor:"pointer"});var O={overflow:"hidden"};if(o.activecolor!==""){O.color=o.activecolor}if(r.itemActive){O["background-image"]="url("+r.itemActive.src+")"}h(t("jwlist li.active"),O);var S={overflow:"hidden"};if(o.overcolor!==""){S.color=o.overcolor}if(r.itemOver){S["background-image"]="url("+r.itemOver.src+")"}h(t("jwlist li:hover"),S);h(t("jwtextwrapper"),{padding:"5px 5px 0 "+(R?0:"5px"),height:P-5,position:b});h(t("jwtitle"),{height:T?T+10:20,"line-height":T?T+10:20,overflow:"hidden",display:"inline-block",width:g,"font-size":T?T:13,"font-weight":o.fontweight?o.fontweight:"bold"});h(t("jwdescription"),{display:"block","line-height":T?T+4:16,overflow:"hidden",height:P,position:b});h(t("jwduration"),{position:"absolute",right:5})}function y(){var N=K("ul","jwlist");N.id=H.id+"_ul"+Math.round(Math.random()*10000000);return N}function z(Q){var V=n[Q],U=K("li","jwitem");U.id=p.id+"_item_"+Q;var R=K("div","jwplaylistimg jwfill");if(F()&&(V.image||V["playlist.image"]||r.itemImage)){var S;if(V["playlist.image"]){S=V["playlist.image"]}else{if(V.image){S=V.image}else{if(r.itemImage){S=r.itemImage.src}}}h("#"+U.id+" .jwplaylistimg",{"background-image":S?"url("+S+")":null});L(U,R)}var N=K("div","jwtextwrapper");var T=K("span","jwtitle");T.innerHTML=V?V.title:"";L(N,T);if(V.description){var P=K("span","jwdescription");P.innerHTML=V.description;L(N,P)}if(V.duration>0){var O=K("span","jwduration");O.innerHTML=m.timeFormat(V.duration);L(T,O)}L(U,N);return U}function K(O,N){var P=j.createElement(O);if(N){P.className=N}return P}function L(N,O){N.appendChild(O)}function B(O){H.innerHTML="";n=C();if(!n){return}items=[];p=y();for(var P=0;P<n.length;P++){var N=z(P);N.onclick=I(P);L(p,N);items.push(N)}u=G.jwGetPlaylistIndex();L(H,p);if(m.isIOS()&&window.iScroll){p.style.height=o.itemheight*n.length+"px";var Q=new iScroll(H.id)}}function C(){var O=G.jwGetPlaylist();var P=[];for(var N=0;N<O.length;N++){if(!O[N]["ova.hidden"]){P.push(O[N])}}return P}function I(N){return function(){G.jwPlaylistItem(N);G.jwPlay(true)}}function w(){p.scrollTop=G.jwGetPlaylistIndex()*o.itemheight}function F(){return o.thumbs.toString().toLowerCase()=="true"}function E(N){if(u>=0){j.getElementById(p.id+"_item_"+u).className="jwitem";u=N.index}j.getElementById(p.id+"_item_"+N.index).className="jwitem active";w()}function J(){for(var N in r){r[N]=D(N)}}function D(N){return v.getSkinElement("playlist",N)}s();return this};h(l,{overflow:c,position:a,width:g,height:g});h(l+" .jwplaylistimg",{position:b,width:g,"float":"left",margin:"0 5px 0 0",background:"#000",overflow:c});h(l+" .jwlist",{width:g,height:g,"list-style":"none",margin:0,padding:0,"overflow-y":"auto"});h(l+" .jwlist li",{width:g});h(l+" .jwtextwrapper",{overflow:c})})(jwplayer.html5);(function(b){var d=jwplayer,a=d.utils,c=d.events;b.playlistloader=function(){var f=new c.eventdispatcher();a.extend(this,f);this.load=function(h){a.ajax(h,g,e)};function g(h){try{var l=h.responseXML.firstChild;if(b.parsers.localName(l)=="xml"){l=l.nextSibling}if(b.parsers.localName(l)!="rss"){e("Playlist is not a valid RSS feed.");return}var k=new d.playlist(b.parsers.rssparser.parse(l));if(k&&k.length&&k[0].sources&&k[0].sources.length&&k[0].sources[0].file){f.sendEvent(c.JWPLAYER_PLAYLIST_LOADED,{playlist:k})}else{e("No playable sources found")}}catch(j){e("Could not load the playlist.")}}function e(h){f.sendEvent(c.JWPLAYER_ERROR,{message:h?h:"Could not load playlist an unknown reason."})}}})(jwplayer.html5);(function(f){var h=jwplayer,l=h.utils,m=h.events,a=h.playlist,j=1,e=2,d=3,k=4,c=5,b=6,g=7;f.setup=function(t,I,J){var M=t,q=I,G=J,v={},D={},B,A=new m.eventdispatcher(),w=false,x=[];function u(){s(j,p);s(e,R,j);s(d,z,j);s(k,L,d);s(c,Q,k+","+e);s(b,K,c+","+d);s(g,E,b)}function s(S,U,T){x.push({name:S,method:U,depends:T})}function H(){for(var U=0;U<x.length;U++){var S=x[U];if(P(S.depends)){x.splice(U,1);try{S.method();H()}catch(T){y(T.message)}return}}if(x.length>0&&!w){setTimeout(H,500)}}function P(U){if(!U){return true}var T=U.toString().split(",");for(var S=0;S<T.length;S++){if(!v[T[S]]){return false}}return true}function o(S){v[S]=true}function p(){o(j)}function R(){B=new f.skin();B.load(M.config.skin,C,O)}function C(S){o(e)}function O(S){y("Error loading skin: "+S)}function z(){switch(l.typeOf(M.config.playlist)){case"string":var S=new f.playlistloader();S.addEventListener(m.JWPLAYER_PLAYLIST_LOADED,n);S.addEventListener(m.JWPLAYER_ERROR,F);S.load(M.config.playlist);break;case"array":r(new a(M.config.playlist))}}function n(S){r(S.playlist)}function r(S){M.setPlaylist(S);if(M.playlist[0].sources.length==0){y("Error loading playlist: No playable sources found")}else{o(d)}}function F(S){y("Error loading playlist: "+S.message)}function L(){var T=M.playlist[M.item].image;if(T){var S=new Image();S.addEventListener("load",N,false);S.addEventListener("error",N,false);S.src=T}else{o(k)}}function N(S){o(k)}function Q(){q.setup(B);o(c)}function K(){o(b)}function E(){A.sendEvent(m.JWPLAYER_READY);o(g)}function y(S){w=true;A.sendEvent(m.JWPLAYER_ERROR,{message:S});q.setupError(S)}l.extend(this,A);this.start=H;u()}})(jwplayer.html5);(function(a){a.skin=function(){var b={};var d=false;this.load=function(g,f,e){new a.skinloader(g,function(h){d=true;b=h;if(typeof f=="function"){f()}},function(h){if(typeof e=="function"){e(h)}})};this.getSkinElement=function(e,f){e=c(e);f=c(f);if(d){try{return b[e].elements[f]}catch(g){jwplayer.utils.log("No such skin component / element: ",[e,f])}}return null};this.getComponentSettings=function(e){e=c(e);if(d&&b&&b[e]){return b[e].settings}return null};this.getComponentLayout=function(e){e=c(e);if(d){var f=b[e].layout;if(f&&(f.left||f.right||f.center)){return b[e].layout}}return null};function c(e){return e.toLowerCase()}}})(jwplayer.html5);(function(a){var b=jwplayer.utils;a.skinloader=function(e,k,g){var h={},l=k,t=g,q=true,u,v=e,f=false,s;function x(){if(typeof v!="string"||v===""){w(a.defaultskin().xml)}else{if(b.extension(v)!="xml"){t("Skin not a valid file type");return}var y=new a.skinloader("",m,g)}}function m(y){h=y;b.ajax(b.getAbsolutePath(v),function(z){try{if(b.exists(z.responseXML)){w(z.responseXML);return}}catch(A){c()}},function(z){t(z)})}function w(C){var J=C.getElementsByTagName("component");if(J.length===0){g("Skin formatting error")}for(var M=0;M<J.length;M++){var H=j(J[M].getAttribute("name"));var G={settings:{},elements:{},layout:{}};h[H]=G;var L=J[M].getElementsByTagName("elements")[0].getElementsByTagName("element");for(var K=0;K<L.length;K++){o(L[K],H)}var D=J[M].getElementsByTagName("settings")[0];if(D&&D.childNodes.length>0){var P=D.getElementsByTagName("setting");for(var U=0;U<P.length;U++){var V=P[U].getAttribute("name");var N=P[U].getAttribute("value");if(/color$/.test(V)){N=b.stringToColor(N)}G.settings[j(V)]=N}}var Q=J[M].getElementsByTagName("layout")[0];if(Q&&Q.childNodes.length>0){var R=Q.getElementsByTagName("group");for(var B=0;B<R.length;B++){var F=R[B],E={elements:[]};G.layout[j(F.getAttribute("position"))]=E;for(var T=0;T<F.attributes.length;T++){var I=F.attributes[T];E[I.name]=I.value}var S=F.getElementsByTagName("*");for(var A=0;A<S.length;A++){var y=S[A];E.elements.push({type:y.tagName});for(var z=0;z<y.attributes.length;z++){var O=y.attributes[z];E.elements[A][j(O.name)]=O.value}if(!b.exists(E.elements[A].name)){E.elements[A].name=y.tagName}}}}q=false;n()}}function n(){clearInterval(u);if(!f){u=setInterval(function(){d()},100)}}function o(D,C){C=j(C);var B=new Image(),y=j(D.getAttribute("name")),A=D.getAttribute("src"),F;if(A.indexOf("data:image/png;base64,")===0){F=A}else{var z=b.getAbsolutePath(v);var E=z.substr(0,z.lastIndexOf("/"));F=[E,C,A].join("/")}h[C].elements[y]={height:0,width:0,src:"",ready:false,image:B};B.onload=function(G){p(B,y,C)};B.onerror=function(G){f=true;n();t("Skin image not found: "+this.src)};B.src=F}function c(){for(var z in h){var B=h[z];for(var y in B.elements){var C=B.elements[y];var A=C.image;A.onload=null;A.onerror=null;delete C.image;delete B.elements[y]}delete h[z]}}function d(){for(var y in h){if(y!="properties"){for(var z in h[y].elements){if(!r(y,z).ready){return}}}}if(q===false){clearInterval(u);l(h)}}function p(z,B,A){var y=r(A,B);if(y){y.height=z.height;y.width=z.width;y.src=z.src;y.ready=true;n()}else{b.log("Loaded an image for a missing element: "+A+"."+B)}}function r(y,z){return h[j(y)]?h[j(y)].elements[j(z)]:null}function j(y){return y?y.toLowerCase():""}x()}})(jwplayer.html5);(function(c){var a=c.utils,d=c.events,b=d.state;c.html5.video=function(R){var L={abort:x,canplay:p,canplaythrough:x,durationchange:z,emptied:x,ended:x,error:l,loadeddata:x,loadedmetadata:p,loadstart:x,pause:Q,play:Q,playing:Q,progress:x,ratechange:x,readystatechange:x,seeked:x,seeking:x,stalled:x,suspend:x,timeupdate:S,volumechange:k,waiting:s},v=a.extensionmap,B,G,X,t,W,n,O,V,F,M,C,e=b.IDLE,H,m=-1,E=-1,I=new d.eventdispatcher(),r=false,D,A=-1,g=this;a.extend(g,I);function T(Y){t=Y;N();t.controls=true;t.controls=false;r=true}function N(){for(var Y in L){t.addEventListener(Y,L[Y],false)}}function q(Y,Z){if(r){I.sendEvent(Y,Z)}}function x(Y){}function z(Y){if(!r){return}if(W<0){W=t.duration}S()}function S(Y){if(!r){return}if(e==b.PLAYING&&!C){n=t.currentTime;q(d.JWPLAYER_MEDIA_TIME,{position:n,duration:W});if(n>=W&&W>0){P()}}}function p(Y){if(!r){return}if(!V){V=true;o();if(M>0){y(M)}}}function o(){if(!F){F=true;q(d.JWPLAYER_MEDIA_BUFFER_FULL)}}function Q(Y){if(!r||C){return}if(t.paused){f()}else{u(b.PLAYING)}}function s(Y){if(!r){return}u(b.BUFFERING)}function l(Y){if(!r){return}a.log("Error playing media: %o",t.error);I.sendEvent(d.JWPLAYER_MEDIA_ERROR,{message:"Error loading media: File could not be played"});u(b.IDLE)}function j(ab){if(a.typeOf(ab)=="array"&&ab.length>0){var Y=[];for(var aa=0;aa<ab.length;aa++){var ac=ab[aa],Z={};Z.label=K(ac)?K(ac):aa;if(ac.width){Z.width=ac.width}if(ac.height){Z.height=ac.height}if(ac.bitrate){Z.bitrate=ac.bitrate}Y[aa]=Z}I.sendEvent(d.JWPLAYER_MEDIA_LEVELS,{levels:Y,currentQuality:A})}}function K(Y){if(Y.label){return Y.label}else{if(Y.height){return Y.height+"p"}else{if(Y.width){return(Y.width*9/16)+"p"}else{if(Y.bitrate){return Y.bitrate+"kbps"}else{return 0}}}}}g.load=function(Y){if(!r){return}B=Y;V=false;F=false;M=0;W=Y.duration?Y.duration:-1;n=0;if(A<0){A=0}D=B.sources;j(D);G=D[A];u(b.BUFFERING);t.src=G.file;t.load();m=setInterval(h,100);if(a.isIPod()){o()}};var w=g.stop=function(){if(!r){return}t.removeAttribute("src");t.load();A=-1;clearInterval(m);u(b.IDLE)};g.play=function(){if(r){t.play()}};var f=g.pause=function(){if(r){t.pause();u(b.PAUSED)}};g.seekDrag=function(Y){if(!r){return}C=Y;if(Y){t.pause()}else{t.play()}};var y=g.seek=function(Y){if(!r){return}if(t.readyState>=t.HAVE_FUTURE_DATA){M=0;if(!C){q(d.JWPLAYER_MEDIA_SEEK,{position:n,offset:Y})}t.currentTime=Y}else{M=Y}};var U=g.volume=function(Y){t.volume=Y/100};function k(Y){q(d.JWPLAYER_MEDIA_VOLUME,{volume:Math.round(t.volume*100)});q(d.JWPLAYER_MEDIA_MUTE,{mute:t.muted})}g.mute=function(Y){if(!a.exists(Y)){Y=!t.mute}if(Y){if(!t.muted){H=t.volume*100;t.muted=true;U(0)}}else{if(t.muted){U(H);t.muted=false}}};function u(Y){if(Y==b.PAUSED&&e==b.IDLE){return}if(C){return}if(e!=Y){var Z=e;e=Y;q(d.JWPLAYER_PLAYER_STATE,{oldstate:Z,newstate:Y})}}function h(){if(!r){return}var Y=J();if(Y!=E){E=Y;q(d.JWPLAYER_MEDIA_BUFFER,{bufferPercent:Math.round(E*100)})}if(Y>=1){clearInterval(m)}}function J(){if(t.buffered.length==0||t.duration==0){return 0}else{return t.buffered.end(t.buffered.length-1)/t.duration}}function P(){A=-1;u(b.IDLE);q(d.JWPLAYER_MEDIA_BEFORECOMPLETE);q(d.JWPLAYER_MEDIA_COMPLETE)}g.detachMedia=function(){r=false;return t};g.attachMedia=function(){r=true};g.getTag=function(){return t};g.audioMode=function(){if(!D){return false}var Y=D[0].type;return(Y=="aac"||Y=="mp3"||Y=="vorbis")};g.setCurrentQuality=function(Z){if(A==Z){return}if(Z>=0){if(D&&D.length>Z){A=Z;q(d.JWPLAYER_MEDIA_QUALITY_CHANGED,{currentQuality:Z,levels:D});var Y=t.currentTime;g.load(B);g.seek(Y)}}};g.getCurrentQuality=function(){return A};g.getQualityLevels=function(){return D};T(R)}})(jwplayer);(function(h){var m=jwplayer,r=m.utils,a=jwplayer.events,d=a.state,o=r.css,e=document,l="jwplayer",b="."+l+".jwfullscreen",n="jwmain",t="jwinstream",s="jwvideo",c="jwcontrols",f="jwplaylistcontainer",q="opacity .5s ease",k="100%",g="absolute",p=" !important",j="hidden";h.view=function(E,z){var D=E,B=z,X,N,M,aa,v=0,ah=2000,x,ao,H,ag,ap,aj,J,A=r.isMobile(),ar=r.isIPad(),S=(ar&&B.mobilecontrols),ac=new a.eventdispatcher();r.extend(this,ac);function al(){X=ai("div",l);X.id=D.id;var au=document.getElementById(D.id);au.parentNode.replaceChild(X,au)}this.setup=function(au){D.skin=au;N=ai("span",n);ao=ai("span",s);x=B.getVideo().getTag();ao.appendChild(x);M=ai("span",c);H=ai("span",t);aa=ai("span",f);u();N.appendChild(ao);N.appendChild(M);N.appendChild(H);X.appendChild(N);X.appendChild(aa);e.addEventListener("webkitfullscreenchange",ak,false);e.addEventListener("mozfullscreenchange",ak,false);e.addEventListener("keydown",ad,false);D.jwAddEventListener(a.JWPLAYER_PLAYER_STATE,F);F({newstate:d.IDLE});M.addEventListener("mouseout",ab,false);M.addEventListener("mousemove",aq,false);if(ag){ag.getDisplayElement().addEventListener("mousemove",V,false);ag.getDisplayElement().addEventListener("mouseout",an,false)}};function ai(av,au){var aw=e.createElement(av);if(au){aw.className=au}return aw}function aq(){clearTimeout(v);if(D.jwGetState()==d.PLAYING||D.jwGetState()==d.PAUSED){L();if(!af){v=setTimeout(ab,ah)}}}var af=false;function V(){clearTimeout(v);af=true}function an(){af=false}function ab(){if(D.jwGetState()==d.PLAYING||D.jwGetState()==d.PAUSED){G()}clearTimeout(v);v=0}function u(){var av=B.width,au=B.height,aw=B.componentConfig("controlbar");displaySettings=B.componentConfig("display");ap=new h.display(D,displaySettings);ap.addEventListener(a.JWPLAYER_DISPLAY_CLICK,function(ax){ac.sendEvent(ax.type,ax)});M.appendChild(ap.getDisplayElement());if(B.playlistsize&&B.playlistposition&&B.playlistposition!="none"){aj=new h.playlistcomponent(D,{});aa.appendChild(aj.getDisplayElement())}if(!A||S){ag=new h.controlbar(D,aw);M.appendChild(ag.getDisplayElement());if(S){L()}}else{x.controls=true}T(av,au)}var Q=this.fullscreen=function(au){if(!r.exists(au)){au=!B.fullscreen}if(au){if(!B.fullscreen){U(true);if(X.requestFullScreen){X.requestFullScreen()}else{if(X.mozRequestFullScreen){X.mozRequestFullScreen()}else{if(X.webkitRequestFullScreen){X.webkitRequestFullScreen()}}}B.setFullscreen(true)}}else{U(false);if(B.fullscreen){if(e.cancelFullScreen){e.cancelFullScreen()}else{if(e.mozCancelFullScreen){e.mozCancelFullScreen()}else{if(e.webkitCancelFullScreen){e.webkitCancelFullScreen()}}}B.setFullscreen(false)}}};function T(aw,au){if(r.exists(aw)&&r.exists(au)){o(Z(),{width:aw,height:au});B.width=aw;B.height=au}if(ap){ap.redraw()}if(ag){ag.redraw()}var ay=B.playlistsize,az=B.playlistposition;if(aj&&ay&&az){aj.redraw();var av={display:"block"},ax={};av[az]=0;ax[az]=ay;if(az=="left"||az=="right"){av.width=ay}else{av.height=ay}o(Z(f),av);o(Z(n),ax)}y(au);C();return}function y(au){J=(!!ag&&au<=40&&au.toString().indexOf("%")<0);if(J){B.componentConfig("controlbar").margin=0;ag.redraw();L();K();O(false)}else{am(D.jwGetState())}o(Z(),{"background-color":J?"transparent":ap.getBGColor()})}function C(){r.stretch(B.stretching,x,ao.clientWidth,ao.clientHeight,x.videoWidth,x.videoHeight)}this.resize=T;this.resizeMedia=C;var W=this.completeSetup=function(){o(Z(),{opacity:1})};function ad(au){if(B.fullscreen){switch(au.keyCode){case 27:Q(false);break}}}function U(au){if(au){X.className+=" jwfullscreen"}else{X.className=X.className.replace(/\s+jwfullscreen/,"")}}function at(){var au=[e.mozFullScreenElement,e.webkitCurrentFullScreenElement];for(var av=0;av<au.length;av++){if(au[av]&&au[av].id==D.id){return true}}return false}function ak(au){B.setFullscreen(at());Q(B.fullscreen)}function L(){if(ag&&B.controlbar){ag.show()}}function G(){if(ag&&!J&&!S){ag.hide()}}function w(){if(ap&&!J){ap.show()}}function K(){if(ap){ap.hide()}}function I(){G();K()}function ae(){L();w()}function O(au){au=au&&!J;o(Z(s),{visibility:au?"visible":"hidden",opacity:au?1:0})}var P;function F(au){clearTimeout(P);P=setTimeout(function(){am(au.newstate)},100)}function am(au){switch(au){case d.PLAYING:if(!B.getVideo().audioMode()||A){O(true);C();ap.hidePreview(true);if(A){if(ar&&!S){x.controls=true}else{K()}}}aq();break;case d.COMPLETED:case d.IDLE:if(!A){O(false)}G();ap.hidePreview(false);w();if(ar){x.controls=false}break;case d.BUFFERING:if(A){O(true)}else{ae()}break;case d.PAUSED:if(!A||S){ae()}else{if(ar){x.controls=false}}break}}function Z(au){return"#"+D.id+(au?" ."+au:"")}this.setupInstream=function(au,av){Y(Z(t),true);Y(Z(c),false);H.appendChild(au);_instreamVideo=av;F({newstate:d.PLAYING});_instreamMode=true};var R=this.destroyInstream=function(){Y(Z(t),false);Y(Z(c),true);H.innerHTML="";_instreamVideo=null;_instreamMode=false;T(B.width,B.height)};this.setupError=function(au){jwplayer.embed.errorScreen(X,au);W()};function Y(au,av){o(au,{display:av?"block":"none"})}al()};o("."+l,{position:"relative",overflow:"hidden",opacity:0,"-webkit-transition":q,"-moz-transition":q,"-o-transition":q});o("."+n,{position:g,left:0,right:0,top:0,bottom:0,"-webkit-transition":q,"-moz-transition":q,"-o-transition":q});o("."+s+" ,."+c,{position:g,height:k,width:k,"-webkit-transition":q,"-moz-transition":q,"-o-transition":q});o("."+s,{visibility:"hidden"});o("."+s+" video",{background:"transparent",width:k,height:k});o("."+f,{position:g,height:k,width:k,display:"none"});o("."+t,{overflow:"hidden",position:g,top:0,left:0,bottom:0,right:0,display:"none"});o(b,{width:k,height:k,left:0,right:0,top:0,bottom:0,"z-index":1000,position:"fixed"},true);o(b+" ."+n,{left:0,right:0,top:0,bottom:0},true);o(b+" ."+f,{display:"none"},true);o("."+l+" .jwuniform",{"background-size":"contain"+p});o("."+l+" .jwfill",{"background-size":"cover"+p,"background-position":"center"});o("."+l+" .jwexactfit",{"background-size":k+" "+k+p})})(jwplayer.html5); -
branches/jw6/jwplayer.js
r2220 r2234 1 if(typeof jwplayer=="undefined"){jwplayer=function(a){if(jwplayer.api){return jwplayer.api.selectPlayer(a)}};var $jw=jwplayer;jwplayer.version="6.0.22 20";jwplayer.vid=document.createElement("video");jwplayer.audio=document.createElement("audio");jwplayer.source=document.createElement("source");(function(d){var j=document,g=window,b=navigator,h="undefined",f="string",c="object";var k=d.utils=function(){};k.exists=function(l){switch(typeof(l)){case f:return(l.length>0);break;case c:return(l!==null);case h:return false}return true};k.styleDimension=function(l){return l+(l.toString().indexOf("%")>0?"":"px")};k.getAbsolutePath=function(r,q){if(!k.exists(q)){q=j.location.href}if(!k.exists(r)){return undefined}if(a(r)){return r}var s=q.substring(0,q.indexOf("://")+3);var p=q.substring(s.length,q.indexOf("/",s.length+1));var m;if(r.indexOf("/")===0){m=r.split("/")}else{var n=q.split("?")[0];n=n.substring(s.length+p.length+1,n.lastIndexOf("/"));m=n.split("/").concat(r.split("/"))}var l=[];for(var o=0;o<m.length;o++){if(!m[o]||!k.exists(m[o])||m[o]=="."){continue}else{if(m[o]==".."){l.pop()}else{l.push(m[o])}}}return s+p+"/"+l.join("/")};function a(m){if(!k.exists(m)){return}var n=m.indexOf("://");var l=m.indexOf("?");return(n>0&&(l<0||(l>n)))}k.extend=function(){var l=k.extend["arguments"];if(l.length>1){for(var n=1;n<l.length;n++){for(var m in l[n]){if(k.exists(l[n][m])){l[0][m]=l[n][m]}}}return l[0]}return null};k.log=function(m,l){if(typeof console!=h&&typeof console.log!=h){if(l){console.log(m,l)}else{console.log(m)}}};var e=k.userAgentMatch=function(m){var l=b.userAgent.toLowerCase();return(l.match(m)!==null)};k.isIE=function(){return e(/msie/i)};k.isMobile=function(){return e(/(iP(hone|ad|od))|android/i)};k.isIOS=function(){return e(/iP(hone|ad|od)/i)};k.isIPod=function(){return e(/iP(hone|od)/i)};k.isIPad=function(){return e(/iPad/i)};k.saveCookie=function(l,m){j.cookie="jwplayer."+l+"="+m+"; path=/"};k.getCookies=function(){var o={};var n=j.cookie.split("; ");for(var m=0;m<n.length;m++){var l=n[m].split("=");if(l[0].indexOf("jwplayer.")==0){o[l[0].substring(9,l[0].length)]=l[1]}}return o};k.typeOf=function(m){var l=typeof m;if(l==="object"){if(!m){return"null"}return(m instanceof Array)?"array":l}else{return l}};k.translateEventResponse=function(n,l){var p=k.extend({},l);if(n==d.events.JWPLAYER_FULLSCREEN&&!p.fullscreen){p.fullscreen=p.message=="true"?true:false;delete p.message}else{if(typeof p.data==c){p=k.extend(p,p.data);delete p.data}else{if(typeof p.metadata==c){k.deepReplaceKeyName(p.metadata,["__dot__","__spc__","__dsh__"],["."," ","-"])}}}var m=["position","duration","offset"];for(var o in m){if(p[m[o]]){p[m[o]]=Math.round(p[m[o]]*1000)/1000}}return p};k.flashVersion=function(){var l=b.plugins,m;if(l!=h){m=l["Shockwave Flash"];if(m){return parseInt(m.description.replace(/\D+(\d+)\..*/,"$1"))}}if(typeof g.ActiveXObject!=h){try{m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(m){return parseInt(m.GetVariable("$version").split(" ")[1].split(",")[0])}}catch(n){}}return 0};k.getScriptPath=function(n){var l=j.getElementsByTagName("script");for(var m=0;m<l.length;m++){var o=l[m].src;if(o&&o.indexOf(n)>=0){return o.substr(0,o.indexOf(n))}}return""};k.deepReplaceKeyName=function(s,n,l){switch(d.utils.typeOf(s)){case"array":for(var p=0;p<s.length;p++){s[p]=d.utils.deepReplaceKeyName(s[p],n,l)}break;case c:for(var o in s){var r,q;if(n instanceof Array&&l instanceof Array){if(n.length!=l.length){continue}else{r=n;q=l}}else{r=[n];q=[l]}var m=o;for(var p=0;p<r.length;p++){m=m.replace(new RegExp(n[p],"g"),l[p])}s[m]=d.utils.deepReplaceKeyName(s[o],n,l);if(o!=m){delete s[o]}}break}return s};var i=k.pluginPathType={ABSOLUTE:0,RELATIVE:1,CDN:2};k.getPluginPathType=function(m){if(typeof m!=f){return}m=m.split("?")[0];var n=m.indexOf("://");if(n>0){return i.ABSOLUTE}var l=m.indexOf("/");var o=k.extension(m);if(n<0&&l<0&&(!o||!isNaN(o))){return i.CDN}return i.RELATIVE};k.getPluginName=function(l){return l.replace(/^.*\/([^-]*)-?.*\.(swf|js)$/,"$1")};k.getPluginVersion=function(l){return l.replace(/[^-]*-?([^\.]*).*$/,"$1")};k.isYouTube=function(l){return(l.indexOf("youtube.com")>-1||l.indexOf("youtu.be")>-1)}})(jwplayer);(function(n){var d="video/",i="audio/",g="image",j="mp4",c="webm",b="aac",k="mp3",m="ogg",l={mp4:d+j,vorbis:i+m,webm:d+c,aac:i+b,mp3:i+k,hls:"application/vnd.apple.mpegurl"},h={mp4:l[j],f4v:l[j],m4v:l[j],mov:l[j],m4a:l[b],f4a:l[b],aac:l[b],mp3:l[k],ogg:l[m],oga:l[m],ogv:l[m],webm:l[c],m3u8:l.hls,},d="video",f={flv:d,f4v:d,mov:d,m4a:d,m4v:d,mp4:d,aac:d,mp3:"sound",smil:"rtmp",m3u8:"hls"};var a=n.extensionmap={};for(var e in h){a[e]={html5:h[e]}}for(e in f){if(!a[e]){a[e]={}}a[e].flash=f[e]}a.mimeType=function(p){for(var o in l){if(l[o]==p){return o}}}})(jwplayer.utils);(function(b){var a=b.loaderstatus={NEW:0,LOADING:1,ERROR:2,COMPLETE:3},c=document;b.scriptloader=function(e){var f=a.NEW,g=jwplayer.events,d=new g.eventdispatcher();b.extend(this,d);this.load=function(){if(f==a.NEW){f=a.LOADING;var h=c.createElement("script");h.onload=function(i){f=a.COMPLETE;d.sendEvent(g.COMPLETE)};h.onerror=function(i){f=a.ERROR;d.sendEvent(g.ERROR)};h.onreadystatechange=function(){if(h.readyState=="loaded"||h.readyState=="complete"){f=a.COMPLETE;d.sendEvent(g.COMPLETE)}};c.getElementsByTagName("head")[0].appendChild(h);h.src=e}};this.getStatus=function(){return f}}})(jwplayer.utils);(function(a){a.trim=function(b){return b.replace(/^\s*/,"").replace(/\s*$/,"")};a.pad=function(c,d,b){if(!b){b="0"}while(c.length<d){c=b+c}return c};a.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};a.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""};a.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(a.exists(e)){e=a.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)+"}"}}};a.extension=function(b){if(!b){return""}b=b.substring(b.lastIndexOf("/")+1,b.length).split("?")[0];if(b.lastIndexOf(".")>-1){return b.substr(b.lastIndexOf(".")+1,b.length).toLowerCase()}};a.stringToColor=function(b){b=b.replace(/(#|0x)?([0-9A-F]{3,6})$/gi,"$2");if(b.length==3){b=b.charAt(0)+b.charAt(0)+b.charAt(1)+b.charAt(1)+b.charAt(2)+b.charAt(2)}return parseInt(b,16)}})(jwplayer.utils);(function(a){a.events={COMPLETE:"COMPLETE",ERROR:"ERROR",API_READY:"jwplayerAPIReady",JWPLAYER_READY:"jwplayerReady",JWPLAYER_FULLSCREEN:"jwplayerFullscreen",JWPLAYER_RESIZE:"jwplayerResize",JWPLAYER_ERROR:"jwplayerError",JWPLAYER_MEDIA_BEFOREPLAY:"jwplayerMediaBeforePlay",JWPLAYER_MEDIA_BEFORECOMPLETE:"jwplayerMediaBeforeComplete",JWPLAYER_COMPONENT_SHOW:"jwplayerComponentShow",JWPLAYER_COMPONENT_HIDE:"jwplayerComponentHide",JWPLAYER_MEDIA_BUFFER:"jwplayerMediaBuffer",JWPLAYER_MEDIA_BUFFER_FULL:"jwplayerMediaBufferFull",JWPLAYER_MEDIA_ERROR:"jwplayerMediaError",JWPLAYER_MEDIA_LOADED:"jwplayerMediaLoaded",JWPLAYER_MEDIA_COMPLETE:"jwplayerMediaComplete",JWPLAYER_MEDIA_SEEK:"jwplayerMediaSeek",JWPLAYER_MEDIA_TIME:"jwplayerMediaTime",JWPLAYER_MEDIA_VOLUME:"jwplayerMediaVolume",JWPLAYER_MEDIA_META:"jwplayerMediaMeta",JWPLAYER_MEDIA_MUTE:"jwplayerMediaMute",JWPLAYER_MEDIA_LEVELS:"jwplayerMediaLevels",JWPLAYER_MEDIA_LEVEL_CHANGED:"jwplayerMediaLevelChanged",JWPLAYER_PLAYER_STATE:"jwplayerPlayerState",state:{BUFFERING:"BUFFERING",IDLE:"IDLE",PAUSED:"PAUSED",PLAYING:"PLAYING",COMPLETED:"COMPLETED"},JWPLAYER_PLAYLIST_LOADED:"jwplayerPlaylistLoaded",JWPLAYER_PLAYLIST_ITEM:"jwplayerPlaylistItem",JWPLAYER_DISPLAY_CLICK:"jwplayerViewClick",JWPLAYER_INSTREAM_CLICK:"jwplayerInstreamClicked",JWPLAYER_INSTREAM_DESTROYED:"jwplayerInstreamDestroyed"}})(jwplayer);(function(a){var b=jwplayer.utils;a.eventdispatcher=function(h,c){var e=h,g=c,f,d;this.resetEventListeners=function(){f={};d=[]};this.resetEventListeners();this.addEventListener=function(i,l,k){try{if(!b.exists(f[i])){f[i]=[]}if(b.typeOf(l)=="string"){l=(new Function("return "+l))()}f[i].push({listener:l,count:k})}catch(j){b.log("error",j)}return false};this.removeEventListener=function(j,l){if(!f[j]){return}try{for(var i=0;i<f[j].length;i++){if(f[j][i].listener.toString()==l.toString()){f[j].splice(i,1);break}}}catch(k){b.log("error",k)}return false};this.addGlobalListener=function(k,j){try{if(b.typeOf(k)=="string"){k=(new Function("return "+k))()}d.push({listener:k,count:j})}catch(i){b.log("error",i)}return false};this.removeGlobalListener=function(k){if(!k){return}try{for(var i=0;i<d.length;i++){if(d[i].listener.toString()==k.toString()){d.splice(i,1);break}}}catch(j){b.log("error",j)}return false};this.sendEvent=function(k,m){if(!b.exists(m)){m={}}b.extend(m,{id:e,version:jwplayer.version,type:k});if(g){b.log(k,m)}if(b.typeOf(f[k])!="undefined"){for(var j=0;j<f[k].length;j++){try{f[k][j].listener(m)}catch(l){b.log("There was an error while handling a listener: "+l.toString(),f[k][j].listener)}if(f[k][j]){if(f[k][j].count===1){delete f[k][j]}else{if(f[k][j].count>0){f[k][j].count=f[k][j].count-1}}}}}var i;for(i=0;i<d.length;i++){try{d[i].listener(m)}catch(l){b.log("There was an error while handling a listener: "+l.toString(),d[i].listener)}if(d[i]){if(d[i].count===1){delete d[i]}else{if(d[i].count>0){d[i].count=d[i].count-1}}}}}}})(jwplayer.events);(function(a){var c={};var b={};a.plugins=function(){};a.plugins.loadPlugins=function(e,d){b[e]=new a.plugins.pluginloader(new a.plugins.model(c),d);return b[e]};a.plugins.registerPlugin=function(h,f,e){var d=a.utils.getPluginName(h);if(c[d]){c[d].registerPlugin(h,f,e)}else{a.utils.log("A plugin ("+h+") was registered with the player that was not loaded. Please check your configuration.");for(var g in b){b[g].pluginFailed()}}}})(jwplayer);(function(a){a.plugins.model=function(b){this.addPlugin=function(c){var d=a.utils.getPluginName(c);if(!b[d]){b[d]=new a.plugins.plugin(c)}return b[d]}}})(jwplayer);(function(b){var a=jwplayer.utils,c=jwplayer.events,d="undefined";b.pluginmodes={FLASH:0,JAVASCRIPT:1,HYBRID:2};b.plugin=function(e){var g="http://plugins.longtailvideo.com",l=a.loaderstatus.NEW,m,k,n;var f=new c.eventdispatcher();a.extend(this,f);function h(){switch(a.getPluginPathType(e)){case a.pluginPathType.ABSOLUTE:return e;case a.pluginPathType.RELATIVE:return a.getAbsolutePath(e,window.location.href);case a.pluginPathType.CDN:var q=a.getPluginName(e);var p=a.getPluginVersion(e);var o=(window.location.href.indexOf("https://")==0)?g.replace("http://","https://secure"):g;return o+"/"+jwplayer.version.split(".")[0]+"/"+q+"/"+q+(p!==""?("-"+p):"")+".js"}}function j(o){n=setTimeout(function(){l=a.loaderstatus.COMPLETE;f.sendEvent(c.COMPLETE)},1000)}function i(o){l=a.loaderstatus.ERROR;f.sendEvent(c.ERROR)}this.load=function(){if(l==a.loaderstatus.NEW){if(e.lastIndexOf(".swf")>0){m=e;l=a.loaderstatus.COMPLETE;f.sendEvent(c.COMPLETE);return}l=a.loaderstatus.LOADING;var o=new a.scriptloader(h());o.addEventListener(c.COMPLETE,j);o.addEventListener(c.ERROR,i);o.load()}};this.registerPlugin=function(q,p,o){if(n){clearTimeout(n);n=undefined}if(p&&o){m=o;k=p}else{if(typeof p=="string"){m=p}else{if(typeof p=="function"){k=p}else{if(!p&&!o){m=q}}}}l=a.loaderstatus.COMPLETE;f.sendEvent(c.COMPLETE)};this.getStatus=function(){return l};this.getPluginName=function(){return a.getPluginName(e)};this.getFlashPath=function(){if(m){switch(a.getPluginPathType(m)){case a.pluginPathType.ABSOLUTE:return m;case a.pluginPathType.RELATIVE:if(e.lastIndexOf(".swf")>0){return a.getAbsolutePath(m,window.location.href)}return a.getAbsolutePath(m,h());case a.pluginPathType.CDN:if(m.indexOf("-")>-1){return m+"h"}return m+"-h"}}return null};this.getJS=function(){return k};this.getPluginmode=function(){if(typeof m!=d&&typeof k!=d){return b.pluginmodes.HYBRID}else{if(typeof m!=d){return b.pluginmodes.FLASH}else{if(typeof k!=d){return b.pluginmodes.JAVASCRIPT}}}};this.getNewInstance=function(p,o,q){return new k(p,o,q)};this.getURL=function(){return e}}})(jwplayer.plugins);(function(b){var a=b.utils,c=b.events;b.plugins.pluginloader=function(j,h){var i={},n=a.loaderstatus.NEW,g=false,d=false,l=false,e=new c.eventdispatcher();a.extend(this,e);function f(){if(l){e.sendEvent(c.ERROR)}else{if(!d){d=true;n=a.loaderstatus.COMPLETE;e.sendEvent(c.COMPLETE)}}}function m(){if(!d){var p=0;for(plugin in i){var o=i[plugin].getStatus();if(o==a.loaderstatus.LOADING||o==a.loaderstatus.NEW){p++}}if(p==0){f()}}}this.setupPlugins=function(q,o,v){var p={length:0,plugins:{}};var s={length:0,plugins:{}};for(var r in i){var t=i[r].getPluginName();if(i[r].getFlashPath()){p.plugins[i[r].getFlashPath()]=o.plugins[r];p.plugins[i[r].getFlashPath()].pluginmode=i[r].getPluginmode();p.length++}if(i[r].getJS()){var u=document.createElement("div");u.id=q.id+"_"+t;u.style.position="absolute";u.style.zIndex=s.length+10;s.plugins[t]=i[r].getNewInstance(q,o.plugins[r],u);s.length++;q.onReady(v(s.plugins[t],u,true));q.onResize(v(s.plugins[t],u))}}q.plugins=s.plugins;return p};this.load=function(){if(a.typeOf(h)!="object"){m();return}n=a.loaderstatus.LOADING;g=true;for(var o in h){if(a.exists(o)){i[o]=j.addPlugin(o);i[o].addEventListener(c.COMPLETE,m);i[o].addEventListener(c.ERROR,k)}}for(o in i){i[o].load()}g=false;m()};var k=this.pluginFailed=function(){if(!l){l=true;f()}};this.getStatus=function(){return n}}})(jwplayer);(function(a){a.playlist=function(c){var d=[];if(a.utils.typeOf(c)=="array"){for(var b=0;b<c.length;b++){d.push(new a.playlist.item(c[b]))}}else{d.push(new a.playlist.item(c))}return d}})(jwplayer);(function(b){var a=b.item=function(d){var c=jwplayer.utils.extend({},a.defaults,d);if(c.sources.length==0){c.sources=[new b.source(c)]}for(var e=0;e<c.sources.length;e++){c.sources[e]=new b.source(c.sources[e])}return c};a.defaults={description:"",image:"",mediaid:"",title:"",duration:-1,sources:[]}})(jwplayer.playlist);(function(d){var b=undefined,a=jwplayer.utils,c={file:b,width:b,label:b,bitrate:b,type:b};d.source=function(f){var e=a.extend({},c);for(var g in c){if(a.exists(f[g])){e[g]=f[g];delete f[g]}}if(e.type&&e.type.indexOf("/")>0){e.type=a.extensionmap.mimeType(e.type)}return e}})(jwplayer.playlist);(function(b){var a=b.utils,c=b.events;var d=b.embed=function(o){var l=new d.config(o.config),h,j="Error loading player: ",g=b.plugins.loadPlugins(o.id,l.plugins);l.id=o.id;h=document.getElementById(o.id);function i(r,q){for(var p in q){if(typeof r[p]=="function"){(r[p]).call(r,q[p])}}}function e(){if(a.typeOf(l.playlist)=="array"&&l.playlist.length<2){if(l.playlist.length==0||!l.playlist[0].sources||l.playlist[0].sources.length==0){m();return}}if(g.getStatus()==a.loaderstatus.COMPLETE){for(var r=0;r<l.modes.length;r++){if(l.modes[r].type&&d[l.modes[r].type]){var s=l.modes[r].config;var p=a.extend({},s?d.config.addConfig(l,s):l);var q=new d[l.modes[r].type](h,l.modes[r],p,g,o);if(q.supportsConfig()){q.addEventListener(c.ERROR,f);q.embed();i(o,p.events);return o}}}if(l.fallback){a.log("No suitable players found and fallback enabled");new d.download(h,l,m)}else{a.log("No suitable players found and fallback disabled")}}}function f(p){n(h,j+p.message)}function k(p){n(h,j+"Could not load plugins")}function m(){n(h,j+"No media sources found")}function n(p,r){var q=p.style;q.backgroundColor="#000";q.color="#FFF";q.width=a.styleDimension(l.width);q.height=a.styleDimension(l.height);q.display="table";q.padding="50px";var s=document.createElement("p");s.style.verticalAlign="middle";s.style.textAlign="center";s.style.display="table-cell";s.innerHTML=r;p.innerHTML="";p.appendChild(s)}b.embed.errorScreen=n;g.addEventListener(c.COMPLETE,e);g.addEventListener(c.ERROR,k);g.load();return o}})(jwplayer);(function(d){var a=d.utils,h=d.embed,b=d.playlist.item,f=undefined;var c=h.config=function(j){function m(q,p,o){for(var n=0;n<q.length;n++){var r=q[n].type;if(!q[n].src){q[n].src=o[r]?o[r]:p+"jwplayer."+r+(r=="flash"?".swf":".js")}}}var l={fallback:true,height:300,primary:"html5",width:400,base:f},i={html5:{type:"html5"},flash:{type:"flash"}},k=a.extend(l,j);if(!k.base){k.base=a.getScriptPath("jwplayer.js")}if(!k.modes){k.modes=(k.primary=="flash")?[i.flash,i.html5]:[i.html5,i.flash]}m(k.modes,k.base,{html5:k.html5player,flash:k.flashplayer});e(k);return k};c.addConfig=function(i,j){e(j);return a.extend(i,j)};function e(l){if(!l.playlist){var n={};for(var k in b.defaults){g(l,n,k)}if(!l.sources){if(l.levels){n.sources=l.levels;delete l.levels}else{var j={};g(l,j,"file");g(l,j,"type");n.sources=j.file?[j]:[]}}l.playlist=[n]}else{for(var m=0;m<l.playlist.length;m++){l.playlist[m]=new b(l.playlist[m])}}}function g(k,i,j){if(a.exists(k[j])){i[j]=k[j];delete k[j]}}})(jwplayer);(function(d){var f=d.embed,i=d.utils,h=document,g="pointer",c="none",a="block",e="100%",b="absolute";f.download=function(m,x,k){var p=i.extend({},x),t,n=p.width?p.width:480,q=p.height?p.height:320,y,r,j=x.logo?x.logo:{prefix:"http://l.longtailvideo.com/download/",file:"logo.png",margin:10};function w(){if(p.playlist&&p.playlist.length){var B,D,A;for(var z=0;z<p.playlist[0].sources.length;z++){var C=p.playlist[0].sources[z];if(C.file){if(("mp4,mp4,flv,webm,aac,mp3,vorbis").split().indexOf(C.type)>-1){B=C.file;D=C.image;continue}else{if(i.isYouTube(C.file)){A=C.file}}}}}else{return}if(B){y=B;r=D;if(j.prefix){j.prefix+=d.version.split(/\W/).splice(0,2).join("/")+"/"}s();o()}else{if(A){l(A)}else{k()}}}function s(){if(m){t=u("a","display",m);u("div","iconbackground",t);u("div","icon",t);u("div","logo",t);if(y){t.setAttribute("href",i.getAbsolutePath(y))}}}function v(z,B){var C=h.querySelectorAll(z);for(var A=0;A<C.length;A++){for(var D in B){C[A].style[D]=B[D]}}}function o(){var z="#"+m.id+" .jwdownload";v(z+"display",{width:i.styleDimension(n),height:i.styleDimension(q),background:"black center no-repeat "+(r?"url("+r+")":""),backgroundSize:"contain",position:b,border:c,display:a});v(z+"display div",{position:b,width:e,height:e});v(z+"logo",{bottom:j.margin+"px",left:j.margin+"px",background:"bottom left no-repeat url("+j.prefix+j.file+")"});v(z+"icon",{background:"center no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALdJREFUeNrs18ENgjAYhmFouDOCcQJGcARHgE10BDcgTOIosAGwQOuPwaQeuFRi2p/3Sb6EC5L3QCxZBgAAAOCorLW1zMn65TrlkH4NcV7QNcUQt7Gn7KIhxA+qNIR81spOGkL8oFJDyLJRdosqKDDkK+iX5+d7huzwM40xptMQMkjIOeRGo+VkEVvIPfTGIpKASfYIfT9iCHkHrBEzf4gcUQ56aEzuGK/mw0rHpy4AAACAf3kJMACBxjAQNRckhwAAAABJRU5ErkJggg==)"});v(z+"iconbackground",{background:"center no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEpJREFUeNrszwENADAIA7DhX8ENoBMZ5KR10EryckCJiIiIiIiIiIiIiIiIiIiIiIh8GmkRERERERERERERERERERERERGRHSPAAPlXH1phYpYaAAAAAElFTkSuQmCC)"})}function u(z,C,B){var A=h.createElement(z);if(C){A.className="jwdownload"+C}if(B){B.appendChild(A)}return A}function l(z){var A=u("embed","",m);A.src="http://www.youtube.com/v/"+(/v[=\/](\w*)|\/(\w+)$|^(\w+)$/i).exec(z).slice(1).join("");A.type="application/x-shockwave-flash";A.width=n;A.height=q}w()}})(jwplayer);(function(b){var a=b.utils,c=b.events;b.embed.flash=function(k,l,p,j,n){var f=new b.events.eventdispatcher(),g=a.flashVersion();a.extend(this,f);function q(s,r,t){var u=document.createElement("param");u.setAttribute("name",r);u.setAttribute("value",t);s.appendChild(u)}function o(s,t,r){return function(u){if(r){document.getElementById(n.id+"_wrapper").appendChild(t)}var v=document.getElementById(n.id).getPluginConfig("display");if(typeof s.resize=="function"){s.resize(v.width,v.height)}t.style.left=v.x;t.style.top=v.h}}function i(t){if(!t){return{}}var v={};for(var s in t){var r=t[s];for(var u in r){v[s+"."+u]=r[u]}}return v}function m(u,t){if(u[t]){var w=u[t];for(var s in w){var r=w[s];if(typeof r=="string"){if(!u[s]){u[s]=r}}else{for(var v in r){if(!u[s+"."+v]){u[s+"."+v]=r[v]}}}}delete u[t]}}function e(u){if(!u){return{}}var x={},w=[];for(var r in u){var t=a.getPluginName(r);var s=u[r];w.push(r);for(var v in s){x[t+"."+v]=s[v]}}x.plugins=w.join(",");return x}function h(t){var r="";for(var s in t){if(typeof(t[s])=="object"){r+=s+"="+encodeURIComponent("[[JSON]]"+a.jsonToString(t[s]))+"&"}else{r+=s+"="+encodeURIComponent(t[s])+"&"}}return r.substring(0,r.length-1)}this.embed=function(){p.id=n.id;if(g<10){f.sendEvent(c.ERROR,{message:"Flash version must be 10.0 or greater"});return false}var D;var v=a.extend({},p);if(k.id+"_wrapper"==k.parentNode.id){D=document.getElementById(k.id+"_wrapper")}else{D=document.createElement("div");D.id=k.id+"_wrapper";D.style.position="relative";D.style.width=a.styleDimension(v.width);D.style.height=a.styleDimension(v.height);k.parentNode.replaceChild(D,k);D.appendChild(k)}var r=j.setupPlugins(n,v,o);if(r.length>0){a.extend(v,e(r.plugins))}else{delete v.plugins}var w=["height","width","modes","events","primary","base","fallback"];for(var z=0;z<w.length;z++){delete v[w[z]]}var t="opaque";if(v.wmode){t=v.wmode}m(v,"components");m(v,"providers");if(typeof v["dock.position"]!="undefined"){if(v["dock.position"].toString().toLowerCase()=="false"){v.dock=v["dock.position"];delete v["dock.position"]}}var B=a.getCookies();for(var s in B){if(typeof(v[s])=="undefined"){v[s]=B[s]}}var C="#000000",y,u=h(v);if(a.isIE()){var A='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" bgcolor="'+C+'" width="100%" height="100%" id="'+k.id+'" name="'+k.id+'" tabindex=0"">';A+='<param name="movie" value="'+l.src+'">';A+='<param name="allowfullscreen" value="true">';A+='<param name="allowscriptaccess" value="always">';A+='<param name="seamlesstabbing" value="true">';A+='<param name="wmode" value="'+t+'">';A+='<param name="flashvars" value="'+u+'">';A+="</object>";k.outerHTML=A;y=document.getElementById(k.id)}else{var x=document.createElement("object");x.setAttribute("type","application/x-shockwave-flash");x.setAttribute("data",l.src);x.setAttribute("width","100%");x.setAttribute("height","100%");x.setAttribute("bgcolor","#000000");x.setAttribute("id",k.id);x.setAttribute("name",k.id);x.setAttribute("tabindex",0);q(x,"allowfullscreen","true");q(x,"allowscriptaccess","always");q(x,"seamlesstabbing","true");q(x,"wmode",t);q(x,"flashvars",u);x.onerror=function(){alert("does this work?")};k.parentNode.replaceChild(x,k);y=x}n.container=y;n.setPlayer(y,"flash")};this.supportsConfig=function(){if(g){if(p){try{var t=p.playlist[0],r=t.sources;if(typeof r=="undefined"){return true}else{for(var s=0;s<r.length;s++){if(r[s].file&&d(r[s].file,r[s].type)){return true}}}}catch(u){return false}}else{return true}}return false};function d(s,t){var r=["mp4","flv","aac","mp3","hls","rtmp","youtube"];if(t&&(r.toString().indexOf(t)<0)){return true}var u=a.extension(s);if(!t){t=u}if(!t){return true}if(a.exists(a.extensionmap[t])){return a.exists(a.extensionmap[t].flash)}return false}}})(jwplayer);(function(c){var a=c.utils,b=a.extensionmap,d=c.events;c.embed.html5=function(g,h,o,f,k){var j=this,e=new d.eventdispatcher();a.extend(j,e);function l(q,r,p){return function(s){var t=document.getElementById(g.id+"_displayarea");if(p){t.appendChild(r)}if(typeof q.resize=="function"){q.resize(t.clientWidth,t.clientHeight)}r.left=t.style.left;r.top=t.style.top}}j.embed=function(){if(c.html5){f.setupPlugins(k,o,l);g.innerHTML="";var p=c.utils.extend({},o);if(p.skin&&p.skin.toLowerCase().indexOf(".zip")>0){p.skin=p.skin.replace(/\.zip/i,".xml")}var q=new c.html5.player(p);k.container=document.getElementById(k.id);k.setPlayer(q,"html5")}else{var r=new a.scriptloader(h.src);r.addEventListener(d.ERROR,i);r.addEventListener(d.COMPLETE,j.embed);r.load()}};function i(p){j.sendEvent(p.type,{message:"HTML5 player not found"})}j.supportsConfig=function(){if(!!c.vid.canPlayType){try{if(a.typeOf(o.playlist)=="string"){return true}else{var p=o.playlist[0].sources;for(var r=0;r<p.length;r++){var q=p[r].file,s=p[r].type;if(n(q,s)){return true}}}}catch(t){return false}}return false};function n(p,q){if(navigator.userAgent.match(/BlackBerry/i)!==null){return false}var r=b[q?q:a.extension(p)];if(!r){return false}return m(r.html5)}function m(p){var q=c.vid;if(!p){return true}if(q.canPlayType(p)){return true}else{if(p=="audio/mp3"&&navigator.userAgent.match(/safari/i)){return q.canPlayType("audio/mpeg")}else{return false}}}}})(jwplayer);(function(d){var c=[],a=d.utils,e=d.events,b=e.state;var f=d.api=function(u){var y=this,g={},m={},C={},p=[],h=undefined,F=false,q=[],A=undefined,t={},o={};y.container=u;y.id=u.id;y.getBuffer=function(){return x("jwGetBuffer")};y.getContainer=function(){return y.container};function i(I,H){return function(N,J,K,L){if(I.renderingMode=="flash"||I.renderingMode=="html5"){var M;if(J){o[N]=J;M="jwplayer('"+I.id+"').callback('"+N+"')"}else{if(!J&&o[N]){delete o[N]}}h.jwDockSetButton(N,M,K,L)}return H}}y.getPlugin=function(H){var I={};if(H=="dock"){return a.extend(I,{setButton:i(y,I),show:function(){x("jwDockShow");return I},hide:function(){x("jwDockHide");return I},onShow:function(J){D("dock",e.JWPLAYER_COMPONENT_SHOW,J);return I},onHide:function(J){D("dock",e.JWPLAYER_COMPONENT_HIDE,J);return I}})}else{if(H=="controlbar"){return a.extend(I,{show:function(){__callInternal("jwControlbarShow");return I},hide:function(){__callInternal("jwControlbarHide");return I},onShow:function(J){D("controlbar",e.JWPLAYER_COMPONENT_SHOW,J);return I},onHide:function(J){D("controlbar",e.JWPLAYER_COMPONENT_HIDE,J);return I}})}else{if(H=="display"){return a.extend(I,{show:function(){__callInternal("jwDisplayShow");return I},hide:function(){__callInternal("jwDisplayHide");return I},onShow:function(J){D("display",e.JWPLAYER_COMPONENT_SHOW,J);return I},onHide:function(J){D("display",e.JWPLAYER_COMPONENT_HIDE,J);return I}})}else{return y.plugins[H]}}}};y.callback=function(H){if(o[H]){return o[H]()}};y.getDuration=function(){return x("jwGetDuration")};y.getFullscreen=function(){return x("jwGetFullscreen")};y.getStretching=function(){return x("jwGetStretching")};y.getHeight=function(){return x("jwGetHeight")};y.getLockState=function(){return x("jwGetLockState")};y.getMeta=function(){return y.getItemMeta()};y.getMute=function(){return x("jwGetMute")};y.getPlaylist=function(){var I=x("jwGetPlaylist");if(y.renderingMode=="flash"){a.deepReplaceKeyName(I,["__dot__","__spc__","__dsh__"],["."," ","-"])}for(var H=0;H<I.length;H++){if(!a.exists(I[H].index)){I[H].index=H}}return I};y.getPlaylistItem=function(H){if(!a.exists(H)){H=y.getCurrentItem()}return y.getPlaylist()[H]};y.getPosition=function(){return x("jwGetPosition")};y.getRenderingMode=function(){return y.renderingMode};y.getState=function(){return x("jwGetState")};y.getVolume=function(){return x("jwGetVolume")};y.getWidth=function(){return x("jwGetWidth")};y.setFullscreen=function(H){if(!a.exists(H)){x("jwSetFullscreen",!x("jwGetFullscreen"))}else{x("jwSetFullscreen",H)}return y};y.setStretching=function(H){x("jwSetStretching",H);return y};y.setMute=function(H){if(!a.exists(H)){x("jwSetMute",!x("jwGetMute"))}else{x("jwSetMute",H)}return y};y.lock=function(){return y};y.unlock=function(){return y};y.load=function(H){x("jwLoad",H);return y};y.playlistItem=function(H){x("jwPlaylistItem",H);return y};y.playlistPrev=function(){x("jwPlaylistPrev");return y};y.playlistNext=function(){x("jwPlaylistNext");return y};y.resize=function(I,H){if(y.renderingMode=="html5"){h.jwResize(I,H)}else{var J=document.getElementById(y.id+"_wrapper");if(J){J.style.width=a.styleDimension(I);J.style.height=a.styleDimension(H)}}return y};y.play=function(H){if(typeof H=="undefined"){H=y.getState();if(H==b.PLAYING||H==b.BUFFERING){x("jwPause")}else{x("jwPlay")}}else{x("jwPlay",H)}return y};y.pause=function(H){if(typeof H=="undefined"){H=y.getState();if(H==b.PLAYING||H==b.BUFFERING){x("jwPause")}else{x("jwPlay")}}else{x("jwPause",H)}return y};y.stop=function(){x("jwStop");return y};y.seek=function(H){x("jwSeek",H);return y};y.setVolume=function(H){x("jwSetVolume",H);return y};y.loadInstream=function(I,H){A=new f.instream(this,h,I,H);return A};y.getQualityLevels=function(){return x("jwGetQualityLevels")};y.getCurrentQuality=function(){return x("jwGetCurrentQuality")};y.setCurrentQuality=function(H){x("jwSetCurrentQuality",H)};var s={onBufferChange:e.JWPLAYER_MEDIA_BUFFER,onBufferFull:e.JWPLAYER_MEDIA_BUFFER_FULL,onError:e.JWPLAYER_ERROR,onFullscreen:e.JWPLAYER_FULLSCREEN,onMeta:e.JWPLAYER_MEDIA_META,onMute:e.JWPLAYER_MEDIA_MUTE,onPlaylist:e.JWPLAYER_PLAYLIST_LOADED,onPlaylistItem:e.JWPLAYER_PLAYLIST_ITEM,onReady:e.API_READY,onResize:e.JWPLAYER_RESIZE,onComplete:e.JWPLAYER_MEDIA_COMPLETE,onSeek:e.JWPLAYER_MEDIA_SEEK,onTime:e.JWPLAYER_MEDIA_TIME,onVolume:e.JWPLAYER_MEDIA_VOLUME,onBeforePlay:e.JWPLAYER_MEDIA_BEFOREPLAY,onBeforeComplete:e.JWPLAYER_MEDIA_BEFORECOMPLETE,onDisplayClick:e.JWPLAYER_DISPLAY_CLICK,onQualityLevels:e.JWPLAYER_MEDIA_LEVELS,onQualityChange:e.JWPLAYER_MEDIA_LEVEL_CHANGED};for(var z in s){y[z]=E(s[z],B)}var w={onBuffer:b.BUFFERING,onPause:b.PAUSED,onPlay:b.PLAYING,onIdle:b.IDLE};for(var k in w){y[k]=E(w[k],r)}function E(H,I){return function(J){return I(H,J)}}y.remove=function(){if(!F){throw"Cannot call remove() before player is ready";return}n(this)};function n(H){q=[];f.destroyPlayer(H.id)}y.setup=function(H){if(d.embed){n(y);if(a.clearCss){a.clearCss("#"+y.id)}var I=d(y.id);I.config=H;return new d.embed(I)}return y};y.registerPlugin=function(J,I,H){d.plugins.registerPlugin(J,I,H)};y.setPlayer=function(H,I){h=H;y.renderingMode=I};y.detachMedia=function(){if(y.renderingMode=="html5"){return x("jwDetachMedia")}};y.attachMedia=function(){if(y.renderingMode=="html5"){return x("jwAttachMedia")}};function r(H,I){if(!m[H]){m[H]=[];B(e.JWPLAYER_PLAYER_STATE,G(H))}m[H].push(I);return y}function G(H){return function(J){var I=J.newstate,L=J.oldstate;if(I==H){var K=m[I];if(K){for(var M=0;M<K.length;M++){if(typeof K[M]=="function"){K[M].call(this,{oldstate:L,newstate:I})}}}}}}function D(H,I,J){if(!C[H]){C[H]={}}if(!C[H][I]){C[H][I]=[];B(I,l(H,I))}C[H][I].push(J);return y}function l(H,I){return function(K){if(H==K.component){var J=C[H][I];if(J){for(var L=0;L<J.length;L++){if(typeof J[L]=="function"){J[L].call(this,K)}}}}}}function j(H,I){try{H.jwAddEventListener(I,'function(dat) { jwplayer("'+y.id+'").dispatchEvent("'+I+'", dat); }')}catch(J){a.log("Could not add internal listener")}}function B(H,I){if(!g[H]){g[H]=[];if(h&&F){j(h,H)}}g[H].push(I);return y}y.dispatchEvent=function(J){if(g[J]){var I=a.translateEventResponse(J,arguments[1]);for(var H=0;H<g[J].length;H++){if(typeof g[J][H]=="function"){g[J][H].call(this,I)}}}};y.dispatchInstreamEvent=function(H){if(A){A.dispatchEvent(H,arguments)}};function x(){if(F){var J=arguments[0],H=[];for(var I=1;I<arguments.length;I++){H.push(arguments[I])}if(typeof h!="undefined"&&typeof h[J]=="function"){if(H.length==2){return(h[J])(H[0],H[1])}else{if(H.length==1){return(h[J])(H[0])}else{return(h[J])()}}}return null}else{q.push(arguments)}}y.playerReady=function(I){F=true;if(!h){y.setPlayer(document.getElementById(I.id))}y.container=document.getElementById(y.id);for(var H in g){j(h,H)}B(e.JWPLAYER_PLAYLIST_ITEM,function(J){t={}});B(e.JWPLAYER_MEDIA_META,function(J){a.extend(t,J.metadata)});y.dispatchEvent(e.API_READY);while(q.length>0){x.apply(this,q.shift())}};y.getItemMeta=function(){return t};y.getCurrentItem=function(){return x("jwGetPlaylistIndex")};function v(J,L,K){var H=[];if(!L){L=0}if(!K){K=J.length-1}for(var I=L;I<=K;I++){H.push(J[I])}return H}return y};f.selectPlayer=function(h){var g;if(!a.exists(h)){h=0}if(h.nodeType){g=h}else{if(typeof h=="string"){g=document.getElementById(h)}}if(g){var i=f.playerById(g.id);if(i){return i}else{return f.addPlayer(new f(g))}}else{if(typeof h=="number"){return c[h]}}return null};f.playerById=function(h){for(var g=0;g<c.length;g++){if(c[g].id==h){return c[g]}}return null};f.addPlayer=function(g){for(var h=0;h<c.length;h++){if(c[h]==g){return g}}c.push(g);return g};f.destroyPlayer=function(i){var h=-1;for(var k=0;k<c.length;k++){if(c[k].id==i){h=k;continue}}if(h>=0){var l=c[h].id,g=document.getElementById(l+"_wrapper");if(!g){g=document.getElementById(l)}if(g){var j=document.createElement("div");j.id=l;g.parentNode.replaceChild(j,g)}c.splice(h,1)}return null}})(jwplayer);var _userPlayerReady=(typeof playerReady=="function")?playerReady:undefined;playerReady=function(b){var a=jwplayer.api.playerById(b.id);if(a){a.playerReady(b)}else{jwplayer.api.selectPlayer(b.id).playerReady(b)}if(_userPlayerReady){_userPlayerReady.call(this,b)}};(function(b){var c=b.events,a=c.state;b.api.instream=function(e,k,o,r){var j=e,d=k,i=o,l=r,g={},q={};function h(){j.callInternal("jwLoadInstream",o,r)}function n(s,t){d.jwInstreamAddEventListener(t,'function(dat) { jwplayer("'+j.id+'").dispatchInstreamEvent("'+t+'", dat); }')}function f(s,t){if(!g[s]){g[s]=[];n(d,s)}g[s].push(t);return this}function p(s,t){if(!q[s]){q[s]=[];f(c.JWPLAYER_PLAYER_STATE,m(s))}q[s].push(t);return this}function m(s){return function(u){var t=u.newstate,w=u.oldstate;if(t==s){var v=q[t];if(v){for(var x=0;x<v.length;x++){if(typeof v[x]=="function"){v[x].call(this,{oldstate:w,newstate:t,type:u.type})}}}}}}this.dispatchEvent=function(v,u){if(g[v]){var t=_utils.translateEventResponse(v,u[1]);for(var s=0;s<g[v].length;s++){if(typeof g[v][s]=="function"){g[v][s].call(this,t)}}}};this.onError=function(s){return f(c.JWPLAYER_ERROR,s)};this.onFullscreen=function(s){return f(c.JWPLAYER_FULLSCREEN,s)};this.onMeta=function(s){return f(c.JWPLAYER_MEDIA_META,s)};this.onMute=function(s){return f(c.JWPLAYER_MEDIA_MUTE,s)};this.onComplete=function(s){return f(c.JWPLAYER_MEDIA_COMPLETE,s)};this.onSeek=function(s){return f(c.JWPLAYER_MEDIA_SEEK,s)};this.onTime=function(s){return f(c.JWPLAYER_MEDIA_TIME,s)};this.onVolume=function(s){return f(c.JWPLAYER_MEDIA_VOLUME,s)};this.onBuffer=function(s){return p(a.BUFFERING,s)};this.onPause=function(s){return p(a.PAUSED,s)};this.onPlay=function(s){return p(a.PLAYING,s)};this.onIdle=function(s){return p(a.IDLE,s)};this.onInstreamClick=function(s){return f(c.JWPLAYER_INSTREAM_CLICK,s)};this.onInstreamDestroyed=function(s){return f(c.JWPLAYER_INSTREAM_DESTROYED,s)};this.play=function(s){d.jwInstreamPlay(s)};this.pause=function(s){d.jwInstreamPause(s)};this.seek=function(s){d.jwInstreamSeek(s)};this.destroy=function(){d.jwInstreamDestroy()};this.getState=function(){return d.jwInstreamGetState()};this.getDuration=function(){return d.jwInstreamGetDuration()};this.getPosition=function(){return d.jwInstreamGetPosition()};h()}})(jwplayer)};1 if(typeof jwplayer=="undefined"){jwplayer=function(a){if(jwplayer.api){return jwplayer.api.selectPlayer(a)}};var $jw=jwplayer;jwplayer.version="6.0.2234";jwplayer.vid=document.createElement("video");jwplayer.audio=document.createElement("audio");jwplayer.source=document.createElement("source");(function(d){var j=document,g=window,b=navigator,h="undefined",f="string",c="object";var k=d.utils=function(){};k.exists=function(l){switch(typeof(l)){case f:return(l.length>0);break;case c:return(l!==null);case h:return false}return true};k.styleDimension=function(l){return l+(l.toString().indexOf("%")>0?"":"px")};k.getAbsolutePath=function(r,q){if(!k.exists(q)){q=j.location.href}if(!k.exists(r)){return undefined}if(a(r)){return r}var s=q.substring(0,q.indexOf("://")+3);var p=q.substring(s.length,q.indexOf("/",s.length+1));var m;if(r.indexOf("/")===0){m=r.split("/")}else{var n=q.split("?")[0];n=n.substring(s.length+p.length+1,n.lastIndexOf("/"));m=n.split("/").concat(r.split("/"))}var l=[];for(var o=0;o<m.length;o++){if(!m[o]||!k.exists(m[o])||m[o]=="."){continue}else{if(m[o]==".."){l.pop()}else{l.push(m[o])}}}return s+p+"/"+l.join("/")};function a(m){if(!k.exists(m)){return}var n=m.indexOf("://");var l=m.indexOf("?");return(n>0&&(l<0||(l>n)))}k.extend=function(){var l=k.extend["arguments"];if(l.length>1){for(var n=1;n<l.length;n++){for(var m in l[n]){if(k.exists(l[n][m])){l[0][m]=l[n][m]}}}return l[0]}return null};k.log=function(m,l){if(typeof console!=h&&typeof console.log!=h){if(l){console.log(m,l)}else{console.log(m)}}};var e=k.userAgentMatch=function(m){var l=b.userAgent.toLowerCase();return(l.match(m)!==null)};k.isIE=function(){return e(/msie/i)};k.isMobile=function(){return e(/(iP(hone|ad|od))|android/i)};k.isIOS=function(){return e(/iP(hone|ad|od)/i)};k.isIPod=function(){return e(/iP(hone|od)/i)};k.isIPad=function(){return e(/iPad/i)};k.saveCookie=function(l,m){j.cookie="jwplayer."+l+"="+m+"; path=/"};k.getCookies=function(){var o={};var n=j.cookie.split("; ");for(var m=0;m<n.length;m++){var l=n[m].split("=");if(l[0].indexOf("jwplayer.")==0){o[l[0].substring(9,l[0].length)]=l[1]}}return o};k.typeOf=function(m){var l=typeof m;if(l==="object"){if(!m){return"null"}return(m instanceof Array)?"array":l}else{return l}};k.translateEventResponse=function(n,l){var p=k.extend({},l);if(n==d.events.JWPLAYER_FULLSCREEN&&!p.fullscreen){p.fullscreen=p.message=="true"?true:false;delete p.message}else{if(typeof p.data==c){p=k.extend(p,p.data);delete p.data}else{if(typeof p.metadata==c){k.deepReplaceKeyName(p.metadata,["__dot__","__spc__","__dsh__"],["."," ","-"])}}}var m=["position","duration","offset"];for(var o in m){if(p[m[o]]){p[m[o]]=Math.round(p[m[o]]*1000)/1000}}return p};k.flashVersion=function(){var l=b.plugins,m;if(l!=h){m=l["Shockwave Flash"];if(m){return parseInt(m.description.replace(/\D+(\d+)\..*/,"$1"))}}if(typeof g.ActiveXObject!=h){try{m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(m){return parseInt(m.GetVariable("$version").split(" ")[1].split(",")[0])}}catch(n){}}return 0};k.getScriptPath=function(n){var l=j.getElementsByTagName("script");for(var m=0;m<l.length;m++){var o=l[m].src;if(o&&o.indexOf(n)>=0){return o.substr(0,o.indexOf(n))}}return""};k.deepReplaceKeyName=function(s,n,l){switch(d.utils.typeOf(s)){case"array":for(var p=0;p<s.length;p++){s[p]=d.utils.deepReplaceKeyName(s[p],n,l)}break;case c:for(var o in s){var r,q;if(n instanceof Array&&l instanceof Array){if(n.length!=l.length){continue}else{r=n;q=l}}else{r=[n];q=[l]}var m=o;for(var p=0;p<r.length;p++){m=m.replace(new RegExp(n[p],"g"),l[p])}s[m]=d.utils.deepReplaceKeyName(s[o],n,l);if(o!=m){delete s[o]}}break}return s};var i=k.pluginPathType={ABSOLUTE:0,RELATIVE:1,CDN:2};k.getPluginPathType=function(m){if(typeof m!=f){return}m=m.split("?")[0];var n=m.indexOf("://");if(n>0){return i.ABSOLUTE}var l=m.indexOf("/");var o=k.extension(m);if(n<0&&l<0&&(!o||!isNaN(o))){return i.CDN}return i.RELATIVE};k.getPluginName=function(l){return l.replace(/^.*\/([^-]*)-?.*\.(swf|js)$/,"$1")};k.getPluginVersion=function(l){return l.replace(/[^-]*-?([^\.]*).*$/,"$1")};k.isYouTube=function(l){return(l.indexOf("youtube.com")>-1||l.indexOf("youtu.be")>-1)}})(jwplayer);(function(n){var d="video/",i="audio/",g="image",j="mp4",c="webm",b="aac",k="mp3",m="ogg",l={mp4:d+j,vorbis:i+m,webm:d+c,aac:i+b,mp3:i+k,hls:"application/vnd.apple.mpegurl"},h={mp4:l[j],f4v:l[j],m4v:l[j],mov:l[j],m4a:l[b],f4a:l[b],aac:l[b],mp3:l[k],ogg:l[m],oga:l[m],webm:l[c],m3u8:l.hls,},d="video",f={flv:d,f4v:d,mov:d,m4a:d,m4v:d,mp4:d,aac:d,mp3:"sound",smil:"rtmp",m3u8:"hls"};var a=n.extensionmap={};for(var e in h){a[e]={html5:h[e]}}for(e in f){if(!a[e]){a[e]={}}a[e].flash=f[e]}a.mimeType=function(p){for(var o in l){if(l[o]==p){return o}}}})(jwplayer.utils);(function(b){var a=b.loaderstatus={NEW:0,LOADING:1,ERROR:2,COMPLETE:3},c=document;b.scriptloader=function(e){var f=a.NEW,g=jwplayer.events,d=new g.eventdispatcher();b.extend(this,d);this.load=function(){if(f==a.NEW){f=a.LOADING;var h=c.createElement("script");h.onload=function(i){f=a.COMPLETE;d.sendEvent(g.COMPLETE)};h.onerror=function(i){f=a.ERROR;d.sendEvent(g.ERROR)};h.onreadystatechange=function(){if(h.readyState=="loaded"||h.readyState=="complete"){f=a.COMPLETE;d.sendEvent(g.COMPLETE)}};c.getElementsByTagName("head")[0].appendChild(h);h.src=e}};this.getStatus=function(){return f}}})(jwplayer.utils);(function(a){a.trim=function(b){return b.replace(/^\s*/,"").replace(/\s*$/,"")};a.pad=function(c,d,b){if(!b){b="0"}while(c.length<d){c=b+c}return c};a.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};a.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""};a.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(a.exists(e)){e=a.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)+"}"}}};a.extension=function(b){if(!b){return""}b=b.substring(b.lastIndexOf("/")+1,b.length).split("?")[0];if(b.lastIndexOf(".")>-1){return b.substr(b.lastIndexOf(".")+1,b.length).toLowerCase()}};a.stringToColor=function(b){b=b.replace(/(#|0x)?([0-9A-F]{3,6})$/gi,"$2");if(b.length==3){b=b.charAt(0)+b.charAt(0)+b.charAt(1)+b.charAt(1)+b.charAt(2)+b.charAt(2)}return parseInt(b,16)}})(jwplayer.utils);(function(a){a.events={COMPLETE:"COMPLETE",ERROR:"ERROR",API_READY:"jwplayerAPIReady",JWPLAYER_READY:"jwplayerReady",JWPLAYER_FULLSCREEN:"jwplayerFullscreen",JWPLAYER_RESIZE:"jwplayerResize",JWPLAYER_ERROR:"jwplayerError",JWPLAYER_MEDIA_BEFOREPLAY:"jwplayerMediaBeforePlay",JWPLAYER_MEDIA_BEFORECOMPLETE:"jwplayerMediaBeforeComplete",JWPLAYER_COMPONENT_SHOW:"jwplayerComponentShow",JWPLAYER_COMPONENT_HIDE:"jwplayerComponentHide",JWPLAYER_MEDIA_BUFFER:"jwplayerMediaBuffer",JWPLAYER_MEDIA_BUFFER_FULL:"jwplayerMediaBufferFull",JWPLAYER_MEDIA_ERROR:"jwplayerMediaError",JWPLAYER_MEDIA_LOADED:"jwplayerMediaLoaded",JWPLAYER_MEDIA_COMPLETE:"jwplayerMediaComplete",JWPLAYER_MEDIA_SEEK:"jwplayerMediaSeek",JWPLAYER_MEDIA_TIME:"jwplayerMediaTime",JWPLAYER_MEDIA_VOLUME:"jwplayerMediaVolume",JWPLAYER_MEDIA_META:"jwplayerMediaMeta",JWPLAYER_MEDIA_MUTE:"jwplayerMediaMute",JWPLAYER_MEDIA_LEVELS:"jwplayerMediaLevels",JWPLAYER_MEDIA_LEVEL_CHANGED:"jwplayerMediaLevelChanged",JWPLAYER_PLAYER_STATE:"jwplayerPlayerState",state:{BUFFERING:"BUFFERING",IDLE:"IDLE",PAUSED:"PAUSED",PLAYING:"PLAYING",COMPLETED:"COMPLETED"},JWPLAYER_PLAYLIST_LOADED:"jwplayerPlaylistLoaded",JWPLAYER_PLAYLIST_ITEM:"jwplayerPlaylistItem",JWPLAYER_DISPLAY_CLICK:"jwplayerViewClick",JWPLAYER_INSTREAM_CLICK:"jwplayerInstreamClicked",JWPLAYER_INSTREAM_DESTROYED:"jwplayerInstreamDestroyed"}})(jwplayer);(function(a){var b=jwplayer.utils;a.eventdispatcher=function(h,c){var e=h,g=c,f,d;this.resetEventListeners=function(){f={};d=[]};this.resetEventListeners();this.addEventListener=function(i,l,k){try{if(!b.exists(f[i])){f[i]=[]}if(b.typeOf(l)=="string"){l=(new Function("return "+l))()}f[i].push({listener:l,count:k})}catch(j){b.log("error",j)}return false};this.removeEventListener=function(j,l){if(!f[j]){return}try{for(var i=0;i<f[j].length;i++){if(f[j][i].listener.toString()==l.toString()){f[j].splice(i,1);break}}}catch(k){b.log("error",k)}return false};this.addGlobalListener=function(k,j){try{if(b.typeOf(k)=="string"){k=(new Function("return "+k))()}d.push({listener:k,count:j})}catch(i){b.log("error",i)}return false};this.removeGlobalListener=function(k){if(!k){return}try{for(var i=0;i<d.length;i++){if(d[i].listener.toString()==k.toString()){d.splice(i,1);break}}}catch(j){b.log("error",j)}return false};this.sendEvent=function(k,m){if(!b.exists(m)){m={}}b.extend(m,{id:e,version:jwplayer.version,type:k});if(g){b.log(k,m)}if(b.typeOf(f[k])!="undefined"){for(var j=0;j<f[k].length;j++){try{f[k][j].listener(m)}catch(l){b.log("There was an error while handling a listener: "+l.toString(),f[k][j].listener)}if(f[k][j]){if(f[k][j].count===1){delete f[k][j]}else{if(f[k][j].count>0){f[k][j].count=f[k][j].count-1}}}}}var i;for(i=0;i<d.length;i++){try{d[i].listener(m)}catch(l){b.log("There was an error while handling a listener: "+l.toString(),d[i].listener)}if(d[i]){if(d[i].count===1){delete d[i]}else{if(d[i].count>0){d[i].count=d[i].count-1}}}}}}})(jwplayer.events);(function(a){var c={};var b={};a.plugins=function(){};a.plugins.loadPlugins=function(e,d){b[e]=new a.plugins.pluginloader(new a.plugins.model(c),d);return b[e]};a.plugins.registerPlugin=function(h,f,e){var d=a.utils.getPluginName(h);if(c[d]){c[d].registerPlugin(h,f,e)}else{a.utils.log("A plugin ("+h+") was registered with the player that was not loaded. Please check your configuration.");for(var g in b){b[g].pluginFailed()}}}})(jwplayer);(function(a){a.plugins.model=function(b){this.addPlugin=function(c){var d=a.utils.getPluginName(c);if(!b[d]){b[d]=new a.plugins.plugin(c)}return b[d]}}})(jwplayer);(function(b){var a=jwplayer.utils,c=jwplayer.events,d="undefined";b.pluginmodes={FLASH:0,JAVASCRIPT:1,HYBRID:2};b.plugin=function(e){var g="http://plugins.longtailvideo.com",l=a.loaderstatus.NEW,m,k,n;var f=new c.eventdispatcher();a.extend(this,f);function h(){switch(a.getPluginPathType(e)){case a.pluginPathType.ABSOLUTE:return e;case a.pluginPathType.RELATIVE:return a.getAbsolutePath(e,window.location.href);case a.pluginPathType.CDN:var q=a.getPluginName(e);var p=a.getPluginVersion(e);var o=(window.location.href.indexOf("https://")==0)?g.replace("http://","https://secure"):g;return o+"/"+jwplayer.version.split(".")[0]+"/"+q+"/"+q+(p!==""?("-"+p):"")+".js"}}function j(o){n=setTimeout(function(){l=a.loaderstatus.COMPLETE;f.sendEvent(c.COMPLETE)},1000)}function i(o){l=a.loaderstatus.ERROR;f.sendEvent(c.ERROR)}this.load=function(){if(l==a.loaderstatus.NEW){if(e.lastIndexOf(".swf")>0){m=e;l=a.loaderstatus.COMPLETE;f.sendEvent(c.COMPLETE);return}l=a.loaderstatus.LOADING;var o=new a.scriptloader(h());o.addEventListener(c.COMPLETE,j);o.addEventListener(c.ERROR,i);o.load()}};this.registerPlugin=function(q,p,o){if(n){clearTimeout(n);n=undefined}if(p&&o){m=o;k=p}else{if(typeof p=="string"){m=p}else{if(typeof p=="function"){k=p}else{if(!p&&!o){m=q}}}}l=a.loaderstatus.COMPLETE;f.sendEvent(c.COMPLETE)};this.getStatus=function(){return l};this.getPluginName=function(){return a.getPluginName(e)};this.getFlashPath=function(){if(m){switch(a.getPluginPathType(m)){case a.pluginPathType.ABSOLUTE:return m;case a.pluginPathType.RELATIVE:if(e.lastIndexOf(".swf")>0){return a.getAbsolutePath(m,window.location.href)}return a.getAbsolutePath(m,h());case a.pluginPathType.CDN:if(m.indexOf("-")>-1){return m+"h"}return m+"-h"}}return null};this.getJS=function(){return k};this.getPluginmode=function(){if(typeof m!=d&&typeof k!=d){return b.pluginmodes.HYBRID}else{if(typeof m!=d){return b.pluginmodes.FLASH}else{if(typeof k!=d){return b.pluginmodes.JAVASCRIPT}}}};this.getNewInstance=function(p,o,q){return new k(p,o,q)};this.getURL=function(){return e}}})(jwplayer.plugins);(function(b){var a=b.utils,c=b.events;b.plugins.pluginloader=function(j,h){var i={},n=a.loaderstatus.NEW,g=false,d=false,l=false,e=new c.eventdispatcher();a.extend(this,e);function f(){if(l){e.sendEvent(c.ERROR)}else{if(!d){d=true;n=a.loaderstatus.COMPLETE;e.sendEvent(c.COMPLETE)}}}function m(){if(!d){var p=0;for(plugin in i){var o=i[plugin].getStatus();if(o==a.loaderstatus.LOADING||o==a.loaderstatus.NEW){p++}}if(p==0){f()}}}this.setupPlugins=function(q,o,v){var p={length:0,plugins:{}};var s={length:0,plugins:{}};for(var r in i){var t=i[r].getPluginName();if(i[r].getFlashPath()){p.plugins[i[r].getFlashPath()]=o.plugins[r];p.plugins[i[r].getFlashPath()].pluginmode=i[r].getPluginmode();p.length++}if(i[r].getJS()){var u=document.createElement("div");u.id=q.id+"_"+t;u.style.position="absolute";u.style.zIndex=s.length+10;s.plugins[t]=i[r].getNewInstance(q,o.plugins[r],u);s.length++;q.onReady(v(s.plugins[t],u,true));q.onResize(v(s.plugins[t],u))}}q.plugins=s.plugins;return p};this.load=function(){if(a.typeOf(h)!="object"){m();return}n=a.loaderstatus.LOADING;g=true;for(var o in h){if(a.exists(o)){i[o]=j.addPlugin(o);i[o].addEventListener(c.COMPLETE,m);i[o].addEventListener(c.ERROR,k)}}for(o in i){i[o].load()}g=false;m()};var k=this.pluginFailed=function(){if(!l){l=true;f()}};this.getStatus=function(){return n}}})(jwplayer);(function(a){a.playlist=function(c){var d=[];if(a.utils.typeOf(c)=="array"){for(var b=0;b<c.length;b++){d.push(new a.playlist.item(c[b]))}}else{d.push(new a.playlist.item(c))}return d}})(jwplayer);(function(b){var a=b.item=function(d){var c=jwplayer.utils.extend({},a.defaults,d);if(c.sources.length==0){c.sources=[new b.source(c)]}for(var e=0;e<c.sources.length;e++){c.sources[e]=new b.source(c.sources[e])}return c};a.defaults={description:"",image:"",mediaid:"",title:"",duration:-1,sources:[]}})(jwplayer.playlist);(function(d){var b=undefined,a=jwplayer.utils,c={file:b,width:b,label:b,bitrate:b,type:b};d.source=function(f){var e=a.extend({},c);for(var g in c){if(a.exists(f[g])){e[g]=f[g];delete f[g]}}if(e.type&&e.type.indexOf("/")>0){e.type=a.extensionmap.mimeType(e.type)}return e}})(jwplayer.playlist);(function(b){var a=b.utils,c=b.events;var d=b.embed=function(o){var l=new d.config(o.config),h,j="Error loading player: ",g=b.plugins.loadPlugins(o.id,l.plugins);l.id=o.id;h=document.getElementById(o.id);function i(r,q){for(var p in q){if(typeof r[p]=="function"){(r[p]).call(r,q[p])}}}function e(){if(a.typeOf(l.playlist)=="array"&&l.playlist.length<2){if(l.playlist.length==0||!l.playlist[0].sources||l.playlist[0].sources.length==0){m();return}}if(g.getStatus()==a.loaderstatus.COMPLETE){for(var r=0;r<l.modes.length;r++){if(l.modes[r].type&&d[l.modes[r].type]){var s=l.modes[r].config;var p=a.extend({},s?d.config.addConfig(l,s):l);var q=new d[l.modes[r].type](h,l.modes[r],p,g,o);if(q.supportsConfig()){q.addEventListener(c.ERROR,f);q.embed();i(o,p.events);return o}}}if(l.fallback){a.log("No suitable players found and fallback enabled");new d.download(h,l,m)}else{a.log("No suitable players found and fallback disabled")}}}function f(p){n(h,j+p.message)}function k(p){n(h,j+"Could not load plugins")}function m(){n(h,j+"No media sources found")}function n(p,r){if(!l.fallback){return}var q=p.style;q.backgroundColor="#000";q.color="#FFF";q.width=a.styleDimension(l.width);q.height=a.styleDimension(l.height);q.display="table";q.padding="50px";var t=document.createElement("p"),s=t.style;s.verticalAlign="middle";s.textAlign="center";s.display="table-cell";s.font="15px/20px Arial, Helvetica, sans-serif";t.innerHTML=r.replace(":",":<br>");p.innerHTML="";p.appendChild(t)}b.embed.errorScreen=n;g.addEventListener(c.COMPLETE,e);g.addEventListener(c.ERROR,k);g.load();return o}})(jwplayer);(function(d){var a=d.utils,h=d.embed,b=d.playlist.item,f=undefined;var c=h.config=function(j){function m(q,p,o){for(var n=0;n<q.length;n++){var r=q[n].type;if(!q[n].src){q[n].src=o[r]?o[r]:p+"jwplayer."+r+(r=="flash"?".swf":".js")}}}var l={fallback:true,height:300,primary:"html5",width:400,base:f},i={html5:{type:"html5"},flash:{type:"flash"}},k=a.extend(l,j);if(!k.base){k.base=a.getScriptPath("jwplayer.js")}if(!k.modes){k.modes=(k.primary=="flash")?[i.flash,i.html5]:[i.html5,i.flash]}m(k.modes,k.base,{html5:k.html5player,flash:k.flashplayer});e(k);return k};c.addConfig=function(i,j){e(j);return a.extend(i,j)};function e(l){if(!l.playlist){var n={};for(var k in b.defaults){g(l,n,k)}if(!l.sources){if(l.levels){n.sources=l.levels;delete l.levels}else{var j={};g(l,j,"file");g(l,j,"type");n.sources=j.file?[j]:[]}}l.playlist=[n]}else{for(var m=0;m<l.playlist.length;m++){l.playlist[m]=new b(l.playlist[m])}}}function g(k,i,j){if(a.exists(k[j])){i[j]=k[j];delete k[j]}}})(jwplayer);(function(d){var f=d.embed,i=d.utils,h=document,g="pointer",c="none",a="block",e="100%",b="absolute";f.download=function(m,x,k){var p=i.extend({},x),t,n=p.width?p.width:480,q=p.height?p.height:320,y,r,j=x.logo?x.logo:{prefix:"http://l.longtailvideo.com/download/",file:"logo.png",margin:10};function w(){if(p.playlist&&p.playlist.length){var B,D,A;for(var z=0;z<p.playlist[0].sources.length;z++){var C=p.playlist[0].sources[z];if(C.file){if(("mp4,mp4,flv,webm,aac,mp3,vorbis").split().indexOf(C.type)>-1){B=C.file;D=C.image;continue}else{if(i.isYouTube(C.file)){A=C.file}}}}}else{return}if(B){y=B;r=D;if(j.prefix){j.prefix+=d.version.split(/\W/).splice(0,2).join("/")+"/"}s();o()}else{if(A){l(A)}else{k()}}}function s(){if(m){t=u("a","display",m);u("div","iconbackground",t);u("div","icon",t);u("div","logo",t);if(y){t.setAttribute("href",i.getAbsolutePath(y))}}}function v(z,B){var C=h.querySelectorAll(z);for(var A=0;A<C.length;A++){for(var D in B){C[A].style[D]=B[D]}}}function o(){var z="#"+m.id+" .jwdownload";v(z+"display",{width:i.styleDimension(n),height:i.styleDimension(q),background:"black center no-repeat "+(r?"url("+r+")":""),backgroundSize:"contain",position:b,border:c,display:a});v(z+"display div",{position:b,width:e,height:e});v(z+"logo",{bottom:j.margin+"px",left:j.margin+"px",background:"bottom left no-repeat url("+j.prefix+j.file+")"});v(z+"icon",{background:"center no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALdJREFUeNrs18ENgjAYhmFouDOCcQJGcARHgE10BDcgTOIosAGwQOuPwaQeuFRi2p/3Sb6EC5L3QCxZBgAAAOCorLW1zMn65TrlkH4NcV7QNcUQt7Gn7KIhxA+qNIR81spOGkL8oFJDyLJRdosqKDDkK+iX5+d7huzwM40xptMQMkjIOeRGo+VkEVvIPfTGIpKASfYIfT9iCHkHrBEzf4gcUQ56aEzuGK/mw0rHpy4AAACAf3kJMACBxjAQNRckhwAAAABJRU5ErkJggg==)"});v(z+"iconbackground",{background:"center no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEpJREFUeNrszwENADAIA7DhX8ENoBMZ5KR10EryckCJiIiIiIiIiIiIiIiIiIiIiIh8GmkRERERERERERERERERERERERGRHSPAAPlXH1phYpYaAAAAAElFTkSuQmCC)"})}function u(z,C,B){var A=h.createElement(z);if(C){A.className="jwdownload"+C}if(B){B.appendChild(A)}return A}function l(z){var A=u("embed","",m);A.src="http://www.youtube.com/v/"+(/v[=\/](\w*)|\/(\w+)$|^(\w+)$/i).exec(z).slice(1).join("");A.type="application/x-shockwave-flash";A.width=n;A.height=q}w()}})(jwplayer);(function(b){var a=b.utils,c=b.events;b.embed.flash=function(k,l,p,j,n){var f=new b.events.eventdispatcher(),g=a.flashVersion();a.extend(this,f);function q(s,r,t){var u=document.createElement("param");u.setAttribute("name",r);u.setAttribute("value",t);s.appendChild(u)}function o(s,t,r){return function(u){if(r){document.getElementById(n.id+"_wrapper").appendChild(t)}var v=document.getElementById(n.id).getPluginConfig("display");if(typeof s.resize=="function"){s.resize(v.width,v.height)}t.style.left=v.x;t.style.top=v.h}}function i(t){if(!t){return{}}var v={};for(var s in t){var r=t[s];for(var u in r){v[s+"."+u]=r[u]}}return v}function m(u,t){if(u[t]){var w=u[t];for(var s in w){var r=w[s];if(typeof r=="string"){if(!u[s]){u[s]=r}}else{for(var v in r){if(!u[s+"."+v]){u[s+"."+v]=r[v]}}}}delete u[t]}}function e(u){if(!u){return{}}var x={},w=[];for(var r in u){var t=a.getPluginName(r);var s=u[r];w.push(r);for(var v in s){x[t+"."+v]=s[v]}}x.plugins=w.join(",");return x}function h(t){var r="";for(var s in t){if(typeof(t[s])=="object"){r+=s+"="+encodeURIComponent("[[JSON]]"+a.jsonToString(t[s]))+"&"}else{r+=s+"="+encodeURIComponent(t[s])+"&"}}return r.substring(0,r.length-1)}this.embed=function(){p.id=n.id;if(g<10){f.sendEvent(c.ERROR,{message:"Flash version must be 10.0 or greater"});return false}var D;var v=a.extend({},p);if(k.id+"_wrapper"==k.parentNode.id){D=document.getElementById(k.id+"_wrapper")}else{D=document.createElement("div");D.id=k.id+"_wrapper";D.style.position="relative";D.style.width=a.styleDimension(v.width);D.style.height=a.styleDimension(v.height);k.parentNode.replaceChild(D,k);D.appendChild(k)}var r=j.setupPlugins(n,v,o);if(r.length>0){a.extend(v,e(r.plugins))}else{delete v.plugins}var w=["height","width","modes","events","primary","base","fallback"];for(var z=0;z<w.length;z++){delete v[w[z]]}var t="opaque";if(v.wmode){t=v.wmode}m(v,"components");m(v,"providers");if(typeof v["dock.position"]!="undefined"){if(v["dock.position"].toString().toLowerCase()=="false"){v.dock=v["dock.position"];delete v["dock.position"]}}var B=a.getCookies();for(var s in B){if(typeof(v[s])=="undefined"){v[s]=B[s]}}var C="#000000",y,u=h(v);if(a.isIE()){var A='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" bgcolor="'+C+'" width="100%" height="100%" id="'+k.id+'" name="'+k.id+'" tabindex=0"">';A+='<param name="movie" value="'+l.src+'">';A+='<param name="allowfullscreen" value="true">';A+='<param name="allowscriptaccess" value="always">';A+='<param name="seamlesstabbing" value="true">';A+='<param name="wmode" value="'+t+'">';A+='<param name="flashvars" value="'+u+'">';A+="</object>";k.outerHTML=A;y=document.getElementById(k.id)}else{var x=document.createElement("object");x.setAttribute("type","application/x-shockwave-flash");x.setAttribute("data",l.src);x.setAttribute("width","100%");x.setAttribute("height","100%");x.setAttribute("bgcolor","#000000");x.setAttribute("id",k.id);x.setAttribute("name",k.id);x.setAttribute("tabindex",0);q(x,"allowfullscreen","true");q(x,"allowscriptaccess","always");q(x,"seamlesstabbing","true");q(x,"wmode",t);q(x,"flashvars",u);k.parentNode.replaceChild(x,k);y=x}n.container=y;n.setPlayer(y,"flash")};this.supportsConfig=function(){if(g){if(p){try{var t=p.playlist[0],r=t.sources;if(typeof r=="undefined"){return true}else{for(var s=0;s<r.length;s++){if(r[s].file&&d(r[s].file,r[s].type)){return true}}}}catch(u){return false}}else{return true}}return false};function d(s,t){var r=["mp4","flv","aac","mp3","hls","rtmp","youtube"];if(t&&(r.toString().indexOf(t)<0)){return true}var u=a.extension(s);if(!t){t=u}if(!t){return true}if(a.exists(a.extensionmap[t])){return a.exists(a.extensionmap[t].flash)}return false}}})(jwplayer);(function(c){var a=c.utils,b=a.extensionmap,d=c.events;c.embed.html5=function(g,h,o,f,k){var j=this,e=new d.eventdispatcher();a.extend(j,e);function l(q,r,p){return function(s){var t=document.getElementById(g.id+"_displayarea");if(p){t.appendChild(r)}if(typeof q.resize=="function"){q.resize(t.clientWidth,t.clientHeight)}r.left=t.style.left;r.top=t.style.top}}j.embed=function(){if(c.html5){f.setupPlugins(k,o,l);g.innerHTML="";var p=c.utils.extend({},o);if(p.skin&&p.skin.toLowerCase().indexOf(".zip")>0){p.skin=p.skin.replace(/\.zip/i,".xml")}var q=new c.html5.player(p);k.container=document.getElementById(k.id);k.setPlayer(q,"html5")}else{var r=new a.scriptloader(h.src);r.addEventListener(d.ERROR,i);r.addEventListener(d.COMPLETE,j.embed);r.load()}};function i(p){j.sendEvent(p.type,{message:"HTML5 player not found"})}j.supportsConfig=function(){if(!!c.vid.canPlayType){try{if(a.typeOf(o.playlist)=="string"){return true}else{var p=o.playlist[0].sources;for(var r=0;r<p.length;r++){var q=p[r].file,s=p[r].type;if(n(q,s)){return true}}}}catch(t){return false}}return false};function n(p,q){if(navigator.userAgent.match(/BlackBerry/i)!==null){return false}var r=b[q?q:a.extension(p)];if(!r){return false}return m(r.html5)}function m(p){var q=c.vid;if(!p){return true}if(q.canPlayType(p)){return true}else{if(p=="audio/mp3"&&navigator.userAgent.match(/safari/i)){return q.canPlayType("audio/mpeg")}else{return false}}}}})(jwplayer);(function(d){var c=[],a=d.utils,e=d.events,b=e.state;var f=d.api=function(u){var y=this,g={},m={},C={},p=[],h=undefined,F=false,q=[],A=undefined,t={},o={};y.container=u;y.id=u.id;y.getBuffer=function(){return x("jwGetBuffer")};y.getContainer=function(){return y.container};function i(I,H){return function(N,J,K,L){if(I.renderingMode=="flash"||I.renderingMode=="html5"){var M;if(J){o[N]=J;M="jwplayer('"+I.id+"').callback('"+N+"')"}else{if(!J&&o[N]){delete o[N]}}h.jwDockSetButton(N,M,K,L)}return H}}y.getPlugin=function(H){var I={};if(H=="dock"){return a.extend(I,{setButton:i(y,I),show:function(){x("jwDockShow");return I},hide:function(){x("jwDockHide");return I},onShow:function(J){D("dock",e.JWPLAYER_COMPONENT_SHOW,J);return I},onHide:function(J){D("dock",e.JWPLAYER_COMPONENT_HIDE,J);return I}})}else{if(H=="controlbar"){return a.extend(I,{show:function(){__callInternal("jwControlbarShow");return I},hide:function(){__callInternal("jwControlbarHide");return I},onShow:function(J){D("controlbar",e.JWPLAYER_COMPONENT_SHOW,J);return I},onHide:function(J){D("controlbar",e.JWPLAYER_COMPONENT_HIDE,J);return I}})}else{if(H=="display"){return a.extend(I,{show:function(){__callInternal("jwDisplayShow");return I},hide:function(){__callInternal("jwDisplayHide");return I},onShow:function(J){D("display",e.JWPLAYER_COMPONENT_SHOW,J);return I},onHide:function(J){D("display",e.JWPLAYER_COMPONENT_HIDE,J);return I}})}else{return y.plugins[H]}}}};y.callback=function(H){if(o[H]){return o[H]()}};y.getDuration=function(){return x("jwGetDuration")};y.getFullscreen=function(){return x("jwGetFullscreen")};y.getStretching=function(){return x("jwGetStretching")};y.getHeight=function(){return x("jwGetHeight")};y.getLockState=function(){return x("jwGetLockState")};y.getMeta=function(){return y.getItemMeta()};y.getMute=function(){return x("jwGetMute")};y.getPlaylist=function(){var I=x("jwGetPlaylist");if(y.renderingMode=="flash"){a.deepReplaceKeyName(I,["__dot__","__spc__","__dsh__"],["."," ","-"])}for(var H=0;H<I.length;H++){if(!a.exists(I[H].index)){I[H].index=H}}return I};y.getPlaylistItem=function(H){if(!a.exists(H)){H=y.getCurrentItem()}return y.getPlaylist()[H]};y.getPosition=function(){return x("jwGetPosition")};y.getRenderingMode=function(){return y.renderingMode};y.getState=function(){return x("jwGetState")};y.getVolume=function(){return x("jwGetVolume")};y.getWidth=function(){return x("jwGetWidth")};y.setFullscreen=function(H){if(!a.exists(H)){x("jwSetFullscreen",!x("jwGetFullscreen"))}else{x("jwSetFullscreen",H)}return y};y.setStretching=function(H){x("jwSetStretching",H);return y};y.setMute=function(H){if(!a.exists(H)){x("jwSetMute",!x("jwGetMute"))}else{x("jwSetMute",H)}return y};y.lock=function(){return y};y.unlock=function(){return y};y.load=function(H){x("jwLoad",H);return y};y.playlistItem=function(H){x("jwPlaylistItem",H);return y};y.playlistPrev=function(){x("jwPlaylistPrev");return y};y.playlistNext=function(){x("jwPlaylistNext");return y};y.resize=function(I,H){if(y.renderingMode=="html5"){h.jwResize(I,H)}else{var J=document.getElementById(y.id+"_wrapper");if(J){J.style.width=a.styleDimension(I);J.style.height=a.styleDimension(H)}}return y};y.play=function(H){if(typeof H=="undefined"){H=y.getState();if(H==b.PLAYING||H==b.BUFFERING){x("jwPause")}else{x("jwPlay")}}else{x("jwPlay",H)}return y};y.pause=function(H){if(typeof H=="undefined"){H=y.getState();if(H==b.PLAYING||H==b.BUFFERING){x("jwPause")}else{x("jwPlay")}}else{x("jwPause",H)}return y};y.stop=function(){x("jwStop");return y};y.seek=function(H){x("jwSeek",H);return y};y.setVolume=function(H){x("jwSetVolume",H);return y};y.loadInstream=function(I,H){A=new f.instream(this,h,I,H);return A};y.getQualityLevels=function(){return x("jwGetQualityLevels")};y.getCurrentQuality=function(){return x("jwGetCurrentQuality")};y.setCurrentQuality=function(H){x("jwSetCurrentQuality",H)};var s={onBufferChange:e.JWPLAYER_MEDIA_BUFFER,onBufferFull:e.JWPLAYER_MEDIA_BUFFER_FULL,onError:e.JWPLAYER_ERROR,onFullscreen:e.JWPLAYER_FULLSCREEN,onMeta:e.JWPLAYER_MEDIA_META,onMute:e.JWPLAYER_MEDIA_MUTE,onPlaylist:e.JWPLAYER_PLAYLIST_LOADED,onPlaylistItem:e.JWPLAYER_PLAYLIST_ITEM,onReady:e.API_READY,onResize:e.JWPLAYER_RESIZE,onComplete:e.JWPLAYER_MEDIA_COMPLETE,onSeek:e.JWPLAYER_MEDIA_SEEK,onTime:e.JWPLAYER_MEDIA_TIME,onVolume:e.JWPLAYER_MEDIA_VOLUME,onBeforePlay:e.JWPLAYER_MEDIA_BEFOREPLAY,onBeforeComplete:e.JWPLAYER_MEDIA_BEFORECOMPLETE,onDisplayClick:e.JWPLAYER_DISPLAY_CLICK,onQualityLevels:e.JWPLAYER_MEDIA_LEVELS,onQualityChange:e.JWPLAYER_MEDIA_LEVEL_CHANGED};for(var z in s){y[z]=E(s[z],B)}var w={onBuffer:b.BUFFERING,onPause:b.PAUSED,onPlay:b.PLAYING,onIdle:b.IDLE};for(var k in w){y[k]=E(w[k],r)}function E(H,I){return function(J){return I(H,J)}}y.remove=function(){if(!F){throw"Cannot call remove() before player is ready";return}n(this)};function n(H){q=[];f.destroyPlayer(H.id)}y.setup=function(H){if(d.embed){n(y);if(a.clearCss){a.clearCss("#"+y.id)}var I=d(y.id);I.config=H;return new d.embed(I)}return y};y.registerPlugin=function(J,I,H){d.plugins.registerPlugin(J,I,H)};y.setPlayer=function(H,I){h=H;y.renderingMode=I};y.detachMedia=function(){if(y.renderingMode=="html5"){return x("jwDetachMedia")}};y.attachMedia=function(){if(y.renderingMode=="html5"){return x("jwAttachMedia")}};function r(H,I){if(!m[H]){m[H]=[];B(e.JWPLAYER_PLAYER_STATE,G(H))}m[H].push(I);return y}function G(H){return function(J){var I=J.newstate,L=J.oldstate;if(I==H){var K=m[I];if(K){for(var M=0;M<K.length;M++){if(typeof K[M]=="function"){K[M].call(this,{oldstate:L,newstate:I})}}}}}}function D(H,I,J){if(!C[H]){C[H]={}}if(!C[H][I]){C[H][I]=[];B(I,l(H,I))}C[H][I].push(J);return y}function l(H,I){return function(K){if(H==K.component){var J=C[H][I];if(J){for(var L=0;L<J.length;L++){if(typeof J[L]=="function"){J[L].call(this,K)}}}}}}function j(H,I){try{H.jwAddEventListener(I,'function(dat) { jwplayer("'+y.id+'").dispatchEvent("'+I+'", dat); }')}catch(J){a.log("Could not add internal listener")}}function B(H,I){if(!g[H]){g[H]=[];if(h&&F){j(h,H)}}g[H].push(I);return y}y.dispatchEvent=function(J){if(g[J]){var I=a.translateEventResponse(J,arguments[1]);for(var H=0;H<g[J].length;H++){if(typeof g[J][H]=="function"){g[J][H].call(this,I)}}}};y.dispatchInstreamEvent=function(H){if(A){A.dispatchEvent(H,arguments)}};function x(){if(F){var J=arguments[0],H=[];for(var I=1;I<arguments.length;I++){H.push(arguments[I])}if(typeof h!="undefined"&&typeof h[J]=="function"){if(H.length==2){return(h[J])(H[0],H[1])}else{if(H.length==1){return(h[J])(H[0])}else{return(h[J])()}}}return null}else{q.push(arguments)}}y.playerReady=function(I){F=true;if(!h){y.setPlayer(document.getElementById(I.id))}y.container=document.getElementById(y.id);for(var H in g){j(h,H)}B(e.JWPLAYER_PLAYLIST_ITEM,function(J){t={}});B(e.JWPLAYER_MEDIA_META,function(J){a.extend(t,J.metadata)});y.dispatchEvent(e.API_READY);while(q.length>0){x.apply(this,q.shift())}};y.getItemMeta=function(){return t};y.getCurrentItem=function(){return x("jwGetPlaylistIndex")};function v(J,L,K){var H=[];if(!L){L=0}if(!K){K=J.length-1}for(var I=L;I<=K;I++){H.push(J[I])}return H}return y};f.selectPlayer=function(h){var g;if(!a.exists(h)){h=0}if(h.nodeType){g=h}else{if(typeof h=="string"){g=document.getElementById(h)}}if(g){var i=f.playerById(g.id);if(i){return i}else{return f.addPlayer(new f(g))}}else{if(typeof h=="number"){return c[h]}}return null};f.playerById=function(h){for(var g=0;g<c.length;g++){if(c[g].id==h){return c[g]}}return null};f.addPlayer=function(g){for(var h=0;h<c.length;h++){if(c[h]==g){return g}}c.push(g);return g};f.destroyPlayer=function(i){var h=-1;for(var k=0;k<c.length;k++){if(c[k].id==i){h=k;continue}}if(h>=0){var l=c[h].id,g=document.getElementById(l+"_wrapper");if(!g){g=document.getElementById(l)}if(g){var j=document.createElement("div");j.id=l;g.parentNode.replaceChild(j,g)}c.splice(h,1)}return null}})(jwplayer);var _userPlayerReady=(typeof playerReady=="function")?playerReady:undefined;playerReady=function(b){var a=jwplayer.api.playerById(b.id);if(a){a.playerReady(b)}else{jwplayer.api.selectPlayer(b.id).playerReady(b)}if(_userPlayerReady){_userPlayerReady.call(this,b)}};(function(b){var c=b.events,a=c.state;b.api.instream=function(e,k,o,r){var j=e,d=k,i=o,l=r,g={},q={};function h(){j.callInternal("jwLoadInstream",o,r)}function n(s,t){d.jwInstreamAddEventListener(t,'function(dat) { jwplayer("'+j.id+'").dispatchInstreamEvent("'+t+'", dat); }')}function f(s,t){if(!g[s]){g[s]=[];n(d,s)}g[s].push(t);return this}function p(s,t){if(!q[s]){q[s]=[];f(c.JWPLAYER_PLAYER_STATE,m(s))}q[s].push(t);return this}function m(s){return function(u){var t=u.newstate,w=u.oldstate;if(t==s){var v=q[t];if(v){for(var x=0;x<v.length;x++){if(typeof v[x]=="function"){v[x].call(this,{oldstate:w,newstate:t,type:u.type})}}}}}}this.dispatchEvent=function(v,u){if(g[v]){var t=_utils.translateEventResponse(v,u[1]);for(var s=0;s<g[v].length;s++){if(typeof g[v][s]=="function"){g[v][s].call(this,t)}}}};this.onError=function(s){return f(c.JWPLAYER_ERROR,s)};this.onFullscreen=function(s){return f(c.JWPLAYER_FULLSCREEN,s)};this.onMeta=function(s){return f(c.JWPLAYER_MEDIA_META,s)};this.onMute=function(s){return f(c.JWPLAYER_MEDIA_MUTE,s)};this.onComplete=function(s){return f(c.JWPLAYER_MEDIA_COMPLETE,s)};this.onSeek=function(s){return f(c.JWPLAYER_MEDIA_SEEK,s)};this.onTime=function(s){return f(c.JWPLAYER_MEDIA_TIME,s)};this.onVolume=function(s){return f(c.JWPLAYER_MEDIA_VOLUME,s)};this.onBuffer=function(s){return p(a.BUFFERING,s)};this.onPause=function(s){return p(a.PAUSED,s)};this.onPlay=function(s){return p(a.PLAYING,s)};this.onIdle=function(s){return p(a.IDLE,s)};this.onInstreamClick=function(s){return f(c.JWPLAYER_INSTREAM_CLICK,s)};this.onInstreamDestroyed=function(s){return f(c.JWPLAYER_INSTREAM_DESTROYED,s)};this.play=function(s){d.jwInstreamPlay(s)};this.pause=function(s){d.jwInstreamPause(s)};this.seek=function(s){d.jwInstreamSeek(s)};this.destroy=function(){d.jwInstreamDestroy()};this.getState=function(){return d.jwInstreamGetState()};this.getDuration=function(){return d.jwInstreamGetDuration()};this.getPosition=function(){return d.jwInstreamGetPosition()};h()}})(jwplayer)}; -
branches/jw6/src/flash/com/longtailvideo/jwplayer/controller/Controller.as
r2217 r2234 19 19 import flash.events.ErrorEvent; 20 20 import flash.events.Event; 21 import flash.utils.setTimeout; 21 22 22 23 /** … … 245 246 _lockingResume = false; 246 247 _model.playlist.currentIndex = 0; 248 setTimeout(_model.playlistComplete, 10); 247 249 } else { 248 250 next(); 249 251 } 252 break; 253 case RepeatOptions.NONE: 254 setTimeout(_model.playlistComplete, 10); 250 255 break; 251 256 } -
branches/jw6/src/flash/com/longtailvideo/jwplayer/controller/PlayerSetup.as
r2217 r2234 73 73 74 74 tasker.queueTask(loadConfig, loadConfigComplete); 75 tasker.queueTask(loadSkin , loadSkinComplete);75 tasker.queueTask(loadSkin); 76 76 tasker.queueTask(setupMediaProviders); 77 77 tasker.queueTask(setupView); … … 132 132 skin = new PNGSkin(); 133 133 } else { 134 tasker.failure(new ErrorEvent(ErrorEvent.ERROR, false, false, "Skin could not be loaded: Invalid file type"));134 tasker.failure(new ErrorEvent(ErrorEvent.ERROR, false, false, "Skin could not be loaded: Skin not a valid file type")); 135 135 } 136 136 } else { … … 138 138 } 139 139 skin.addEventListener(ErrorEvent.ERROR, tasker.failure); 140 skin.addEventListener(Event.COMPLETE, tasker.success);140 skin.addEventListener(Event.COMPLETE, skinLoaded); 141 141 skin.load(confHash['skin']); 142 142 } 143 143 144 protected function loadSkinComplete(event:Event=null):void { 145 if (event) { 146 var skin:ISkin = event.target as ISkin; 147 skin.removeEventListener(Event.COMPLETE, tasker.success); 148 skin.removeEventListener(ErrorEvent.ERROR, tasker.failure); 149 skin.removeEventListener(ErrorEvent.ERROR, loadSkin); 150 151 var props:SkinProperties = skin.getSkinProperties(); 152 _model.config.setConfig(props); 153 _model.config.setConfig(confHash); 154 _view.skin = skin; 155 } else { 156 _model.config.setConfig(confHash); 157 } 144 protected function skinLoaded(event:Event=null):void { 145 var skin:ISkin = event.target as ISkin; 146 skin.removeEventListener(Event.COMPLETE, skinLoaded); 147 skin.removeEventListener(ErrorEvent.ERROR, tasker.failure); 148 skin.removeEventListener(ErrorEvent.ERROR, loadSkin); 149 150 if (!(skin is DefaultSkin)) { 151 var defaultSkin:ISkin = new DefaultSkin(); 152 defaultSkin.addEventListener(Event.COMPLETE, function(evt:Event):void { 153 for each (var component:String in defaultSkin.components) { 154 if (skin.components.indexOf(component) < 0) { 155 skin.overwriteComponent(component, defaultSkin.getSkinComponent(component)); 156 } 157 } 158 loadSkinComplete(skin); 159 }); 160 defaultSkin.load(); 161 } else { 162 loadSkinComplete(skin); 163 } 164 } 165 166 protected function loadSkinComplete(skin:ISkin):void { 167 var props:SkinProperties = skin.getSkinProperties(); 168 _model.config.setConfig(props); 169 _view.skin = skin; 170 _model.config.setConfig(confHash); 158 171 Logger.setConfig(_model.config); 172 tasker.success(); 159 173 } 160 174 -
branches/jw6/src/flash/com/longtailvideo/jwplayer/media/MediaProvider.as
r2218 r2234 406 406 } 407 407 408 protected function sendQualityEvent(type , levels:Array, quality:Number):void {408 protected function sendQualityEvent(type:String, levels:Array, quality:Number):void { 409 409 var qualityEvent:MediaEvent = new MediaEvent(type); 410 410 qualityEvent.levels = []; -
branches/jw6/src/flash/com/longtailvideo/jwplayer/model/Model.as
r2217 r2234 88 88 protected var _config:PlayerConfig; 89 89 protected var _playlist:IPlaylist; 90 91 90 protected var _fullscreen:Boolean = false; 92 93 91 protected var _currentMedia:IMediaProvider; 94 95 92 protected var _mediaSources:Object; 93 protected var _playlistComplete:Boolean = false; 96 94 97 95 /** Constructor **/ … … 122 120 */ 123 121 public function get state():String { 122 if (_playlistComplete) return PlayerState.COMPLETED; 124 123 return _currentMedia ? _currentMedia.state : PlayerState.IDLE; 125 124 } … … 216 215 // Translate media error into player error. 217 216 dispatchEvent(new PlayerEvent(PlayerEvent.JWPLAYER_ERROR, (evt as MediaEvent).message)); 217 } else if (evt is PlayerStateEvent && PlayerStateEvent(evt).newstate != PlayerState.COMPLETED) { 218 _playlistComplete = false; 218 219 } 219 220 dispatchEvent(evt); 220 221 } 222 } 223 224 public function playlistComplete():void { 225 _playlistComplete = true; 226 dispatchEvent(new PlayerStateEvent(PlayerStateEvent.JWPLAYER_PLAYER_STATE, 227 PlayerState.COMPLETED, 228 PlayerState.IDLE 229 )); 221 230 } 222 231 -
branches/jw6/src/flash/com/longtailvideo/jwplayer/model/PlaylistItem.as
r2218 r2234 168 168 return (typeMap(levelType(level)) == typeMap(_type)); 169 169 } else { 170 var lType = levelType(level);170 var lType:String = levelType(level); 171 171 if (lType) { 172 172 if (typeMap(lType)) { -
branches/jw6/src/flash/com/longtailvideo/jwplayer/player/PlayerVersion.as
r2220 r2234 3 3 4 4 public class PlayerVersion { 5 protected static var _version:String = '6.0.22 20';5 protected static var _version:String = '6.0.2234'; 6 6 7 7 public static function get version():String { -
branches/jw6/src/flash/com/longtailvideo/jwplayer/view/View.as
r2217 r2234 45 45 import flash.text.TextFieldAutoSize; 46 46 import flash.text.TextFormat; 47 import flash.text.TextFormatAlign; 47 48 import flash.ui.Keyboard; 48 49 import flash.utils.Timer; … … 242 243 } else { 243 244 var errorMessage:TextField = new TextField(); 244 errorMessage.defaultTextFormat = new TextFormat("_sans", 1 2, 0xffffff);245 errorMessage.text = errorMsg ;245 errorMessage.defaultTextFormat = new TextFormat("_sans", 15, 0xffffff, false, false, false, null, null, TextFormatAlign.CENTER); 246 errorMessage.text = errorMsg.replace(":", ":\n"); 246 247 errorMessage.width = RootReference.stage.stageWidth - 300; 247 errorMessage.wordWrap = true;248 248 errorMessage.height = errorMessage.textHeight + 10; 249 errorMessage.autoSize = TextFieldAutoSize.LEFT; 250 errorMessage.wordWrap = true; 249 errorMessage.autoSize = TextFieldAutoSize.CENTER; 251 250 252 251 errorMessage.x = (RootReference.stage.stageWidth - errorMessage.textWidth) / 2; … … 587 586 loadImage(_lastImage); 588 587 } 588 } else { 589 _image.visible = false; 589 590 } 590 591 } … … 592 593 593 594 protected function loadImage(url:String):void { 595 _image.visible = true; 594 596 _image.load(new URLRequest(url), new LoaderContext(true)); 595 597 } … … 643 645 switch (_model.state) { 644 646 case PlayerState.IDLE: 647 case PlayerState.COMPLETED: 645 648 imageDelay.start(); 646 649 break; -
branches/jw6/src/flash/com/longtailvideo/jwplayer/view/components/ControlbarComponent.as
r2217 r2234 1 // TODO: remove backgroundcolor 2 // TODO: remove buttonColor, blankButton 3 1 4 package com.longtailvideo.jwplayer.view.components { 2 5 import com.longtailvideo.jwplayer.events.ComponentEvent; -
branches/jw6/src/flash/com/longtailvideo/jwplayer/view/components/CoreComponent.as
r2192 r2234 90 90 91 91 protected function getConfigParam(param:String):* { 92 return player.config.pluginConfig(_name)[param ];92 return player.config.pluginConfig(_name)[param.toLowerCase()]; 93 93 } 94 94 95 95 protected function setConfigParam(param:String, value:*):void { 96 player.config.pluginConfig(_name)[param ] = value;96 player.config.pluginConfig(_name)[param.toLowerCase()] = value; 97 97 } 98 98 … … 108 108 return getConfigParam("fontcolor") ? new Color(String(getConfigParam("fontcolor"))) : null; 109 109 } 110 110 111 protected function get fontOverColor():Color { 112 return getConfigParam("fontovercolor") ? new Color(String(getConfigParam("fontovercolor"))) : null; 113 } 114 111 115 protected function get fontSize():Number { 112 116 return getConfigParam("fontsize") ? Number(getConfigParam("fontsize")) : 0; -
branches/jw6/src/flash/com/longtailvideo/jwplayer/view/components/DisplayComponent.as
r2198 r2234 1 1 package com.longtailvideo.jwplayer.view.components { 2 import com.longtailvideo.jwplayer.events.ComponentEvent; 3 import com.longtailvideo.jwplayer.events.MediaEvent; 4 import com.longtailvideo.jwplayer.events.PlayerEvent; 5 import com.longtailvideo.jwplayer.events.PlayerStateEvent; 6 import com.longtailvideo.jwplayer.events.PlaylistEvent; 7 import com.longtailvideo.jwplayer.events.ViewEvent; 8 import com.longtailvideo.jwplayer.player.IPlayer; 9 import com.longtailvideo.jwplayer.player.PlayerState; 10 import com.longtailvideo.jwplayer.utils.Draw; 11 import com.longtailvideo.jwplayer.utils.Strings; 12 import com.longtailvideo.jwplayer.view.interfaces.IDisplayComponent; 13 import com.longtailvideo.jwplayer.view.skins.PNGSkin; 2 import com.longtailvideo.jwplayer.events.*; 3 import com.longtailvideo.jwplayer.model.*; 4 import com.longtailvideo.jwplayer.player.*; 5 import com.longtailvideo.jwplayer.utils.*; 6 import com.longtailvideo.jwplayer.view.interfaces.*; 14 7 15 import flash.display.Bitmap; 16 import flash.display.DisplayObject; 17 import flash.display.MovieClip; 18 import flash.display.Sprite; 19 import flash.events.MouseEvent; 20 import flash.events.TimerEvent; 21 import flash.geom.ColorTransform; 22 import flash.geom.Rectangle; 23 import flash.net.URLRequest; 24 import flash.net.navigateToURL; 25 import flash.text.GridFitType; 26 import flash.text.TextField; 27 import flash.text.TextFormat; 28 import flash.text.TextFormatAlign; 29 import flash.utils.Timer; 30 import flash.utils.clearInterval; 31 import flash.utils.setInterval; 8 import flash.display.*; 9 import flash.events.*; 10 import flash.external.ExternalInterface; 11 import flash.geom.*; 12 import flash.net.*; 13 import flash.text.*; 14 import flash.utils.*; 32 15 33 16 /** … … 45 28 46 29 public class DisplayComponent extends CoreComponent implements IDisplayComponent { 47 protected var _icon:Display Object;30 protected var _icon:DisplayIcon; 48 31 protected var _iconArea:Rectangle; 49 32 protected var _background:MovieClip; 50 33 protected var _overlay:Sprite; 51 protected var _text:TextField;52 protected var _textBack:Sprite;53 34 protected var _icons:Object; 54 protected var _rotateInterval:Number;55 protected var _bufferIcon:Sprite;56 protected var _rotate:Boolean = true;57 35 protected var _youtubeMask:MovieClip; 58 59 protected var _bufferRotationTime:Number = 100;60 protected var _bufferRotationAngle:Number = 15;61 36 62 37 protected var _bufferStateTimer:Timer; 63 38 protected var _playStateTimer:Timer; 64 39 protected var _previousState:String; 65 40 protected var _textFormat:TextFormat; 41 protected var _textOverFormat:TextFormat; 42 43 protected var _errorState:Boolean = false; 44 45 /** Setting defaults **/ 46 protected var _bufferRotationTime:Number = 100; 47 protected var _bufferRotationAngle:Number = 15; 48 66 49 protected var _forced:String = ""; 67 50 … … 71 54 setupDisplayObjects(); 72 55 setupIcons(); 73 if (!isNaN(getConfigParam('bufferrotation'))) _bufferRotationAngle = Number(getConfigParam('bufferrotation')); 74 if (!isNaN(getConfigParam('bufferinterval'))) _bufferRotationTime = Number(getConfigParam('bufferinterval')); 56 57 // Override defaults 58 if (!isNaN(getConfigParam('bufferRotation'))) _bufferRotationAngle = Number(getConfigParam('bufferrotation')); 59 if (!isNaN(getConfigParam('bufferInterval'))) _bufferRotationTime = Number(getConfigParam('bufferinterval')); 75 60 76 61 _bufferStateTimer = new Timer(50, 1); … … 79 64 _playStateTimer = new Timer(50, 1); 80 65 _playStateTimer.addEventListener(TimerEvent.TIMER_COMPLETE, showPlayIcon); 66 81 67 } 82 68 … … 96 82 97 83 private function addListeners():void { 98 player.addEventListener(MediaEvent.JWPLAYER_MEDIA_MUTE, stateHandler);99 84 player.addEventListener(PlayerStateEvent.JWPLAYER_PLAYER_STATE, stateHandler); 100 85 player.addEventListener(PlayerEvent.JWPLAYER_ERROR, errorHandler); … … 117 102 addChildAt(_overlay, 1); 118 103 119 _textBack = new Sprite(); 120 _textBack.name = "textBackground"; 121 _textBack.graphics.beginFill(0, 0.8); 122 _textBack.graphics.drawRect(0, 0, 1, 1); 123 _textBack.visible = false; 124 _overlay.addChild(_textBack); 125 126 _text = new TextField(); 127 text.gridFitType = GridFitType.NONE; 128 text.defaultTextFormat = new TextFormat("_sans", null, 0xFFFFFF); 129 _overlay.addChild(text); 104 _textFormat = new TextFormat("_sans", fontSize ? fontSize : 15, fontColor ? fontColor.toString() : 0, (fontWeight == "bold")); 105 _textOverFormat = new TextFormat("_sans", fontSize ? fontSize : 15, fontOverColor ? fontOverColor.toString() : 0, (fontWeight == "bold")); 130 106 131 107 _youtubeMask = new MovieClip(); … … 137 113 setupIcon('buffer'); 138 114 setupIcon('play'); 139 setupIcon('mute'); 140 } 141 142 143 /** 144 * Takes in an icon from a PNG skin and rearranges its children so that it's centered around 0, 0 145 */ 146 protected function centerIcon(icon:Sprite):void { 147 if (icon) { 148 for (var i:Number=0; i < icon.numChildren; i++) { 149 icon.getChildAt(i).x = -Math.round(icon.getChildAt(i).width)/2; 150 icon.getChildAt(i).y = -Math.round(icon.getChildAt(i).height)/2; 151 } 152 } 153 } 154 155 protected function setupIcon(name:String):void { 156 var iconElement:Sprite = getSkinElement(name + 'Icon') as Sprite; 157 var iconOver:Sprite = getSkinElement(name + 'IconOver') as Sprite; 158 159 if (!iconElement) { return; } 160 161 if (_player.skin is PNGSkin) { 162 if (iconElement.getChildByName("bitmap")) { 163 centerIcon(iconElement); 164 iconElement.name = 'out'; 165 } 166 if (iconOver && iconOver.getChildByName("bitmap")) { 167 centerIcon(iconOver); 168 iconOver.name = 'over'; 169 } 170 } 171 172 if (name == "buffer") { 173 if (player.skin is PNGSkin) { 174 if (iconElement is MovieClip && (iconElement as MovieClip).totalFrames > 1) { 175 // Buffer is already animated; no need to rotate. 176 _rotate = false; 177 } else { 178 try { 179 _bufferIcon = iconElement; 180 var bufferBitmap:Bitmap = _bufferIcon.getChildByName('bitmap') as Bitmap; 181 if (bufferBitmap) { 182 Draw.smooth(bufferBitmap); 183 } else { 184 centerIcon(iconElement); 185 } 186 } catch (e:Error) { 187 _rotate = false; 188 } 189 } 190 } else { 191 _rotate = false; 192 } 193 } 194 195 var back:Sprite = getSkinElement('background') as Sprite; 196 if (back) { 197 if (_player.skin is PNGSkin) centerIcon(back); 115 setupIcon('error'); 116 setupIcon('replay'); 117 if (!_icons.replay) { 118 _icons.replay = _icons.play; 119 } 120 if (!_icons.error) { 121 _icons.error = setupIcon(); 122 } 123 } 124 125 126 protected function setupIcon(name:String=null):DisplayIcon { 127 if (!name) { 128 return new DisplayIcon({ 129 background: getSkinElement("background"), 130 backgroundOver: getSkinElement("backgroundOver"), 131 capLeft: getSkinElement("capLeft"), 132 capLeftOver: getSkinElement("capLeftOver"), 133 capRight: getSkinElement("capRight"), 134 capRightOver: getSkinElement("capRightOver") 135 }, _textFormat, _textOverFormat); 198 136 } else { 199 back = new Sprite(); 200 } 201 202 if (iconOver && player.skin is PNGSkin && name != "buffer") { 203 iconOver.visible = false; 204 back.addChild(iconOver); 205 back.addEventListener(MouseEvent.MOUSE_OVER, overHandler); 206 back.addEventListener(MouseEvent.MOUSE_OUT, outHandler); 207 } 208 back.addChild(iconElement); 209 if (player.skin is PNGSkin && !iconElement.getChildByName("bitmap")) { 210 if (name != "buffer" || !_rotate) { 211 centerIcon(back); 212 } 213 } else { 214 back.x = back.y = iconElement.x = iconElement.y = 0; 215 } 216 _icons[name] = back; 217 218 } 219 220 protected function overHandler(evt:MouseEvent):void { 221 var button:Sprite = _icon as Sprite; 222 if (button) { 223 setIconHover(button, true); 224 } 225 } 226 227 protected function outHandler(evt:MouseEvent):void { 228 var button:Sprite = _icon as Sprite; 229 if (button) { 230 setIconHover(button, false); 231 } 232 } 233 234 protected function setIconHover(icon:Sprite, state:Boolean):void { 235 var over:DisplayObject = icon.getChildByName('over'); 236 var out:DisplayObject = icon.getChildByName('out'); 237 238 if (over && out) { 239 over.visible = state; 240 out.visible = !state; 241 } 137 if (!getSkinElement(name+"Icon")) { return null; } 138 139 var newIcon:DisplayIcon = new DisplayIcon({ 140 icon: getSkinElement(name+"Icon"), 141 iconOver: getSkinElement(name+"IconOver"), 142 background: getSkinElement("background"), 143 backgroundOver: getSkinElement("backgroundOver"), 144 capLeft: getSkinElement("capLeft"), 145 capLeftOver: getSkinElement("capLeftOver"), 146 capRight: getSkinElement("capRight"), 147 capRightOver: getSkinElement("capRightOver") 148 }, _textFormat, _textOverFormat); 149 } 150 _icons[name] = newIcon; 151 return newIcon; 242 152 } 243 153 … … 252 162 253 163 positionIcon(); 254 positionText();255 164 stateHandler(); 256 165 } 257 166 258 167 259 p ublic function setIcon(displayIcon:DisplayObject):void {168 protected function setIcon(displayIcon:DisplayIcon):void { 260 169 var sendShowEvent:Boolean = false; 261 170 var sendHideEvent:Boolean = false; … … 275 184 } 276 185 if (displayIcon && _player.config.icons && (getConfigParam("icons") === true || typeof(getConfigParam("icons")) == "undefined")) { 277 if (displayIcon is Sprite) {278 setIconHover(displayIcon as Sprite, false);279 }280 186 _icon = displayIcon; 281 187 _overlay.addChild(_icon); … … 297 203 private function positionIcon():void { 298 204 if (_icon) { 299 _icon.x = background.scaleX / 2; 300 _icon.y = background.scaleY / 2; 301 } 302 } 303 304 305 public function setText(displayText:String):void { 306 if (_icon is Sprite && (_icon as Sprite).getChildByName('txt') is TextField) { 307 ((_icon as Sprite).getChildByName('txt') as TextField).text = displayText ? displayText : ''; 308 text.text = ''; 309 } else { 310 text.text = displayText ? displayText : ''; 311 } 312 positionText(); 313 } 314 315 316 private function positionText():void { 317 if (text.text) { 318 text.visible = true; 319 _textBack.visible = true; 320 if (text.width > background.scaleX * .75) { 321 text.width = background.scaleX * .75; 322 text.wordWrap = true; 323 } else { 324 text.autoSize = TextFormatAlign.CENTER; 325 } 326 text.x = (background.scaleX - text.textWidth) / 2; 327 if (_icon && contains(_icon)) { 328 text.y = _icon.y + (_icon.height/2) + 10; 329 } else { 330 text.y = (background.scaleY - text.textHeight) / 2; 331 } 332 _textBack.y = text.y - 2; 333 _textBack.width = getConfigParam('width'); 334 _textBack.height = text.height + 4; 335 } else { 336 text.visible = false; 337 _textBack.visible = false; 338 } 339 } 340 341 342 protected function setDisplay(displayIcon:DisplayObject, displayText:String = null):void { 205 _icon.x = Math.round((background.width - _icon.width) / 2); 206 _icon.y = Math.round((background.height - _icon.height) / 2); 207 } 208 } 209 210 protected function setDisplay(displayIcon:DisplayIcon, displayText:String = null):void { 211 if (displayIcon) displayIcon.text = displayText; 343 212 setIcon(displayIcon); 344 setText(displayText != null ? displayText : text.text);345 213 } 346 214 … … 357 225 if (_previousState != currentState || !(event is PlayerStateEvent)) { 358 226 _previousState = currentState; 359 //TODO: Handle mute button in error state360 227 clearRotation(); 361 228 _bufferStateTimer.reset(); … … 365 232 switch (currentState) { 366 233 case PlayerState.BUFFERING: 234 _errorState = false; 367 235 _bufferStateTimer.start(); 368 236 break; … … 371 239 _playStateTimer.start(); 372 240 break; 241 case PlayerState.COMPLETED: 242 setDisplay(getIcon('replay')); 243 break; 373 244 default: 374 if ( player.config.mute && getConfigParam("showmute") ) { 375 setDisplay(_icons['mute']); 376 } else { 377 clearDisplay(); 378 } 245 clearDisplay(); 379 246 } 380 247 } … … 382 249 383 250 protected function showBufferIcon(evt:TimerEvent):void { 384 setDisplay(_icons['buffer'], '');385 if (_rotate){386 startRotation();387 }251 var icon:DisplayIcon = getIcon('buffer'); 252 setDisplay(icon, ''); 253 icon.setRotation(_bufferRotationAngle, _bufferRotationTime); 254 388 255 } 389 256 390 257 protected function showPlayIcon(evt:TimerEvent):void { 391 setDisplay(_icons['play']); 392 } 393 394 protected function startRotation():void { 395 if (!_rotateInterval && (_bufferRotationAngle % 360) != 0) { 396 _rotateInterval = setInterval(updateRotation, _bufferRotationTime); 397 } 398 } 399 400 401 protected function updateRotation():void { 402 if (_bufferIcon) _bufferIcon.rotation += _bufferRotationAngle; 403 } 404 405 258 if (_errorState) return; 259 260 var icon:DisplayIcon = getIcon('play'); 261 if (_player.state == PlayerState.IDLE) { 262 setDisplay(icon, _player.playlist.currentItem ? _player.playlist.currentItem.title : ""); 263 } else { 264 setDisplay(icon); 265 } 266 } 267 406 268 protected function clearRotation():void { 407 if (_bufferIcon) _bufferIcon.rotation = 0; 408 if (_rotateInterval) { 409 clearInterval(_rotateInterval); 410 _rotateInterval = undefined; 411 } 269 getIcon('buffer').setRotation(0); 412 270 } 413 271 414 272 415 273 protected function errorHandler(event:PlayerEvent):void { 416 setDisplay(null, event.message); 274 setDisplay(getIcon('error'), event.message); 275 _errorState = true; 417 276 } 418 277 … … 425 284 dispatchEvent(new ViewEvent(ViewEvent.JWPLAYER_VIEW_PLAY)); 426 285 } 427 }428 429 430 protected function get text():TextField {431 return _text;432 286 } 433 287 … … 488 342 } 489 343 344 protected function getIcon(name:String):DisplayIcon { 345 return _icons[name]; 346 } 347 490 348 } 491 349 } -
branches/jw6/src/flash/com/longtailvideo/jwplayer/view/components/PlaylistComponent.as
r2196 r2234 1 // TODO: replace background element with backgroundcolor 2 // TODO: remove font, fontStyle 3 1 4 package com.longtailvideo.jwplayer.view.components { 2 5 import com.longtailvideo.jwplayer.events.PlayerStateEvent; -
branches/jw6/src/flash/com/longtailvideo/jwplayer/view/interfaces/IDisplayComponent.as
r2192 r2234 37 37 38 38 public interface IDisplayComponent extends IPlayerComponent { 39 function setIcon(displayIcon:DisplayObject):void;40 function setText(displayText:String):void;39 //function setIcon(displayIcon:DisplayObject):void; 40 //function setText(displayText:String):void; 41 41 function forceState(forcedState:String):void; 42 42 function releaseState():void; -
branches/jw6/src/flash/com/longtailvideo/jwplayer/view/interfaces/ISkin.as
r2196 r2234 28 28 function load(url:String=null):void; 29 29 30 31 /** 32 * Lists the components available in the skin 33 **/ 34 35 function get components():Vector.<String>; 36 30 37 /** 31 38 * Returns the availability of skin elements for a given component. … … 39 46 function hasComponent(component:String):Boolean; 40 47 48 /** 49 * Returns an entire componentBlock 50 **/ 51 function getSkinComponent(component:String):Object; 52 53 /** 54 * Overwrite a component definition 55 **/ 56 function overwriteComponent(componentName:String, component:Object):void; 57 41 58 /** 42 59 * -
branches/jw6/src/flash/com/longtailvideo/jwplayer/view/skins/PNGSkin.as
r2217 r2234 11 11 import flash.events.ErrorEvent; 12 12 import flash.events.Event; 13 import flash.events.EventDispatcher; 13 14 import flash.utils.Dictionary; 14 15 … … 27 28 [Event(name="error", type = "flash.events.ErrorEvent")] 28 29 29 public class PNGSkin extends SkinBaseimplements ISkin {30 public class PNGSkin extends EventDispatcher implements ISkin { 30 31 31 32 protected var _urlPrefix:String; … … 40 41 use namespace skinNS; 41 42 42 public overridefunction load(url:String=null):void {43 public function load(url:String=null):void { 43 44 if (Strings.extension(url) == "xml" ) { 44 45 _urlPrefix = url.substring(0, url.lastIndexOf('/')+1); … … 48 49 loader.addEventListener(ErrorEvent.ERROR, loadError); 49 50 loader.load(url); 50 } else if (_skin.numChildren == 0){51 sendError(" PNG skin descriptor file must have a .xml extension");51 } else { 52 sendError("Error loading skin: Invalid skin format"); 52 53 } 53 54 } … … 69 70 protected function parseSkin():void { 70 71 if (_skinXML.localName() != "skin") { 71 sendError(" PNG skin descriptor file not correctly formatted");72 sendError("Error loading skin: Skin formatting error"); 72 73 return; 73 74 } … … 113 114 } else { 114 115 if (_props.hasOwnProperty(setting.@name.toString())) { 115 _props[setting.@name.toString() ] = setting.@value.toString();116 _props[setting.@name.toString().toLowerCase()] = setting.@value.toString(); 116 117 } 117 118 } … … 184 185 185 186 186 public overridefunction getSkinProperties():SkinProperties {187 public function getSkinProperties():SkinProperties { 187 188 return _props; 188 189 } 189 190 190 public override function getSkinElement(component:String, element:String):DisplayObject { 191 public function getSkinElement(component:String, element:String):DisplayObject { 192 component = component.toLowerCase(); 193 element = element.toLowerCase(); 191 194 if (_components[component] && _components[component][element]){ 192 195 var sprite:Sprite = _components[component][element] as Sprite; … … 204 207 } 205 208 206 public override function addSkinElement(component:String, name:String, element:DisplayObject):void { 209 public function addSkinElement(component:String, name:String, element:DisplayObject):void { 210 component = component.toLowerCase(); 211 name = name.toLowerCase(); 207 212 if (!_components[component]) { 208 213 _components[component] = {}; … … 217 222 } 218 223 219 public override function hasComponent(component:String):Boolean { 220 return _components.hasOwnProperty(component); 221 } 224 public function hasComponent(component:String):Boolean { 225 return _components.hasOwnProperty(component.toLowerCase()); 226 } 227 228 /** 229 * Dispatch an ErrorEvent.ERROR with a message 230 * @param message The message to dispatch 231 */ 232 protected function sendError(message:String):void { 233 dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, message)); 234 } 235 236 public function get components():Vector.<String> { 237 var strings:Vector.<String> = new Vector.<String>; 238 for(var component:String in _components) { 239 strings.push(component); 240 } 241 return strings; 242 } 243 244 public function getSkinComponent(component:String):Object { 245 if (hasComponent(component)) { 246 return _components[component.toLowerCase()]; 247 } else return null; 248 } 249 250 public function overwriteComponent(componentName:String, component:Object):void { 251 _components[componentName.toLowerCase()] = component; 252 } 253 222 254 } 223 255 } -
branches/jw6/src/flash/com/longtailvideo/jwplayer/view/skins/ZIPSkin.as
r2217 r2234 39 39 urlStream.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadError); 40 40 urlStream.load(new URLRequest(url)); 41 } else if (_skin.numChildren == 0){41 } else { 42 42 sendError("ZIP skin descriptor file must have a .zip extension"); 43 43 } -
branches/jw6/src/js/embed/jwplayer.embed.download.js
r2220 r2234 132 132 }; 133 133 134 /** 135 * Although this function creates a flash embed, the target is iOS, which interprets the embed code as a YouTube video, 136 * and plays it using the browser 137 */ 134 138 function _embedYouTube(path) { 135 139 var embed = _createElement("embed", "", _container); -
branches/jw6/src/js/embed/jwplayer.embed.flash.js
r2217 r2234 218 218 appendAttribute(obj, 'flashvars', flashvars); 219 219 220 obj.onerror = function() {221 alert("does this work?");222 }223 224 220 _container.parentNode.replaceChild(obj, _container); 225 221 flashPlayer = obj; -
branches/jw6/src/js/embed/jwplayer.embed.js
r2217 r2234 79 79 80 80 function _errorScreen(container, message) { 81 if (!_config.fallback) return; 82 81 83 var style = container.style; 82 84 style.backgroundColor = "#000"; … … 87 89 style.padding = "50px"; 88 90 89 var text = document.createElement("p"); 90 text.style.verticalAlign = "middle"; 91 text.style.textAlign = "center"; 92 text.style.display = "table-cell"; 93 text.innerHTML = message; 91 var text = document.createElement("p"), 92 textStyle = text.style; 93 textStyle.verticalAlign = "middle"; 94 textStyle.textAlign = "center"; 95 textStyle.display = "table-cell"; 96 textStyle.font = "15px/20px Arial, Helvetica, sans-serif"; 97 text.innerHTML = message.replace(":", ":<br>"); 94 98 95 99 container.innerHTML = ""; -
branches/jw6/src/js/html5/jwplayer.html5.controlbar.js
r2197 r2234 1 // TODO: remove backgroundcolor 2 // TODO: remove buttonColor, blankButton 3 4 1 5 /** 2 6 * JW Player HTML5 Controlbar component -
branches/jw6/src/js/html5/jwplayer.html5.display.js
r2217 r2234 84 84 // Create the icons which will be displayed inside of the display button 85 85 function _createIcons() { 86 var iconNames = ['play', 'buffer' ];86 var iconNames = ['play', 'buffer', 'error', 'repeat']; 87 87 for (var i=0; i<iconNames.length; i++) { 88 88 var iconName = iconNames[i], … … 91 91 icon = DOCUMENT.createElement("div"), 92 92 bg = _getSkinElement("background"), 93 bgOver = _getSkinElement("backgroundOver"); 93 bgOver = _getSkinElement("backgroundOver"), 94 capLeft = _getSkinElement("capLeft"), 95 capLeftOver = _getSkinElement("capLeftOver"), 96 capRight = _getSkinElement("capRight"), 97 capRightOver = _getSkinElement("capRightOver"), 94 98 button = DOCUMENT.createElement("button"); 95 99 … … 100 104 101 105 _buttonStyle('#'+_display.id+' .'+button.className, bg, bgOver); 102 _buttonStyle('#'+_display.id+' .'+button.className+' div', iconOut, iconOver);106 _buttonStyle('#'+_display.id+' .'+button.className+' .'+icon.className, iconOut, iconOver); 103 107 104 108 if (bgOver || iconOver) { -
branches/jw6/src/js/html5/jwplayer.html5.js
r2220 r2234 7 7 (function(jwplayer) { 8 8 jwplayer.html5 = {}; 9 jwplayer.html5.version = '6.0.22 20';9 jwplayer.html5.version = '6.0.2234'; 10 10 })(jwplayer); -
branches/jw6/src/js/html5/jwplayer.html5.skin.js
r2217 r2234 22 22 23 23 this.getSkinElement = function(component, element) { 24 component = _lowerCase(component); 25 element = _lowerCase(element); 24 26 if (_loaded) { 25 27 try { … … 33 35 34 36 this.getComponentSettings = function(component) { 37 component = _lowerCase(component); 35 38 if (_loaded && _components && _components[component]) { 36 39 return _components[component].settings; … … 40 43 41 44 this.getComponentLayout = function(component) { 45 component = _lowerCase(component); 42 46 if (_loaded) { 43 47 var lo = _components[component].layout; … … 48 52 }; 49 53 54 function _lowerCase(string) { 55 return string.toLowerCase(); 56 } 57 50 58 }; 51 59 })(jwplayer.html5); -
branches/jw6/src/js/html5/jwplayer.html5.skinloader.js
r2217 r2234 11 11 /** Constructor **/ 12 12 html5.skinloader = function(skinPath, completeHandler, errorHandler) { 13 var _skin = {}; 14 var _completeHandler = completeHandler; 15 var _errorHandler = errorHandler; 16 var _loading = true; 17 var _completeInterval; 18 var _skinPath = skinPath; 19 var _error = false; 13 var _skin = {}, 14 _completeHandler = completeHandler, 15 _errorHandler = errorHandler, 16 _loading = true, 17 _completeInterval, 18 _skinPath = skinPath, 19 _error = false, 20 _defaultSkin; 20 21 21 22 /** Load the skin **/ … … 28 29 return; 29 30 } 30 _utils.ajax(_utils.getAbsolutePath(_skinPath), function(xmlrequest) { 31 try { 32 if (_utils.exists(xmlrequest.responseXML)){ 33 _loadSkin(xmlrequest.responseXML); 34 return; 35 } 36 } catch (err){ 37 _clearSkin(); 38 } 39 _loadSkin(html5.defaultskin().xml); 40 }, function(message) { 41 _errorHandler(message); 42 }); 43 } 44 45 } 46 31 // Load the default skin first; if any components are defined in the loaded skin, they will overwrite the default 32 var defaultLoader = new html5.skinloader("", _defaultLoaded, errorHandler); 33 } 34 35 } 36 37 38 function _defaultLoaded(defaultSkin) { 39 _skin = defaultSkin; 40 _utils.ajax(_utils.getAbsolutePath(_skinPath), function(xmlrequest) { 41 try { 42 if (_utils.exists(xmlrequest.responseXML)){ 43 _loadSkin(xmlrequest.responseXML); 44 return; 45 } 46 } catch (err){ 47 _clearSkin(); 48 } 49 }, function(message) { 50 _errorHandler(message); 51 }); 52 } 47 53 48 54 function _loadSkin(xml) { 49 55 var components = xml.getElementsByTagName('component'); 50 56 if (components.length === 0) { 51 return;57 errorHandler("Skin formatting error") 52 58 } 53 59 for (var componentIndex = 0; componentIndex < components.length; componentIndex++) { 54 var componentName = components[componentIndex].getAttribute("name");60 var componentName = _lowerCase(components[componentIndex].getAttribute("name")); 55 61 var component = { 56 62 settings: {}, … … 70 76 var value = settings[settingIndex].getAttribute("value"); 71 77 if(/color$/.test(name)) { value = _utils.stringToColor(value); } 72 _skin[componentName].settings[name] = value;78 component.settings[_lowerCase(name)] = value; 73 79 } 74 80 } … … 77 83 var groups = layout.getElementsByTagName('group'); 78 84 for (var groupIndex = 0; groupIndex < groups.length; groupIndex++) { 79 var group = groups[groupIndex]; 80 _skin[componentName].layout[group.getAttribute("position")] = { 81 elements: [] 82 }; 85 var group = groups[groupIndex], 86 _layout = { 87 elements: [] 88 }; 89 component.layout[_lowerCase(group.getAttribute("position"))] = _layout; 83 90 for (var attributeIndex = 0; attributeIndex < group.attributes.length; attributeIndex++) { 84 91 var attribute = group.attributes[attributeIndex]; 85 _ skin[componentName].layout[group.getAttribute("position")][attribute.name] = attribute.value;92 _layout[attribute.name] = attribute.value; 86 93 } 87 94 var groupElements = group.getElementsByTagName('*'); 88 95 for (var groupElementIndex = 0; groupElementIndex < groupElements.length; groupElementIndex++) { 89 96 var element = groupElements[groupElementIndex]; 90 _ skin[componentName].layout[group.getAttribute("position")].elements.push({97 _layout.elements.push({ 91 98 type: element.tagName 92 99 }); 93 100 for (var elementAttributeIndex = 0; elementAttributeIndex < element.attributes.length; elementAttributeIndex++) { 94 101 var elementAttribute = element.attributes[elementAttributeIndex]; 95 _ skin[componentName].layout[group.getAttribute("position")].elements[groupElementIndex][elementAttribute.name] = elementAttribute.value;102 _layout.elements[groupElementIndex][_lowerCase(elementAttribute.name)] = elementAttribute.value; 96 103 } 97 if (!_utils.exists(_ skin[componentName].layout[group.getAttribute("position")].elements[groupElementIndex].name)) {98 _ skin[componentName].layout[group.getAttribute("position")].elements[groupElementIndex].name = element.tagName;104 if (!_utils.exists(_layout.elements[groupElementIndex].name)) { 105 _layout.elements[groupElementIndex].name = element.tagName; 99 106 } 100 107 } … … 121 128 /** Load the data for a single element. **/ 122 129 function _loadImage(element, component) { 123 var img = new Image(); 124 var elementName = element.getAttribute("name"); 125 var elementSource = element.getAttribute("src"); 126 var imgUrl; 130 component = _lowerCase(component); 131 var img = new Image(), 132 elementName = _lowerCase(element.getAttribute("name")), 133 elementSource = element.getAttribute("src"), 134 imgUrl; 135 127 136 if (elementSource.indexOf('data:image/png;base64,') === 0) { 128 137 imgUrl = elementSource; … … 172 181 if (component != 'properties') { 173 182 for (var element in _skin[component].elements) { 174 if (!_ skin[component].elements[element].ready) {183 if (!_getElement(component, element).ready) { 175 184 return; 176 185 } … … 184 193 } 185 194 186 187 195 function _completeImageLoad(img, element, component) { 188 if(_skin[component] && _skin[component].elements[element]) { 189 _skin[component].elements[element].height = img.height; 190 _skin[component].elements[element].width = img.width; 191 _skin[component].elements[element].src = img.src; 192 _skin[component].elements[element].ready = true; 196 var elementObj = _getElement(component, element); 197 if(elementObj) { 198 elementObj.height = img.height; 199 elementObj.width = img.width; 200 elementObj.src = img.src; 201 elementObj.ready = true; 193 202 _resetCompleteIntervalTest(); 194 203 } else { … … 197 206 } 198 207 208 209 function _getElement(component, element) { 210 return _skin[_lowerCase(component)] ? _skin[_lowerCase(component)].elements[_lowerCase(element)] : null; 211 } 212 213 function _lowerCase(string) { 214 return string ? string.toLowerCase() : ''; 215 } 199 216 _load(); 200 217 }; -
branches/jw6/src/js/html5/utils/jwplayer.html5.utils.css.js
r2199 r2234 64 64 default: 65 65 if (style.match(/color/i)) { 66 return "#" + utils.pad(value.toString(16) , 6) + importantString;66 return "#" + utils.pad(value.toString(16).replace(/^0x/i,""), 6) + importantString; 67 67 } else if (value === 0) { 68 68 return 0 + importantString; -
branches/jw6/src/js/jwplayer.js
r2220 r2234 11 11 var $jw = jwplayer; 12 12 13 jwplayer.version = '6.0.22 20';13 jwplayer.version = '6.0.2234'; 14 14 15 15 // "Shiv" method for older IE browsers; required for parsing media tags -
branches/jw6/src/js/utils/jwplayer.utils.extensionmap.js
r2219 r2234 36 36 "ogg": mimeMap[ogg], 37 37 "oga": mimeMap[ogg], 38 "ogv": mimeMap[ogg],39 38 "webm": mimeMap[webm], 40 39 "m3u8": mimeMap.hls, -
branches/jw6/test/embedder.html
r2202 r2234 22 22 playlist: [{ 23 23 sources:[ 24 { file: 'http://content.bitsontherun.com/videos/ nPripu9l-1ahmry41.xyz', type: "mp4"},24 { file: 'http://content.bitsontherun.com/videos/123-1ahmry41.xyz', type: "mp4"}, 25 25 { file: 'http://content.bitsontherun.com/videos/nPripu9l-1Lq5Mnwq.xyz', type: "webm" } 26 26 ], 27 27 image: 'http://content.bitsontherun.com/thumbs/gSzpo2wh-480.jpg', 28 28 description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ipsum leo, facilisis non laoreet sed, laoreet id tortor. Sed in lectus id enim scelerisque dictum nec sit amet odio. Pellentesque eget nisl arcu, quis tristique nibh. Nunc quis est eget erat posuere congue. Maecenas et turpis id ipsum eleifend adipiscing id et purus. Curabitur pulvinar ultricies leo, a semper tellus tempus eu. Praesent mattis ipsum eu eros placerat sodales. Maecenas laoreet libero quis lorem lacinia sit amet consequat nunc accumsan. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nunc venenatis, mi suscipit accumsan venenatis, ligula lacus malesuada nisl, vel congue est nibh ut dolor. Sed ut tellus ut diam consequat scelerisque at sit amet lacus. Nulla egestas vehicula neque, et commodo metus sollicitudin ut. Sed sit amet nunc vitae arcu tincidunt ornare.", 29 title: "Big Buck Bunny "29 title: "Big Buck BunnyBig Buck BunnyBig Buck BunnyBig Buck BunnyBig Buck BunnyBig Buck BunnyBig Buck BunnyBig Buck Bunny" 30 30 },{ 31 31 sources:[ … … 50 50 <form id="form"> 51 51 skin: <select name="skin" onchange="init()"> 52 <option value="" selected>default</option>53 <option value="../../../skins/beelden/ beelden.zip">beelden</option>52 <option value="">default</option> 53 <option value="../../../skins/beelden/src/beelden.xml">beelden</option> 54 54 <option value="../../../skins/stormtrooper/stormtrooper.zip">stormtrooper</option> 55 55 <option value="../../../skins/glow/glow.zip">glow</option> … … 57 57 <option value="../../../tags/skins/snel/snel.zip">snel</option> 58 58 <option value="../../../skins/stijl/stijl.zip">stijl</option> 59 <option value="../../../skins/bekle/ bekle.zip">bekle</option>59 <option value="../../../skins/bekle/src/bekle.xml" selected >bekle</option> 60 60 </select> 61 61 mode: <select name="mode" onchange="init()"> 62 <option value="" selected>html5</option>63 <option value="flash" >flash</option>62 <option value="">html5</option> 63 <option value="flash" selected>flash</option> 64 64 </select> 65 65 <input type="submit" style="opacity:0; left: -10000px"/>
Note: See TracChangeset
for help on using the changeset viewer.
