Changeset 2234


Ignore:
Timestamp:
06/07/12 05:15:17 (12 months ago)
Author:
pablo
Message:
  • Moves text to button in display (title, error) in Flash mode
  • Adds a few skin error handling cases
  • Adds completed state in Flash w/ repeat icon in display
Location:
branches/jw6
Files:
3 added
1 deleted
33 edited

Legend:

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

    r2220 r2234  
    77(function(jwplayer) { 
    88        jwplayer.html5 = {}; 
    9         jwplayer.html5.version = '6.0.2220'; 
     9        jwplayer.html5.version = '6.0.2234'; 
    1010})(jwplayer);/** 
    1111 * HTML5-only utilities for the JW Player. 
     
    279279                        default: 
    280280                                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; 
    282282                                } else if (value === 0) { 
    283283                                        return 0 + importantString; 
     
    725725         
    726726})(jwplayer.html5.parsers); 
     727// TODO: remove backgroundcolor 
     728// TODO: remove buttonColor, blankButton 
     729 
     730 
    727731/** 
    728732 * JW Player HTML5 Controlbar component 
     
    19841988                // Create the icons which will be displayed inside of the display button 
    19851989                function _createIcons() { 
    1986                         var iconNames = ['play', 'buffer']; 
     1990                        var iconNames = ['play', 'buffer', 'error', 'repeat']; 
    19871991                        for (var i=0; i<iconNames.length; i++) { 
    19881992                                var iconName = iconNames[i], 
     
    19911995                                        icon = DOCUMENT.createElement("div"), 
    19921996                                        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"), 
    19942002                                        button = DOCUMENT.createElement("button"); 
    19952003                         
     
    20002008                                         
    20012009                                        _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); 
    20032011                                         
    20042012                                        if (bgOver || iconOver) { 
     
    34843492                 
    34853493                this.getSkinElement = function(component, element) { 
     3494                        component = _lowerCase(component); 
     3495                        element = _lowerCase(element); 
    34863496                        if (_loaded) { 
    34873497                                try { 
     
    34953505                 
    34963506                this.getComponentSettings = function(component) { 
     3507                        component = _lowerCase(component); 
    34973508                        if (_loaded && _components && _components[component]) { 
    34983509                                return _components[component].settings; 
     
    35023513                 
    35033514                this.getComponentLayout = function(component) { 
     3515                        component = _lowerCase(component); 
    35043516                        if (_loaded) { 
    35053517                                var lo = _components[component].layout; 
     
    35093521                        return null; 
    35103522                }; 
     3523                 
     3524                function _lowerCase(string) { 
     3525                        return string.toLowerCase(); 
     3526                } 
    35113527                 
    35123528        }; 
     
    35243540        /** Constructor **/ 
    35253541        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; 
    35333550                 
    35343551                /** Load the skin **/ 
     
    35413558                                        return; 
    35423559                                } 
    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;  
    35513574                                        } 
    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                } 
    35603582                 
    35613583                function _loadSkin(xml) { 
    35623584                        var components = xml.getElementsByTagName('component'); 
    35633585                        if (components.length === 0) { 
    3564                                 return; 
     3586                                errorHandler("Skin formatting error") 
    35653587                        } 
    35663588                        for (var componentIndex = 0; componentIndex < components.length; componentIndex++) { 
    3567                                 var componentName = components[componentIndex].getAttribute("name"); 
     3589                                var componentName = _lowerCase(components[componentIndex].getAttribute("name")); 
    35683590                                var component = { 
    35693591                                        settings: {}, 
     
    35833605                                                var value = settings[settingIndex].getAttribute("value"); 
    35843606                                                if(/color$/.test(name)) { value = _utils.stringToColor(value); } 
    3585                                                 _skin[componentName].settings[name] = value; 
     3607                                                component.settings[_lowerCase(name)] = value; 
    35863608                                        } 
    35873609                                } 
     
    35903612                                        var groups = layout.getElementsByTagName('group'); 
    35913613                                        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; 
    35963619                                                for (var attributeIndex = 0; attributeIndex < group.attributes.length; attributeIndex++) { 
    35973620                                                        var attribute = group.attributes[attributeIndex]; 
    3598                                                         _skin[componentName].layout[group.getAttribute("position")][attribute.name] = attribute.value; 
     3621                                                        _layout[attribute.name] = attribute.value; 
    35993622                                                } 
    36003623                                                var groupElements = group.getElementsByTagName('*'); 
    36013624                                                for (var groupElementIndex = 0; groupElementIndex < groupElements.length; groupElementIndex++) { 
    36023625                                                        var element = groupElements[groupElementIndex]; 
    3603                                                         _skin[componentName].layout[group.getAttribute("position")].elements.push({ 
     3626                                                        _layout.elements.push({ 
    36043627                                                                type: element.tagName 
    36053628                                                        }); 
    36063629                                                        for (var elementAttributeIndex = 0; elementAttributeIndex < element.attributes.length; elementAttributeIndex++) { 
    36073630                                                                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; 
    36093632                                                        } 
    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; 
    36123635                                                        } 
    36133636                                                } 
     
    36343657                /** Load the data for a single element. **/ 
    36353658                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                         
    36403665                        if (elementSource.indexOf('data:image/png;base64,') === 0) { 
    36413666                                imgUrl = elementSource; 
     
    36853710                                if (component != 'properties') { 
    36863711                                        for (var element in _skin[component].elements) { 
    3687                                                 if (!_skin[component].elements[element].ready) { 
     3712                                                if (!_getElement(component, element).ready) { 
    36883713                                                        return; 
    36893714                                                } 
     
    36973722                } 
    36983723                 
    3699                  
    37003724                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; 
    37063731                                _resetCompleteIntervalTest(); 
    37073732                        } else { 
     
    37103735                } 
    37113736                 
     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                } 
    37123745                _load(); 
    37133746        }; 
  • branches/jw6/bin-debug/jwplayer.js

    r2220 r2234  
    1919var $jw = jwplayer; 
    2020 
    21 jwplayer.version = '6.0.2220'; 
     21jwplayer.version = '6.0.2234'; 
    2222 
    2323// "Shiv" method for older IE browsers; required for parsing media tags 
     
    395395                        "ogg": mimeMap[ogg], 
    396396                        "oga": mimeMap[ogg], 
    397                         "ogv": mimeMap[ogg], 
    398397                        "webm": mimeMap[webm], 
    399398                        "m3u8": mimeMap.hls, 
     
    13401339                 
    13411340                function _errorScreen(container, message) { 
     1341                        if (!_config.fallback) return; 
     1342                                 
    13421343                        var style = container.style; 
    13431344                        style.backgroundColor = "#000"; 
     
    13481349                        style.padding = "50px"; 
    13491350                         
    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>"); 
    13551358 
    13561359                        container.innerHTML = ""; 
     
    16941697                }; 
    16951698                 
     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                 */ 
    16961703                function _embedYouTube(path) { 
    16971704                        var embed = _createElement("embed", "", _container); 
     
    19341941                                appendAttribute(obj, 'wmode', wmode); 
    19351942                                appendAttribute(obj, 'flashvars', flashvars); 
    1936                                  
    1937                                 obj.onerror = function() { 
    1938                                         alert("does this work?"); 
    1939                                 } 
    19401943                                 
    19411944                                _container.parentNode.replaceChild(obj, _container); 
  • branches/jw6/jwplayer.html5.js

    r2220 r2234  
    1 (function(a){a.html5={};a.html5.version="6.0.2220"})(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="&nbsp;";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="&nbsp;";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="&nbsp;";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="&nbsp;";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.2220";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)}; 
     1if(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  
    1919        import flash.events.ErrorEvent; 
    2020        import flash.events.Event; 
     21        import flash.utils.setTimeout; 
    2122 
    2223        /** 
     
    245246                                                _lockingResume = false; 
    246247                                                _model.playlist.currentIndex = 0; 
     248                                                setTimeout(_model.playlistComplete, 10); 
    247249                                        } else { 
    248250                                                next(); 
    249251                                        } 
     252                                        break; 
     253                                case RepeatOptions.NONE: 
     254                                        setTimeout(_model.playlistComplete, 10); 
    250255                                        break; 
    251256                        } 
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/controller/PlayerSetup.as

    r2217 r2234  
    7373                         
    7474                        tasker.queueTask(loadConfig, loadConfigComplete); 
    75                         tasker.queueTask(loadSkin, loadSkinComplete); 
     75                        tasker.queueTask(loadSkin); 
    7676                        tasker.queueTask(setupMediaProviders); 
    7777                        tasker.queueTask(setupView); 
     
    132132                                        skin = new PNGSkin(); 
    133133                                } 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"));  
    135135                                } 
    136136                        } else { 
     
    138138                        } 
    139139                        skin.addEventListener(ErrorEvent.ERROR, tasker.failure); 
    140                         skin.addEventListener(Event.COMPLETE, tasker.success); 
     140                        skin.addEventListener(Event.COMPLETE, skinLoaded); 
    141141                        skin.load(confHash['skin']); 
    142142                } 
    143143                 
    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); 
    158171                        Logger.setConfig(_model.config); 
     172                        tasker.success(); 
    159173                } 
    160174 
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/media/MediaProvider.as

    r2218 r2234  
    406406                } 
    407407                 
    408                 protected function sendQualityEvent(type, levels:Array, quality:Number):void { 
     408                protected function sendQualityEvent(type:String, levels:Array, quality:Number):void { 
    409409                        var qualityEvent:MediaEvent = new MediaEvent(type); 
    410410                        qualityEvent.levels = []; 
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/model/Model.as

    r2217 r2234  
    8888                protected var _config:PlayerConfig; 
    8989                protected var _playlist:IPlaylist; 
    90  
    9190                protected var _fullscreen:Boolean = false; 
    92  
    9391                protected var _currentMedia:IMediaProvider; 
    94  
    9592                protected var _mediaSources:Object; 
     93                protected var _playlistComplete:Boolean = false;  
    9694                 
    9795                /** Constructor **/ 
     
    122120                 */ 
    123121                public function get state():String { 
     122                        if (_playlistComplete) return PlayerState.COMPLETED; 
    124123                        return _currentMedia ? _currentMedia.state : PlayerState.IDLE; 
    125124                } 
     
    216215                                        // Translate media error into player error. 
    217216                                        dispatchEvent(new PlayerEvent(PlayerEvent.JWPLAYER_ERROR, (evt as MediaEvent).message)); 
     217                                } else if (evt is PlayerStateEvent && PlayerStateEvent(evt).newstate != PlayerState.COMPLETED) { 
     218                                        _playlistComplete = false; 
    218219                                }  
    219220                                dispatchEvent(evt); 
    220221                        } 
     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                        )); 
    221230                } 
    222231 
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/model/PlaylistItem.as

    r2218 r2234  
    168168                                return (typeMap(levelType(level)) == typeMap(_type)); 
    169169                        } else { 
    170                                 var lType = levelType(level); 
     170                                var lType:String = levelType(level); 
    171171                                if (lType) { 
    172172                                        if (typeMap(lType)) { 
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/player/PlayerVersion.as

    r2220 r2234  
    33         
    44        public class PlayerVersion { 
    5                 protected static var _version:String = '6.0.2220'; 
     5                protected static var _version:String = '6.0.2234'; 
    66                 
    77                public static function get version():String { 
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/view/View.as

    r2217 r2234  
    4545        import flash.text.TextFieldAutoSize; 
    4646        import flash.text.TextFormat; 
     47        import flash.text.TextFormatAlign; 
    4748        import flash.ui.Keyboard; 
    4849        import flash.utils.Timer; 
     
    242243                        } else { 
    243244                                var errorMessage:TextField = new TextField(); 
    244                                 errorMessage.defaultTextFormat = new TextFormat("_sans", 12, 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"); 
    246247                                errorMessage.width = RootReference.stage.stageWidth - 300; 
    247                                 errorMessage.wordWrap = true; 
    248248                                errorMessage.height = errorMessage.textHeight + 10; 
    249                                 errorMessage.autoSize = TextFieldAutoSize.LEFT; 
    250                                 errorMessage.wordWrap = true; 
     249                                errorMessage.autoSize = TextFieldAutoSize.CENTER; 
    251250 
    252251                                errorMessage.x = (RootReference.stage.stageWidth - errorMessage.textWidth) / 2; 
     
    587586                                        loadImage(_lastImage); 
    588587                                } 
     588                        } else { 
     589                                _image.visible = false; 
    589590                        } 
    590591                } 
     
    592593 
    593594                protected function loadImage(url:String):void { 
     595                        _image.visible = true; 
    594596                        _image.load(new URLRequest(url), new LoaderContext(true)); 
    595597                } 
     
    643645                        switch (_model.state) { 
    644646                                case PlayerState.IDLE: 
     647                                case PlayerState.COMPLETED: 
    645648                                        imageDelay.start(); 
    646649                                        break; 
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/view/components/ControlbarComponent.as

    r2217 r2234  
     1// TODO: remove backgroundcolor 
     2// TODO: remove buttonColor, blankButton 
     3 
    14package com.longtailvideo.jwplayer.view.components { 
    25        import com.longtailvideo.jwplayer.events.ComponentEvent; 
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/view/components/CoreComponent.as

    r2192 r2234  
    9090                 
    9191                protected function getConfigParam(param:String):* { 
    92                         return player.config.pluginConfig(_name)[param]; 
     92                        return player.config.pluginConfig(_name)[param.toLowerCase()]; 
    9393                } 
    9494                 
    9595                protected function setConfigParam(param:String, value:*):void { 
    96                         player.config.pluginConfig(_name)[param] = value; 
     96                        player.config.pluginConfig(_name)[param.toLowerCase()] = value; 
    9797                } 
    9898                 
     
    108108                        return getConfigParam("fontcolor") ? new Color(String(getConfigParam("fontcolor"))) : null; 
    109109                } 
    110                  
     110 
     111                protected function get fontOverColor():Color { 
     112                        return getConfigParam("fontovercolor") ? new Color(String(getConfigParam("fontovercolor"))) : null; 
     113                } 
     114 
    111115                protected function get fontSize():Number { 
    112116                        return getConfigParam("fontsize") ? Number(getConfigParam("fontsize")) : 0; 
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/view/components/DisplayComponent.as

    r2198 r2234  
    11package 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.*; 
    147         
    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.*; 
    3215 
    3316        /** 
     
    4528         
    4629        public class DisplayComponent extends CoreComponent implements IDisplayComponent { 
    47                 protected var _icon:DisplayObject; 
     30                protected var _icon:DisplayIcon; 
    4831                protected var _iconArea:Rectangle; 
    4932                protected var _background:MovieClip; 
    5033                protected var _overlay:Sprite; 
    51                 protected var _text:TextField; 
    52                 protected var _textBack:Sprite; 
    5334                protected var _icons:Object; 
    54                 protected var _rotateInterval:Number; 
    55                 protected var _bufferIcon:Sprite; 
    56                 protected var _rotate:Boolean = true; 
    5735                protected var _youtubeMask:MovieClip; 
    58                  
    59                 protected var _bufferRotationTime:Number = 100; 
    60                 protected var _bufferRotationAngle:Number = 15; 
    6136                 
    6237                protected var _bufferStateTimer:Timer; 
    6338                protected var _playStateTimer:Timer; 
    6439                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 
    6649                protected var _forced:String = ""; 
    6750                 
     
    7154                        setupDisplayObjects(); 
    7255                        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')); 
    7560                         
    7661                        _bufferStateTimer = new Timer(50, 1); 
     
    7964                        _playStateTimer = new Timer(50, 1); 
    8065                        _playStateTimer.addEventListener(TimerEvent.TIMER_COMPLETE, showPlayIcon); 
     66                         
    8167                } 
    8268                 
     
    9682 
    9783                private function addListeners():void { 
    98                         player.addEventListener(MediaEvent.JWPLAYER_MEDIA_MUTE, stateHandler); 
    9984                        player.addEventListener(PlayerStateEvent.JWPLAYER_PLAYER_STATE, stateHandler); 
    10085                        player.addEventListener(PlayerEvent.JWPLAYER_ERROR, errorHandler); 
     
    117102                        addChildAt(_overlay, 1); 
    118103                         
    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")); 
    130106                         
    131107                        _youtubeMask = new MovieClip(); 
     
    137113                        setupIcon('buffer'); 
    138114                        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); 
    198136                        } 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; 
    242152                } 
    243153                 
     
    252162 
    253163                        positionIcon(); 
    254                         positionText(); 
    255164                        stateHandler(); 
    256165                } 
    257166                 
    258167                 
    259                 public function setIcon(displayIcon:DisplayObject):void { 
     168                protected function setIcon(displayIcon:DisplayIcon):void { 
    260169                        var sendShowEvent:Boolean = false; 
    261170                        var sendHideEvent:Boolean = false; 
     
    275184                        } 
    276185                        if (displayIcon && _player.config.icons && (getConfigParam("icons") === true || typeof(getConfigParam("icons")) == "undefined")) { 
    277                                 if (displayIcon is Sprite) { 
    278                                         setIconHover(displayIcon as Sprite, false); 
    279                                 } 
    280186                                _icon = displayIcon; 
    281187                                _overlay.addChild(_icon); 
     
    297203                private function positionIcon():void { 
    298204                        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; 
    343212                        setIcon(displayIcon); 
    344                         setText(displayText != null ? displayText : text.text); 
    345213                } 
    346214                 
     
    357225                        if (_previousState != currentState || !(event is PlayerStateEvent)) { 
    358226                                _previousState = currentState; 
    359                                 //TODO: Handle mute button in error state 
    360227                                clearRotation(); 
    361228                                _bufferStateTimer.reset(); 
     
    365232                                switch (currentState) { 
    366233                                        case PlayerState.BUFFERING: 
     234                                                _errorState = false; 
    367235                                                _bufferStateTimer.start(); 
    368236                                                break; 
     
    371239                                                _playStateTimer.start(); 
    372240                                                break; 
     241                                        case PlayerState.COMPLETED: 
     242                                                setDisplay(getIcon('replay')); 
     243                                                break; 
    373244                                        default: 
    374                                                 if ( player.config.mute && getConfigParam("showmute") ) { 
    375                                                         setDisplay(_icons['mute']); 
    376                                                 } else { 
    377                                                         clearDisplay(); 
    378                                                 } 
     245                                                clearDisplay(); 
    379246                                } 
    380247                        } 
     
    382249                 
    383250                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                         
    388255                } 
    389256 
    390257                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 
    406268                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); 
    412270                } 
    413271                 
    414272                 
    415273                protected function errorHandler(event:PlayerEvent):void { 
    416                         setDisplay(null, event.message); 
     274                        setDisplay(getIcon('error'), event.message); 
     275                        _errorState = true; 
    417276                } 
    418277                 
     
    425284                                dispatchEvent(new ViewEvent(ViewEvent.JWPLAYER_VIEW_PLAY)); 
    426285                        } 
    427                 } 
    428                  
    429                  
    430                 protected function get text():TextField { 
    431                         return _text; 
    432286                } 
    433287                 
     
    488342                } 
    489343                 
     344                protected function getIcon(name:String):DisplayIcon { 
     345                        return _icons[name]; 
     346                } 
     347                 
    490348        } 
    491349} 
  • 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 
    14package com.longtailvideo.jwplayer.view.components { 
    25        import com.longtailvideo.jwplayer.events.PlayerStateEvent; 
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/view/interfaces/IDisplayComponent.as

    r2192 r2234  
    3737 
    3838        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; 
    4141                function forceState(forcedState:String):void; 
    4242                function releaseState():void; 
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/view/interfaces/ISkin.as

    r2196 r2234  
    2828                function load(url:String=null):void; 
    2929                 
     30                 
     31                /** 
     32                 * Lists the components available in the skin 
     33                 **/ 
     34                 
     35                function get components():Vector.<String>; 
     36                 
    3037                /** 
    3138                 * Returns the availability of skin elements for a given component. 
     
    3946                function hasComponent(component:String):Boolean; 
    4047 
     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                 
    4158                /** 
    4259                 *  
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/view/skins/PNGSkin.as

    r2217 r2234  
    1111        import flash.events.ErrorEvent; 
    1212        import flash.events.Event; 
     13        import flash.events.EventDispatcher; 
    1314        import flash.utils.Dictionary; 
    1415 
     
    2728        [Event(name="error", type = "flash.events.ErrorEvent")] 
    2829 
    29         public class PNGSkin extends SkinBase implements ISkin { 
     30        public class PNGSkin extends EventDispatcher implements ISkin { 
    3031                 
    3132                protected var _urlPrefix:String; 
     
    4041                use namespace skinNS; 
    4142 
    42                 public override function load(url:String=null):void { 
     43                public function load(url:String=null):void { 
    4344                        if (Strings.extension(url) == "xml" ) { 
    4445                                _urlPrefix = url.substring(0, url.lastIndexOf('/')+1); 
     
    4849                                loader.addEventListener(ErrorEvent.ERROR, loadError); 
    4950                                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"); 
    5253                        } 
    5354                } 
     
    6970                protected function parseSkin():void { 
    7071                        if (_skinXML.localName() != "skin") { 
    71                                 sendError("PNG skin descriptor file not correctly formatted"); 
     72                                sendError("Error loading skin: Skin formatting error"); 
    7273                                return; 
    7374                        } 
     
    113114                                } else { 
    114115                                        if (_props.hasOwnProperty(setting.@name.toString())) { 
    115                                                 _props[setting.@name.toString()] = setting.@value.toString(); 
     116                                                _props[setting.@name.toString().toLowerCase()] = setting.@value.toString(); 
    116117                                        } 
    117118                                } 
     
    184185                 
    185186                 
    186                 public override function getSkinProperties():SkinProperties { 
     187                public function getSkinProperties():SkinProperties { 
    187188                        return _props;  
    188189                } 
    189190                 
    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(); 
    191194                        if (_components[component] && _components[component][element]){ 
    192195                                var sprite:Sprite = _components[component][element] as Sprite; 
     
    204207                } 
    205208                 
    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(); 
    207212                        if (!_components[component]) { 
    208213                                _components[component] = {}; 
     
    217222                } 
    218223                 
    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 
    222254        } 
    223255} 
  • branches/jw6/src/flash/com/longtailvideo/jwplayer/view/skins/ZIPSkin.as

    r2217 r2234  
    3939                                urlStream.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadError); 
    4040                                urlStream.load(new URLRequest(url)); 
    41                         } else if (_skin.numChildren == 0) { 
     41                        } else { 
    4242                                sendError("ZIP skin descriptor file must have a .zip extension"); 
    4343                        } 
  • branches/jw6/src/js/embed/jwplayer.embed.download.js

    r2220 r2234  
    132132                }; 
    133133                 
     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                 */ 
    134138                function _embedYouTube(path) { 
    135139                        var embed = _createElement("embed", "", _container); 
  • branches/jw6/src/js/embed/jwplayer.embed.flash.js

    r2217 r2234  
    218218                                appendAttribute(obj, 'flashvars', flashvars); 
    219219                                 
    220                                 obj.onerror = function() { 
    221                                         alert("does this work?"); 
    222                                 } 
    223                                  
    224220                                _container.parentNode.replaceChild(obj, _container); 
    225221                                flashPlayer = obj; 
  • branches/jw6/src/js/embed/jwplayer.embed.js

    r2217 r2234  
    7979                 
    8080                function _errorScreen(container, message) { 
     81                        if (!_config.fallback) return; 
     82                                 
    8183                        var style = container.style; 
    8284                        style.backgroundColor = "#000"; 
     
    8789                        style.padding = "50px"; 
    8890                         
    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>"); 
    9498 
    9599                        container.innerHTML = ""; 
  • branches/jw6/src/js/html5/jwplayer.html5.controlbar.js

    r2197 r2234  
     1// TODO: remove backgroundcolor 
     2// TODO: remove buttonColor, blankButton 
     3 
     4 
    15/** 
    26 * JW Player HTML5 Controlbar component 
  • branches/jw6/src/js/html5/jwplayer.html5.display.js

    r2217 r2234  
    8484                // Create the icons which will be displayed inside of the display button 
    8585                function _createIcons() { 
    86                         var iconNames = ['play', 'buffer']; 
     86                        var iconNames = ['play', 'buffer', 'error', 'repeat']; 
    8787                        for (var i=0; i<iconNames.length; i++) { 
    8888                                var iconName = iconNames[i], 
     
    9191                                        icon = DOCUMENT.createElement("div"), 
    9292                                        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"), 
    9498                                        button = DOCUMENT.createElement("button"); 
    9599                         
     
    100104                                         
    101105                                        _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); 
    103107                                         
    104108                                        if (bgOver || iconOver) { 
  • branches/jw6/src/js/html5/jwplayer.html5.js

    r2220 r2234  
    77(function(jwplayer) { 
    88        jwplayer.html5 = {}; 
    9         jwplayer.html5.version = '6.0.2220'; 
     9        jwplayer.html5.version = '6.0.2234'; 
    1010})(jwplayer); 
  • branches/jw6/src/js/html5/jwplayer.html5.skin.js

    r2217 r2234  
    2222                 
    2323                this.getSkinElement = function(component, element) { 
     24                        component = _lowerCase(component); 
     25                        element = _lowerCase(element); 
    2426                        if (_loaded) { 
    2527                                try { 
     
    3335                 
    3436                this.getComponentSettings = function(component) { 
     37                        component = _lowerCase(component); 
    3538                        if (_loaded && _components && _components[component]) { 
    3639                                return _components[component].settings; 
     
    4043                 
    4144                this.getComponentLayout = function(component) { 
     45                        component = _lowerCase(component); 
    4246                        if (_loaded) { 
    4347                                var lo = _components[component].layout; 
     
    4852                }; 
    4953                 
     54                function _lowerCase(string) { 
     55                        return string.toLowerCase(); 
     56                } 
     57                 
    5058        }; 
    5159})(jwplayer.html5); 
  • branches/jw6/src/js/html5/jwplayer.html5.skinloader.js

    r2217 r2234  
    1111        /** Constructor **/ 
    1212        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; 
    2021                 
    2122                /** Load the skin **/ 
     
    2829                                        return; 
    2930                                } 
    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                } 
    4753                 
    4854                function _loadSkin(xml) { 
    4955                        var components = xml.getElementsByTagName('component'); 
    5056                        if (components.length === 0) { 
    51                                 return; 
     57                                errorHandler("Skin formatting error") 
    5258                        } 
    5359                        for (var componentIndex = 0; componentIndex < components.length; componentIndex++) { 
    54                                 var componentName = components[componentIndex].getAttribute("name"); 
     60                                var componentName = _lowerCase(components[componentIndex].getAttribute("name")); 
    5561                                var component = { 
    5662                                        settings: {}, 
     
    7076                                                var value = settings[settingIndex].getAttribute("value"); 
    7177                                                if(/color$/.test(name)) { value = _utils.stringToColor(value); } 
    72                                                 _skin[componentName].settings[name] = value; 
     78                                                component.settings[_lowerCase(name)] = value; 
    7379                                        } 
    7480                                } 
     
    7783                                        var groups = layout.getElementsByTagName('group'); 
    7884                                        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; 
    8390                                                for (var attributeIndex = 0; attributeIndex < group.attributes.length; attributeIndex++) { 
    8491                                                        var attribute = group.attributes[attributeIndex]; 
    85                                                         _skin[componentName].layout[group.getAttribute("position")][attribute.name] = attribute.value; 
     92                                                        _layout[attribute.name] = attribute.value; 
    8693                                                } 
    8794                                                var groupElements = group.getElementsByTagName('*'); 
    8895                                                for (var groupElementIndex = 0; groupElementIndex < groupElements.length; groupElementIndex++) { 
    8996                                                        var element = groupElements[groupElementIndex]; 
    90                                                         _skin[componentName].layout[group.getAttribute("position")].elements.push({ 
     97                                                        _layout.elements.push({ 
    9198                                                                type: element.tagName 
    9299                                                        }); 
    93100                                                        for (var elementAttributeIndex = 0; elementAttributeIndex < element.attributes.length; elementAttributeIndex++) { 
    94101                                                                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; 
    96103                                                        } 
    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; 
    99106                                                        } 
    100107                                                } 
     
    121128                /** Load the data for a single element. **/ 
    122129                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                         
    127136                        if (elementSource.indexOf('data:image/png;base64,') === 0) { 
    128137                                imgUrl = elementSource; 
     
    172181                                if (component != 'properties') { 
    173182                                        for (var element in _skin[component].elements) { 
    174                                                 if (!_skin[component].elements[element].ready) { 
     183                                                if (!_getElement(component, element).ready) { 
    175184                                                        return; 
    176185                                                } 
     
    184193                } 
    185194                 
    186                  
    187195                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; 
    193202                                _resetCompleteIntervalTest(); 
    194203                        } else { 
     
    197206                } 
    198207                 
     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                } 
    199216                _load(); 
    200217        }; 
  • branches/jw6/src/js/html5/utils/jwplayer.html5.utils.css.js

    r2199 r2234  
    6464                        default: 
    6565                                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; 
    6767                                } else if (value === 0) { 
    6868                                        return 0 + importantString; 
  • branches/jw6/src/js/jwplayer.js

    r2220 r2234  
    1111var $jw = jwplayer; 
    1212 
    13 jwplayer.version = '6.0.2220'; 
     13jwplayer.version = '6.0.2234'; 
    1414 
    1515// "Shiv" method for older IE browsers; required for parsing media tags 
  • branches/jw6/src/js/utils/jwplayer.utils.extensionmap.js

    r2219 r2234  
    3636                        "ogg": mimeMap[ogg], 
    3737                        "oga": mimeMap[ogg], 
    38                         "ogv": mimeMap[ogg], 
    3938                        "webm": mimeMap[webm], 
    4039                        "m3u8": mimeMap.hls, 
  • branches/jw6/test/embedder.html

    r2202 r2234  
    2222                      playlist: [{ 
    2323                              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"}, 
    2525                                             { file: 'http://content.bitsontherun.com/videos/nPripu9l-1Lq5Mnwq.xyz', type: "webm" }               
    2626                                          ], 
    2727                                          image: 'http://content.bitsontherun.com/thumbs/gSzpo2wh-480.jpg', 
    2828                                          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"  
    3030                                      },{ 
    3131                                          sources:[ 
     
    5050    <form id="form"> 
    5151      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> 
    5454        <option value="../../../skins/stormtrooper/stormtrooper.zip">stormtrooper</option> 
    5555        <option value="../../../skins/glow/glow.zip">glow</option> 
     
    5757        <option value="../../../tags/skins/snel/snel.zip">snel</option> 
    5858        <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> 
    6060      </select> 
    6161          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> 
    6464      </select> 
    6565      <input type="submit" style="opacity:0; left: -10000px"/> 
Note: See TracChangeset for help on using the changeset viewer.