Changeset 2190


Ignore:
Timestamp:
05/09/12 10:01:00 (13 months ago)
Author:
pablo
Message:
  • Cookies volume and mute changes
  • Adds autostart option
  • Adds controls option
  • Adds icons option
  • Adds stretching option to video tag
  • Don't fade controls if mouse is hovering the controlbar
Location:
branches/jw6
Files:
10 edited

Legend:

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

    r2189 r2190  
    316316                        var split = cookies[i].split('='); 
    317317                        if (split[0].indexOf("jwplayer.") == 0) { 
    318                                 jwCookies[split[0].substring(9, split[0].length)] = split[1]; 
     318                                jwCookies[split[0].substring(9, split[0].length)] = utils.strings.serialize(split[1]); 
    319319                        } 
    320320                } 
     
    412412        }; 
    413413 
     414        utils.transform = function(domelement, xscale, yscale, xoffset, yoffset) { 
     415                // Set defaults 
     416                if (!jwplayer.utils.exists(xscale)) xscale = 1; 
     417                if (!jwplayer.utils.exists(yscale)) yscale = 1; 
     418                if (!jwplayer.utils.exists(xoffset)) xoffset = 0; 
     419                if (!jwplayer.utils.exists(yoffset)) yoffset = 0; 
     420                 
     421                if (xscale == 1 && yscale == 1 && xoffset == 0 && yoffset == 0) { 
     422                        domelement.style.webkitTransform = ""; 
     423                        domelement.style.MozTransform = ""; 
     424                        domelement.style.msTransform = ""; 
     425                        domelement.style.OTransform = ""; 
     426                } else { 
     427                        var value = "scale("+xscale+","+yscale+") translate("+xoffset+"px,"+yoffset+"px)"; 
     428                        domelement.style.webkitTransform = value; 
     429                        domelement.style.MozTransform = value; 
     430                        domelement.style.msTransform = value; 
     431                        domelement.style.OTransform = value; 
     432                } 
     433        }; 
     434         
    414435        /** 
    415436         * Stretches domelement based on stretching. parentWidth, parentHeight, 
     
    431452         *            elementHeight 
    432453         */ 
    433         utils.stretch = function(stretching, domelement, parentWidth, 
    434                         parentHeight, elementWidth, elementHeight, transform) { 
    435  
    436                 var xscale = (utils.exists(parentWidth) && utils.exists(elementWidth)) ? parentWidth / elementWidth : 0, 
    437                         yscale = (utils.exists(parentHeight) && utils.exists(elementHeight)) ? parentHeight / elementHeight : 0, 
    438                         x = 0, y = 0, 
     454        utils.stretch = function(stretching, domelement, parentWidth, parentHeight, elementWidth, elementHeight) { 
     455                if (!domelement) return; 
     456                if (!parentWidth || !parentHeight || !elementWidth || !elementHeight) return; 
     457                 
     458                var xscale = parentWidth / elementWidth, 
     459                        yscale = parentHeight / elementHeight, 
     460                        xoff = 0, yoff = 0, 
    439461                        style = {}, 
     462                        video = (domelement.tagName.toLowerCase() == "video"), 
     463                        transform = false, 
    440464                        stretchClass; 
    441465                 
     466                if (video) { 
     467                        utils.transform(domelement); 
     468                } 
     469 
     470                stretchClass = "jw" + stretching.toLowerCase(); 
     471                 
    442472                switch (stretching.toLowerCase()) { 
     473                case _stretching.FILL: 
     474                        if (xscale > yscale) { 
     475                                elementWidth = elementWidth * xscale; 
     476                                elementHeight = elementHeight * xscale; 
     477                        } else { 
     478                                elementWidth = elementWidth * yscale; 
     479                                elementHeight = elementHeight * yscale; 
     480                        } 
    443481                case _stretching.NONE: 
    444                 case _stretching.FILL: 
     482                        xscale = yscale = 1; 
    445483                case _stretching.EXACTFIT: 
    446                         stretchClass = "jw" + stretching.toLowerCase(); 
     484                transform = true; 
    447485                        break; 
    448486                case _stretching.UNIFORM: 
    449                         stretchClass = "jw" + stretching.toLowerCase(); 
    450487                        if (xscale > yscale) { 
    451                                 if ( (elementWidth * yscale) / parentWidth > 0.95) { 
     488                                elementWidth = elementWidth * yscale; 
     489                                elementHeight = elementHeight * yscale; 
     490                                if (elementWidth / parentWidth > 0.95) { 
     491                                        transform = true; 
    452492                                        stretchClass = "jwexactfit"; 
     493                                        xscale = Math.ceil(100 * parentWidth / elementWidth) / 100; 
     494                                        yscale = 1; 
    453495                                } 
    454496                        } else { 
    455                                 if ( (elementHeight * xscale) / parentHeight > 0.95) { 
     497                                elementWidth = elementWidth * xscale; 
     498                                elementHeight = elementHeight * xscale; 
     499                                if (elementHeight / parentHeight > 0.95) { 
     500                                        transform = true; 
    456501                                        stretchClass = "jwexactfit"; 
     502                                        yscale = Math.ceil(100 * parentHeight / elementHeight) / 100; 
     503                                        xscale = 1; 
    457504                                } 
    458505                        } 
    459506                        break; 
    460507                default: 
     508                        return; 
    461509                        break; 
    462510                } 
    463511 
    464                 domelement.className = domelement.className.replace(/\s*jw(none|exactfit|uniform|fill)/g, ""); 
    465                 domelement.className += " " + stretchClass; 
     512                if (video) { 
     513                        if (transform) { 
     514                                domelement.style.width = elementWidth + "px"; 
     515                                domelement.style.height = elementHeight + "px";  
     516                                xoff = ((parentWidth - elementWidth) / 2) / xscale; 
     517                                yoff = ((parentHeight - elementHeight) / 2) / yscale; 
     518                                utils.transform(domelement, xscale, yscale, xoff, yoff); 
     519                        } else { 
     520                                domelement.style.width = ""; 
     521                                domelement.style.height = ""; 
     522                        } 
     523                } else { 
     524                        domelement.className = domelement.className.replace(/\s*jw(none|exactfit|uniform|fill)/g, ""); 
     525                        domelement.className += " " + stretchClass; 
     526                } 
    466527        }; 
    467528         
     
    13851446                        _addEventListeners(); 
    13861447                        _playlistHandler(); 
     1448                        _volumeHandler(); 
     1449                        _muteHandler(); 
    13871450                } 
    13881451                 
     
    14531516                } 
    14541517                 
    1455                 function _muteHandler(evt) { 
    1456                         _toggleButton("mute", evt.mute); 
    1457                         _setVolume(evt.mute ? 0 : _currentVolume) 
     1518                function _muteHandler() { 
     1519                        var state = _api.jwGetMute(); 
     1520                        _toggleButton("mute", state); 
     1521                        _setVolume(state ? 0 : _currentVolume) 
    14581522                } 
    14591523 
    1460                 function _volumeHandler(evt) { 
    1461                         _currentVolume = evt.volume / 100; 
     1524                function _volumeHandler() { 
     1525                        _currentVolume = _api.jwGetVolume() / 100; 
    14621526                        _setVolume(_currentVolume); 
    14631527                } 
     
    19732037                position: JW_CSS_ABSOLUTE, 
    19742038                overflow: 'hidden', 
     2039                opacity: 0, 
    19752040        '-webkit-transition': JW_CSS_SMOOTH_EASE, 
    19762041        '-moz-transition': JW_CSS_SMOOTH_EASE, 
     
    20762141 
    20772142                function _init() { 
    2078                         _model.addGlobalListener(_forward); 
    20792143                        _model.addEventListener(_events.JWPLAYER_MEDIA_BUFFER_FULL, _bufferFullHandler); 
    20802144                        _model.addEventListener(_events.JWPLAYER_MEDIA_COMPLETE, _completeHandler); 
     
    20832147                function _playerReady(evt) { 
    20842148                        _view.completeSetup(); 
    2085                         _controller.sendEvent(evt.type, evt); 
    2086                         _controller.sendEvent(jwplayer.events.JWPLAYER_PLAYLIST_LOADED, {playlist: _model.playlist}); 
    2087                         _controller.sendEvent(jwplayer.events.JWPLAYER_PLAYLIST_ITEM, {index: _model.item}); 
    2088                         _controller.load(); 
     2149                        _eventDispatcher.sendEvent(evt.type, evt); 
     2150                        _eventDispatcher.sendEvent(jwplayer.events.JWPLAYER_PLAYLIST_LOADED, {playlist: _model.playlist}); 
     2151                        _eventDispatcher.sendEvent(jwplayer.events.JWPLAYER_PLAYLIST_ITEM, {index: _model.item}); 
     2152                        _model.addGlobalListener(_forward); 
     2153                        _load(); 
     2154                        if (_model.autostart && !_utils.isMobile()) { 
     2155                                _play(); 
     2156                        } 
    20892157                } 
    20902158                 
     
    21142182                                break; 
    21152183                        } 
    2116                                  
    21172184                } 
    21182185                 
     
    21902257                function _seek(pos) { 
    21912258                        _video.seek(pos); 
    2192                 } 
    2193                  
    2194                 function _setVolume(vol) { 
    2195                         _video.volume(vol); 
    2196                 } 
    2197                  
    2198                 function _setMute(state) { 
    2199                         if (!_utils.exists(state)) state = !_model.mute; 
    2200                         _video.mute(state); 
    22012259                } 
    22022260                 
     
    22862344                this.prev = _waitForReady(_prev); 
    22872345                this.item = _waitForReady(_item); 
    2288                 this.setVolume = _waitForReady(_setVolume); 
    2289                 this.setMute = _waitForReady(_setMute); 
     2346                this.setVolume = _waitForReady(_model.setVolume); 
     2347                this.setMute = _waitForReady(_model.setMute); 
    22902348                this.setFullscreen = _waitForReady(_setFullscreen); 
    22912349                this.setStretching = _waitForReady(_setStretching); 
     
    23702428                        _rotationInterval,  
    23712429                        _config = _utils.extend({ 
    2372                                 backgroundcolor: '#000' 
     2430                                backgroundcolor: '#000', 
     2431                                showicons: true 
    23732432                        }, _skin.getComponentSettings('display'), config); 
    23742433                        _bufferRotation = !_utils.exists(_config.bufferrotation) ? 15 : parseInt(_config.bufferrotation, 10),  
     
    24732532                 
    24742533                function _setIcon(name) { 
     2534                        if (!_config.showicons) return; 
     2535                         
    24752536                        if (_button) { 
    24762537                                _display.removeChild(_button); 
     
    24792540                        if (_button) { 
    24802541                                _display.appendChild(_button); 
     2542                        } 
     2543                         
     2544                        if (name == "buffer") { 
     2545                                _degreesRotated = 0; 
     2546                                _rotationInterval = setInterval(function() { 
     2547                                        _degreesRotated += _bufferRotation; 
     2548                                        _rotate(_button.childNodes[0], _degreesRotated % 360); 
     2549                                }, _bufferInterval); 
    24812550                        } 
    24822551                } 
     
    25122581                        case _states.BUFFERING: 
    25132582                                _setIcon('buffer'); 
    2514                                 _degreesRotated = 0; 
    2515                                 _rotationInterval = setInterval(function() { 
    2516                                         _degreesRotated += _bufferRotation; 
    2517                                         _rotate(_button.childNodes[0], _degreesRotated % 360); 
    2518                                 }, _bufferInterval); 
    25192583                                break; 
    25202584                        case _states.PLAYING: 
     
    25752639                        }); 
    25762640                } 
    2577                  
     2641 
    25782642                this.show = function() { 
    25792643                        _setVisibility('', true); 
     
    26042668                width: JW_CSS_100PCT, 
    26052669                height: JW_CSS_100PCT, 
    2606                 overflow: 'hidden' 
     2670                overflow: 'hidden', 
     2671                opacity: 0 
    26072672        }); 
    26082673 
     
    29793044(function(html5) { 
    29803045        var _utils = jwplayer.utils, 
    2981                 _events = jwplayer.events; 
     3046                _events = jwplayer.events, 
     3047                UNDEF = undefined; 
    29823048 
    29833049        html5.model = function(config) { 
     
    29893055                        // Saved settings 
    29903056                        _cookies = _utils.getCookies(), 
     3057                        // Sub-component configurations 
     3058                        _componentConfigs = {}; 
    29913059                        // Defaults 
    29923060                        _defaults = { 
    2993                                 width: 480, 
     3061                                autostart: false, 
     3062                                controls: true, 
     3063                                debug: UNDEF, 
    29943064                                height: 320, 
     3065                                icons: true, 
    29953066                                item: 0, 
     3067                                mute: false, 
    29963068                                playlist: [], 
    2997                                 skin: undefined, 
     3069                                playlistposition: "right", 
     3070                                playlistsize: 0, 
     3071                                repeat: UNDEF, 
     3072                                skin: UNDEF, 
     3073                                stretching: _utils.stretching.UNIFORM, 
    29983074                                volume: 90, 
    2999                                 mute: false, 
    3000                                 repeat: "", 
    3001                                 playlistsize: 0, 
    3002                                 playlistposition: "right", 
    3003                                 stretching: _utils.stretching.UNIFORM, 
    3004                                 autostart: false, 
    3005                                 debug: undefined 
     3075                                width: 480 
    30063076                        }; 
    30073077 
    30083078                function _parseConfig(config) { 
     3079                        for (var i in config) { 
     3080                                config[i] = _utils.strings.serialize(config[i]); 
     3081                        } 
    30093082                        return config; 
    30103083                } 
     
    30193092                                buffer: 0, 
    30203093                        }, _model.config); 
     3094                        _setComponentConfigs(); 
    30213095                        _model.setItem(_model.config.item); 
    30223096                         
    30233097                        _videoTag = document.createElement("video"); 
    30243098                        _video = new html5.video(_videoTag); 
     3099                        _video.volume(_model.volume); 
     3100                        _video.mute(_model.mute); 
    30253101                        _video.addGlobalListener(_videoEventHandler); 
     3102                } 
     3103                 
     3104                function _setComponentConfigs() { 
     3105                        _componentConfigs.display = { showicons: _model.icons }; 
     3106                        _componentConfigs.controlbar = {}; 
    30263107                } 
    30273108 
     
    30483129                } 
    30493130                 
    3050                 this.getVideo = function() { 
     3131                _model.getVideo = function() { 
    30513132                        return _video; 
    30523133                } 
    30533134                 
    3054                 this.seekDrag = function(state) { 
     3135                _model.seekDrag = function(state) { 
    30553136                        _video.seekDrag(state); 
    30563137                } 
    30573138                 
    3058                 this.setFullscreen = function(state) { 
     3139                _model.setFullscreen = function(state) { 
    30593140                        if (state != _model.fullscreen) { 
    30603141                                _model.fullscreen = state; 
     
    30633144                } 
    30643145                 
    3065                 this.setPlaylist = function(playlist) { 
     3146                _model.setPlaylist = function(playlist) { 
    30663147                        _model.item = -1; 
    30673148                        _model.playlist = playlist; 
     
    30713152                } 
    30723153                 
    3073                 this.setItem = function(index) { 
     3154                _model.setItem = function(index) { 
    30743155                        var newItem; 
    30753156                        if (index == _model.playlist.length || index < -1) 
     
    30883169                } 
    30893170                 
    3090                 this.componentConfig = function(name) { 
    3091                         return {}; 
     3171                _model.setVolume = function(newVol) { 
     3172                        if (_model.mute && newVol > 0) _model.setMute(false); 
     3173                        newVol = Math.round(newVol); 
     3174                        _utils.saveCookie("volume", newVol); 
     3175                        _video.volume(newVol); 
     3176                } 
     3177 
     3178                _model.setMute = function(state) { 
     3179                        if (!_utils.exists(state)) state = !_model.mute; 
     3180                        _utils.saveCookie("mute", state); 
     3181                        _video.mute(state); 
     3182                } 
     3183 
     3184                _model.componentConfig = function(name) { 
     3185                        return _componentConfigs[name]; 
    30923186                } 
    30933187                 
     
    41634257                _state = _states.IDLE, 
    41644258                // Save the volume state before muting 
    4165                 _lastVolume = 0, 
     4259                _lastVolume, 
    41664260                // Using setInterval to check buffered ranges 
    41674261                _bufferInterval = -1, 
     
    43574451 
    43584452                var _volume = this.volume = function(vol) { 
    4359                         if (_videotag.muted) _videotag.muted = false; 
    43604453                        _videotag.volume = vol / 100; 
    4361  
    43624454                } 
    43634455                 
     
    43744466                        if (!_utils.exists(state)) state = !_videotag.mute; 
    43754467                        if (state) { 
    4376                                 _lastVolume = _videotag.volume * 100; 
    4377                                 _volume(0); 
    4378                                 _videotag.muted = true; 
     4468                                if (!_videotag.muted) { 
     4469                                        _lastVolume = _videotag.volume * 100; 
     4470                                        _videotag.muted = true; 
     4471                                        _volume(0); 
     4472                                } 
    43794473                        } else { 
    4380                                 _volume(_lastVolume); 
     4474                                if (_videotag.muted) { 
     4475                                        _volume(_lastVolume); 
     4476                                        _videotag.muted = false; 
     4477                                } 
    43814478                        } 
    43824479                } 
     
    44824579                var _api = api,  
    44834580                        _model = model,  
    4484                         _controls = {}, 
    44854581                        _playerElement, 
    44864582                        _container, 
     
    44894585                        _controlsTimeout=0, 
    44904586                        _timeoutDuration = 2000, 
     4587                        _videoTag, 
    44914588                        _videoLayer, 
    4492                         _instreamLayer; 
     4589                        _instreamLayer, 
     4590                         
     4591                        _controlbar, 
     4592                        _display, 
     4593                        _playlist; 
    44934594 
    44944595                this.setup = function(skin) { 
     
    45034604                        _container = _createElement("span", VIEW_MAIN_CONTAINER_CLASS); 
    45044605                        _videoLayer = _createElement("span", VIEW_VIDEO_CONTAINER_CLASS); 
    4505                         _videoLayer.appendChild(_model.getVideo().getTag()); 
     4606                         
     4607                        _videoTag = _model.getVideo().getTag(); 
     4608                        _videoLayer.appendChild(_videoTag); 
    45064609                        _controlsLayer = _createElement("span", VIEW_CONTROLS_CONTAINER_CLASS); 
    45074610                        _instreamLayer = _createElement("span", VIEW_INSTREAM_CONTAINER_CLASS); 
     
    45244627                        _stateHandler({newstate:_states.IDLE}); 
    45254628                         
    4526                         _playerElement.addEventListener('mouseout', _fadeControls, false); 
    4527                         _playerElement.addEventListener('mousemove', function(evt) { 
    4528                                 _showControls(); 
    4529                                 clearTimeout(_controlsTimeout); 
    4530                                 _controlsTimeout = setTimeout(_fadeControls, _timeoutDuration); 
    4531                         }, false); 
     4629                        _controlsLayer.addEventListener('mouseout', _fadeControls, false); 
     4630                        _controlsLayer.addEventListener('mousemove', _startFade, false); 
     4631                        if (_controlbar) { 
     4632                                _controlbar.getDisplayElement().addEventListener('mousemove', _cancelFade, false); 
     4633                                _controlbar.getDisplayElement().addEventListener('mouseout', _resumeFade, false); 
     4634                        } 
     4635 
    45324636                         
    45334637                } 
     
    45394643                } 
    45404644                 
     4645                function _startFade() { 
     4646                        clearTimeout(_controlsTimeout); 
     4647                        if (_api.jwGetState() == _states.PLAYING || _api.jwGetState() == _states.PAUSED) { 
     4648                                _showControlbar(); 
     4649                                if (!_inCB) { 
     4650                                        _controlsTimeout = setTimeout(_fadeControls, _timeoutDuration); 
     4651                                } 
     4652                        } 
     4653                } 
     4654                 
     4655                var _inCB = false; 
     4656                 
     4657                function _cancelFade() { 
     4658                        clearTimeout(_controlsTimeout); 
     4659                        _inCB = true; 
     4660                } 
     4661                 
     4662                function _resumeFade() { 
     4663                        _inCB = false; 
     4664                } 
     4665                 
    45414666                function _fadeControls() { 
    4542                         if (_api.jwGetState() == _states.PLAYING) { 
    4543                                 _hideControls(); 
     4667                        if (_api.jwGetState() == _states.PLAYING || _api.jwGetState() == _states.PAUSED) { 
     4668                                _hideControlbar(); 
    45444669                        } 
    45454670                        clearTimeout(_controlsTimeout); 
     
    45544679                 
    45554680                        if (height > 40 || height.indexOf("%")) { 
    4556                                 _controls.display = new html5.display(_api, displaySettings); 
    4557                                 _controlsLayer.appendChild(_controls.display.getDisplayElement()); 
    4558                                 displaySettings.backgroundcolor = _controls.display.getBGColor(); 
     4681                                _display = new html5.display(_api, displaySettings); 
     4682                                _controlsLayer.appendChild(_display.getDisplayElement()); 
     4683                                displaySettings.backgroundcolor = _display.getBGColor(); 
    45594684                        } else { 
    45604685                                displaySettings.backgroundcolor = 'transparent'; 
     
    45664691                         
    45674692                        if (_model.playlistsize > 0 && _model.playlistposition && _model.playlistposition != "none") { 
    4568                                 _controls.playlist = new html5.playlistcomponent(_api, {}); 
    4569                                 _playlistLayer.appendChild(_controls.playlist.getDisplayElement()); 
     4693                                _playlist = new html5.playlistcomponent(_api, {}); 
     4694                                _playlistLayer.appendChild(_playlist.getDisplayElement()); 
    45704695                        } 
    45714696 
     
    45744699                        if (!_utils.isMobile()) { 
    45754700                                // TODO: allow override for showing HTML controlbar on iPads 
    4576                                 _controls.controlbar = new html5.controlbar(_api, cbSettings); 
    4577                                 _controlsLayer.appendChild(_controls.controlbar.getDisplayElement()); 
     4701                                _controlbar = new html5.controlbar(_api, cbSettings); 
     4702                                _controlsLayer.appendChild(_controlbar.getDisplayElement()); 
    45784703                        } 
    45794704                } 
     
    46284753                        } 
    46294754 
    4630                         if (_controls.display) { 
    4631                                 _controls.display.resize(width, height); 
    4632                         } 
    4633                         if (_controls.controlbar) { 
    4634                                 _controls.controlbar.resize(width, height); 
     4755                        if (_display) { 
     4756                                _display.resize(width, height); 
     4757                        } 
     4758                        if (_controlbar) { 
     4759                                _controlbar.resize(width, height); 
    46354760                        } 
    46364761                        var playlistSize = _model.playlistsize, 
    46374762                                playlistPos = _model.playlistposition 
    46384763                         
    4639                         if (_controls.playlist && playlistSize > 0 && playlistPos) { 
    4640                                 _controls.playlist.resize(width, height); 
     4764                        if (_playlist && playlistSize > 0 && playlistPos) { 
     4765                                _playlist.resize(width, height); 
    46414766                                 
    46424767                                var playlistStyle = { display: "block" }, containerStyle = {}; 
     
    46534778                                _css(_internalSelector(VIEW_MAIN_CONTAINER_CLASS), containerStyle); 
    46544779                        } 
     4780                         
     4781                        _resizeMedia(); 
    46554782 
    46564783                        return; 
    46574784                } 
    46584785                 
     4786                function _resizeMedia() { 
     4787                        _utils.stretch(_model.stretching, _videoTag,  
     4788                                        _videoLayer.clientWidth, _videoLayer.clientHeight,  
     4789                                        _videoTag.videoWidth, _videoTag.videoHeight); 
     4790                } 
     4791                 
    46594792                this.resize = _resize; 
     4793                this.resizeMedia = _resizeMedia; 
    46604794 
    46614795                this.completeSetup = function() { 
     
    47124846                        _fullscreen(_model.fullscreen); 
    47134847                } 
     4848                 
     4849                function _showControlbar() { 
     4850                        if (_controlbar && _model.controls) _controlbar.show(); 
     4851                } 
     4852                function _hideControlbar() { 
     4853                        if (_controlbar) _controlbar.hide(); 
     4854                } 
     4855                function _showDisplay() { 
     4856                        if (_display) _display.show(); 
     4857                } 
     4858                function _hideDisplay() { 
     4859                        if (_display) _display.hide(); 
     4860                } 
    47144861 
    47154862                function _hideControls() { 
    4716                         if (_controls.controlbar) _controls.controlbar.hide(); 
    4717                         if (_controls.display) _controls.display.hide(); 
     4863                        _hideControlbar(); 
     4864                        _hideDisplay(); 
    47184865                } 
    47194866 
    47204867                function _showControls() { 
    4721                         if (_controls.controlbar) _controls.controlbar.show(); 
    4722                         if (_controls.display) _controls.display.show(); 
     4868                        _showControlbar(); 
     4869                        _showDisplay(); 
    47234870                } 
    47244871 
     
    47394886                        switch(state) { 
    47404887                        case _states.PLAYING: 
    4741                                 if (_utils.isIPod()) { 
    4742                                         vidstyle.display = "block"; 
    4743                                 } 
     4888                                if (_utils.isIPod()) vidstyle.display = "block"; 
    47444889                                vidstyle.opacity = 1; 
    47454890                                _css(_internalSelector(VIEW_VIDEO_CONTAINER_CLASS), vidstyle); 
    4746                                 _hideControls(); 
     4891                                _resizeMedia(); 
     4892                                _startFade(); 
    47474893                                break; 
    47484894                        case _states.COMPLETED: 
    47494895                        case _states.IDLE: 
    4750                                 if (_utils.isIPod()) { 
    4751                                         vidstyle.display = "none"; 
    4752                                 } 
     4896                                if (_utils.isIPod()) vidstyle.display = "none"; 
    47534897                                vidstyle.opacity = 0; 
    47544898                                _css(_internalSelector(VIEW_VIDEO_CONTAINER_CLASS), vidstyle); 
    4755                                 _showControls(); 
     4899                                _hideControlbar(); 
     4900                                _showDisplay(); 
    47564901                                break; 
    47574902                        case _states.BUFFERING: 
     
    48655010                width: JW_CSS_100PCT, 
    48665011                height: JW_CSS_100PCT, 
     5012                left: 0,  
     5013                right: 0, 
     5014                top: 0, 
     5015                bottom: 0, 
    48675016                'z-index': 1000, 
    48685017                position: "fixed" 
     
    48895038 
    48905039        _css('.' + PLAYER_CLASS+' .jwexactfit', { 
    4891                 'background-size': JW_CSS_100PCT + JW_CSS_IMPORTANT 
     5040                'background-size': JW_CSS_100PCT + " " + JW_CSS_100PCT + JW_CSS_IMPORTANT 
    48925041        }); 
    48935042 
  • branches/jw6/jwplayer.min.js

    r2189 r2190  
    1 if(typeof jwplayer=="undefined"){jwplayer=function(a){if(jwplayer.api){return jwplayer.api.selectPlayer(a)}};var $jw=jwplayer;jwplayer.version="6.0";jwplayer.vid=document.createElement("video");jwplayer.audio=document.createElement("audio");jwplayer.source=document.createElement("source");(function(h){var d=document;var p=window;var o=h.utils=function(){};o.exists=function(t){switch(typeof(t)){case"string":return(t.length>0);break;case"object":return(t!==null);case"undefined":return false}return true};var b={},r,a={};function q(){var t=d.createElement("style");t.type="text/css";d.getElementsByTagName("head")[0].appendChild(t);return t}o.css=function(t,w,u){if(!o.exists(u)){u=false}if(o.isIE()){if(!r){r=q()}}else{if(!b[t]){b[t]=q()}}if(!a[t]){a[t]={}}for(var v in w){var x=g(v,w[v],u);if(o.exists(a[t][v])&&!o.exists(x)){delete a[t][v]}else{a[t][v]=x}}if(o.isIE()){i()}else{e(t,b[t])}};function g(v,w,t){if(typeof w==="undefined"){return undefined}var u=t?" !important":"";if(typeof w=="number"){if(isNaN(w)){return undefined}switch(v){case"z-index":case"opacity":return w+u;break;default:if(v.match(/color/i)){return"#"+o.strings.pad(w.toString(16),6)}else{return Math.ceil(w)+"px"+u}break}}else{return w+u}}function i(){var t="\n";for(var u in a){t+=s(u)}r.innerHTML=t}function e(t,u){if(u){u.innerHTML=s(t)}}function s(t){var u=t+"{\n";var w=a[t];for(var v in w){u+="  "+v+": "+w[v]+";\n"}u+="}\n";return u}o.clearCss=function(u){for(var v in a){if(v.indexOf(u)>=0){delete a[v]}}for(var t in b){if(t.indexOf(u)>=0){b[t].innerHTML=""}}};o.getAbsolutePath=function(z,y){if(!o.exists(y)){y=d.location.href}if(!o.exists(z)){return undefined}if(j(z)){return z}var A=y.substring(0,y.indexOf("://")+3);var x=y.substring(A.length,y.indexOf("/",A.length+1));var u;if(z.indexOf("/")===0){u=z.split("/")}else{var v=y.split("?")[0];v=v.substring(A.length+x.length+1,v.lastIndexOf("/"));u=v.split("/").concat(z.split("/"))}var t=[];for(var w=0;w<u.length;w++){if(!u[w]||!o.exists(u[w])||u[w]=="."){continue}else{if(u[w]==".."){t.pop()}else{t.push(u[w])}}}return A+x+"/"+t.join("/")};function j(u){if(!o.exists(u)){return}var v=u.indexOf("://");var t=u.indexOf("?");return(v>0&&(t<0||(t>v)))}o.extend=function(){var t=o.extend["arguments"];if(t.length>1){for(var v=1;v<t.length;v++){for(var u in t[v]){t[0][u]=t[v][u]}}return t[0]}return null};o.parseDimension=function(t){if(typeof t=="string"){if(t===""){return 0}else{if(t.lastIndexOf("%")>-1){return t}else{return parseInt(t.replace("px",""),10)}}}return t};o.timeFormat=function(t){if(t>0){str=Math.floor(t/60)<10?"0"+Math.floor(t/60)+":":Math.floor(t/60)+":";str+=Math.floor(t%60)<10?"0"+Math.floor(t%60):Math.floor(t%60);return str}else{return"00:00"}};o.log=function(u,t){if(typeof console!="undefined"&&typeof console.log!="undefined"){if(t){console.log(u,t)}else{console.log(u)}}};o.getBoundingClientRect=function(t){if(typeof t.getBoundingClientRect=="function"){return t.getBoundingClientRect()}else{return{left:t.offsetLeft+d.body.scrollLeft,top:t.offsetTop+d.body.scrollTop,width:t.offsetWidth,height:t.offsetHeight}}};var k=o.userAgentMatch=function(u){var t=navigator.userAgent.toLowerCase();return(t.match(u)!==null)};o.isIE=function(){return k(/msie/i)};o.isMobile=function(){return k(/(iP(hone|ad|od))|android/i)};h.utils.isIOS=function(){return k(/iP(hone|ad|od)/i)};o.isIPod=function(){return k(/iP(hone|od)/i)};o.saveCookie=function(t,u){d.cookie="jwplayer."+t+"="+u+"; path=/"};o.getCookies=function(){var w={};var v=d.cookie.split("; ");for(var u=0;u<v.length;u++){var t=v[u].split("=");if(t[0].indexOf("jwplayer.")==0){w[t[0].substring(9,t[0].length)]=t[1]}}return w};o.ajax=function(x,w,t){var v;if(m(x)&&o.exists(p.XDomainRequest)){v=new XDomainRequest();v.onload=n(v,x,w,t);v.onerror=f(t,x,v)}else{if(o.exists(p.XMLHttpRequest)){v=new XMLHttpRequest();v.onreadystatechange=c(v,x,w,t);v.onerror=f(t,x)}else{if(t){t()}}}try{v.open("GET",x,true);v.send(null)}catch(u){if(t){t(x)}}return v};function m(t){if(t&&t.indexOf("://")>=0){if(t.split("/")[2]!=window.location.href.split("/")[2]){return true}}return false}function f(t,v,u){return function(){t(v)}}function c(u,w,v,t){return function(){if(u.readyState===4){if(u.status==200){n(u,w,v,t)()}else{if(t){t(w)}}}}}function n(u,w,v,t){return function(){if(!o.exists(u.responseXML)){try{var x;if(p.DOMParser){x=(new DOMParser()).parseFromString(u.responseText,"text/xml")}else{x=new ActiveXObject("Microsoft.XMLDOM");x.async="false";x.loadXML(u.responseText)}if(x){u=h.utils.extend({},u,{responseXML:x})}}catch(y){if(t){t(w)}return}}v(u)}}o.typeOf=function(u){var t=typeof u;if(t==="object"){if(!u){return"null"}return(u instanceof Array)?"array":t}else{return t}};o.stretch=function(B,H,G,z,F,A,v){var u=(o.exists(G)&&o.exists(F))?G/F:0,w=(o.exists(z)&&o.exists(A))?z/A:0,E=0,D=0,t={},C;switch(B.toLowerCase()){case l.NONE:case l.FILL:case l.EXACTFIT:C="jw"+B.toLowerCase();break;case l.UNIFORM:C="jw"+B.toLowerCase();if(u>w){if((F*w)/G>0.95){C="jwexactfit"}}else{if((A*u)/z>0.95){C="jwexactfit"}}break;default:break}H.className=H.className.replace(/\s*jw(none|exactfit|uniform|fill)/g,"");H.className+=" "+C};var l=o.stretching={NONE:"none",FILL:"fill",UNIFORM:"uniform",EXACTFIT:"exactfit"}})(jwplayer);(function(b){var a=b.strings=function(){};a.trim=function(c){return c.replace(/^\s*/,"").replace(/\s*$/,"")};a.pad=function(d,e,c){if(!c){c="0"}while(d.length<e){d=c+d}return d};a.serialize=function(c){if(c==null){return null}else{if(c=="true"){return true}else{if(c=="false"){return false}else{if(isNaN(Number(c))||c.length>5||c.length==0){return c}else{return Number(c)}}}}};a.seconds=function(e){e=e.replace(",",".");var c=e.split(":");var d=0;if(e.substr(-1)=="s"){d=Number(e.substr(0,e.length-1))}else{if(e.substr(-1)=="m"){d=Number(e.substr(0,e.length-1))*60}else{if(e.substr(-1)=="h"){d=Number(e.substr(0,e.length-1))*3600}else{if(c.length>1){d=Number(c[c.length-1]);d+=Number(c[c.length-2])*60;if(c.length==3){d+=Number(c[c.length-3])*3600}}else{d=Number(e)}}}}return d};a.xmlAttribute=function(c,d){for(var e=0;e<c.attributes.length;e++){if(c.attributes[e].name&&c.attributes[e].name.toLowerCase()==d.toLowerCase()){return c.attributes[e].value.toString()}}return""};a.jsonToString=function(g){var i=i||{};if(i&&i.stringify){return i.stringify(g)}var d=typeof(g);if(d!="object"||g===null){if(d=="string"){g='"'+g.replace(/"/g,'\\"')+'"'}else{return String(g)}}else{var h=[],c=(g&&g.constructor==Array);for(var e in g){var f=g[e];switch(typeof(f)){case"string":f='"'+f.replace(/"/g,'\\"')+'"';break;case"object":if(b.exists(f)){f=a.jsonToString(f)}break}if(c){if(typeof(f)!="function"){h.push(String(f))}}else{if(typeof(f)!="function"){h.push('"'+e+'":'+String(f))}}}if(c){return"["+String(h)+"]"}else{return"{"+String(h)+"}"}}};a.extension=function(c){if(!c){return""}c=c.substring(c.lastIndexOf("/")+1,c.length).split("?")[0];if(c.lastIndexOf(".")>-1){return c.substr(c.lastIndexOf(".")+1,c.length).toLowerCase()}}})(jwplayer.utils);(function(b){var d=new RegExp(/^(#|0x)[0-9a-fA-F]{3,6}/);b.typechecker=function(g,f){f=!b.exists(f)?c(g):f;return e(g,f)};function c(f){var g=["true","false","t","f"];if(g.toString().indexOf(f.toLowerCase().replace(" ",""))>=0){return"boolean"}else{if(d.test(f)){return"color"}else{if(!isNaN(parseInt(f,10))&&parseInt(f,10).toString().length==f.length){return"integer"}else{if(!isNaN(parseFloat(f))&&parseFloat(f).toString().length==f.length){return"float"}}}}return"string"}function e(g,f){if(!b.exists(f)){return g}switch(f){case"color":if(g.length>0){return a(g)}return null;case"integer":return parseInt(g,10);case"float":return parseFloat(g);case"boolean":if(g.toLowerCase()=="true"){return true}else{if(g=="1"){return true}}return false}return g}function a(f){f=f.replace(/(#|0x)?([0-9A-F]{3,6})$/gi,"$2");if(f.length==3){f=f.charAt(0)+f.charAt(0)+f.charAt(1)+f.charAt(1)+f.charAt(2)+f.charAt(2)}return parseInt(f,16)}})(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_PLAYER_STATE:"jwplayerPlayerState",state:{BUFFERING:"BUFFERING",IDLE:"IDLE",PAUSED:"PAUSED",PLAYING:"PLAYING",COMPLETED:"COMPLETED"},JWPLAYER_PLAYLIST_LOADED:"jwplayerPlaylistLoaded",JWPLAYER_PLAYLIST_ITEM:"jwplayerPlaylistItem",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){a.html5={}})(jwplayer);(function(a){a.utils={}})(jwplayer.html5);(function(a){var b=a.animations=function(){};b.transform=function(c,d){c.style.webkitTransform=d;c.style.MozTransform=d;c.style.OTransform=d;c.style.msTransform=d};b.transformOrigin=function(c,d){c.style.webkitTransformOrigin=d;c.style.MozTransformOrigin=d;c.style.OTransformOrigin=d;c.style.msTransformOrigin=d};b.rotate=function(c,d){b.transform(c,"rotate("+d+"deg)")}})(jwplayer.html5.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.strings.serialize(a.textContent(g));if(e=="file"&&j.levels){delete j.levels}}if(!j.file){j.file=j.link}}return j}})(jwplayer);(function(d){var h=jwplayer.utils.strings,g=h.xmlAttribute,b=d.localName,a=d.textContent,c=d.numChildren;var f=d.mediaparser=function(){};var e="media";f.parseGroup=function(m,n){for(var k=0;k<c(m);k++){var l=m.childNodes[k];if(l.prefix==e){if(!b(l)){continue}switch(b(l).toLowerCase()){case"content":n.file=g(l,"url");if(g(l,"duration")){n.duration=h.seconds(g(l,"duration"))}if(g(l,"start")){n.start=h.seconds(g(l,"start"))}if(c(l)>0){n=f.parseGroup(l,n)}if(g(l,"width")||g(l,"bitrate")||g(l,"url")){if(!n.levels){n.levels=[]}n.levels.push({width:g(l,"width"),bitrate:g(l,"bitrate"),file:g(l,"url")})}break;case"title":n.title=a(l);break;case"description":n.description=a(l);break;case"keywords":n.tags=a(l);break;case"thumbnail":n.image=g(l,"url");break;case"credit":n.author=a(l);break;case"player":var j=l.url;break;case"group":f.parseGroup(l,n);break}}}return n}})(jwplayer.html5.parsers);(function(f){var g=jwplayer.utils,a=f.textContent,d=f.getChildNode,e=f.numChildren,c=f.localName;f.rssparser={};f.rssparser.parse=function(o){var h=[];for(var m=0;m<e(o);m++){var n=d(o,m),k=c(n).toLowerCase();if(k=="channel"){for(var l=0;l<e(n);l++){var p=d(n,l);if(c(p).toLowerCase()=="item"){h.push(b(p))}}}}return h};function b(l){var m={};for(var j=0;j<l.childNodes.length;j++){var k=l.childNodes[j];var h=c(k);if(!h){continue}switch(h.toLowerCase()){case"enclosure":m.file=g.strings.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=f.mediaparser.parseGroup(l,m);m=f.jwparser.parseEntry(l,m);return new jwplayer.html5.playlistitem(m)}})(jwplayer.html5.parsers);(function(l){var u=l.html5,h=l.utils,i=l.events,p=l.events.state,o=h.css,b="button",n="text",e="divider",q="slider",f="relative",g="absolute",a="none",m="block",s="inline",k="inline-block",c="left",v="right",j="100%",r="width .25s linear, left .25s linear, opacity .25s, background .25s",t=".jwcontrolbar",d=document;u.controlbar=function(C,aq){var A,V,B={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:n}]},center:{position:"center",elements:[{name:"time",type:q}]},right:{position:"right",elements:[{name:"duration",type:n},{name:"blank",type:b},{name:"divider",type:e},{name:"mute",type:b},{name:"volume",type:q},{name:"divider",type:e},{name:"fullscreen",type:b}]}}},T,aA,al,ay,ao,aI,J,M,ai=false,ar=0,Y={play:"pause",mute:"unmute",fullscreen:"normalscreen"},az={play:false,mute:false,fullscreen:false},z={play:ad,mute:N,fullscreen:aa,next:y,prev:ag},D={time:X,volume:aD};function aC(){al={};A=C;ao=A.id+"_controlbar";aI=J=0;ay=O();ay.id=ao;ay.className="jwcontrolbar";window.addEventListener("mousemove",aH,false);window.addEventListener("mouseup",aH,false);V=A.skin;T=h.extend({},B,V.getComponentSettings("controlbar"),aq);aA=V.getComponentLayout("controlbar");if(!aA){aA=B.layout}W();au();w();P()}function w(){A.jwAddEventListener(l.events.JWPLAYER_MEDIA_TIME,aJ);A.jwAddEventListener(l.events.JWPLAYER_PLAYER_STATE,G);A.jwAddEventListener(l.events.JWPLAYER_MEDIA_MUTE,aE);A.jwAddEventListener(l.events.JWPLAYER_MEDIA_VOLUME,E);A.jwAddEventListener(l.events.JWPLAYER_MEDIA_BUFFER,K);A.jwAddEventListener(l.events.JWPLAYER_FULLSCREEN,F);A.jwAddEventListener(l.events.JWPLAYER_PLAYLIST_LOADED,P)}function aJ(aL){var aK=false,aM;if(al.elapsed){aM=h.timeFormat(aL.position);al.elapsed.innerHTML=aM;aK=(aM.length!=h.timeFormat(J).length)}if(al.duration){aM=h.timeFormat(aL.duration);al.duration.innerHTML=aM;aK=(aK||(aM.length!=h.timeFormat(aI).length))}if(aL.duration>0){ax(aL.position/aL.duration)}else{ax(0)}aI=aL.duration;J=aL.position;if(aK){ah()}}function G(aK){switch(aK.newstate){case p.BUFFERING:case p.PLAYING:o(at(".jwtimeSliderThumb"),{opacity:1});S("play",true);break;case p.PAUSED:if(!ai){S("play",false)}break;case p.IDLE:S("play",false);o(at(".jwtimeSliderThumb"),{opacity:0});if(al.timeRail){al.timeRail.className="jwrail";setTimeout(function(){al.timeRail.className+=" jwsmooth"},100)}aB(0);aJ({position:0,duration:0});break;case p.COMPLETED:o(at(),{opacity:0});break}}function aE(aK){S("mute",aK.mute);x(aK.mute?0:M)}function E(aK){M=aK.volume/100;x(M)}function K(aK){aB(aK.bufferPercent/100)}function F(aK){S("fullscreen",aK.fullscreen)}function P(aK){if(A.jwGetPlaylist().length<2){o(at(".jwnext"),{display:"none"});o(at(".jwprev"),{display:"none"})}else{o(at(".jwnext"),{display:undefined});o(at(".jwprev"),{display:undefined})}ah()}function W(){h.clearCss("#"+ao);o("#"+ao,{height:ac("background").height,bottom:T.margin?T.margin:0,left:T.margin?T.margin:0,right:T.margin?T.margin:0});o(at(".jwtext"),{font:T.fontsize+"px/"+ac("background").height+"px "+T.font,color:T.fontcolor,"font-weight":T.fontweight,"font-style":T.fontstyle,"text-align":"center",padding:"0 5px"})}function at(aK){return"#"+ao+(aK?" "+aK:"")}function O(){return d.createElement("span")}function au(){var aM=am("capLeft");var aL=am("capRight");var aK=am("background",{position:g,left:ac("capLeft").width,right:ac("capRight").width,"background-repeat":"repeat-x"},true);if(aK){ay.appendChild(aK)}if(aM){ay.appendChild(aM)}av();if(aL){ay.appendChild(aL)}}function Q(aK){switch(aK.type){case e:return af(aK);break;case n:return an(aK.name);break;case b:if(aK.name!="blank"){return ae(aK.name)}break;case q:return R(aK.name);break}}function am(aM,aP,aL,aR){var aO=O();aO.className="jw"+aM;var aK=aR?" left center":" center";var aN=ac(aM);aO.innerHTML="&nbsp;";if(!aN||aN.src==""){return}var aQ;if(aL){aQ={background:"url('"+aN.src+"') repeat-x "+aK}}else{aQ={background:"url('"+aN.src+"') no-repeat"+aK,width:aN.width}}o(at(".jw"+aM),h.extend(aQ,aP));al[aM]=aO;return aO}function ae(aM){if(!ac(aM+"Button").src){return null}var aN=d.createElement("button");aN.className="jw"+aM;aN.addEventListener("click",aj(aM),false);var aO=ac(aM+"Button");var aL=ac(aM+"ButtonOver");aN.innerHTML="&nbsp;";U(at(".jw"+aM),aO,aL);var aK=Y[aM];if(aK){U(at(".jw"+aM+".jwtoggle"),ac(aK+"Button"),ac(aK+"ButtonOver"))}al[aM]=aN;return aN}function U(aK,aL,aM){if(!aL.src){return}o(aK,{width:aL.width,background:"url("+aL.src+") center no-repeat"});if(aM.src){o(aK+":hover",{background:"url("+aM.src+") center no-repeat"})}}function aj(aK){return function(){if(z[aK]){z[aK]()}}}function ad(){if(az.play){A.jwPause()}else{A.jwPlay()}}function N(){A.jwSetMute();aE({mute:az.mute})}function aD(aK){if(aK<0.1){aK=0}if(aK>0.9){aK=1}A.jwSetVolume(aK*100);x(aK)}function X(aK){A.jwSeek(aK*aI)}function aa(){A.jwSetFullscreen()}function y(){A.jwPlaylistNext()}function ag(){A.jwPlaylistNext()}function S(aK,aL){if(!h.exists(aL)){aL=!az[aK]}if(al[aK]){al[aK].className="jw"+aK+(aL?" jwtoggle jwtoggling":" jwtoggling");setTimeout(function(){al[aK].className=al[aK].className.replace(" jwtoggling","")},100)}az[aK]=aL}function L(aK){return ao+"_"+aK}function an(aK,aO){var aM=O();aM.id=L(aK);aM.className="jwtext jw"+aK;var aL={};var aN=ac(aK+"Background");if(aN.src){aL.background="url("+aN.src+") no-repeat center";aL["background-size"]="100% "+ac("background").height+"px"}o(at(".jw"+aK),aL);aM.innerHTML="00:00";al[aK]=aM;return aM}function af(aL){if(aL.width){var aK=O();aK.className="jwblankDivider";o(aK,{width:parseInt(aL.width)});return aK}else{if(aL.element){return am(aL.element)}else{return am(aL.name)}}}function R(aK){var aN=O();aN.className="jwslider jw"+aK;var aM=am(aK+"SliderCapLeft");var aL=am(aK+"SliderCapRight");if(aL){aL.className+=" jwcapRight"}var aO=ap(aK);if(aM){aN.appendChild(aM)}aN.appendChild(aO);if(aM){aN.appendChild(aL)}o(at(".jw"+aK+" .jwrail"),{left:ac(aK+"SliderCapLeft").width,right:ac(aK+"SliderCapRight").width,});al[aK]=aN;if(aK=="time"){aG(aN);ax(0);aB(0)}else{if(aK=="volume"){aw(aN)}}return aN}function ap(aM){var aP=O();aP.className="jwrail jwsmooth";var aK=["Rail","Buffer","Progress"];for(var aO=0;aO<aK.length;aO++){var aN=am(aM+"Slider"+aK[aO],null,true,(aM=="volume"));if(aN){aN.className+=" jwstretch";aP.appendChild(aN)}}var aL=am(aM+"SliderThumb");if(aL){o(at("."+aL.className),{opacity:0});aL.className+=" jwthumb";aP.appendChild(aL)}aP.addEventListener("mousedown",H(aM),false);al[aM+"Rail"]=aP;return aP}function I(){var aK=A.jwGetState();return(aK==p.IDLE||aK==p.COMPLETED)}function H(aK){return(function(aL){if(aL.button!=0){return}al[aK+"Rail"].className="jwrail";if(aK=="time"){if(!I()){A.jwSeekDrag(true);ai=aK}}else{ai=aK}})}function aH(aK){if(!ai||aK.button!=0){return}var aO=al[ai].getElementsByClassName("jwrail")[0],aP=h.getBoundingClientRect(aO),aN=(aK.clientX-aP.left)/aP.width;if(aK.type=="mouseup"){var aL=ai;if(aL=="time"){A.jwSeekDrag(false)}al[aL+"Rail"].className="jwrail jwsmooth";ai=null;D[aL](aN)}else{if(ai=="time"){ax(aN)}else{x(aN)}var aM=(new Date()).getTime();if(aM-ar>500){ar=aM;D[ai](aN)}}}function aG(aK){if(al.timeSliderThumb){o(at(".jwtimeSliderThumb"),{"margin-left":(ac("timeSliderThumb").width/-2)})}aB(0);ax(0)}function aw(aM){var aL=ac("volumeSliderCapLeft").width,aK=ac("volumeSliderCapRight").width,aN=ac("volumeSliderRail").width;o(at(".jwvolume"),{width:(aL+aN+aK)})}var Z={};function av(){aF("left");aF("center");aF("right");ay.appendChild(Z.left);ay.appendChild(Z.center);ay.appendChild(Z.right);o(at(".jwright"),{right:ac("capRight").width})}function aF(aL){var aK=O();aK.className="jwgroup jw"+aL;Z[aL]=aK;if(aA[aL]){ab(aA[aL],Z[aL])}}function ab(aN,aK){if(aN&&aN.elements.length>0){for(var aM=0;aM<aN.elements.length;aM++){var aL=Q(aN.elements[aM]);if(aL){aK.appendChild(aL)}}}}var ah=this.resize=function(aL,aK){o(at(".jwgroup.jwcenter"),{left:Math.round(h.parseDimension(Z.left.offsetWidth)+ac("capLeft").width),right:Math.round(h.parseDimension(Z.right.offsetWidth)+ac("capRight").width)})};this.getDisplayElement=function(){return ay};function aB(aK){aK=Math.min(Math.max(0,aK),1);if(al.timeSliderBuffer){al.timeSliderBuffer.style.width=aK*100+"%"}}function ak(aK,aM,aN){var aL=100*Math.min(Math.max(0,aM),1)+"%";if(al[aK+"SliderProgress"]){al[aK+"SliderProgress"].style.width=aL}if(al[aK+"SliderThumb"]){al[aK+"SliderThumb"].style.left=aL}}function x(aK){ak("volume",aK,true)}function ax(aK){ak("time",aK)}function ac(aK){var aL=V.getSkinElement("controlbar",aK);if(aL){return aL}else{return{width:0,height:0,src:"",image:undefined,ready:false}}}this.show=function(){o(at(),{opacity:1})};this.hide=function(){o(at(),{opacity:0})};aC()};o(t,{position:g,overflow:"hidden","-webkit-transition":r,"-moz-transition":r,"-o-transition":r});o(t+" span",{height:j,"-webkit-user-select":a,"-webkit-user-drag":a,"user-select":a,"user-drag":a});o(t+" .jwgroup",{display:s});o(t+" span, "+t+" .jwgroup button,"+t+" .jwleft",{position:f,"float":c});o(t+" .jwright",{position:g});o(t+" .jwcenter",{position:g});o(t+" button",{display:k,height:j,border:a,cursor:"pointer","-webkit-transition":r,"-moz-transition":r,"-o-transition":r});o(t+" .jwcapRight",{right:0,position:g});o(t+" .jwtime,"+t+" .jwgroup span.jwstretch",{position:g,height:j,width:j,left:0});o(t+" .jwrail,"+t+" .jwthumb",{position:g,height:j,cursor:"pointer"});o(t+" .jwtime .jwsmooth span",{"-webkit-transition":r,"-moz-transition":r,"-o-transition":r});o(t+" .jwdivider+.jwdivider",{display:a});o(t+" .jwtext",{padding:"0 5px","text-align":"center"});o(t+" .jwtoggling",{"-webkit-transition":a,"-moz-transition":a,"-o-transition":a})})(jwplayer);(function(a){var e=jwplayer,c=e.utils,d=e.events,b=d.state;a.controller=function(h,x){var D=h,f=x,o=h.getVideo(),w=this,l=new d.eventdispatcher(D.id,D.config.debug);c.extend(this,l);function p(){D.addGlobalListener(H);D.addEventListener(d.JWPLAYER_MEDIA_BUFFER_FULL,A);D.addEventListener(d.JWPLAYER_MEDIA_COMPLETE,s)}function G(J){f.completeSetup();w.sendEvent(J.type,J);w.sendEvent(jwplayer.events.JWPLAYER_PLAYLIST_LOADED,{playlist:D.playlist});w.sendEvent(jwplayer.events.JWPLAYER_PLAYLIST_ITEM,{index:D.item});w.load()}function H(J){l.sendEvent(J.type,J)}function A(J){o.play()}function I(J){n();switch(c.typeOf(J)){case"string":D.setPlaylist(new a.playlist({file:J}));D.setItem(0);break;case"object":case"array":D.setPlaylist(new a.playlist(J));D.setItem(0);break;case"number":D.setItem(J);break}}var q,k,m;function v(){try{k=v;if(!q){q=true;l.sendEvent(d.JWPLAYER_MEDIA_BEFOREPLAY);q=false;if(m){m=false;k=null;return}}if(D.state==b.IDLE){o.load(D.playlist[D.item])}else{if(D.state==b.PAUSED){o.play()}}return true}catch(J){l.sendEvent(d.JWPLAYER_ERROR,J);k=null}return false}function n(){k=null;try{if(D.state!=b.IDLE&&D.state!=b.COMPLETE){o.stop()}if(q){m=true}return true}catch(J){l.sendEvent(d.JWPLAYER_ERROR,J)}return false}function F(){try{switch(D.state){case b.PLAYING:case b.BUFFERING:o.pause();break;default:if(q){m=true}}return true}catch(J){l.sendEvent(d.JWPLAYER_ERROR,J)}return false;if(D.state==b.PLAYING||D.state==b.BUFFERING){o.pause()}}function B(J){o.seek(J)}function E(J){o.volume(J)}function r(J){if(!c.exists(J)){J=!D.mute}o.mute(J)}function z(J){f.fullscreen(J)}function u(J){D.stretching=J;f.resize()}function t(J){I(J);v()}function i(){t(D.item-1)}function j(){t(D.item+1)}function s(){if(D.state!=b.IDLE){return}k=s;switch(D.repeat.toLowerCase()){case"single":v();break;case"always":j();break;case"list":if(D.item==D.playlist.length-1){I(0)}else{j()}break;default:break}}function C(J){return function(){J.apply(this,arguments)}}function y(){try{return D.getVideo().detachMedia()}catch(J){return null}}function g(){try{var J=D.getVideo().attachMedia();if(typeof k=="function"){k()}}catch(K){return null}}this.play=C(v);this.pause=C(F);this.seek=C(B);this.stop=C(n);this.load=C(I);this.next=C(j);this.prev=C(i);this.item=C(t);this.setVolume=C(E);this.setMute=C(r);this.setFullscreen=C(z);this.setStretching=C(u);this.detachMedia=y;this.attachMedia=g;this.playerReady=G;p()}})(jwplayer.html5);(function(a){a.html5.defaultskin=function(){this.text='<?xml version="1.0" ?><skin author="LongTail Video" name="Five" version="1.1"><components><component name="controlbar"><settings><setting name="margin" value="20"/><setting name="fontsize" value="11"/><setting name="fontcolor" value="0x000000"/></settings><layout><group position="left"><button name="play"/><divider name="divider"/><button name="prev"/><divider name="divider"/><button name="next"/><divider name="divider"/><text name="elapsed"/></group><group position="center"><slider name="time"/></group><group position="right"><text name="duration"/><divider name="divider"/><button name="blank"/><divider name="divider"/><button name="mute"/><slider name="volume"/><divider name="divider"/><button name="fullscreen"/></group></layout><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAElJREFUOI3t1LERACAMQlFgGvcfxNIhHMK4gsUvUviOmgtNsiAZkBSEKxKEnCYkkQrJn/YwbUNiSDDYRZaQRDaShv+oX9GBZEIuK+8hXVLs+/YAAAAASUVORK5CYII="/><element name="blankButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAYCAYAAAAyJzegAAAAFElEQVQYV2P8//8/AzpgHBUc7oIAGZdH0RjKN8EAAAAASUVORK5CYII="/><element name="capLeft" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAYAAAA7zJfaAAAAQElEQVQIWz3LsRGAMADDQJ0XB5bMINABZ9GENGrszxhjT2WLSqxEJG2JQrTMdV2q5LpOAvyRaVmsi7WdeZ/7+AAaOTq7BVrfOQAAAABJRU5ErkJggg=="/><element name="capRight" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAYAAAA7zJfaAAAAQElEQVQIWz3LsRGAMADDQJ0XB5bMINABZ9GENGrszxhjT2WLSqxEJG2JQrTMdV2q5LpOAvyRaVmsi7WdeZ/7+AAaOTq7BVrfOQAAAABJRU5ErkJggg=="/><element name="divider" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADhJREFUCB0FwcENgEAAw7Aq+893g8APUILNOQcbFRktVGqUVFRkWNz3xTa2sUaLNUosKlRUvvf5AdbWOTtzmzyWAAAAAElFTkSuQmCC"/><element name="playButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAANUlEQVR42u2RsQkAAAjD/NTTPaW6dXLrINJA1kBpGPMAjDWmOgp1HFQXx+b1KOefO4oxY57R73YnVYCQUCQAAAAASUVORK5CYII="/><element name="pauseButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAIUlEQVQ4jWNgGAWjYOiD/0gYG3/U0FFDB4Oho2AUDAYAAEwiL9HrpdMVAAAAAElFTkSuQmCC"/><element name="prevButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAQklEQVQ4y2NgGAWjYOiD/1AMA/JAfB5NjCJD/YH4PRaLyDa0H4lNNUP/DxlD59PCUBCIp3ZEwYA+NZLUKBgFgwEAAN+HLX9sB8u8AAAAAElFTkSuQmCC"/><element name="nextButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAQElEQVQ4y2NgGAWjYOiD/0B8Hojl0cT+U2ooCL8HYn9qGwrD/bQw9P+QMXQ+tSMqnpoRBUpS+tRMUqNgFAwGAADxZy1/mHvFnAAAAABJRU5ErkJggg=="/><element name="timeSliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAOElEQVRIDe3BwQkAIRADwAhhw/nU/kWwUK+KPITMABFh19Y+F0acY8CJvX9wYpXgRElwolSIiMf9ZWEDhtwurFsAAAAASUVORK5CYII="/><element name="timeSliderBuffer" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAN0lEQVRIDe3BwQkAMQwDMBcc55mRe9zi7RR+FCwBEWG39vcfGHFm4MTuhhMlwYlVBSdKhYh43AW/LQMKm1spzwAAAABJRU5ErkJggg=="/><element name="timeSliderProgress" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAIElEQVRIiWNgGAWjYBTQBfynMR61YCRYMApGwSigMQAAiVWPcbq6UkIAAAAASUVORK5CYII="/><element name="timeSliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAYCAYAAAA/OUfnAAAAO0lEQVQYlWP4//8/Awwz0JgDBP/BeN6Cxf/hnI2btiI4u/fsQ3AOHjqK4Jw4eQbBOX/hEoKDYjSd/AMA4cS4mfLsorgAAAAASUVORK5CYII="/><element name="muteButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAJklEQVQ4y2NgGAUjDcwH4v/kaPxPikZkxcNVI9mBQ5XoGAWDFwAAsKAXKQQmfbUAAAAASUVORK5CYII="/><element name="unmuteButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAMklEQVQ4y2NgGAWDHPyntub5xBr6Hwv/Pzk2/yfVG/8psRFE25Oq8T+tQnsIaB4FVAcAi2YVysVY52AAAAAASUVORK5CYII="/><element name="volumeSliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAgMAAACdGdVrAAAACVBMVEUAAACmpqampqbBXAu8AAAAAnRSTlMAgJsrThgAAAArSURBVAhbY2AgErBAyA4I2QEhOyBkB4TsYOhAoaCCUCUwDTDtMMNgRuMHAFB5FoGH5T0UAAAAAElFTkSuQmCC"/><element name="volumeSliderProgress" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAgMAAACdGdVrAAAACVBMVEUAAAAAAAAAAACDY+nAAAAAAnRSTlMAgJsrThgAAAArSURBVAhbY2AgErBAyA4I2QEhOyBkB4TsYOhAoaCCUCUwDTDtMMNgRuMHAFB5FoGH5T0UAAAAAElFTkSuQmCC"/><element name="volumeSliderCapRight" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAYCAYAAAAyJzegAAAAFElEQVQYV2P8//8/AzpgHBUc7oIAGZdH0RjKN8EAAAAASUVORK5CYII="/><element name="fullscreenButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAQklEQVRIiWNgGAWjYMiD/0iYFDmSLbDHImdPLQtgBpEiR7Zl2NijAA5oEkT/0Whi5UiyAJ8BVMsHNMtoo2AUDAIAAGdcIN3IDNXoAAAAAElFTkSuQmCC"/><element name="normalscreenButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAP0lEQVRIx2NgGAWjYMiD/1RSQ5QB/wmIUWzJfzx8qhj+n4DYCAY0DyJ7PBbYU8sHMEvwiZFtODXUjIJRMJgBACpWIN2ZxdPTAAAAAElFTkSuQmCC"/></elements></component><component name="display"><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAQMAAAAk8RryAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlOZpuml+rYAAAASSURBVBhXY2AYJuA/GBwY6jQAyDyoK8QcL4QAAAAASUVORK5CYII="/><element name="playIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAiUlEQVR42u3XSw2AMBREURwgAQlIQAISKgUpSEFKJeCg5b0E0kWBTVcD9ySTsL0Jn9IBAAAA+K2UUrBlW/Rr5ZDoIeeuoFkxJD9ss03aIXXQqB9SttoG7ZA6qNcOKdttiwcJh9RB+iFl4SshkRBuLR72+9cvH0SOKI2HRo7x/Fi1/uoCAAAAwLsD8ki99IlO2dQAAAAASUVORK5CYII="/><element name="muteIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAVUlEQVR42u3WMQrAIAxAUW/g/SdvGmvpoOBeSHgPsjj5QTANAACARCJilIhYM0tEvJM+Ik3Id9E957kQIb+F3OdCPC0hPkQriqWx9hp/x/QGAABQyAPLB22VGrpLDgAAAABJRU5ErkJggg=="/><element name="errorIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAA/0lEQVR42u2U0QmEMBAF7cASLMESUoIlpARLSCkpwRJSgiWkhOvAXD4WsgRkyaG5DbyB+Yvg8KITAAAAAAAYk+u61mwk15EjPtlEfihmqIiZR1Qx80ghjgdUuiHXGHSVsoag0x6x8DUoyjD5KovmEJ9NTDMRPIT0mtdIUkjlonuNohO+Ha99DTmkuGgKCTcvebAzx82ZoCWC3/3aIMWSRucaxcjORSFY4xpFdjYJGp1rFGcyCYZ/RVh6AUnfcNZ2zih3/mGj1jVCdiNDwyrq1rA/xMdeEXvDVdnYc1vDc3uPkDObXrlaxbNHSOohQhr/WOeLEWfWTgAAAAAAADzNF9sHJ7PJ57MlAAAAAElFTkSuQmCC"/><element name="bufferIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAACBklEQVR42u3Zv0sCYRzH8USTzOsHHEWGkC1HgaDgkktGDjUYtDQ01RDSljQ1BLU02+rk1NTm2NLq4Nx/0L/h9fnCd3j4cnZe1/U8xiO8h3uurufF0/3COd/3/0UWYiEWYiEWYiGJQ+J8xuPxKhXjEMZANinjIZhkGuVRNioE4wVURo4JkHm0xKWmhRAc1bh1EyCUw5BcBIjHiApKa4CErko6DEJwuRo6IRKzyJD8FJAyI3Zp2zRImiBcRhlfo5RtlxCcE3CcDNpGrhYIT2IhAJKilO0VRmzJ32fAMTpBTS0QMfGwlcuKMRftE0DJ0wCJdcOsCkBdXP3Mh9CEFUBTPS9mDZJBG6io4aqVzMdCokCw9H3kT6j/C/9iDdSeUMNC7DkyyxAs/Rk6Qss8FPWRZgdVtUH4DjxEn1zxh+/zj1wHlf4MQhNGrwqA6sY40U8JonRJwEQh+AO3AvCG6gHv4U7IY4krxkroWoAOkoQMGfCBrgIm+YBGqPENpIJ66CJg3x66Y0gnSUidAEEnNr9jjLiWMn5DiWP0OC/oAsCgkq43xBdGDMQr7YASP/vEkHvdl1+JOCcEV5sC4hGEOzTlPuKgd0b0xD4JkRcOgnRRTjdErkYhAsQVq6IdUuPJtmk7BCL3t/h88cx91pKQkI/pkDx6pmYTIjEoxiHsN1YWYiEWYiEWknhflZ5IErA5nr8AAAAASUVORK5CYII="/></elements></component><component name="dock"><settings><setting name="fontcolor" value="0xffffff"/></settings><elements><element name="button" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAQMAAAAk8RryAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlOZpuml+rYAAAASSURBVBhXY2AYJuA/GBwY6jQAyDyoK8QcL4QAAAAASUVORK5CYII="/></elements></component><component name="playlist"><settings><setting name="backgroundcolor" value="0xe8e8e8"/></settings><elements><element name="item" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAIAAAC1nk4lAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHBJREFUaN7t2MENwCAMBEEe9N8wSKYC/D8YV7CyJoRkVtVImxkZPQInMxoP0XiIxkM0HsGbjjSNBx544IEHHnjggUe/6UQeey0PIh7XTftGxKPj4eXCtLsHHh+ZxkO0Iw8PR55Ni8ZD9Hu/EAoP0dc5RRg9qeRjVF8AAAAASUVORK5CYII="/><element name="sliderCapTop" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAHCAYAAADnCQYGAAAAFUlEQVQokWP8//8/A7UB46ihI9hQAKt6FPPXhVGHAAAAAElFTkSuQmCC"/><element name="sliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUCAYAAABiS3YzAAAAKElEQVQ4y2P4//8/Az68bNmy/+iYkB6GUUNHDR01dNTQUUNHDaXcUABUDOKhcxnsSwAAAABJRU5ErkJggg=="/><element name="sliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUCAYAAABiS3YzAAAAJUlEQVQ4T2P4//8/Ay4MBP9xYbz6Rg0dNXTU0FFDRw0dNZRyQwHH4NBa7GJsXAAAAABJRU5ErkJggg=="/><element name="sliderCapBottom" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAHCAYAAADnCQYGAAAAFUlEQVQokWP8//8/A7UB46ihI9hQAKt6FPPXhVGHAAAAAElFTkSuQmCC"/></elements></component></components></skin>';this.xml=null;if(window.DOMParser){parser=new DOMParser();this.xml=parser.parseFromString(this.text,"text/xml")}else{this.xml=new ActiveXObject("Microsoft.XMLDOM");this.xml.async="false";this.xml.loadXML(this.text)}return this}})(jwplayer);(function(g){var m=jwplayer.utils,j=m.css,d=jwplayer.events,e=d.state,l=g.utils.animations.rotate,k=document,a=".jwdisplay",i=".jwpreview",b="absolute",c="none",h="100%",f="opacity .25s";g.display=function(E,R){var L=E,A=E.skin,t,n,r,x,M,Q,D={},o,C,O,H,y=m.extend({backgroundcolor:"#000"},A.getComponentSettings("display"),R);_bufferRotation=!m.exists(y.bufferrotation)?15:parseInt(y.bufferrotation,10),_bufferInterval=!m.exists(y.bufferinterval)?100:parseInt(y.bufferinterval,10);function B(){t=k.createElement("div");t.id=L.id+"_display";t.className="jwdisplay";n=k.createElement("div");n.className="jwpreview";t.appendChild(n);L.jwAddEventListener(d.JWPLAYER_PLAYER_STATE,z);L.jwAddEventListener(d.JWPLAYER_PLAYLIST_ITEM,K);t.addEventListener("click",N,false);q();z({newstate:e.IDLE})}function N(T){switch(L.jwGetState()){case e.PLAYING:case e.BUFFERING:L.jwPause();break;default:L.jwPlay();break}}function q(){var T=["play","buffer"];for(var W=0;W<T.length;W++){var aa=T[W],Y=F(aa+"Icon"),V=F(aa+"IconOver"),X=k.createElement("div"),U=F("background"),Z=F("backgroundOver");button=k.createElement("button");if(Y){button.className="jw"+aa;X.className="jwicon";button.appendChild(X);v("#"+t.id+" ."+button.className,U,Z);v("#"+t.id+" ."+button.className+" div",Y,V);if(Z||V){button.addEventListener("mouseover",G(button),false);button.addEventListener("mouseout",J(button),false)}D[aa]=button}}}function G(T){return function(U){if(T.className.indexOf("jwhover")<0){T.className+=" jwhover"}if(T.childNodes[0].className.indexOf("jwhover")<0){T.childNodes[0].className+=" jwhover"}}}function J(T){return function(U){T.className=T.className.replace(" jwhover","");T.childNodes[0].className=T.childNodes[0].className.replace(" jwhover","")}}function v(T,U,V){if(!(U&&U.src)){return}j(T,{width:U.width,height:U.height,"margin-left":U.width/-2,"margin-top":U.height/-2,background:"url("+U.src+") center no-repeat"});if(V&&V.src){j(T+".jwhover",{background:"url("+V.src+") center no-repeat"})}}function S(T){if(C){t.removeChild(C)}C=D[T];if(C){t.appendChild(C)}}function K(){var T=L.jwGetPlaylist()[L.jwGetPlaylistIndex()];var U=T?T.image:"";if(r!=U){r=U;P(i,false);u()}}var I;function z(T){clearTimeout(I);I=setTimeout(function(){p(T.newstate)},100)}function p(T){clearInterval(H);switch(T){case e.COMPLETED:case e.IDLE:S("play");P(i,true);break;case e.BUFFERING:S("buffer");O=0;H=setInterval(function(){O+=_bufferRotation;l(C.childNodes[0],O%360)},_bufferInterval);break;case e.PLAYING:S();P(i,false);break;case e.PAUSED:S("play");break}}this.getDisplayElement=function(){return t};function s(T){return"#"+t.id+" "+T}function u(){if(r){var T=new Image();T.addEventListener("load",function(){x=T.width;M=T.height;w();j(s(i),{"background-image":r?("url("+r+")"):"",});P(i,true)},false);T.src=r}else{P(i,false);x=M=0}}function F(T){var U=A.getSkinElement("display",T);if(U){return U}return null}function w(){m.stretch(L.jwGetStretching(),n,t.clientWidth,t.clientHeight,x,M)}this.resize=w;function P(T,U){j(s(T),{opacity:U?1:0})}this.show=function(){P("",true)};this.hide=function(){P("",false)};this.getBGColor=function(){return y.backgroundcolor};this.setAlternateClickHandler=function(T){_alternateClickHandler=T};this.revertAlternateClickHandler=function(){_alternateClickHandler=undefined};B()};j(a,{position:b,cursor:"pointer",width:h,height:h,overflow:"hidden"});j(a+" .jwpreview",{position:b,width:h,height:h,"background-repeat":"no-repeat","background-position":"center",overflow:"hidden"});j(a+", "+a+" *",{"-webkit-transition":f,"-moz-transition":f,"-o-transition":f});j(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;a.instream=function(A,o,z,B){var v={controlbarseekable:"always",controlbarpausable:true,controlbarstoppable:true,playlistclickable:true};var x,C,E=A,G=o,l=z,y=B,t,J,q,I,h,i,j,n,s,k=false,m,g,p=this;this.load=function(N,M){f();k=true;C=c.extend(v,M);x=a.playlistitem(N);H();g=document.createElement("div");g.id=p.id+"_instream_container";y.detachMedia();t=j.getTag();i=G.playlist[G.item];h=E.jwGetState();if(h==b.BUFFERING||h==b.PLAYING){t.pause()}J=t.src?t.src:t.currentSrc;q=t.innerHTML;I=t.currentTime;s=new a.display(p);s.setAlternateClickHandler(function(O){if(_fakemodel.state==b.PAUSED){p.jwInstreamPlay()}else{F(d.JWPLAYER_INSTREAM_CLICK,O)}});g.appendChild(s.getDisplayElement());if(!c.isMobile()){n=new a.controlbar(p);g.appendChild(n.getDisplayElement())}l.setupInstream(g,t);r();j.load(x)};this.jwInstreamDestroy=function(M){if(!k){return}k=false;if(h!=b.IDLE){j.load(i,false)}else{j.stop(true)}j.detachMedia();l.destroyInstream();if(n){try{n.getDisplayElement().parentNode.removeChild(n.getDisplayElement())}catch(N){}}F(d.JWPLAYER_INSTREAM_DESTROYED,{reason:(M?"complete":"destroyed")},true);y.attachMedia();if(h==b.BUFFERING||h==b.PLAYING){t.play();if(G.playlist[G.item]==i){G.getVideo().seek(I)}}return};this.jwInstreamAddEventListener=function(M,N){m.addEventListener(M,N)};this.jwInstreamRemoveEventListener=function(M,N){m.removeEventListener(M,N)};this.jwInstreamPlay=function(){if(!k){return}j.play(true)};this.jwInstreamPause=function(){if(!k){return}j.pause(true)};this.jwInstreamSeek=function(M){if(!k){return}j.seek(M)};this.jwInstreamGetState=function(){if(!k){return undefined}return _fakemodel.state};this.jwInstreamGetPosition=function(){if(!k){return undefined}return _fakemodel.position};this.jwInstreamGetDuration=function(){if(!k){return undefined}return _fakemodel.duration};this.playlistClickable=function(){return(!k||C.playlistclickable.toString().toLowerCase()=="true")};function u(){_fakemodel=new a.model({});m=new d.eventdispatcher();E.jwAddEventListener(d.JWPLAYER_RESIZE,r);E.jwAddEventListener(d.JWPLAYER_FULLSCREEN,r)}function f(){y.setMute(G.mute);y.setVolume(G.volume)}function H(){if(!j){j=new a.video(G.getVideo().getTag());j.addGlobalListener(K);j.addEventListener(d.JWPLAYER_MEDIA_META,L);j.addEventListener(d.JWPLAYER_MEDIA_COMPLETE,w);j.addEventListener(d.JWPLAYER_MEDIA_BUFFER_FULL,D)}j.attachMedia()}function K(M){if(k){F(M.type,M)}}function D(M){if(k){j.play()}}function w(M){if(k){setTimeout(function(){p.jwInstreamDestroy(true)},10)}}function L(M){if(M.metadata.width&&M.metadata.height){l.resizeMedia()}}function F(M,N,O){if(k||O){m.sendEvent(M,N)}}function r(){if(n){n.resize()}if(s){s.resize()}}this.jwPlay=function(M){if(C.controlbarpausable.toString().toLowerCase()=="true"){this.jwInstreamPlay()}};this.jwPause=function(M){if(C.controlbarpausable.toString().toLowerCase()=="true"){this.jwInstreamPause()}};this.jwStop=function(){if(C.controlbarstoppable.toString().toLowerCase()=="true"){this.jwInstreamDestroy();E.jwStop()}};this.jwSeek=function(M){switch(C.controlbarseekable.toLowerCase()){case"always":this.jwInstreamSeek(M);break;case"backwards":if(_fakemodel.position>M){this.jwInstreamSeek(M)}break}};this.jwGetPosition=function(){};this.jwGetDuration=function(){};this.jwGetWidth=E.jwGetWidth;this.jwGetHeight=E.jwGetHeight;this.jwGetFullscreen=E.jwGetFullscreen;this.jwSetFullscreen=E.jwSetFullscreen;this.jwGetVolume=function(){return G.volume};this.jwSetVolume=function(M){j.volume(M);E.jwSetVolume(M)};this.jwGetMute=function(){return G.mute};this.jwSetMute=function(M){j.mute(M);E.jwSetMute(M)};this.jwGetState=function(){return _fakemodel.state};this.jwGetPlaylist=function(){return[x]};this.jwGetPlaylistIndex=function(){return 0};this.jwGetStretching=function(){return G.config.stretching};this.jwAddEventListener=function(N,M){m.addEventListener(N,M)};this.jwRemoveEventListener=function(N,M){m.removeEventListener(N,M)};this.skin=E.skin;this.id=E.id+"_instream";u();return this}})(jwplayer.html5);(function(a){var b=jwplayer.utils,c=jwplayer.events;a.model=function(d){var j=this,f,l,m=b.getCookies(),h={width:480,height:320,item:0,playlist:[],skin:undefined,volume:90,mute:false,repeat:"",playlistsize:0,playlistposition:"right",stretching:b.stretching.UNIFORM,autostart:false,debug:undefined};function i(n){return n}function k(){b.extend(j,new c.eventdispatcher());j.config=b.extend({},h,m,i(d));b.extend(j,{id:d.id,state:c.state.IDLE,position:0,buffer:0,},j.config);j.setItem(j.config.item);l=document.createElement("video");f=new a.video(l);f.addGlobalListener(e)}var g={};g[c.JWPLAYER_MEDIA_MUTE]="mute";g[c.JWPLAYER_MEDIA_VOLUME]="volume";g[c.JWPLAYER_PLAYER_STATE]="newstate->state";g[c.JWPLAYER_MEDIA_BUFFER]="bufferPercent->buffer";g[c.JWPLAYER_MEDIA_TIME]="position";function e(n){var p=g[n.type];if(p){var q=p.split("->"),r=q[0],o=q[1]?q[1]:r;if(j[o]!=n[r]){j[o]=n[r];j.sendEvent(n.type,n)}}else{j.sendEvent(n.type,n)}}this.getVideo=function(){return f};this.seekDrag=function(n){f.seekDrag(n)};this.setFullscreen=function(n){if(n!=j.fullscreen){j.fullscreen=n;j.sendEvent(c.JWPLAYER_FULLSCREEN,{fullscreen:n})}};this.setPlaylist=function(n){j.item=-1;j.playlist=n;j.sendEvent(c.JWPLAYER_PLAYLIST_LOADED,{playlist:n})};this.setItem=function(n){var o;if(n==j.playlist.length||n<-1){o=0}else{if(n==-1||n>j.playlist.length){o=j.playlist.length-1}else{o=n}}if(o!=j.item){j.item=o;j.sendEvent(c.JWPLAYER_PLAYLIST_ITEM,{index:j.item})}};this.componentConfig=function(n){return{}};k()}})(jwplayer.html5);(function(a){a.player=function(c){var k=this,i=new a.model(c),f=new a.view(this,i),g=new a.controller(i,f);function j(){k.id=i.id;var l=new a.setup(i,f,g);l.addEventListener(jwplayer.events.JWPLAYER_READY,d);l.addEventListener(jwplayer.events.JWPLAYER_ERROR,h);l.start()}function d(l){g.playerReady(l)}function h(l){jwplayer.utils.log("There was a problem setting up the player: "+l.message)}this.jwPlay=g.play;this.jwPause=g.pause;this.jwStop=g.stop;this.jwSeek=g.seek;this.jwSetVolume=g.setVolume;this.jwSetMute=g.setMute;this.jwLoad=g.load;this.jwPlaylistNext=g.next;this.jwPlaylistPrev=g.prev;this.jwPlaylistItem=g.item;this.jwSetFullscreen=g.setFullscreen;this.jwResize=f.resize;this.jwSeekDrag=i.seekDrag;this.jwSetStretching=g.setStretching;function e(l){return function(){return i[l]}}this.jwGetPlaylistIndex=e("item");this.jwGetPosition=e("position");this.jwGetDuration=e("duration");this.jwGetBuffer=e("buffer");this.jwGetWidth=e("width");this.jwGetHeight=e("height");this.jwGetFullscreen=e("fullscreen");this.jwGetVolume=e("volume");this.jwGetMute=e("mute");this.jwGetState=e("state");this.jwGetStretching=e("stretching");this.jwGetPlaylist=e("playlist");this.jwDetachMedia=g.detachMedia;this.jwAttachMedia=g.attachMedia;var b;this.jwLoadInstream=function(m,l){if(!b){b=new a.instream(k,i,f,g)}setTimeout(function(){b.load(m,l)},10)};this.jwInstreamDestroy=function(){if(b){b.jwInstreamDestroy()}};this.jwAddEventListener=g.addEventListener;this.jwRemoveEventListener=g.removeEventListener;j()}})(jwplayer.html5);(function(a){var b=jwplayer.utils;a.playlist=function(c){var e=[];if(c&&c instanceof Array&&c.length>0){for(var d in c){if(!isNaN(parseInt(d))){e.push(new a.playlistitem(c[d]))}}}else{e.push(new a.playlistitem(c))}return e}})(jwplayer.html5);(function(e){var c={size:180,itemheight:60,thumbs:true,fontcolor:"#000000",overcolor:"",activecolor:"",backgroundcolor:"#f8f8f8",font:"_sans",fontsize:"",fontstyle:"",fontweight:""},i={_sans:"Arial, Helvetica, sans-serif",_serif:"Times, Times New Roman, serif",_typewriter:"Courier New, Courier, monospace"},k=jwplayer.utils,g=k.css,d=jwplayer.events,j=".jwplaylist",h=document,a="absolute",b="none",f="100%";e.playlistcomponent=function(y,I){var E=y,t=E.skin,m=k.extend({},c,E.skin.getComponentSettings("playlist"),I),F,s,J,l,o,n,r=-1,p={background:undefined,item:undefined,itemOver:undefined,itemImage:undefined,itemActive:undefined};this.getDisplayElement=function(){return F};this.resize=function(L,K){s=L;J=K};this.show=function(){_show(F)};this.hide=function(){_hide(F)};function q(){F=h.createElement("div");F.id=E.id+"_jwplayer_playlistcomponent";F.className="jwplaylist";H();if(p.item){m.itemheight=p.item.height}v();E.jwAddEventListener(jwplayer.events.JWPLAYER_PLAYLIST_LOADED,z);E.jwAddEventListener(jwplayer.events.JWPLAYER_PLAYLIST_ITEM,C)}function v(){var O=0,N=0,K=0,M=m.itemheight,Q=m.fontsize;k.clearCss("#"+F.id);g("#"+F.id+" .jwlist",{"background-color":m.backgroundcolor,"background-image":p.background?"url("+p.background.src+")":"",color:m.fontcolor,"font-family":i[m.font]?i[m.font]:i._sans,"font-size":(Q?Q:11)+"px","font-style":m.fontstyle,"font-weight":m.fontweight});if(p.itemImage){O=(M-p.itemImage.height)/2;N=p.itemImage.width;K=p.itemImage.height}else{N=M*4/3;K=M}g("#"+F.id+" .jwplaylistimg",{height:K,width:N,margin:O});g("#"+F.id+" .jwlist li",{"background-image":p.item?"url("+p.item.src+")":"",height:M,"background-size":f+" "+M+"px"});var L={overflow:"hidden"};if(m.activecolor!==""){L.color=m.activecolor}if(p.itemActive){L["background-image"]="url("+p.itemActive.src+")"}g("#"+F.id+" .jwlist li.active",L);var P={overflow:"hidden"};if(m.overcolor!==""){P.color=m.overcolor}if(p.itemOver){P["background-image"]="url("+p.itemOver.src+")"}g("#"+F.id+" .jwlist li:hover",P);g("#"+F.id+" .jwtextwrapper",{padding:"5px 5px 0 "+(O?0:"5px"),height:M-5});g("#"+F.id+" .jwtitle",{height:Q?Q+10:20,"line-height":Q?Q+10:20,overflow:"hidden","font-size":Q?Q:13,"font-weight":m.fontweight?m.fontweight:"bold"});g("#"+F.id+" .jwdescription",{display:"block","line-height":Q?Q+4:16,overflow:"hidden",height:M,position:"relative"})}function w(){var K=h.createElement("ul");K.className="jwlist";K.id=F.id+"_ul"+Math.round(Math.random()*10000000);return K}function x(L){var N=l[L],K=h.createElement("li");K.className="jwitem";K.id=n.id+"_item_"+L;g(K,{height:m.itemheight,display:"block",cursor:"pointer",backgroundImage:p.item?"url("+p.item.src+")":"",backgroundSize:"100% "+m.itemheight+"px"});var M=h.createElement("div");M.className="jwplaylistimg jwfill";if(D()&&(N.image||N["playlist.image"]||p.itemImage)){var Q;if(N["playlist.image"]){Q=N["playlist.image"]}else{if(N.image){Q=N.image}else{if(p.itemImage){Q=p.itemImage.src}}}g("#"+K.id+" .jwplaylistimg",{"background-image":Q?"url("+Q+")":null});K.appendChild(M)}var R=h.createElement("div");R.className="jwtextwrapper";var P=h.createElement("span");P.className="jwtitle";P.innerHTML=N?N.title:"";R.appendChild(P);if(N.description){var O=h.createElement("span");O.className="jwdescription";O.innerHTML=N.description;R.appendChild(O)}K.appendChild(R);return K}function z(L){F.innerHTML="";l=A();if(!l){return}items=[];n=w();for(var M=0;M<l.length;M++){var K=x(M);K.onclick=G(M);n.appendChild(K);items.push(K)}r=E.jwGetPlaylistIndex();F.appendChild(n);if(k.isIOS()&&window.iScroll){n.style.height=m.itemheight*l.length+"px";var N=new iScroll(F.id)}}function A(){var L=E.jwGetPlaylist();var M=[];for(var K=0;K<L.length;K++){if(!L[K]["ova.hidden"]){M.push(L[K])}}return M}function G(K){return function(){E.jwPlaylistItem(K);E.jwPlay(true)}}function u(){n.scrollTop=E.jwGetPlaylistIndex()*m.itemheight}function D(){return m.thumbs.toString().toLowerCase()=="true"}function C(K){if(r>=0){h.getElementById(n.id+"_item_"+r).className="jwitem";r=K.index}h.getElementById(n.id+"_item_"+K.index).className="jwitem active";u()}function H(){for(var K in p){p[K]=B(K)}}function B(K){return t.getSkinElement("playlist",K)}q();return this};g(j,{overflow:"hidden",position:"absolute",width:f,height:f});g(j+" .jwplaylistimg",{position:"relative",width:f,"float":"left",margin:"0 5px 0 0",background:"black",overflow:"hidden"});g(j+" .jwlist",{width:f,height:f,"list-style":"none",margin:0,padding:0,"overflow-y":"auto"});g(j+" .jwlist li",{width:f});g(j+" .jwtextwrapper",{overflow:"hidden"})})(jwplayer.html5);(function(a){a.playlistitem=function(c){var d={description:"",image:"",link:"",mediaid:"",title:"",provider:"",file:"",duration:-1,start:0,currentLevel:-1,levels:[]};var b=jwplayer.utils.extend({},d,c);if(b.levels.length===0){b.levels[0]=new a.playlistitemlevel(b)}return b}})(jwplayer.html5);(function(a){a.html5.playlistitemlevel=function(b){var d={file:"",streamer:"",bitrate:0,width:0};for(var c in d){if(a.utils.exists(b[c])){d[c]=b[c]}}return d}})(jwplayer);(function(a){var d=jwplayer,b=d.utils,c=d.events;a.playlistloader=function(){var f=new c.eventdispatcher();b.extend(this,f);this.load=function(h){b.ajax(h,g,e)};function g(i){try{var k=i.responseXML.firstChild;if(a.parsers.localName(k)=="xml"){k=k.nextSibling}var h=a.parsers.rssparser.parse(k);f.sendEvent(c.JWPLAYER_PLAYLIST_LOADED,{playlist:new a.playlist(h)})}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,k=h.utils,e=h.events,i=1,d=2,c=3,j=4,b=5,a=6,g=7;f.setup=function(q,F,G){var J=q,o=F,D=G,s={},A={},y,x=new e.eventdispatcher(),t=false,u=[];function r(){p(i,n);p(d,N,i);p(c,w,i);p(j,I,c);p(b,M,j+","+d);p(a,H,b+","+c);p(g,B,a)}function p(O,Q,P){u.push({name:O,method:Q,depends:P})}function E(){for(var Q=0;Q<u.length;Q++){var O=u[Q];if(L(O.depends)){u.splice(Q,1);try{O.method();E()}catch(P){v(P.message)}return}}if(u.length>0&&!t){setTimeout(E,500)}}function L(Q){if(!Q){return true}var P=Q.toString().split(",");for(var O=0;O<P.length;O++){if(!s[P[O]]){return false}}return true}function m(O){s[O]=true}function n(){m(i)}function N(){y=new f.skin();y.load(J.config.skin,z)}function z(O){m(d)}function w(){switch(k.typeOf(J.config.playlist)){case"string":var O=new f.playlistloader();O.addEventListener(e.JWPLAYER_PLAYLIST_LOADED,l);O.addEventListener(e.JWPLAYER_ERROR,C);O.load(J.config.playlist);break;case"array":J.playlist=new f.playlist(J.config.playlist);m(c)}}function l(O){J.setPlaylist(O.playlist);m(c)}function C(O){v(O.message)}function I(){var P=J.playlist[J.item].image;if(P){var O=new Image();O.addEventListener("load",K,false);O.addEventListener("error",K,false);O.src=P}else{m(j)}}function K(O){m(j)}function M(){o.setup(y);m(b)}function H(){m(a)}function B(){x.sendEvent(e.JWPLAYER_READY);m(g)}function v(O){t=true;x.sendEvent(e.JWPLAYER_ERROR,{message:O})}k.extend(this,x);this.start=E;r()}})(jwplayer.html5);(function(a){a.skin=function(){var b={};var c=false;this.load=function(d,e){new a.skinloader(d,function(f){c=true;b=f;e()},function(){new a.skinloader("",function(f){c=true;b=f;e()})})};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,p,k){var o={};var d=p;var l=k;var f=true;var j;var n=g;var s=false;function m(){if(typeof n!="string"||n===""){e(a.defaultskin().xml)}else{b.ajax(b.getAbsolutePath(n),function(t){try{if(b.exists(t.responseXML)){e(t.responseXML);return}}catch(u){i()}e(a.defaultskin().xml)},function(t){e(a.defaultskin().xml)})}}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:{}};o[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 P=0;P<K.length;P++){var Q=K[P].getAttribute("name");var I=K[P].getAttribute("value");var x=/color$/.test(Q)?"color":null;o[C].settings[Q]=b.typechecker(I,x)}}var L=E[H].getElementsByTagName("layout")[0];if(L&&L.childNodes.length>0){var M=L.getElementsByTagName("group");for(var w=0;w<M.length;w++){var A=M[w];o[C].layout[A.getAttribute("position")]={elements:[]};for(var O=0;O<A.attributes.length;O++){var D=A.attributes[O];o[C].layout[A.getAttribute("position")][D.name]=D.value}var N=A.getElementsByTagName("*");for(var v=0;v<N.length;v++){var t=N[v];o[C].layout[A.getAttribute("position")].elements.push({type:t.tagName});for(var u=0;u<t.attributes.length;u++){var J=t.attributes[u];o[C].layout[A.getAttribute("position")].elements[v][J.name]=J.value}if(!b.exists(o[C].layout[A.getAttribute("position")].elements[v].name)){o[C].layout[A.getAttribute("position")].elements[v].name=t.tagName}}}}f=false;r()}}function r(){clearInterval(j);if(!s){j=setInterval(function(){q()},100)}}function c(y,x){var w=new Image();var t=y.getAttribute("name");var v=y.getAttribute("src");var A;if(v.indexOf("data:image/png;base64,")===0){A=v}else{var u=b.getAbsolutePath(n);var z=u.substr(0,u.lastIndexOf("/"));A=[z,x,v].join("/")}o[x].elements[t]={height:0,width:0,src:"",ready:false,image:w};w.onload=function(B){h(w,t,x)};w.onerror=function(B){s=true;r();l()};w.src=A}function i(){for(var u in o){var w=o[u];for(var t in w.elements){var x=w.elements[t];var v=x.image;v.onload=null;v.onerror=null;delete x.image;delete w.elements[t]}delete o[u]}}function q(){for(var t in o){if(t!="properties"){for(var u in o[t].elements){if(!o[t].elements[u].ready){return}}}}if(f===false){clearInterval(j);d(o)}}function h(t,v,u){if(o[u]&&o[u].elements[v]){o[u].elements[v].height=t.height;o[u].elements[v].width=t.width;o[u].elements[v].src=t.src;o[u].elements[v].ready=true;r()}else{b.log("Loaded an image for a missing element: "+u+"."+v)}}m()}})(jwplayer.html5);(function(a){var e=jwplayer,c=e.utils,d=e.events,b=d.state;a.video=function(N){var H={abort:u,canplay:n,canplaythrough:u,durationchange:y,emptied:u,ended:u,error:j,loadeddata:u,loadedmetadata:n,loadstart:u,pause:M,play:M,playing:M,progress:u,ratechange:u,readystatechange:u,seeked:u,seeking:u,stalled:u,suspend:u,timeupdate:O,volumechange:i,waiting:q},t={mp4:"video/mp4",webm:"video/webm",m3u8:"audio/x-mpegurl"},z,w,r,S,l,K,R,C,I,A,f=b.IDLE,D=0,k=-1,B=-1,F=new d.eventdispatcher(),p=false;c.extend(this,F);function P(T){r=T;J();r.controls=true;r.controls=false;p=true}function J(){for(var T in H){r.addEventListener(T,H[T],false)}}function o(T,U){if(p){F.sendEvent(T,U)}}function u(T){}function y(T){if(!p){return}if(S<0){S=r.duration}O()}function O(T){if(!p){return}if(f==b.PLAYING&&!A){l=r.currentTime;o(d.JWPLAYER_MEDIA_TIME,{position:l,duration:S});if(l>=S&&S>0){L()}}}function n(T){if(!p){return}if(!R){R=true;m();if(I>0){x(I)}}}function m(){if(!C){C=true;o(d.JWPLAYER_MEDIA_BUFFER_FULL)}}function M(T){if(!p||A){return}if(r.paused){}else{s(b.PLAYING)}}function q(T){if(!p){return}s(b.BUFFERING)}function j(T){if(!p){return}c.log("Error: %o",r.error);s(b.IDLE)}function g(T){var U=t[c.strings.extension(T)];return(!!U&&r.canPlayType(U))}function E(U){if(U.levels&&U.levels.length>0){for(var T=0;T<U.levels.length;T++){if(g(U.levels[T].file)){return U.levels[T].file}}}else{if(U.file&&g(U.file)){return U.file}}return null}this.load=function(T){if(!p){return}z=T;R=false;C=false;I=0;S=T.duration?T.duration:-1;l=0;w=E(z);if(!w){c.log("Could not find a file to play.");return}s(b.BUFFERING);r.src=w;r.load();k=setInterval(h,100);if(c.isMobile()){r.controls=true}if(c.isIPod()){m()}};var v=this.stop=function(){if(!p){return}r.removeAttribute("src");r.load();clearInterval(k);s(b.IDLE)};this.play=function(){if(p){r.play()}};this.pause=function(){if(p){r.pause();s(b.PAUSED)}};this.seekDrag=function(T){if(!p){return}A=T;if(T){r.pause()}else{r.play()}};var x=this.seek=function(T){if(!p){return}if(r.readyState>=r.HAVE_FUTURE_DATA){I=0;if(!A){o(d.JWPLAYER_MEDIA_SEEK,{position:l,offset:T})}r.currentTime=T}else{I=T}};var Q=this.volume=function(T){if(r.muted){r.muted=false}r.volume=T/100};function i(T){o(d.JWPLAYER_MEDIA_VOLUME,{volume:Math.round(r.volume*100)});o(d.JWPLAYER_MEDIA_MUTE,{mute:r.muted})}this.mute=function(T){if(!c.exists(T)){T=!r.mute}if(T){D=r.volume*100;Q(0);r.muted=true}else{Q(D)}};function s(T){if(T==b.PAUSED&&f==b.IDLE){return}if(A){return}if(f!=T){var U=f;f=T;o(d.JWPLAYER_PLAYER_STATE,{oldstate:U,newstate:T})}}function h(){if(!p){return}var T=G();if(T!=B){B=T;o(d.JWPLAYER_MEDIA_BUFFER,{bufferPercent:Math.round(B*100)})}if(T>=1){clearInterval(k)}}function G(){if(r.buffered.length==0||r.duration==0){return 0}else{return r.buffered.end(r.buffered.length-1)/r.duration}}function L(){s(b.IDLE);o(d.JWPLAYER_MEDIA_COMPLETE)}this.detachMedia=function(){p=false;return r};this.attachMedia=function(){p=true};this.getTag=function(){return r};P(N)}})(jwplayer.html5);(function(g){var b=jwplayer,h=b.utils,m=h.css,i=jwplayer.events,n=i.state,d=document,k="jwplayer",a="."+k+".jwfullscreen",l="jwmain",r="jwinstream",q="jwvideo",c="jwcontrols",e="jwplaylist";g.view=function(G,v){var K=G,N=v,L={},U,C,V,M,s=0,I=2000,D,z;this.setup=function(X){K.skin=X;U=Q("div",k);U.id=K.id;var W=document.getElementById(K.id);W.parentNode.replaceChild(U,W);C=Q("span",l);D=Q("span",q);D.appendChild(N.getVideo().getTag());V=Q("span",c);z=Q("span",r);M=Q("span",e);F();C.appendChild(D);C.appendChild(V);C.appendChild(z);U.appendChild(C);U.appendChild(M);d.addEventListener("webkitfullscreenchange",t,false);d.addEventListener("mozfullscreenchange",t,false);d.addEventListener("keydown",y,false);K.jwAddEventListener(i.JWPLAYER_PLAYER_STATE,B);B({newstate:n.IDLE});U.addEventListener("mouseout",J,false);U.addEventListener("mousemove",function(Y){x();clearTimeout(s);s=setTimeout(J,I)},false)};function Q(X,W){var Y=d.createElement(X);if(W){Y.className=W}return Y}function J(){if(K.jwGetState()==n.PLAYING){E()}clearTimeout(s);s=0}function F(){var X=N.width,W=N.height,Y=N.componentConfig("controlbar");displaySettings=N.componentConfig("display");if(W>40||W.indexOf("%")){L.display=new g.display(K,displaySettings);V.appendChild(L.display.getDisplayElement());displaySettings.backgroundcolor=L.display.getBGColor()}else{displaySettings.backgroundcolor="transparent";Y.margin=0}m(u(),{"background-color":displaySettings.backgroundcolor});if(N.playlistsize>0&&N.playlistposition&&N.playlistposition!="none"){L.playlist=new g.playlistcomponent(K,{});M.appendChild(L.playlist.getDisplayElement())}A(X,W);if(!h.isMobile()){L.controlbar=new g.controlbar(K,Y);V.appendChild(L.controlbar.getDisplayElement())}}var S=this.fullscreen=function(W){if(!h.exists(W)){W=!N.fullscreen}if(W){if(!N.fullscreen){w(true);if(U.requestFullScreen){U.requestFullScreen()}else{if(U.mozRequestFullScreen){U.mozRequestFullScreen()}else{if(U.webkitRequestFullScreen){U.webkitRequestFullScreen()}}}N.setFullscreen(true)}}else{w(false);if(N.fullscreen){if(d.cancelFullScreen){d.cancelFullScreen()}else{if(d.mozCancelFullScreen){d.mozCancelFullScreen()}else{if(d.webkitCancelFullScreen){d.webkitCancelFullScreen()}}}N.setFullscreen(false)}}};function A(Y,W){if(h.exists(Y)&&h.exists(W)){m(u(),{width:Y,height:W});N.width=Y;N.height=W}if(L.display){L.display.resize(Y,W)}if(L.controlbar){L.controlbar.resize(Y,W)}var aa=N.playlistsize,ab=N.playlistposition;if(L.playlist&&aa>0&&ab){L.playlist.resize(Y,W);var X={display:"block"},Z={};X[ab]=0;Z[ab]=aa;if(ab=="left"||ab=="right"){X.width=aa}else{X.height=aa}m(u(e),X);m(u(l),Z)}return}this.resize=A;this.completeSetup=function(){m(u(),{opacity:1})};function y(W){switch(W.keyCode){case 27:if(N.fullscreen){S(false)}break;case 32:K.jwPlay();break}}function w(W){if(W){U.className+=" jwfullscreen"}else{U.className=U.className.replace(/\s+jwfullscreen/,"")}}function O(){var W=[d.mozFullScreenElement,d.webkitCurrentFullScreenElement];for(var X=0;X<W.length;X++){if(W[X]&&W[X].id==K.id){return true}}return false}function t(W){N.setFullscreen(O());S(N.fullscreen)}function E(){if(L.controlbar){L.controlbar.hide()}if(L.display){L.display.hide()}}function x(){if(L.controlbar){L.controlbar.show()}if(L.display){L.display.show()}}var H;function B(W){clearTimeout(H);H=setTimeout(function(){T(W.newstate)},100)}function T(X){var W={};switch(X){case n.PLAYING:if(h.isIPod()){W.display="block"}W.opacity=1;m(u(q),W);E();break;case n.COMPLETED:case n.IDLE:if(h.isIPod()){W.display="none"}W.opacity=0;m(u(q),W);x();break;case n.BUFFERING:case n.PAUSED:if(!h.isMobile()){x()}break}}function u(W){return"#"+K.id+(W?" ."+W:"")}this.setupInstream=function(W,X){P(u(r),true);P(u(c),false);z.appendChild(W);_instreamVideo=X;B({newstate:n.PLAYING});_instreamMode=true};var R=this.destroyInstream=function(){P(u(r),false);P(u(c),true);z.innerHTML="";_instreamVideo=null;_instreamMode=false;A(N.width,N.height)};function P(W,X){m(W,{display:X?"block":"none"})}};var p="opacity .5s ease",j="100%",f="absolute",o=" !important";m("."+k,{position:"relative",overflow:"hidden",opacity:0,"-webkit-transition":p,"-moz-transition":p,"-o-transition":p});m("."+l,{position:f,left:0,right:0,top:0,bottom:0,"-webkit-transition":p,"-moz-transition":p,"-o-transition":p});m("."+q+" ,."+c,{position:f,height:j,width:j,"-webkit-transition":p,"-moz-transition":p,"-o-transition":p});m("."+q+" video",{background:"transparent",width:j,height:j});m("."+e,{position:f,height:j,width:j,display:"none"});m("."+r,{overflow:"hidden",position:f,top:0,left:0,bottom:0,right:0,display:"none"});m(a,{width:j,height:j,"z-index":1000,position:"fixed"},true);m(a+" ."+l,{left:0,right:0,top:0,bottom:0},true);m(a+" ."+e,{display:"none"},true);m("."+k+" .jwuniform",{"background-size":"contain"+o});m("."+k+" .jwfill",{"background-size":"cover"+o});m("."+k+" .jwexactfit",{"background-size":j+o});m("."+k+" .jwnone",{"background-size":null})})(jwplayer.html5)}; 
     1if(typeof jwplayer=="undefined"){jwplayer=function(a){if(jwplayer.api){return jwplayer.api.selectPlayer(a)}};var $jw=jwplayer;jwplayer.version="6.0";jwplayer.vid=document.createElement("video");jwplayer.audio=document.createElement("audio");jwplayer.source=document.createElement("source");(function(h){var d=document;var p=window;var o=h.utils=function(){};o.exists=function(t){switch(typeof(t)){case"string":return(t.length>0);break;case"object":return(t!==null);case"undefined":return false}return true};var b={},r,a={};function q(){var t=d.createElement("style");t.type="text/css";d.getElementsByTagName("head")[0].appendChild(t);return t}o.css=function(t,w,u){if(!o.exists(u)){u=false}if(o.isIE()){if(!r){r=q()}}else{if(!b[t]){b[t]=q()}}if(!a[t]){a[t]={}}for(var v in w){var x=g(v,w[v],u);if(o.exists(a[t][v])&&!o.exists(x)){delete a[t][v]}else{a[t][v]=x}}if(o.isIE()){i()}else{e(t,b[t])}};function g(v,w,t){if(typeof w==="undefined"){return undefined}var u=t?" !important":"";if(typeof w=="number"){if(isNaN(w)){return undefined}switch(v){case"z-index":case"opacity":return w+u;break;default:if(v.match(/color/i)){return"#"+o.strings.pad(w.toString(16),6)}else{return Math.ceil(w)+"px"+u}break}}else{return w+u}}function i(){var t="\n";for(var u in a){t+=s(u)}r.innerHTML=t}function e(t,u){if(u){u.innerHTML=s(t)}}function s(t){var u=t+"{\n";var w=a[t];for(var v in w){u+="  "+v+": "+w[v]+";\n"}u+="}\n";return u}o.clearCss=function(u){for(var v in a){if(v.indexOf(u)>=0){delete a[v]}}for(var t in b){if(t.indexOf(u)>=0){b[t].innerHTML=""}}};o.getAbsolutePath=function(z,y){if(!o.exists(y)){y=d.location.href}if(!o.exists(z)){return undefined}if(j(z)){return z}var A=y.substring(0,y.indexOf("://")+3);var x=y.substring(A.length,y.indexOf("/",A.length+1));var u;if(z.indexOf("/")===0){u=z.split("/")}else{var v=y.split("?")[0];v=v.substring(A.length+x.length+1,v.lastIndexOf("/"));u=v.split("/").concat(z.split("/"))}var t=[];for(var w=0;w<u.length;w++){if(!u[w]||!o.exists(u[w])||u[w]=="."){continue}else{if(u[w]==".."){t.pop()}else{t.push(u[w])}}}return A+x+"/"+t.join("/")};function j(u){if(!o.exists(u)){return}var v=u.indexOf("://");var t=u.indexOf("?");return(v>0&&(t<0||(t>v)))}o.extend=function(){var t=o.extend["arguments"];if(t.length>1){for(var v=1;v<t.length;v++){for(var u in t[v]){t[0][u]=t[v][u]}}return t[0]}return null};o.parseDimension=function(t){if(typeof t=="string"){if(t===""){return 0}else{if(t.lastIndexOf("%")>-1){return t}else{return parseInt(t.replace("px",""),10)}}}return t};o.timeFormat=function(t){if(t>0){str=Math.floor(t/60)<10?"0"+Math.floor(t/60)+":":Math.floor(t/60)+":";str+=Math.floor(t%60)<10?"0"+Math.floor(t%60):Math.floor(t%60);return str}else{return"00:00"}};o.log=function(u,t){if(typeof console!="undefined"&&typeof console.log!="undefined"){if(t){console.log(u,t)}else{console.log(u)}}};o.getBoundingClientRect=function(t){if(typeof t.getBoundingClientRect=="function"){return t.getBoundingClientRect()}else{return{left:t.offsetLeft+d.body.scrollLeft,top:t.offsetTop+d.body.scrollTop,width:t.offsetWidth,height:t.offsetHeight}}};var k=o.userAgentMatch=function(u){var t=navigator.userAgent.toLowerCase();return(t.match(u)!==null)};o.isIE=function(){return k(/msie/i)};o.isMobile=function(){return k(/(iP(hone|ad|od))|android/i)};h.utils.isIOS=function(){return k(/iP(hone|ad|od)/i)};o.isIPod=function(){return k(/iP(hone|od)/i)};o.saveCookie=function(t,u){d.cookie="jwplayer."+t+"="+u+"; path=/"};o.getCookies=function(){var w={};var v=d.cookie.split("; ");for(var u=0;u<v.length;u++){var t=v[u].split("=");if(t[0].indexOf("jwplayer.")==0){w[t[0].substring(9,t[0].length)]=o.strings.serialize(t[1])}}return w};o.ajax=function(x,w,t){var v;if(m(x)&&o.exists(p.XDomainRequest)){v=new XDomainRequest();v.onload=n(v,x,w,t);v.onerror=f(t,x,v)}else{if(o.exists(p.XMLHttpRequest)){v=new XMLHttpRequest();v.onreadystatechange=c(v,x,w,t);v.onerror=f(t,x)}else{if(t){t()}}}try{v.open("GET",x,true);v.send(null)}catch(u){if(t){t(x)}}return v};function m(t){if(t&&t.indexOf("://")>=0){if(t.split("/")[2]!=window.location.href.split("/")[2]){return true}}return false}function f(t,v,u){return function(){t(v)}}function c(u,w,v,t){return function(){if(u.readyState===4){if(u.status==200){n(u,w,v,t)()}else{if(t){t(w)}}}}}function n(u,w,v,t){return function(){if(!o.exists(u.responseXML)){try{var x;if(p.DOMParser){x=(new DOMParser()).parseFromString(u.responseText,"text/xml")}else{x=new ActiveXObject("Microsoft.XMLDOM");x.async="false";x.loadXML(u.responseText)}if(x){u=h.utils.extend({},u,{responseXML:x})}}catch(y){if(t){t(w)}return}}v(u)}}o.typeOf=function(u){var t=typeof u;if(t==="object"){if(!u){return"null"}return(u instanceof Array)?"array":t}else{return t}};o.transform=function(v,u,t,x,y){if(!h.utils.exists(u)){u=1}if(!h.utils.exists(t)){t=1}if(!h.utils.exists(x)){x=0}if(!h.utils.exists(y)){y=0}if(u==1&&t==1&&x==0&&y==0){v.style.webkitTransform="";v.style.MozTransform="";v.style.msTransform="";v.style.OTransform=""}else{var w="scale("+u+","+t+") translate("+x+"px,"+y+"px)";v.style.webkitTransform=w;v.style.MozTransform=w;v.style.msTransform=w;v.style.OTransform=w}};o.stretch=function(B,G,F,y,D,z){if(!G){return}if(!F||!y||!D||!z){return}var u=F/D,x=y/z,E=0,A=0,t={},v=(G.tagName.toLowerCase()=="video"),w=false,C;if(v){o.transform(G)}C="jw"+B.toLowerCase();switch(B.toLowerCase()){case l.FILL:if(u>x){D=D*u;z=z*u}else{D=D*x;z=z*x}case l.NONE:u=x=1;case l.EXACTFIT:w=true;break;case l.UNIFORM:if(u>x){D=D*x;z=z*x;if(D/F>0.95){w=true;C="jwexactfit";u=Math.ceil(100*F/D)/100;x=1}}else{D=D*u;z=z*u;if(z/y>0.95){w=true;C="jwexactfit";x=Math.ceil(100*y/z)/100;u=1}}break;default:return;break}if(v){if(w){G.style.width=D+"px";G.style.height=z+"px";E=((F-D)/2)/u;A=((y-z)/2)/x;o.transform(G,u,x,E,A)}else{G.style.width="";G.style.height=""}}else{G.className=G.className.replace(/\s*jw(none|exactfit|uniform|fill)/g,"");G.className+=" "+C}};var l=o.stretching={NONE:"none",FILL:"fill",UNIFORM:"uniform",EXACTFIT:"exactfit"}})(jwplayer);(function(b){var a=b.strings=function(){};a.trim=function(c){return c.replace(/^\s*/,"").replace(/\s*$/,"")};a.pad=function(d,e,c){if(!c){c="0"}while(d.length<e){d=c+d}return d};a.serialize=function(c){if(c==null){return null}else{if(c=="true"){return true}else{if(c=="false"){return false}else{if(isNaN(Number(c))||c.length>5||c.length==0){return c}else{return Number(c)}}}}};a.seconds=function(e){e=e.replace(",",".");var c=e.split(":");var d=0;if(e.substr(-1)=="s"){d=Number(e.substr(0,e.length-1))}else{if(e.substr(-1)=="m"){d=Number(e.substr(0,e.length-1))*60}else{if(e.substr(-1)=="h"){d=Number(e.substr(0,e.length-1))*3600}else{if(c.length>1){d=Number(c[c.length-1]);d+=Number(c[c.length-2])*60;if(c.length==3){d+=Number(c[c.length-3])*3600}}else{d=Number(e)}}}}return d};a.xmlAttribute=function(c,d){for(var e=0;e<c.attributes.length;e++){if(c.attributes[e].name&&c.attributes[e].name.toLowerCase()==d.toLowerCase()){return c.attributes[e].value.toString()}}return""};a.jsonToString=function(g){var i=i||{};if(i&&i.stringify){return i.stringify(g)}var d=typeof(g);if(d!="object"||g===null){if(d=="string"){g='"'+g.replace(/"/g,'\\"')+'"'}else{return String(g)}}else{var h=[],c=(g&&g.constructor==Array);for(var e in g){var f=g[e];switch(typeof(f)){case"string":f='"'+f.replace(/"/g,'\\"')+'"';break;case"object":if(b.exists(f)){f=a.jsonToString(f)}break}if(c){if(typeof(f)!="function"){h.push(String(f))}}else{if(typeof(f)!="function"){h.push('"'+e+'":'+String(f))}}}if(c){return"["+String(h)+"]"}else{return"{"+String(h)+"}"}}};a.extension=function(c){if(!c){return""}c=c.substring(c.lastIndexOf("/")+1,c.length).split("?")[0];if(c.lastIndexOf(".")>-1){return c.substr(c.lastIndexOf(".")+1,c.length).toLowerCase()}}})(jwplayer.utils);(function(b){var d=new RegExp(/^(#|0x)[0-9a-fA-F]{3,6}/);b.typechecker=function(g,f){f=!b.exists(f)?c(g):f;return e(g,f)};function c(f){var g=["true","false","t","f"];if(g.toString().indexOf(f.toLowerCase().replace(" ",""))>=0){return"boolean"}else{if(d.test(f)){return"color"}else{if(!isNaN(parseInt(f,10))&&parseInt(f,10).toString().length==f.length){return"integer"}else{if(!isNaN(parseFloat(f))&&parseFloat(f).toString().length==f.length){return"float"}}}}return"string"}function e(g,f){if(!b.exists(f)){return g}switch(f){case"color":if(g.length>0){return a(g)}return null;case"integer":return parseInt(g,10);case"float":return parseFloat(g);case"boolean":if(g.toLowerCase()=="true"){return true}else{if(g=="1"){return true}}return false}return g}function a(f){f=f.replace(/(#|0x)?([0-9A-F]{3,6})$/gi,"$2");if(f.length==3){f=f.charAt(0)+f.charAt(0)+f.charAt(1)+f.charAt(1)+f.charAt(2)+f.charAt(2)}return parseInt(f,16)}})(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_PLAYER_STATE:"jwplayerPlayerState",state:{BUFFERING:"BUFFERING",IDLE:"IDLE",PAUSED:"PAUSED",PLAYING:"PLAYING",COMPLETED:"COMPLETED"},JWPLAYER_PLAYLIST_LOADED:"jwplayerPlaylistLoaded",JWPLAYER_PLAYLIST_ITEM:"jwplayerPlaylistItem",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){a.html5={}})(jwplayer);(function(a){a.utils={}})(jwplayer.html5);(function(a){var b=a.animations=function(){};b.transform=function(c,d){c.style.webkitTransform=d;c.style.MozTransform=d;c.style.OTransform=d;c.style.msTransform=d};b.transformOrigin=function(c,d){c.style.webkitTransformOrigin=d;c.style.MozTransformOrigin=d;c.style.OTransformOrigin=d;c.style.msTransformOrigin=d};b.rotate=function(c,d){b.transform(c,"rotate("+d+"deg)")}})(jwplayer.html5.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.strings.serialize(a.textContent(g));if(e=="file"&&j.levels){delete j.levels}}if(!j.file){j.file=j.link}}return j}})(jwplayer);(function(d){var h=jwplayer.utils.strings,g=h.xmlAttribute,b=d.localName,a=d.textContent,c=d.numChildren;var f=d.mediaparser=function(){};var e="media";f.parseGroup=function(m,n){for(var k=0;k<c(m);k++){var l=m.childNodes[k];if(l.prefix==e){if(!b(l)){continue}switch(b(l).toLowerCase()){case"content":n.file=g(l,"url");if(g(l,"duration")){n.duration=h.seconds(g(l,"duration"))}if(g(l,"start")){n.start=h.seconds(g(l,"start"))}if(c(l)>0){n=f.parseGroup(l,n)}if(g(l,"width")||g(l,"bitrate")||g(l,"url")){if(!n.levels){n.levels=[]}n.levels.push({width:g(l,"width"),bitrate:g(l,"bitrate"),file:g(l,"url")})}break;case"title":n.title=a(l);break;case"description":n.description=a(l);break;case"keywords":n.tags=a(l);break;case"thumbnail":n.image=g(l,"url");break;case"credit":n.author=a(l);break;case"player":var j=l.url;break;case"group":f.parseGroup(l,n);break}}}return n}})(jwplayer.html5.parsers);(function(f){var g=jwplayer.utils,a=f.textContent,d=f.getChildNode,e=f.numChildren,c=f.localName;f.rssparser={};f.rssparser.parse=function(o){var h=[];for(var m=0;m<e(o);m++){var n=d(o,m),k=c(n).toLowerCase();if(k=="channel"){for(var l=0;l<e(n);l++){var p=d(n,l);if(c(p).toLowerCase()=="item"){h.push(b(p))}}}}return h};function b(l){var m={};for(var j=0;j<l.childNodes.length;j++){var k=l.childNodes[j];var h=c(k);if(!h){continue}switch(h.toLowerCase()){case"enclosure":m.file=g.strings.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=f.mediaparser.parseGroup(l,m);m=f.jwparser.parseEntry(l,m);return new jwplayer.html5.playlistitem(m)}})(jwplayer.html5.parsers);(function(l){var u=l.html5,h=l.utils,i=l.events,p=l.events.state,o=h.css,b="button",n="text",e="divider",q="slider",f="relative",g="absolute",a="none",m="block",s="inline",k="inline-block",c="left",v="right",j="100%",r="width .25s linear, left .25s linear, opacity .25s, background .25s",t=".jwcontrolbar",d=document;u.controlbar=function(C,aq){var A,V,B={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:n}]},center:{position:"center",elements:[{name:"time",type:q}]},right:{position:"right",elements:[{name:"duration",type:n},{name:"blank",type:b},{name:"divider",type:e},{name:"mute",type:b},{name:"volume",type:q},{name:"divider",type:e},{name:"fullscreen",type:b}]}}},T,aA,al,ay,ao,aI,J,M,ai=false,ar=0,Y={play:"pause",mute:"unmute",fullscreen:"normalscreen"},az={play:false,mute:false,fullscreen:false},z={play:ad,mute:N,fullscreen:aa,next:y,prev:ag},D={time:X,volume:aD};function aC(){al={};A=C;ao=A.id+"_controlbar";aI=J=0;ay=O();ay.id=ao;ay.className="jwcontrolbar";window.addEventListener("mousemove",aH,false);window.addEventListener("mouseup",aH,false);V=A.skin;T=h.extend({},B,V.getComponentSettings("controlbar"),aq);aA=V.getComponentLayout("controlbar");if(!aA){aA=B.layout}W();au();w();P();E();aE()}function w(){A.jwAddEventListener(l.events.JWPLAYER_MEDIA_TIME,aJ);A.jwAddEventListener(l.events.JWPLAYER_PLAYER_STATE,G);A.jwAddEventListener(l.events.JWPLAYER_MEDIA_MUTE,aE);A.jwAddEventListener(l.events.JWPLAYER_MEDIA_VOLUME,E);A.jwAddEventListener(l.events.JWPLAYER_MEDIA_BUFFER,K);A.jwAddEventListener(l.events.JWPLAYER_FULLSCREEN,F);A.jwAddEventListener(l.events.JWPLAYER_PLAYLIST_LOADED,P)}function aJ(aL){var aK=false,aM;if(al.elapsed){aM=h.timeFormat(aL.position);al.elapsed.innerHTML=aM;aK=(aM.length!=h.timeFormat(J).length)}if(al.duration){aM=h.timeFormat(aL.duration);al.duration.innerHTML=aM;aK=(aK||(aM.length!=h.timeFormat(aI).length))}if(aL.duration>0){ax(aL.position/aL.duration)}else{ax(0)}aI=aL.duration;J=aL.position;if(aK){ah()}}function G(aK){switch(aK.newstate){case p.BUFFERING:case p.PLAYING:o(at(".jwtimeSliderThumb"),{opacity:1});S("play",true);break;case p.PAUSED:if(!ai){S("play",false)}break;case p.IDLE:S("play",false);o(at(".jwtimeSliderThumb"),{opacity:0});if(al.timeRail){al.timeRail.className="jwrail";setTimeout(function(){al.timeRail.className+=" jwsmooth"},100)}aB(0);aJ({position:0,duration:0});break;case p.COMPLETED:o(at(),{opacity:0});break}}function aE(){var aK=A.jwGetMute();S("mute",aK);x(aK?0:M)}function E(){M=A.jwGetVolume()/100;x(M)}function K(aK){aB(aK.bufferPercent/100)}function F(aK){S("fullscreen",aK.fullscreen)}function P(aK){if(A.jwGetPlaylist().length<2){o(at(".jwnext"),{display:"none"});o(at(".jwprev"),{display:"none"})}else{o(at(".jwnext"),{display:undefined});o(at(".jwprev"),{display:undefined})}ah()}function W(){h.clearCss("#"+ao);o("#"+ao,{height:ac("background").height,bottom:T.margin?T.margin:0,left:T.margin?T.margin:0,right:T.margin?T.margin:0});o(at(".jwtext"),{font:T.fontsize+"px/"+ac("background").height+"px "+T.font,color:T.fontcolor,"font-weight":T.fontweight,"font-style":T.fontstyle,"text-align":"center",padding:"0 5px"})}function at(aK){return"#"+ao+(aK?" "+aK:"")}function O(){return d.createElement("span")}function au(){var aM=am("capLeft");var aL=am("capRight");var aK=am("background",{position:g,left:ac("capLeft").width,right:ac("capRight").width,"background-repeat":"repeat-x"},true);if(aK){ay.appendChild(aK)}if(aM){ay.appendChild(aM)}av();if(aL){ay.appendChild(aL)}}function Q(aK){switch(aK.type){case e:return af(aK);break;case n:return an(aK.name);break;case b:if(aK.name!="blank"){return ae(aK.name)}break;case q:return R(aK.name);break}}function am(aM,aP,aL,aR){var aO=O();aO.className="jw"+aM;var aK=aR?" left center":" center";var aN=ac(aM);aO.innerHTML="&nbsp;";if(!aN||aN.src==""){return}var aQ;if(aL){aQ={background:"url('"+aN.src+"') repeat-x "+aK}}else{aQ={background:"url('"+aN.src+"') no-repeat"+aK,width:aN.width}}o(at(".jw"+aM),h.extend(aQ,aP));al[aM]=aO;return aO}function ae(aM){if(!ac(aM+"Button").src){return null}var aN=d.createElement("button");aN.className="jw"+aM;aN.addEventListener("click",aj(aM),false);var aO=ac(aM+"Button");var aL=ac(aM+"ButtonOver");aN.innerHTML="&nbsp;";U(at(".jw"+aM),aO,aL);var aK=Y[aM];if(aK){U(at(".jw"+aM+".jwtoggle"),ac(aK+"Button"),ac(aK+"ButtonOver"))}al[aM]=aN;return aN}function U(aK,aL,aM){if(!aL.src){return}o(aK,{width:aL.width,background:"url("+aL.src+") center no-repeat"});if(aM.src){o(aK+":hover",{background:"url("+aM.src+") center no-repeat"})}}function aj(aK){return function(){if(z[aK]){z[aK]()}}}function ad(){if(az.play){A.jwPause()}else{A.jwPlay()}}function N(){A.jwSetMute();aE({mute:az.mute})}function aD(aK){if(aK<0.1){aK=0}if(aK>0.9){aK=1}A.jwSetVolume(aK*100);x(aK)}function X(aK){A.jwSeek(aK*aI)}function aa(){A.jwSetFullscreen()}function y(){A.jwPlaylistNext()}function ag(){A.jwPlaylistNext()}function S(aK,aL){if(!h.exists(aL)){aL=!az[aK]}if(al[aK]){al[aK].className="jw"+aK+(aL?" jwtoggle jwtoggling":" jwtoggling");setTimeout(function(){al[aK].className=al[aK].className.replace(" jwtoggling","")},100)}az[aK]=aL}function L(aK){return ao+"_"+aK}function an(aK,aO){var aM=O();aM.id=L(aK);aM.className="jwtext jw"+aK;var aL={};var aN=ac(aK+"Background");if(aN.src){aL.background="url("+aN.src+") no-repeat center";aL["background-size"]="100% "+ac("background").height+"px"}o(at(".jw"+aK),aL);aM.innerHTML="00:00";al[aK]=aM;return aM}function af(aL){if(aL.width){var aK=O();aK.className="jwblankDivider";o(aK,{width:parseInt(aL.width)});return aK}else{if(aL.element){return am(aL.element)}else{return am(aL.name)}}}function R(aK){var aN=O();aN.className="jwslider jw"+aK;var aM=am(aK+"SliderCapLeft");var aL=am(aK+"SliderCapRight");if(aL){aL.className+=" jwcapRight"}var aO=ap(aK);if(aM){aN.appendChild(aM)}aN.appendChild(aO);if(aM){aN.appendChild(aL)}o(at(".jw"+aK+" .jwrail"),{left:ac(aK+"SliderCapLeft").width,right:ac(aK+"SliderCapRight").width,});al[aK]=aN;if(aK=="time"){aG(aN);ax(0);aB(0)}else{if(aK=="volume"){aw(aN)}}return aN}function ap(aM){var aP=O();aP.className="jwrail jwsmooth";var aK=["Rail","Buffer","Progress"];for(var aO=0;aO<aK.length;aO++){var aN=am(aM+"Slider"+aK[aO],null,true,(aM=="volume"));if(aN){aN.className+=" jwstretch";aP.appendChild(aN)}}var aL=am(aM+"SliderThumb");if(aL){o(at("."+aL.className),{opacity:0});aL.className+=" jwthumb";aP.appendChild(aL)}aP.addEventListener("mousedown",H(aM),false);al[aM+"Rail"]=aP;return aP}function I(){var aK=A.jwGetState();return(aK==p.IDLE||aK==p.COMPLETED)}function H(aK){return(function(aL){if(aL.button!=0){return}al[aK+"Rail"].className="jwrail";if(aK=="time"){if(!I()){A.jwSeekDrag(true);ai=aK}}else{ai=aK}})}function aH(aK){if(!ai||aK.button!=0){return}var aO=al[ai].getElementsByClassName("jwrail")[0],aP=h.getBoundingClientRect(aO),aN=(aK.clientX-aP.left)/aP.width;if(aK.type=="mouseup"){var aL=ai;if(aL=="time"){A.jwSeekDrag(false)}al[aL+"Rail"].className="jwrail jwsmooth";ai=null;D[aL](aN)}else{if(ai=="time"){ax(aN)}else{x(aN)}var aM=(new Date()).getTime();if(aM-ar>500){ar=aM;D[ai](aN)}}}function aG(aK){if(al.timeSliderThumb){o(at(".jwtimeSliderThumb"),{"margin-left":(ac("timeSliderThumb").width/-2)})}aB(0);ax(0)}function aw(aM){var aL=ac("volumeSliderCapLeft").width,aK=ac("volumeSliderCapRight").width,aN=ac("volumeSliderRail").width;o(at(".jwvolume"),{width:(aL+aN+aK)})}var Z={};function av(){aF("left");aF("center");aF("right");ay.appendChild(Z.left);ay.appendChild(Z.center);ay.appendChild(Z.right);o(at(".jwright"),{right:ac("capRight").width})}function aF(aL){var aK=O();aK.className="jwgroup jw"+aL;Z[aL]=aK;if(aA[aL]){ab(aA[aL],Z[aL])}}function ab(aN,aK){if(aN&&aN.elements.length>0){for(var aM=0;aM<aN.elements.length;aM++){var aL=Q(aN.elements[aM]);if(aL){aK.appendChild(aL)}}}}var ah=this.resize=function(aL,aK){o(at(".jwgroup.jwcenter"),{left:Math.round(h.parseDimension(Z.left.offsetWidth)+ac("capLeft").width),right:Math.round(h.parseDimension(Z.right.offsetWidth)+ac("capRight").width)})};this.getDisplayElement=function(){return ay};function aB(aK){aK=Math.min(Math.max(0,aK),1);if(al.timeSliderBuffer){al.timeSliderBuffer.style.width=aK*100+"%"}}function ak(aK,aM,aN){var aL=100*Math.min(Math.max(0,aM),1)+"%";if(al[aK+"SliderProgress"]){al[aK+"SliderProgress"].style.width=aL}if(al[aK+"SliderThumb"]){al[aK+"SliderThumb"].style.left=aL}}function x(aK){ak("volume",aK,true)}function ax(aK){ak("time",aK)}function ac(aK){var aL=V.getSkinElement("controlbar",aK);if(aL){return aL}else{return{width:0,height:0,src:"",image:undefined,ready:false}}}this.show=function(){o(at(),{opacity:1})};this.hide=function(){o(at(),{opacity:0})};aC()};o(t,{position:g,overflow:"hidden",opacity:0,"-webkit-transition":r,"-moz-transition":r,"-o-transition":r});o(t+" span",{height:j,"-webkit-user-select":a,"-webkit-user-drag":a,"user-select":a,"user-drag":a});o(t+" .jwgroup",{display:s});o(t+" span, "+t+" .jwgroup button,"+t+" .jwleft",{position:f,"float":c});o(t+" .jwright",{position:g});o(t+" .jwcenter",{position:g});o(t+" button",{display:k,height:j,border:a,cursor:"pointer","-webkit-transition":r,"-moz-transition":r,"-o-transition":r});o(t+" .jwcapRight",{right:0,position:g});o(t+" .jwtime,"+t+" .jwgroup span.jwstretch",{position:g,height:j,width:j,left:0});o(t+" .jwrail,"+t+" .jwthumb",{position:g,height:j,cursor:"pointer"});o(t+" .jwtime .jwsmooth span",{"-webkit-transition":r,"-moz-transition":r,"-o-transition":r});o(t+" .jwdivider+.jwdivider",{display:a});o(t+" .jwtext",{padding:"0 5px","text-align":"center"});o(t+" .jwtoggling",{"-webkit-transition":a,"-moz-transition":a,"-o-transition":a})})(jwplayer);(function(a){var e=jwplayer,c=e.utils,d=e.events,b=d.state;a.controller=function(h,w){var C=h,f=w,o=h.getVideo(),v=this,l=new d.eventdispatcher(C.id,C.config.debug);c.extend(this,l);function p(){C.addEventListener(d.JWPLAYER_MEDIA_BUFFER_FULL,z);C.addEventListener(d.JWPLAYER_MEDIA_COMPLETE,r)}function E(H){f.completeSetup();l.sendEvent(H.type,H);l.sendEvent(jwplayer.events.JWPLAYER_PLAYLIST_LOADED,{playlist:C.playlist});l.sendEvent(jwplayer.events.JWPLAYER_PLAYLIST_ITEM,{index:C.item});C.addGlobalListener(F);G();if(C.autostart&&!c.isMobile()){u()}}function F(H){l.sendEvent(H.type,H)}function z(H){o.play()}function G(H){n();switch(c.typeOf(H)){case"string":C.setPlaylist(new a.playlist({file:H}));C.setItem(0);break;case"object":case"array":C.setPlaylist(new a.playlist(H));C.setItem(0);break;case"number":C.setItem(H);break}}var q,k,m;function u(){try{k=u;if(!q){q=true;l.sendEvent(d.JWPLAYER_MEDIA_BEFOREPLAY);q=false;if(m){m=false;k=null;return}}if(C.state==b.IDLE){o.load(C.playlist[C.item])}else{if(C.state==b.PAUSED){o.play()}}return true}catch(H){l.sendEvent(d.JWPLAYER_ERROR,H);k=null}return false}function n(){k=null;try{if(C.state!=b.IDLE&&C.state!=b.COMPLETE){o.stop()}if(q){m=true}return true}catch(H){l.sendEvent(d.JWPLAYER_ERROR,H)}return false}function D(){try{switch(C.state){case b.PLAYING:case b.BUFFERING:o.pause();break;default:if(q){m=true}}return true}catch(H){l.sendEvent(d.JWPLAYER_ERROR,H)}return false;if(C.state==b.PLAYING||C.state==b.BUFFERING){o.pause()}}function A(H){o.seek(H)}function y(H){f.fullscreen(H)}function t(H){C.stretching=H;f.resize()}function s(H){G(H);u()}function i(){s(C.item-1)}function j(){s(C.item+1)}function r(){if(C.state!=b.IDLE){return}k=r;switch(C.repeat.toLowerCase()){case"single":u();break;case"always":j();break;case"list":if(C.item==C.playlist.length-1){G(0)}else{j()}break;default:break}}function B(H){return function(){H.apply(this,arguments)}}function x(){try{return C.getVideo().detachMedia()}catch(H){return null}}function g(){try{var H=C.getVideo().attachMedia();if(typeof k=="function"){k()}}catch(I){return null}}this.play=B(u);this.pause=B(D);this.seek=B(A);this.stop=B(n);this.load=B(G);this.next=B(j);this.prev=B(i);this.item=B(s);this.setVolume=B(C.setVolume);this.setMute=B(C.setMute);this.setFullscreen=B(y);this.setStretching=B(t);this.detachMedia=x;this.attachMedia=g;this.playerReady=E;p()}})(jwplayer.html5);(function(a){a.html5.defaultskin=function(){this.text='<?xml version="1.0" ?><skin author="LongTail Video" name="Five" version="1.1"><components><component name="controlbar"><settings><setting name="margin" value="20"/><setting name="fontsize" value="11"/><setting name="fontcolor" value="0x000000"/></settings><layout><group position="left"><button name="play"/><divider name="divider"/><button name="prev"/><divider name="divider"/><button name="next"/><divider name="divider"/><text name="elapsed"/></group><group position="center"><slider name="time"/></group><group position="right"><text name="duration"/><divider name="divider"/><button name="blank"/><divider name="divider"/><button name="mute"/><slider name="volume"/><divider name="divider"/><button name="fullscreen"/></group></layout><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAElJREFUOI3t1LERACAMQlFgGvcfxNIhHMK4gsUvUviOmgtNsiAZkBSEKxKEnCYkkQrJn/YwbUNiSDDYRZaQRDaShv+oX9GBZEIuK+8hXVLs+/YAAAAASUVORK5CYII="/><element name="blankButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAYCAYAAAAyJzegAAAAFElEQVQYV2P8//8/AzpgHBUc7oIAGZdH0RjKN8EAAAAASUVORK5CYII="/><element name="capLeft" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAYAAAA7zJfaAAAAQElEQVQIWz3LsRGAMADDQJ0XB5bMINABZ9GENGrszxhjT2WLSqxEJG2JQrTMdV2q5LpOAvyRaVmsi7WdeZ/7+AAaOTq7BVrfOQAAAABJRU5ErkJggg=="/><element name="capRight" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAYAAAA7zJfaAAAAQElEQVQIWz3LsRGAMADDQJ0XB5bMINABZ9GENGrszxhjT2WLSqxEJG2JQrTMdV2q5LpOAvyRaVmsi7WdeZ/7+AAaOTq7BVrfOQAAAABJRU5ErkJggg=="/><element name="divider" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADhJREFUCB0FwcENgEAAw7Aq+893g8APUILNOQcbFRktVGqUVFRkWNz3xTa2sUaLNUosKlRUvvf5AdbWOTtzmzyWAAAAAElFTkSuQmCC"/><element name="playButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAANUlEQVR42u2RsQkAAAjD/NTTPaW6dXLrINJA1kBpGPMAjDWmOgp1HFQXx+b1KOefO4oxY57R73YnVYCQUCQAAAAASUVORK5CYII="/><element name="pauseButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAIUlEQVQ4jWNgGAWjYOiD/0gYG3/U0FFDB4Oho2AUDAYAAEwiL9HrpdMVAAAAAElFTkSuQmCC"/><element name="prevButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAQklEQVQ4y2NgGAWjYOiD/1AMA/JAfB5NjCJD/YH4PRaLyDa0H4lNNUP/DxlD59PCUBCIp3ZEwYA+NZLUKBgFgwEAAN+HLX9sB8u8AAAAAElFTkSuQmCC"/><element name="nextButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAQElEQVQ4y2NgGAWjYOiD/0B8Hojl0cT+U2ooCL8HYn9qGwrD/bQw9P+QMXQ+tSMqnpoRBUpS+tRMUqNgFAwGAADxZy1/mHvFnAAAAABJRU5ErkJggg=="/><element name="timeSliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAOElEQVRIDe3BwQkAIRADwAhhw/nU/kWwUK+KPITMABFh19Y+F0acY8CJvX9wYpXgRElwolSIiMf9ZWEDhtwurFsAAAAASUVORK5CYII="/><element name="timeSliderBuffer" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAN0lEQVRIDe3BwQkAMQwDMBcc55mRe9zi7RR+FCwBEWG39vcfGHFm4MTuhhMlwYlVBSdKhYh43AW/LQMKm1spzwAAAABJRU5ErkJggg=="/><element name="timeSliderProgress" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAIElEQVRIiWNgGAWjYBTQBfynMR61YCRYMApGwSigMQAAiVWPcbq6UkIAAAAASUVORK5CYII="/><element name="timeSliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAYCAYAAAA/OUfnAAAAO0lEQVQYlWP4//8/Awwz0JgDBP/BeN6Cxf/hnI2btiI4u/fsQ3AOHjqK4Jw4eQbBOX/hEoKDYjSd/AMA4cS4mfLsorgAAAAASUVORK5CYII="/><element name="muteButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAJklEQVQ4y2NgGAUjDcwH4v/kaPxPikZkxcNVI9mBQ5XoGAWDFwAAsKAXKQQmfbUAAAAASUVORK5CYII="/><element name="unmuteButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAMklEQVQ4y2NgGAWDHPyntub5xBr6Hwv/Pzk2/yfVG/8psRFE25Oq8T+tQnsIaB4FVAcAi2YVysVY52AAAAAASUVORK5CYII="/><element name="volumeSliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAgMAAACdGdVrAAAACVBMVEUAAACmpqampqbBXAu8AAAAAnRSTlMAgJsrThgAAAArSURBVAhbY2AgErBAyA4I2QEhOyBkB4TsYOhAoaCCUCUwDTDtMMNgRuMHAFB5FoGH5T0UAAAAAElFTkSuQmCC"/><element name="volumeSliderProgress" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAgMAAACdGdVrAAAACVBMVEUAAAAAAAAAAACDY+nAAAAAAnRSTlMAgJsrThgAAAArSURBVAhbY2AgErBAyA4I2QEhOyBkB4TsYOhAoaCCUCUwDTDtMMNgRuMHAFB5FoGH5T0UAAAAAElFTkSuQmCC"/><element name="volumeSliderCapRight" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAYCAYAAAAyJzegAAAAFElEQVQYV2P8//8/AzpgHBUc7oIAGZdH0RjKN8EAAAAASUVORK5CYII="/><element name="fullscreenButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAQklEQVRIiWNgGAWjYMiD/0iYFDmSLbDHImdPLQtgBpEiR7Zl2NijAA5oEkT/0Whi5UiyAJ8BVMsHNMtoo2AUDAIAAGdcIN3IDNXoAAAAAElFTkSuQmCC"/><element name="normalscreenButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAP0lEQVRIx2NgGAWjYMiD/1RSQ5QB/wmIUWzJfzx8qhj+n4DYCAY0DyJ7PBbYU8sHMEvwiZFtODXUjIJRMJgBACpWIN2ZxdPTAAAAAElFTkSuQmCC"/></elements></component><component name="display"><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAQMAAAAk8RryAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlOZpuml+rYAAAASSURBVBhXY2AYJuA/GBwY6jQAyDyoK8QcL4QAAAAASUVORK5CYII="/><element name="playIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAiUlEQVR42u3XSw2AMBREURwgAQlIQAISKgUpSEFKJeCg5b0E0kWBTVcD9ySTsL0Jn9IBAAAA+K2UUrBlW/Rr5ZDoIeeuoFkxJD9ss03aIXXQqB9SttoG7ZA6qNcOKdttiwcJh9RB+iFl4SshkRBuLR72+9cvH0SOKI2HRo7x/Fi1/uoCAAAAwLsD8ki99IlO2dQAAAAASUVORK5CYII="/><element name="muteIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAVUlEQVR42u3WMQrAIAxAUW/g/SdvGmvpoOBeSHgPsjj5QTANAACARCJilIhYM0tEvJM+Ik3Id9E957kQIb+F3OdCPC0hPkQriqWx9hp/x/QGAABQyAPLB22VGrpLDgAAAABJRU5ErkJggg=="/><element name="errorIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAA/0lEQVR42u2U0QmEMBAF7cASLMESUoIlpARLSCkpwRJSgiWkhOvAXD4WsgRkyaG5DbyB+Yvg8KITAAAAAAAYk+u61mwk15EjPtlEfihmqIiZR1Qx80ghjgdUuiHXGHSVsoag0x6x8DUoyjD5KovmEJ9NTDMRPIT0mtdIUkjlonuNohO+Ha99DTmkuGgKCTcvebAzx82ZoCWC3/3aIMWSRucaxcjORSFY4xpFdjYJGp1rFGcyCYZ/RVh6AUnfcNZ2zih3/mGj1jVCdiNDwyrq1rA/xMdeEXvDVdnYc1vDc3uPkDObXrlaxbNHSOohQhr/WOeLEWfWTgAAAAAAADzNF9sHJ7PJ57MlAAAAAElFTkSuQmCC"/><element name="bufferIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAACBklEQVR42u3Zv0sCYRzH8USTzOsHHEWGkC1HgaDgkktGDjUYtDQ01RDSljQ1BLU02+rk1NTm2NLq4Nx/0L/h9fnCd3j4cnZe1/U8xiO8h3uurufF0/3COd/3/0UWYiEWYiEWYiGJQ+J8xuPxKhXjEMZANinjIZhkGuVRNioE4wVURo4JkHm0xKWmhRAc1bh1EyCUw5BcBIjHiApKa4CErko6DEJwuRo6IRKzyJD8FJAyI3Zp2zRImiBcRhlfo5RtlxCcE3CcDNpGrhYIT2IhAJKilO0VRmzJ32fAMTpBTS0QMfGwlcuKMRftE0DJ0wCJdcOsCkBdXP3Mh9CEFUBTPS9mDZJBG6io4aqVzMdCokCw9H3kT6j/C/9iDdSeUMNC7DkyyxAs/Rk6Qss8FPWRZgdVtUH4DjxEn1zxh+/zj1wHlf4MQhNGrwqA6sY40U8JonRJwEQh+AO3AvCG6gHv4U7IY4krxkroWoAOkoQMGfCBrgIm+YBGqPENpIJ66CJg3x66Y0gnSUidAEEnNr9jjLiWMn5DiWP0OC/oAsCgkq43xBdGDMQr7YASP/vEkHvdl1+JOCcEV5sC4hGEOzTlPuKgd0b0xD4JkRcOgnRRTjdErkYhAsQVq6IdUuPJtmk7BCL3t/h88cx91pKQkI/pkDx6pmYTIjEoxiHsN1YWYiEWYiEWknhflZ5IErA5nr8AAAAASUVORK5CYII="/></elements></component><component name="dock"><settings><setting name="fontcolor" value="0xffffff"/></settings><elements><element name="button" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAQMAAAAk8RryAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlOZpuml+rYAAAASSURBVBhXY2AYJuA/GBwY6jQAyDyoK8QcL4QAAAAASUVORK5CYII="/></elements></component><component name="playlist"><settings><setting name="backgroundcolor" value="0xe8e8e8"/></settings><elements><element name="item" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAIAAAC1nk4lAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHBJREFUaN7t2MENwCAMBEEe9N8wSKYC/D8YV7CyJoRkVtVImxkZPQInMxoP0XiIxkM0HsGbjjSNBx544IEHHnjggUe/6UQeey0PIh7XTftGxKPj4eXCtLsHHh+ZxkO0Iw8PR55Ni8ZD9Hu/EAoP0dc5RRg9qeRjVF8AAAAASUVORK5CYII="/><element name="sliderCapTop" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAHCAYAAADnCQYGAAAAFUlEQVQokWP8//8/A7UB46ihI9hQAKt6FPPXhVGHAAAAAElFTkSuQmCC"/><element name="sliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUCAYAAABiS3YzAAAAKElEQVQ4y2P4//8/Az68bNmy/+iYkB6GUUNHDR01dNTQUUNHDaXcUABUDOKhcxnsSwAAAABJRU5ErkJggg=="/><element name="sliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUCAYAAABiS3YzAAAAJUlEQVQ4T2P4//8/Ay4MBP9xYbz6Rg0dNXTU0FFDRw0dNZRyQwHH4NBa7GJsXAAAAABJRU5ErkJggg=="/><element name="sliderCapBottom" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAHCAYAAADnCQYGAAAAFUlEQVQokWP8//8/A7UB46ihI9hQAKt6FPPXhVGHAAAAAElFTkSuQmCC"/></elements></component></components></skin>';this.xml=null;if(window.DOMParser){parser=new DOMParser();this.xml=parser.parseFromString(this.text,"text/xml")}else{this.xml=new ActiveXObject("Microsoft.XMLDOM");this.xml.async="false";this.xml.loadXML(this.text)}return this}})(jwplayer);(function(g){var m=jwplayer.utils,j=m.css,d=jwplayer.events,e=d.state,l=g.utils.animations.rotate,k=document,a=".jwdisplay",i=".jwpreview",b="absolute",c="none",h="100%",f="opacity .25s";g.display=function(E,R){var L=E,A=E.skin,t,n,r,x,M,Q,D={},o,C,O,H,y=m.extend({backgroundcolor:"#000",showicons:true},A.getComponentSettings("display"),R);_bufferRotation=!m.exists(y.bufferrotation)?15:parseInt(y.bufferrotation,10),_bufferInterval=!m.exists(y.bufferinterval)?100:parseInt(y.bufferinterval,10);function B(){t=k.createElement("div");t.id=L.id+"_display";t.className="jwdisplay";n=k.createElement("div");n.className="jwpreview";t.appendChild(n);L.jwAddEventListener(d.JWPLAYER_PLAYER_STATE,z);L.jwAddEventListener(d.JWPLAYER_PLAYLIST_ITEM,K);t.addEventListener("click",N,false);q();z({newstate:e.IDLE})}function N(T){switch(L.jwGetState()){case e.PLAYING:case e.BUFFERING:L.jwPause();break;default:L.jwPlay();break}}function q(){var T=["play","buffer"];for(var W=0;W<T.length;W++){var aa=T[W],Y=F(aa+"Icon"),V=F(aa+"IconOver"),X=k.createElement("div"),U=F("background"),Z=F("backgroundOver");button=k.createElement("button");if(Y){button.className="jw"+aa;X.className="jwicon";button.appendChild(X);v("#"+t.id+" ."+button.className,U,Z);v("#"+t.id+" ."+button.className+" div",Y,V);if(Z||V){button.addEventListener("mouseover",G(button),false);button.addEventListener("mouseout",J(button),false)}D[aa]=button}}}function G(T){return function(U){if(T.className.indexOf("jwhover")<0){T.className+=" jwhover"}if(T.childNodes[0].className.indexOf("jwhover")<0){T.childNodes[0].className+=" jwhover"}}}function J(T){return function(U){T.className=T.className.replace(" jwhover","");T.childNodes[0].className=T.childNodes[0].className.replace(" jwhover","")}}function v(T,U,V){if(!(U&&U.src)){return}j(T,{width:U.width,height:U.height,"margin-left":U.width/-2,"margin-top":U.height/-2,background:"url("+U.src+") center no-repeat"});if(V&&V.src){j(T+".jwhover",{background:"url("+V.src+") center no-repeat"})}}function S(T){if(!y.showicons){return}if(C){t.removeChild(C)}C=D[T];if(C){t.appendChild(C)}if(T=="buffer"){O=0;H=setInterval(function(){O+=_bufferRotation;l(C.childNodes[0],O%360)},_bufferInterval)}}function K(){var T=L.jwGetPlaylist()[L.jwGetPlaylistIndex()];var U=T?T.image:"";if(r!=U){r=U;P(i,false);u()}}var I;function z(T){clearTimeout(I);I=setTimeout(function(){p(T.newstate)},100)}function p(T){clearInterval(H);switch(T){case e.COMPLETED:case e.IDLE:S("play");P(i,true);break;case e.BUFFERING:S("buffer");break;case e.PLAYING:S();P(i,false);break;case e.PAUSED:S("play");break}}this.getDisplayElement=function(){return t};function s(T){return"#"+t.id+" "+T}function u(){if(r){var T=new Image();T.addEventListener("load",function(){x=T.width;M=T.height;w();j(s(i),{"background-image":r?("url("+r+")"):"",});P(i,true)},false);T.src=r}else{P(i,false);x=M=0}}function F(T){var U=A.getSkinElement("display",T);if(U){return U}return null}function w(){m.stretch(L.jwGetStretching(),n,t.clientWidth,t.clientHeight,x,M)}this.resize=w;function P(T,U){j(s(T),{opacity:U?1:0})}this.show=function(){P("",true)};this.hide=function(){P("",false)};this.getBGColor=function(){return y.backgroundcolor};this.setAlternateClickHandler=function(T){_alternateClickHandler=T};this.revertAlternateClickHandler=function(){_alternateClickHandler=undefined};B()};j(a,{position:b,cursor:"pointer",width:h,height:h,overflow:"hidden",opacity:0});j(a+" .jwpreview",{position:b,width:h,height:h,"background-repeat":"no-repeat","background-position":"center",overflow:"hidden"});j(a+", "+a+" *",{"-webkit-transition":f,"-moz-transition":f,"-o-transition":f});j(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;a.instream=function(A,o,z,B){var v={controlbarseekable:"always",controlbarpausable:true,controlbarstoppable:true,playlistclickable:true};var x,C,E=A,G=o,l=z,y=B,t,J,q,I,h,i,j,n,s,k=false,m,g,p=this;this.load=function(N,M){f();k=true;C=c.extend(v,M);x=a.playlistitem(N);H();g=document.createElement("div");g.id=p.id+"_instream_container";y.detachMedia();t=j.getTag();i=G.playlist[G.item];h=E.jwGetState();if(h==b.BUFFERING||h==b.PLAYING){t.pause()}J=t.src?t.src:t.currentSrc;q=t.innerHTML;I=t.currentTime;s=new a.display(p);s.setAlternateClickHandler(function(O){if(_fakemodel.state==b.PAUSED){p.jwInstreamPlay()}else{F(d.JWPLAYER_INSTREAM_CLICK,O)}});g.appendChild(s.getDisplayElement());if(!c.isMobile()){n=new a.controlbar(p);g.appendChild(n.getDisplayElement())}l.setupInstream(g,t);r();j.load(x)};this.jwInstreamDestroy=function(M){if(!k){return}k=false;if(h!=b.IDLE){j.load(i,false)}else{j.stop(true)}j.detachMedia();l.destroyInstream();if(n){try{n.getDisplayElement().parentNode.removeChild(n.getDisplayElement())}catch(N){}}F(d.JWPLAYER_INSTREAM_DESTROYED,{reason:(M?"complete":"destroyed")},true);y.attachMedia();if(h==b.BUFFERING||h==b.PLAYING){t.play();if(G.playlist[G.item]==i){G.getVideo().seek(I)}}return};this.jwInstreamAddEventListener=function(M,N){m.addEventListener(M,N)};this.jwInstreamRemoveEventListener=function(M,N){m.removeEventListener(M,N)};this.jwInstreamPlay=function(){if(!k){return}j.play(true)};this.jwInstreamPause=function(){if(!k){return}j.pause(true)};this.jwInstreamSeek=function(M){if(!k){return}j.seek(M)};this.jwInstreamGetState=function(){if(!k){return undefined}return _fakemodel.state};this.jwInstreamGetPosition=function(){if(!k){return undefined}return _fakemodel.position};this.jwInstreamGetDuration=function(){if(!k){return undefined}return _fakemodel.duration};this.playlistClickable=function(){return(!k||C.playlistclickable.toString().toLowerCase()=="true")};function u(){_fakemodel=new a.model({});m=new d.eventdispatcher();E.jwAddEventListener(d.JWPLAYER_RESIZE,r);E.jwAddEventListener(d.JWPLAYER_FULLSCREEN,r)}function f(){y.setMute(G.mute);y.setVolume(G.volume)}function H(){if(!j){j=new a.video(G.getVideo().getTag());j.addGlobalListener(K);j.addEventListener(d.JWPLAYER_MEDIA_META,L);j.addEventListener(d.JWPLAYER_MEDIA_COMPLETE,w);j.addEventListener(d.JWPLAYER_MEDIA_BUFFER_FULL,D)}j.attachMedia()}function K(M){if(k){F(M.type,M)}}function D(M){if(k){j.play()}}function w(M){if(k){setTimeout(function(){p.jwInstreamDestroy(true)},10)}}function L(M){if(M.metadata.width&&M.metadata.height){l.resizeMedia()}}function F(M,N,O){if(k||O){m.sendEvent(M,N)}}function r(){if(n){n.resize()}if(s){s.resize()}}this.jwPlay=function(M){if(C.controlbarpausable.toString().toLowerCase()=="true"){this.jwInstreamPlay()}};this.jwPause=function(M){if(C.controlbarpausable.toString().toLowerCase()=="true"){this.jwInstreamPause()}};this.jwStop=function(){if(C.controlbarstoppable.toString().toLowerCase()=="true"){this.jwInstreamDestroy();E.jwStop()}};this.jwSeek=function(M){switch(C.controlbarseekable.toLowerCase()){case"always":this.jwInstreamSeek(M);break;case"backwards":if(_fakemodel.position>M){this.jwInstreamSeek(M)}break}};this.jwGetPosition=function(){};this.jwGetDuration=function(){};this.jwGetWidth=E.jwGetWidth;this.jwGetHeight=E.jwGetHeight;this.jwGetFullscreen=E.jwGetFullscreen;this.jwSetFullscreen=E.jwSetFullscreen;this.jwGetVolume=function(){return G.volume};this.jwSetVolume=function(M){j.volume(M);E.jwSetVolume(M)};this.jwGetMute=function(){return G.mute};this.jwSetMute=function(M){j.mute(M);E.jwSetMute(M)};this.jwGetState=function(){return _fakemodel.state};this.jwGetPlaylist=function(){return[x]};this.jwGetPlaylistIndex=function(){return 0};this.jwGetStretching=function(){return G.config.stretching};this.jwAddEventListener=function(N,M){m.addEventListener(N,M)};this.jwRemoveEventListener=function(N,M){m.removeEventListener(N,M)};this.skin=E.skin;this.id=E.id+"_instream";u();return this}})(jwplayer.html5);(function(a){var c=jwplayer.utils,d=jwplayer.events,b=undefined;a.model=function(f){var l=this,h,n,o=c.getCookies(),e={};_defaults={autostart:false,controls:true,debug:b,height:320,icons:true,item:0,mute:false,playlist:[],playlistposition:"right",playlistsize:0,repeat:b,skin:b,stretching:c.stretching.UNIFORM,volume:90,width:480};function k(p){for(var q in p){p[q]=c.strings.serialize(p[q])}return p}function m(){c.extend(l,new d.eventdispatcher());l.config=c.extend({},_defaults,o,k(f));c.extend(l,{id:f.id,state:d.state.IDLE,position:0,buffer:0,},l.config);j();l.setItem(l.config.item);n=document.createElement("video");h=new a.video(n);h.volume(l.volume);h.mute(l.mute);h.addGlobalListener(g)}function j(){e.display={showicons:l.icons};e.controlbar={}}var i={};i[d.JWPLAYER_MEDIA_MUTE]="mute";i[d.JWPLAYER_MEDIA_VOLUME]="volume";i[d.JWPLAYER_PLAYER_STATE]="newstate->state";i[d.JWPLAYER_MEDIA_BUFFER]="bufferPercent->buffer";i[d.JWPLAYER_MEDIA_TIME]="position";function g(p){var r=i[p.type];if(r){var s=r.split("->"),t=s[0],q=s[1]?s[1]:t;if(l[q]!=p[t]){l[q]=p[t];l.sendEvent(p.type,p)}}else{l.sendEvent(p.type,p)}}l.getVideo=function(){return h};l.seekDrag=function(p){h.seekDrag(p)};l.setFullscreen=function(p){if(p!=l.fullscreen){l.fullscreen=p;l.sendEvent(d.JWPLAYER_FULLSCREEN,{fullscreen:p})}};l.setPlaylist=function(p){l.item=-1;l.playlist=p;l.sendEvent(d.JWPLAYER_PLAYLIST_LOADED,{playlist:p})};l.setItem=function(p){var q;if(p==l.playlist.length||p<-1){q=0}else{if(p==-1||p>l.playlist.length){q=l.playlist.length-1}else{q=p}}if(q!=l.item){l.item=q;l.sendEvent(d.JWPLAYER_PLAYLIST_ITEM,{index:l.item})}};l.setVolume=function(p){if(l.mute&&p>0){l.setMute(false)}p=Math.round(p);c.saveCookie("volume",p);h.volume(p)};l.setMute=function(p){if(!c.exists(p)){p=!l.mute}c.saveCookie("mute",p);h.mute(p)};l.componentConfig=function(p){return e[p]};m()}})(jwplayer.html5);(function(a){a.player=function(c){var k=this,i=new a.model(c),f=new a.view(this,i),g=new a.controller(i,f);function j(){k.id=i.id;var l=new a.setup(i,f,g);l.addEventListener(jwplayer.events.JWPLAYER_READY,d);l.addEventListener(jwplayer.events.JWPLAYER_ERROR,h);l.start()}function d(l){g.playerReady(l)}function h(l){jwplayer.utils.log("There was a problem setting up the player: "+l.message)}this.jwPlay=g.play;this.jwPause=g.pause;this.jwStop=g.stop;this.jwSeek=g.seek;this.jwSetVolume=g.setVolume;this.jwSetMute=g.setMute;this.jwLoad=g.load;this.jwPlaylistNext=g.next;this.jwPlaylistPrev=g.prev;this.jwPlaylistItem=g.item;this.jwSetFullscreen=g.setFullscreen;this.jwResize=f.resize;this.jwSeekDrag=i.seekDrag;this.jwSetStretching=g.setStretching;function e(l){return function(){return i[l]}}this.jwGetPlaylistIndex=e("item");this.jwGetPosition=e("position");this.jwGetDuration=e("duration");this.jwGetBuffer=e("buffer");this.jwGetWidth=e("width");this.jwGetHeight=e("height");this.jwGetFullscreen=e("fullscreen");this.jwGetVolume=e("volume");this.jwGetMute=e("mute");this.jwGetState=e("state");this.jwGetStretching=e("stretching");this.jwGetPlaylist=e("playlist");this.jwDetachMedia=g.detachMedia;this.jwAttachMedia=g.attachMedia;var b;this.jwLoadInstream=function(m,l){if(!b){b=new a.instream(k,i,f,g)}setTimeout(function(){b.load(m,l)},10)};this.jwInstreamDestroy=function(){if(b){b.jwInstreamDestroy()}};this.jwAddEventListener=g.addEventListener;this.jwRemoveEventListener=g.removeEventListener;j()}})(jwplayer.html5);(function(a){var b=jwplayer.utils;a.playlist=function(c){var e=[];if(c&&c instanceof Array&&c.length>0){for(var d in c){if(!isNaN(parseInt(d))){e.push(new a.playlistitem(c[d]))}}}else{e.push(new a.playlistitem(c))}return e}})(jwplayer.html5);(function(e){var c={size:180,itemheight:60,thumbs:true,fontcolor:"#000000",overcolor:"",activecolor:"",backgroundcolor:"#f8f8f8",font:"_sans",fontsize:"",fontstyle:"",fontweight:""},i={_sans:"Arial, Helvetica, sans-serif",_serif:"Times, Times New Roman, serif",_typewriter:"Courier New, Courier, monospace"},k=jwplayer.utils,g=k.css,d=jwplayer.events,j=".jwplaylist",h=document,a="absolute",b="none",f="100%";e.playlistcomponent=function(y,I){var E=y,t=E.skin,m=k.extend({},c,E.skin.getComponentSettings("playlist"),I),F,s,J,l,o,n,r=-1,p={background:undefined,item:undefined,itemOver:undefined,itemImage:undefined,itemActive:undefined};this.getDisplayElement=function(){return F};this.resize=function(L,K){s=L;J=K};this.show=function(){_show(F)};this.hide=function(){_hide(F)};function q(){F=h.createElement("div");F.id=E.id+"_jwplayer_playlistcomponent";F.className="jwplaylist";H();if(p.item){m.itemheight=p.item.height}v();E.jwAddEventListener(jwplayer.events.JWPLAYER_PLAYLIST_LOADED,z);E.jwAddEventListener(jwplayer.events.JWPLAYER_PLAYLIST_ITEM,C)}function v(){var O=0,N=0,K=0,M=m.itemheight,Q=m.fontsize;k.clearCss("#"+F.id);g("#"+F.id+" .jwlist",{"background-color":m.backgroundcolor,"background-image":p.background?"url("+p.background.src+")":"",color:m.fontcolor,"font-family":i[m.font]?i[m.font]:i._sans,"font-size":(Q?Q:11)+"px","font-style":m.fontstyle,"font-weight":m.fontweight});if(p.itemImage){O=(M-p.itemImage.height)/2;N=p.itemImage.width;K=p.itemImage.height}else{N=M*4/3;K=M}g("#"+F.id+" .jwplaylistimg",{height:K,width:N,margin:O});g("#"+F.id+" .jwlist li",{"background-image":p.item?"url("+p.item.src+")":"",height:M,"background-size":f+" "+M+"px"});var L={overflow:"hidden"};if(m.activecolor!==""){L.color=m.activecolor}if(p.itemActive){L["background-image"]="url("+p.itemActive.src+")"}g("#"+F.id+" .jwlist li.active",L);var P={overflow:"hidden"};if(m.overcolor!==""){P.color=m.overcolor}if(p.itemOver){P["background-image"]="url("+p.itemOver.src+")"}g("#"+F.id+" .jwlist li:hover",P);g("#"+F.id+" .jwtextwrapper",{padding:"5px 5px 0 "+(O?0:"5px"),height:M-5});g("#"+F.id+" .jwtitle",{height:Q?Q+10:20,"line-height":Q?Q+10:20,overflow:"hidden","font-size":Q?Q:13,"font-weight":m.fontweight?m.fontweight:"bold"});g("#"+F.id+" .jwdescription",{display:"block","line-height":Q?Q+4:16,overflow:"hidden",height:M,position:"relative"})}function w(){var K=h.createElement("ul");K.className="jwlist";K.id=F.id+"_ul"+Math.round(Math.random()*10000000);return K}function x(L){var N=l[L],K=h.createElement("li");K.className="jwitem";K.id=n.id+"_item_"+L;g(K,{height:m.itemheight,display:"block",cursor:"pointer",backgroundImage:p.item?"url("+p.item.src+")":"",backgroundSize:"100% "+m.itemheight+"px"});var M=h.createElement("div");M.className="jwplaylistimg jwfill";if(D()&&(N.image||N["playlist.image"]||p.itemImage)){var Q;if(N["playlist.image"]){Q=N["playlist.image"]}else{if(N.image){Q=N.image}else{if(p.itemImage){Q=p.itemImage.src}}}g("#"+K.id+" .jwplaylistimg",{"background-image":Q?"url("+Q+")":null});K.appendChild(M)}var R=h.createElement("div");R.className="jwtextwrapper";var P=h.createElement("span");P.className="jwtitle";P.innerHTML=N?N.title:"";R.appendChild(P);if(N.description){var O=h.createElement("span");O.className="jwdescription";O.innerHTML=N.description;R.appendChild(O)}K.appendChild(R);return K}function z(L){F.innerHTML="";l=A();if(!l){return}items=[];n=w();for(var M=0;M<l.length;M++){var K=x(M);K.onclick=G(M);n.appendChild(K);items.push(K)}r=E.jwGetPlaylistIndex();F.appendChild(n);if(k.isIOS()&&window.iScroll){n.style.height=m.itemheight*l.length+"px";var N=new iScroll(F.id)}}function A(){var L=E.jwGetPlaylist();var M=[];for(var K=0;K<L.length;K++){if(!L[K]["ova.hidden"]){M.push(L[K])}}return M}function G(K){return function(){E.jwPlaylistItem(K);E.jwPlay(true)}}function u(){n.scrollTop=E.jwGetPlaylistIndex()*m.itemheight}function D(){return m.thumbs.toString().toLowerCase()=="true"}function C(K){if(r>=0){h.getElementById(n.id+"_item_"+r).className="jwitem";r=K.index}h.getElementById(n.id+"_item_"+K.index).className="jwitem active";u()}function H(){for(var K in p){p[K]=B(K)}}function B(K){return t.getSkinElement("playlist",K)}q();return this};g(j,{overflow:"hidden",position:"absolute",width:f,height:f});g(j+" .jwplaylistimg",{position:"relative",width:f,"float":"left",margin:"0 5px 0 0",background:"black",overflow:"hidden"});g(j+" .jwlist",{width:f,height:f,"list-style":"none",margin:0,padding:0,"overflow-y":"auto"});g(j+" .jwlist li",{width:f});g(j+" .jwtextwrapper",{overflow:"hidden"})})(jwplayer.html5);(function(a){a.playlistitem=function(c){var d={description:"",image:"",link:"",mediaid:"",title:"",provider:"",file:"",duration:-1,start:0,currentLevel:-1,levels:[]};var b=jwplayer.utils.extend({},d,c);if(b.levels.length===0){b.levels[0]=new a.playlistitemlevel(b)}return b}})(jwplayer.html5);(function(a){a.html5.playlistitemlevel=function(b){var d={file:"",streamer:"",bitrate:0,width:0};for(var c in d){if(a.utils.exists(b[c])){d[c]=b[c]}}return d}})(jwplayer);(function(a){var d=jwplayer,b=d.utils,c=d.events;a.playlistloader=function(){var f=new c.eventdispatcher();b.extend(this,f);this.load=function(h){b.ajax(h,g,e)};function g(i){try{var k=i.responseXML.firstChild;if(a.parsers.localName(k)=="xml"){k=k.nextSibling}var h=a.parsers.rssparser.parse(k);f.sendEvent(c.JWPLAYER_PLAYLIST_LOADED,{playlist:new a.playlist(h)})}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,k=h.utils,e=h.events,i=1,d=2,c=3,j=4,b=5,a=6,g=7;f.setup=function(q,F,G){var J=q,o=F,D=G,s={},A={},y,x=new e.eventdispatcher(),t=false,u=[];function r(){p(i,n);p(d,N,i);p(c,w,i);p(j,I,c);p(b,M,j+","+d);p(a,H,b+","+c);p(g,B,a)}function p(O,Q,P){u.push({name:O,method:Q,depends:P})}function E(){for(var Q=0;Q<u.length;Q++){var O=u[Q];if(L(O.depends)){u.splice(Q,1);try{O.method();E()}catch(P){v(P.message)}return}}if(u.length>0&&!t){setTimeout(E,500)}}function L(Q){if(!Q){return true}var P=Q.toString().split(",");for(var O=0;O<P.length;O++){if(!s[P[O]]){return false}}return true}function m(O){s[O]=true}function n(){m(i)}function N(){y=new f.skin();y.load(J.config.skin,z)}function z(O){m(d)}function w(){switch(k.typeOf(J.config.playlist)){case"string":var O=new f.playlistloader();O.addEventListener(e.JWPLAYER_PLAYLIST_LOADED,l);O.addEventListener(e.JWPLAYER_ERROR,C);O.load(J.config.playlist);break;case"array":J.playlist=new f.playlist(J.config.playlist);m(c)}}function l(O){J.setPlaylist(O.playlist);m(c)}function C(O){v(O.message)}function I(){var P=J.playlist[J.item].image;if(P){var O=new Image();O.addEventListener("load",K,false);O.addEventListener("error",K,false);O.src=P}else{m(j)}}function K(O){m(j)}function M(){o.setup(y);m(b)}function H(){m(a)}function B(){x.sendEvent(e.JWPLAYER_READY);m(g)}function v(O){t=true;x.sendEvent(e.JWPLAYER_ERROR,{message:O})}k.extend(this,x);this.start=E;r()}})(jwplayer.html5);(function(a){a.skin=function(){var b={};var c=false;this.load=function(d,e){new a.skinloader(d,function(f){c=true;b=f;e()},function(){new a.skinloader("",function(f){c=true;b=f;e()})})};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,p,k){var o={};var d=p;var l=k;var f=true;var j;var n=g;var s=false;function m(){if(typeof n!="string"||n===""){e(a.defaultskin().xml)}else{b.ajax(b.getAbsolutePath(n),function(t){try{if(b.exists(t.responseXML)){e(t.responseXML);return}}catch(u){i()}e(a.defaultskin().xml)},function(t){e(a.defaultskin().xml)})}}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:{}};o[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 P=0;P<K.length;P++){var Q=K[P].getAttribute("name");var I=K[P].getAttribute("value");var x=/color$/.test(Q)?"color":null;o[C].settings[Q]=b.typechecker(I,x)}}var L=E[H].getElementsByTagName("layout")[0];if(L&&L.childNodes.length>0){var M=L.getElementsByTagName("group");for(var w=0;w<M.length;w++){var A=M[w];o[C].layout[A.getAttribute("position")]={elements:[]};for(var O=0;O<A.attributes.length;O++){var D=A.attributes[O];o[C].layout[A.getAttribute("position")][D.name]=D.value}var N=A.getElementsByTagName("*");for(var v=0;v<N.length;v++){var t=N[v];o[C].layout[A.getAttribute("position")].elements.push({type:t.tagName});for(var u=0;u<t.attributes.length;u++){var J=t.attributes[u];o[C].layout[A.getAttribute("position")].elements[v][J.name]=J.value}if(!b.exists(o[C].layout[A.getAttribute("position")].elements[v].name)){o[C].layout[A.getAttribute("position")].elements[v].name=t.tagName}}}}f=false;r()}}function r(){clearInterval(j);if(!s){j=setInterval(function(){q()},100)}}function c(y,x){var w=new Image();var t=y.getAttribute("name");var v=y.getAttribute("src");var A;if(v.indexOf("data:image/png;base64,")===0){A=v}else{var u=b.getAbsolutePath(n);var z=u.substr(0,u.lastIndexOf("/"));A=[z,x,v].join("/")}o[x].elements[t]={height:0,width:0,src:"",ready:false,image:w};w.onload=function(B){h(w,t,x)};w.onerror=function(B){s=true;r();l()};w.src=A}function i(){for(var u in o){var w=o[u];for(var t in w.elements){var x=w.elements[t];var v=x.image;v.onload=null;v.onerror=null;delete x.image;delete w.elements[t]}delete o[u]}}function q(){for(var t in o){if(t!="properties"){for(var u in o[t].elements){if(!o[t].elements[u].ready){return}}}}if(f===false){clearInterval(j);d(o)}}function h(t,v,u){if(o[u]&&o[u].elements[v]){o[u].elements[v].height=t.height;o[u].elements[v].width=t.width;o[u].elements[v].src=t.src;o[u].elements[v].ready=true;r()}else{b.log("Loaded an image for a missing element: "+u+"."+v)}}m()}})(jwplayer.html5);(function(a){var e=jwplayer,c=e.utils,d=e.events,b=d.state;a.video=function(N){var H={abort:u,canplay:n,canplaythrough:u,durationchange:y,emptied:u,ended:u,error:j,loadeddata:u,loadedmetadata:n,loadstart:u,pause:M,play:M,playing:M,progress:u,ratechange:u,readystatechange:u,seeked:u,seeking:u,stalled:u,suspend:u,timeupdate:O,volumechange:i,waiting:q},t={mp4:"video/mp4",webm:"video/webm",m3u8:"audio/x-mpegurl"},z,w,r,S,l,K,R,C,I,A,f=b.IDLE,D,k=-1,B=-1,F=new d.eventdispatcher(),p=false;c.extend(this,F);function P(T){r=T;J();r.controls=true;r.controls=false;p=true}function J(){for(var T in H){r.addEventListener(T,H[T],false)}}function o(T,U){if(p){F.sendEvent(T,U)}}function u(T){}function y(T){if(!p){return}if(S<0){S=r.duration}O()}function O(T){if(!p){return}if(f==b.PLAYING&&!A){l=r.currentTime;o(d.JWPLAYER_MEDIA_TIME,{position:l,duration:S});if(l>=S&&S>0){L()}}}function n(T){if(!p){return}if(!R){R=true;m();if(I>0){x(I)}}}function m(){if(!C){C=true;o(d.JWPLAYER_MEDIA_BUFFER_FULL)}}function M(T){if(!p||A){return}if(r.paused){}else{s(b.PLAYING)}}function q(T){if(!p){return}s(b.BUFFERING)}function j(T){if(!p){return}c.log("Error: %o",r.error);s(b.IDLE)}function g(T){var U=t[c.strings.extension(T)];return(!!U&&r.canPlayType(U))}function E(U){if(U.levels&&U.levels.length>0){for(var T=0;T<U.levels.length;T++){if(g(U.levels[T].file)){return U.levels[T].file}}}else{if(U.file&&g(U.file)){return U.file}}return null}this.load=function(T){if(!p){return}z=T;R=false;C=false;I=0;S=T.duration?T.duration:-1;l=0;w=E(z);if(!w){c.log("Could not find a file to play.");return}s(b.BUFFERING);r.src=w;r.load();k=setInterval(h,100);if(c.isMobile()){r.controls=true}if(c.isIPod()){m()}};var v=this.stop=function(){if(!p){return}r.removeAttribute("src");r.load();clearInterval(k);s(b.IDLE)};this.play=function(){if(p){r.play()}};this.pause=function(){if(p){r.pause();s(b.PAUSED)}};this.seekDrag=function(T){if(!p){return}A=T;if(T){r.pause()}else{r.play()}};var x=this.seek=function(T){if(!p){return}if(r.readyState>=r.HAVE_FUTURE_DATA){I=0;if(!A){o(d.JWPLAYER_MEDIA_SEEK,{position:l,offset:T})}r.currentTime=T}else{I=T}};var Q=this.volume=function(T){r.volume=T/100};function i(T){o(d.JWPLAYER_MEDIA_VOLUME,{volume:Math.round(r.volume*100)});o(d.JWPLAYER_MEDIA_MUTE,{mute:r.muted})}this.mute=function(T){if(!c.exists(T)){T=!r.mute}if(T){if(!r.muted){D=r.volume*100;r.muted=true;Q(0)}}else{if(r.muted){Q(D);r.muted=false}}};function s(T){if(T==b.PAUSED&&f==b.IDLE){return}if(A){return}if(f!=T){var U=f;f=T;o(d.JWPLAYER_PLAYER_STATE,{oldstate:U,newstate:T})}}function h(){if(!p){return}var T=G();if(T!=B){B=T;o(d.JWPLAYER_MEDIA_BUFFER,{bufferPercent:Math.round(B*100)})}if(T>=1){clearInterval(k)}}function G(){if(r.buffered.length==0||r.duration==0){return 0}else{return r.buffered.end(r.buffered.length-1)/r.duration}}function L(){s(b.IDLE);o(d.JWPLAYER_MEDIA_COMPLETE)}this.detachMedia=function(){p=false;return r};this.attachMedia=function(){p=true};this.getTag=function(){return r};P(N)}})(jwplayer.html5);(function(g){var b=jwplayer,h=b.utils,m=h.css,i=jwplayer.events,n=i.state,d=document,k="jwplayer",a="."+k+".jwfullscreen",l="jwmain",r="jwinstream",q="jwvideo",c="jwcontrols",e="jwplaylist";g.view=function(A,w){var z=A,x=w,P,I,F,S,t=0,Y=2000,v,ae,D,X,af,aa;this.setup=function(aj){z.skin=aj;P=Z("div",k);P.id=z.id;var ai=document.getElementById(z.id);ai.parentNode.replaceChild(P,ai);I=Z("span",l);ae=Z("span",q);v=x.getVideo().getTag();ae.appendChild(v);F=Z("span",c);D=Z("span",r);S=Z("span",e);s();I.appendChild(ae);I.appendChild(F);I.appendChild(D);P.appendChild(I);P.appendChild(S);d.addEventListener("webkitfullscreenchange",ab,false);d.addEventListener("mozfullscreenchange",ab,false);d.addEventListener("keydown",U,false);z.jwAddEventListener(i.JWPLAYER_PLAYER_STATE,B);B({newstate:n.IDLE});F.addEventListener("mouseout",T,false);F.addEventListener("mousemove",ag,false);if(X){X.getDisplayElement().addEventListener("mousemove",O,false);X.getDisplayElement().addEventListener("mouseout",ad,false)}};function Z(aj,ai){var ak=d.createElement(aj);if(ai){ak.className=ai}return ak}function ag(){clearTimeout(t);if(z.jwGetState()==n.PLAYING||z.jwGetState()==n.PAUSED){H();if(!W){t=setTimeout(T,Y)}}}var W=false;function O(){clearTimeout(t);W=true}function ad(){W=false}function T(){if(z.jwGetState()==n.PLAYING||z.jwGetState()==n.PAUSED){C()}clearTimeout(t);t=0}function s(){var aj=x.width,ai=x.height,ak=x.componentConfig("controlbar");displaySettings=x.componentConfig("display");if(ai>40||ai.indexOf("%")){af=new g.display(z,displaySettings);F.appendChild(af.getDisplayElement());displaySettings.backgroundcolor=af.getBGColor()}else{displaySettings.backgroundcolor="transparent";ak.margin=0}m(R(),{"background-color":displaySettings.backgroundcolor});if(x.playlistsize>0&&x.playlistposition&&x.playlistposition!="none"){aa=new g.playlistcomponent(z,{});S.appendChild(aa.getDisplayElement())}M(aj,ai);if(!h.isMobile()){X=new g.controlbar(z,ak);F.appendChild(X.getDisplayElement())}}var K=this.fullscreen=function(ai){if(!h.exists(ai)){ai=!x.fullscreen}if(ai){if(!x.fullscreen){N(true);if(P.requestFullScreen){P.requestFullScreen()}else{if(P.mozRequestFullScreen){P.mozRequestFullScreen()}else{if(P.webkitRequestFullScreen){P.webkitRequestFullScreen()}}}x.setFullscreen(true)}}else{N(false);if(x.fullscreen){if(d.cancelFullScreen){d.cancelFullScreen()}else{if(d.mozCancelFullScreen){d.mozCancelFullScreen()}else{if(d.webkitCancelFullScreen){d.webkitCancelFullScreen()}}}x.setFullscreen(false)}}};function M(ak,ai){if(h.exists(ak)&&h.exists(ai)){m(R(),{width:ak,height:ai});x.width=ak;x.height=ai}if(af){af.resize(ak,ai)}if(X){X.resize(ak,ai)}var am=x.playlistsize,an=x.playlistposition;if(aa&&am>0&&an){aa.resize(ak,ai);var aj={display:"block"},al={};aj[an]=0;al[an]=am;if(an=="left"||an=="right"){aj.width=am}else{aj.height=am}m(R(e),aj);m(R(l),al)}y();return}function y(){h.stretch(x.stretching,v,ae.clientWidth,ae.clientHeight,v.videoWidth,v.videoHeight)}this.resize=M;this.resizeMedia=y;this.completeSetup=function(){m(R(),{opacity:1})};function U(ai){switch(ai.keyCode){case 27:if(x.fullscreen){K(false)}break;case 32:z.jwPlay();break}}function N(ai){if(ai){P.className+=" jwfullscreen"}else{P.className=P.className.replace(/\s+jwfullscreen/,"")}}function ah(){var ai=[d.mozFullScreenElement,d.webkitCurrentFullScreenElement];for(var aj=0;aj<ai.length;aj++){if(ai[aj]&&ai[aj].id==z.id){return true}}return false}function ab(ai){x.setFullscreen(ah());K(x.fullscreen)}function H(){if(X&&x.controls){X.show()}}function C(){if(X){X.hide()}}function u(){if(af){af.show()}}function G(){if(af){af.hide()}}function E(){C();G()}function V(){H();u()}var J;function B(ai){clearTimeout(J);J=setTimeout(function(){ac(ai.newstate)},100)}function ac(aj){var ai={};switch(aj){case n.PLAYING:if(h.isIPod()){ai.display="block"}ai.opacity=1;m(R(q),ai);y();ag();break;case n.COMPLETED:case n.IDLE:if(h.isIPod()){ai.display="none"}ai.opacity=0;m(R(q),ai);C();u();break;case n.BUFFERING:case n.PAUSED:if(!h.isMobile()){V()}break}}function R(ai){return"#"+z.id+(ai?" ."+ai:"")}this.setupInstream=function(ai,aj){Q(R(r),true);Q(R(c),false);D.appendChild(ai);_instreamVideo=aj;B({newstate:n.PLAYING});_instreamMode=true};var L=this.destroyInstream=function(){Q(R(r),false);Q(R(c),true);D.innerHTML="";_instreamVideo=null;_instreamMode=false;M(x.width,x.height)};function Q(ai,aj){m(ai,{display:aj?"block":"none"})}};var p="opacity .5s ease",j="100%",f="absolute",o=" !important";m("."+k,{position:"relative",overflow:"hidden",opacity:0,"-webkit-transition":p,"-moz-transition":p,"-o-transition":p});m("."+l,{position:f,left:0,right:0,top:0,bottom:0,"-webkit-transition":p,"-moz-transition":p,"-o-transition":p});m("."+q+" ,."+c,{position:f,height:j,width:j,"-webkit-transition":p,"-moz-transition":p,"-o-transition":p});m("."+q+" video",{background:"transparent",width:j,height:j});m("."+e,{position:f,height:j,width:j,display:"none"});m("."+r,{overflow:"hidden",position:f,top:0,left:0,bottom:0,right:0,display:"none"});m(a,{width:j,height:j,left:0,right:0,top:0,bottom:0,"z-index":1000,position:"fixed"},true);m(a+" ."+l,{left:0,right:0,top:0,bottom:0},true);m(a+" ."+e,{display:"none"},true);m("."+k+" .jwuniform",{"background-size":"contain"+o});m("."+k+" .jwfill",{"background-size":"cover"+o});m("."+k+" .jwexactfit",{"background-size":j+" "+j+o});m("."+k+" .jwnone",{"background-size":null})})(jwplayer.html5)}; 
  • branches/jw6/src/js/html5/jwplayer.html5.controlbar.js

    r2184 r2190  
    174174                        _addEventListeners(); 
    175175                        _playlistHandler(); 
     176                        _volumeHandler(); 
     177                        _muteHandler(); 
    176178                } 
    177179                 
     
    242244                } 
    243245                 
    244                 function _muteHandler(evt) { 
    245                         _toggleButton("mute", evt.mute); 
    246                         _setVolume(evt.mute ? 0 : _currentVolume) 
     246                function _muteHandler() { 
     247                        var state = _api.jwGetMute(); 
     248                        _toggleButton("mute", state); 
     249                        _setVolume(state ? 0 : _currentVolume) 
    247250                } 
    248251 
    249                 function _volumeHandler(evt) { 
    250                         _currentVolume = evt.volume / 100; 
     252                function _volumeHandler() { 
     253                        _currentVolume = _api.jwGetVolume() / 100; 
    251254                        _setVolume(_currentVolume); 
    252255                } 
     
    762765                position: JW_CSS_ABSOLUTE, 
    763766                overflow: 'hidden', 
     767                opacity: 0, 
    764768        '-webkit-transition': JW_CSS_SMOOTH_EASE, 
    765769        '-moz-transition': JW_CSS_SMOOTH_EASE, 
  • branches/jw6/src/js/html5/jwplayer.html5.controller.js

    r2189 r2190  
    2121 
    2222                function _init() { 
    23                         _model.addGlobalListener(_forward); 
    2423                        _model.addEventListener(_events.JWPLAYER_MEDIA_BUFFER_FULL, _bufferFullHandler); 
    2524                        _model.addEventListener(_events.JWPLAYER_MEDIA_COMPLETE, _completeHandler); 
     
    2827                function _playerReady(evt) { 
    2928                        _view.completeSetup(); 
    30                         _controller.sendEvent(evt.type, evt); 
    31                         _controller.sendEvent(jwplayer.events.JWPLAYER_PLAYLIST_LOADED, {playlist: _model.playlist}); 
    32                         _controller.sendEvent(jwplayer.events.JWPLAYER_PLAYLIST_ITEM, {index: _model.item}); 
    33                         _controller.load(); 
     29                        _eventDispatcher.sendEvent(evt.type, evt); 
     30                        _eventDispatcher.sendEvent(jwplayer.events.JWPLAYER_PLAYLIST_LOADED, {playlist: _model.playlist}); 
     31                        _eventDispatcher.sendEvent(jwplayer.events.JWPLAYER_PLAYLIST_ITEM, {index: _model.item}); 
     32                        _model.addGlobalListener(_forward); 
     33                        _load(); 
     34                        if (_model.autostart && !_utils.isMobile()) { 
     35                                _play(); 
     36                        } 
    3437                } 
    3538                 
     
    5962                                break; 
    6063                        } 
    61                                  
    6264                } 
    6365                 
     
    137139                } 
    138140                 
    139                 function _setVolume(vol) { 
    140                         _video.volume(vol); 
    141                 } 
    142                  
    143                 function _setMute(state) { 
    144                         if (!_utils.exists(state)) state = !_model.mute; 
    145                         _video.mute(state); 
    146                 } 
    147                  
    148141                function _setFullscreen(state) { 
    149142                        _view.fullscreen(state); 
     
    231224                this.prev = _waitForReady(_prev); 
    232225                this.item = _waitForReady(_item); 
    233                 this.setVolume = _waitForReady(_setVolume); 
    234                 this.setMute = _waitForReady(_setMute); 
     226                this.setVolume = _waitForReady(_model.setVolume); 
     227                this.setMute = _waitForReady(_model.setMute); 
    235228                this.setFullscreen = _waitForReady(_setFullscreen); 
    236229                this.setStretching = _waitForReady(_setStretching); 
  • branches/jw6/src/js/html5/jwplayer.html5.display.js

    r2189 r2190  
    4141                        _rotationInterval,  
    4242                        _config = _utils.extend({ 
    43                                 backgroundcolor: '#000' 
     43                                backgroundcolor: '#000', 
     44                                showicons: true 
    4445                        }, _skin.getComponentSettings('display'), config); 
    4546                        _bufferRotation = !_utils.exists(_config.bufferrotation) ? 15 : parseInt(_config.bufferrotation, 10),  
     
    144145                 
    145146                function _setIcon(name) { 
     147                        if (!_config.showicons) return; 
     148                         
    146149                        if (_button) { 
    147150                                _display.removeChild(_button); 
     
    150153                        if (_button) { 
    151154                                _display.appendChild(_button); 
     155                        } 
     156                         
     157                        if (name == "buffer") { 
     158                                _degreesRotated = 0; 
     159                                _rotationInterval = setInterval(function() { 
     160                                        _degreesRotated += _bufferRotation; 
     161                                        _rotate(_button.childNodes[0], _degreesRotated % 360); 
     162                                }, _bufferInterval); 
    152163                        } 
    153164                } 
     
    183194                        case _states.BUFFERING: 
    184195                                _setIcon('buffer'); 
    185                                 _degreesRotated = 0; 
    186                                 _rotationInterval = setInterval(function() { 
    187                                         _degreesRotated += _bufferRotation; 
    188                                         _rotate(_button.childNodes[0], _degreesRotated % 360); 
    189                                 }, _bufferInterval); 
    190196                                break; 
    191197                        case _states.PLAYING: 
     
    246252                        }); 
    247253                } 
    248                  
     254 
    249255                this.show = function() { 
    250256                        _setVisibility('', true); 
     
    275281                width: JW_CSS_100PCT, 
    276282                height: JW_CSS_100PCT, 
    277                 overflow: 'hidden' 
     283                overflow: 'hidden', 
     284                opacity: 0 
    278285        }); 
    279286 
  • branches/jw6/src/js/html5/jwplayer.html5.model.js

    r2184 r2190  
    77(function(html5) { 
    88        var _utils = jwplayer.utils, 
    9                 _events = jwplayer.events; 
     9                _events = jwplayer.events, 
     10                UNDEF = undefined; 
    1011 
    1112        html5.model = function(config) { 
     
    1718                        // Saved settings 
    1819                        _cookies = _utils.getCookies(), 
     20                        // Sub-component configurations 
     21                        _componentConfigs = {}; 
    1922                        // Defaults 
    2023                        _defaults = { 
    21                                 width: 480, 
     24                                autostart: false, 
     25                                controls: true, 
     26                                debug: UNDEF, 
    2227                                height: 320, 
     28                                icons: true, 
    2329                                item: 0, 
     30                                mute: false, 
    2431                                playlist: [], 
    25                                 skin: undefined, 
     32                                playlistposition: "right", 
     33                                playlistsize: 0, 
     34                                repeat: UNDEF, 
     35                                skin: UNDEF, 
     36                                stretching: _utils.stretching.UNIFORM, 
    2637                                volume: 90, 
    27                                 mute: false, 
    28                                 repeat: "", 
    29                                 playlistsize: 0, 
    30                                 playlistposition: "right", 
    31                                 stretching: _utils.stretching.UNIFORM, 
    32                                 autostart: false, 
    33                                 debug: undefined 
     38                                width: 480 
    3439                        }; 
    3540 
    3641                function _parseConfig(config) { 
     42                        for (var i in config) { 
     43                                config[i] = _utils.strings.serialize(config[i]); 
     44                        } 
    3745                        return config; 
    3846                } 
     
    4755                                buffer: 0, 
    4856                        }, _model.config); 
     57                        _setComponentConfigs(); 
    4958                        _model.setItem(_model.config.item); 
    5059                         
    5160                        _videoTag = document.createElement("video"); 
    5261                        _video = new html5.video(_videoTag); 
     62                        _video.volume(_model.volume); 
     63                        _video.mute(_model.mute); 
    5364                        _video.addGlobalListener(_videoEventHandler); 
     65                } 
     66                 
     67                function _setComponentConfigs() { 
     68                        _componentConfigs.display = { showicons: _model.icons }; 
     69                        _componentConfigs.controlbar = {}; 
    5470                } 
    5571 
     
    7692                } 
    7793                 
    78                 this.getVideo = function() { 
     94                _model.getVideo = function() { 
    7995                        return _video; 
    8096                } 
    8197                 
    82                 this.seekDrag = function(state) { 
     98                _model.seekDrag = function(state) { 
    8399                        _video.seekDrag(state); 
    84100                } 
    85101                 
    86                 this.setFullscreen = function(state) { 
     102                _model.setFullscreen = function(state) { 
    87103                        if (state != _model.fullscreen) { 
    88104                                _model.fullscreen = state; 
     
    91107                } 
    92108                 
    93                 this.setPlaylist = function(playlist) { 
     109                _model.setPlaylist = function(playlist) { 
    94110                        _model.item = -1; 
    95111                        _model.playlist = playlist; 
     
    99115                } 
    100116                 
    101                 this.setItem = function(index) { 
     117                _model.setItem = function(index) { 
    102118                        var newItem; 
    103119                        if (index == _model.playlist.length || index < -1) 
     
    116132                } 
    117133                 
    118                 this.componentConfig = function(name) { 
    119                         return {}; 
     134                _model.setVolume = function(newVol) { 
     135                        if (_model.mute && newVol > 0) _model.setMute(false); 
     136                        newVol = Math.round(newVol); 
     137                        _utils.saveCookie("volume", newVol); 
     138                        _video.volume(newVol); 
     139                } 
     140 
     141                _model.setMute = function(state) { 
     142                        if (!_utils.exists(state)) state = !_model.mute; 
     143                        _utils.saveCookie("mute", state); 
     144                        _video.mute(state); 
     145                } 
     146 
     147                _model.componentConfig = function(name) { 
     148                        return _componentConfigs[name]; 
    120149                } 
    121150                 
  • branches/jw6/src/js/html5/jwplayer.html5.video.js

    r2189 r2190  
    7272                _state = _states.IDLE, 
    7373                // Save the volume state before muting 
    74                 _lastVolume = 0, 
     74                _lastVolume, 
    7575                // Using setInterval to check buffered ranges 
    7676                _bufferInterval = -1, 
     
    266266 
    267267                var _volume = this.volume = function(vol) { 
    268                         if (_videotag.muted) _videotag.muted = false; 
    269268                        _videotag.volume = vol / 100; 
    270  
    271269                } 
    272270                 
     
    283281                        if (!_utils.exists(state)) state = !_videotag.mute; 
    284282                        if (state) { 
    285                                 _lastVolume = _videotag.volume * 100; 
    286                                 _volume(0); 
    287                                 _videotag.muted = true; 
     283                                if (!_videotag.muted) { 
     284                                        _lastVolume = _videotag.volume * 100; 
     285                                        _videotag.muted = true; 
     286                                        _volume(0); 
     287                                } 
    288288                        } else { 
    289                                 _volume(_lastVolume); 
     289                                if (_videotag.muted) { 
     290                                        _volume(_lastVolume); 
     291                                        _videotag.muted = false; 
     292                                } 
    290293                        } 
    291294                } 
  • branches/jw6/src/js/html5/jwplayer.html5.view.js

    r2189 r2190  
    2424                var _api = api,  
    2525                        _model = model,  
    26                         _controls = {}, 
    2726                        _playerElement, 
    2827                        _container, 
     
    3130                        _controlsTimeout=0, 
    3231                        _timeoutDuration = 2000, 
     32                        _videoTag, 
    3333                        _videoLayer, 
    34                         _instreamLayer; 
     34                        _instreamLayer, 
     35                         
     36                        _controlbar, 
     37                        _display, 
     38                        _playlist; 
    3539 
    3640                this.setup = function(skin) { 
     
    4549                        _container = _createElement("span", VIEW_MAIN_CONTAINER_CLASS); 
    4650                        _videoLayer = _createElement("span", VIEW_VIDEO_CONTAINER_CLASS); 
    47                         _videoLayer.appendChild(_model.getVideo().getTag()); 
     51                         
     52                        _videoTag = _model.getVideo().getTag(); 
     53                        _videoLayer.appendChild(_videoTag); 
    4854                        _controlsLayer = _createElement("span", VIEW_CONTROLS_CONTAINER_CLASS); 
    4955                        _instreamLayer = _createElement("span", VIEW_INSTREAM_CONTAINER_CLASS); 
     
    6672                        _stateHandler({newstate:_states.IDLE}); 
    6773                         
    68                         _playerElement.addEventListener('mouseout', _fadeControls, false); 
    69                         _playerElement.addEventListener('mousemove', function(evt) { 
    70                                 _showControls(); 
    71                                 clearTimeout(_controlsTimeout); 
    72                                 _controlsTimeout = setTimeout(_fadeControls, _timeoutDuration); 
    73                         }, false); 
     74                        _controlsLayer.addEventListener('mouseout', _fadeControls, false); 
     75                        _controlsLayer.addEventListener('mousemove', _startFade, false); 
     76                        if (_controlbar) { 
     77                                _controlbar.getDisplayElement().addEventListener('mousemove', _cancelFade, false); 
     78                                _controlbar.getDisplayElement().addEventListener('mouseout', _resumeFade, false); 
     79                        } 
     80 
    7481                         
    7582                } 
     
    8188                } 
    8289                 
     90                function _startFade() { 
     91                        clearTimeout(_controlsTimeout); 
     92                        if (_api.jwGetState() == _states.PLAYING || _api.jwGetState() == _states.PAUSED) { 
     93                                _showControlbar(); 
     94                                if (!_inCB) { 
     95                                        _controlsTimeout = setTimeout(_fadeControls, _timeoutDuration); 
     96                                } 
     97                        } 
     98                } 
     99                 
     100                var _inCB = false; 
     101                 
     102                function _cancelFade() { 
     103                        clearTimeout(_controlsTimeout); 
     104                        _inCB = true; 
     105                } 
     106                 
     107                function _resumeFade() { 
     108                        _inCB = false; 
     109                } 
     110                 
    83111                function _fadeControls() { 
    84                         if (_api.jwGetState() == _states.PLAYING) { 
    85                                 _hideControls(); 
     112                        if (_api.jwGetState() == _states.PLAYING || _api.jwGetState() == _states.PAUSED) { 
     113                                _hideControlbar(); 
    86114                        } 
    87115                        clearTimeout(_controlsTimeout); 
     
    96124                 
    97125                        if (height > 40 || height.indexOf("%")) { 
    98                                 _controls.display = new html5.display(_api, displaySettings); 
    99                                 _controlsLayer.appendChild(_controls.display.getDisplayElement()); 
    100                                 displaySettings.backgroundcolor = _controls.display.getBGColor(); 
     126                                _display = new html5.display(_api, displaySettings); 
     127                                _controlsLayer.appendChild(_display.getDisplayElement()); 
     128                                displaySettings.backgroundcolor = _display.getBGColor(); 
    101129                        } else { 
    102130                                displaySettings.backgroundcolor = 'transparent'; 
     
    108136                         
    109137                        if (_model.playlistsize > 0 && _model.playlistposition && _model.playlistposition != "none") { 
    110                                 _controls.playlist = new html5.playlistcomponent(_api, {}); 
    111                                 _playlistLayer.appendChild(_controls.playlist.getDisplayElement()); 
     138                                _playlist = new html5.playlistcomponent(_api, {}); 
     139                                _playlistLayer.appendChild(_playlist.getDisplayElement()); 
    112140                        } 
    113141 
     
    116144                        if (!_utils.isMobile()) { 
    117145                                // TODO: allow override for showing HTML controlbar on iPads 
    118                                 _controls.controlbar = new html5.controlbar(_api, cbSettings); 
    119                                 _controlsLayer.appendChild(_controls.controlbar.getDisplayElement()); 
     146                                _controlbar = new html5.controlbar(_api, cbSettings); 
     147                                _controlsLayer.appendChild(_controlbar.getDisplayElement()); 
    120148                        } 
    121149                } 
     
    170198                        } 
    171199 
    172                         if (_controls.display) { 
    173                                 _controls.display.resize(width, height); 
    174                         } 
    175                         if (_controls.controlbar) { 
    176                                 _controls.controlbar.resize(width, height); 
     200                        if (_display) { 
     201                                _display.resize(width, height); 
     202                        } 
     203                        if (_controlbar) { 
     204                                _controlbar.resize(width, height); 
    177205                        } 
    178206                        var playlistSize = _model.playlistsize, 
    179207                                playlistPos = _model.playlistposition 
    180208                         
    181                         if (_controls.playlist && playlistSize > 0 && playlistPos) { 
    182                                 _controls.playlist.resize(width, height); 
     209                        if (_playlist && playlistSize > 0 && playlistPos) { 
     210                                _playlist.resize(width, height); 
    183211                                 
    184212                                var playlistStyle = { display: "block" }, containerStyle = {}; 
     
    195223                                _css(_internalSelector(VIEW_MAIN_CONTAINER_CLASS), containerStyle); 
    196224                        } 
     225                         
     226                        _resizeMedia(); 
    197227 
    198228                        return; 
    199229                } 
    200230                 
     231                function _resizeMedia() { 
     232                        _utils.stretch(_model.stretching, _videoTag,  
     233                                        _videoLayer.clientWidth, _videoLayer.clientHeight,  
     234                                        _videoTag.videoWidth, _videoTag.videoHeight); 
     235                } 
     236                 
    201237                this.resize = _resize; 
     238                this.resizeMedia = _resizeMedia; 
    202239 
    203240                this.completeSetup = function() { 
     
    254291                        _fullscreen(_model.fullscreen); 
    255292                } 
     293                 
     294                function _showControlbar() { 
     295                        if (_controlbar && _model.controls) _controlbar.show(); 
     296                } 
     297                function _hideControlbar() { 
     298                        if (_controlbar) _controlbar.hide(); 
     299                } 
     300                function _showDisplay() { 
     301                        if (_display) _display.show(); 
     302                } 
     303                function _hideDisplay() { 
     304                        if (_display) _display.hide(); 
     305                } 
    256306 
    257307                function _hideControls() { 
    258                         if (_controls.controlbar) _controls.controlbar.hide(); 
    259                         if (_controls.display) _controls.display.hide(); 
     308                        _hideControlbar(); 
     309                        _hideDisplay(); 
    260310                } 
    261311 
    262312                function _showControls() { 
    263                         if (_controls.controlbar) _controls.controlbar.show(); 
    264                         if (_controls.display) _controls.display.show(); 
     313                        _showControlbar(); 
     314                        _showDisplay(); 
    265315                } 
    266316 
     
    281331                        switch(state) { 
    282332                        case _states.PLAYING: 
    283                                 if (_utils.isIPod()) { 
    284                                         vidstyle.display = "block"; 
    285                                 } 
     333                                if (_utils.isIPod()) vidstyle.display = "block"; 
    286334                                vidstyle.opacity = 1; 
    287335                                _css(_internalSelector(VIEW_VIDEO_CONTAINER_CLASS), vidstyle); 
    288                                 _hideControls(); 
     336                                _resizeMedia(); 
     337                                _startFade(); 
    289338                                break; 
    290339                        case _states.COMPLETED: 
    291340                        case _states.IDLE: 
    292                                 if (_utils.isIPod()) { 
    293                                         vidstyle.display = "none"; 
    294                                 } 
     341                                if (_utils.isIPod()) vidstyle.display = "none"; 
    295342                                vidstyle.opacity = 0; 
    296343                                _css(_internalSelector(VIEW_VIDEO_CONTAINER_CLASS), vidstyle); 
    297                                 _showControls(); 
     344                                _hideControlbar(); 
     345                                _showDisplay(); 
    298346                                break; 
    299347                        case _states.BUFFERING: 
     
    407455                width: JW_CSS_100PCT, 
    408456                height: JW_CSS_100PCT, 
     457                left: 0,  
     458                right: 0, 
     459                top: 0, 
     460                bottom: 0, 
    409461                'z-index': 1000, 
    410462                position: "fixed" 
     
    431483 
    432484        _css('.' + PLAYER_CLASS+' .jwexactfit', { 
    433                 'background-size': JW_CSS_100PCT + JW_CSS_IMPORTANT 
     485                'background-size': JW_CSS_100PCT + " " + JW_CSS_100PCT + JW_CSS_IMPORTANT 
    434486        }); 
    435487 
  • branches/jw6/src/js/utils/jwplayer.utils.js

    r2184 r2190  
    291291                        var split = cookies[i].split('='); 
    292292                        if (split[0].indexOf("jwplayer.") == 0) { 
    293                                 jwCookies[split[0].substring(9, split[0].length)] = split[1]; 
     293                                jwCookies[split[0].substring(9, split[0].length)] = utils.strings.serialize(split[1]); 
    294294                        } 
    295295                } 
     
    387387        }; 
    388388 
     389        utils.transform = function(domelement, xscale, yscale, xoffset, yoffset) { 
     390                // Set defaults 
     391                if (!jwplayer.utils.exists(xscale)) xscale = 1; 
     392                if (!jwplayer.utils.exists(yscale)) yscale = 1; 
     393                if (!jwplayer.utils.exists(xoffset)) xoffset = 0; 
     394                if (!jwplayer.utils.exists(yoffset)) yoffset = 0; 
     395                 
     396                if (xscale == 1 && yscale == 1 && xoffset == 0 && yoffset == 0) { 
     397                        domelement.style.webkitTransform = ""; 
     398                        domelement.style.MozTransform = ""; 
     399                        domelement.style.msTransform = ""; 
     400                        domelement.style.OTransform = ""; 
     401                } else { 
     402                        var value = "scale("+xscale+","+yscale+") translate("+xoffset+"px,"+yoffset+"px)"; 
     403                        domelement.style.webkitTransform = value; 
     404                        domelement.style.MozTransform = value; 
     405                        domelement.style.msTransform = value; 
     406                        domelement.style.OTransform = value; 
     407                } 
     408        }; 
     409         
    389410        /** 
    390411         * Stretches domelement based on stretching. parentWidth, parentHeight, 
     
    406427         *            elementHeight 
    407428         */ 
    408         utils.stretch = function(stretching, domelement, parentWidth, 
    409                         parentHeight, elementWidth, elementHeight, transform) { 
    410  
    411                 var xscale = (utils.exists(parentWidth) && utils.exists(elementWidth)) ? parentWidth / elementWidth : 0, 
    412                         yscale = (utils.exists(parentHeight) && utils.exists(elementHeight)) ? parentHeight / elementHeight : 0, 
    413                         x = 0, y = 0, 
     429        utils.stretch = function(stretching, domelement, parentWidth, parentHeight, elementWidth, elementHeight) { 
     430                if (!domelement) return; 
     431                if (!parentWidth || !parentHeight || !elementWidth || !elementHeight) return; 
     432                 
     433                var xscale = parentWidth / elementWidth, 
     434                        yscale = parentHeight / elementHeight, 
     435                        xoff = 0, yoff = 0, 
    414436                        style = {}, 
     437                        video = (domelement.tagName.toLowerCase() == "video"), 
     438                        transform = false, 
    415439                        stretchClass; 
    416440                 
     441                if (video) { 
     442                        utils.transform(domelement); 
     443                } 
     444 
     445                stretchClass = "jw" + stretching.toLowerCase(); 
     446                 
    417447                switch (stretching.toLowerCase()) { 
     448                case _stretching.FILL: 
     449                        if (xscale > yscale) { 
     450                                elementWidth = elementWidth * xscale; 
     451                                elementHeight = elementHeight * xscale; 
     452                        } else { 
     453                                elementWidth = elementWidth * yscale; 
     454                                elementHeight = elementHeight * yscale; 
     455                        } 
    418456                case _stretching.NONE: 
    419                 case _stretching.FILL: 
     457                        xscale = yscale = 1; 
    420458                case _stretching.EXACTFIT: 
    421                         stretchClass = "jw" + stretching.toLowerCase(); 
     459                transform = true; 
    422460                        break; 
    423461                case _stretching.UNIFORM: 
    424                         stretchClass = "jw" + stretching.toLowerCase(); 
    425462                        if (xscale > yscale) { 
    426                                 if ( (elementWidth * yscale) / parentWidth > 0.95) { 
     463                                elementWidth = elementWidth * yscale; 
     464                                elementHeight = elementHeight * yscale; 
     465                                if (elementWidth / parentWidth > 0.95) { 
     466                                        transform = true; 
    427467                                        stretchClass = "jwexactfit"; 
     468                                        xscale = Math.ceil(100 * parentWidth / elementWidth) / 100; 
     469                                        yscale = 1; 
    428470                                } 
    429471                        } else { 
    430                                 if ( (elementHeight * xscale) / parentHeight > 0.95) { 
     472                                elementWidth = elementWidth * xscale; 
     473                                elementHeight = elementHeight * xscale; 
     474                                if (elementHeight / parentHeight > 0.95) { 
     475                                        transform = true; 
    431476                                        stretchClass = "jwexactfit"; 
     477                                        yscale = Math.ceil(100 * parentHeight / elementHeight) / 100; 
     478                                        xscale = 1; 
    432479                                } 
    433480                        } 
    434481                        break; 
    435482                default: 
     483                        return; 
    436484                        break; 
    437485                } 
    438486 
    439                 domelement.className = domelement.className.replace(/\s*jw(none|exactfit|uniform|fill)/g, ""); 
    440                 domelement.className += " " + stretchClass; 
     487                if (video) { 
     488                        if (transform) { 
     489                                domelement.style.width = elementWidth + "px"; 
     490                                domelement.style.height = elementHeight + "px";  
     491                                xoff = ((parentWidth - elementWidth) / 2) / xscale; 
     492                                yoff = ((parentHeight - elementHeight) / 2) / yscale; 
     493                                utils.transform(domelement, xscale, yscale, xoff, yoff); 
     494                        } else { 
     495                                domelement.style.width = ""; 
     496                                domelement.style.height = ""; 
     497                        } 
     498                } else { 
     499                        domelement.className = domelement.className.replace(/\s*jw(none|exactfit|uniform|fill)/g, ""); 
     500                        domelement.className += " " + stretchClass; 
     501                } 
    441502        }; 
    442503         
  • branches/jw6/test/controller.html

    r2189 r2190  
    4646                                                          title: "Sintel Trailer"                                                                  
    4747                                                      }], 
    48                       //debug: 'console', 
    4948                      playlistsize: 300, 
    50                       width: "100%", 
    51                       height: "100%", 
    52                       repeat: "single" 
     49                      width: "900", 
     50                      height: "540" 
    5351                    }); 
    5452                  } 
Note: See TracChangeset for help on using the changeset viewer.