Changeset 1625
- Timestamp:
- 03/03/11 06:51:40 (2 years ago)
- Location:
- trunk/fl5
- Files:
-
- 9 added
- 21 edited
-
build/build.xml (modified) (2 diffs)
-
js/bin-debug/jwplayer.js (modified) (34 diffs)
-
js/src/api/jwplayer.api.js (modified) (1 diff)
-
js/src/embed/jwplayer.embed.config.js (modified) (3 diffs)
-
js/src/embed/jwplayer.embed.flash.js (modified) (1 diff)
-
js/src/embed/jwplayer.embed.js (modified) (2 diffs)
-
js/src/events (added)
-
js/src/events/jwplayer.events.eventdispatcher.js (added)
-
js/src/events/jwplayer.events.js (added)
-
js/src/html5/jwplayer.html5.api.js (modified) (1 diff)
-
js/src/html5/jwplayer.html5.controlbar.js (modified) (3 diffs)
-
js/src/html5/jwplayer.html5.dock.js (modified) (5 diffs)
-
js/src/html5/jwplayer.html5.eventdispatcher.js (modified) (2 diffs)
-
js/src/html5/jwplayer.html5.model.js (modified) (3 diffs)
-
js/src/html5/jwplayer.html5.view.js (modified) (4 diffs)
-
js/src/jwplayer.js (modified) (1 diff)
-
js/src/plugins/jwplayer.plugins.js (modified) (1 diff)
-
js/src/plugins/jwplayer.plugins.model.js (added)
-
js/src/plugins/jwplayer.plugins.plugin.js (added)
-
js/src/plugins/jwplayer.plugins.pluginloader.js (added)
-
js/src/utils/jwplayer.utils.js (modified) (5 diffs)
-
js/src/utils/jwplayer.utils.scriptloader.js (added)
-
js/test/examples/components.html (modified) (4 diffs)
-
js/test/examples/dock.html (added)
-
js/test/examples/docksetbutton.html (modified) (1 diff)
-
js/test/examples/index.html (modified) (2 diffs)
-
js/test/examples/plugins/dockplugin.js (added)
-
jwplayer.min.js (modified) (1 diff)
-
player.swf (modified) (previous)
-
src/com/longtailvideo/jwplayer/player/PlayerVersion.as (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/fl5/build/build.xml
r1539 r1625 240 240 <fileset dir="${basedir}/js/src" includes="jwplayer.js" /> 241 241 <fileset dir="${basedir}/js/src/utils" includes="jwplayer.utils.js" /> 242 <fileset dir="${basedir}/js/src/events" includes="jwplayer.events.js" /> 243 <fileset dir="${basedir}/js/src/events" includes="**/*.js" excludes="jwplayer.events.js" /> 242 244 <fileset dir="${basedir}/js/src/utils" includes="**/*.js" excludes="jwplayer.utils.js" /> 243 <fileset dir="${basedir}/js/src/plugins" includes="**/*.js" /> 245 <fileset dir="${basedir}/js/src/plugins" includes="jwplayer.plugins.js" /> 246 <fileset dir="${basedir}/js/src/plugins" includes="**/*.js" excludes="jwplayer.plugins.js" /> 244 247 <fileset dir="${basedir}/js/src/api" includes="**/*.js" /> 245 248 <fileset dir="${basedir}/js/src/embed" includes="jwplayer.embed.js" /> … … 306 309 </target> 307 310 308 <target name="build-release-player" depends="check-properties, clean-release, update-version,debug-js, release-js">311 <target name="build-release-player" depends="check-properties, clean-release, debug-js, release-js"> 309 312 <antcall target="release-swf"> 310 313 <param name="package" value="${application.package}" /> -
trunk/fl5/js/bin-debug/jwplayer.js
r1618 r1625 11 11 var $jw = jwplayer; 12 12 13 jwplayer.version = '5.5.16 18';13 jwplayer.version = '5.5.1625'; 14 14 jwplayer.vid = document.createElement("video"); 15 15 jwplayer.audio = document.createElement("audio"); … … 324 324 } 325 325 326 /** 327 * Types of plugin paths 328 */ 329 jwplayer.utils.pluginPathType = { 330 //TODO: enum 331 ABSOLUTE: "ABSOLUTE", 332 RELATIVE: "RELATIVE", 333 CDN: "CDN" 334 } 335 326 336 /* 327 337 * Test cases … … 338 348 * getPathType('./hd-1.4.swf') 339 349 */ 340 jwplayer.utils.getP athType = function(path){350 jwplayer.utils.getPluginPathType = function(path){ 341 351 if (typeof path != "string") { 342 352 return; … … 345 355 var protocol = path.indexOf("://"); 346 356 if (protocol > 0) { 347 return "absolute";357 return jwplayer.utils.pluginPathType.ABSOLUTE; 348 358 } 349 359 var folder = path.indexOf("/"); 350 360 var extension = jwplayer.utils.extension(path); 351 361 if (protocol < 0 && folder < 0 && (!extension || !isNaN(extension))) { 352 return "cdn";353 } 354 return "relative";362 return jwplayer.utils.pluginPathType.CDN; 363 } 364 return jwplayer.utils.pluginPathType.RELATIVE; 355 365 }; 356 366 … … 451 461 jwplayer.utils.transform(domelement, ""); 452 462 var style = {}; 453 switch (stretching.to LowerCase()) {463 switch (stretching.toUpperCase()) { 454 464 case jwplayer.utils.stretching.NONE: 455 465 // Maintain original dimensions … … 493 503 }; 494 504 505 //TODO: enum 495 506 jwplayer.utils.stretching = { 496 "NONE": "none", 497 "FILL": "fill", 498 "UNIFORM": "uniform", 499 "EXACTFIT": "exactfit" 507 NONE: "NONE", 508 FILL: "FILL", 509 UNIFORM: "UNIFORM", 510 EXACTFIT: "EXACTFIT" 511 }; 512 })(jwplayer); 513 /** 514 * Event namespace defintion for the JW Player 515 * 516 * @author zach 517 * @version 5.5 518 */ 519 (function(jwplayer) { 520 jwplayer.events = function() { 521 }; 522 523 jwplayer.events.COMPLETE = "COMPLETE"; 524 jwplayer.events.ERROR = "ERROR"; 525 })(jwplayer); 526 /** 527 * Event dispatcher for the JW Player 528 * 529 * @author zach 530 * @version 5.5 531 */ 532 (function(jwplayer) { 533 jwplayer.events.eventdispatcher = function(debug) { 534 var _debug = debug; 535 var _listeners; 536 var _globallisteners; 537 538 /** Clears all event listeners **/ 539 this.resetEventListeners = function() { 540 _listeners = {}; 541 _globallisteners = []; 542 }; 543 544 this.resetEventListeners(); 545 546 /** Add an event listener for a specific type of event. **/ 547 this.addEventListener = function(type, listener, count) { 548 try { 549 if (_listeners[type] === undefined) { 550 _listeners[type] = []; 551 } 552 553 if (typeof(listener) == "string") { 554 eval("listener = " + listener); 555 } 556 _listeners[type].push({ 557 listener: listener, 558 count: count 559 }); 560 } catch (err) { 561 jwplayer.utils.log("error", err); 562 } 563 return false; 564 }; 565 566 567 /** Remove an event listener for a specific type of event. **/ 568 this.removeEventListener = function(type, listener) { 569 try { 570 for (var listenerIndex = 0; listenerIndex < _listeners[type].length; listenerIndex++) { 571 if (_listeners[type][lisenterIndex].toString() == listener.toString()) { 572 _listeners[type].slice(lisenterIndex, lisenterIndex + 1); 573 break; 574 } 575 } 576 } catch (err) { 577 jwplayer.utils.log("error", err); 578 } 579 return false; 580 }; 581 582 /** Add an event listener for all events. **/ 583 this.addGlobalListener = function(listener, count) { 584 try { 585 if (typeof(listener) == "string") { 586 eval("listener = " + listener); 587 } 588 _globallisteners.push({ 589 listener: listener, 590 count: count 591 }); 592 } catch (err) { 593 jwplayer.utils.log("error", err); 594 } 595 return false; 596 }; 597 598 /** Add an event listener for all events. **/ 599 this.removeGlobalListener = function(listener) { 600 try { 601 for (var globalListenerIndex = 0; globalListenerIndex < _globallisteners.length; globalListenerIndex++) { 602 if (_globallisteners[globalListenerIndex].toString() == listener.toString()) { 603 _globallisteners.slice(globalListenerIndex, globalListenerIndex + 1); 604 break; 605 } 606 } 607 } catch (err) { 608 jwplayer.utils.log("error", err); 609 } 610 return false; 611 }; 612 613 614 /** Send an event **/ 615 this.sendEvent = function(type, data) { 616 if (data === undefined) { 617 data = {}; 618 } 619 if (_debug) { 620 jwplayer.utils.log(type, data); 621 } 622 if (typeof _listeners[type] != "undefined") { 623 for (var listenerIndex = 0; listenerIndex < _listeners[type].length; listenerIndex++) { 624 try { 625 _listeners[type][listenerIndex].listener(data); 626 } catch (err) { 627 jwplayer.utils.log("There was an error while handling a listener", _listeners[type][listenerIndex].listener, err); 628 } 629 if (_listeners[type][listenerIndex].count === 1) { 630 delete _listeners[type][listenerIndex]; 631 } else if (_listeners[type][listenerIndex].count > 0) { 632 _listeners[type][listenerIndex].count = _listeners[type][listenerIndex].count - 1; 633 } 634 } 635 } 636 for (var globalListenerIndex = 0; globalListenerIndex < _globallisteners.length; globalListenerIndex++) { 637 try { 638 _globallisteners[globalListenerIndex].listener(data); 639 } catch (err) { 640 jwplayer.utils.log("There was an error while handling a listener", _globallisteners[globalListenerIndex].listener, err); 641 } 642 if (_globallisteners[globalListenerIndex].count === 1) { 643 delete _globallisteners[globalListenerIndex]; 644 } else if (_globallisteners[globalListenerIndex].count > 0) { 645 _globallisteners[globalListenerIndex].count = _globallisteners[globalListenerIndex].count - 1; 646 } 647 } 648 }; 500 649 }; 501 650 })(jwplayer); … … 850 999 })(jwplayer); 851 1000 /** 1001 * Loads a <script> tag 1002 * @author zach 1003 * @version 5.5 1004 */ 1005 (function(jwplayer) { 1006 //TODO: Enum 1007 jwplayer.utils.loaderstatus = { 1008 NEW: "NEW", 1009 LOADING: "LOADING", 1010 ERROR: "ERROR", 1011 COMPLETE: "COMPLETE" 1012 }; 1013 1014 jwplayer.utils.scriptloader = function(url) { 1015 var _status = jwplayer.utils.loaderstatus.NEW; 1016 var _eventDispatcher = new jwplayer.events.eventdispatcher(); 1017 jwplayer.utils.extend(this, _eventDispatcher); 1018 1019 this.load = function() { 1020 if (_status == jwplayer.utils.loaderstatus.NEW) { 1021 _status = jwplayer.utils.loaderstatus.LOADING; 1022 var scriptTag = document.createElement("script"); 1023 // Most browsers 1024 scriptTag.onload = function(evt) { 1025 _status = jwplayer.utils.loaderstatus.COMPLETE; 1026 _eventDispatcher.sendEvent(jwplayer.events.COMPLETE); 1027 } 1028 scriptTag.onerror = function(evt) { 1029 _status = jwplayer.utils.loaderstatus.ERROR; 1030 _eventDispatcher.sendEvent(jwplayer.events.ERROR); 1031 } 1032 // IE 1033 scriptTag.onreadystatechange = function() { 1034 if (script.readyState == 'loaded' || script.readyState == 'complete') { 1035 _status = jwplayer.utils.loaderstatus.COMPLETE; 1036 _eventDispatcher.sendEvent(jwplayer.events.COMPLETE); 1037 } 1038 // Error? 1039 } 1040 document.getElementsByTagName("head")[0].appendChild(scriptTag); 1041 scriptTag.src = url; 1042 } 1043 1044 }; 1045 1046 this.getStatus = function() { 1047 return _status; 1048 } 1049 } 1050 })(jwplayer); 1051 /** 852 1052 * Selectors for the JW Player. 853 1053 * … … 1082 1282 })(jwplayer); 1083 1283 /** 1084 * Plugin class1284 * Plugin package definition 1085 1285 * @author zach 1086 * @version 5.5 a1286 * @version 5.5 1087 1287 */ 1088 1288 (function(jwplayer) { 1089 1090 /** 1091 * Plugins attempted to load 1092 */ 1093 var _loadedplugins = {}; 1094 1095 /** 1096 * Plugins that failed to load 1097 */ 1098 1099 var _failedplugins = {}; 1100 1101 /** 1102 * Plugins that have successfully loaded 1103 */ 1104 var _registeredplugins = {}; 1105 1106 /** 1107 * Players that are waiting for plugins to load 1108 */ 1109 var _players = {}; 1110 1111 /** 1112 * The current plugins repository 1113 */ 1114 var _pluginRepository = "http://plugins.longtailvideo.com/"; 1289 var _plugins = {}; 1115 1290 1116 1291 jwplayer.plugins = function() { 1117 1292 } 1118 1293 1119 /** 1120 * Loads plugins 1121 * 1122 * @param {Object} embedder 1123 */ 1124 jwplayer.plugins.loadPlugins = function(embedder) { 1125 _players[embedder.api.id] = { 1126 api: embedder.api, 1127 embedder: embedder, 1128 loader: new jwplayer.plugins.loader(embedder.config.plugins, _loadedplugins, _failedplugins, _registeredplugins, _pluginRepository, function() { 1129 _checkComplete(embedder.api.id) 1130 }) 1131 }; 1132 return _players[embedder.api.id].loader; 1294 jwplayer.plugins.loadPlugins = function(config) { 1295 return new jwplayer.plugins.pluginloader(new jwplayer.plugins.model(_plugins), config); 1133 1296 } 1134 1297 1135 /** 1136 * Checks to see if a player has completed it's setup 1137 * 1138 * @param {String} id 1139 */ 1140 function _checkComplete(id) { 1141 if (_players[id] && _players[id].loader.isComplete()) { 1142 _players[id].embedder.embedPlayer(); 1298 jwplayer.plugins.registerPlugin = function(id, arg1, arg2) { 1299 if (_plugins[id]) { 1300 _plugins[id].registerPlugin(id, arg1, arg2); 1143 1301 } 1144 1302 } 1145 1146 /**1147 * Mark a plugin load as having failed1148 *1149 * @param {Object} id1150 */1151 jwplayer.plugins.pluginFailed = function(id){1152 _failedplugins[id] = true;1153 for (var player in _players){1154 if (typeof player == "string") {1155 _checkComplete(player);1156 }1157 }1158 };1159 1160 /**1161 * Registers a plugin once the load is complete.1162 *1163 * @param {Object} id1164 * @param {Object} template1165 */1166 jwplayer.plugins.registerPlugin = function(id, arg1, arg2) {1167 if (!_registeredplugins[id]) {1168 _registeredplugins[id] = {1169 flash: {},1170 js: {}1171 };1172 if (arg1 && arg2) {1173 _registeredplugins[id].flash.src = arg2;1174 _registeredplugins[id].js.template = arg1;1175 } else if (typeof arg1 == "string") {1176 _registeredplugins[id].flash.src = arg1;1177 } else if (typeof arg1 == "function") {1178 _registeredplugins[id].js.template = arg1;1179 } else if (!arg1 && !arg2) {1180 _registeredplugins[id].flash.src = id;1181 }1182 }1183 for (var player in _players){1184 if (typeof player == "string") {1185 _checkComplete(player);1186 }1187 }1188 };1189 1303 })(jwplayer); 1190 1304 /** … … 1406 1520 })(jwplayer); 1407 1521 /** 1522 * Model that manages all plugins 1523 * @author zach 1524 * @version 5.5 1525 */ 1526 (function(jwplayer) { 1527 jwplayer.plugins.model = function(plugins) { 1528 this.addPlugin = function(url) { 1529 var pluginName = jwplayer.utils.getPluginName(url); 1530 if (!plugins[pluginName]) { 1531 plugins[pluginName] = new jwplayer.plugins.plugin(url); 1532 } 1533 return plugins[pluginName]; 1534 } 1535 } 1536 })(jwplayer); 1537 /** 1538 * Internal plugin model 1539 * @author zach 1540 * @version 5.5 1541 */ 1542 (function(jwplayer) { 1543 jwplayer.plugins.plugin = function(url) { 1544 var _repo = "http://plugins.longtailvideo.com" 1545 var _status = jwplayer.utils.loaderstatus.NEW; 1546 var _flashPath; 1547 var _js; 1548 1549 var _eventDispatcher = new jwplayer.events.eventdispatcher(); 1550 jwplayer.utils.extend(this, _eventDispatcher); 1551 1552 function getJSPath() { 1553 switch (jwplayer.utils.getPluginPathType(url)) { 1554 case jwplayer.utils.pluginPathType.ABSOLUTE: 1555 return url; 1556 case jwplayer.utils.pluginPathType.RELATIVE: 1557 return jwplayer.utils.getAbsolutePath(url, window.location.href); 1558 case jwplayer.utils.pluginPathType.CDN: 1559 var pluginName = jwplayer.utils.getPluginName(url); 1560 return pluginRepository + jwplayer.version.split(".")[0] + "/" + pluginName + "/" + pluginName + ".js"; 1561 } 1562 } 1563 1564 function errorHandler(evt) { 1565 _status = jwplayer.utils.loaderstatus.ERROR; 1566 _eventDispatcher.sendEvent(jwplayer.events.ERROR); 1567 } 1568 1569 this.load = function() { 1570 if (_status == jwplayer.utils.loaderstatus.NEW) { 1571 if (url.lastIndexOf(".swf") > 0) { 1572 _flashPath = url; 1573 _status = jwplayer.utils.loaderstatus.COMPLETE; 1574 _eventDispatcher.sendEvent(jwplayer.events.COMPLETE); 1575 return; 1576 } 1577 _status = jwplayer.utils.loaderstatus.LOADING; 1578 var _loader = new jwplayer.utils.scriptloader(getJSPath()); 1579 // Complete doesn't matter - we're waiting for registerPlugin 1580 _loader.addEventListener(jwplayer.events.ERROR, errorHandler); 1581 _loader.load(); 1582 } 1583 } 1584 1585 this.registerPlugin = function(id, arg1, arg2) { 1586 if (arg1 && arg2) { 1587 _flashPath = arg2; 1588 _js = arg1; 1589 } else if (typeof arg1 == "string") { 1590 _flashPath = arg1; 1591 } else if (typeof arg1 == "function") { 1592 _js = arg1; 1593 } else if (!arg1 && !arg2) { 1594 _flashPath = id; 1595 } 1596 _status = jwplayer.utils.loaderstatus.COMPLETE; 1597 _eventDispatcher.sendEvent(jwplayer.events.COMPLETE); 1598 } 1599 1600 this.getStatus = function() { 1601 return _status; 1602 } 1603 1604 this.getPluginName = function() { 1605 return jwplayer.utils.getPluginName(url); 1606 } 1607 1608 this.getFlashPath = function() { 1609 if (_flashPath) { 1610 switch (jwplayer.utils.getPluginPathType(_flashPath)) { 1611 case jwplayer.utils.pluginPathType.ABSOLUTE: 1612 return _flashPath; 1613 case jwplayer.utils.pluginPathType.RELATIVE: 1614 if (url.lastIndexOf(".swf") > 0) { 1615 return jwplayer.utils.getAbsolutePath(_flashPath, window.location.href); 1616 } 1617 return jwplayer.utils.getAbsolutePath(_flashPath, getJSPath()); 1618 case jwplayer.utils.pluginPathType.CDN: 1619 return _flashPath; 1620 } 1621 } 1622 return null; 1623 } 1624 1625 this.getJS = function() { 1626 return _js; 1627 } 1628 1629 this.getNewInstance = function(api, config, div) { 1630 return new _js(api, config, div); 1631 } 1632 1633 this.getURL = function() { 1634 return url; 1635 } 1636 } 1637 1638 })(jwplayer); 1639 /** 1640 * Loads plugins for a player 1641 * @author zach 1642 * @version 5.5 1643 */ 1644 (function(jwplayer) { 1645 1646 jwplayer.plugins.pluginloader = function(model, config) { 1647 var _plugins = {}; 1648 var _status = jwplayer.utils.loaderstatus.NEW; 1649 var _loading = false; 1650 var _complete = false; 1651 var _eventDispatcher = new jwplayer.events.eventdispatcher(); 1652 jwplayer.utils.extend(this, _eventDispatcher); 1653 1654 /* 1655 * Plugins can be loaded by multiple players on the page, but all of them use 1656 * the same plugin model singleton. This creates a race condition because 1657 * multiple players are creating and triggering loads, which could complete 1658 * at any time. We could have some really complicated logic that deals with 1659 * this by checking the status when it's created and / or having the loader 1660 * redispatch its current status on load(). Rather than do this, we just check 1661 * for completion after all of the plugins have been created. If all plugins 1662 * have been loaded by the time checkComplete is called, then the loader is 1663 * done and we fire the complete event. If there are new loads, they will 1664 * arrive later, retriggering the completeness check and triggering a complete 1665 * to fire, if necessary. 1666 */ 1667 1668 // This is not entirely efficient, but it's simple 1669 function checkComplete() { 1670 var incomplete = 0; 1671 for (plugin in _plugins) { 1672 if (_plugins[plugin].getStatus() == jwplayer.utils.loaderstatus.LOADING) { 1673 incomplete++; 1674 } 1675 } 1676 1677 if (incomplete == 0 && !_complete) { 1678 _complete = true; 1679 _status = jwplayer.utils.loaderstatus.COMPLETE; 1680 _eventDispatcher.sendEvent(jwplayer.events.COMPLETE); 1681 } 1682 } 1683 1684 this.setupPlugins = function(api, config, resizer) { 1685 var flashPlugins = { 1686 length: 0, 1687 plugins: {} 1688 }; 1689 var jsplugins = {}; 1690 for (var plugin in _plugins) { 1691 var pluginName = _plugins[plugin].getPluginName(); 1692 if (_plugins[plugin].getFlashPath()) { 1693 flashPlugins.plugins[_plugins[plugin].getFlashPath()] = config.plugins[_plugins[plugin].getURL()]; 1694 flashPlugins.length++; 1695 } 1696 if (_plugins[plugin].getJS()) { 1697 var div = document.createElement("div"); 1698 div.id = api.id + "_" + pluginName; 1699 div.style.position = "absolute"; 1700 div.style.zIndex = plugin + 10; 1701 jsplugins[pluginName] = _plugins[plugin].getNewInstance(api, config.plugins[_plugins[plugin].getURL()], div); 1702 if (typeof jsplugins[pluginName].resize != "undefined") { 1703 api.onReady(resizer(jsplugins[pluginName], div, true)); 1704 api.onResize(resizer(jsplugins[pluginName], div)); 1705 } 1706 } 1707 } 1708 1709 api.plugins = jsplugins; 1710 1711 return flashPlugins; 1712 }; 1713 1714 this.load = function() { 1715 _status = jwplayer.utils.loaderstatus.LOADING; 1716 _loading = true; 1717 1718 for (var plugin in config) { 1719 _plugins[plugin] = model.addPlugin(plugin); 1720 _plugins[plugin].addEventListener(jwplayer.events.COMPLETE, checkComplete); 1721 _plugins[plugin].addEventListener(jwplayer.events.ERROR, checkComplete); 1722 // Plugin object ensures that it's only loaded once 1723 _plugins[plugin].load(); 1724 } 1725 1726 _loading = false; 1727 1728 // Make sure we're not hanging around waiting for plugins that already finished loading 1729 checkComplete(); 1730 } 1731 1732 this.getStatus = function() { 1733 return _status; 1734 } 1735 1736 } 1737 })(jwplayer); 1738 /** 1408 1739 * API for the JW Player 1409 1740 * @author Pablo … … 1667 1998 var newApi = jwplayer(newId); 1668 1999 newApi.config = options; 1669 return (new jwplayer.embed(newApi)).embedPlayer();2000 return new jwplayer.embed(newApi); 1670 2001 } 1671 2002 return this; … … 1980 2311 } 1981 2312 }; 1982 this.api = playerApi; 1983 var mediaConfig = jwplayer.utils.mediaparser.parseMedia(this.api.container); 1984 this.config = new jwplayer.embed.config(jwplayer.utils.extend(_defaults, mediaConfig, this.api.config), this); 1985 this.pluginloader = new jwplayer.plugins.loadPlugins(this); 1986 1987 function _setupEvents(embedder) { 1988 for (var evt in embedder.events) { 1989 if (typeof embedder.api[evt] == "function") { 1990 (embedder.api[evt]).call(embedder.api, embedder.events[evt]); 1991 } 1992 } 1993 } 1994 1995 this.embedPlayer = function() { 1996 if (this.pluginloader.isComplete()) { 1997 for (var player = 0; player < this.players.length; player++) { 1998 if (this.players[player].type && jwplayer.embed[this.players[player].type]) { 1999 var configClone = this.config; 2000 if (this.players[player].config) { 2001 configClone = jwplayer.utils.extend(jwplayer.utils.clone(this.config), this.players[player].config); 2313 var mediaConfig = jwplayer.utils.mediaparser.parseMedia(playerApi.container); 2314 var _config = new jwplayer.embed.config(jwplayer.utils.extend(_defaults, mediaConfig, playerApi.config), this); 2315 var _pluginloader = jwplayer.plugins.loadPlugins(_config.plugins); 2316 2317 function _setupEvents(api, events) { 2318 for (var evt in events) { 2319 if (typeof api[evt] == "function") { 2320 (api[evt]).call(api, events[evt]); 2321 } 2322 } 2323 } 2324 2325 function _embedPlayer() { 2326 if (_pluginloader.getStatus() == jwplayer.utils.loaderstatus.COMPLETE) { 2327 for (var mode = 0; mode < _config.modes.length; mode++) { 2328 if (_config.modes[mode].type && jwplayer.embed[_config.modes[mode].type]) { 2329 var configClone = _config; 2330 if (_config.modes[mode].config) { 2331 configClone = jwplayer.utils.extend(jwplayer.utils.clone(_config), _config.modes[mode].config); 2002 2332 } 2003 var embedder = new jwplayer.embed[ this.players[player].type](document.getElementById(this.api.id), this.players[player], configClone, this.pluginloader, this.api);2333 var embedder = new jwplayer.embed[_config.modes[mode].type](document.getElementById(playerApi.id), _config.modes[mode], configClone, _pluginloader, playerApi); 2004 2334 if (embedder.supportsConfig()) { 2005 2335 embedder.embed(); 2006 2336 2007 _setupEvents( this);2337 _setupEvents(playerApi, _config.events); 2008 2338 2009 return this.api;2339 return playerApi; 2010 2340 } 2011 2341 } … … 2014 2344 new jwplayer.embed.logo(jwplayer.utils.extend({ 2015 2345 hide: true 2016 }, this.config.components.logo), "none", this.api.id); 2017 } 2018 }; 2019 2020 return this; 2346 }, _config.components.logo), "none", playerApi.id); 2347 } 2348 }; 2349 2350 _pluginloader.addEventListener(jwplayer.events.COMPLETE, _embedPlayer); 2351 _pluginloader.load(); 2352 2353 return playerApi; 2021 2354 }; 2022 2355 … … 2080 2413 var parsedConfig = jwplayer.utils.extend({}, config); 2081 2414 2082 /*2083 * Special handler for playlists; has a component later for non-string playlists2084 * This must be handled in two stages to allow things like playlist.position2085 * to be handled2086 */2087 if (_isPlaylist(parsedConfig.playlist)) {2088 parsedConfig.playlistfile = parsedConfig.playlist;2089 delete parsedConfig.playlist;2090 }2091 2092 2415 for (var option in parsedConfig) { 2093 2416 if (option.indexOf(".") > -1) { … … 2141 2464 } 2142 2465 2143 // Special handler for playlists; This moves back non-string playlists2144 if (typeof parsedConfig.playlistfile != "string") {2145 parsedConfig.playlist = parsedConfig.playlistfile;2146 delete parsedConfig.playlistfile;2147 }2148 2149 2466 // Special handler for the display icons setting 2150 2467 if (typeof parsedConfig.icons != "undefined"){ … … 2161 2478 } 2162 2479 2163 if (parsedConfig.modes) { 2164 parsedConfig.players = parsedConfig.modes; 2480 if (parsedConfig.players) { 2481 parsedConfig.modes = parsedConfig.players; 2482 delete parsedConfig.players; 2483 } 2484 2485 var _modes; 2486 if (parsedConfig.flashplayer && !parsedConfig.modes) { 2487 _modes = _playerDefaults(); 2488 _modes[0].src = parsedConfig.flashplayer; 2489 delete parsedConfig.flashplayer; 2490 } else if (parsedConfig.modes) { 2491 if (typeof parsedConfig.modes == "string") { 2492 _modes = _playerDefaults(); 2493 _modes[0].src = parsedConfig.modes; 2494 } else if (parsedConfig.modes instanceof Array) { 2495 _modes = parsedConfig.modes; 2496 } else if (typeof parsedConfig.modes == "object" && parsedConfig.modes.type) { 2497 _modes = [parsedConfig.modes]; 2498 } 2165 2499 delete parsedConfig.modes; 2166 }2167 2168 if (parsedConfig.flashplayer && !parsedConfig.players) {2169 embedder.players = _playerDefaults();2170 embedder.players[0].src = parsedConfig.flashplayer;2171 delete parsedConfig.flashplayer;2172 } else if (parsedConfig.players) {2173 if (typeof parsedConfig.players == "string") {2174 embedder.players = _playerDefaults();2175 embedder.players[0].src = parsedConfig.players;2176 } else if (parsedConfig.players instanceof Array) {2177 embedder.players = parsedConfig.players;2178 } else if (typeof parsedConfig.players == "object" && parsedConfig.players.type) {2179 embedder.players = [parsedConfig.players];2180 }2181 delete parsedConfig.players;2182 2500 } else { 2183 embedder.players = _playerDefaults(); 2184 } 2501 _modes = _playerDefaults(); 2502 } 2503 parsedConfig.modes = _modes; 2185 2504 2186 2505 return parsedConfig; … … 2565 2884 delete params.levels; 2566 2885 delete params.playlist; 2886 delete params.modes; 2567 2887 2568 2888 var wmode = "opaque"; … … 3156 3476 var pluginName = plugins[pluginIndex]; 3157 3477 if (_model.plugins.object[pluginName].getDisplayElement !== undefined) { 3158 if (_model.plugins.config[pluginName].currentPosition .toUpperCase() !== jwplayer.html5.view.positions.NONE) {3478 if (_model.plugins.config[pluginName].currentPosition != jwplayer.html5.view.positions.NONE) { 3159 3479 var style = componentResizer(pluginName, _zIndex--); 3160 3480 if (!style) { … … 3180 3500 function _normalscreenComponentResizer(pluginName, zIndex) { 3181 3501 if (_model.plugins.object[pluginName].getDisplayElement !== undefined) { 3182 if (_ hasPosition(_model.plugins.config[pluginName].position)) {3502 if (_model.plugins.config[pluginName].position && _hasPosition(_model.plugins.config[pluginName].position)) { 3183 3503 if (_model.plugins.object[pluginName].getDisplayElement().parentNode === null) { 3184 3504 _wrapper.appendChild(_model.plugins.object[pluginName].getDisplayElement()); … … 3248 3568 top: null 3249 3569 }; 3570 // Not a code error - toLowerCase is needed for the CSS position 3250 3571 var position = _model.plugins.config[pluginName].currentPosition.toLowerCase(); 3251 3572 switch (position.toUpperCase()) { … … 3347 3668 } 3348 3669 3670 //TODO: Enum 3349 3671 jwplayer.html5.view.positions = { 3350 3672 TOP: "TOP", … … 3453 3775 var _api = api; 3454 3776 var _settings = jwplayer.utils.extend({}, _defaults, _api.skin.getComponentSettings("controlbar"), config); 3777 if (_settings.position == jwplayer.html5.view.positions.NONE 3778 || typeof jwplayer.html5.view.positions[_settings.position] == "undefined"){ 3779 return; 3780 } 3455 3781 if (jwplayer.utils.mapLength(_api.skin.getComponentLayout("controlbar")) > 0) { 3456 3782 _settings.layout = _api.skin.getComponentLayout("controlbar"); … … 3558 3884 return false; 3559 3885 } 3560 if (_settings.position .toUpperCase()== jwplayer.html5.view.positions.OVER) {3886 if (_settings.position == jwplayer.html5.view.positions.OVER) { 3561 3887 return false; 3562 3888 } … … 4042 4368 }; 4043 4369 var elementcss = {}; 4044 if (_settings.position .toUpperCase()== jwplayer.html5.view.positions.OVER || _api.jwGetFullscreen()) {4370 if (_settings.position == jwplayer.html5.view.positions.OVER || _api.jwGetFullscreen()) { 4045 4371 controlbarcss.left = _settings.margin; 4046 4372 controlbarcss.width -= 2 * _settings.margin; … … 4791 5117 (function(jwplayer) { 4792 5118 jwplayer.html5.dock = function(api, config) { 4793 // TODO: Config parser needs to move dock to dock.align4794 5119 function _defaults() { 4795 5120 return { … … 4800 5125 var _config = jwplayer.utils.extend({}, _defaults(), config); 4801 5126 5127 if (_config.align == "FALSE") { 5128 return; 5129 } 4802 5130 var _buttons = {}; 4803 5131 var _buttonArray = []; … … 4818 5146 delete _buttons[id]; 4819 5147 } else if (handler) { 4820 var div;4821 5148 if (!_buttons[id]) { 5149 _buttons[id] = { 5150 } 5151 } 5152 _buttons[id].handler = handler; 5153 _buttons[id].outGraphic = outGraphic; 5154 _buttons[id].overGraphic = overGraphic; 5155 if (!_buttons[id].div) { 4822 5156 _buttonArray.push(id); 4823 div = document.createElement("div");4824 div.style.position = "relative";4825 _dock.appendChild( div);5157 _buttons[id].div = document.createElement("div"); 5158 _buttons[id].div.style.position = "relative"; 5159 _dock.appendChild(_buttons[id].div); 4826 5160 4827 div.appendChild(document.createElement("img")); 4828 div.childNodes[0].style.position = "absolute"; 4829 div.childNodes[0].style.left = 0; 4830 div.childNodes[0].style.top = 0; 4831 div.childNodes[0].style.zIndex = 10; 5161 _buttons[id].div.appendChild(document.createElement("img")); 5162 _buttons[id].div.childNodes[0].style.position = "absolute"; 5163 _buttons[id].div.childNodes[0].style.left = 0; 5164 _buttons[id].div.childNodes[0].style.top = 0; 5165 _buttons[id].div.childNodes[0].style.zIndex = 10; 5166 _buttons[id].div.childNodes[0].style.cursor = "pointer"; 4832 5167 4833 div.appendChild(document.createElement("img")); 4834 div.childNodes[1].style.display = "none"; 4835 div.childNodes[1].style.position = "absolute"; 4836 div.childNodes[1].style.left = 0; 4837 div.childNodes[1].style.top = 0; 4838 div.childNodes[1].style.zIndex = 9; 5168 _buttons[id].div.appendChild(document.createElement("img")); 5169 _buttons[id].div.childNodes[1].style.position = "absolute"; 5170 _buttons[id].div.childNodes[1].style.left = 0; 5171 _buttons[id].div.childNodes[1].style.top = 0; 5172 if (api.skin.getSkinElement("dock", "button")) { 5173 _buttons[id].div.childNodes[1].src = api.skin.getSkinElement("dock", "button").src; 5174 } 5175 _buttons[id].div.childNodes[1].style.zIndex = 9; 5176 _buttons[id].div.childNodes[1].style.cursor = "pointer"; 4839 5177 4840 div.appendChild(document.createElement("img")); 4841 div.childNodes[2].style.position = "absolute"; 4842 div.childNodes[2].style.left = 0; 4843 div.childNodes[2].style.top = 0; 5178 _buttons[id].div.onmouseover = function() { 5179 if (_buttons[id].overGraphic) { 5180 _buttons[id].div.childNodes[0].src = _buttons[id].overGraphic; 5181 } 5182 if (api.skin.getSkinElement("dock", "buttonOver")) { 5183 _buttons[id].div.childNodes[1].src = api.skin.getSkinElement("dock", "buttonOver").src; 5184 } 5185 } 5186 5187 _buttons[id].div.onmouseout = function() { 5188 if (_buttons[id].outGraphic) { 5189 _buttons[id].div.childNodes[0].src = _buttons[id].outGraphic; 5190 } 5191 if (api.skin.getSkinElement("dock", "button")) { 5192 _buttons[id].div.childNodes[1].src = api.skin.getSkinElement("dock", "button").src; 5193 } 5194 } 5195 // Make sure that this gets loaded and is cached so that rollovers are smooth 5196 if (_buttons[id].overGraphic) { 5197 _buttons[id].div.childNodes[0].src = _buttons[id].overGraphic; 5198 } 5199 if (_buttons[id].outGraphic) { 5200 _buttons[id].div.childNodes[0].src = _buttons[id].outGraphic; 5201 } 4844 5202 if (api.skin.getSkinElement("dock", "button")) { 4845 div.childNodes[2].src = api.skin.getSkinElement("dock", "button").src; 4846 } 4847 div.childNodes[2].style.zIndex = 8; 4848 4849 div.appendChild(document.createElement("img")); 4850 div.childNodes[3].style.display = "none"; 4851 div.childNodes[3].style.position = "absolute"; 4852 div.childNodes[3].style.left = 0; 4853 div.childNodes[3].style.top = 0; 4854 div.childNodes[3].style.display = "none"; 4855 div.childNodes[3].style.zIndex = 7; 4856 if (api.skin.getSkinElement("dock", "buttonOver")) { 4857 div.childNodes[3].src = api.skin.getSkinElement("dock", "buttonOver").src; 4858 } 4859 4860 div.onmouseover = function() { 4861 div.childNodes[0].style.display = "none"; 4862 div.childNodes[1].style.display = "block"; 4863 if (api.skin.getSkinElement("dock", "buttonOver")) { 4864 div.childNodes[2].style.display = "none"; 4865 div.childNodes[3].style.display = "block"; 4866 } 4867 } 4868 4869 div.onmouseout = function() { 4870 div.childNodes[0].style.display = "block"; 4871 div.childNodes[1].style.display = "none"; 4872 if (api.skin.getSkinElement("dock", "buttonOver")) { 4873 div.childNodes[2].style.display = "block"; 4874 div.childNodes[3].style.display = "none"; 4875 } 4876 } 4877 } 4878 if (!div) { 4879 div = _buttons[id].div; 4880 } 5203 _buttons[id].div.childNodes[1].src = api.skin.getSkinElement("dock", "button").src; 5204 } 5205 } 5206 4881 5207 if (handler) { 4882 div.onclick = function(evt) {5208 _buttons[id].div.onclick = function(evt) { 4883 5209 evt.preventDefault(); 4884 5210 jwplayer(api.id).callback(id); 4885 } 4886 } 4887 if (outGraphic) { 4888 div.childNodes[0].src = outGraphic; 4889 div.childNodes[0].style.display = "block"; 4890 } 4891 if (overGraphic) { 4892 div.childNodes[1].style.display = "none"; 4893 div.childNodes[1].src = overGraphic; 4894 } 4895 _buttons[id] = { 4896 handler: handler, 4897 outGraphic: outGraphic, 4898 overGraphic: overGraphic, 4899 div: div 5211 if (_buttons[id].overGraphic) { 5212 _buttons[id].div.childNodes[0].src = _buttons[id].overGraphic; 5213 } 5214 if (api.skin.getSkinElement("dock", "button")) { 5215 _buttons[id].div.childNodes[1].src = api.skin.getSkinElement("dock", "button").src; 5216 } 5217 } 4900 5218 } 4901 5219 } … … 4913 5231 var usedHeight = margin; 4914 5232 var direction = -1; 4915 if (_config.align == 'left') {5233 if (_config.align == jwplayer.html5.view.positions.LEFT) { 4916 5234 direction = 1; 4917 5235 xStart = margin; … … 4925 5243 _buttons[_buttonArray[i]].div.style.top = (usedHeight % height) + "px"; 4926 5244 _buttons[_buttonArray[i]].div.style.left = (xStart + (api.skin.getSkinElement("dock", "button").width + margin) * row * direction) + "px"; 4927 ;4928 5245 usedHeight += api.skin.getSkinElement("dock", "button").height + margin; 4929 5246 } … … 4940 5257 * 4941 5258 * @author zach 4942 * @version 5. 45259 * @version 5.5 4943 5260 */ 4944 5261 (function(jwplayer) { 4945 5262 jwplayer.html5.eventdispatcher = function(id, debug) { 4946 var _id = id; 4947 var _debug = debug; 4948 var _listeners; 4949 var _globallisteners; 4950 4951 /** Clears all event listeners **/ 4952 this.resetEventListeners = function() { 4953 _listeners = {}; 4954 _globallisteners = []; 4955 }; 4956 4957 this.resetEventListeners(); 4958 4959 /** Add an event listener for a specific type of event. **/ 4960 this.addEventListener = function(type, listener, count) { 4961 try { 4962 if (_listeners[type] === undefined) { 4963 _listeners[type] = []; 4964 } 4965 4966 if (typeof(listener) == "string") { 4967 eval("listener = " + listener); 4968 } 4969 _listeners[type].push({ 4970 listener: listener, 4971 count: count 4972 }); 4973 } catch (err) { 4974 jwplayer.utils.log("error", err); 4975 } 4976 return false; 4977 }; 4978 4979 4980 /** Remove an event listener for a specific type of event. **/ 4981 this.removeEventListener = function(type, listener) { 4982 try { 4983 for (var listenerIndex = 0; listenerIndex < _listeners[type].length; listenerIndex++) { 4984 if (_listeners[type][lisenterIndex].toString() == listener.toString()) { 4985 _listeners[type].slice(lisenterIndex, lisenterIndex + 1); 4986 break; 4987 } 4988 } 4989 } catch (err) { 4990 jwplayer.utils.log("error", err); 4991 } 4992 return false; 4993 }; 4994 4995 /** Add an event listener for all events. **/ 4996 this.addGlobalListener = function(listener, count) { 4997 try { 4998 if (typeof(listener) == "string") { 4999 eval("listener = " + listener); 5000 } 5001 _globallisteners.push({ 5002 listener: listener, 5003 count: count 5004 }); 5005 } catch (err) { 5006 jwplayer.utils.log("error", err); 5007 } 5008 return false; 5009 }; 5010 5011 /** Add an event listener for all events. **/ 5012 this.removeGlobalListener = function(listener) { 5013 try { 5014 for (var globalListenerIndex = 0; globalListenerIndex < _globallisteners.length; globalListenerIndex++) { 5015 if (_globallisteners[globalListenerIndex].toString() == listener.toString()) { 5016 _globallisteners.slice(globalListenerIndex, globalListenerIndex + 1); 5017 break; 5018 } 5019 } 5020 } catch (err) { 5021 jwplayer.utils.log("error", err); 5022 } 5023 return false; 5024 }; 5025 5263 var _eventDispatcher = new jwplayer.events.eventdispatcher(debug); 5264 jwplayer.utils.extend(this, _eventDispatcher); 5026 5265 5027 5266 /** Send an event **/ … … 5031 5270 } 5032 5271 jwplayer.utils.extend(data, { 5033 id: _id,5272 id: id, 5034 5273 version: jwplayer.version, 5035 5274 type: type 5036 5275 }); 5037 if (_debug) { 5038 jwplayer.utils.log(type, data); 5039 } 5040 if (typeof _listeners[type] != "undefined") { 5041 for (var listenerIndex = 0; listenerIndex < _listeners[type].length; listenerIndex++) { 5042 try { 5043 _listeners[type][listenerIndex].listener(data); 5044 } catch (err) { 5045 jwplayer.utils.log("There was an error while handling a listener", _listeners[type][listenerIndex].listener, err); 5046 } 5047 if (_listeners[type][listenerIndex].count === 1) { 5048 delete _listeners[type][listenerIndex]; 5049 } else if (_listeners[type][listenerIndex].count > 0) { 5050 _listeners[type][listenerIndex].count = _listeners[type][listenerIndex].count - 1; 5051 } 5052 } 5053 } 5054 for (var globalListenerIndex = 0; globalListenerIndex < _globallisteners.length; globalListenerIndex++) { 5055 try { 5056 _globallisteners[globalListenerIndex].listener(data); 5057 } catch (err) { 5058 jwplayer.utils.log("There was an error while handling a listener", _globallisteners[globalListenerIndex].listener, err); 5059 } 5060 if (_globallisteners[globalListenerIndex].count === 1) { 5061 delete _globallisteners[globalListenerIndex]; 5062 } else if (_globallisteners[globalListenerIndex].count > 0) { 5063 _globallisteners[globalListenerIndex].count = _globallisteners[globalListenerIndex].count - 1; 5064 } 5065 } 5276 _eventDispatcher.sendEvent(type, data); 5066 5277 }; 5067 5278 }; … … 5853 6064 _model.plugins = { 5854 6065 order: pluginorder, 5855 config: { 5856 controlbar: { 5857 position: jwplayer.html5.view.positions.BOTTOM 5858 } 5859 }, 6066 config: {}, 5860 6067 object: {} 5861 6068 }; … … 5871 6078 var pluginConfig = _model.config[pluginName] === undefined ? {} : _model.config[pluginName]; 5872 6079 _model.plugins.config[pluginName] = _model.plugins.config[pluginName] === undefined ? pluginConfig : jwplayer.utils.extend(_model.plugins.config[pluginName], pluginConfig); 5873 if ( _model.plugins.config[pluginName].position === undefined) {6080 if (typeof _model.plugins.config[pluginName].position == "undefined") { 5874 6081 _model.plugins.config[pluginName].position = jwplayer.html5.view.positions.OVER; 5875 } 6082 } else { 6083 _model.plugins.config[pluginName].position = _model.plugins.config[pluginName].position.toString().toUpperCase(); 6084 } 6085 } 6086 6087 // Fix the dock 6088 if (typeof _model.plugins.config.dock != "object") { 6089 var position = _model.plugins.config.dock.toString().toUpperCase(); 6090 _model.plugins.config.dock = { 6091 position: position 6092 } 6093 } 6094 if (typeof _model.plugins.config.dock.position != "undefined") { 6095 _model.plugins.config.dock.align = _model.plugins.config.dock.position; 6096 _model.plugins.config.dock.position = jwplayer.html5.view.positions.OVER; 5876 6097 } 5877 6098 … … 5964 6185 for (var plugin in _model.plugins.order) { 5965 6186 try { 5966 if (jwplayer.html5[_model.plugins.order[plugin]] !== undefined) { 5967 _model.plugins.object[_model.plugins.order[plugin]] = new jwplayer.html5[_model.plugins.order[plugin]](_api, _model.plugins.config[_model.plugins.order[plugin]]); 5968 } else if (window[_model.plugins.order[plugin]] !== undefined) { 5969 _model.plugins.object[_model.plugins.order[plugin]] = new window[_model.plugins.order[plugin]](_api, _model.plugins.config[_model.plugins.order[plugin]]); 6187 var pluginName = _model.plugins.order[plugin]; 6188 if (jwplayer.html5[pluginName] !== undefined) { 6189 _model.plugins.object[pluginName] = new jwplayer.html5[pluginName](_api, _model.plugins.config[pluginName]); 5970 6190 } else { 5971 6191 _model.plugins.order.splice(plugin, plugin + 1); 5972 6192 } 5973 6193 } catch (err) { 5974 jwplayer.utils.log("Could not setup " + _model.plugins.order[plugin]);6194 jwplayer.utils.log("Could not setup " + pluginName); 5975 6195 } 5976 6196 } … … 6387 6607 6388 6608 _api.jwDockSetButton = function(id, handler, outGraphic, overGraphic) { 6389 _model.plugins.object["dock"].setButton(id, handler, outGraphic, overGraphic); 6609 if (_model.plugins.object["dock"].setButton) { 6610 _model.plugins.object["dock"].setButton(id, handler, outGraphic, overGraphic); 6611 } 6390 6612 } 6391 6613 -
trunk/fl5/js/src/api/jwplayer.api.js
r1579 r1625 261 261 var newApi = jwplayer(newId); 262 262 newApi.config = options; 263 return (new jwplayer.embed(newApi)).embedPlayer();263 return new jwplayer.embed(newApi); 264 264 } 265 265 return this; -
trunk/fl5/js/src/embed/jwplayer.embed.config.js
r1579 r1625 42 42 jwplayer.embed.config = function(config, embedder) { 43 43 var parsedConfig = jwplayer.utils.extend({}, config); 44 45 /*46 * Special handler for playlists; has a component later for non-string playlists47 * This must be handled in two stages to allow things like playlist.position48 * to be handled49 */50 if (_isPlaylist(parsedConfig.playlist)) {51 parsedConfig.playlistfile = parsedConfig.playlist;52 delete parsedConfig.playlist;53 }54 44 55 45 for (var option in parsedConfig) { … … 104 94 } 105 95 106 // Special handler for playlists; This moves back non-string playlists107 if (typeof parsedConfig.playlistfile != "string") {108 parsedConfig.playlist = parsedConfig.playlistfile;109 delete parsedConfig.playlistfile;110 }111 112 96 // Special handler for the display icons setting 113 97 if (typeof parsedConfig.icons != "undefined"){ … … 124 108 } 125 109 126 if (parsedConfig. modes) {127 parsedConfig. players = parsedConfig.modes;128 delete parsedConfig. modes;110 if (parsedConfig.players) { 111 parsedConfig.modes = parsedConfig.players; 112 delete parsedConfig.players; 129 113 } 130 114 131 if (parsedConfig.flashplayer && !parsedConfig.players) { 132 embedder.players = _playerDefaults(); 133 embedder.players[0].src = parsedConfig.flashplayer; 115 var _modes; 116 if (parsedConfig.flashplayer && !parsedConfig.modes) { 117 _modes = _playerDefaults(); 118 _modes[0].src = parsedConfig.flashplayer; 134 119 delete parsedConfig.flashplayer; 135 } else if (parsedConfig. players) {136 if (typeof parsedConfig. players == "string") {137 embedder.players = _playerDefaults();138 embedder.players[0].src = parsedConfig.players;139 } else if (parsedConfig. players instanceof Array) {140 embedder.players = parsedConfig.players;141 } else if (typeof parsedConfig. players == "object" && parsedConfig.players.type) {142 embedder.players = [parsedConfig.players];120 } else if (parsedConfig.modes) { 121 if (typeof parsedConfig.modes == "string") { 122 _modes = _playerDefaults(); 123 _modes[0].src = parsedConfig.modes; 124 } else if (parsedConfig.modes instanceof Array) { 125 _modes = parsedConfig.modes; 126 } else if (typeof parsedConfig.modes == "object" && parsedConfig.modes.type) { 127 _modes = [parsedConfig.modes]; 143 128 } 144 delete parsedConfig. players;129 delete parsedConfig.modes; 145 130 } else { 146 embedder.players = _playerDefaults();131 _modes = _playerDefaults(); 147 132 } 133 parsedConfig.modes = _modes; 148 134 149 135 return parsedConfig; -
trunk/fl5/js/src/embed/jwplayer.embed.flash.js
r1579 r1625 156 156 delete params.levels; 157 157 delete params.playlist; 158 delete params.modes; 158 159 159 160 var wmode = "opaque"; -
trunk/fl5/js/src/embed/jwplayer.embed.js
r1579 r1625 15 15 } 16 16 }; 17 this.api = playerApi; 18 var mediaConfig = jwplayer.utils.mediaparser.parseMedia(this.api.container); 19 this.config = new jwplayer.embed.config(jwplayer.utils.extend(_defaults, mediaConfig, this.api.config), this); 20 this.pluginloader = new jwplayer.plugins.loadPlugins(this); 17 var mediaConfig = jwplayer.utils.mediaparser.parseMedia(playerApi.container); 18 var _config = new jwplayer.embed.config(jwplayer.utils.extend(_defaults, mediaConfig, playerApi.config), this); 19 var _pluginloader = jwplayer.plugins.loadPlugins(_config.plugins); 21 20 22 function _setupEvents( embedder) {23 for (var evt in e mbedder.events) {24 if (typeof embedder.api[evt] == "function") {25 ( embedder.api[evt]).call(embedder.api, embedder.events[evt]);21 function _setupEvents(api, events) { 22 for (var evt in events) { 23 if (typeof api[evt] == "function") { 24 (api[evt]).call(api, events[evt]); 26 25 } 27 26 } 28 27 } 29 28 30 this.embedPlayer = function() {31 if ( this.pluginloader.isComplete()) {32 for (var player = 0; player < this.players.length; player++) {33 if ( this.players[player].type && jwplayer.embed[this.players[player].type]) {34 var configClone = this.config;35 if ( this.players[player].config) {36 configClone = jwplayer.utils.extend(jwplayer.utils.clone( this.config), this.players[player].config);29 function _embedPlayer() { 30 if (_pluginloader.getStatus() == jwplayer.utils.loaderstatus.COMPLETE) { 31 for (var mode = 0; mode < _config.modes.length; mode++) { 32 if (_config.modes[mode].type && jwplayer.embed[_config.modes[mode].type]) { 33 var configClone = _config; 34 if (_config.modes[mode].config) { 35 configClone = jwplayer.utils.extend(jwplayer.utils.clone(_config), _config.modes[mode].config); 37 36 } 38 var embedder = new jwplayer.embed[ this.players[player].type](document.getElementById(this.api.id), this.players[player], configClone, this.pluginloader, this.api);37 var embedder = new jwplayer.embed[_config.modes[mode].type](document.getElementById(playerApi.id), _config.modes[mode], configClone, _pluginloader, playerApi); 39 38 if (embedder.supportsConfig()) { 40 39 embedder.embed(); 41 40 42 _setupEvents( this);41 _setupEvents(playerApi, _config.events); 43 42 44 return this.api;43 return playerApi; 45 44 } 46 45 } … … 49 48 new jwplayer.embed.logo(jwplayer.utils.extend({ 50 49 hide: true 51 }, this.config.components.logo), "none", this.api.id);50 }, _config.components.logo), "none", playerApi.id); 52 51 } 53 52 }; 54 53 55 return this; 54 _pluginloader.addEventListener(jwplayer.events.COMPLETE, _embedPlayer); 55 _pluginloader.load(); 56 57 return playerApi; 56 58 }; 57 59 -
trunk/fl5/js/src/html5/jwplayer.html5.api.js
r1549 r1625 90 90 91 91 _api.jwDockSetButton = function(id, handler, outGraphic, overGraphic) { 92 _model.plugins.object["dock"].setButton(id, handler, outGraphic, overGraphic); 92 if (_model.plugins.object["dock"].setButton) { 93 _model.plugins.object["dock"].setButton(id, handler, outGraphic, overGraphic); 94 } 93 95 } 94 96 -
trunk/fl5/js/src/html5/jwplayer.html5.controlbar.js
r1574 r1625 96 96 var _api = api; 97 97 var _settings = jwplayer.utils.extend({}, _defaults, _api.skin.getComponentSettings("controlbar"), config); 98 if (_settings.position == jwplayer.html5.view.positions.NONE 99 || typeof jwplayer.html5.view.positions[_settings.position] == "undefined"){ 100 return; 101 } 98 102 if (jwplayer.utils.mapLength(_api.skin.getComponentLayout("controlbar")) > 0) { 99 103 _settings.layout = _api.skin.getComponentLayout("controlbar"); … … 201 205 return false; 202 206 } 203 if (_settings.position .toUpperCase()== jwplayer.html5.view.positions.OVER) {207 if (_settings.position == jwplayer.html5.view.positions.OVER) { 204 208 return false; 205 209 } … … 685 689 }; 686 690 var elementcss = {}; 687 if (_settings.position .toUpperCase()== jwplayer.html5.view.positions.OVER || _api.jwGetFullscreen()) {691 if (_settings.position == jwplayer.html5.view.positions.OVER || _api.jwGetFullscreen()) { 688 692 controlbarcss.left = _settings.margin; 689 693 controlbarcss.width -= 2 * _settings.margin; -
trunk/fl5/js/src/html5/jwplayer.html5.dock.js
r1579 r1625 4 4 (function(jwplayer) { 5 5 jwplayer.html5.dock = function(api, config) { 6 // TODO: Config parser needs to move dock to dock.align7 6 function _defaults() { 8 7 return { … … 13 12 var _config = jwplayer.utils.extend({}, _defaults(), config); 14 13 14 if (_config.align == "FALSE") { 15 return; 16 } 15 17 var _buttons = {}; 16 18 var _buttonArray = []; … … 31 33 delete _buttons[id]; 32 34 } else if (handler) { 33 var div;34 35 if (!_buttons[id]) { 36 _buttons[id] = { 37 } 38 } 39 _buttons[id].handler = handler; 40 _buttons[id].outGraphic = outGraphic; 41 _buttons[id].overGraphic = overGraphic; 42 if (!_buttons[id].div) { 35 43 _buttonArray.push(id); 36 div = document.createElement("div");37 div.style.position = "relative";38 _dock.appendChild( div);44 _buttons[id].div = document.createElement("div"); 45 _buttons[id].div.style.position = "relative"; 46 _dock.appendChild(_buttons[id].div); 39 47 40 div.appendChild(document.createElement("img")); 41 div.childNodes[0].style.position = "absolute"; 42 div.childNodes[0].style.left = 0; 43 div.childNodes[0].style.top = 0; 44 div.childNodes[0].style.zIndex = 10; 48 _buttons[id].div.appendChild(document.createElement("img")); 49 _buttons[id].div.childNodes[0].style.position = "absolute"; 50 _buttons[id].div.childNodes[0].style.left = 0; 51 _buttons[id].div.childNodes[0].style.top = 0; 52 _buttons[id].div.childNodes[0].style.zIndex = 10; 53 _buttons[id].div.childNodes[0].style.cursor = "pointer"; 45 54 46 div.appendChild(document.createElement("img")); 47 div.childNodes[1].style.display = "none"; 48 div.childNodes[1].style.position = "absolute"; 49 div.childNodes[1].style.left = 0; 50 div.childNodes[1].style.top = 0; 51 div.childNodes[1].style.zIndex = 9; 55 _buttons[id].div.appendChild(document.createElement("img")); 56 _buttons[id].div.childNodes[1].style.position = "absolute"; 57 _buttons[id].div.childNodes[1].style.left = 0; 58 _buttons[id].div.childNodes[1].style.top = 0; 59 if (api.skin.getSkinElement("dock", "button")) { 60 _buttons[id].div.childNodes[1].src = api.skin.getSkinElement("dock", "button").src; 61 } 62 _buttons[id].div.childNodes[1].style.zIndex = 9; 63 _buttons[id].div.childNodes[1].style.cursor = "pointer"; 52 64 53 div.appendChild(document.createElement("img")); 54 div.childNodes[2].style.position = "absolute"; 55 div.childNodes[2].style.left = 0; 56 div.childNodes[2].style.top = 0; 57 if (api.skin.getSkinElement("dock", "button")) { 58 div.childNodes[2].src = api.skin.getSkinElement("dock", "button").src; 59 } 60 div.childNodes[2].style.zIndex = 8; 61 62 div.appendChild(document.createElement("img")); 63 div.childNodes[3].style.display = "none"; 64 div.childNodes[3].style.position = "absolute"; 65 div.childNodes[3].style.left = 0; 66 div.childNodes[3].style.top = 0; 67 div.childNodes[3].style.display = "none"; 68 div.childNodes[3].style.zIndex = 7; 69 if (api.skin.getSkinElement("dock", "buttonOver")) { 70 div.childNodes[3].src = api.skin.getSkinElement("dock", "buttonOver").src; 71 } 72 73 div.onmouseover = function() { 74 div.childNodes[0].style.display = "none"; 75 div.childNodes[1].style.display = "block"; 65 _buttons[id].div.onmouseover = function() { 66 if (_buttons[id].overGraphic) { 67 _buttons[id].div.childNodes[0].src = _buttons[id].overGraphic; 68 } 76 69 if (api.skin.getSkinElement("dock", "buttonOver")) { 77 div.childNodes[2].style.display = "none"; 78 div.childNodes[3].style.display = "block"; 70 _buttons[id].div.childNodes[1].src = api.skin.getSkinElement("dock", "buttonOver").src; 79 71 } 80 72 } 81 73 82 div.onmouseout = function() {83 div.childNodes[0].style.display = "block";84 div.childNodes[1].style.display = "none";85 if (api.skin.getSkinElement("dock", "buttonOver")) {86 div.childNodes[2].style.display = "block";87 div.childNodes[3].style.display = "none";74 _buttons[id].div.onmouseout = function() { 75 if (_buttons[id].outGraphic) { 76 _buttons[id].div.childNodes[0].src = _buttons[id].outGraphic; 77 } 78 if (api.skin.getSkinElement("dock", "button")) { 79 _buttons[id].div.childNodes[1].src = api.skin.getSkinElement("dock", "button").src; 88 80 } 89 81 } 82 // Make sure that this gets loaded and is cached so that rollovers are smooth 83 if (_buttons[id].overGraphic) { 84 _buttons[id].div.childNodes[0].src = _buttons[id].overGraphic; 85 } 86 if (_buttons[id].outGraphic) { 87 _buttons[id].div.childNodes[0].src = _buttons[id].outGraphic; 88 } 89 if (api.skin.getSkinElement("dock", "button")) { 90 _buttons[id].div.childNodes[1].src = api.skin.getSkinElement("dock", "button").src; 91 } 90 92 } 91 if (!div) { 92 div = _buttons[id].div; 93 } 93 94 94 if (handler) { 95 div.onclick = function(evt) {95 _buttons[id].div.onclick = function(evt) { 96 96 evt.preventDefault(); 97 97 jwplayer(api.id).callback(id); 98 if (_buttons[id].overGraphic) { 99 _buttons[id].div.childNodes[0].src = _buttons[id].overGraphic; 100 } 101 if (api.skin.getSkinElement("dock", "button")) { 102 _buttons[id].div.childNodes[1].src = api.skin.getSkinElement("dock", "button").src; 103 } 98 104 } 99 }100 if (outGraphic) {101 div.childNodes[0].src = outGraphic;102 div.childNodes[0].style.display = "block";103 }104 if (overGraphic) {105 div.childNodes[1].style.display = "none";106 div.childNodes[1].src = overGraphic;107 }108 _buttons[id] = {109 handler: handler,110 outGraphic: outGraphic,111 overGraphic: overGraphic,112 div: div113 105 } 114 106 } … … 126 118 var usedHeight = margin; 127 119 var direction = -1; 128 if (_config.align == 'left') {120 if (_config.align == jwplayer.html5.view.positions.LEFT) { 129 121 direction = 1; 130 122 xStart = margin; … … 138 130 _buttons[_buttonArray[i]].div.style.top = (usedHeight % height) + "px"; 139 131 _buttons[_buttonArray[i]].div.style.left = (xStart + (api.skin.getSkinElement("dock", "button").width + margin) * row * direction) + "px"; 140 ;141 132 usedHeight += api.skin.getSkinElement("dock", "button").height + margin; 142 133 } -
trunk/fl5/js/src/html5/jwplayer.html5.eventdispatcher.js
r1448 r1625 3 3 * 4 4 * @author zach 5 * @version 5. 45 * @version 5.5 6 6 */ 7 7 (function(jwplayer) { 8 8 jwplayer.html5.eventdispatcher = function(id, debug) { 9 var _id = id; 10 var _debug = debug; 11 var _listeners; 12 var _globallisteners; 13 14 /** Clears all event listeners **/ 15 this.resetEventListeners = function() { 16 _listeners = {}; 17 _globallisteners = []; 18 }; 19 20 this.resetEventListeners(); 21 22 /** Add an event listener for a specific type of event. **/ 23 this.addEventListener = function(type, listener, count) { 24 try { 25 if (_listeners[type] === undefined) { 26 _listeners[type] = []; 27 } 28 29 if (typeof(listener) == "string") { 30 eval("listener = " + listener); 31 } 32 _listeners[type].push({ 33 listener: listener, 34 count: count 35 }); 36 } catch (err) { 37 jwplayer.utils.log("error", err); 38 } 39 return false; 40 }; 41 42 43 /** Remove an event listener for a specific type of event. **/ 44 this.removeEventListener = function(type, listener) { 45 try { 46 for (var listenerIndex = 0; listenerIndex < _listeners[type].length; listenerIndex++) { 47 if (_listeners[type][lisenterIndex].toString() == listener.toString()) { 48 _listeners[type].slice(lisenterIndex, lisenterIndex + 1); 49 break; 50 } 51 } 52 } catch (err) { 53 jwplayer.utils.log("error", err); 54 } 55 return false; 56 }; 57 58 /** Add an event listener for all events. **/ 59 this.addGlobalListener = function(listener, count) { 60 try { 61 if (typeof(listener) == "string") { 62 eval("listener = " + listener); 63 } 64 _globallisteners.push({ 65 listener: listener, 66 count: count 67 }); 68 } catch (err) { 69 jwplayer.utils.log("error", err); 70 } 71 return false; 72 }; 73 74 /** Add an event listener for all events. **/ 75 this.removeGlobalListener = function(listener) { 76 try { 77 for (var globalListenerIndex = 0; globalListenerIndex < _globallisteners.length; globalListenerIndex++) { 78 if (_globallisteners[globalListenerIndex].toString() == listener.toString()) { 79 _globallisteners.slice(globalListenerIndex, globalListenerIndex + 1); 80 break; 81 } 82 } 83 } catch (err) { 84 jwplayer.utils.log("error", err); 85 } 86 return false; 87 }; 88 9 var _eventDispatcher = new jwplayer.events.eventdispatcher(debug); 10 jwplayer.utils.extend(this, _eventDispatcher); 89 11 90 12 /** Send an event **/ … … 94 16 } 95 17 jwplayer.utils.extend(data, { 96 id: _id,18 id: id, 97 19 version: jwplayer.version, 98 20 type: type 99 21 }); 100 if (_debug) { 101 jwplayer.utils.log(type, data); 102 } 103 if (typeof _listeners[type] != "undefined") { 104 for (var listenerIndex = 0; listenerIndex < _listeners[type].length; listenerIndex++) { 105 try { 106 _listeners[type][listenerIndex].listener(data); 107 } catch (err) { 108 jwplayer.utils.log("There was an error while handling a listener", _listeners[type][listenerIndex].listener, err); 109 } 110 if (_listeners[type][listenerIndex].count === 1) { 111 delete _listeners[type][listenerIndex]; 112 } else if (_listeners[type][listenerIndex].count > 0) { 113 _listeners[type][listenerIndex].count = _listeners[type][listenerIndex].count - 1; 114 } 115 } 116 } 117 for (var globalListenerIndex = 0; globalListenerIndex < _globallisteners.length; globalListenerIndex++) { 118 try { 119 _globallisteners[globalListenerIndex].listener(data); 120 } catch (err) { 121 jwplayer.utils.log("There was an error while handling a listener", _globallisteners[globalListenerIndex].listener, err); 122 } 123 if (_globallisteners[globalListenerIndex].count === 1) { 124 delete _globallisteners[globalListenerIndex]; 125 } else if (_globallisteners[globalListenerIndex].count > 0) { 126 _globallisteners[globalListenerIndex].count = _globallisteners[globalListenerIndex].count - 1; 127 } 128 } 22 _eventDispatcher.sendEvent(type, data); 129 23 }; 130 24 }; -
trunk/fl5/js/src/html5/jwplayer.html5.model.js
r1579 r1625 89 89 _model.plugins = { 90 90 order: pluginorder, 91 config: { 92 controlbar: { 93 position: jwplayer.html5.view.positions.BOTTOM 94 } 95 }, 91 config: {}, 96 92 object: {} 97 93 }; … … 107 103 var pluginConfig = _model.config[pluginName] === undefined ? {} : _model.config[pluginName]; 108 104 _model.plugins.config[pluginName] = _model.plugins.config[pluginName] === undefined ? pluginConfig : jwplayer.utils.extend(_model.plugins.config[pluginName], pluginConfig); 109 if ( _model.plugins.config[pluginName].position === undefined) {105 if (typeof _model.plugins.config[pluginName].position == "undefined") { 110 106 _model.plugins.config[pluginName].position = jwplayer.html5.view.positions.OVER; 111 } 107 } else { 108 _model.plugins.config[pluginName].position = _model.plugins.config[pluginName].position.toString().toUpperCase(); 109 } 110 } 111 112 // Fix the dock 113 if (typeof _model.plugins.config.dock != "object") { 114 var position = _model.plugins.config.dock.toString().toUpperCase(); 115 _model.plugins.config.dock = { 116 position: position 117 } 118 } 119 if (typeof _model.plugins.config.dock.position != "undefined") { 120 _model.plugins.config.dock.align = _model.plugins.config.dock.position; 121 _model.plugins.config.dock.position = jwplayer.html5.view.positions.OVER; 112 122 } 113 123 … … 200 210 for (var plugin in _model.plugins.order) { 201 211 try { 202 if (jwplayer.html5[_model.plugins.order[plugin]] !== undefined) { 203 _model.plugins.object[_model.plugins.order[plugin]] = new jwplayer.html5[_model.plugins.order[plugin]](_api, _model.plugins.config[_model.plugins.order[plugin]]); 204 } else if (window[_model.plugins.order[plugin]] !== undefined) { 205 _model.plugins.object[_model.plugins.order[plugin]] = new window[_model.plugins.order[plugin]](_api, _model.plugins.config[_model.plugins.order[plugin]]); 212 var pluginName = _model.plugins.order[plugin]; 213 if (jwplayer.html5[pluginName] !== undefined) { 214 _model.plugins.object[pluginName] = new jwplayer.html5[pluginName](_api, _model.plugins.config[pluginName]); 206 215 } else { 207 216 _model.plugins.order.splice(plugin, plugin + 1); 208 217 } 209 218 } catch (err) { 210 jwplayer.utils.log("Could not setup " + _model.plugins.order[plugin]);219 jwplayer.utils.log("Could not setup " + pluginName); 211 220 } 212 221 } -
trunk/fl5/js/src/html5/jwplayer.html5.view.js
r1553 r1625 199 199 var pluginName = plugins[pluginIndex]; 200 200 if (_model.plugins.object[pluginName].getDisplayElement !== undefined) { 201 if (_model.plugins.config[pluginName].currentPosition .toUpperCase() !== jwplayer.html5.view.positions.NONE) {201 if (_model.plugins.config[pluginName].currentPosition != jwplayer.html5.view.positions.NONE) { 202 202 var style = componentResizer(pluginName, _zIndex--); 203 203 if (!style) { … … 223 223 function _normalscreenComponentResizer(pluginName, zIndex) { 224 224 if (_model.plugins.object[pluginName].getDisplayElement !== undefined) { 225 if (_ hasPosition(_model.plugins.config[pluginName].position)) {225 if (_model.plugins.config[pluginName].position && _hasPosition(_model.plugins.config[pluginName].position)) { 226 226 if (_model.plugins.object[pluginName].getDisplayElement().parentNode === null) { 227 227 _wrapper.appendChild(_model.plugins.object[pluginName].getDisplayElement()); … … 291 291 top: null 292 292 }; 293 // Not a code error - toLowerCase is needed for the CSS position 293 294 var position = _model.plugins.config[pluginName].currentPosition.toLowerCase(); 294 295 switch (position.toUpperCase()) { … … 390 391 } 391 392 393 //TODO: Enum 392 394 jwplayer.html5.view.positions = { 393 395 TOP: "TOP", -
trunk/fl5/js/src/jwplayer.js
r1618 r1625 11 11 var $jw = jwplayer; 12 12 13 jwplayer.version = '5.5.16 18';13 jwplayer.version = '5.5.1625'; 14 14 jwplayer.vid = document.createElement("video"); 15 15 jwplayer.audio = document.createElement("audio"); -
trunk/fl5/js/src/plugins/jwplayer.plugins.js
r1537 r1625 1 1 /** 2 * Plugin class2 * Plugin package definition 3 3 * @author zach 4 * @version 5.5 a4 * @version 5.5 5 5 */ 6 6 (function(jwplayer) { 7 8 /** 9 * Plugins attempted to load 10 */ 11 var _loadedplugins = {}; 12 13 /** 14 * Plugins that failed to load 15 */ 16 17 var _failedplugins = {}; 18 19 /** 20 * Plugins that have successfully loaded 21 */ 22 var _registeredplugins = {}; 23 24 /** 25 * Players that are waiting for plugins to load 26 */ 27 var _players = {}; 28 29 /** 30 * The current plugins repository 31 */ 32 var _pluginRepository = "http://plugins.longtailvideo.com/"; 7 var _plugins = {}; 33 8 34 9 jwplayer.plugins = function() { 35 10 } 36 11 37 /** 38 * Loads plugins 39 * 40 * @param {Object} embedder 41 */ 42 jwplayer.plugins.loadPlugins = function(embedder) { 43 _players[embedder.api.id] = { 44 api: embedder.api, 45 embedder: embedder, 46 loader: new jwplayer.plugins.loader(embedder.config.plugins, _loadedplugins, _failedplugins, _registeredplugins, _pluginRepository, function() { 47 _checkComplete(embedder.api.id) 48 }) 49 }; 50 return _players[embedder.api.id].loader; 12 jwplayer.plugins.loadPlugins = function(config) { 13 return new jwplayer.plugins.pluginloader(new jwplayer.plugins.model(_plugins), config); 51 14 } 52 15 53 /** 54 * Checks to see if a player has completed it's setup 55 * 56 * @param {String} id 57 */ 58 function _checkComplete(id) { 59 if (_players[id] && _players[id].loader.isComplete()) { 60 _players[id].embedder.embedPlayer(); 16 jwplayer.plugins.registerPlugin = function(id, arg1, arg2) { 17 if (_plugins[id]) { 18 _plugins[id].registerPlugin(id, arg1, arg2); 61 19 } 62 20 } 63 64 /**65 * Mark a plugin load as having failed66 *67 * @param {Object} id68 */69 jwplayer.plugins.pluginFailed = function(id){70 _failedplugins[id] = true;71 for (var player in _players){72 if (typeof player == "string") {73 _checkComplete(player);74 }75 }76 };77 78 /**79 * Registers a plugin once the load is complete.80 *81 * @param {Object} id82 * @param {Object} template83 */84 jwplayer.plugins.registerPlugin = function(id, arg1, arg2) {85 if (!_registeredplugins[id]) {86 _registeredplugins[id] = {87 flash: {},88 js: {}89 };90 if (arg1 && arg2) {91 _registeredplugins[id].flash.src = arg2;92 _registeredplugins[id].js.template = arg1;93 } else if (typeof arg1 == "string") {94 _registeredplugins[id].flash.src = arg1;95 } else if (typeof arg1 == "function") {96 _registeredplugins[id].js.template = arg1;97 } else if (!arg1 && !arg2) {98 _registeredplugins[id].flash.src = id;99 }100 }101 for (var player in _players){102 if (typeof player == "string") {103 _checkComplete(player);104 }105 }106 };107 21 })(jwplayer); -
trunk/fl5/js/src/utils/jwplayer.utils.js
r1602 r1625 307 307 var queryparams = path.indexOf("?"); 308 308 return (protocol > 0 && (queryparams < 0 || (queryparams > protocol))); 309 } 310 311 /** 312 * Types of plugin paths 313 */ 314 jwplayer.utils.pluginPathType = { 315 //TODO: enum 316 ABSOLUTE: "ABSOLUTE", 317 RELATIVE: "RELATIVE", 318 CDN: "CDN" 309 319 } 310 320 … … 323 333 * getPathType('./hd-1.4.swf') 324 334 */ 325 jwplayer.utils.getP athType = function(path){335 jwplayer.utils.getPluginPathType = function(path){ 326 336 if (typeof path != "string") { 327 337 return; … … 330 340 var protocol = path.indexOf("://"); 331 341 if (protocol > 0) { 332 return "absolute";342 return jwplayer.utils.pluginPathType.ABSOLUTE; 333 343 } 334 344 var folder = path.indexOf("/"); 335 345 var extension = jwplayer.utils.extension(path); 336 346 if (protocol < 0 && folder < 0 && (!extension || !isNaN(extension))) { 337 return "cdn";338 } 339 return "relative";347 return jwplayer.utils.pluginPathType.CDN; 348 } 349 return jwplayer.utils.pluginPathType.RELATIVE; 340 350 }; 341 351 … … 436 446 jwplayer.utils.transform(domelement, ""); 437 447 var style = {}; 438 switch (stretching.to LowerCase()) {448 switch (stretching.toUpperCase()) { 439 449 case jwplayer.utils.stretching.NONE: 440 450 // Maintain original dimensions … … 478 488 }; 479 489 490 //TODO: enum 480 491 jwplayer.utils.stretching = { 481 "NONE": "none",482 "FILL": "fill",483 "UNIFORM": "uniform",484 "EXACTFIT": "exactfit"492 NONE: "NONE", 493 FILL: "FILL", 494 UNIFORM: "UNIFORM", 495 EXACTFIT: "EXACTFIT" 485 496 }; 486 497 })(jwplayer); -
trunk/fl5/js/test/examples/components.html
r1550 r1625 29 29 var players = [["flash", "html5", "download"], ["flash", "download"], ["html5", "download"]]; 30 30 var tests = [{ 31 name: "JSON Playlist + playlist.position", 32 config: { 33 "playlist.position": "bottom", 31 name: "playlist, controlbar, dock", 32 config: { 33 playlistfile: "../files/bitrates.xml", 34 levels: [{ 35 file: "http://content.bitsontherun.com/videos/gSzpo2wh-486405.mp4" 36 }, { 37 file: "http://content.bitsontherun.com/videos/gSzpo2wh-604476.ogv" 38 }], 39 image: "http://content.bitsontherun.com/thumbs/gSzpo2wh-480.jpg", 40 icons: false, 41 plugins: { 42 './plugins/dockplugin.js': {} 43 }, 44 playlist: "bottom", 34 45 playlistsize: 100, 35 icons: false,36 playlist: [{37 levels: [{38 file: "http://content.bitsontherun.com/videos/gSzpo2wh-486405.mp4"39 }, {40 file: "http://content.bitsontherun.com/videos/gSzpo2wh-604476.ogv"41 }],42 image: "http://content.bitsontherun.com/thumbs/gSzpo2wh-480.jpg"43 }],44 46 controlbar: "top", 45 47 dock: "left" 46 48 } 47 49 }, { 48 name: "playlist, controlbar, dock", 49 config: { 50 playlist: "bottom", 50 name: "playlist.position, controlbar.position, dock.position", 51 config: { 52 playlistfile: "../files/bitrates.xml", 53 levels: [{ 54 file: "http://content.bitsontherun.com/videos/gSzpo2wh-486405.mp4" 55 }, { 56 file: "http://content.bitsontherun.com/videos/gSzpo2wh-604476.ogv" 57 }], 58 image: "http://content.bitsontherun.com/thumbs/gSzpo2wh-480.jpg", 59 icons: false, 60 plugins: { 61 './plugins/dockplugin.js': {} 62 }, 63 "playlist.position": "bottom", 51 64 playlistsize: 100, 52 icons: false,53 levels: [{54 file: "http://content.bitsontherun.com/videos/gSzpo2wh-486405.mp4"55 }, {56 file: "http://content.bitsontherun.com/videos/gSzpo2wh-604476.ogv"57 }],58 image: "http://content.bitsontherun.com/thumbs/gSzpo2wh-480.jpg",59 controlbar: "top",60 dock: "left"61 }62 }, {63 name: "playlist.position, controlbar.position, dock.position",64 config: {65 "playlist.position": "bottom",66 playlistsize: 100,67 icons: false,68 levels: [{69 file: "http://content.bitsontherun.com/videos/gSzpo2wh-486405.mp4"70 }, {71 file: "http://content.bitsontherun.com/videos/gSzpo2wh-604476.ogv"72 }],73 image: "http://content.bitsontherun.com/thumbs/gSzpo2wh-480.jpg",74 65 "controlbar.position": "top", 75 66 "dock.position": "left" … … 78 69 name: "playlist, controlbar, and dock objects", 79 70 config: { 80 playlist: { 71 playlistfile: "../files/bitrates.xml", 72 levels: [{ 73 file: "http://content.bitsontherun.com/videos/gSzpo2wh-486405.mp4" 74 }, { 75 file: "http://content.bitsontherun.com/videos/gSzpo2wh-604476.ogv" 76 }], 77 image: "http://content.bitsontherun.com/thumbs/gSzpo2wh-480.jpg", 78 icons: false, 79 plugins: { 80 './plugins/dockplugin.js': {} 81 }, 82 playlist: { 81 83 position: "bottom" 82 84 }, 83 85 playlistsize: 100, 84 icons: false, 85 levels: [{ 86 file: "http://content.bitsontherun.com/videos/gSzpo2wh-486405.mp4" 87 }, { 88 file: "http://content.bitsontherun.com/videos/gSzpo2wh-604476.ogv" 89 }], 90 image: "http://content.bitsontherun.com/thumbs/gSzpo2wh-480.jpg", 91 controlbar: { 86 controlbar: { 92 87 position: "top" 93 88 }, … … 95 90 position: "left" 96 91 } 92 } 93 }, { 94 name: "components block", 95 config: { 96 playlistfile: "../files/bitrates.xml", 97 levels: [{ 98 file: "http://content.bitsontherun.com/videos/gSzpo2wh-486405.mp4" 99 }, { 100 file: "http://content.bitsontherun.com/videos/gSzpo2wh-604476.ogv" 101 }], 102 image: "http://content.bitsontherun.com/thumbs/gSzpo2wh-480.jpg", 103 icons: false, 104 plugins: { 105 './plugins/dockplugin.js': {} 106 }, 107 components: { 108 playlist: { 109 position: "bottom" 110 }, 111 controlbar: { 112 position: "top" 113 }, 114 dock: { 115 position: "left" 116 } 117 }, 118 playlistsize: 100 119 } 120 }, { 121 name: "invalid values", 122 config: { 123 playlistfile: "../files/bitrates.xml", 124 levels: [{ 125 file: "http://content.bitsontherun.com/videos/gSzpo2wh-486405.mp4" 126 }, { 127 file: "http://content.bitsontherun.com/videos/gSzpo2wh-604476.ogv" 128 }], 129 image: "http://content.bitsontherun.com/thumbs/gSzpo2wh-480.jpg", 130 icons: false, 131 plugins: { 132 './plugins/dockplugin.js': {} 133 }, 134 components: { 135 playlist: { 136 position: true 137 }, 138 controlbar: { 139 position: true 140 }, 141 dock: { 142 position: true 143 } 144 }, 145 playlistsize: 100 146 } 147 }, { 148 name: "none", 149 config: { 150 playlistfile: "../files/bitrates.xml", 151 levels: [{ 152 file: "http://content.bitsontherun.com/videos/gSzpo2wh-486405.mp4" 153 }, { 154 file: "http://content.bitsontherun.com/videos/gSzpo2wh-604476.ogv" 155 }], 156 image: "http://content.bitsontherun.com/thumbs/gSzpo2wh-480.jpg", 157 icons: false, 158 plugins: { 159 './plugins/dockplugin.js': {} 160 }, 161 components: { 162 playlist: { 163 position: "none" 164 }, 165 controlbar: { 166 position: "none" 167 }, 168 dock: { 169 position: "none" 170 } 171 }, 172 playlistsize: 100 97 173 } 98 174 }]; … … 125 201 players: settings.players(window.location.href, players[player]) 126 202 }, tests[test].config); 203 if (players[player][0] == "html5") { 204 delete config.playlistfile; 205 } 127 206 var setup = jwplayer(playerName).setup(config); 128 207 } -
trunk/fl5/js/test/examples/docksetbutton.html
r1579 r1625 21 21 <script type="text/javascript"> 22 22 var config = { 23 file: 'http://content.bitsontherun.com/videos/nPripu9l-327.mp4', 23 levels: [{ 24 file: "http://content.bitsontherun.com/videos/gSzpo2wh-486405.mp4" 25 }, { 26 file: "http://content.bitsontherun.com/videos/gSzpo2wh-604476.ogv" 27 }], 24 28 height: 270, 25 29 image: 'http://content.bitsontherun.com/thumbs/nPripu9l-480.jpg', -
trunk/fl5/js/test/examples/index.html
r1581 r1625 78 78 "Components": { 79 79 "Controlbar": "controlbar.html", 80 "Logo": "logo.html" 80 "Logo": "logo.html", 81 "Dock": "dock.html" 81 82 }, 82 83 "Plugins": { … … 97 98 }, 98 99 "Bad Path": { 99 "JavaScript": "plugins.html?"+escape('var config = {title:"Bad Path - JavaScript", plugins:{"plugins/textplugin .js":{text:"Plugin successfully loaded!"}, "plugins/textplugin1.js":{text:"Plugin successfully loaded!"}}}'),100 "JavaScript": "plugins.html?"+escape('var config = {title:"Bad Path - JavaScript", plugins:{"plugins/textplugin1.js":{text:"Plugin successfully loaded!"}}}'), 100 101 "Flash":"plugins.html?"+escape('var config = {title:"Bad Path - Flash", plugins:{"http://developer.longtailvideo.com/player/trunk/fl5/js/test/examples/plugins/hd1.swf":{"file":"http://content.bitsontherun.com/videos/gSzpo2wh-486405.mp4"}}}') 101 102 }, -
trunk/fl5/jwplayer.min.js
r1618 r1625 1 var jwplayer=function(a){if(jwplayer.api){return jwplayer.api.selectPlayer(a)}};var $jw=jwplayer;jwplayer.version="5.5.16 18";jwplayer.vid=document.createElement("video");jwplayer.audio=document.createElement("audio");jwplayer.source=document.createElement("source");(function(b){b.utils=function(){};b.utils.typeOf=function(d){var c=typeof d;if(c==="object"){if(d){if(d instanceof Array){c="array"}}else{c="null"}}return c};b.utils.extend=function(){var c=b.utils.extend["arguments"];if(c.length>1){for(var e=1;e<c.length;e++){for(var d in c[e]){c[0][d]=c[e][d]}}return c[0]}return null};b.utils.clone=function(f){var c;var d=b.utils.clone["arguments"];if(d.length==1){switch(b.utils.typeOf(d[0])){case"object":c={};for(var e in d[0]){c[e]=b.utils.clone(d[0][e])}break;case"array":c=[];for(var e in d[0]){c[e]=b.utils.clone(d[0][e])}break;default:return d[0];break}}return c};b.utils.extension=function(c){c=c.substring(c.lastIndexOf("/")+1,c.length);c=c.split("?")[0];if(c.lastIndexOf(".")>-1){return c.substr(c.lastIndexOf(".")+1,c.length).toLowerCase()}return};b.utils.html=function(c,d){c.innerHTML=d};b.utils.wrap=function(c,d){c.parentNode.replaceChild(d,c);d.appendChild(c)};b.utils.ajax=function(f,e,c){var d;if(window.XMLHttpRequest){d=new XMLHttpRequest()}else{d=new ActiveXObject("Microsoft.XMLHTTP")}d.onreadystatechange=function(){if(d.readyState===4){if(d.status===200){if(e){e(d)}}else{if(c){c(f)}}}};d.open("GET",f,true);d.send(null);return d};b.utils.load=function(d,e,c){d.onreadystatechange=function(){if(d.readyState===4){if(d.status===200){if(e){e()}}else{if(c){c()}}}}};b.utils.find=function(d,c){return d.getElementsByTagName(c)};b.utils.append=function(c,d){c.appendChild(d)};b.utils.isIE=function(){return((!+"\v1")||(typeof window.ActiveXObject!="undefined"))};b.utils.isLegacyAndroid=function(){var c=navigator.userAgent.toLowerCase();return(c.match(/android 2.[012]/i)!==null)};b.utils.isIOS=function(){var c=navigator.userAgent.toLowerCase();return(c.match(/iP(hone|ad)/i)!==null)};b.utils.getFirstPlaylistItemFromConfig=function(c){var d={};var e;if(c.playlist&&c.playlist.length){e=c.playlist[0]}else{e=c}d.file=e.file;d.levels=e.levels;d.streamer=e.streamer;d.playlistfile=e.playlistfile;if(d.file&&d.file.toLowerCase().indexOf("youtube.com")>-1){d.provider="youtube"}if(d.streamer&&d.streamer.toLowerCase().indexOf("rtmp://")==0){d.provider="rtmp"}if(e.type){d.provider=e.type.toLowerCase()}else{if(e.provider){d.provider=e.provider.toLowerCase()}}return d};b.utils.getOuterHTML=function(d){if(d.outerHTML){return d.outerHTML}else{var e=d.parentNode;var c=document.createElement(e.tagName);var g=document.createElement(d.tagName);e.replaceChild(g,d);c.appendChild(d);var f=c.innerHTML;e.replaceChild(d,g);return f}};b.utils.setOuterHTML=function(f,e){if(f.outerHTML){f.outerHTML=e}else{var g=document.createElement("div");g.innerHTML=e;var c=document.createRange();c.selectNodeContents(g);var d=c.extractContents();f.parentNode.insertBefore(d,f);f.parentNode.removeChild(f)}};b.utils.hasFlash=function(){return(typeof navigator.plugins!="undefined"&&typeof navigator.plugins["Shockwave Flash"]!="undefined")||(typeof window.ActiveXObject!="undefined")};b.utils.getPluginName=function(c){if(c.lastIndexOf("/")>=0){c=c.substring(c.lastIndexOf("/")+1,c.length)}if(c.lastIndexOf("-")>=0){c=c.substring(0,c.lastIndexOf("-"))}if(c.lastIndexOf(".swf")>=0){c=c.substring(0,c.lastIndexOf(".swf"))}if(c.lastIndexOf(".js")>=0){c=c.substring(0,c.lastIndexOf(".js"))}return c};b.utils.getAbsolutePath=function(j,h){if(h===undefined){h=document.location.href}if(j===undefined){return undefined}if(a(j)){return j}var k=h.substring(0,h.indexOf("://")+3);var g=h.substring(k.length,h.indexOf("/",k.length+1));var d;if(j.indexOf("/")===0){d=j.split("/")}else{var e=h.split("?")[0];e=e.substring(k.length+g.length+1,e.lastIndexOf("/"));d=e.split("/").concat(j.split("/"))}var c=[];for(var f=0;f<d.length;f++){if(!d[f]||d[f]===undefined||d[f]=="."){continue}else{if(d[f]==".."){c.pop()}else{c.push(d[f])}}}return k+g+"/"+c.join("/")};function a(d){if(d===null){return}var e=d.indexOf("://");var c=d.indexOf("?");return(e>0&&(c<0||(c>e)))}b.utils.getPathType=function(d){if(typeof d!="string"){return}d=d.split("?")[0];var e=d.indexOf("://");if(e>0){return"absolute"}var c=d.indexOf("/");var f=b.utils.extension(d);if(e<0&&c<0&&(!f||!isNaN(f))){return"cdn"}return"relative"};b.utils.mapEmpty=function(c){for(var d in c){return false}return true};b.utils.mapLength=function(d){var c=0;for(var e in d){c++}return c};b.utils.log=function(d,c){if(typeof console!="undefined"&&typeof console.log!="undefined"){if(c){console.log(d,c)}else{console.log(d)}}};b.utils.css=function(d,g,c){if(d!==undefined){for(var e in g){try{if(typeof g[e]==="undefined"){continue}else{if(typeof g[e]=="number"&&!(e=="zIndex"||e=="opacity")){if(isNaN(g[e])){continue}if(e.match(/color/i)){g[e]="#"+b.utils.strings.pad(g[e].toString(16),6)}else{g[e]=Math.ceil(g[e])+"px"}}}d.style[e]=g[e]}catch(f){}}}};b.utils.isYouTube=function(c){return c.indexOf("youtube.com")>-1};b.utils.getYouTubeId=function(c){c.indexOf("youtube.com">0)};b.utils.transform=function(c,d){c.style.webkitTransform=d;c.style.MozTransform=d;c.style.OTransform=d};b.utils.stretch=function(h,m,l,f,k,g){if(typeof l=="undefined"||typeof f=="undefined"||typeof k=="undefined"||typeof g=="undefined"){return}var d=l/k;var e=f/g;var j=0;var i=0;m.style.overflow="hidden";b.utils.transform(m,"");var c={};switch(h.toLowerCase()){case b.utils.stretching.NONE:c.width=k;c.height=g;break;case b.utils.stretching.UNIFORM:if(d>e){c.width=k*e;c.height=g*e}else{c.width=k*d;c.height=g*d}break;case b.utils.stretching.FILL:if(d>e){c.width=k*d;c.height=g*d}else{c.width=k*e;c.height=g*e}break;case b.utils.stretching.EXACTFIT:b.utils.transform(m,["scale(",d,",",e,")"," translate(0px,0px)"].join(""));c.width=k;c.height=g;break;default:break}c.top=(f-c.height)/2;c.left=(l-c.width)/2;b.utils.css(m,c)};b.utils.stretching={NONE:"none",FILL:"fill",UNIFORM:"uniform",EXACTFIT:"exactfit"}})(jwplayer);(function(a){var b={};a.utils.animations=function(){};a.utils.animations.transform=function(c,d){c.style.webkitTransform=d;c.style.MozTransform=d;c.style.OTransform=d};a.utils.animations.transformOrigin=function(c,d){c.style.webkitTransformOrigin=d;c.style.MozTransformOrigin=d;c.style.OTransformOrigin=d};a.utils.animations.rotate=function(c,d){a.utils.animations.transform(c,["rotate(",d,"deg)"].join(""))};a.utils.cancelAnimation=function(c){delete b[c.id]};a.utils.fadeTo=function(l,f,e,i,h,d){if(b[l.id]!=d&&d!==undefined){return}var c=new Date().getTime();if(d>c){setTimeout(function(){a.utils.fadeTo(l,f,e,i,0,d)},d-c)}l.style.display="block";if(i===undefined){i=l.style.opacity===""?1:l.style.opacity}if(l.style.opacity==f&&l.style.opacity!==""&&d!==undefined){if(f===0){l.style.display="none"}return}if(d===undefined){d=c;b[l.id]=d}if(h===undefined){h=0}var j=(c-d)/(e*1000);j=j>1?1:j;var k=f-i;var g=i+(j*k);if(g>1){g=1}else{if(g<0){g=0}}l.style.opacity=g;if(h>0){b[l.id]=d+h*1000;a.utils.fadeTo(l,f,e,i,0,b[l.id]);return}setTimeout(function(){a.utils.fadeTo(l,f,e,i,0,d)},10)}})(jwplayer);(function(a){a.utils.arrays=function(){};a.utils.arrays.indexOf=function(c,d){for(var b=0;b<c.length;b++){if(c[b]==d){return b}}return -1};a.utils.arrays.remove=function(c,d){var b=a.utils.arrays.indexOf(c,d);if(b>-1){c.splice(b,1)}}})(jwplayer);(function(a){a.utils.extensionmap={"3gp":{html5:"video/3gpp",flash:"video"},"3gpp":{html5:"video/3gpp"},"3g2":{html5:"video/3gpp2",flash:"video"},"3gpp2":{html5:"video/3gpp2"},flv:{flash:"video"},f4a:{html5:"audio/mp4"},f4b:{html5:"audio/mp4",flash:"video"},f4p:{html5:"video/mp4",flash:"video"},f4v:{html5:"video/mp4",flash:"video"},mov:{html5:"video/quicktime",flash:"video"},m4a:{html5:"audio/mp4",flash:"video"},m4b:{html5:"audio/mp4"},m4p:{html5:"audio/mp4"},m4v:{html5:"video/mp4",flash:"video"},mkv:{html5:"video/x-matroska"},mp4:{html5:"video/mp4",flash:"video"},rbs:{flash:"sound"},sdp:{html5:"application/sdp",flash:"video"},vp6:{html5:"video/x-vp6"},aac:{html5:"audio/aac",flash:"video"},mp3:{flash:"sound"},ogg:{html5:"audio/ogg"},ogv:{html5:"video/ogg"},webm:{html5:"video/webm"},m3u8:{html5:"audio/x-mpegurl"},gif:{flash:"image"},jpeg:{flash:"image"},jpg:{flash:"image"},swf:{flash:"image"},png:{flash:"image"}}})(jwplayer);(function(e){e.utils.mediaparser=function(){};var g={element:{width:"width",height:"height",id:"id","class":"className",name:"name"},media:{src:"file",preload:"preload",autoplay:"autostart",loop:"repeat",controls:"controls"},source:{src:"file",type:"type",media:"media","data-jw-width":"width","data-jw-bitrate":"bitrate"},video:{poster:"image"}};var f={};e.utils.mediaparser.parseMedia=function(i){return d(i)};function c(j,i){if(i===undefined){i=g[j]}else{e.utils.extend(i,g[j])}return i}function d(m,i){if(f[m.tagName.toLowerCase()]&&(i===undefined)){return f[m.tagName.toLowerCase()](m)}else{i=c("element",i);var n={};for(var j in i){if(j!="length"){var l=m.getAttribute(j);if(!(l===""||l===undefined||l===null)){n[i[j]]=m.getAttribute(j)}}}var k=m.style["#background-color"];if(k&&!(k=="transparent"||k=="rgba(0, 0, 0, 0)")){n.screencolor=k}return n}}function h(n,k){k=c("media",k);var l=[];var j=e.utils.selectors("source",n);for(var m in j){if(!isNaN(m)){l.push(a(j[m]))}}var o=d(n,k);if(o.file!==undefined){l[0]={file:o.file}}o.levels=l;return o}function a(k,j){j=c("source",j);var i=d(k,j);i.width=i.width?i.width:0;i.bitrate=i.bitrate?i.bitrate:0;return i}function b(k,j){j=c("video",j);var i=h(k,j);return i}f.media=h;f.audio=h;f.source=a;f.video=b})(jwplayer);(function(a){a.utils.selectors=function(b,d){if(d===undefined){d=document}b=a.utils.strings.trim(b);var c=b.charAt(0);if(c=="#"){return d.getElementById(b.substr(1))}else{if(c=="."){if(d.getElementsByClassName){return d.getElementsByClassName(b.substr(1))}else{return a.utils.selectors.getElementsByTagAndClass("*",b.substr(1))}}else{if(b.indexOf(".")>0){selectors=b.split(".");return a.utils.selectors.getElementsByTagAndClass(selectors[0],selectors[1])}else{return d.getElementsByTagName(b)}}}return null};a.utils.selectors.getElementsByTagAndClass=function(e,h,g){elements=[];if(g===undefined){g=document}var f=g.getElementsByTagName(e);for(var d=0;d<f.length;d++){if(f[d].className!==undefined){var c=f[d].className.split(" ");for(var b=0;b<c.length;b++){if(c[b]==h){elements.push(f[d])}}}}return elements}})(jwplayer);(function(a){a.utils.strings=function(){};a.utils.strings.trim=function(b){return b.replace(/^\s*/,"").replace(/\s*$/,"")};a.utils.strings.pad=function(c,d,b){if(!b){b="0"}while(c.length<d){c=b+c}return c};a.utils.strings.serialize=function(b){if(b==null){return null}else{if(b=="true"){return true}else{if(b=="false"){return false}else{if(isNaN(Number(b))||b.length>5||b.length==0){return b}else{return Number(b)}}}}};a.utils.strings.seconds=function(d){d=d.replace(",",".");var b=d.split(":");var c=0;if(d.substr(-1)=="s"){c=Number(d.substr(0,d.length-1))}else{if(d.substr(-1)=="m"){c=Number(d.substr(0,d.length-1))*60}else{if(d.substr(-1)=="h"){c=Number(d.substr(0,d.length-1))*3600}else{if(b.length>1){c=Number(b[b.length-1]);c+=Number(b[b.length-2])*60;if(b.length==3){c+=Number(b[b.length-3])*3600}}else{c=Number(d)}}}}return c};a.utils.strings.xmlAttribute=function(b,c){for(var d in b.attributes){if(b.attributes[d].name&&b.attributes[d].name.toLowerCase()==c.toLowerCase()){return b.attributes[d].value.toString()}}return""}})(jwplayer);(function(c){var d=new RegExp(/^(#|0x)[0-9a-fA-F]{3,6}/);c.utils.typechecker=function(g,f){f=f===null?b(g):f;return e(g,f)};function b(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(f===null){return g}switch(f){case"color":if(g.length>0){return a(g)}return null;case"integer":return parseInt(g,10);case"float":return parseFloat(g);case"boolean":if(g.toLowerCase()=="true"){return true}else{if(g=="1"){return true}}return false}return g}function a(f){switch(f.toLowerCase()){case"blue":return parseInt("0000FF",16);case"green":return parseInt("00FF00",16);case"red":return parseInt("FF0000",16);case"cyan":return parseInt("00FFFF",16);case"magenta":return parseInt("FF00FF",16);case"yellow":return parseInt("FFFF00",16);case"black":return parseInt("000000",16);case"white":return parseInt("FFFFFF",16);default:f=f.replace(/(#|0x)?([0-9A-F]{3,6})$/gi,"$2");if(f.length==3){f=f.charAt(0)+f.charAt(0)+f.charAt(1)+f.charAt(1)+f.charAt(2)+f.charAt(2)}return parseInt(f,16)}return parseInt("000000",16)}})(jwplayer);(function(b){var f={};var e={};var d={};var a={};var c="http://plugins.longtailvideo.com/";b.plugins=function(){};b.plugins.loadPlugins=function(h){a[h.api.id]={api:h.api,embedder:h,loader:new b.plugins.loader(h.config.plugins,f,e,d,c,function(){g(h.api.id)})};return a[h.api.id].loader};function g(h){if(a[h]&&a[h].loader.isComplete()){a[h].embedder.embedPlayer()}}b.plugins.pluginFailed=function(i){e[i]=true;for(var h in a){if(typeof h=="string"){g(h)}}};b.plugins.registerPlugin=function(k,i,h){if(!d[k]){d[k]={flash:{},js:{}};if(i&&h){d[k].flash.src=h;d[k].js.template=i}else{if(typeof i=="string"){d[k].flash.src=i}else{if(typeof i=="function"){d[k].js.template=i}else{if(!i&&!h){d[k].flash.src=k}}}}}for(var j in a){if(typeof j=="string"){g(j)}}}})(jwplayer);(function(a){a.plugins.loader=function(g,j,l,h,r,q){var e=[];var f=false;var d=[];function o(){if(e.length==0&&!f){return true}for(var s=0;s<e.length;s++){if(h[e[s]]||l[e[s]]){e.splice(s,1)}}return(e.length==0&&!f)}this.isComplete=o;function i(){var s=[];for(var t=0;t<d.length;t++){var v=a.utils.getPluginName(d[t]);if(!l[v]){var u={id:d[t],js:{},flash:{}};if(h[v]){if(h[v].js.template){u.js.template=h[v].js.template}if(h[v].flash.src){u.flash.src=h[v].flash.src}}s.push(u)}}return s}function k(){f=true;if(g){if(typeof g=="string"){d=g.replace(/\s*/g,"").split(",")}else{for(var t in g){if(t&&typeof t=="string"){d.push(t)}}}for(var s=0;s<d.length;s++){c(d[s])}}f=false}function n(){if(o()){q()}}function c(u){var v=a.utils.getPluginName(u);if(h[v]||l[v]){return}else{if(j[v]){e.push(v);return}}if(u.lastIndexOf(".swf")>-1){a.plugins.registerPlugin(v,u)}else{if(e.toString().indexOf(v)<0){var s=p(u);j[v]={src:s};l[v]=false;e.push(v);var t=document.createElement("script");document.getElementsByTagName("head")[0].appendChild(t);t.type="text/javascript";t.onload=b(v);t.onerror=m(v,u);t.src=s}}}function b(s){return function(t){if(h[s]){e.splice(e.indexOf(s),1)}}}function m(t,s){return function(u){if(s.lastIndexOf("/")<0&&s.lastIndexOf(".")<0){if(h[s]){e.splice(e.indexOf(s),1)}a.plugins.registerPlugin(s);return}a.plugins.pluginFailed(t)}}function p(s){if(s.lastIndexOf("/")>-1||s.lastIndexOf(".")>-1){return s}var t=a.utils.getPluginName(s);return r+a.version.split(".")[0]+"/"+t+"/"+t+".js"}k();this.setupPlugins=function(x,u,A){plugins=i();var t={length:0,plugins:{}};var v={};for(var w=0;w<plugins.length;w++){var y=a.utils.getPluginName(plugins[w].id);if(plugins[w].flash.src){if(a.utils.getPathType(plugins[w].flash.src)=="relative"){plugins[w].flash.src=a.utils.getAbsolutePath(plugins[w].flash.src,a.utils.getAbsolutePath(plugins[w].id))}t.plugins[plugins[w].flash.src]=u.plugins[plugins[w].id];t.length++}if(plugins[w].js.template){var s=document.createElement("div");s.id=x.id+"_"+y;s.style.position="absolute";s.style.zIndex=w+10;var z=new plugins[w].js.template(x,s,u.plugins[plugins[w].id]);v[y]=z;if(typeof z.resize!="undefined"){x.onReady(A(z,s,true));x.onResize(A(z,s))}}}x.plugins=v;return t};return this}})(jwplayer);(function(b){var a=[];b.api=function(d){this.container=d;this.id=d.id;var l={};var q={};var c=[];var h=undefined;var k=false;var i=[];var o=b.utils.getOuterHTML(d);var p={};var m=0;var j={};this.getBuffer=function(){return this.callInternal("jwGetBuffer")};this.getContainer=function(){return this.container};function e(r){return function(w,s,t,u){var v;if(s){j[w]=s;v="jwplayer('"+r+"').callback('"+w+"')"}else{if(!s&&j[w]){delete j[w]}}h.jwDockSetButton(w,v,t,u)}}this.getPlugin=function(s){var r=this.callInternal;if(s=="dock"){return{setButton:e(this.id)}}return this.plugins[s]};this.callback=function(r){if(j[r]){return j[r]()}};this.getDuration=function(){return this.callInternal("jwGetDuration")};this.getFullscreen=function(){return this.callInternal("jwGetFullscreen")};this.getHeight=function(){return this.callInternal("jwGetHeight")};this.getLockState=function(){return this.callInternal("jwGetLockState")};this.getMeta=function(){return this.getItemMeta()};this.getMute=function(){return this.callInternal("jwGetMute")};this.getPlaylist=function(){var s=this.callInternal("jwGetPlaylist");for(var r=0;r<s.length;r++){if(s[r].index===undefined){s[r].index=r}}return s};this.getPlaylistItem=function(r){if(r===undefined){r=this.getCurrentItem()}return this.getPlaylist()[r]};this.getPosition=function(){return this.callInternal("jwGetPosition")};this.getRenderingMode=function(){return this.renderingMode};this.getState=function(){return this.callInternal("jwGetState")};this.getVolume=function(){return this.callInternal("jwGetVolume")};this.getWidth=function(){return this.callInternal("jwGetWidth")};this.setFullscreen=function(r){if(r===undefined){this.callInternal("jwSetFullscreen",!this.callInternal("jwGetFullscreen"))}else{this.callInternal("jwSetFullscreen",r)}return this};this.setMute=function(r){if(r===undefined){this.callInternal("jwSetMute",!this.callInternal("jwGetMute"))}else{this.callInternal("jwSetMute",r)}return this};this.lock=function(){return this};this.unlock=function(){return this};this.load=function(r){this.callInternal("jwLoad",r);return this};this.playlistItem=function(r){this.callInternal("jwPlaylistItem",r);return this};this.playlistPrev=function(){this.callInternal("jwPlaylistPrev");return this};this.playlistNext=function(){this.callInternal("jwPlaylistNext");return this};this.resize=function(s,r){if(this.renderingMode=="html5"){h.jwResize(s,r)}else{this.container.width=s;this.container.height=r}return this};this.play=function(r){if(typeof r=="undefined"){r=this.getState();if(r==b.api.events.state.PLAYING||r==b.api.events.state.BUFFERING){this.callInternal("jwPause")}else{this.callInternal("jwPlay")}}else{this.callInternal("jwPlay",r)}return this};this.pause=function(r){if(typeof r=="undefined"){r=this.getState();if(r==b.api.events.state.PLAYING||r==b.api.events.state.BUFFERING){this.callInternal("jwPause")}else{this.callInternal("jwPlay")}}else{this.callInternal("jwPause",r)}return this};this.stop=function(){this.callInternal("jwStop");return this};this.seek=function(r){this.callInternal("jwSeek",r);return this};this.setVolume=function(r){this.callInternal("jwSetVolume",r);return this};this.onBufferChange=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_BUFFER,r)};this.onBufferFull=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_BUFFER_FULL,r)};this.onError=function(r){return this.eventListener(b.api.events.JWPLAYER_ERROR,r)};this.onFullscreen=function(r){return this.eventListener(b.api.events.JWPLAYER_FULLSCREEN,r)};this.onMeta=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_META,r)};this.onMute=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_MUTE,r)};this.onPlaylist=function(r){return this.eventListener(b.api.events.JWPLAYER_PLAYLIST_LOADED,r)};this.onPlaylistItem=function(r){return this.eventListener(b.api.events.JWPLAYER_PLAYLIST_ITEM,r)};this.onReady=function(r){return this.eventListener(b.api.events.API_READY,r)};this.onResize=function(r){return this.eventListener(b.api.events.JWPLAYER_RESIZE,r)};this.onComplete=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_COMPLETE,r)};this.onTime=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_TIME,r)};this.onVolume=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_VOLUME,r)};this.onBuffer=function(r){return this.stateListener(b.api.events.state.BUFFERING,r)};this.onPause=function(r){return this.stateListener(b.api.events.state.PAUSED,r)};this.onPlay=function(r){return this.stateListener(b.api.events.state.PLAYING,r)};this.onIdle=function(r){return this.stateListener(b.api.events.state.IDLE,r)};this.remove=function(){l={};i=[];if(b.utils.getOuterHTML(this.container)!=o){b.api.destroyPlayer(this.id,o)}};this.setup=function(s){if(b.embed){var r=this.id;this.remove();var t=b(r);t.config=s;return(new b.embed(t)).embedPlayer()}return this};this.registerPlugin=function(t,s,r){b.plugins.registerPlugin(t,s,r)};this.setPlayer=function(r,s){h=r;this.renderingMode=s};this.stateListener=function(r,s){if(!q[r]){q[r]=[];this.eventListener(b.api.events.JWPLAYER_PLAYER_STATE,g(r))}q[r].push(s);return this};function g(r){return function(t){var s=t.newstate,v=t.oldstate;if(s==r){var u=q[s];if(u){for(var w=0;w<u.length;w++){if(typeof u[w]=="function"){u[w].call(this,{oldstate:v,newstate:s})}}}}}}this.addInternalListener=function(r,s){r.jwAddEventListener(s,'function(dat) { jwplayer("'+this.id+'").dispatchEvent("'+s+'", dat); }')};this.eventListener=function(r,s){if(!l[r]){l[r]=[];if(h&&k){this.addInternalListener(h,r)}}l[r].push(s);return this};this.dispatchEvent=function(t){if(l[t]){var s=f(t,arguments[1]);for(var r=0;r<l[t].length;r++){if(typeof l[t][r]=="function"){l[t][r].call(this,s)}}}};function f(t,r){var v=b.utils.extend({},r);if(t==b.api.events.JWPLAYER_FULLSCREEN&&!v.fullscreen){v.fullscreen=v.message=="true"?true:false;delete v.message}else{if(typeof v.data=="object"){v=b.utils.extend(v,v.data);delete v.data}}var s=["position","duration","offset"];for(var u in s){if(v[s[u]]){v[s[u]]=Math.round(v[s[u]]*1000)/1000}}return v}this.callInternal=function(s,r){if(k){if(typeof h!="undefined"&&typeof h[s]=="function"){if(r!==undefined){return(h[s])(r)}else{return(h[s])()}}return null}else{i.push({method:s,parameters:r})}};this.playerReady=function(t){k=true;if(!h){this.setPlayer(document.getElementById(t.id))}this.container=document.getElementById(this.id);for(var r in l){this.addInternalListener(h,r)}this.eventListener(b.api.events.JWPLAYER_PLAYLIST_ITEM,function(u){if(u.index!==undefined){m=u.index}p={}});this.eventListener(b.api.events.JWPLAYER_MEDIA_META,function(u){b.utils.extend(p,u.metadata)});this.dispatchEvent(b.api.events.API_READY);while(i.length>0){var s=i.shift();this.callInternal(s.method,s.parameters)}};this.getItemMeta=function(){return p};this.getCurrentItem=function(){return m};function n(t,v,u){var r=[];if(!v){v=0}if(!u){u=t.length-1}for(var s=v;s<=u;s++){r.push(t[s])}return r}return this};b.api.selectPlayer=function(d){var c;if(d===undefined){d=0}if(d.nodeType){c=d}else{if(typeof d=="string"){c=document.getElementById(d)}}if(c){var e=b.api.playerById(c.id);if(e){return e}else{return b.api.addPlayer(new b.api(c))}}else{if(typeof d=="number"){return b.getPlayers()[d]}}return null};b.api.events={API_READY:"jwplayerAPIReady",JWPLAYER_READY:"jwplayerReady",JWPLAYER_FULLSCREEN:"jwplayerFullscreen",JWPLAYER_RESIZE:"jwplayerResize",JWPLAYER_ERROR:"jwplayerError",JWPLAYER_MEDIA_BUFFER:"jwplayerMediaBuffer",JWPLAYER_MEDIA_BUFFER_FULL:"jwplayerMediaBufferFull",JWPLAYER_MEDIA_ERROR:"jwplayerMediaError",JWPLAYER_MEDIA_LOADED:"jwplayerMediaLoaded",JWPLAYER_MEDIA_COMPLETE:"jwplayerMediaComplete",JWPLAYER_MEDIA_TIME:"jwplayerMediaTime",JWPLAYER_MEDIA_VOLUME:"jwplayerMediaVolume",JWPLAYER_MEDIA_META:"jwplayerMediaMeta",JWPLAYER_MEDIA_MUTE:"jwplayerMediaMute",JWPLAYER_PLAYER_STATE:"jwplayerPlayerState",JWPLAYER_PLAYLIST_LOADED:"jwplayerPlaylistLoaded",JWPLAYER_PLAYLIST_ITEM:"jwplayerPlaylistItem"};b.api.events.state={BUFFERING:"BUFFERING",IDLE:"IDLE",PAUSED:"PAUSED",PLAYING:"PLAYING"};b.api.playerById=function(d){for(var c=0;c<a.length;c++){if(a[c].id==d){return a[c]}}return null};b.api.addPlayer=function(c){for(var d=0;d<a.length;d++){if(a[d]==c){return c}}a.push(c);return c};b.api.destroyPlayer=function(g,d){var f=-1;for(var i=0;i<a.length;i++){if(a[i].id==g){f=i;continue}}if(f>=0){var c=document.getElementById(a[f].id);if(document.getElementById(a[f].id+"_wrapper")){c=document.getElementById(a[f].id+"_wrapper")}if(c){if(d){b.utils.setOuterHTML(c,d)}else{var h=document.createElement("div");var e=c.id;if(c.id.indexOf("_wrapper")==c.id.length-8){newID=c.id.substring(0,c.id.length-8)}h.setAttribute("id",e);c.parentNode.replaceChild(h,c)}}a.splice(f,1)}return null};b.getPlayers=function(){return a.slice(0)}})(jwplayer);var _userPlayerReady=(typeof playerReady=="function")?playerReady:undefined;playerReady=function(b){var a=jwplayer.api.playerById(b.id);if(a){a.playerReady(b)}if(_userPlayerReady){_userPlayerReady.call(this,b)}};(function(a){a.embed=function(e){var f={width:400,height:300,components:{controlbar:{position:"over"}}};this.api=e;var d=a.utils.mediaparser.parseMedia(this.api.container);this.config=new a.embed.config(a.utils.extend(f,d,this.api.config),this);this.pluginloader=new a.plugins.loadPlugins(this);function c(h){for(var g in h.events){if(typeof h.api[g]=="function"){(h.api[g]).call(h.api,h.events[g])}}}this.embedPlayer=function(){if(this.pluginloader.isComplete()){for(var i=0;i<this.players.length;i++){if(this.players[i].type&&a.embed[this.players[i].type]){var g=this.config;if(this.players[i].config){g=a.utils.extend(a.utils.clone(this.config),this.players[i].config)}var h=new a.embed[this.players[i].type](document.getElementById(this.api.id),this.players[i],g,this.pluginloader,this.api);if(h.supportsConfig()){h.embed();c(this);return this.api}}}a.utils.log("No suitable players found");new a.embed.logo(a.utils.extend({hide:true},this.config.components.logo),"none",this.api.id)}};return this};function b(){if(!document.body){return setTimeout(b,15)}var c=a.utils.selectors.getElementsByTagAndClass("video","jwplayer");for(var d=0;d<c.length;d++){var e=c[d];a(e.id).setup({})}}b()})(jwplayer);(function(a){function b(){return[{type:"flash",src:"/jwplayer/player.swf"},{type:"html5"},{type:"download"}]}function d(h){var g=h.toLowerCase();var f=["left","right","top","bottom"];for(var e=0;e<f.length;e++){if(g==f[e]){return true}}return false}function c(f){var e=false;e=(typeof f=="string"&&!d(f))||(f instanceof Array)||(typeof f=="object"&&!f.position&&!f.size);return e}a.embed.config=function(f,n){var m=a.utils.extend({},f);if(c(m.playlist)){m.playlistfile=m.playlist;delete m.playlist}for(var h in m){if(h.indexOf(".")>-1){var o=h.split(".");var p=m;for(var e=0;e<o.length;e++){if(e==o.length-1){if(a.utils.typeOf(p)=="object"){p[o[e]]=m[h];delete m[h]}}else{if(p[o[e]]===undefined){p[o[e]]={}}p=p[o[e]]}}}}if(typeof m.plugins=="string"){var g=m.plugins.split(",");for(var j=0;j<g.length;j++){var k=a.utils.getPluginName(g[j]);if(typeof m[k]=="object"){if(typeof m.plugins!="object"){m.plugins={}}m.plugins[g[j]]=m[k];delete m[k]}}}var i=["playlist","dock","controlbar"];for(var l=0;l<i.length;l++){if(typeof m[i[l]]=="string"){if(!m.components[i[l]]){m.components[i[l]]={}}m.components[i[l]].position=m[i[l]];delete m[i[l]]}else{if(m[i[l]]){m.components[i[l]]=m[i[l]];delete m[i[l]]}}}if(typeof m.playlistfile!="string"){m.playlist=m.playlistfile;delete m.playlistfile}if(typeof m.icons!="undefined"){if(!m.components.display){m.components.display={}}m.components.display.icons=m.icons;delete m.icons}if(m.events){n.events=m.events;delete m.events}if(m.modes){m.players=m.modes;delete m.modes}if(m.flashplayer&&!m.players){n.players=b();n.players[0].src=m.flashplayer;delete m.flashplayer}else{if(m.players){if(typeof m.players=="string"){n.players=b();n.players[0].src=m.players}else{if(m.players instanceof Array){n.players=m.players}else{if(typeof m.players=="object"&&m.players.type){n.players=[m.players]}}}delete m.players}else{n.players=b()}}return m}})(jwplayer);(function(a){a.embed.download=function(c,g,b,d,f){this.embed=function(){var j=a.utils.extend({},b);var p={};var i=b.width?b.width:480;if(typeof i!="number"){i=parseInt(i,10)}var l=b.height?b.height:320;if(typeof l!="number"){l=parseInt(l,10)}var t,n,m;var r={};if(b.playlist&&b.playlist.length){r.file=b.playlist[0].file;n=b.playlist[0].image;r.levels=b.playlist[0].levels}else{r.file=b.file;n=b.image;r.levels=b.levels}if(r.file){t=r.file}else{if(r.levels&&r.levels.length){t=r.levels[0].file}}m=t?"pointer":"auto";var k={display:{style:{cursor:m,width:i,height:l,backgroundColor:"#000",position:"relative",textDecoration:"none",border:"none",display:"block"}},display_icon:{style:{cursor:m,position:"absolute",display:t?"block":"none",top:0,left:0,border:0,margin:0,padding:0,zIndex:3,width:50,height:50,backgroundImage:"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALdJREFUeNrs18ENgjAYhmFouDOCcQJGcARHgE10BDcgTOIosAGwQOuPwaQeuFRi2p/3Sb6EC5L3QCxZBgAAAOCorLW1zMn65TrlkH4NcV7QNcUQt7Gn7KIhxA+qNIR81spOGkL8oFJDyLJRdosqKDDkK+iX5+d7huzwM40xptMQMkjIOeRGo+VkEVvIPfTGIpKASfYIfT9iCHkHrBEzf4gcUQ56aEzuGK/mw0rHpy4AAACAf3kJMACBxjAQNRckhwAAAABJRU5ErkJggg==)"}},display_iconBackground:{style:{cursor:m,position:"absolute",display:t?"block":"none",top:((l-50)/2),left:((i-50)/2),border:0,width:50,height:50,margin:0,padding:0,zIndex:2,backgroundImage:"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEpJREFUeNrszwENADAIA7DhX8ENoBMZ5KR10EryckCJiIiIiIiIiIiIiIiIiIiIiIh8GmkRERERERERERERERERERERERGRHSPAAPlXH1phYpYaAAAAAElFTkSuQmCC)"}},display_image:{style:{width:i,height:l,display:n?"block":"none",position:"absolute",cursor:m,left:0,top:0,margin:0,padding:0,textDecoration:"none",zIndex:1,border:"none"}}};var h=function(u,w,x){var v=document.createElement(u);if(x){v.id=x}else{v.id=c.id+"_jwplayer_"+w}a.utils.css(v,k[w].style);return v};p.display=h("a","display",c.id);if(t){p.display.setAttribute("href",a.utils.getAbsolutePath(t))}p.display_image=h("img","display_image");p.display_image.setAttribute("alt","Click to download...");if(n){p.display_image.setAttribute("src",a.utils.getAbsolutePath(n))}if(true){p.display_icon=h("div","display_icon");p.display_iconBackground=h("div","display_iconBackground");p.display.appendChild(p.display_image);p.display_iconBackground.appendChild(p.display_icon);p.display.appendChild(p.display_iconBackground)}_css=a.utils.css;_hide=function(u){_css(u,{display:"none"})};function q(u){_imageWidth=p.display_image.naturalWidth;_imageHeight=p.display_image.naturalHeight;s()}function s(){a.utils.stretch(a.utils.stretching.UNIFORM,p.display_image,i,l,_imageWidth,_imageHeight)}p.display_image.onerror=function(u){_hide(p.display_image)};p.display_image.onload=q;c.parentNode.replaceChild(p.display,c);var o=(b.plugins&&b.plugins.logo)?b.plugins.logo:{};p.display.appendChild(new a.embed.logo(b.components.logo,"download",c.id));f.container=document.getElementById(f.id);f.setPlayer(p.display,"download")};this.supportsConfig=function(){if(b){var j=a.utils.getFirstPlaylistItemFromConfig(b);if(typeof j.file=="undefined"&&typeof j.levels=="undefined"){return true}else{if(j.file){return e(j.file,j.provider,j.playlistfile)}else{if(j.levels&&j.levels.length){for(var h=0;h<j.levels.length;h++){if(j.levels[h].file&&e(j.levels[h].file,j.provider,j.playlistfile)){return true}}}}}}else{return true}};function e(i,k,h){if(h){return false}var j=["image","sound","youtube","http"];if(k&&(j.toString().indexOf(k)>-1)){return true}if(!k||(k&&k=="video")){var l=a.utils.extension(i);if(l&&a.utils.extensionmap[l]){return true}}return false}}})(jwplayer);(function(a){a.embed.flash=function(g,h,l,f,j){function m(o,n,p){var q=document.createElement("param");q.setAttribute("name",n);q.setAttribute("value",p);o.appendChild(q)}function k(o,p,n){return function(q){if(n){document.getElementById(j.id+"_wrapper").appendChild(p)}var s=document.getElementById(j.id).getPluginConfig("display");o.resize(s.width,s.height);var r={left:s.x,top:s.y};a.utils.css(p,r)}}function e(p){if(!p){return{}}var r={};for(var o in p){var n=p[o];for(var q in n){r[o+"."+q]=n[q]}}return r}function i(q,p){if(q[p]){var s=q[p];for(var o in s){var n=s[o];if(typeof n=="string"){if(!q[o]){q[o]=n}}else{for(var r in n){if(!q[o+"."+r]){q[o+"."+r]=n[r]}}}}delete q[p]}}function c(q){if(!q){return{}}var t={},s=[];for(var n in q){var p=a.utils.getPluginName(n);var o=q[n];s.push(n);for(var r in o){t[p+"."+r]=o[r]}}t.plugins=s.join(",");return t}function d(p){var n=p.netstreambasepath?"":"netstreambasepath="+encodeURIComponent(window.location.href)+"&";for(var o in p){n+=o+"="+encodeURIComponent(p[o])+"&"}return n.substring(0,n.length-1)}function b(n){return function(p){if(n.playlist){this.load(n.playlist)}else{if(n.levels){var o=this.getPlaylistItem(0);if(!o){o=n}if(!o.image){o.image=n.image}if(!o.levels){o.levels=n.levels}this.load(o)}}}}this.embed=function(){if(l.levels||l.playlist){j.onReady(b(l))}l.id=j.id;var v;if(g.id+"_wrapper"==g.parentNode.id){v=document.getElementById(g.id+"_wrapper")}else{v=document.createElement("div");v.id=g.id+"_wrapper";a.utils.wrap(g,v);v.style.position="relative"}var q=a.utils.extend({},l);var o=f.setupPlugins(j,q,k);if(o.length>0){a.utils.extend(q,c(o.plugins))}else{delete q.plugins}var n=q.width;delete q.width;var u=q.height;delete q.height;delete q.levels;delete q.playlist;var p="opaque";if(q.wmode){p=q.wmode}i(q,"components");i(q,"providers");var w="#000000";var s;if(a.utils.isIE()){var t='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" bgcolor="'+w+'" width="'+n+'" height="'+u+'" id="'+g.id+'" name="'+g.id+'">';t+='<param name="movie" value="'+h.src+'">';t+='<param name="allowfullscreen" value="true">';t+='<param name="allowscriptaccess" value="always">';t+='<param name="seamlesstabbing" value="true">';t+='<param name="wmode" value="'+p+'">';t+='<param name="flashvars" value="'+d(q)+'">';t+="</object>";a.utils.setOuterHTML(g,t);s=document.getElementById(g.id)}else{var r=document.createElement("object");r.setAttribute("type","application/x-shockwave-flash");r.setAttribute("data",h.src);r.setAttribute("width",n);r.setAttribute("height",u);r.setAttribute("bgcolor","#000000");r.setAttribute("id",g.id);r.setAttribute("name",g.id);m(r,"allowfullscreen","true");m(r,"allowscriptaccess","always");m(r,"seamlesstabbing","true");m(r,"wmode",p);m(r,"flashvars",d(q));g.parentNode.replaceChild(r,g);s=r}j.container=s;j.setPlayer(s,"flash")};this.supportsConfig=function(){if(a.utils.hasFlash()){if(l){var o=a.utils.getFirstPlaylistItemFromConfig(l);if(typeof o.file=="undefined"&&typeof o.levels=="undefined"){return true}else{if(o.file){return flashCanPlay(o.file,o.provider)}else{if(o.levels&&o.levels.length){for(var n=0;n<o.levels.length;n++){if(o.levels[n].file&&flashCanPlay(o.levels[n].file,o.provider)){return true}}}}}}else{return true}}return false};flashCanPlay=function(n,p){var o=["video","http","sound","image"];if(p&&(o.toString().indexOf(p<0))){return true}var q=a.utils.extension(n);if(!q){return true}if(a.utils.extensionmap[q]!==undefined&&a.utils.extensionmap[q].flash===undefined){return false}return true}}})(jwplayer);(function(a){a.embed.html5=function(c,g,b,d,f){function e(i,j,h){return function(k){var l=document.getElementById(c.id+"_displayarea");if(h){l.appendChild(j)}var m=l.style;i.resize(m.width,m.height);j.left=m.left;j.top=m.top}}this.embed=function(){if(a.html5){d.setupPlugins(f,b,e);c.innerHTML="";var h=a.utils.extend({screencolor:"0x000000"},b);if(h.plugins){delete h.plugins}if(h.levels&&!h.sources){h.sources=b.levels}if(h.skin&&h.skin.toLowerCase().indexOf(".zip")>0){h.skin=h.skin.replace(/\.zip/i,".xml")}var i=new (a.html5(c)).setup(h);f.container=document.getElementById(f.id);f.setPlayer(i,"html5")}else{return null}};this.supportsConfig=function(){var h=document.createElement("video");if(!!h.canPlayType){if(b){var k=a.utils.getFirstPlaylistItemFromConfig(b);if(typeof k.file=="undefined"&&typeof k.levels=="undefined"){return true}else{if(k.file){return html5CanPlay(h,k.file,k.provider,k.playlistfile)}else{if(k.levels&&k.levels.length){for(var j=0;j<k.levels.length;j++){if(k.levels[j].file&&html5CanPlay(h,k.levels[j].file,k.provider,k.playlistfile)){return true}}}}}}else{return true}}return false};html5CanPlay=function(j,i,k,h){if(h){return false}if(k&&k=="youtube"){return true}if(k&&k!="video"&&k!="http"){return false}var l=a.utils.extension(i);if(!l||a.utils.extensionmap[l]===undefined){return true}if(a.utils.extensionmap[l].html5===undefined){return false}if(a.utils.isLegacyAndroid()&&l.match(/m4v|mp4/)){return true}return browserCanPlay(j,a.utils.extensionmap[l].html5)};browserCanPlay=function(i,h){if(!h){return true}return i.canPlayType(h)}}})(jwplayer);(function(a){a.embed.logo=function(l,k,d){var i={prefix:"http://l.longtailvideo.com/"+k+"/",file:"logo.png",link:"http://www.longtailvideo.com/players/jw-flv-player/",margin:8,out:0.5,over:1,timeout:3,hide:false,position:"bottom-left"};_css=a.utils.css;var b;var h;j();function j(){n();c();f()}function n(){if(i.prefix){var p=a.version.split(/\W/).splice(0,2).join("/");if(i.prefix.indexOf(p)<0){i.prefix+=p+"/"}}h=a.utils.extend({},i)}function o(){var r={border:"none",textDecoration:"none",position:"absolute",cursor:"pointer",zIndex:10};r.display=h.hide?"none":"block";var q=h.position.toLowerCase().split("-");for(var p in q){r[q[p]]=h.margin}return r}function c(){b=document.createElement("img");b.id=d+"_jwplayer_logo";b.style.display="none";b.onload=function(p){_css(b,o());e()};if(!h.file){return}if(h.file.indexOf("http://")===0){b.src=h.file}else{b.src=h.prefix+h.file}}if(!h.file){return}function f(){if(h.link){b.onmouseover=g;b.onmouseout=e;b.onclick=m}else{this.mouseEnabled=false}}function m(p){if(typeof p!="undefined"){p.preventDefault();p.stopPropagation()}if(h.link){window.open(h.link,"_blank")}return}function e(p){if(h.link){b.style.opacity=h.out}return}function g(p){if(h.hide){b.style.opacity=h.over}return}return b}})(jwplayer);(function(a){a.html5=function(b){var c=b;this.setup=function(d){a.utils.extend(this,new a.html5.api(c,d));return this};return this}})(jwplayer);(function(b){var c=b.utils.css;b.html5.view=function(p,o,e){var s=p;var l=o;var v=e;var u;var f;var z;var q;var A;var n;function x(){u=document.createElement("div");u.id=l.id;u.className=l.className;_videowrapper=document.createElement("div");_videowrapper.id=u.id+"_video_wrapper";l.id=u.id+"_video";c(u,{position:"relative",height:v.height,width:v.width,padding:0,backgroundColor:B(),zIndex:0});function B(){if(s.skin.getComponentSettings("display")&&s.skin.getComponentSettings("display").backgroundcolor){return s.skin.getComponentSettings("display").backgroundcolor}return parseInt("000000",16)}c(l,{width:v.width,height:v.height,top:0,left:0,zIndex:1,margin:"auto",display:"block"});c(_videowrapper,{overflow:"hidden",position:"absolute",top:0,left:0,bottom:0,right:0});b.utils.wrap(l,u);b.utils.wrap(l,_videowrapper);q=document.createElement("div");q.id=u.id+"_displayarea";u.appendChild(q)}function j(){for(var B=0;B<v.plugins.order.length;B++){var C=v.plugins.order[B];if(v.plugins.object[C].getDisplayElement!==undefined){v.plugins.object[C].height=h(v.plugins.object[C].getDisplayElement().style.height);v.plugins.object[C].width=h(v.plugins.object[C].getDisplayElement().style.width);v.plugins.config[C].currentPosition=v.plugins.config[C].position}}t()}function t(C){if(v.getMedia()!==undefined){for(var B=0;B<v.plugins.order.length;B++){var D=v.plugins.order[B];if(v.plugins.object[D].getDisplayElement!==undefined){if(v.getMedia().hasChrome()){v.plugins.config[D].currentPosition=b.html5.view.positions.NONE}else{v.plugins.config[D].currentPosition=v.plugins.config[D].position}}}}i(v.width,v.height)}function h(B){if(typeof B=="string"){if(B===""){return 0}else{if(B.lastIndexOf("%")>-1){return B}else{return parseInt(B.replace("px",""),10)}}}return B}this.setup=function(B){l=B;x();j();s.jwAddEventListener(b.api.events.JWPLAYER_MEDIA_LOADED,t);s.jwAddEventListener(b.api.events.JWPLAYER_MEDIA_META,function(){w()});var C;if(window.onresize!==null){C=window.onresize}window.onresize=function(D){if(C!==undefined){try{C(D)}catch(F){}}if(s.jwGetFullscreen()){var E=document.body.getBoundingClientRect();v.width=Math.abs(E.left)+Math.abs(E.right);v.height=window.innerHeight}i(v.width,v.height)}};function g(B){switch(B.keyCode){case 27:if(s.jwGetFullscreen()){s.jwSetFullscreen(false)}break;case 32:if(s.jwGetState()!=b.api.events.state.IDLE&&s.jwGetState()!=b.api.events.state.PAUSED){s.jwPause()}else{s.jwPlay()}break}}function i(E,B){if(u.style.display=="none"){return}var D=[].concat(v.plugins.order);D.reverse();A=D.length+2;if(!v.fullscreen){v.width=E;v.height=B;f=E;z=B;c(q,{top:0,bottom:0,left:0,right:0,width:E,height:B});c(u,{height:z,width:f});var C=m(r,D);if(C.length>0){A+=C.length;m(k,C,true)}}else{if(navigator.vendor.indexOf("Apple")!==0){m(y,D,true)}}w()}function m(G,D,E){var C=[];for(var B=0;B<D.length;B++){var H=D[B];if(v.plugins.object[H].getDisplayElement!==undefined){if(v.plugins.config[H].currentPosition.toUpperCase()!==b.html5.view.positions.NONE){var F=G(H,A--);if(!F){C.push(H)}else{v.plugins.object[H].resize(F.width,F.height);if(E){delete F.width;delete F.height}c(v.plugins.object[H].getDisplayElement(),F)}}else{c(v.plugins.object[H].getDisplayElement(),{display:"none"})}}}return C}function r(C,D){if(v.plugins.object[C].getDisplayElement!==undefined){if(a(v.plugins.config[C].position)){if(v.plugins.object[C].getDisplayElement().parentNode===null){u.appendChild(v.plugins.object[C].getDisplayElement())}var B=d(C);B.zIndex=D;return B}}return false}function k(D,E){if(v.plugins.object[D].getDisplayElement().parentNode===null){q.appendChild(v.plugins.object[D].getDisplayElement())}var B=v.width,C=v.height;if(typeof v.width=="string"&&v.width.lastIndexOf("%")>-1){percentage=parseFloat(v.width.substring(0,v.width.lastIndexOf("%")))/100;B=Math.round(window.innerWidth*percentage)}if(typeof v.height=="string"&&v.height.lastIndexOf("%")>-1){percentage=parseFloat(v.height.substring(0,v.height.lastIndexOf("%")))/100;C=Math.round(window.innerHeight*percentage)}return{position:"absolute",width:(B-h(q.style.left)-h(q.style.right)),height:(C-h(q.style.top)-h(q.style.bottom)),zIndex:E}}function y(B,C){return{position:"fixed",width:v.width,height:v.height,zIndex:C}}function w(){q.style.position="absolute";v.getMedia().getDisplayElement().style.position="absolute";if(v.getMedia().getDisplayElement().videoWidth==0||v.getMedia().getDisplayElement().videoHeight==0){return}var B,D;if(q.style.width.toString().lastIndexOf("%")>-1||q.style.width.toString().lastIndexOf("%")>-1){var C=q.getBoundingClientRect();B=Math.abs(C.left)+Math.abs(C.right);D=Math.abs(C.top)+Math.abs(C.bottom)}else{B=h(q.style.width);D=h(q.style.height)}b.utils.stretch(s.jwGetStretching(),v.getMedia().getDisplayElement(),B,D,v.getMedia().getDisplayElement().videoWidth,v.getMedia().getDisplayElement().videoHeight)}function d(C){var D={position:"absolute",margin:0,padding:0,top:null};var B=v.plugins.config[C].currentPosition.toLowerCase();switch(B.toUpperCase()){case b.html5.view.positions.TOP:D.top=h(q.style.top);D.left=h(q.style.left);D.width=f-h(q.style.left)-h(q.style.right);D.height=v.plugins.object[C].height;q.style[B]=h(q.style[B])+v.plugins.object[C].height+"px";q.style.height=h(q.style.height)-D.height+"px";break;case b.html5.view.positions.RIGHT:D.top=h(q.style.top);D.right=h(q.style.right);D.width=D.width=v.plugins.object[C].width;D.height=z-h(q.style.top)-h(q.style.bottom);q.style[B]=h(q.style[B])+v.plugins.object[C].width+"px";q.style.width=h(q.style.width)-D.width+"px";break;case b.html5.view.positions.BOTTOM:D.bottom=h(q.style.bottom);D.left=h(q.style.left);D.width=f-h(q.style.left)-h(q.style.right);D.height=v.plugins.object[C].height;q.style[B]=h(q.style[B])+v.plugins.object[C].height+"px";q.style.height=h(q.style.height)-D.height+"px";break;case b.html5.view.positions.LEFT:D.top=h(q.style.top);D.left=h(q.style.left);D.width=v.plugins.object[C].width;D.height=z-h(q.style.top)-h(q.style.bottom);q.style[B]=h(q.style[B])+v.plugins.object[C].width+"px";q.style.width=h(q.style.width)-D.width+"px";break;default:break}return D}this.resize=i;this.fullscreen=function(E){if(navigator.vendor.indexOf("Apple")===0){if(v.getMedia().getDisplayElement().webkitSupportsFullscreen){if(E){try{v.getMedia().getDisplayElement().webkitEnterFullscreen()}catch(D){}}else{try{v.getMedia().getDisplayElement().webkitExitFullscreen()}catch(D){}}}}else{if(E){document.onkeydown=g;clearInterval(n);var C=document.body.getBoundingClientRect();v.width=Math.abs(C.left)+Math.abs(C.right);v.height=window.innerHeight;var B={position:"fixed",width:"100%",height:"100%",top:0,left:0,zIndex:2147483000};c(u,B);B.zIndex=1;c(v.getMedia().getDisplayElement(),B);B.zIndex=2;c(q,B)}else{document.onkeydown="";v.width=f;v.height=z;c(u,{position:"relative",height:v.height,width:v.width,zIndex:0})}i(v.width,v.height)}}};function a(d){return([b.html5.view.positions.TOP,b.html5.view.positions.RIGHT,b.html5.view.positions.BOTTOM,b.html5.view.positions.LEFT].toString().indexOf(d.toUpperCase())>-1)}b.html5.view.positions={TOP:"TOP",RIGHT:"RIGHT",BOTTOM:"BOTTOM",LEFT:"LEFT",OVER:"OVER",NONE:"NONE"}})(jwplayer);(function(a){var b={backgroundcolor:"",margin:10,font:"Arial,sans-serif",fontsize:10,fontcolor:parseInt("000000",16),fontstyle:"normal",fontweight:"bold",buttoncolor:parseInt("ffffff",16),position:a.html5.view.positions.BOTTOM,idlehide:false,layout:{left:{position:"left",elements:[{name:"play",type:"button"},{name:"divider",type:"divider"},{name:"prev",type:"button"},{name:"divider",type:"divider"},{name:"next",type:"button"},{name:"divider",type:"divider"},{name:"elapsed",type:"text"}]},center:{position:"center",elements:[{name:"time",type:"slider"}]},right:{position:"right",elements:[{name:"duration",type:"text"},{name:"blank",type:"button"},{name:"divider",type:"divider"},{name:"mute",type:"button"},{name:"volume",type:"slider"},{name:"divider",type:"divider"},{name:"fullscreen",type:"button"}]}}};_css=a.utils.css;_hide=function(c){_css(c,{display:"none"})};_show=function(c){_css(c,{display:"block"})};a.html5.controlbar=function(j,L){var i=j;var A=a.utils.extend({},b,i.skin.getComponentSettings("controlbar"),L);if(a.utils.mapLength(i.skin.getComponentLayout("controlbar"))>0){A.layout=i.skin.getComponentLayout("controlbar")}var P;var I;var O;var B;var t="none";var f;var h;var Q;var e;var d;var w;var s;var J={};var n=false;var c={};function H(){O=0;B=0;I=0;if(!n){var V={height:i.skin.getSkinElement("controlbar","background").height,backgroundColor:A.backgroundcolor};P=document.createElement("div");P.id=i.id+"_jwplayer_controlbar";_css(P,V)}v("capLeft","left",false,P);var W={position:"absolute",height:i.skin.getSkinElement("controlbar","background").height,left:i.skin.getSkinElement("controlbar","capLeft").width,zIndex:0};N("background",P,W,"img");if(i.skin.getSkinElement("controlbar","background")){J.background.src=i.skin.getSkinElement("controlbar","background").src}W.zIndex=1;N("elements",P,W);v("capRight","right",false,P)}this.getDisplayElement=function(){return P};this.resize=function(X,V){a.utils.cancelAnimation(P);document.getElementById(i.id).onmousemove=x;d=X;w=V;x();var W=u();D({id:i.id,duration:Q,position:h});r({id:i.id,bufferPercent:e});return W};function o(){var W=["timeSlider","volumeSlider","timeSliderRail","volumeSliderRail"];for(var X in W){var V=W[X];if(typeof J[V]!="undefined"){c[V]=J[V].getBoundingClientRect()}}}function x(){a.utils.cancelAnimation(P);if(g()){a.utils.fadeTo(P,1,0,1,0)}else{a.utils.fadeTo(P,0,0.1,1,2)}}function g(){if(i.jwGetState()==a.api.events.state.IDLE||i.jwGetState()==a.api.events.state.PAUSED){if(A.idlehide){return false}return true}if(i.jwGetFullscreen()){return false}if(A.position.toUpperCase()==a.html5.view.positions.OVER){return false}return true}function N(Z,Y,X,V){var W;if(!n){if(!V){V="div"}W=document.createElement(V);J[Z]=W;W.id=P.id+"_"+Z;Y.appendChild(W)}else{W=document.getElementById(P.id+"_"+Z)}if(X!==undefined){_css(W,X)}return W}function G(){U(A.layout.left);U(A.layout.right,-1);U(A.layout.center)}function U(Y,V){var Z=Y.position=="right"?"right":"left";var X=a.utils.extend([],Y.elements);if(V!==undefined){X.reverse()}for(var W=0;W<X.length;W++){z(X[W],Z)}}function E(){return I++}function z(Z,ab){var Y,W,X,V,ad;switch(Z.name){case"play":v("playButton",ab,false);v("pauseButton",ab,true);K("playButton","jwPlay");K("pauseButton","jwPause");break;case"divider":v("divider"+E(),ab,true,undefined,undefined,Z.width);break;case"prev":v("prevButton",ab,true);K("prevButton","jwPlaylistPrev");break;case"next":v("nextButton",ab,true);K("nextButton","jwPlaylistNext");break;case"elapsed":v("elapsedText",ab,true);break;case"time":W=i.skin.getSkinElement("controlbar","timeSliderCapLeft")===undefined?0:i.skin.getSkinElement("controlbar","timeSliderCapLeft").width;X=i.skin.getSkinElement("controlbar","timeSliderCapRight")===undefined?0:i.skin.getSkinElement("controlbar","timeSliderCapRight").width;Y=ab=="left"?W:X;V=i.skin.getSkinElement("controlbar","timeSliderRail").width+W+X;ad={height:i.skin.getSkinElement("controlbar","background").height,position:"absolute",top:0,width:V};ad[ab]=ab=="left"?O:B;var aa=N("timeSlider",J.elements,ad);v("timeSliderCapLeft",ab,true,aa,ab=="left"?0:Y);v("timeSliderRail",ab,false,aa,Y);v("timeSliderBuffer",ab,false,aa,Y);v("timeSliderProgress",ab,false,aa,Y);v("timeSliderThumb",ab,false,aa,Y);v("timeSliderCapRight",ab,true,aa,ab=="right"?0:Y);M("time");break;case"fullscreen":v("fullscreenButton",ab,false);v("normalscreenButton",ab,true);K("fullscreenButton","jwSetFullscreen",true);K("normalscreenButton","jwSetFullscreen",false);break;case"volume":W=i.skin.getSkinElement("controlbar","volumeSliderCapLeft")===undefined?0:i.skin.getSkinElement("controlbar","volumeSliderCapLeft").width;X=i.skin.getSkinElement("controlbar","volumeSliderCapRight")===undefined?0:i.skin.getSkinElement("controlbar","volumeSliderCapRight").width;Y=ab=="left"?W:X;V=i.skin.getSkinElement("controlbar","volumeSliderRail").width+W+X;ad={height:i.skin.getSkinElement("controlbar","background").height,position:"absolute",top:0,width:V};ad[ab]=ab=="left"?O:B;var ac=N("volumeSlider",J.elements,ad);v("volumeSliderCapLeft",ab,true,ac,ab=="left"?0:Y);v("volumeSliderRail",ab,true,ac,Y);v("volumeSliderProgress",ab,false,ac,Y);v("volumeSliderCapRight",ab,true,ac,ab=="right"?0:Y);M("volume");break;case"mute":v("muteButton",ab,false);v("unmuteButton",ab,true);K("muteButton","jwSetMute",true);K("unmuteButton","jwSetMute",false);break;case"duration":v("durationText",ab,true);break}}function v(X,aa,W,ac,Y,V){if((i.skin.getSkinElement("controlbar",X)!==undefined||X.indexOf("Text")>0||X.indexOf("divider")===0)&&!(X.indexOf("divider")===0&&s.indexOf("divider")===0)){s=X;var Z={height:i.skin.getSkinElement("controlbar","background").height,position:"absolute",display:"block",top:0};if((X.indexOf("next")===0||X.indexOf("prev")===0)&&i.jwGetPlaylist().length<2){W=false;Z.display="none"}var ad;if(X.indexOf("Text")>0){X.innerhtml="00:00";Z.font=A.fontsize+"px/"+(i.skin.getSkinElement("controlbar","background").height+1)+"px "+A.font;Z.color=A.fontcolor;Z.textAlign="center";Z.fontWeight=A.fontweight;Z.fontStyle=A.fontstyle;Z.cursor="default";ad=14+3*A.fontsize}else{if(X.indexOf("divider")===0){if(V){if(!isNaN(parseInt(V))){ad=parseInt(V)}}else{Z.background="url("+i.skin.getSkinElement("controlbar","divider").src+") repeat-x center left";ad=i.skin.getSkinElement("controlbar","divider").width}}else{Z.background="url("+i.skin.getSkinElement("controlbar",X).src+") repeat-x center left";ad=i.skin.getSkinElement("controlbar",X).width}}if(aa=="left"){Z.left=isNaN(Y)?O:Y;if(W){O+=ad}}else{if(aa=="right"){Z.right=isNaN(Y)?B:Y;if(W){B+=ad}}}if(a.utils.typeOf(ac)=="undefined"){ac=J.elements}Z.width=ad;if(n){_css(J[X],Z)}else{var ab=N(X,ac,Z);if(i.skin.getSkinElement("controlbar",X+"Over")!==undefined){ab.onmouseover=function(ae){ab.style.backgroundImage=["url(",i.skin.getSkinElement("controlbar",X+"Over").src,")"].join("")};ab.onmouseout=function(ae){ab.style.backgroundImage=["url(",i.skin.getSkinElement("controlbar",X).src,")"].join("")}}}}}function C(){i.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED,y);i.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_BUFFER,r);i.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE,p);i.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_TIME,D);i.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_MUTE,T);i.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_VOLUME,k);i.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_COMPLETE,F)}function y(){H();G();u();R()}function R(){D({id:i.id,duration:i.jwGetDuration(),position:0});r({id:i.id,bufferProgress:0});T({id:i.id,mute:i.jwGetMute()});p({id:i.id,newstate:a.api.events.state.IDLE});k({id:i.id,volume:i.jwGetVolume()})}function K(X,Y,W){if(n){return}if(i.skin.getSkinElement("controlbar",X)!==undefined){var V=J[X];if(V!==null){_css(V,{cursor:"pointer"});if(Y=="fullscreen"){V.onmouseup=function(Z){Z.stopPropagation();i.jwSetFullscreen(!i.jwGetFullscreen())}}else{V.onmouseup=function(Z){Z.stopPropagation();if(W!==null){i[Y](W)}else{i[Y]()}}}}}}function M(V){if(n){return}var W=J[V+"Slider"];_css(J.elements,{cursor:"pointer"});_css(W,{cursor:"pointer"});W.onmousedown=function(X){t=V};W.onmouseup=function(X){X.stopPropagation();S(X.pageX)};W.onmousemove=function(X){if(t=="time"){f=true;var Y=X.pageX-c[V+"Slider"].left-window.pageXOffset;_css(J.timeSliderThumb,{left:Y})}}}function S(W){f=false;var V;if(t=="time"){V=W-c.timeSliderRail.left+window.pageXOffset;var Y=V/c.timeSliderRail.width*Q;if(Y<0){Y=0}else{if(Y>Q){Y=Q-3}}i.jwSeek(Y);if(i.jwGetState()!=a.api.events.state.PLAYING){i.jwPlay()}}else{if(t=="volume"){V=W-c.volumeSliderRail.left-window.pageXOffset;var X=Math.round(V/c.volumeSliderRail.width*100);if(X<0){X=0}else{if(X>100){X=100}}if(i.jwGetMute()){i.jwSetMute(false)}i.jwSetVolume(X)}}t="none"}function r(W){if(W.bufferPercent!==null){e=W.bufferPercent}var X=c.timeSliderRail.width;var V=isNaN(Math.round(X*e/100))?0:Math.round(X*e/100);_css(J.timeSliderBuffer,{width:V})}function T(V){if(V.mute){_hide(J.muteButton);_show(J.unmuteButton);_hide(J.volumeSliderProgress)}else{_show(J.muteButton);_hide(J.unmuteButton);_show(J.volumeSliderProgress)}}function p(V){if(V.newstate==a.api.events.state.BUFFERING||V.newstate==a.api.events.state.PLAYING){_show(J.pauseButton);_hide(J.playButton)}else{_hide(J.pauseButton);_show(J.playButton)}x();if(V.newstate==a.api.events.state.IDLE){_hide(J.timeSliderBuffer);_hide(J.timeSliderProgress);_hide(J.timeSliderThumb);D({id:i.id,duration:i.jwGetDuration(),position:0})}else{_show(J.timeSliderBuffer);if(V.newstate!=a.api.events.state.BUFFERING){_show(J.timeSliderProgress);_show(J.timeSliderThumb)}}}function F(V){r({bufferPercent:0});D(a.utils.extend(V,{position:0,duration:Q}))}function D(Y){if(Y.position!==null){h=Y.position}if(Y.duration!==null){Q=Y.duration}var W=(h===Q===0)?0:h/Q;var V=isNaN(Math.round(c.timeSliderRail.width*W))?0:Math.round(c.timeSliderRail.width*W);var X=V;J.timeSliderProgress.style.width=V+"px";if(!f){if(J.timeSliderThumb){J.timeSliderThumb.style.left=X+"px"}}if(J.durationText){J.durationText.innerHTML=m(Q)}if(J.elapsedText){J.elapsedText.innerHTML=m(h)}}function m(V){str="00:00";if(V>0){str=Math.floor(V/60)<10?"0"+Math.floor(V/60)+":":Math.floor(V/60)+":";str+=Math.floor(V%60)<10?"0"+Math.floor(V%60):Math.floor(V%60)}return str}function l(){var Y,W;var X=document.getElementById(P.id+"_elements").childNodes;for(var V in document.getElementById(P.id+"_elements").childNodes){if(isNaN(parseInt(V,10))){continue}if(X[V].id.indexOf(P.id+"_divider")===0&&W.id.indexOf(P.id+"_divider")===0){X[V].style.display="none"}else{if(X[V].id.indexOf(P.id+"_divider")===0&&Y.style.display!="none"){X[V].style.display="block"}}if(X[V].style.display!="none"){W=X[V]}Y=X[V]}}function u(){l();if(i.jwGetFullscreen()){_show(J.normalscreenButton);_hide(J.fullscreenButton)}else{_hide(J.normalscreenButton);_show(J.fullscreenButton)}var W={width:d};var V={};if(A.position.toUpperCase()==a.html5.view.positions.OVER||i.jwGetFullscreen()){W.left=A.margin;W.width-=2*A.margin;W.top=w-i.skin.getSkinElement("controlbar","background").height-A.margin;W.height=i.skin.getSkinElement("controlbar","background").height}else{W.left=0}V.left=i.skin.getSkinElement("controlbar","capLeft").width;V.width=W.width-i.skin.getSkinElement("controlbar","capLeft").width-i.skin.getSkinElement("controlbar","capRight").width;var X=i.skin.getSkinElement("controlbar","timeSliderCapLeft")===undefined?0:i.skin.getSkinElement("controlbar","timeSliderCapLeft").width;_css(J.timeSliderRail,{width:(V.width-O-B),left:X});if(J.timeSliderCapRight!==undefined){_css(J.timeSliderCapRight,{left:X+(V.width-O-B)})}_css(P,W);_css(J.elements,V);_css(J.background,V);o();return W}function k(Z){if(J.volumeSliderRail!==undefined){var X=isNaN(Z.volume/100)?1:Z.volume/100;var Y=parseInt(J.volumeSliderRail.style.width.replace("px",""),10);var V=isNaN(Math.round(Y*X))?0:Math.round(Y*X);var aa=parseInt(J.volumeSliderRail.style.right.replace("px",""),10);var W=i.skin.getSkinElement("controlbar","volumeSliderCapLeft")===undefined?0:i.skin.getSkinElement("controlbar","volumeSliderCapLeft").width;_css(J.volumeSliderProgress,{width:V,left:W});if(J.volumeSliderCapLeft!==undefined){_css(J.volumeSliderCapLeft,{left:0})}}}function q(){H();G();o();n=true;C();R();P.style.opacity=A.idlehide?0:1}q();return this}})(jwplayer);(function(b){var a=["width","height","state","playlist","item","position","buffer","duration","volume","mute","fullscreen"];b.html5.controller=function(t,r,e,q){var w=t;var y=e;var d=q;var k=r;var A=true;var c=-1;var u=(y.config.debug!==undefined)&&(y.config.debug.toString().toLowerCase()=="console");var i=new b.html5.eventdispatcher(k.id,u);b.utils.extend(this,i);function m(D){i.sendEvent(D.type,D)}y.addGlobalListener(m);function p(){try{if(y.playlist[y.item].levels[0].file.length>0){if(A||y.state==b.api.events.state.IDLE){y.addEventListener(b.api.events.JWPLAYER_MEDIA_BUFFER_FULL,function(){y.getMedia().play()});y.addEventListener(b.api.events.JWPLAYER_MEDIA_TIME,function(E){if(E.position>=y.playlist[y.item].start&&c>=0){y.playlist[y.item].start=c;c=-1}});if(y.config.repeat){y.addEventListener(b.api.events.JWPLAYER_MEDIA_COMPLETE,function(E){setTimeout(n,25)})}y.getMedia().load(y.playlist[y.item]);A=false}else{if(y.state==b.api.events.state.PAUSED){y.getMedia().play()}}}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function B(){try{if(y.playlist[y.item].levels[0].file.length>0){switch(y.state){case b.api.events.state.PLAYING:case b.api.events.state.BUFFERING:y.getMedia().pause();break}}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function x(D){try{if(y.playlist[y.item].levels[0].file.length>0){if(typeof D!="number"){D=parseFloat(D)}switch(y.state){case b.api.events.state.IDLE:if(c<0){c=y.playlist[y.item].start;y.playlist[y.item].start=D}p();break;case b.api.events.state.PLAYING:case b.api.events.state.PAUSED:case b.api.events.state.BUFFERING:y.getMedia().seek(D);break}}return true}catch(E){i.sendEvent(b.api.events.JWPLAYER_ERROR,E)}return false}function j(){try{if(y.playlist[y.item].levels[0].file.length>0&&y.state!=b.api.events.state.IDLE){y.getMedia().stop()}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function g(){try{if(y.playlist[y.item].levels[0].file.length>0){if(y.config.shuffle){o(s())}else{if(y.item+1==y.playlist.length){o(0)}else{o(y.item+1)}}}if(y.state!=b.api.events.state.PLAYING&&y.state!=b.api.events.state.BUFFERING){p()}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function f(){try{if(y.playlist[y.item].levels[0].file.length>0){if(y.config.shuffle){o(s())}else{if(y.item===0){o(y.playlist.length-1)}else{o(y.item-1)}}}if(y.state!=b.api.events.state.PLAYING&&y.state!=b.api.events.state.BUFFERING){p()}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function s(){var D=null;if(y.playlist.length>1){while(D===null){D=Math.floor(Math.random()*y.playlist.length);if(D==y.item){D=null}}}else{D=0}return D}function o(E){y.resetEventListeners();y.addGlobalListener(m);try{if(y.playlist[E].levels[0].file.length>0){var F=y.state;if(F!==b.api.events.state.IDLE){j()}y.item=E;A=true;y.setActiveMediaProvider(y.playlist[y.item]);i.sendEvent(b.api.events.JWPLAYER_PLAYLIST_ITEM,{index:E});if(F==b.api.events.state.PLAYING||F==b.api.events.state.BUFFERING||y.config.chromeless||e.config.autostart===true){p()}}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function z(E){try{switch(typeof(E)){case"number":y.getMedia().volume(E);break;case"string":y.getMedia().volume(parseInt(E,10));break}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function l(E){try{if(typeof E=="undefined"){y.getMedia().mute(!y.mute)}else{if(E.toString().toLowerCase()=="true"){y.getMedia().mute(true)}else{y.getMedia().mute(false)}}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function h(E,D){try{y.width=E;y.height=D;d.resize(E,D);i.sendEvent(b.api.events.JWPLAYER_RESIZE,{width:y.width,height:y.height});return true}catch(F){i.sendEvent(b.api.events.JWPLAYER_ERROR,F)}return false}function v(E){try{if(typeof E=="undefined"){y.fullscreen=!y.fullscreen;d.fullscreen(!y.fullscreen)}else{if(E.toString().toLowerCase()=="true"){y.fullscreen=true;d.fullscreen(true)}else{y.fullscreen=false;d.fullscreen(false)}}i.sendEvent(b.api.events.JWPLAYER_RESIZE,{width:y.width,height:y.height});i.sendEvent(b.api.events.JWPLAYER_FULLSCREEN,{fullscreen:E});return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function C(D){try{j();y.loadPlaylist(D);o(y.item);return true}catch(E){i.sendEvent(b.api.events.JWPLAYER_ERROR,E)}return false}b.html5.controller.repeatoptions={LIST:"LIST",ALWAYS:"ALWAYS",SINGLE:"SINGLE",NONE:"NONE"};function n(){y.resetEventListeners();y.addGlobalListener(m);switch(y.config.repeat.toUpperCase()){case b.html5.controller.repeatoptions.SINGLE:p();break;case b.html5.controller.repeatoptions.ALWAYS:if(y.item==y.playlist.length-1&&!y.config.shuffle){o(0);p()}else{g()}break;case b.html5.controller.repeatoptions.LIST:if(y.item==y.playlist.length-1&&!y.config.shuffle){o(0)}else{g()}break}}this.play=p;this.pause=B;this.seek=x;this.stop=j;this.next=g;this.prev=f;this.item=o;this.setVolume=z;this.setMute=l;this.resize=h;this.setFullscreen=v;this.load=C}})(jwplayer);(function(a){a.html5.defaultSkin=function(){this.text='<?xml version="1.0" ?><skin author="LongTail Video" name="Five" version="1.0"><settings><setting name="backcolor" value="0xFFFFFF"/><setting name="frontcolor" value="0x000000"/><setting name="lightcolor" value="0x000000"/><setting name="screencolor" value="0x000000"/></settings><components><component name="controlbar"><settings><setting name="margin" value="20"/><setting name="fontsize" value="11"/></settings><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFJJREFUeNrslLENwAAIwxLU/09j5AiOgD5hVQzNAVY8JK4qEfHMIKBnd2+BQlBINaiRtL/aV2rdzYBsM6CIONbI1NZENTr3RwdB2PlnJgJ6BRgA4hwu5Qg5iswAAAAASUVORK5CYII="/><element name="capLeft" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD5JREFUeNosi8ENACAMAgnuv14H0Z8asI19XEjhOiKCMmibVgJTUt7V6fe9KXOtSQCfctJHu2q3/ot79hNgANc2OTz9uTCCAAAAAElFTkSuQmCC"/><element name="capRight" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD5JREFUeNosi8ENACAMAgnuv14H0Z8asI19XEjhOiKCMmibVgJTUt7V6fe9KXOtSQCfctJHu2q3/ot79hNgANc2OTz9uTCCAAAAAElFTkSuQmCC"/><element name="divider" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD5JREFUeNosi8ENACAMAgnuv14H0Z8asI19XEjhOiKCMmibVgJTUt7V6fe9KXOtSQCfctJHu2q3/ot79hNgANc2OTz9uTCCAAAAAElFTkSuQmCC"/><element name="playButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEhJREFUeNpiYqABYBo1dNRQ+hr6H4jvA3E8NS39j4SpZvh/LJig4YxEGEqy3kET+w+AOGFQRhTJhrEQkGcczfujhg4CQwECDADpTRWU/B3wHQAAAABJRU5ErkJggg=="/><element name="pauseButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAChJREFUeNpiYBgFo2DwA0YC8v/R1P4nRu+ooaOGUtnQUTAKhgIACDAAFCwQCfAJ4gwAAAAASUVORK5CYII="/><element name="prevButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEtJREFUeNpiYBgFo2Dog/9QDAPyQHweTYwiQ/2B+D0Wi8g2tB+JTdBQRiIMJVkvEy0iglhDF9Aq9uOpHVEwoE+NJDUKRsFgAAABBgDe2hqZcNNL0AAAAABJRU5ErkJggg=="/><element name="nextButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAElJREFUeNpiYBgFo2Dog/9AfB6I5dHE/lNqKAi/B2J/ahsKw/3EGMpIhKEk66WJoaR6fz61IyqemhEFSlL61ExSo2AUDAYAEGAAiG4hj+5t7M8AAAAASUVORK5CYII="/><element name="timeSliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADxJREFUeNpiYBgFo2AU0Bwwzluw+D8tLWARFhKiqQ9YuLg4aWsBGxs7bS1gZ6e5BWyjSX0UjIKhDgACDABlYQOGh5pYywAAAABJRU5ErkJggg=="/><element name="timeSliderBuffer" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD1JREFUeNpiYBgFo2AU0Bww1jc0/aelBSz8/Pw09QELOzs7bS1gY2OjrQWsrKy09gHraFIfBaNgqAOAAAMAvy0DChXHsZMAAAAASUVORK5CYII="/><element name="timeSliderProgress" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAClJREFUeNpiYBgFo2AU0BwwAvF/WlrARGsfjFow8BaMglEwCugAAAIMAOHfAQunR+XzAAAAAElFTkSuQmCC"/><element name="timeSliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAICAYAAAA870V8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABZJREFUeNpiZICA/yCCiQEJUJcDEGAAY0gBD1/m7Q0AAAAASUVORK5CYII="/><element name="muteButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiYBgFIw3MB+L/5Gj8j6yRiRTFyICJXHfTXyMLAXlGati4YDRFDj8AEGAABk8GSqqS4CoAAAAASUVORK5CYII="/><element name="unmuteButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD1JREFUeNpiYBgFgxz8p7bm+cQa+h8LHy7GhEcjIz4bmAjYykiun/8j0fakGPIfTfPgiSr6aB4FVAcAAQYAWdwR1G1Wd2gAAAAASUVORK5CYII="/><element name="volumeSliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGpJREFUeNpi/P//PwM9ABMDncCoRYPfIqqDZcuW1UPp/6AUDcNM1DQYKtRAlaAj1mCSLSLXYIIWUctgDItoZfDA5aOoqKhGEANIM9LVR7SymGDQUctikuOIXkFNdhHEOFrDjlpEd4sAAgwAriRMub95fu8AAAAASUVORK5CYII="/><element name="volumeSliderProgress" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFtJREFUeNpi/P//PwM9ABMDncCoRYPfIlqAeij9H5SiYZiqBqPTlFqE02BKLSLaYFItIttgQhZRzWB8FjENiuRJ7aAbsMQwYMl7wDIsWUUQ42gNO2oR3S0CCDAAKhKq6MLLn8oAAAAASUVORK5CYII="/><element name="fullscreenButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE5JREFUeNpiYBgFo2DQA0YC8v/xqP1PjDlMRDrEgUgxkgHIlfZoriVGjmzLsLFHAW2D6D8eA/9Tw7L/BAwgJE90PvhPpNgoGAVDEQAEGAAMdhTyXcPKcAAAAABJRU5ErkJggg=="/><element name="normalscreenButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEZJREFUeNpiYBgFo2DIg/9UUkOUAf8JiFFsyX88fJyAkcQgYMQjNkzBoAgiezyRbE+tFGSPxQJ7auYBmma0UTAKBhgABBgAJAEY6zON61sAAAAASUVORK5CYII="/></elements></component><component name="display"><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEpJREFUeNrszwENADAIA7DhX8ENoBMZ5KR10EryckCJiIiIiIiIiIiIiIiIiIiIiIh8GmkRERERERERERERERERERERERGRHSPAAPlXH1phYpYaAAAAAElFTkSuQmCC"/><element name="playIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALdJREFUeNrs18ENgjAYhmFouDOCcQJGcARHgE10BDcgTOIosAGwQOuPwaQeuFRi2p/3Sb6EC5L3QCxZBgAAAOCorLW1zMn65TrlkH4NcV7QNcUQt7Gn7KIhxA+qNIR81spOGkL8oFJDyLJRdosqKDDkK+iX5+d7huzwM40xptMQMkjIOeRGo+VkEVvIPfTGIpKASfYIfT9iCHkHrBEzf4gcUQ56aEzuGK/mw0rHpy4AAACAf3kJMACBxjAQNRckhwAAAABJRU5ErkJggg=="/><element name="muteIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNrs1jEOgCAMBVAg7t5/8qaoIy4uoobyXsLCxA+0NCUAAADGUWvdQoQ41x4ixNBB2hBvBskdD3w5ZCkl3+33VqI0kjBBlh9rp+uTcyOP33TnolfsU85XX3yIRpQph8ZQY3wTZtU5AACASA4BBgDHoVuY1/fvOQAAAABJRU5ErkJggg=="/><element name="errorIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWlJREFUeNrsl+1twjAQhsHq/7BBYQLYIBmBDcoGMAIjtBPQTcII2SDtBDBBwrU6pGsUO7YbO470PtKJkz9iH++d4ywWAAAAAABgljRNsyWr2bZzDuJG1rLdZhcMbTjrBCGDyUKsqQLFciJb9bSvuG/WagRVRUVUI6gqy5HVeKWfSgRyJruKIU//TrZTSn2nmlaXThrloi/v9F2STC1W4+Aw5cBzkquRc09bofFNc6YLxEON0VUZS5FPTftO49vMjRsIF3RhOGr7/D/pJw+FKU+q0vDyq8W42jCunDqI3LC5XxNj2wHLU1XjaRnb0Lhykhqhhd8MtSF5J9tbjCv4mXGvKJz/65FF/qJryyaaIvzP2QRxZTX2nTuXjvV/VPFSwyLnW7mpH99yTh1FEVro6JBSd40/pMrRdV8vPtcKl28T2pT8TnFZ4yNosct3Q0io6JfBiz1FlGdqVQH3VHnepAEAAAAAADDzEGAAcTwB10jWgxcAAAAASUVORK5CYII="/><element name="bufferIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAuhJREFUeNrsWr9rU1EUznuNGqvFQh1ULOhiBx0KDtIuioO4pJuik3FxFfUPaAV1FTdx0Q5d2g4FFxehTnEpZHFoBy20tCIWtGq0TZP4HfkeHB5N8m6Sl/sa74XDybvv3vvOd8/Pe4lXrVZT3dD8VJc0B8QBcUAcEAfESktHGeR5XtMfqFQq/f92zPe/NbtGlKTdCY30kuxrpMGO94BlQCXs+rbh3ONgA6BlzP1p20d80gEI5hmA2A92Qua1Q2PtAFISM+bvjMG8U+Q7oA3rQGASwrYCU6WpNdLGYbA+Pq5jjXIiwi8EEa2UDbQSaKOIuV+SlkcCrfjY8XTI9EpKGwP0C2kru2hLtHqa4zoXtZRWyvi4CLwv9Opr6Hkn6A9HKgEANsQ1iqC3Ub/vRUk2JgmRkatK36kVrnt0qObunwUdUUMXMWYpakJsO5Am8tAw2GBIgwWA+G2S2dMpiw0gDioQRQJoKhRb1QiDwlHZUABYbaXWsm5ae6loTE4ZDxN4CZar8foVzOJ2iyZ2kWF3t7YIevffaMT5yJ70kQb2fQ1sE5SHr2wazs2wgMxgbsEKEAgxAvZUJbQLBGTSBMgNrncJbA6AljtS/eKDJ0Ez+DmrQEzXS2h1Ck25kAg0IZcUOaydCy4sYnN2fOA+2AP16gNoHALlQ+fwH7XO4CxLenUpgj4xr6ugY2roPMbMx+Xs18m/E8CVEIhxsNeg83XWOAN6grG3lGbk8uE5fr4B/WH3cJw+co/l9nTYsSGYCJ/lY5/qv0thn6nrIWmjeJcPSnWOeY++AkF8tpJHIMAUs/MaBBpj3znZfQo5psY+ZrG4gv5HickjEOymKjEeRpgyST6IuZcTcWbnjcgdPi5ghxciRKsl1lDSsgwA1i8fssonJgzmTSqfGUkCENndNdAL7PS6QQ7ZYISTo+1qq0LEWjTWcvY4isa4z+yfQB+7ooyHVg5RI7/i1Ijn/vnggDggDogD4oC00P4KMACd/juEHOrS4AAAAABJRU5ErkJggg=="/></elements></component><component name="dock"><elements><element name="button" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFBJREFUeNrs0cEJACAQA8Eofu0fu/W6EM5ZSAFDRpKTBs00CQQEBAQEBAQEBAQEBAQEBATkK8iqbY+AgICAgICAgICAgICAgICAgIC86QowAG5PAQzEJ0lKAAAAAElFTkSuQmCC"/></elements></component><component name="playlist"><elements><element name="item" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAIAAAC1nk4lAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNrs2NEJwCAMBcBYuv/CFuIE9VN47WWCR7iocXR3pdWdGPqqwIoMjYfQeAiNh9B4JHc6MHQVHnjggQceeOCBBx77TifyeOY0iHi8DqIdEY8dD5cL094eePzINB5CO/LwcOTptNB4CP25L4TIbZzpU7UEGAA5wz1uF5rF9AAAAABJRU5ErkJggg=="/><element name="sliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAA8CAIAAADpFA0BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADhJREFUeNrsy6ENACAMAMHClp2wYxZLAg5Fcu9e3OjuOKqqfTMzbs14CIZhGIZhGIZhGP4VLwEGAK/BBnVFpB0oAAAAAElFTkSuQmCC"/><element name="sliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAA8CAIAAADpFA0BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNrsy7ENACAMBLE8++8caFFKKiRffU53112SGs3ttOohGIZhGIZhGIZh+Fe8BRgAiaUGde6NOSEAAAAASUVORK5CYII="/></elements></component></components></skin>';this.xml=null;if(window.DOMParser){parser=new DOMParser();this.xml=parser.parseFromString(this.text,"text/xml")}else{this.xml=new ActiveXObject("Microsoft.XMLDOM");this.xml.async="false";this.xml.loadXML(this.text)}return this}})(jwplayer);(function(a){_css=a.utils.css;_hide=function(b){_css(b,{display:"none"})};_show=function(b){_css(b,{display:"block"})};a.html5.display=function(o,z){var r={icons:true};var j=a.utils.extend({},r,z);var w=o;var d={};var f;var A;var k;var x;var y;var p;var i;var n=w.skin.getComponentSettings("display").bufferrotation===undefined?15:parseInt(w.skin.getComponentSettings("display").bufferrotation,10);var e=w.skin.getComponentSettings("display").bufferinterval===undefined?100:parseInt(w.skin.getComponentSettings("display").bufferinterval,10);var c={display:{style:{cursor:"pointer",top:0,left:0,overflow:"hidden"},click:u},display_icon:{style:{cursor:"pointer",position:"absolute",top:((w.skin.getSkinElement("display","background").height-w.skin.getSkinElement("display","playIcon").height)/2),left:((w.skin.getSkinElement("display","background").width-w.skin.getSkinElement("display","playIcon").width)/2),border:0,margin:0,padding:0,zIndex:3}},display_iconBackground:{style:{cursor:"pointer",position:"absolute",top:((A-w.skin.getSkinElement("display","background").height)/2),left:((f-w.skin.getSkinElement("display","background").width)/2),border:0,backgroundImage:(["url(",w.skin.getSkinElement("display","background").src,")"]).join(""),width:w.skin.getSkinElement("display","background").width,height:w.skin.getSkinElement("display","background").height,margin:0,padding:0,zIndex:2}},display_image:{style:{display:"none",width:f,height:A,position:"absolute",cursor:"pointer",left:0,top:0,margin:0,padding:0,textDecoration:"none",zIndex:1}},display_text:{style:{zIndex:4,position:"relative",opacity:0.8,backgroundColor:parseInt("000000",16),color:parseInt("ffffff",16),textAlign:"center",fontFamily:"Arial,sans-serif",padding:"0 5px",fontSize:14}}};w.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE,l);w.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_MUTE,l);w.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_ITEM,l);w.jwAddEventListener(a.api.events.JWPLAYER_ERROR,t);B();function B(){d.display=s("div","display");d.display_text=s("div","display_text");d.display.appendChild(d.display_text);d.display_image=s("img","display_image");d.display_image.onerror=function(C){_hide(d.display_image)};d.display_image.onload=m;d.display_icon=s("div","display_icon");d.display_iconBackground=s("div","display_iconBackground");d.display.appendChild(d.display_image);d.display_iconBackground.appendChild(d.display_icon);d.display.appendChild(d.display_iconBackground);b()}this.getDisplayElement=function(){return d.display};this.resize=function(D,C){f=D;A=C;_css(d.display,{width:D,height:C});_css(d.display_text,{width:(D-10),top:((A-d.display_text.getBoundingClientRect().height)/2)});_css(d.display_iconBackground,{top:((A-w.skin.getSkinElement("display","background").height)/2),left:((f-w.skin.getSkinElement("display","background").width)/2)});h();l({})};function m(C){k=d.display_image.naturalWidth;x=d.display_image.naturalHeight;h()}function h(){a.utils.stretch(w.jwGetStretching(),d.display_image,f,A,k,x)}function s(C,E){var D=document.createElement(C);D.id=w.id+"_jwplayer_"+E;_css(D,c[E].style);return D}function b(){for(var C in d){if(c[C].click!==undefined){d[C].onclick=c[C].click}}}function u(C){if(typeof C.preventDefault!="undefined"){C.preventDefault()}else{C.returnValue=false}if(w.jwGetState()!=a.api.events.state.PLAYING){w.jwPlay()}else{w.jwPause()}}function g(C){if(i||!j.icons){q();return}_show(d.display_iconBackground);d.display_icon.style.backgroundImage=(["url(",w.skin.getSkinElement("display",C).src,")"]).join("");_css(d.display_icon,{display:"block",width:w.skin.getSkinElement("display",C).width,height:w.skin.getSkinElement("display",C).height,top:(w.skin.getSkinElement("display","background").height-w.skin.getSkinElement("display",C).height)/2,left:(w.skin.getSkinElement("display","background").width-w.skin.getSkinElement("display",C).width)/2});if(w.skin.getSkinElement("display",C+"Over")!==undefined){d.display_icon.onmouseover=function(D){d.display_icon.style.backgroundImage=["url(",w.skin.getSkinElement("display",C+"Over").src,")"].join("")};d.display_icon.onmouseout=function(D){d.display_icon.style.backgroundImage=["url(",w.skin.getSkinElement("display",C).src,")"].join("")}}else{d.display_icon.onmouseover=null;d.display_icon.onmouseout=null}}function q(){_hide(d.display_icon);_hide(d.display_iconBackground)}function t(C){i=true;q();d.display_text.innerHTML=C.error;_show(d.display_text);d.display_text.style.top=((A-d.display_text.getBoundingClientRect().height)/2)+"px"}function v(){var C=d.display_image;d.display_image=s("img","display_image");d.display_image.onerror=function(D){_hide(d.display_image)};d.display_image.onload=m;d.display.replaceChild(d.display_image,C)}function l(C){if((C.type==a.api.events.JWPLAYER_PLAYER_STATE||C.type==a.api.events.JWPLAYER_PLAYLIST_ITEM)&&i){i=false;_hide(d.display_text)}if(p!==undefined){clearInterval(p);p=null;a.utils.animations.rotate(d.display_icon,0)}switch(w.jwGetState()){case a.api.events.state.BUFFERING:g("bufferIcon");y=0;p=setInterval(function(){y+=n;a.utils.animations.rotate(d.display_icon,y%360)},e);g("bufferIcon");break;case a.api.events.state.PAUSED:_css(d.display_image,{background:"transparent no-repeat center center"});g("playIcon");break;case a.api.events.state.IDLE:if(w.jwGetPlaylist()[w.jwGetItem()].image){_css(d.display_image,{display:"block"});d.display_image.src=a.utils.getAbsolutePath(w.jwGetPlaylist()[w.jwGetItem()].image)}else{v()}g("playIcon");break;default:if(w.jwGetMute()){v();g("muteIcon")}else{v();_hide(d.display_iconBackground);_hide(d.display_icon)}break}}return this}})(jwplayer);(function(a){a.html5.dock=function(g,c){function f(){return{align:a.html5.view.positions.RIGHT}}var k=a.utils.extend({},f(),c);var h={};var b=[];var d;var e;var j=document.createElement("div");j.id=g.id+"_jwplayer_dock";this.getDisplayElement=function(){return j};this.setButton=function(p,l,m,n){if(!l&&h[p]){a.utils.arrays.remove(b,p);j.removeChild(h[p].div);delete h[p]}else{if(l){var o;if(!h[p]){b.push(p);o=document.createElement("div");o.style.position="relative";j.appendChild(o);o.appendChild(document.createElement("img"));o.childNodes[0].style.position="absolute";o.childNodes[0].style.left=0;o.childNodes[0].style.top=0;o.childNodes[0].style.zIndex=10;o.appendChild(document.createElement("img"));o.childNodes[1].style.display="none";o.childNodes[1].style.position="absolute";o.childNodes[1].style.left=0;o.childNodes[1].style.top=0;o.childNodes[1].style.zIndex=9;o.appendChild(document.createElement("img"));o.childNodes[2].style.position="absolute";o.childNodes[2].style.left=0;o.childNodes[2].style.top=0;if(g.skin.getSkinElement("dock","button")){o.childNodes[2].src=g.skin.getSkinElement("dock","button").src}o.childNodes[2].style.zIndex=8;o.appendChild(document.createElement("img"));o.childNodes[3].style.display="none";o.childNodes[3].style.position="absolute";o.childNodes[3].style.left=0;o.childNodes[3].style.top=0;o.childNodes[3].style.display="none";o.childNodes[3].style.zIndex=7;if(g.skin.getSkinElement("dock","buttonOver")){o.childNodes[3].src=g.skin.getSkinElement("dock","buttonOver").src}o.onmouseover=function(){o.childNodes[0].style.display="none";o.childNodes[1].style.display="block";if(g.skin.getSkinElement("dock","buttonOver")){o.childNodes[2].style.display="none";o.childNodes[3].style.display="block"}};o.onmouseout=function(){o.childNodes[0].style.display="block";o.childNodes[1].style.display="none";if(g.skin.getSkinElement("dock","buttonOver")){o.childNodes[2].style.display="block";o.childNodes[3].style.display="none"}}}if(!o){o=h[p].div}if(l){o.onclick=function(q){q.preventDefault();a(g.id).callback(p)}}if(m){o.childNodes[0].src=m;o.childNodes[0].style.display="block"}if(n){o.childNodes[1].style.display="none";o.childNodes[1].src=n}h[p]={handler:l,outGraphic:m,overGraphic:n,div:o}}}i(d,e)};function i(n,l){d=n;e=l;if(b.length>0){var p=10;var r=n-g.skin.getSkinElement("dock","button").width-p;var o=p;var q=-1;if(k.align=="left"){q=1;r=p}for(var m=0;m<b.length;m++){var s=Math.floor(o/l);if((o+g.skin.getSkinElement("dock","button").height+p)>((s+1)*l)){o=((s+1)*l)+p;s=Math.floor(o/l)}h[b[m]].div.style.top=(o%l)+"px";h[b[m]].div.style.left=(r+(g.skin.getSkinElement("dock","button").width+p)*s*q)+"px";o+=g.skin.getSkinElement("dock","button").height+p}}}this.resize=i;return this}})(jwplayer);(function(jwplayer){jwplayer.html5.eventdispatcher=function(id,debug){var _id=id;var _debug=debug;var _listeners;var _globallisteners;this.resetEventListeners=function(){_listeners={};_globallisteners=[]};this.resetEventListeners();this.addEventListener=function(type,listener,count){try{if(_listeners[type]===undefined){_listeners[type]=[]}if(typeof(listener)=="string"){eval("listener = "+listener)}_listeners[type].push({listener:listener,count:count})}catch(err){jwplayer.utils.log("error",err)}return false};this.removeEventListener=function(type,listener){try{for(var listenerIndex=0;listenerIndex<_listeners[type].length;listenerIndex++){if(_listeners[type][lisenterIndex].toString()==listener.toString()){_listeners[type].slice(lisenterIndex,lisenterIndex+1);break}}}catch(err){jwplayer.utils.log("error",err)}return false};this.addGlobalListener=function(listener,count){try{if(typeof(listener)=="string"){eval("listener = "+listener)}_globallisteners.push({listener:listener,count:count})}catch(err){jwplayer.utils.log("error",err)}return false};this.removeGlobalListener=function(listener){try{for(var globalListenerIndex=0;globalListenerIndex<_globallisteners.length;globalListenerIndex++){if(_globallisteners[globalListenerIndex].toString()==listener.toString()){_globallisteners.slice(globalListenerIndex,globalListenerIndex+1);break}}}catch(err){jwplayer.utils.log("error",err)}return false};this.sendEvent=function(type,data){if(data===undefined){data={}}jwplayer.utils.extend(data,{id:_id,version:jwplayer.version,type:type});if(_debug){jwplayer.utils.log(type,data)}if(typeof _listeners[type]!="undefined"){for(var listenerIndex=0;listenerIndex<_listeners[type].length;listenerIndex++){try{_listeners[type][listenerIndex].listener(data)}catch(err){jwplayer.utils.log("There was an error while handling a listener",_listeners[type][listenerIndex].listener,err)}if(_listeners[type][listenerIndex].count===1){delete _listeners[type][listenerIndex]}else{if(_listeners[type][listenerIndex].count>0){_listeners[type][listenerIndex].count=_listeners[type][listenerIndex].count-1}}}}for(var globalListenerIndex=0;globalListenerIndex<_globallisteners.length;globalListenerIndex++){try{_globallisteners[globalListenerIndex].listener(data)}catch(err){jwplayer.utils.log("There was an error while handling a listener",_globallisteners[globalListenerIndex].listener,err)}if(_globallisteners[globalListenerIndex].count===1){delete _globallisteners[globalListenerIndex]}else{if(_globallisteners[globalListenerIndex].count>0){_globallisteners[globalListenerIndex].count=_globallisteners[globalListenerIndex].count-1}}}}}})(jwplayer);(function(a){var b={prefix:"http://l.longtailvideo.com/html5/",file:"logo.png",link:"http://www.longtailvideo.com/players/jw-flv-player/",margin:8,out:0.5,over:1,timeout:3,hide:true,position:"bottom-left"};_css=a.utils.css;a.html5.logo=function(l,m){var r=l;var n;var i;var c;j();function j(){p();d();f()}function p(){if(b.prefix){var t=l.version.split(/\W/).splice(0,2).join("/");if(b.prefix.indexOf(t)<0){b.prefix+=t+"/"}}if(m.position==a.html5.view.positions.OVER){m.position=b.position}i=a.utils.extend({},b)}function d(){c=document.createElement("img");c.id=r.id+"_jwplayer_logo";c.style.display="none";c.onload=function(t){_css(c,q());r.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE,s);e()};if(!i.file){return}if(i.file.indexOf("http://")===0){c.src=i.file}else{c.src=i.prefix+i.file}}if(!i.file){return}this.resize=function(u,t){};this.getDisplayElement=function(){return c};function f(){if(i.link){c.onmouseover=h;c.onmouseout=e;c.onclick=o}else{this.mouseEnabled=false}}function o(t){if(typeof t!="undefined"){t.stopPropagation()}r.jwPause();r.jwSetFullscreen(false);if(i.link){window.open(i.link,"_blank")}return}function e(t){if(i.link){c.style.opacity=i.out}return}function h(t){if(i.hide){c.style.opacity=i.over}return}function q(){var v={textDecoration:"none",position:"absolute",cursor:"pointer"};v.display=i.hide?"none":"block";var u=i.position.toLowerCase().split("-");for(var t in u){v[u[t]]=i.margin}return v}function k(){if(i.hide){c.style.display="block";c.style.opacity=0;a.utils.fadeTo(c,i.out,0.1,parseFloat(c.style.opacity));n=setTimeout(function(){g()},i.timeout*1000)}}function g(){if(i.hide){a.utils.fadeTo(c,0,0.1,parseFloat(c.style.opacity))}}function s(t){if(t.newstate==a.api.events.state.BUFFERING){clearTimeout(n);k()}}return this}})(jwplayer);(function(a){var c={ended:a.api.events.state.IDLE,playing:a.api.events.state.PLAYING,pause:a.api.events.state.PAUSED,buffering:a.api.events.state.BUFFERING};var b=a.utils.css;a.html5.mediavideo=function(f,D){var H={abort:t,canplay:m,canplaythrough:m,durationchange:q,emptied:t,ended:m,error:l,loadeddata:q,loadedmetadata:q,loadstart:m,pause:m,play:K,playing:m,progress:A,ratechange:t,seeked:m,seeking:m,stalled:m,suspend:m,timeupdate:K,volumechange:t,waiting:m,canshowcurrentframe:t,dataunavailable:t,empty:t,load:e,loadedfirstframe:t};var I=new a.html5.eventdispatcher();a.utils.extend(this,I);var h=f;var x=D;var E;var G;var d=a.api.events.state.IDLE;var B=null;var n;var g=0;var z=false;var r=false;var M;var L;var i=[];var N;var C=false;function v(){return d}function e(O){}function t(O){}function m(O){if(c[O.type]){s(c[O.type])}}function s(O){if(C){return}if(n){O=a.api.events.state.IDLE}if(O==a.api.events.state.PAUSED&&d==a.api.events.state.IDLE){return}if(O==a.api.events.state.PLAYING&&d==a.api.events.state.IDLE){s(a.api.events.state.BUFFERING);I.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER,{bufferPercent:h.buffer});y();return}if(d!=O){var P=d;h.state=O;d=O;var Q=false;if(O==a.api.events.state.IDLE){p();if(h.position>=h.duration&&(h.position||h.duration)){Q=true}if(x.style.display!="none"&&!h.config.chromeless){x.style.display="none"}}I.sendEvent(a.api.events.JWPLAYER_PLAYER_STATE,{oldstate:P,newstate:O});if(Q){I.sendEvent(a.api.events.JWPLAYER_MEDIA_COMPLETE)}}n=false}function q(O){var P={height:O.target.videoHeight,width:O.target.videoWidth,duration:Math.round(O.target.duration*10)/10};if(h.duration===0||isNaN(h.duration)){h.duration=Math.round(O.target.duration*10)/10}h.playlist[h.item]=a.utils.extend(h.playlist[h.item],P);I.sendEvent(a.api.events.JWPLAYER_MEDIA_META,{metadata:P})}function K(P){if(n){return}if(P!==undefined&&P.target!==undefined){if(h.duration===0||isNaN(h.duration)){h.duration=Math.round(P.target.duration*10)/10}if(!z&&x.readyState>0){s(a.api.events.state.PLAYING)}if(d==a.api.events.state.PLAYING){if(!z&&x.readyState>0){z=true;try{x.currentTime=h.playlist[h.item].start}catch(O){}x.volume=h.volume/100;x.muted=h.mute}h.position=Math.round(P.target.currentTime*10)/10;I.sendEvent(a.api.events.JWPLAYER_MEDIA_TIME,{position:P.target.currentTime,duration:P.target.duration})}}A(P)}function y(){if(E===false&&d==a.api.events.state.BUFFERING){I.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER_FULL);E=true}}function F(){var O=(i[i.length-1]-i[0])/i.length;N=setTimeout(function(){if(!G){A({lengthComputable:true,loaded:1,total:1})}},O*10)}function A(Q){var P,O;if(Q!==undefined&&Q.lengthComputable&&Q.total){o();P=Q.loaded/Q.total*100;O=P/100*(h.duration-x.currentTime);if(50<P&&!G){clearTimeout(N);F()}}else{if((x.buffered!==undefined)&&(x.buffered.length>0)){maxBufferIndex=0;if(maxBufferIndex>=0){P=x.buffered.end(maxBufferIndex)/x.duration*100;O=x.buffered.end(maxBufferIndex)-x.currentTime}}}y();if(!G){if(P==100&&G===false){G=true}if(P!==null&&(P>h.buffer)){h.buffer=Math.round(P);I.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER,{bufferPercent:Math.round(P)})}}}function w(){if(B===null){B=setInterval(function(){K()},100)}}function p(){clearInterval(B);B=null}function l(Q){var P="There was an error: ";if((Q.target.error&&Q.target.tagName.toLowerCase()=="video")||Q.target.parentNode.error&&Q.target.parentNode.tagName.toLowerCase()=="video"){var O=Q.target.error===undefined?Q.target.parentNode.error:Q.target.error;switch(O.code){case O.MEDIA_ERR_ABORTED:P="You aborted the video playback: ";break;case O.MEDIA_ERR_NETWORK:P="A network error caused the video download to fail part-way: ";break;case O.MEDIA_ERR_DECODE:P="The video playback was aborted due to a corruption problem or because the video used features your browser did not support: ";break;case O.MEDIA_ERR_SRC_NOT_SUPPORTED:P="The video could not be loaded, either because the server or network failed or because the format is not supported: ";break;default:P="An unknown error occurred: ";break}}else{if(Q.target.tagName.toLowerCase()=="source"){L--;if(L>0){return}P="The video could not be loaded, either because the server or network failed or because the format is not supported: "}else{a.utils.log("Erroneous error received. Continuing...");return}}u();P+=j();C=true;I.sendEvent(a.api.events.JWPLAYER_ERROR,{error:P});return}function j(){var Q="";for(var P in M.levels){var O=M.levels[P];var R=x.ownerDocument.createElement("source");Q+=a.utils.getAbsolutePath(O.file);if(P<(M.levels.length-1)){Q+=", "}}return Q}this.getDisplayElement=function(){return x};this.play=function(){if(d!=a.api.events.state.PLAYING){if(x.style.display!="block"){x.style.display="block"}x.play();w();if(E){s(a.api.events.state.PLAYING)}}};this.pause=function(){x.pause();s(a.api.events.state.PAUSED)};this.seek=function(O){if(!(h.duration===0||isNaN(h.duration))&&!(h.position===0||isNaN(h.position))){x.currentTime=O;x.play()}};function u(){x.pause();p();h.position=0;n=true;s(a.api.events.state.IDLE)}this.stop=u;this.volume=function(O){x.volume=O/100;h.volume=O;I.sendEvent(a.api.events.JWPLAYER_MEDIA_VOLUME,{volume:Math.round(O)})};this.mute=function(O){x.muted=O;h.mute=O;I.sendEvent(a.api.events.JWPLAYER_MEDIA_MUTE,{mute:O})};this.resize=function(P,O){if(false){b(x,{width:P,height:O})}I.sendEvent(a.api.events.JWPLAYER_MEDIA_RESIZE,{fullscreen:h.fullscreen,width:P,hieght:O})};this.fullscreen=function(O){if(O===true){this.resize("100%","100%")}else{this.resize(h.config.width,h.config.height)}};this.load=function(O){J(O);I.sendEvent(a.api.events.JWPLAYER_MEDIA_LOADED);E=false;G=false;z=false;if(!h.config.chromeless){i=[];o();s(a.api.events.state.BUFFERING);setTimeout(function(){K()},25)}};function o(){var O=new Date().getTime();i.push(O)}this.hasChrome=function(){return r};function J(V){h.duration=V.duration;r=false;M=V;var Q=document.createElement("video");Q.preload="none";C=false;L=0;for(var P=0;P<V.levels.length;P++){var O=V.levels[P];if(a.utils.isYouTube(O.file)){delete Q;k(O.file);return}var R;if(O.type===undefined){var U=a.utils.extension(O.file);if(a.utils.extensionmap[U]!==undefined&&a.utils.extensionmap[U].html5!==undefined){R=a.utils.extensionmap[U].html5}}else{R=O.type}if(!R||Q.canPlayType(R)){var T=x.ownerDocument.createElement("source");T.src=a.utils.getAbsolutePath(O.file);if(R&&!a.utils.isLegacyAndroid()){T.type=R}L++;Q.appendChild(T)}}if(L===0){C=true;I.sendEvent(a.api.events.JWPLAYER_ERROR,{error:"The video could not be loaded because the format is not supported by your browser: "+j()})}if(h.config.chromeless){Q.poster=a.utils.getAbsolutePath(V.image);Q.controls="controls"}Q.style.top=x.style.top;Q.style.left=x.style.left;Q.style.width=x.style.width;Q.style.height=x.style.height;Q.style.zIndex=x.style.zIndex;Q.onload=e;Q.volume=0;x.parentNode.replaceChild(Q,x);Q.id=x.id;x=Q;for(var S in H){x.addEventListener(S,function(W){if(W.target.parentNode!==null){H[W.type](W)}},true)}}function k(S){var P=document.createElement("object");S=["http://www.youtube.com/v/",S.replace(/^[^v]+v.(.{11}).*/,"$1"),"&hl=en_US&fs=1&autoplay=1"].join("");var V={movie:S,allowFullScreen:"true",allowscriptaccess:"always"};for(var O in V){var T=document.createElement("param");T.name=O;T.value=V[O];P.appendChild(T)}var U=document.createElement("embed");var Q={src:S,type:"application/x-shockwave-flash",allowscriptaccess:"always",allowfullscreen:"true",width:document.getElementById(f.id).style.width,height:document.getElementById(f.id).style.height};for(var R in Q){U[R]=Q[R]}P.appendChild(U);P.style.position=x.style.position;P.style.top=x.style.top;P.style.left=x.style.left;P.style.width=document.getElementById(f.id).style.width;P.style.height=document.getElementById(f.id).style.height;P.style.zIndex=2147483000;x.parentNode.replaceChild(P,x);P.id=x.id;x=P;r=true}this.embed=J;return this}})(jwplayer);(function(jwplayer){var _configurableStateVariables=["width","height","start","duration","volume","mute","fullscreen","item","plugins","stretching"];jwplayer.html5.model=function(api,container,options){var _api=api;var _container=container;var _model={id:_container.id,playlist:[],state:jwplayer.api.events.state.IDLE,position:0,buffer:0,config:{width:480,height:320,item:-1,skin:undefined,file:undefined,image:undefined,start:0,duration:0,bufferlength:5,volume:90,mute:false,fullscreen:false,repeat:"none",stretching:jwplayer.utils.stretching.UNIFORM,autostart:false,debug:undefined,screencolor:undefined}};var _media;var _eventDispatcher=new jwplayer.html5.eventdispatcher();var _components=["display","logo","controlbar","dock"];jwplayer.utils.extend(_model,_eventDispatcher);for(var option in options){if(typeof options[option]=="string"){var type=/color$/.test(option)?"color":null;options[option]=jwplayer.utils.typechecker(options[option],type)}var config=_model.config;var path=option.split(".");for(var edge in path){if(edge==path.length-1){config[path[edge]]=options[option]}else{if(config[path[edge]]===undefined){config[path[edge]]={}}config=config[path[edge]]}}}for(var index in _configurableStateVariables){var configurableStateVariable=_configurableStateVariables[index];_model[configurableStateVariable]=_model.config[configurableStateVariable]}var pluginorder=_components.concat([]);if(_model.plugins!==undefined){if(typeof _model.plugins=="string"){var userplugins=_model.plugins.split(",");for(var userplugin in userplugins){if(typeof userplugins[userplugin]=="string"){pluginorder.push(userplugins[userplugin].replace(/^\s+|\s+$/g,""))}}}}if(typeof _model.config.chromeless=="undefined"&&jwplayer.utils.isIOS()){_model.config.chromeless=true}if(_model.config.chromeless){pluginorder=["logo","dock"]}_model.plugins={order:pluginorder,config:{controlbar:{position:jwplayer.html5.view.positions.BOTTOM}},object:{}};if(typeof _model.config.components!="undefined"){for(var component in _model.config.components){_model.plugins.config[component]=_model.config.components[component]}}for(var pluginIndex in _model.plugins.order){var pluginName=_model.plugins.order[pluginIndex];var pluginConfig=_model.config[pluginName]===undefined?{}:_model.config[pluginName];_model.plugins.config[pluginName]=_model.plugins.config[pluginName]===undefined?pluginConfig:jwplayer.utils.extend(_model.plugins.config[pluginName],pluginConfig);if(_model.plugins.config[pluginName].position===undefined){_model.plugins.config[pluginName].position=jwplayer.html5.view.positions.OVER}}_model.loadPlaylist=function(arg,ready){var input;if(typeof arg=="string"){try{input=eval(arg)}catch(err){input=arg}}else{input=arg}var config;switch(jwplayer.utils.typeOf(input)){case"object":config=input;break;case"array":config={playlist:input};break;default:config={file:input};break}_model.playlist=new jwplayer.html5.playlist(config);if(_model.config.shuffle){_model.item=_getShuffleItem()}else{if(_model.config.item>=_model.playlist.length){_model.config.item=_model.playlist.length-1}else{if(_model.config.item<0){_model.config.item=0}}_model.item=_model.config.item}if(!ready){_eventDispatcher.sendEvent(jwplayer.api.events.JWPLAYER_PLAYLIST_LOADED,{playlist:_model.playlist})}_model.setActiveMediaProvider(_model.playlist[_model.item])};function _getShuffleItem(){var result=null;if(_model.playlist.length>1){while(result===null){result=Math.floor(Math.random()*_model.playlist.length);if(result==_model.item){result=null}}}else{result=0}return result}function forward(evt){if(evt.type==jwplayer.api.events.JWPLAYER_MEDIA_LOADED){_container=_media.getDisplayElement()}_eventDispatcher.sendEvent(evt.type,evt)}_model.setActiveMediaProvider=function(playlistItem){if(_media!==undefined){_media.resetEventListeners()}_media=new jwplayer.html5.mediavideo(_model,_container);_media.addGlobalListener(forward);if(_model.config.chromeless){_media.load(playlistItem)}return true};_model.getMedia=function(){return _media};_model.setupPlugins=function(){for(var plugin in _model.plugins.order){try{if(jwplayer.html5[_model.plugins.order[plugin]]!==undefined){_model.plugins.object[_model.plugins.order[plugin]]=new jwplayer.html5[_model.plugins.order[plugin]](_api,_model.plugins.config[_model.plugins.order[plugin]])}else{if(window[_model.plugins.order[plugin]]!==undefined){_model.plugins.object[_model.plugins.order[plugin]]=new window[_model.plugins.order[plugin]](_api,_model.plugins.config[_model.plugins.order[plugin]])}else{_model.plugins.order.splice(plugin,plugin+1)}}}catch(err){jwplayer.utils.log("Could not setup "+_model.plugins.order[plugin])}}};return _model}})(jwplayer);(function(a){a.html5.playlist=function(b){var d=[];if(b.playlist&&b.playlist instanceof Array&&b.playlist.length>0){for(var c in b.playlist){if(!isNaN(parseInt(c))){d.push(new a.html5.playlistitem(b.playlist[c]))}}}else{d.push(new a.html5.playlistitem(b))}return d}})(jwplayer);(function(a){a.html5.playlistitem=function(c){var b={author:"",date:"",description:"",image:"",link:"",mediaid:"",tags:"",title:"",provider:"",file:"",streamer:"",duration:-1,start:0,currentLevel:-1,levels:[]};for(var d in b){if(c[d]!==undefined){b[d]=c[d]}}if(b.levels.length===0){b.levels[0]=new a.html5.playlistitemlevel(b)}return b}})(jwplayer);(function(a){a.html5.playlistitemlevel=function(b){var d={file:"",streamer:"",bitrate:0,width:0};for(var c in d){if(b[c]!==undefined){d[c]=b[c]}}return d}})(jwplayer);(function(a){a.html5.skin=function(){var b={};var c=false;this.load=function(d,e){new a.html5.skinloader(d,function(f){c=true;b=f;e()},function(){new a.html5.skinloader("",function(f){c=true;b=f;e()})})};this.getSkinElement=function(d,e){if(c){try{return b[d].elements[e]}catch(f){a.utils.log("No such skin component / element: ",[d,e])}}return null};this.getComponentSettings=function(d){if(c){return b[d].settings}return null};this.getComponentLayout=function(d){if(c){return b[d].layout}return null}}})(jwplayer);(function(a){a.html5.skinloader=function(f,n,i){var m={};var c=n;var j=i;var e=true;var h;var l=f;var q=false;function k(){if(typeof l!="string"||l===""){d(a.html5.defaultSkin().xml)}else{a.utils.ajax(a.utils.getAbsolutePath(l),function(r){try{if(r.responseXML!==null){d(r.responseXML);return}}catch(s){}d(a.html5.defaultSkin().xml)},function(r){d(a.html5.defaultSkin().xml)})}}function d(w){var C=w.getElementsByTagName("component");if(C.length===0){return}for(var F=0;F<C.length;F++){var A=C[F].getAttribute("name");var z={settings:{},elements:{},layout:{}};m[A]=z;var E=C[F].getElementsByTagName("elements")[0].getElementsByTagName("element");for(var D=0;D<E.length;D++){b(E[D],A)}var x=C[F].getElementsByTagName("settings")[0];if(x!==undefined&&x.childNodes.length>0){var I=x.getElementsByTagName("setting");for(var N=0;N<I.length;N++){var O=I[N].getAttribute("name");var G=I[N].getAttribute("value");var v=/color$/.test(O)?"color":null;m[A].settings[O]=a.utils.typechecker(G,v)}}var J=C[F].getElementsByTagName("layout")[0];if(J!==undefined&&J.childNodes.length>0){var K=J.getElementsByTagName("group");for(var u=0;u<K.length;u++){var y=K[u];m[A].layout[y.getAttribute("position")]={elements:[]};for(var M=0;M<y.attributes.length;M++){var B=y.attributes[M];m[A].layout[y.getAttribute("position")][B.name]=B.value}var L=y.getElementsByTagName("*");for(var t=0;t<L.length;t++){var r=L[t];m[A].layout[y.getAttribute("position")].elements.push({type:r.tagName});for(var s=0;s<r.attributes.length;s++){var H=r.attributes[s];m[A].layout[y.getAttribute("position")].elements[t][H.name]=H.value}if(m[A].layout[y.getAttribute("position")].elements[t].name===undefined){m[A].layout[y.getAttribute("position")].elements[t].name=r.tagName}}}}e=false;p()}}function p(){clearInterval(h);if(!q){h=setInterval(function(){o()},100)}}function b(w,v){var u=new Image();var r=w.getAttribute("name");var t=w.getAttribute("src");var y;if(t.indexOf("data:image/png;base64,")===0){y=t}else{var s=a.utils.getAbsolutePath(l);var x=s.substr(0,s.lastIndexOf("/"));y=[x,v,t].join("/")}m[v].elements[r]={height:0,width:0,src:"",ready:false};u.onload=function(z){g(u,r,v)};u.onerror=function(z){q=true;p();j()};u.src=y}function o(){for(var r in m){if(r!="properties"){for(var s in m[r].elements){if(!m[r].elements[s].ready){return}}}}if(e===false){clearInterval(h);c(m)}}function g(r,t,s){m[s].elements[t].height=r.height;m[s].elements[t].width=r.width;m[s].elements[t].src=r.src;m[s].elements[t].ready=true;p()}k()}})(jwplayer);(function(a){a.html5.api=function(b,k){var j={};var e=document.createElement("div");b.parentNode.replaceChild(e,b);e.id=b.id;j.version=a.version;j.id=e.id;var i=new a.html5.model(j,e,k);var g=new a.html5.view(j,e,i);var h=new a.html5.controller(j,e,i,g);j.skin=new a.html5.skin();j.jwPlay=function(l){if(typeof l=="undefined"){d()}else{if(l.toString().toLowerCase()=="true"){h.play()}else{h.pause()}}};j.jwPause=function(l){if(typeof l=="undefined"){d()}else{if(l.toString().toLowerCase()=="true"){h.pause()}else{h.play()}}};function d(){if(i.state==a.api.events.state.PLAYING||i.state==a.api.events.state.BUFFERING){h.pause()}else{h.play()}}j.jwStop=h.stop;j.jwSeek=h.seek;j.jwPlaylistItem=h.item;j.jwPlaylistNext=h.next;j.jwPlaylistPrev=h.prev;j.jwResize=h.resize;j.jwLoad=h.load;function f(l){return function(){return i[l]}}j.jwGetItem=f("item");j.jwGetPosition=f("position");j.jwGetDuration=f("duration");j.jwGetBuffer=f("buffer");j.jwGetWidth=f("width");j.jwGetHeight=f("height");j.jwGetFullscreen=f("fullscreen");j.jwSetFullscreen=h.setFullscreen;j.jwGetVolume=f("volume");j.jwSetVolume=h.setVolume;j.jwGetMute=f("mute");j.jwSetMute=h.setMute;j.jwGetStretching=f("stretching");j.jwGetState=f("state");j.jwGetVersion=function(){return j.version};j.jwGetPlaylist=function(){return i.playlist};j.jwAddEventListener=h.addEventListener;j.jwRemoveEventListener=h.removeEventListener;j.jwSendEvent=h.sendEvent;j.jwDockSetButton=function(o,l,m,n){i.plugins.object.dock.setButton(o,l,m,n)};j.jwGetLevel=function(){};j.jwGetBandwidth=function(){};j.jwGetLockState=function(){};j.jwLock=function(){};j.jwUnlock=function(){};function c(n,m,l){return function(){n.loadPlaylist(n.config,true);n.setupPlugins();m.setup(n.getMedia().getDisplayElement());var o={id:j.id,version:j.version};l.sendEvent(a.api.events.JWPLAYER_READY,o);if(playerReady!==undefined){playerReady(o)}if(window[n.config.playerReady]!==undefined){window[n.config.playerReady](o)}n.sendEvent(a.api.events.JWPLAYER_PLAYLIST_LOADED,{playlist:n.playlist});l.item(n.item)}}if(i.config.chromeless){setTimeout(c(i,g,h),25)}else{j.skin.load(i.config.skin,c(i,g,h))}return j}})(jwplayer);1 var jwplayer=function(a){if(jwplayer.api){return jwplayer.api.selectPlayer(a)}};var $jw=jwplayer;jwplayer.version="5.5.1625";jwplayer.vid=document.createElement("video");jwplayer.audio=document.createElement("audio");jwplayer.source=document.createElement("source");(function(b){b.utils=function(){};b.utils.typeOf=function(d){var c=typeof d;if(c==="object"){if(d){if(d instanceof Array){c="array"}}else{c="null"}}return c};b.utils.extend=function(){var c=b.utils.extend["arguments"];if(c.length>1){for(var e=1;e<c.length;e++){for(var d in c[e]){c[0][d]=c[e][d]}}return c[0]}return null};b.utils.clone=function(f){var c;var d=b.utils.clone["arguments"];if(d.length==1){switch(b.utils.typeOf(d[0])){case"object":c={};for(var e in d[0]){c[e]=b.utils.clone(d[0][e])}break;case"array":c=[];for(var e in d[0]){c[e]=b.utils.clone(d[0][e])}break;default:return d[0];break}}return c};b.utils.extension=function(c){c=c.substring(c.lastIndexOf("/")+1,c.length);c=c.split("?")[0];if(c.lastIndexOf(".")>-1){return c.substr(c.lastIndexOf(".")+1,c.length).toLowerCase()}return};b.utils.html=function(c,d){c.innerHTML=d};b.utils.wrap=function(c,d){c.parentNode.replaceChild(d,c);d.appendChild(c)};b.utils.ajax=function(f,e,c){var d;if(window.XMLHttpRequest){d=new XMLHttpRequest()}else{d=new ActiveXObject("Microsoft.XMLHTTP")}d.onreadystatechange=function(){if(d.readyState===4){if(d.status===200){if(e){e(d)}}else{if(c){c(f)}}}};d.open("GET",f,true);d.send(null);return d};b.utils.load=function(d,e,c){d.onreadystatechange=function(){if(d.readyState===4){if(d.status===200){if(e){e()}}else{if(c){c()}}}}};b.utils.find=function(d,c){return d.getElementsByTagName(c)};b.utils.append=function(c,d){c.appendChild(d)};b.utils.isIE=function(){return((!+"\v1")||(typeof window.ActiveXObject!="undefined"))};b.utils.isLegacyAndroid=function(){var c=navigator.userAgent.toLowerCase();return(c.match(/android 2.[012]/i)!==null)};b.utils.isIOS=function(){var c=navigator.userAgent.toLowerCase();return(c.match(/iP(hone|ad)/i)!==null)};b.utils.getFirstPlaylistItemFromConfig=function(c){var d={};var e;if(c.playlist&&c.playlist.length){e=c.playlist[0]}else{e=c}d.file=e.file;d.levels=e.levels;d.streamer=e.streamer;d.playlistfile=e.playlistfile;if(d.file&&d.file.toLowerCase().indexOf("youtube.com")>-1){d.provider="youtube"}if(d.streamer&&d.streamer.toLowerCase().indexOf("rtmp://")==0){d.provider="rtmp"}if(e.type){d.provider=e.type.toLowerCase()}else{if(e.provider){d.provider=e.provider.toLowerCase()}}return d};b.utils.getOuterHTML=function(d){if(d.outerHTML){return d.outerHTML}else{var e=d.parentNode;var c=document.createElement(e.tagName);var g=document.createElement(d.tagName);e.replaceChild(g,d);c.appendChild(d);var f=c.innerHTML;e.replaceChild(d,g);return f}};b.utils.setOuterHTML=function(f,e){if(f.outerHTML){f.outerHTML=e}else{var g=document.createElement("div");g.innerHTML=e;var c=document.createRange();c.selectNodeContents(g);var d=c.extractContents();f.parentNode.insertBefore(d,f);f.parentNode.removeChild(f)}};b.utils.hasFlash=function(){return(typeof navigator.plugins!="undefined"&&typeof navigator.plugins["Shockwave Flash"]!="undefined")||(typeof window.ActiveXObject!="undefined")};b.utils.getPluginName=function(c){if(c.lastIndexOf("/")>=0){c=c.substring(c.lastIndexOf("/")+1,c.length)}if(c.lastIndexOf("-")>=0){c=c.substring(0,c.lastIndexOf("-"))}if(c.lastIndexOf(".swf")>=0){c=c.substring(0,c.lastIndexOf(".swf"))}if(c.lastIndexOf(".js")>=0){c=c.substring(0,c.lastIndexOf(".js"))}return c};b.utils.getAbsolutePath=function(j,h){if(h===undefined){h=document.location.href}if(j===undefined){return undefined}if(a(j)){return j}var k=h.substring(0,h.indexOf("://")+3);var g=h.substring(k.length,h.indexOf("/",k.length+1));var d;if(j.indexOf("/")===0){d=j.split("/")}else{var e=h.split("?")[0];e=e.substring(k.length+g.length+1,e.lastIndexOf("/"));d=e.split("/").concat(j.split("/"))}var c=[];for(var f=0;f<d.length;f++){if(!d[f]||d[f]===undefined||d[f]=="."){continue}else{if(d[f]==".."){c.pop()}else{c.push(d[f])}}}return k+g+"/"+c.join("/")};function a(d){if(d===null){return}var e=d.indexOf("://");var c=d.indexOf("?");return(e>0&&(c<0||(c>e)))}b.utils.pluginPathType={ABSOLUTE:"ABSOLUTE",RELATIVE:"RELATIVE",CDN:"CDN"};b.utils.getPluginPathType=function(d){if(typeof d!="string"){return}d=d.split("?")[0];var e=d.indexOf("://");if(e>0){return b.utils.pluginPathType.ABSOLUTE}var c=d.indexOf("/");var f=b.utils.extension(d);if(e<0&&c<0&&(!f||!isNaN(f))){return b.utils.pluginPathType.CDN}return b.utils.pluginPathType.RELATIVE};b.utils.mapEmpty=function(c){for(var d in c){return false}return true};b.utils.mapLength=function(d){var c=0;for(var e in d){c++}return c};b.utils.log=function(d,c){if(typeof console!="undefined"&&typeof console.log!="undefined"){if(c){console.log(d,c)}else{console.log(d)}}};b.utils.css=function(d,g,c){if(d!==undefined){for(var e in g){try{if(typeof g[e]==="undefined"){continue}else{if(typeof g[e]=="number"&&!(e=="zIndex"||e=="opacity")){if(isNaN(g[e])){continue}if(e.match(/color/i)){g[e]="#"+b.utils.strings.pad(g[e].toString(16),6)}else{g[e]=Math.ceil(g[e])+"px"}}}d.style[e]=g[e]}catch(f){}}}};b.utils.isYouTube=function(c){return c.indexOf("youtube.com")>-1};b.utils.getYouTubeId=function(c){c.indexOf("youtube.com">0)};b.utils.transform=function(c,d){c.style.webkitTransform=d;c.style.MozTransform=d;c.style.OTransform=d};b.utils.stretch=function(h,m,l,f,k,g){if(typeof l=="undefined"||typeof f=="undefined"||typeof k=="undefined"||typeof g=="undefined"){return}var d=l/k;var e=f/g;var j=0;var i=0;m.style.overflow="hidden";b.utils.transform(m,"");var c={};switch(h.toUpperCase()){case b.utils.stretching.NONE:c.width=k;c.height=g;break;case b.utils.stretching.UNIFORM:if(d>e){c.width=k*e;c.height=g*e}else{c.width=k*d;c.height=g*d}break;case b.utils.stretching.FILL:if(d>e){c.width=k*d;c.height=g*d}else{c.width=k*e;c.height=g*e}break;case b.utils.stretching.EXACTFIT:b.utils.transform(m,["scale(",d,",",e,")"," translate(0px,0px)"].join(""));c.width=k;c.height=g;break;default:break}c.top=(f-c.height)/2;c.left=(l-c.width)/2;b.utils.css(m,c)};b.utils.stretching={NONE:"NONE",FILL:"FILL",UNIFORM:"UNIFORM",EXACTFIT:"EXACTFIT"}})(jwplayer);(function(a){a.events=function(){};a.events.COMPLETE="COMPLETE";a.events.ERROR="ERROR"})(jwplayer);(function(jwplayer){jwplayer.events.eventdispatcher=function(debug){var _debug=debug;var _listeners;var _globallisteners;this.resetEventListeners=function(){_listeners={};_globallisteners=[]};this.resetEventListeners();this.addEventListener=function(type,listener,count){try{if(_listeners[type]===undefined){_listeners[type]=[]}if(typeof(listener)=="string"){eval("listener = "+listener)}_listeners[type].push({listener:listener,count:count})}catch(err){jwplayer.utils.log("error",err)}return false};this.removeEventListener=function(type,listener){try{for(var listenerIndex=0;listenerIndex<_listeners[type].length;listenerIndex++){if(_listeners[type][lisenterIndex].toString()==listener.toString()){_listeners[type].slice(lisenterIndex,lisenterIndex+1);break}}}catch(err){jwplayer.utils.log("error",err)}return false};this.addGlobalListener=function(listener,count){try{if(typeof(listener)=="string"){eval("listener = "+listener)}_globallisteners.push({listener:listener,count:count})}catch(err){jwplayer.utils.log("error",err)}return false};this.removeGlobalListener=function(listener){try{for(var globalListenerIndex=0;globalListenerIndex<_globallisteners.length;globalListenerIndex++){if(_globallisteners[globalListenerIndex].toString()==listener.toString()){_globallisteners.slice(globalListenerIndex,globalListenerIndex+1);break}}}catch(err){jwplayer.utils.log("error",err)}return false};this.sendEvent=function(type,data){if(data===undefined){data={}}if(_debug){jwplayer.utils.log(type,data)}if(typeof _listeners[type]!="undefined"){for(var listenerIndex=0;listenerIndex<_listeners[type].length;listenerIndex++){try{_listeners[type][listenerIndex].listener(data)}catch(err){jwplayer.utils.log("There was an error while handling a listener",_listeners[type][listenerIndex].listener,err)}if(_listeners[type][listenerIndex].count===1){delete _listeners[type][listenerIndex]}else{if(_listeners[type][listenerIndex].count>0){_listeners[type][listenerIndex].count=_listeners[type][listenerIndex].count-1}}}}for(var globalListenerIndex=0;globalListenerIndex<_globallisteners.length;globalListenerIndex++){try{_globallisteners[globalListenerIndex].listener(data)}catch(err){jwplayer.utils.log("There was an error while handling a listener",_globallisteners[globalListenerIndex].listener,err)}if(_globallisteners[globalListenerIndex].count===1){delete _globallisteners[globalListenerIndex]}else{if(_globallisteners[globalListenerIndex].count>0){_globallisteners[globalListenerIndex].count=_globallisteners[globalListenerIndex].count-1}}}}}})(jwplayer);(function(a){var b={};a.utils.animations=function(){};a.utils.animations.transform=function(c,d){c.style.webkitTransform=d;c.style.MozTransform=d;c.style.OTransform=d};a.utils.animations.transformOrigin=function(c,d){c.style.webkitTransformOrigin=d;c.style.MozTransformOrigin=d;c.style.OTransformOrigin=d};a.utils.animations.rotate=function(c,d){a.utils.animations.transform(c,["rotate(",d,"deg)"].join(""))};a.utils.cancelAnimation=function(c){delete b[c.id]};a.utils.fadeTo=function(l,f,e,i,h,d){if(b[l.id]!=d&&d!==undefined){return}var c=new Date().getTime();if(d>c){setTimeout(function(){a.utils.fadeTo(l,f,e,i,0,d)},d-c)}l.style.display="block";if(i===undefined){i=l.style.opacity===""?1:l.style.opacity}if(l.style.opacity==f&&l.style.opacity!==""&&d!==undefined){if(f===0){l.style.display="none"}return}if(d===undefined){d=c;b[l.id]=d}if(h===undefined){h=0}var j=(c-d)/(e*1000);j=j>1?1:j;var k=f-i;var g=i+(j*k);if(g>1){g=1}else{if(g<0){g=0}}l.style.opacity=g;if(h>0){b[l.id]=d+h*1000;a.utils.fadeTo(l,f,e,i,0,b[l.id]);return}setTimeout(function(){a.utils.fadeTo(l,f,e,i,0,d)},10)}})(jwplayer);(function(a){a.utils.arrays=function(){};a.utils.arrays.indexOf=function(c,d){for(var b=0;b<c.length;b++){if(c[b]==d){return b}}return -1};a.utils.arrays.remove=function(c,d){var b=a.utils.arrays.indexOf(c,d);if(b>-1){c.splice(b,1)}}})(jwplayer);(function(a){a.utils.extensionmap={"3gp":{html5:"video/3gpp",flash:"video"},"3gpp":{html5:"video/3gpp"},"3g2":{html5:"video/3gpp2",flash:"video"},"3gpp2":{html5:"video/3gpp2"},flv:{flash:"video"},f4a:{html5:"audio/mp4"},f4b:{html5:"audio/mp4",flash:"video"},f4p:{html5:"video/mp4",flash:"video"},f4v:{html5:"video/mp4",flash:"video"},mov:{html5:"video/quicktime",flash:"video"},m4a:{html5:"audio/mp4",flash:"video"},m4b:{html5:"audio/mp4"},m4p:{html5:"audio/mp4"},m4v:{html5:"video/mp4",flash:"video"},mkv:{html5:"video/x-matroska"},mp4:{html5:"video/mp4",flash:"video"},rbs:{flash:"sound"},sdp:{html5:"application/sdp",flash:"video"},vp6:{html5:"video/x-vp6"},aac:{html5:"audio/aac",flash:"video"},mp3:{flash:"sound"},ogg:{html5:"audio/ogg"},ogv:{html5:"video/ogg"},webm:{html5:"video/webm"},m3u8:{html5:"audio/x-mpegurl"},gif:{flash:"image"},jpeg:{flash:"image"},jpg:{flash:"image"},swf:{flash:"image"},png:{flash:"image"}}})(jwplayer);(function(e){e.utils.mediaparser=function(){};var g={element:{width:"width",height:"height",id:"id","class":"className",name:"name"},media:{src:"file",preload:"preload",autoplay:"autostart",loop:"repeat",controls:"controls"},source:{src:"file",type:"type",media:"media","data-jw-width":"width","data-jw-bitrate":"bitrate"},video:{poster:"image"}};var f={};e.utils.mediaparser.parseMedia=function(i){return d(i)};function c(j,i){if(i===undefined){i=g[j]}else{e.utils.extend(i,g[j])}return i}function d(m,i){if(f[m.tagName.toLowerCase()]&&(i===undefined)){return f[m.tagName.toLowerCase()](m)}else{i=c("element",i);var n={};for(var j in i){if(j!="length"){var l=m.getAttribute(j);if(!(l===""||l===undefined||l===null)){n[i[j]]=m.getAttribute(j)}}}var k=m.style["#background-color"];if(k&&!(k=="transparent"||k=="rgba(0, 0, 0, 0)")){n.screencolor=k}return n}}function h(n,k){k=c("media",k);var l=[];var j=e.utils.selectors("source",n);for(var m in j){if(!isNaN(m)){l.push(a(j[m]))}}var o=d(n,k);if(o.file!==undefined){l[0]={file:o.file}}o.levels=l;return o}function a(k,j){j=c("source",j);var i=d(k,j);i.width=i.width?i.width:0;i.bitrate=i.bitrate?i.bitrate:0;return i}function b(k,j){j=c("video",j);var i=h(k,j);return i}f.media=h;f.audio=h;f.source=a;f.video=b})(jwplayer);(function(a){a.utils.loaderstatus={NEW:"NEW",LOADING:"LOADING",ERROR:"ERROR",COMPLETE:"COMPLETE"};a.utils.scriptloader=function(c){var d=a.utils.loaderstatus.NEW;var b=new a.events.eventdispatcher();a.utils.extend(this,b);this.load=function(){if(d==a.utils.loaderstatus.NEW){d=a.utils.loaderstatus.LOADING;var e=document.createElement("script");e.onload=function(f){d=a.utils.loaderstatus.COMPLETE;b.sendEvent(a.events.COMPLETE)};e.onerror=function(f){d=a.utils.loaderstatus.ERROR;b.sendEvent(a.events.ERROR)};e.onreadystatechange=function(){if(script.readyState=="loaded"||script.readyState=="complete"){d=a.utils.loaderstatus.COMPLETE;b.sendEvent(a.events.COMPLETE)}};document.getElementsByTagName("head")[0].appendChild(e);e.src=c}};this.getStatus=function(){return d}}})(jwplayer);(function(a){a.utils.selectors=function(b,d){if(d===undefined){d=document}b=a.utils.strings.trim(b);var c=b.charAt(0);if(c=="#"){return d.getElementById(b.substr(1))}else{if(c=="."){if(d.getElementsByClassName){return d.getElementsByClassName(b.substr(1))}else{return a.utils.selectors.getElementsByTagAndClass("*",b.substr(1))}}else{if(b.indexOf(".")>0){selectors=b.split(".");return a.utils.selectors.getElementsByTagAndClass(selectors[0],selectors[1])}else{return d.getElementsByTagName(b)}}}return null};a.utils.selectors.getElementsByTagAndClass=function(e,h,g){elements=[];if(g===undefined){g=document}var f=g.getElementsByTagName(e);for(var d=0;d<f.length;d++){if(f[d].className!==undefined){var c=f[d].className.split(" ");for(var b=0;b<c.length;b++){if(c[b]==h){elements.push(f[d])}}}}return elements}})(jwplayer);(function(a){a.utils.strings=function(){};a.utils.strings.trim=function(b){return b.replace(/^\s*/,"").replace(/\s*$/,"")};a.utils.strings.pad=function(c,d,b){if(!b){b="0"}while(c.length<d){c=b+c}return c};a.utils.strings.serialize=function(b){if(b==null){return null}else{if(b=="true"){return true}else{if(b=="false"){return false}else{if(isNaN(Number(b))||b.length>5||b.length==0){return b}else{return Number(b)}}}}};a.utils.strings.seconds=function(d){d=d.replace(",",".");var b=d.split(":");var c=0;if(d.substr(-1)=="s"){c=Number(d.substr(0,d.length-1))}else{if(d.substr(-1)=="m"){c=Number(d.substr(0,d.length-1))*60}else{if(d.substr(-1)=="h"){c=Number(d.substr(0,d.length-1))*3600}else{if(b.length>1){c=Number(b[b.length-1]);c+=Number(b[b.length-2])*60;if(b.length==3){c+=Number(b[b.length-3])*3600}}else{c=Number(d)}}}}return c};a.utils.strings.xmlAttribute=function(b,c){for(var d in b.attributes){if(b.attributes[d].name&&b.attributes[d].name.toLowerCase()==c.toLowerCase()){return b.attributes[d].value.toString()}}return""}})(jwplayer);(function(c){var d=new RegExp(/^(#|0x)[0-9a-fA-F]{3,6}/);c.utils.typechecker=function(g,f){f=f===null?b(g):f;return e(g,f)};function b(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(f===null){return g}switch(f){case"color":if(g.length>0){return a(g)}return null;case"integer":return parseInt(g,10);case"float":return parseFloat(g);case"boolean":if(g.toLowerCase()=="true"){return true}else{if(g=="1"){return true}}return false}return g}function a(f){switch(f.toLowerCase()){case"blue":return parseInt("0000FF",16);case"green":return parseInt("00FF00",16);case"red":return parseInt("FF0000",16);case"cyan":return parseInt("00FFFF",16);case"magenta":return parseInt("FF00FF",16);case"yellow":return parseInt("FFFF00",16);case"black":return parseInt("000000",16);case"white":return parseInt("FFFFFF",16);default:f=f.replace(/(#|0x)?([0-9A-F]{3,6})$/gi,"$2");if(f.length==3){f=f.charAt(0)+f.charAt(0)+f.charAt(1)+f.charAt(1)+f.charAt(2)+f.charAt(2)}return parseInt(f,16)}return parseInt("000000",16)}})(jwplayer);(function(a){var b={};a.plugins=function(){};a.plugins.loadPlugins=function(c){return new a.plugins.pluginloader(new a.plugins.model(b),c)};a.plugins.registerPlugin=function(e,d,c){if(b[e]){b[e].registerPlugin(e,d,c)}}})(jwplayer);(function(a){a.plugins.loader=function(g,j,l,h,r,q){var e=[];var f=false;var d=[];function o(){if(e.length==0&&!f){return true}for(var s=0;s<e.length;s++){if(h[e[s]]||l[e[s]]){e.splice(s,1)}}return(e.length==0&&!f)}this.isComplete=o;function i(){var s=[];for(var t=0;t<d.length;t++){var v=a.utils.getPluginName(d[t]);if(!l[v]){var u={id:d[t],js:{},flash:{}};if(h[v]){if(h[v].js.template){u.js.template=h[v].js.template}if(h[v].flash.src){u.flash.src=h[v].flash.src}}s.push(u)}}return s}function k(){f=true;if(g){if(typeof g=="string"){d=g.replace(/\s*/g,"").split(",")}else{for(var t in g){if(t&&typeof t=="string"){d.push(t)}}}for(var s=0;s<d.length;s++){c(d[s])}}f=false}function n(){if(o()){q()}}function c(u){var v=a.utils.getPluginName(u);if(h[v]||l[v]){return}else{if(j[v]){e.push(v);return}}if(u.lastIndexOf(".swf")>-1){a.plugins.registerPlugin(v,u)}else{if(e.toString().indexOf(v)<0){var s=p(u);j[v]={src:s};l[v]=false;e.push(v);var t=document.createElement("script");document.getElementsByTagName("head")[0].appendChild(t);t.type="text/javascript";t.onload=b(v);t.onerror=m(v,u);t.src=s}}}function b(s){return function(t){if(h[s]){e.splice(e.indexOf(s),1)}}}function m(t,s){return function(u){if(s.lastIndexOf("/")<0&&s.lastIndexOf(".")<0){if(h[s]){e.splice(e.indexOf(s),1)}a.plugins.registerPlugin(s);return}a.plugins.pluginFailed(t)}}function p(s){if(s.lastIndexOf("/")>-1||s.lastIndexOf(".")>-1){return s}var t=a.utils.getPluginName(s);return r+a.version.split(".")[0]+"/"+t+"/"+t+".js"}k();this.setupPlugins=function(x,u,A){plugins=i();var t={length:0,plugins:{}};var v={};for(var w=0;w<plugins.length;w++){var y=a.utils.getPluginName(plugins[w].id);if(plugins[w].flash.src){if(a.utils.getPathType(plugins[w].flash.src)=="relative"){plugins[w].flash.src=a.utils.getAbsolutePath(plugins[w].flash.src,a.utils.getAbsolutePath(plugins[w].id))}t.plugins[plugins[w].flash.src]=u.plugins[plugins[w].id];t.length++}if(plugins[w].js.template){var s=document.createElement("div");s.id=x.id+"_"+y;s.style.position="absolute";s.style.zIndex=w+10;var z=new plugins[w].js.template(x,s,u.plugins[plugins[w].id]);v[y]=z;if(typeof z.resize!="undefined"){x.onReady(A(z,s,true));x.onResize(A(z,s))}}}x.plugins=v;return t};return this}})(jwplayer);(function(a){a.plugins.model=function(b){this.addPlugin=function(c){var d=a.utils.getPluginName(c);if(!b[d]){b[d]=new a.plugins.plugin(c)}return b[d]}}})(jwplayer);(function(a){a.plugins.plugin=function(g){var e="http://plugins.longtailvideo.com";var h=a.utils.loaderstatus.NEW;var i;var d;var f=new a.events.eventdispatcher();a.utils.extend(this,f);function b(){switch(a.utils.getPluginPathType(g)){case a.utils.pluginPathType.ABSOLUTE:return g;case a.utils.pluginPathType.RELATIVE:return a.utils.getAbsolutePath(g,window.location.href);case a.utils.pluginPathType.CDN:var j=a.utils.getPluginName(g);return pluginRepository+a.version.split(".")[0]+"/"+j+"/"+j+".js"}}function c(j){h=a.utils.loaderstatus.ERROR;f.sendEvent(a.events.ERROR)}this.load=function(){if(h==a.utils.loaderstatus.NEW){if(g.lastIndexOf(".swf")>0){i=g;h=a.utils.loaderstatus.COMPLETE;f.sendEvent(a.events.COMPLETE);return}h=a.utils.loaderstatus.LOADING;var j=new a.utils.scriptloader(b());j.addEventListener(a.events.ERROR,c);j.load()}};this.registerPlugin=function(l,k,j){if(k&&j){i=j;d=k}else{if(typeof k=="string"){i=k}else{if(typeof k=="function"){d=k}else{if(!k&&!j){i=l}}}}h=a.utils.loaderstatus.COMPLETE;f.sendEvent(a.events.COMPLETE)};this.getStatus=function(){return h};this.getPluginName=function(){return a.utils.getPluginName(g)};this.getFlashPath=function(){if(i){switch(a.utils.getPluginPathType(i)){case a.utils.pluginPathType.ABSOLUTE:return i;case a.utils.pluginPathType.RELATIVE:if(g.lastIndexOf(".swf")>0){return a.utils.getAbsolutePath(i,window.location.href)}return a.utils.getAbsolutePath(i,b());case a.utils.pluginPathType.CDN:return i}}return null};this.getJS=function(){return d};this.getNewInstance=function(k,j,l){return new d(k,j,l)};this.getURL=function(){return g}}})(jwplayer);(function(a){a.plugins.pluginloader=function(e,d){var h={};var f=a.utils.loaderstatus.NEW;var g=false;var b=false;var c=new a.events.eventdispatcher();a.utils.extend(this,c);function i(){var j=0;for(plugin in h){if(h[plugin].getStatus()==a.utils.loaderstatus.LOADING){j++}}if(j==0&&!b){b=true;f=a.utils.loaderstatus.COMPLETE;c.sendEvent(a.events.COMPLETE)}}this.setupPlugins=function(l,j,q){var k={length:0,plugins:{}};var n={};for(var m in h){var o=h[m].getPluginName();if(h[m].getFlashPath()){k.plugins[h[m].getFlashPath()]=j.plugins[h[m].getURL()];k.length++}if(h[m].getJS()){var p=document.createElement("div");p.id=l.id+"_"+o;p.style.position="absolute";p.style.zIndex=m+10;n[o]=h[m].getNewInstance(l,j.plugins[h[m].getURL()],p);if(typeof n[o].resize!="undefined"){l.onReady(q(n[o],p,true));l.onResize(q(n[o],p))}}}l.plugins=n;return k};this.load=function(){f=a.utils.loaderstatus.LOADING;g=true;for(var j in d){h[j]=e.addPlugin(j);h[j].addEventListener(a.events.COMPLETE,i);h[j].addEventListener(a.events.ERROR,i);h[j].load()}g=false;i()};this.getStatus=function(){return f}}})(jwplayer);(function(b){var a=[];b.api=function(d){this.container=d;this.id=d.id;var l={};var q={};var c=[];var h=undefined;var k=false;var i=[];var o=b.utils.getOuterHTML(d);var p={};var m=0;var j={};this.getBuffer=function(){return this.callInternal("jwGetBuffer")};this.getContainer=function(){return this.container};function e(r){return function(w,s,t,u){var v;if(s){j[w]=s;v="jwplayer('"+r+"').callback('"+w+"')"}else{if(!s&&j[w]){delete j[w]}}h.jwDockSetButton(w,v,t,u)}}this.getPlugin=function(s){var r=this.callInternal;if(s=="dock"){return{setButton:e(this.id)}}return this.plugins[s]};this.callback=function(r){if(j[r]){return j[r]()}};this.getDuration=function(){return this.callInternal("jwGetDuration")};this.getFullscreen=function(){return this.callInternal("jwGetFullscreen")};this.getHeight=function(){return this.callInternal("jwGetHeight")};this.getLockState=function(){return this.callInternal("jwGetLockState")};this.getMeta=function(){return this.getItemMeta()};this.getMute=function(){return this.callInternal("jwGetMute")};this.getPlaylist=function(){var s=this.callInternal("jwGetPlaylist");for(var r=0;r<s.length;r++){if(s[r].index===undefined){s[r].index=r}}return s};this.getPlaylistItem=function(r){if(r===undefined){r=this.getCurrentItem()}return this.getPlaylist()[r]};this.getPosition=function(){return this.callInternal("jwGetPosition")};this.getRenderingMode=function(){return this.renderingMode};this.getState=function(){return this.callInternal("jwGetState")};this.getVolume=function(){return this.callInternal("jwGetVolume")};this.getWidth=function(){return this.callInternal("jwGetWidth")};this.setFullscreen=function(r){if(r===undefined){this.callInternal("jwSetFullscreen",!this.callInternal("jwGetFullscreen"))}else{this.callInternal("jwSetFullscreen",r)}return this};this.setMute=function(r){if(r===undefined){this.callInternal("jwSetMute",!this.callInternal("jwGetMute"))}else{this.callInternal("jwSetMute",r)}return this};this.lock=function(){return this};this.unlock=function(){return this};this.load=function(r){this.callInternal("jwLoad",r);return this};this.playlistItem=function(r){this.callInternal("jwPlaylistItem",r);return this};this.playlistPrev=function(){this.callInternal("jwPlaylistPrev");return this};this.playlistNext=function(){this.callInternal("jwPlaylistNext");return this};this.resize=function(s,r){if(this.renderingMode=="html5"){h.jwResize(s,r)}else{this.container.width=s;this.container.height=r}return this};this.play=function(r){if(typeof r=="undefined"){r=this.getState();if(r==b.api.events.state.PLAYING||r==b.api.events.state.BUFFERING){this.callInternal("jwPause")}else{this.callInternal("jwPlay")}}else{this.callInternal("jwPlay",r)}return this};this.pause=function(r){if(typeof r=="undefined"){r=this.getState();if(r==b.api.events.state.PLAYING||r==b.api.events.state.BUFFERING){this.callInternal("jwPause")}else{this.callInternal("jwPlay")}}else{this.callInternal("jwPause",r)}return this};this.stop=function(){this.callInternal("jwStop");return this};this.seek=function(r){this.callInternal("jwSeek",r);return this};this.setVolume=function(r){this.callInternal("jwSetVolume",r);return this};this.onBufferChange=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_BUFFER,r)};this.onBufferFull=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_BUFFER_FULL,r)};this.onError=function(r){return this.eventListener(b.api.events.JWPLAYER_ERROR,r)};this.onFullscreen=function(r){return this.eventListener(b.api.events.JWPLAYER_FULLSCREEN,r)};this.onMeta=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_META,r)};this.onMute=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_MUTE,r)};this.onPlaylist=function(r){return this.eventListener(b.api.events.JWPLAYER_PLAYLIST_LOADED,r)};this.onPlaylistItem=function(r){return this.eventListener(b.api.events.JWPLAYER_PLAYLIST_ITEM,r)};this.onReady=function(r){return this.eventListener(b.api.events.API_READY,r)};this.onResize=function(r){return this.eventListener(b.api.events.JWPLAYER_RESIZE,r)};this.onComplete=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_COMPLETE,r)};this.onTime=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_TIME,r)};this.onVolume=function(r){return this.eventListener(b.api.events.JWPLAYER_MEDIA_VOLUME,r)};this.onBuffer=function(r){return this.stateListener(b.api.events.state.BUFFERING,r)};this.onPause=function(r){return this.stateListener(b.api.events.state.PAUSED,r)};this.onPlay=function(r){return this.stateListener(b.api.events.state.PLAYING,r)};this.onIdle=function(r){return this.stateListener(b.api.events.state.IDLE,r)};this.remove=function(){l={};i=[];if(b.utils.getOuterHTML(this.container)!=o){b.api.destroyPlayer(this.id,o)}};this.setup=function(s){if(b.embed){var r=this.id;this.remove();var t=b(r);t.config=s;return new b.embed(t)}return this};this.registerPlugin=function(t,s,r){b.plugins.registerPlugin(t,s,r)};this.setPlayer=function(r,s){h=r;this.renderingMode=s};this.stateListener=function(r,s){if(!q[r]){q[r]=[];this.eventListener(b.api.events.JWPLAYER_PLAYER_STATE,g(r))}q[r].push(s);return this};function g(r){return function(t){var s=t.newstate,v=t.oldstate;if(s==r){var u=q[s];if(u){for(var w=0;w<u.length;w++){if(typeof u[w]=="function"){u[w].call(this,{oldstate:v,newstate:s})}}}}}}this.addInternalListener=function(r,s){r.jwAddEventListener(s,'function(dat) { jwplayer("'+this.id+'").dispatchEvent("'+s+'", dat); }')};this.eventListener=function(r,s){if(!l[r]){l[r]=[];if(h&&k){this.addInternalListener(h,r)}}l[r].push(s);return this};this.dispatchEvent=function(t){if(l[t]){var s=f(t,arguments[1]);for(var r=0;r<l[t].length;r++){if(typeof l[t][r]=="function"){l[t][r].call(this,s)}}}};function f(t,r){var v=b.utils.extend({},r);if(t==b.api.events.JWPLAYER_FULLSCREEN&&!v.fullscreen){v.fullscreen=v.message=="true"?true:false;delete v.message}else{if(typeof v.data=="object"){v=b.utils.extend(v,v.data);delete v.data}}var s=["position","duration","offset"];for(var u in s){if(v[s[u]]){v[s[u]]=Math.round(v[s[u]]*1000)/1000}}return v}this.callInternal=function(s,r){if(k){if(typeof h!="undefined"&&typeof h[s]=="function"){if(r!==undefined){return(h[s])(r)}else{return(h[s])()}}return null}else{i.push({method:s,parameters:r})}};this.playerReady=function(t){k=true;if(!h){this.setPlayer(document.getElementById(t.id))}this.container=document.getElementById(this.id);for(var r in l){this.addInternalListener(h,r)}this.eventListener(b.api.events.JWPLAYER_PLAYLIST_ITEM,function(u){if(u.index!==undefined){m=u.index}p={}});this.eventListener(b.api.events.JWPLAYER_MEDIA_META,function(u){b.utils.extend(p,u.metadata)});this.dispatchEvent(b.api.events.API_READY);while(i.length>0){var s=i.shift();this.callInternal(s.method,s.parameters)}};this.getItemMeta=function(){return p};this.getCurrentItem=function(){return m};function n(t,v,u){var r=[];if(!v){v=0}if(!u){u=t.length-1}for(var s=v;s<=u;s++){r.push(t[s])}return r}return this};b.api.selectPlayer=function(d){var c;if(d===undefined){d=0}if(d.nodeType){c=d}else{if(typeof d=="string"){c=document.getElementById(d)}}if(c){var e=b.api.playerById(c.id);if(e){return e}else{return b.api.addPlayer(new b.api(c))}}else{if(typeof d=="number"){return b.getPlayers()[d]}}return null};b.api.events={API_READY:"jwplayerAPIReady",JWPLAYER_READY:"jwplayerReady",JWPLAYER_FULLSCREEN:"jwplayerFullscreen",JWPLAYER_RESIZE:"jwplayerResize",JWPLAYER_ERROR:"jwplayerError",JWPLAYER_MEDIA_BUFFER:"jwplayerMediaBuffer",JWPLAYER_MEDIA_BUFFER_FULL:"jwplayerMediaBufferFull",JWPLAYER_MEDIA_ERROR:"jwplayerMediaError",JWPLAYER_MEDIA_LOADED:"jwplayerMediaLoaded",JWPLAYER_MEDIA_COMPLETE:"jwplayerMediaComplete",JWPLAYER_MEDIA_TIME:"jwplayerMediaTime",JWPLAYER_MEDIA_VOLUME:"jwplayerMediaVolume",JWPLAYER_MEDIA_META:"jwplayerMediaMeta",JWPLAYER_MEDIA_MUTE:"jwplayerMediaMute",JWPLAYER_PLAYER_STATE:"jwplayerPlayerState",JWPLAYER_PLAYLIST_LOADED:"jwplayerPlaylistLoaded",JWPLAYER_PLAYLIST_ITEM:"jwplayerPlaylistItem"};b.api.events.state={BUFFERING:"BUFFERING",IDLE:"IDLE",PAUSED:"PAUSED",PLAYING:"PLAYING"};b.api.playerById=function(d){for(var c=0;c<a.length;c++){if(a[c].id==d){return a[c]}}return null};b.api.addPlayer=function(c){for(var d=0;d<a.length;d++){if(a[d]==c){return c}}a.push(c);return c};b.api.destroyPlayer=function(g,d){var f=-1;for(var i=0;i<a.length;i++){if(a[i].id==g){f=i;continue}}if(f>=0){var c=document.getElementById(a[f].id);if(document.getElementById(a[f].id+"_wrapper")){c=document.getElementById(a[f].id+"_wrapper")}if(c){if(d){b.utils.setOuterHTML(c,d)}else{var h=document.createElement("div");var e=c.id;if(c.id.indexOf("_wrapper")==c.id.length-8){newID=c.id.substring(0,c.id.length-8)}h.setAttribute("id",e);c.parentNode.replaceChild(h,c)}}a.splice(f,1)}return null};b.getPlayers=function(){return a.slice(0)}})(jwplayer);var _userPlayerReady=(typeof playerReady=="function")?playerReady:undefined;playerReady=function(b){var a=jwplayer.api.playerById(b.id);if(a){a.playerReady(b)}if(_userPlayerReady){_userPlayerReady.call(this,b)}};(function(a){a.embed=function(g){var i={width:400,height:300,components:{controlbar:{position:"over"}}};var f=a.utils.mediaparser.parseMedia(g.container);var e=new a.embed.config(a.utils.extend(i,f,g.config),this);var h=a.plugins.loadPlugins(e.plugins);function c(l,k){for(var j in k){if(typeof l[j]=="function"){(l[j]).call(l,k[j])}}}function d(){if(h.getStatus()==a.utils.loaderstatus.COMPLETE){for(var l=0;l<e.modes.length;l++){if(e.modes[l].type&&a.embed[e.modes[l].type]){var j=e;if(e.modes[l].config){j=a.utils.extend(a.utils.clone(e),e.modes[l].config)}var k=new a.embed[e.modes[l].type](document.getElementById(g.id),e.modes[l],j,h,g);if(k.supportsConfig()){k.embed();c(g,e.events);return g}}}a.utils.log("No suitable players found");new a.embed.logo(a.utils.extend({hide:true},e.components.logo),"none",g.id)}}h.addEventListener(a.events.COMPLETE,d);h.load();return g};function b(){if(!document.body){return setTimeout(b,15)}var c=a.utils.selectors.getElementsByTagAndClass("video","jwplayer");for(var d=0;d<c.length;d++){var e=c[d];a(e.id).setup({})}}b()})(jwplayer);(function(a){function b(){return[{type:"flash",src:"/jwplayer/player.swf"},{type:"html5"},{type:"download"}]}function d(h){var g=h.toLowerCase();var f=["left","right","top","bottom"];for(var e=0;e<f.length;e++){if(g==f[e]){return true}}return false}function c(f){var e=false;e=(typeof f=="string"&&!d(f))||(f instanceof Array)||(typeof f=="object"&&!f.position&&!f.size);return e}a.embed.config=function(f,o){var n=a.utils.extend({},f);for(var i in n){if(i.indexOf(".")>-1){var p=i.split(".");var q=n;for(var e=0;e<p.length;e++){if(e==p.length-1){if(a.utils.typeOf(q)=="object"){q[p[e]]=n[i];delete n[i]}}else{if(q[p[e]]===undefined){q[p[e]]={}}q=q[p[e]]}}}}if(typeof n.plugins=="string"){var g=n.plugins.split(",");for(var k=0;k<g.length;k++){var l=a.utils.getPluginName(g[k]);if(typeof n[l]=="object"){if(typeof n.plugins!="object"){n.plugins={}}n.plugins[g[k]]=n[l];delete n[l]}}}var j=["playlist","dock","controlbar"];for(var m=0;m<j.length;m++){if(typeof n[j[m]]=="string"){if(!n.components[j[m]]){n.components[j[m]]={}}n.components[j[m]].position=n[j[m]];delete n[j[m]]}else{if(n[j[m]]){n.components[j[m]]=n[j[m]];delete n[j[m]]}}}if(typeof n.icons!="undefined"){if(!n.components.display){n.components.display={}}n.components.display.icons=n.icons;delete n.icons}if(n.events){o.events=n.events;delete n.events}if(n.players){n.modes=n.players;delete n.players}var h;if(n.flashplayer&&!n.modes){h=b();h[0].src=n.flashplayer;delete n.flashplayer}else{if(n.modes){if(typeof n.modes=="string"){h=b();h[0].src=n.modes}else{if(n.modes instanceof Array){h=n.modes}else{if(typeof n.modes=="object"&&n.modes.type){h=[n.modes]}}}delete n.modes}else{h=b()}}n.modes=h;return n}})(jwplayer);(function(a){a.embed.download=function(c,g,b,d,f){this.embed=function(){var j=a.utils.extend({},b);var p={};var i=b.width?b.width:480;if(typeof i!="number"){i=parseInt(i,10)}var l=b.height?b.height:320;if(typeof l!="number"){l=parseInt(l,10)}var t,n,m;var r={};if(b.playlist&&b.playlist.length){r.file=b.playlist[0].file;n=b.playlist[0].image;r.levels=b.playlist[0].levels}else{r.file=b.file;n=b.image;r.levels=b.levels}if(r.file){t=r.file}else{if(r.levels&&r.levels.length){t=r.levels[0].file}}m=t?"pointer":"auto";var k={display:{style:{cursor:m,width:i,height:l,backgroundColor:"#000",position:"relative",textDecoration:"none",border:"none",display:"block"}},display_icon:{style:{cursor:m,position:"absolute",display:t?"block":"none",top:0,left:0,border:0,margin:0,padding:0,zIndex:3,width:50,height:50,backgroundImage:"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALdJREFUeNrs18ENgjAYhmFouDOCcQJGcARHgE10BDcgTOIosAGwQOuPwaQeuFRi2p/3Sb6EC5L3QCxZBgAAAOCorLW1zMn65TrlkH4NcV7QNcUQt7Gn7KIhxA+qNIR81spOGkL8oFJDyLJRdosqKDDkK+iX5+d7huzwM40xptMQMkjIOeRGo+VkEVvIPfTGIpKASfYIfT9iCHkHrBEzf4gcUQ56aEzuGK/mw0rHpy4AAACAf3kJMACBxjAQNRckhwAAAABJRU5ErkJggg==)"}},display_iconBackground:{style:{cursor:m,position:"absolute",display:t?"block":"none",top:((l-50)/2),left:((i-50)/2),border:0,width:50,height:50,margin:0,padding:0,zIndex:2,backgroundImage:"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEpJREFUeNrszwENADAIA7DhX8ENoBMZ5KR10EryckCJiIiIiIiIiIiIiIiIiIiIiIh8GmkRERERERERERERERERERERERGRHSPAAPlXH1phYpYaAAAAAElFTkSuQmCC)"}},display_image:{style:{width:i,height:l,display:n?"block":"none",position:"absolute",cursor:m,left:0,top:0,margin:0,padding:0,textDecoration:"none",zIndex:1,border:"none"}}};var h=function(u,w,x){var v=document.createElement(u);if(x){v.id=x}else{v.id=c.id+"_jwplayer_"+w}a.utils.css(v,k[w].style);return v};p.display=h("a","display",c.id);if(t){p.display.setAttribute("href",a.utils.getAbsolutePath(t))}p.display_image=h("img","display_image");p.display_image.setAttribute("alt","Click to download...");if(n){p.display_image.setAttribute("src",a.utils.getAbsolutePath(n))}if(true){p.display_icon=h("div","display_icon");p.display_iconBackground=h("div","display_iconBackground");p.display.appendChild(p.display_image);p.display_iconBackground.appendChild(p.display_icon);p.display.appendChild(p.display_iconBackground)}_css=a.utils.css;_hide=function(u){_css(u,{display:"none"})};function q(u){_imageWidth=p.display_image.naturalWidth;_imageHeight=p.display_image.naturalHeight;s()}function s(){a.utils.stretch(a.utils.stretching.UNIFORM,p.display_image,i,l,_imageWidth,_imageHeight)}p.display_image.onerror=function(u){_hide(p.display_image)};p.display_image.onload=q;c.parentNode.replaceChild(p.display,c);var o=(b.plugins&&b.plugins.logo)?b.plugins.logo:{};p.display.appendChild(new a.embed.logo(b.components.logo,"download",c.id));f.container=document.getElementById(f.id);f.setPlayer(p.display,"download")};this.supportsConfig=function(){if(b){var j=a.utils.getFirstPlaylistItemFromConfig(b);if(typeof j.file=="undefined"&&typeof j.levels=="undefined"){return true}else{if(j.file){return e(j.file,j.provider,j.playlistfile)}else{if(j.levels&&j.levels.length){for(var h=0;h<j.levels.length;h++){if(j.levels[h].file&&e(j.levels[h].file,j.provider,j.playlistfile)){return true}}}}}}else{return true}};function e(i,k,h){if(h){return false}var j=["image","sound","youtube","http"];if(k&&(j.toString().indexOf(k)>-1)){return true}if(!k||(k&&k=="video")){var l=a.utils.extension(i);if(l&&a.utils.extensionmap[l]){return true}}return false}}})(jwplayer);(function(a){a.embed.flash=function(g,h,l,f,j){function m(o,n,p){var q=document.createElement("param");q.setAttribute("name",n);q.setAttribute("value",p);o.appendChild(q)}function k(o,p,n){return function(q){if(n){document.getElementById(j.id+"_wrapper").appendChild(p)}var s=document.getElementById(j.id).getPluginConfig("display");o.resize(s.width,s.height);var r={left:s.x,top:s.y};a.utils.css(p,r)}}function e(p){if(!p){return{}}var r={};for(var o in p){var n=p[o];for(var q in n){r[o+"."+q]=n[q]}}return r}function i(q,p){if(q[p]){var s=q[p];for(var o in s){var n=s[o];if(typeof n=="string"){if(!q[o]){q[o]=n}}else{for(var r in n){if(!q[o+"."+r]){q[o+"."+r]=n[r]}}}}delete q[p]}}function c(q){if(!q){return{}}var t={},s=[];for(var n in q){var p=a.utils.getPluginName(n);var o=q[n];s.push(n);for(var r in o){t[p+"."+r]=o[r]}}t.plugins=s.join(",");return t}function d(p){var n=p.netstreambasepath?"":"netstreambasepath="+encodeURIComponent(window.location.href)+"&";for(var o in p){n+=o+"="+encodeURIComponent(p[o])+"&"}return n.substring(0,n.length-1)}function b(n){return function(p){if(n.playlist){this.load(n.playlist)}else{if(n.levels){var o=this.getPlaylistItem(0);if(!o){o=n}if(!o.image){o.image=n.image}if(!o.levels){o.levels=n.levels}this.load(o)}}}}this.embed=function(){if(l.levels||l.playlist){j.onReady(b(l))}l.id=j.id;var v;if(g.id+"_wrapper"==g.parentNode.id){v=document.getElementById(g.id+"_wrapper")}else{v=document.createElement("div");v.id=g.id+"_wrapper";a.utils.wrap(g,v);v.style.position="relative"}var q=a.utils.extend({},l);var o=f.setupPlugins(j,q,k);if(o.length>0){a.utils.extend(q,c(o.plugins))}else{delete q.plugins}var n=q.width;delete q.width;var u=q.height;delete q.height;delete q.levels;delete q.playlist;delete q.modes;var p="opaque";if(q.wmode){p=q.wmode}i(q,"components");i(q,"providers");var w="#000000";var s;if(a.utils.isIE()){var t='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" bgcolor="'+w+'" width="'+n+'" height="'+u+'" id="'+g.id+'" name="'+g.id+'">';t+='<param name="movie" value="'+h.src+'">';t+='<param name="allowfullscreen" value="true">';t+='<param name="allowscriptaccess" value="always">';t+='<param name="seamlesstabbing" value="true">';t+='<param name="wmode" value="'+p+'">';t+='<param name="flashvars" value="'+d(q)+'">';t+="</object>";a.utils.setOuterHTML(g,t);s=document.getElementById(g.id)}else{var r=document.createElement("object");r.setAttribute("type","application/x-shockwave-flash");r.setAttribute("data",h.src);r.setAttribute("width",n);r.setAttribute("height",u);r.setAttribute("bgcolor","#000000");r.setAttribute("id",g.id);r.setAttribute("name",g.id);m(r,"allowfullscreen","true");m(r,"allowscriptaccess","always");m(r,"seamlesstabbing","true");m(r,"wmode",p);m(r,"flashvars",d(q));g.parentNode.replaceChild(r,g);s=r}j.container=s;j.setPlayer(s,"flash")};this.supportsConfig=function(){if(a.utils.hasFlash()){if(l){var o=a.utils.getFirstPlaylistItemFromConfig(l);if(typeof o.file=="undefined"&&typeof o.levels=="undefined"){return true}else{if(o.file){return flashCanPlay(o.file,o.provider)}else{if(o.levels&&o.levels.length){for(var n=0;n<o.levels.length;n++){if(o.levels[n].file&&flashCanPlay(o.levels[n].file,o.provider)){return true}}}}}}else{return true}}return false};flashCanPlay=function(n,p){var o=["video","http","sound","image"];if(p&&(o.toString().indexOf(p<0))){return true}var q=a.utils.extension(n);if(!q){return true}if(a.utils.extensionmap[q]!==undefined&&a.utils.extensionmap[q].flash===undefined){return false}return true}}})(jwplayer);(function(a){a.embed.html5=function(c,g,b,d,f){function e(i,j,h){return function(k){var l=document.getElementById(c.id+"_displayarea");if(h){l.appendChild(j)}var m=l.style;i.resize(m.width,m.height);j.left=m.left;j.top=m.top}}this.embed=function(){if(a.html5){d.setupPlugins(f,b,e);c.innerHTML="";var h=a.utils.extend({screencolor:"0x000000"},b);if(h.plugins){delete h.plugins}if(h.levels&&!h.sources){h.sources=b.levels}if(h.skin&&h.skin.toLowerCase().indexOf(".zip")>0){h.skin=h.skin.replace(/\.zip/i,".xml")}var i=new (a.html5(c)).setup(h);f.container=document.getElementById(f.id);f.setPlayer(i,"html5")}else{return null}};this.supportsConfig=function(){var h=document.createElement("video");if(!!h.canPlayType){if(b){var k=a.utils.getFirstPlaylistItemFromConfig(b);if(typeof k.file=="undefined"&&typeof k.levels=="undefined"){return true}else{if(k.file){return html5CanPlay(h,k.file,k.provider,k.playlistfile)}else{if(k.levels&&k.levels.length){for(var j=0;j<k.levels.length;j++){if(k.levels[j].file&&html5CanPlay(h,k.levels[j].file,k.provider,k.playlistfile)){return true}}}}}}else{return true}}return false};html5CanPlay=function(j,i,k,h){if(h){return false}if(k&&k=="youtube"){return true}if(k&&k!="video"&&k!="http"){return false}var l=a.utils.extension(i);if(!l||a.utils.extensionmap[l]===undefined){return true}if(a.utils.extensionmap[l].html5===undefined){return false}if(a.utils.isLegacyAndroid()&&l.match(/m4v|mp4/)){return true}return browserCanPlay(j,a.utils.extensionmap[l].html5)};browserCanPlay=function(i,h){if(!h){return true}return i.canPlayType(h)}}})(jwplayer);(function(a){a.embed.logo=function(l,k,d){var i={prefix:"http://l.longtailvideo.com/"+k+"/",file:"logo.png",link:"http://www.longtailvideo.com/players/jw-flv-player/",margin:8,out:0.5,over:1,timeout:3,hide:false,position:"bottom-left"};_css=a.utils.css;var b;var h;j();function j(){n();c();f()}function n(){if(i.prefix){var p=a.version.split(/\W/).splice(0,2).join("/");if(i.prefix.indexOf(p)<0){i.prefix+=p+"/"}}h=a.utils.extend({},i)}function o(){var r={border:"none",textDecoration:"none",position:"absolute",cursor:"pointer",zIndex:10};r.display=h.hide?"none":"block";var q=h.position.toLowerCase().split("-");for(var p in q){r[q[p]]=h.margin}return r}function c(){b=document.createElement("img");b.id=d+"_jwplayer_logo";b.style.display="none";b.onload=function(p){_css(b,o());e()};if(!h.file){return}if(h.file.indexOf("http://")===0){b.src=h.file}else{b.src=h.prefix+h.file}}if(!h.file){return}function f(){if(h.link){b.onmouseover=g;b.onmouseout=e;b.onclick=m}else{this.mouseEnabled=false}}function m(p){if(typeof p!="undefined"){p.preventDefault();p.stopPropagation()}if(h.link){window.open(h.link,"_blank")}return}function e(p){if(h.link){b.style.opacity=h.out}return}function g(p){if(h.hide){b.style.opacity=h.over}return}return b}})(jwplayer);(function(a){a.html5=function(b){var c=b;this.setup=function(d){a.utils.extend(this,new a.html5.api(c,d));return this};return this}})(jwplayer);(function(b){var c=b.utils.css;b.html5.view=function(p,o,e){var s=p;var l=o;var v=e;var u;var f;var z;var q;var A;var n;function x(){u=document.createElement("div");u.id=l.id;u.className=l.className;_videowrapper=document.createElement("div");_videowrapper.id=u.id+"_video_wrapper";l.id=u.id+"_video";c(u,{position:"relative",height:v.height,width:v.width,padding:0,backgroundColor:B(),zIndex:0});function B(){if(s.skin.getComponentSettings("display")&&s.skin.getComponentSettings("display").backgroundcolor){return s.skin.getComponentSettings("display").backgroundcolor}return parseInt("000000",16)}c(l,{width:v.width,height:v.height,top:0,left:0,zIndex:1,margin:"auto",display:"block"});c(_videowrapper,{overflow:"hidden",position:"absolute",top:0,left:0,bottom:0,right:0});b.utils.wrap(l,u);b.utils.wrap(l,_videowrapper);q=document.createElement("div");q.id=u.id+"_displayarea";u.appendChild(q)}function j(){for(var B=0;B<v.plugins.order.length;B++){var C=v.plugins.order[B];if(v.plugins.object[C].getDisplayElement!==undefined){v.plugins.object[C].height=h(v.plugins.object[C].getDisplayElement().style.height);v.plugins.object[C].width=h(v.plugins.object[C].getDisplayElement().style.width);v.plugins.config[C].currentPosition=v.plugins.config[C].position}}t()}function t(C){if(v.getMedia()!==undefined){for(var B=0;B<v.plugins.order.length;B++){var D=v.plugins.order[B];if(v.plugins.object[D].getDisplayElement!==undefined){if(v.getMedia().hasChrome()){v.plugins.config[D].currentPosition=b.html5.view.positions.NONE}else{v.plugins.config[D].currentPosition=v.plugins.config[D].position}}}}i(v.width,v.height)}function h(B){if(typeof B=="string"){if(B===""){return 0}else{if(B.lastIndexOf("%")>-1){return B}else{return parseInt(B.replace("px",""),10)}}}return B}this.setup=function(B){l=B;x();j();s.jwAddEventListener(b.api.events.JWPLAYER_MEDIA_LOADED,t);s.jwAddEventListener(b.api.events.JWPLAYER_MEDIA_META,function(){w()});var C;if(window.onresize!==null){C=window.onresize}window.onresize=function(D){if(C!==undefined){try{C(D)}catch(F){}}if(s.jwGetFullscreen()){var E=document.body.getBoundingClientRect();v.width=Math.abs(E.left)+Math.abs(E.right);v.height=window.innerHeight}i(v.width,v.height)}};function g(B){switch(B.keyCode){case 27:if(s.jwGetFullscreen()){s.jwSetFullscreen(false)}break;case 32:if(s.jwGetState()!=b.api.events.state.IDLE&&s.jwGetState()!=b.api.events.state.PAUSED){s.jwPause()}else{s.jwPlay()}break}}function i(E,B){if(u.style.display=="none"){return}var D=[].concat(v.plugins.order);D.reverse();A=D.length+2;if(!v.fullscreen){v.width=E;v.height=B;f=E;z=B;c(q,{top:0,bottom:0,left:0,right:0,width:E,height:B});c(u,{height:z,width:f});var C=m(r,D);if(C.length>0){A+=C.length;m(k,C,true)}}else{if(navigator.vendor.indexOf("Apple")!==0){m(y,D,true)}}w()}function m(G,D,E){var C=[];for(var B=0;B<D.length;B++){var H=D[B];if(v.plugins.object[H].getDisplayElement!==undefined){if(v.plugins.config[H].currentPosition!=b.html5.view.positions.NONE){var F=G(H,A--);if(!F){C.push(H)}else{v.plugins.object[H].resize(F.width,F.height);if(E){delete F.width;delete F.height}c(v.plugins.object[H].getDisplayElement(),F)}}else{c(v.plugins.object[H].getDisplayElement(),{display:"none"})}}}return C}function r(C,D){if(v.plugins.object[C].getDisplayElement!==undefined){if(v.plugins.config[C].position&&a(v.plugins.config[C].position)){if(v.plugins.object[C].getDisplayElement().parentNode===null){u.appendChild(v.plugins.object[C].getDisplayElement())}var B=d(C);B.zIndex=D;return B}}return false}function k(D,E){if(v.plugins.object[D].getDisplayElement().parentNode===null){q.appendChild(v.plugins.object[D].getDisplayElement())}var B=v.width,C=v.height;if(typeof v.width=="string"&&v.width.lastIndexOf("%")>-1){percentage=parseFloat(v.width.substring(0,v.width.lastIndexOf("%")))/100;B=Math.round(window.innerWidth*percentage)}if(typeof v.height=="string"&&v.height.lastIndexOf("%")>-1){percentage=parseFloat(v.height.substring(0,v.height.lastIndexOf("%")))/100;C=Math.round(window.innerHeight*percentage)}return{position:"absolute",width:(B-h(q.style.left)-h(q.style.right)),height:(C-h(q.style.top)-h(q.style.bottom)),zIndex:E}}function y(B,C){return{position:"fixed",width:v.width,height:v.height,zIndex:C}}function w(){q.style.position="absolute";v.getMedia().getDisplayElement().style.position="absolute";if(v.getMedia().getDisplayElement().videoWidth==0||v.getMedia().getDisplayElement().videoHeight==0){return}var B,D;if(q.style.width.toString().lastIndexOf("%")>-1||q.style.width.toString().lastIndexOf("%")>-1){var C=q.getBoundingClientRect();B=Math.abs(C.left)+Math.abs(C.right);D=Math.abs(C.top)+Math.abs(C.bottom)}else{B=h(q.style.width);D=h(q.style.height)}b.utils.stretch(s.jwGetStretching(),v.getMedia().getDisplayElement(),B,D,v.getMedia().getDisplayElement().videoWidth,v.getMedia().getDisplayElement().videoHeight)}function d(C){var D={position:"absolute",margin:0,padding:0,top:null};var B=v.plugins.config[C].currentPosition.toLowerCase();switch(B.toUpperCase()){case b.html5.view.positions.TOP:D.top=h(q.style.top);D.left=h(q.style.left);D.width=f-h(q.style.left)-h(q.style.right);D.height=v.plugins.object[C].height;q.style[B]=h(q.style[B])+v.plugins.object[C].height+"px";q.style.height=h(q.style.height)-D.height+"px";break;case b.html5.view.positions.RIGHT:D.top=h(q.style.top);D.right=h(q.style.right);D.width=D.width=v.plugins.object[C].width;D.height=z-h(q.style.top)-h(q.style.bottom);q.style[B]=h(q.style[B])+v.plugins.object[C].width+"px";q.style.width=h(q.style.width)-D.width+"px";break;case b.html5.view.positions.BOTTOM:D.bottom=h(q.style.bottom);D.left=h(q.style.left);D.width=f-h(q.style.left)-h(q.style.right);D.height=v.plugins.object[C].height;q.style[B]=h(q.style[B])+v.plugins.object[C].height+"px";q.style.height=h(q.style.height)-D.height+"px";break;case b.html5.view.positions.LEFT:D.top=h(q.style.top);D.left=h(q.style.left);D.width=v.plugins.object[C].width;D.height=z-h(q.style.top)-h(q.style.bottom);q.style[B]=h(q.style[B])+v.plugins.object[C].width+"px";q.style.width=h(q.style.width)-D.width+"px";break;default:break}return D}this.resize=i;this.fullscreen=function(E){if(navigator.vendor.indexOf("Apple")===0){if(v.getMedia().getDisplayElement().webkitSupportsFullscreen){if(E){try{v.getMedia().getDisplayElement().webkitEnterFullscreen()}catch(D){}}else{try{v.getMedia().getDisplayElement().webkitExitFullscreen()}catch(D){}}}}else{if(E){document.onkeydown=g;clearInterval(n);var C=document.body.getBoundingClientRect();v.width=Math.abs(C.left)+Math.abs(C.right);v.height=window.innerHeight;var B={position:"fixed",width:"100%",height:"100%",top:0,left:0,zIndex:2147483000};c(u,B);B.zIndex=1;c(v.getMedia().getDisplayElement(),B);B.zIndex=2;c(q,B)}else{document.onkeydown="";v.width=f;v.height=z;c(u,{position:"relative",height:v.height,width:v.width,zIndex:0})}i(v.width,v.height)}}};function a(d){return([b.html5.view.positions.TOP,b.html5.view.positions.RIGHT,b.html5.view.positions.BOTTOM,b.html5.view.positions.LEFT].toString().indexOf(d.toUpperCase())>-1)}b.html5.view.positions={TOP:"TOP",RIGHT:"RIGHT",BOTTOM:"BOTTOM",LEFT:"LEFT",OVER:"OVER",NONE:"NONE"}})(jwplayer);(function(a){var b={backgroundcolor:"",margin:10,font:"Arial,sans-serif",fontsize:10,fontcolor:parseInt("000000",16),fontstyle:"normal",fontweight:"bold",buttoncolor:parseInt("ffffff",16),position:a.html5.view.positions.BOTTOM,idlehide:false,layout:{left:{position:"left",elements:[{name:"play",type:"button"},{name:"divider",type:"divider"},{name:"prev",type:"button"},{name:"divider",type:"divider"},{name:"next",type:"button"},{name:"divider",type:"divider"},{name:"elapsed",type:"text"}]},center:{position:"center",elements:[{name:"time",type:"slider"}]},right:{position:"right",elements:[{name:"duration",type:"text"},{name:"blank",type:"button"},{name:"divider",type:"divider"},{name:"mute",type:"button"},{name:"volume",type:"slider"},{name:"divider",type:"divider"},{name:"fullscreen",type:"button"}]}}};_css=a.utils.css;_hide=function(c){_css(c,{display:"none"})};_show=function(c){_css(c,{display:"block"})};a.html5.controlbar=function(j,L){var i=j;var A=a.utils.extend({},b,i.skin.getComponentSettings("controlbar"),L);if(A.position==a.html5.view.positions.NONE||typeof a.html5.view.positions[A.position]=="undefined"){return}if(a.utils.mapLength(i.skin.getComponentLayout("controlbar"))>0){A.layout=i.skin.getComponentLayout("controlbar")}var P;var I;var O;var B;var t="none";var f;var h;var Q;var e;var d;var w;var s;var J={};var n=false;var c={};function H(){O=0;B=0;I=0;if(!n){var V={height:i.skin.getSkinElement("controlbar","background").height,backgroundColor:A.backgroundcolor};P=document.createElement("div");P.id=i.id+"_jwplayer_controlbar";_css(P,V)}v("capLeft","left",false,P);var W={position:"absolute",height:i.skin.getSkinElement("controlbar","background").height,left:i.skin.getSkinElement("controlbar","capLeft").width,zIndex:0};N("background",P,W,"img");if(i.skin.getSkinElement("controlbar","background")){J.background.src=i.skin.getSkinElement("controlbar","background").src}W.zIndex=1;N("elements",P,W);v("capRight","right",false,P)}this.getDisplayElement=function(){return P};this.resize=function(X,V){a.utils.cancelAnimation(P);document.getElementById(i.id).onmousemove=x;d=X;w=V;x();var W=u();D({id:i.id,duration:Q,position:h});r({id:i.id,bufferPercent:e});return W};function o(){var W=["timeSlider","volumeSlider","timeSliderRail","volumeSliderRail"];for(var X in W){var V=W[X];if(typeof J[V]!="undefined"){c[V]=J[V].getBoundingClientRect()}}}function x(){a.utils.cancelAnimation(P);if(g()){a.utils.fadeTo(P,1,0,1,0)}else{a.utils.fadeTo(P,0,0.1,1,2)}}function g(){if(i.jwGetState()==a.api.events.state.IDLE||i.jwGetState()==a.api.events.state.PAUSED){if(A.idlehide){return false}return true}if(i.jwGetFullscreen()){return false}if(A.position==a.html5.view.positions.OVER){return false}return true}function N(Z,Y,X,V){var W;if(!n){if(!V){V="div"}W=document.createElement(V);J[Z]=W;W.id=P.id+"_"+Z;Y.appendChild(W)}else{W=document.getElementById(P.id+"_"+Z)}if(X!==undefined){_css(W,X)}return W}function G(){U(A.layout.left);U(A.layout.right,-1);U(A.layout.center)}function U(Y,V){var Z=Y.position=="right"?"right":"left";var X=a.utils.extend([],Y.elements);if(V!==undefined){X.reverse()}for(var W=0;W<X.length;W++){z(X[W],Z)}}function E(){return I++}function z(Z,ab){var Y,W,X,V,ad;switch(Z.name){case"play":v("playButton",ab,false);v("pauseButton",ab,true);K("playButton","jwPlay");K("pauseButton","jwPause");break;case"divider":v("divider"+E(),ab,true,undefined,undefined,Z.width);break;case"prev":v("prevButton",ab,true);K("prevButton","jwPlaylistPrev");break;case"next":v("nextButton",ab,true);K("nextButton","jwPlaylistNext");break;case"elapsed":v("elapsedText",ab,true);break;case"time":W=i.skin.getSkinElement("controlbar","timeSliderCapLeft")===undefined?0:i.skin.getSkinElement("controlbar","timeSliderCapLeft").width;X=i.skin.getSkinElement("controlbar","timeSliderCapRight")===undefined?0:i.skin.getSkinElement("controlbar","timeSliderCapRight").width;Y=ab=="left"?W:X;V=i.skin.getSkinElement("controlbar","timeSliderRail").width+W+X;ad={height:i.skin.getSkinElement("controlbar","background").height,position:"absolute",top:0,width:V};ad[ab]=ab=="left"?O:B;var aa=N("timeSlider",J.elements,ad);v("timeSliderCapLeft",ab,true,aa,ab=="left"?0:Y);v("timeSliderRail",ab,false,aa,Y);v("timeSliderBuffer",ab,false,aa,Y);v("timeSliderProgress",ab,false,aa,Y);v("timeSliderThumb",ab,false,aa,Y);v("timeSliderCapRight",ab,true,aa,ab=="right"?0:Y);M("time");break;case"fullscreen":v("fullscreenButton",ab,false);v("normalscreenButton",ab,true);K("fullscreenButton","jwSetFullscreen",true);K("normalscreenButton","jwSetFullscreen",false);break;case"volume":W=i.skin.getSkinElement("controlbar","volumeSliderCapLeft")===undefined?0:i.skin.getSkinElement("controlbar","volumeSliderCapLeft").width;X=i.skin.getSkinElement("controlbar","volumeSliderCapRight")===undefined?0:i.skin.getSkinElement("controlbar","volumeSliderCapRight").width;Y=ab=="left"?W:X;V=i.skin.getSkinElement("controlbar","volumeSliderRail").width+W+X;ad={height:i.skin.getSkinElement("controlbar","background").height,position:"absolute",top:0,width:V};ad[ab]=ab=="left"?O:B;var ac=N("volumeSlider",J.elements,ad);v("volumeSliderCapLeft",ab,true,ac,ab=="left"?0:Y);v("volumeSliderRail",ab,true,ac,Y);v("volumeSliderProgress",ab,false,ac,Y);v("volumeSliderCapRight",ab,true,ac,ab=="right"?0:Y);M("volume");break;case"mute":v("muteButton",ab,false);v("unmuteButton",ab,true);K("muteButton","jwSetMute",true);K("unmuteButton","jwSetMute",false);break;case"duration":v("durationText",ab,true);break}}function v(X,aa,W,ac,Y,V){if((i.skin.getSkinElement("controlbar",X)!==undefined||X.indexOf("Text")>0||X.indexOf("divider")===0)&&!(X.indexOf("divider")===0&&s.indexOf("divider")===0)){s=X;var Z={height:i.skin.getSkinElement("controlbar","background").height,position:"absolute",display:"block",top:0};if((X.indexOf("next")===0||X.indexOf("prev")===0)&&i.jwGetPlaylist().length<2){W=false;Z.display="none"}var ad;if(X.indexOf("Text")>0){X.innerhtml="00:00";Z.font=A.fontsize+"px/"+(i.skin.getSkinElement("controlbar","background").height+1)+"px "+A.font;Z.color=A.fontcolor;Z.textAlign="center";Z.fontWeight=A.fontweight;Z.fontStyle=A.fontstyle;Z.cursor="default";ad=14+3*A.fontsize}else{if(X.indexOf("divider")===0){if(V){if(!isNaN(parseInt(V))){ad=parseInt(V)}}else{Z.background="url("+i.skin.getSkinElement("controlbar","divider").src+") repeat-x center left";ad=i.skin.getSkinElement("controlbar","divider").width}}else{Z.background="url("+i.skin.getSkinElement("controlbar",X).src+") repeat-x center left";ad=i.skin.getSkinElement("controlbar",X).width}}if(aa=="left"){Z.left=isNaN(Y)?O:Y;if(W){O+=ad}}else{if(aa=="right"){Z.right=isNaN(Y)?B:Y;if(W){B+=ad}}}if(a.utils.typeOf(ac)=="undefined"){ac=J.elements}Z.width=ad;if(n){_css(J[X],Z)}else{var ab=N(X,ac,Z);if(i.skin.getSkinElement("controlbar",X+"Over")!==undefined){ab.onmouseover=function(ae){ab.style.backgroundImage=["url(",i.skin.getSkinElement("controlbar",X+"Over").src,")"].join("")};ab.onmouseout=function(ae){ab.style.backgroundImage=["url(",i.skin.getSkinElement("controlbar",X).src,")"].join("")}}}}}function C(){i.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED,y);i.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_BUFFER,r);i.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE,p);i.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_TIME,D);i.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_MUTE,T);i.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_VOLUME,k);i.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_COMPLETE,F)}function y(){H();G();u();R()}function R(){D({id:i.id,duration:i.jwGetDuration(),position:0});r({id:i.id,bufferProgress:0});T({id:i.id,mute:i.jwGetMute()});p({id:i.id,newstate:a.api.events.state.IDLE});k({id:i.id,volume:i.jwGetVolume()})}function K(X,Y,W){if(n){return}if(i.skin.getSkinElement("controlbar",X)!==undefined){var V=J[X];if(V!==null){_css(V,{cursor:"pointer"});if(Y=="fullscreen"){V.onmouseup=function(Z){Z.stopPropagation();i.jwSetFullscreen(!i.jwGetFullscreen())}}else{V.onmouseup=function(Z){Z.stopPropagation();if(W!==null){i[Y](W)}else{i[Y]()}}}}}}function M(V){if(n){return}var W=J[V+"Slider"];_css(J.elements,{cursor:"pointer"});_css(W,{cursor:"pointer"});W.onmousedown=function(X){t=V};W.onmouseup=function(X){X.stopPropagation();S(X.pageX)};W.onmousemove=function(X){if(t=="time"){f=true;var Y=X.pageX-c[V+"Slider"].left-window.pageXOffset;_css(J.timeSliderThumb,{left:Y})}}}function S(W){f=false;var V;if(t=="time"){V=W-c.timeSliderRail.left+window.pageXOffset;var Y=V/c.timeSliderRail.width*Q;if(Y<0){Y=0}else{if(Y>Q){Y=Q-3}}i.jwSeek(Y);if(i.jwGetState()!=a.api.events.state.PLAYING){i.jwPlay()}}else{if(t=="volume"){V=W-c.volumeSliderRail.left-window.pageXOffset;var X=Math.round(V/c.volumeSliderRail.width*100);if(X<0){X=0}else{if(X>100){X=100}}if(i.jwGetMute()){i.jwSetMute(false)}i.jwSetVolume(X)}}t="none"}function r(W){if(W.bufferPercent!==null){e=W.bufferPercent}var X=c.timeSliderRail.width;var V=isNaN(Math.round(X*e/100))?0:Math.round(X*e/100);_css(J.timeSliderBuffer,{width:V})}function T(V){if(V.mute){_hide(J.muteButton);_show(J.unmuteButton);_hide(J.volumeSliderProgress)}else{_show(J.muteButton);_hide(J.unmuteButton);_show(J.volumeSliderProgress)}}function p(V){if(V.newstate==a.api.events.state.BUFFERING||V.newstate==a.api.events.state.PLAYING){_show(J.pauseButton);_hide(J.playButton)}else{_hide(J.pauseButton);_show(J.playButton)}x();if(V.newstate==a.api.events.state.IDLE){_hide(J.timeSliderBuffer);_hide(J.timeSliderProgress);_hide(J.timeSliderThumb);D({id:i.id,duration:i.jwGetDuration(),position:0})}else{_show(J.timeSliderBuffer);if(V.newstate!=a.api.events.state.BUFFERING){_show(J.timeSliderProgress);_show(J.timeSliderThumb)}}}function F(V){r({bufferPercent:0});D(a.utils.extend(V,{position:0,duration:Q}))}function D(Y){if(Y.position!==null){h=Y.position}if(Y.duration!==null){Q=Y.duration}var W=(h===Q===0)?0:h/Q;var V=isNaN(Math.round(c.timeSliderRail.width*W))?0:Math.round(c.timeSliderRail.width*W);var X=V;J.timeSliderProgress.style.width=V+"px";if(!f){if(J.timeSliderThumb){J.timeSliderThumb.style.left=X+"px"}}if(J.durationText){J.durationText.innerHTML=m(Q)}if(J.elapsedText){J.elapsedText.innerHTML=m(h)}}function m(V){str="00:00";if(V>0){str=Math.floor(V/60)<10?"0"+Math.floor(V/60)+":":Math.floor(V/60)+":";str+=Math.floor(V%60)<10?"0"+Math.floor(V%60):Math.floor(V%60)}return str}function l(){var Y,W;var X=document.getElementById(P.id+"_elements").childNodes;for(var V in document.getElementById(P.id+"_elements").childNodes){if(isNaN(parseInt(V,10))){continue}if(X[V].id.indexOf(P.id+"_divider")===0&&W.id.indexOf(P.id+"_divider")===0){X[V].style.display="none"}else{if(X[V].id.indexOf(P.id+"_divider")===0&&Y.style.display!="none"){X[V].style.display="block"}}if(X[V].style.display!="none"){W=X[V]}Y=X[V]}}function u(){l();if(i.jwGetFullscreen()){_show(J.normalscreenButton);_hide(J.fullscreenButton)}else{_hide(J.normalscreenButton);_show(J.fullscreenButton)}var W={width:d};var V={};if(A.position==a.html5.view.positions.OVER||i.jwGetFullscreen()){W.left=A.margin;W.width-=2*A.margin;W.top=w-i.skin.getSkinElement("controlbar","background").height-A.margin;W.height=i.skin.getSkinElement("controlbar","background").height}else{W.left=0}V.left=i.skin.getSkinElement("controlbar","capLeft").width;V.width=W.width-i.skin.getSkinElement("controlbar","capLeft").width-i.skin.getSkinElement("controlbar","capRight").width;var X=i.skin.getSkinElement("controlbar","timeSliderCapLeft")===undefined?0:i.skin.getSkinElement("controlbar","timeSliderCapLeft").width;_css(J.timeSliderRail,{width:(V.width-O-B),left:X});if(J.timeSliderCapRight!==undefined){_css(J.timeSliderCapRight,{left:X+(V.width-O-B)})}_css(P,W);_css(J.elements,V);_css(J.background,V);o();return W}function k(Z){if(J.volumeSliderRail!==undefined){var X=isNaN(Z.volume/100)?1:Z.volume/100;var Y=parseInt(J.volumeSliderRail.style.width.replace("px",""),10);var V=isNaN(Math.round(Y*X))?0:Math.round(Y*X);var aa=parseInt(J.volumeSliderRail.style.right.replace("px",""),10);var W=i.skin.getSkinElement("controlbar","volumeSliderCapLeft")===undefined?0:i.skin.getSkinElement("controlbar","volumeSliderCapLeft").width;_css(J.volumeSliderProgress,{width:V,left:W});if(J.volumeSliderCapLeft!==undefined){_css(J.volumeSliderCapLeft,{left:0})}}}function q(){H();G();o();n=true;C();R();P.style.opacity=A.idlehide?0:1}q();return this}})(jwplayer);(function(b){var a=["width","height","state","playlist","item","position","buffer","duration","volume","mute","fullscreen"];b.html5.controller=function(t,r,e,q){var w=t;var y=e;var d=q;var k=r;var A=true;var c=-1;var u=(y.config.debug!==undefined)&&(y.config.debug.toString().toLowerCase()=="console");var i=new b.html5.eventdispatcher(k.id,u);b.utils.extend(this,i);function m(D){i.sendEvent(D.type,D)}y.addGlobalListener(m);function p(){try{if(y.playlist[y.item].levels[0].file.length>0){if(A||y.state==b.api.events.state.IDLE){y.addEventListener(b.api.events.JWPLAYER_MEDIA_BUFFER_FULL,function(){y.getMedia().play()});y.addEventListener(b.api.events.JWPLAYER_MEDIA_TIME,function(E){if(E.position>=y.playlist[y.item].start&&c>=0){y.playlist[y.item].start=c;c=-1}});if(y.config.repeat){y.addEventListener(b.api.events.JWPLAYER_MEDIA_COMPLETE,function(E){setTimeout(n,25)})}y.getMedia().load(y.playlist[y.item]);A=false}else{if(y.state==b.api.events.state.PAUSED){y.getMedia().play()}}}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function B(){try{if(y.playlist[y.item].levels[0].file.length>0){switch(y.state){case b.api.events.state.PLAYING:case b.api.events.state.BUFFERING:y.getMedia().pause();break}}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function x(D){try{if(y.playlist[y.item].levels[0].file.length>0){if(typeof D!="number"){D=parseFloat(D)}switch(y.state){case b.api.events.state.IDLE:if(c<0){c=y.playlist[y.item].start;y.playlist[y.item].start=D}p();break;case b.api.events.state.PLAYING:case b.api.events.state.PAUSED:case b.api.events.state.BUFFERING:y.getMedia().seek(D);break}}return true}catch(E){i.sendEvent(b.api.events.JWPLAYER_ERROR,E)}return false}function j(){try{if(y.playlist[y.item].levels[0].file.length>0&&y.state!=b.api.events.state.IDLE){y.getMedia().stop()}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function g(){try{if(y.playlist[y.item].levels[0].file.length>0){if(y.config.shuffle){o(s())}else{if(y.item+1==y.playlist.length){o(0)}else{o(y.item+1)}}}if(y.state!=b.api.events.state.PLAYING&&y.state!=b.api.events.state.BUFFERING){p()}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function f(){try{if(y.playlist[y.item].levels[0].file.length>0){if(y.config.shuffle){o(s())}else{if(y.item===0){o(y.playlist.length-1)}else{o(y.item-1)}}}if(y.state!=b.api.events.state.PLAYING&&y.state!=b.api.events.state.BUFFERING){p()}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function s(){var D=null;if(y.playlist.length>1){while(D===null){D=Math.floor(Math.random()*y.playlist.length);if(D==y.item){D=null}}}else{D=0}return D}function o(E){y.resetEventListeners();y.addGlobalListener(m);try{if(y.playlist[E].levels[0].file.length>0){var F=y.state;if(F!==b.api.events.state.IDLE){j()}y.item=E;A=true;y.setActiveMediaProvider(y.playlist[y.item]);i.sendEvent(b.api.events.JWPLAYER_PLAYLIST_ITEM,{index:E});if(F==b.api.events.state.PLAYING||F==b.api.events.state.BUFFERING||y.config.chromeless||e.config.autostart===true){p()}}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function z(E){try{switch(typeof(E)){case"number":y.getMedia().volume(E);break;case"string":y.getMedia().volume(parseInt(E,10));break}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function l(E){try{if(typeof E=="undefined"){y.getMedia().mute(!y.mute)}else{if(E.toString().toLowerCase()=="true"){y.getMedia().mute(true)}else{y.getMedia().mute(false)}}return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function h(E,D){try{y.width=E;y.height=D;d.resize(E,D);i.sendEvent(b.api.events.JWPLAYER_RESIZE,{width:y.width,height:y.height});return true}catch(F){i.sendEvent(b.api.events.JWPLAYER_ERROR,F)}return false}function v(E){try{if(typeof E=="undefined"){y.fullscreen=!y.fullscreen;d.fullscreen(!y.fullscreen)}else{if(E.toString().toLowerCase()=="true"){y.fullscreen=true;d.fullscreen(true)}else{y.fullscreen=false;d.fullscreen(false)}}i.sendEvent(b.api.events.JWPLAYER_RESIZE,{width:y.width,height:y.height});i.sendEvent(b.api.events.JWPLAYER_FULLSCREEN,{fullscreen:E});return true}catch(D){i.sendEvent(b.api.events.JWPLAYER_ERROR,D)}return false}function C(D){try{j();y.loadPlaylist(D);o(y.item);return true}catch(E){i.sendEvent(b.api.events.JWPLAYER_ERROR,E)}return false}b.html5.controller.repeatoptions={LIST:"LIST",ALWAYS:"ALWAYS",SINGLE:"SINGLE",NONE:"NONE"};function n(){y.resetEventListeners();y.addGlobalListener(m);switch(y.config.repeat.toUpperCase()){case b.html5.controller.repeatoptions.SINGLE:p();break;case b.html5.controller.repeatoptions.ALWAYS:if(y.item==y.playlist.length-1&&!y.config.shuffle){o(0);p()}else{g()}break;case b.html5.controller.repeatoptions.LIST:if(y.item==y.playlist.length-1&&!y.config.shuffle){o(0)}else{g()}break}}this.play=p;this.pause=B;this.seek=x;this.stop=j;this.next=g;this.prev=f;this.item=o;this.setVolume=z;this.setMute=l;this.resize=h;this.setFullscreen=v;this.load=C}})(jwplayer);(function(a){a.html5.defaultSkin=function(){this.text='<?xml version="1.0" ?><skin author="LongTail Video" name="Five" version="1.0"><settings><setting name="backcolor" value="0xFFFFFF"/><setting name="frontcolor" value="0x000000"/><setting name="lightcolor" value="0x000000"/><setting name="screencolor" value="0x000000"/></settings><components><component name="controlbar"><settings><setting name="margin" value="20"/><setting name="fontsize" value="11"/></settings><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFJJREFUeNrslLENwAAIwxLU/09j5AiOgD5hVQzNAVY8JK4qEfHMIKBnd2+BQlBINaiRtL/aV2rdzYBsM6CIONbI1NZENTr3RwdB2PlnJgJ6BRgA4hwu5Qg5iswAAAAASUVORK5CYII="/><element name="capLeft" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD5JREFUeNosi8ENACAMAgnuv14H0Z8asI19XEjhOiKCMmibVgJTUt7V6fe9KXOtSQCfctJHu2q3/ot79hNgANc2OTz9uTCCAAAAAElFTkSuQmCC"/><element name="capRight" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD5JREFUeNosi8ENACAMAgnuv14H0Z8asI19XEjhOiKCMmibVgJTUt7V6fe9KXOtSQCfctJHu2q3/ot79hNgANc2OTz9uTCCAAAAAElFTkSuQmCC"/><element name="divider" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD5JREFUeNosi8ENACAMAgnuv14H0Z8asI19XEjhOiKCMmibVgJTUt7V6fe9KXOtSQCfctJHu2q3/ot79hNgANc2OTz9uTCCAAAAAElFTkSuQmCC"/><element name="playButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEhJREFUeNpiYqABYBo1dNRQ+hr6H4jvA3E8NS39j4SpZvh/LJig4YxEGEqy3kET+w+AOGFQRhTJhrEQkGcczfujhg4CQwECDADpTRWU/B3wHQAAAABJRU5ErkJggg=="/><element name="pauseButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAChJREFUeNpiYBgFo2DwA0YC8v/R1P4nRu+ooaOGUtnQUTAKhgIACDAAFCwQCfAJ4gwAAAAASUVORK5CYII="/><element name="prevButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEtJREFUeNpiYBgFo2Dog/9QDAPyQHweTYwiQ/2B+D0Wi8g2tB+JTdBQRiIMJVkvEy0iglhDF9Aq9uOpHVEwoE+NJDUKRsFgAAABBgDe2hqZcNNL0AAAAABJRU5ErkJggg=="/><element name="nextButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAElJREFUeNpiYBgFo2Dog/9AfB6I5dHE/lNqKAi/B2J/ahsKw/3EGMpIhKEk66WJoaR6fz61IyqemhEFSlL61ExSo2AUDAYAEGAAiG4hj+5t7M8AAAAASUVORK5CYII="/><element name="timeSliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADxJREFUeNpiYBgFo2AU0Bwwzluw+D8tLWARFhKiqQ9YuLg4aWsBGxs7bS1gZ6e5BWyjSX0UjIKhDgACDABlYQOGh5pYywAAAABJRU5ErkJggg=="/><element name="timeSliderBuffer" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD1JREFUeNpiYBgFo2AU0Bww1jc0/aelBSz8/Pw09QELOzs7bS1gY2OjrQWsrKy09gHraFIfBaNgqAOAAAMAvy0DChXHsZMAAAAASUVORK5CYII="/><element name="timeSliderProgress" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAClJREFUeNpiYBgFo2AU0BwwAvF/WlrARGsfjFow8BaMglEwCugAAAIMAOHfAQunR+XzAAAAAElFTkSuQmCC"/><element name="timeSliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAICAYAAAA870V8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABZJREFUeNpiZICA/yCCiQEJUJcDEGAAY0gBD1/m7Q0AAAAASUVORK5CYII="/><element name="muteButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiYBgFIw3MB+L/5Gj8j6yRiRTFyICJXHfTXyMLAXlGati4YDRFDj8AEGAABk8GSqqS4CoAAAAASUVORK5CYII="/><element name="unmuteButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD1JREFUeNpiYBgFgxz8p7bm+cQa+h8LHy7GhEcjIz4bmAjYykiun/8j0fakGPIfTfPgiSr6aB4FVAcAAQYAWdwR1G1Wd2gAAAAASUVORK5CYII="/><element name="volumeSliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGpJREFUeNpi/P//PwM9ABMDncCoRYPfIqqDZcuW1UPp/6AUDcNM1DQYKtRAlaAj1mCSLSLXYIIWUctgDItoZfDA5aOoqKhGEANIM9LVR7SymGDQUctikuOIXkFNdhHEOFrDjlpEd4sAAgwAriRMub95fu8AAAAASUVORK5CYII="/><element name="volumeSliderProgress" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFtJREFUeNpi/P//PwM9ABMDncCoRYPfIlqAeij9H5SiYZiqBqPTlFqE02BKLSLaYFItIttgQhZRzWB8FjENiuRJ7aAbsMQwYMl7wDIsWUUQ42gNO2oR3S0CCDAAKhKq6MLLn8oAAAAASUVORK5CYII="/><element name="fullscreenButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE5JREFUeNpiYBgFo2DQA0YC8v/xqP1PjDlMRDrEgUgxkgHIlfZoriVGjmzLsLFHAW2D6D8eA/9Tw7L/BAwgJE90PvhPpNgoGAVDEQAEGAAMdhTyXcPKcAAAAABJRU5ErkJggg=="/><element name="normalscreenButton" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEZJREFUeNpiYBgFo2DIg/9UUkOUAf8JiFFsyX88fJyAkcQgYMQjNkzBoAgiezyRbE+tFGSPxQJ7auYBmma0UTAKBhgABBgAJAEY6zON61sAAAAASUVORK5CYII="/></elements></component><component name="display"><elements><element name="background" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEpJREFUeNrszwENADAIA7DhX8ENoBMZ5KR10EryckCJiIiIiIiIiIiIiIiIiIiIiIh8GmkRERERERERERERERERERERERGRHSPAAPlXH1phYpYaAAAAAElFTkSuQmCC"/><element name="playIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALdJREFUeNrs18ENgjAYhmFouDOCcQJGcARHgE10BDcgTOIosAGwQOuPwaQeuFRi2p/3Sb6EC5L3QCxZBgAAAOCorLW1zMn65TrlkH4NcV7QNcUQt7Gn7KIhxA+qNIR81spOGkL8oFJDyLJRdosqKDDkK+iX5+d7huzwM40xptMQMkjIOeRGo+VkEVvIPfTGIpKASfYIfT9iCHkHrBEzf4gcUQ56aEzuGK/mw0rHpy4AAACAf3kJMACBxjAQNRckhwAAAABJRU5ErkJggg=="/><element name="muteIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNrs1jEOgCAMBVAg7t5/8qaoIy4uoobyXsLCxA+0NCUAAADGUWvdQoQ41x4ixNBB2hBvBskdD3w5ZCkl3+33VqI0kjBBlh9rp+uTcyOP33TnolfsU85XX3yIRpQph8ZQY3wTZtU5AACASA4BBgDHoVuY1/fvOQAAAABJRU5ErkJggg=="/><element name="errorIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWlJREFUeNrsl+1twjAQhsHq/7BBYQLYIBmBDcoGMAIjtBPQTcII2SDtBDBBwrU6pGsUO7YbO470PtKJkz9iH++d4ywWAAAAAABgljRNsyWr2bZzDuJG1rLdZhcMbTjrBCGDyUKsqQLFciJb9bSvuG/WagRVRUVUI6gqy5HVeKWfSgRyJruKIU//TrZTSn2nmlaXThrloi/v9F2STC1W4+Aw5cBzkquRc09bofFNc6YLxEON0VUZS5FPTftO49vMjRsIF3RhOGr7/D/pJw+FKU+q0vDyq8W42jCunDqI3LC5XxNj2wHLU1XjaRnb0Lhykhqhhd8MtSF5J9tbjCv4mXGvKJz/65FF/qJryyaaIvzP2QRxZTX2nTuXjvV/VPFSwyLnW7mpH99yTh1FEVro6JBSd40/pMrRdV8vPtcKl28T2pT8TnFZ4yNosct3Q0io6JfBiz1FlGdqVQH3VHnepAEAAAAAADDzEGAAcTwB10jWgxcAAAAASUVORK5CYII="/><element name="bufferIcon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAuhJREFUeNrsWr9rU1EUznuNGqvFQh1ULOhiBx0KDtIuioO4pJuik3FxFfUPaAV1FTdx0Q5d2g4FFxehTnEpZHFoBy20tCIWtGq0TZP4HfkeHB5N8m6Sl/sa74XDybvv3vvOd8/Pe4lXrVZT3dD8VJc0B8QBcUAcEAfESktHGeR5XtMfqFQq/f92zPe/NbtGlKTdCY30kuxrpMGO94BlQCXs+rbh3ONgA6BlzP1p20d80gEI5hmA2A92Qua1Q2PtAFISM+bvjMG8U+Q7oA3rQGASwrYCU6WpNdLGYbA+Pq5jjXIiwi8EEa2UDbQSaKOIuV+SlkcCrfjY8XTI9EpKGwP0C2kru2hLtHqa4zoXtZRWyvi4CLwv9Opr6Hkn6A9HKgEANsQ1iqC3Ub/vRUk2JgmRkatK36kVrnt0qObunwUdUUMXMWYpakJsO5Am8tAw2GBIgwWA+G2S2dMpiw0gDioQRQJoKhRb1QiDwlHZUABYbaXWsm5ae6loTE4ZDxN4CZar8foVzOJ2iyZ2kWF3t7YIevffaMT5yJ70kQb2fQ1sE5SHr2wazs2wgMxgbsEKEAgxAvZUJbQLBGTSBMgNrncJbA6AljtS/eKDJ0Ez+DmrQEzXS2h1Ck25kAg0IZcUOaydCy4sYnN2fOA+2AP16gNoHALlQ+fwH7XO4CxLenUpgj4xr6ugY2roPMbMx+Xs18m/E8CVEIhxsNeg83XWOAN6grG3lGbk8uE5fr4B/WH3cJw+co/l9nTYsSGYCJ/lY5/qv0thn6nrIWmjeJcPSnWOeY++AkF8tpJHIMAUs/MaBBpj3znZfQo5psY+ZrG4gv5HickjEOymKjEeRpgyST6IuZcTcWbnjcgdPi5ghxciRKsl1lDSsgwA1i8fssonJgzmTSqfGUkCENndNdAL7PS6QQ7ZYISTo+1qq0LEWjTWcvY4isa4z+yfQB+7ooyHVg5RI7/i1Ijn/vnggDggDogD4oC00P4KMACd/juEHOrS4AAAAABJRU5ErkJggg=="/></elements></component><component name="dock"><elements><element name="button" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFBJREFUeNrs0cEJACAQA8Eofu0fu/W6EM5ZSAFDRpKTBs00CQQEBAQEBAQEBAQEBAQEBATkK8iqbY+AgICAgICAgICAgICAgICAgIC86QowAG5PAQzEJ0lKAAAAAElFTkSuQmCC"/></elements></component><component name="playlist"><elements><element name="item" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAIAAAC1nk4lAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNrs2NEJwCAMBcBYuv/CFuIE9VN47WWCR7iocXR3pdWdGPqqwIoMjYfQeAiNh9B4JHc6MHQVHnjggQceeOCBBx77TifyeOY0iHi8DqIdEY8dD5cL094eePzINB5CO/LwcOTptNB4CP25L4TIbZzpU7UEGAA5wz1uF5rF9AAAAABJRU5ErkJggg=="/><element name="sliderRail" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAA8CAIAAADpFA0BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADhJREFUeNrsy6ENACAMAMHClp2wYxZLAg5Fcu9e3OjuOKqqfTMzbs14CIZhGIZhGIZhGP4VLwEGAK/BBnVFpB0oAAAAAElFTkSuQmCC"/><element name="sliderThumb" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAA8CAIAAADpFA0BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNrsy7ENACAMBLE8++8caFFKKiRffU53112SGs3ttOohGIZhGIZhGIZh+Fe8BRgAiaUGde6NOSEAAAAASUVORK5CYII="/></elements></component></components></skin>';this.xml=null;if(window.DOMParser){parser=new DOMParser();this.xml=parser.parseFromString(this.text,"text/xml")}else{this.xml=new ActiveXObject("Microsoft.XMLDOM");this.xml.async="false";this.xml.loadXML(this.text)}return this}})(jwplayer);(function(a){_css=a.utils.css;_hide=function(b){_css(b,{display:"none"})};_show=function(b){_css(b,{display:"block"})};a.html5.display=function(o,z){var r={icons:true};var j=a.utils.extend({},r,z);var w=o;var d={};var f;var A;var k;var x;var y;var p;var i;var n=w.skin.getComponentSettings("display").bufferrotation===undefined?15:parseInt(w.skin.getComponentSettings("display").bufferrotation,10);var e=w.skin.getComponentSettings("display").bufferinterval===undefined?100:parseInt(w.skin.getComponentSettings("display").bufferinterval,10);var c={display:{style:{cursor:"pointer",top:0,left:0,overflow:"hidden"},click:u},display_icon:{style:{cursor:"pointer",position:"absolute",top:((w.skin.getSkinElement("display","background").height-w.skin.getSkinElement("display","playIcon").height)/2),left:((w.skin.getSkinElement("display","background").width-w.skin.getSkinElement("display","playIcon").width)/2),border:0,margin:0,padding:0,zIndex:3}},display_iconBackground:{style:{cursor:"pointer",position:"absolute",top:((A-w.skin.getSkinElement("display","background").height)/2),left:((f-w.skin.getSkinElement("display","background").width)/2),border:0,backgroundImage:(["url(",w.skin.getSkinElement("display","background").src,")"]).join(""),width:w.skin.getSkinElement("display","background").width,height:w.skin.getSkinElement("display","background").height,margin:0,padding:0,zIndex:2}},display_image:{style:{display:"none",width:f,height:A,position:"absolute",cursor:"pointer",left:0,top:0,margin:0,padding:0,textDecoration:"none",zIndex:1}},display_text:{style:{zIndex:4,position:"relative",opacity:0.8,backgroundColor:parseInt("000000",16),color:parseInt("ffffff",16),textAlign:"center",fontFamily:"Arial,sans-serif",padding:"0 5px",fontSize:14}}};w.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE,l);w.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_MUTE,l);w.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_ITEM,l);w.jwAddEventListener(a.api.events.JWPLAYER_ERROR,t);B();function B(){d.display=s("div","display");d.display_text=s("div","display_text");d.display.appendChild(d.display_text);d.display_image=s("img","display_image");d.display_image.onerror=function(C){_hide(d.display_image)};d.display_image.onload=m;d.display_icon=s("div","display_icon");d.display_iconBackground=s("div","display_iconBackground");d.display.appendChild(d.display_image);d.display_iconBackground.appendChild(d.display_icon);d.display.appendChild(d.display_iconBackground);b()}this.getDisplayElement=function(){return d.display};this.resize=function(D,C){f=D;A=C;_css(d.display,{width:D,height:C});_css(d.display_text,{width:(D-10),top:((A-d.display_text.getBoundingClientRect().height)/2)});_css(d.display_iconBackground,{top:((A-w.skin.getSkinElement("display","background").height)/2),left:((f-w.skin.getSkinElement("display","background").width)/2)});h();l({})};function m(C){k=d.display_image.naturalWidth;x=d.display_image.naturalHeight;h()}function h(){a.utils.stretch(w.jwGetStretching(),d.display_image,f,A,k,x)}function s(C,E){var D=document.createElement(C);D.id=w.id+"_jwplayer_"+E;_css(D,c[E].style);return D}function b(){for(var C in d){if(c[C].click!==undefined){d[C].onclick=c[C].click}}}function u(C){if(typeof C.preventDefault!="undefined"){C.preventDefault()}else{C.returnValue=false}if(w.jwGetState()!=a.api.events.state.PLAYING){w.jwPlay()}else{w.jwPause()}}function g(C){if(i||!j.icons){q();return}_show(d.display_iconBackground);d.display_icon.style.backgroundImage=(["url(",w.skin.getSkinElement("display",C).src,")"]).join("");_css(d.display_icon,{display:"block",width:w.skin.getSkinElement("display",C).width,height:w.skin.getSkinElement("display",C).height,top:(w.skin.getSkinElement("display","background").height-w.skin.getSkinElement("display",C).height)/2,left:(w.skin.getSkinElement("display","background").width-w.skin.getSkinElement("display",C).width)/2});if(w.skin.getSkinElement("display",C+"Over")!==undefined){d.display_icon.onmouseover=function(D){d.display_icon.style.backgroundImage=["url(",w.skin.getSkinElement("display",C+"Over").src,")"].join("")};d.display_icon.onmouseout=function(D){d.display_icon.style.backgroundImage=["url(",w.skin.getSkinElement("display",C).src,")"].join("")}}else{d.display_icon.onmouseover=null;d.display_icon.onmouseout=null}}function q(){_hide(d.display_icon);_hide(d.display_iconBackground)}function t(C){i=true;q();d.display_text.innerHTML=C.error;_show(d.display_text);d.display_text.style.top=((A-d.display_text.getBoundingClientRect().height)/2)+"px"}function v(){var C=d.display_image;d.display_image=s("img","display_image");d.display_image.onerror=function(D){_hide(d.display_image)};d.display_image.onload=m;d.display.replaceChild(d.display_image,C)}function l(C){if((C.type==a.api.events.JWPLAYER_PLAYER_STATE||C.type==a.api.events.JWPLAYER_PLAYLIST_ITEM)&&i){i=false;_hide(d.display_text)}if(p!==undefined){clearInterval(p);p=null;a.utils.animations.rotate(d.display_icon,0)}switch(w.jwGetState()){case a.api.events.state.BUFFERING:g("bufferIcon");y=0;p=setInterval(function(){y+=n;a.utils.animations.rotate(d.display_icon,y%360)},e);g("bufferIcon");break;case a.api.events.state.PAUSED:_css(d.display_image,{background:"transparent no-repeat center center"});g("playIcon");break;case a.api.events.state.IDLE:if(w.jwGetPlaylist()[w.jwGetItem()].image){_css(d.display_image,{display:"block"});d.display_image.src=a.utils.getAbsolutePath(w.jwGetPlaylist()[w.jwGetItem()].image)}else{v()}g("playIcon");break;default:if(w.jwGetMute()){v();g("muteIcon")}else{v();_hide(d.display_iconBackground);_hide(d.display_icon)}break}}return this}})(jwplayer);(function(a){a.html5.dock=function(g,c){function f(){return{align:a.html5.view.positions.RIGHT}}var k=a.utils.extend({},f(),c);if(k.align=="FALSE"){return}var h={};var b=[];var d;var e;var j=document.createElement("div");j.id=g.id+"_jwplayer_dock";this.getDisplayElement=function(){return j};this.setButton=function(o,l,m,n){if(!l&&h[o]){a.utils.arrays.remove(b,o);j.removeChild(h[o].div);delete h[o]}else{if(l){if(!h[o]){h[o]={}}h[o].handler=l;h[o].outGraphic=m;h[o].overGraphic=n;if(!h[o].div){b.push(o);h[o].div=document.createElement("div");h[o].div.style.position="relative";j.appendChild(h[o].div);h[o].div.appendChild(document.createElement("img"));h[o].div.childNodes[0].style.position="absolute";h[o].div.childNodes[0].style.left=0;h[o].div.childNodes[0].style.top=0;h[o].div.childNodes[0].style.zIndex=10;h[o].div.childNodes[0].style.cursor="pointer";h[o].div.appendChild(document.createElement("img"));h[o].div.childNodes[1].style.position="absolute";h[o].div.childNodes[1].style.left=0;h[o].div.childNodes[1].style.top=0;if(g.skin.getSkinElement("dock","button")){h[o].div.childNodes[1].src=g.skin.getSkinElement("dock","button").src}h[o].div.childNodes[1].style.zIndex=9;h[o].div.childNodes[1].style.cursor="pointer";h[o].div.onmouseover=function(){if(h[o].overGraphic){h[o].div.childNodes[0].src=h[o].overGraphic}if(g.skin.getSkinElement("dock","buttonOver")){h[o].div.childNodes[1].src=g.skin.getSkinElement("dock","buttonOver").src}};h[o].div.onmouseout=function(){if(h[o].outGraphic){h[o].div.childNodes[0].src=h[o].outGraphic}if(g.skin.getSkinElement("dock","button")){h[o].div.childNodes[1].src=g.skin.getSkinElement("dock","button").src}};if(h[o].overGraphic){h[o].div.childNodes[0].src=h[o].overGraphic}if(h[o].outGraphic){h[o].div.childNodes[0].src=h[o].outGraphic}if(g.skin.getSkinElement("dock","button")){h[o].div.childNodes[1].src=g.skin.getSkinElement("dock","button").src}}if(l){h[o].div.onclick=function(p){p.preventDefault();a(g.id).callback(o);if(h[o].overGraphic){h[o].div.childNodes[0].src=h[o].overGraphic}if(g.skin.getSkinElement("dock","button")){h[o].div.childNodes[1].src=g.skin.getSkinElement("dock","button").src}}}}}i(d,e)};function i(n,l){d=n;e=l;if(b.length>0){var p=10;var r=n-g.skin.getSkinElement("dock","button").width-p;var o=p;var q=-1;if(k.align==a.html5.view.positions.LEFT){q=1;r=p}for(var m=0;m<b.length;m++){var s=Math.floor(o/l);if((o+g.skin.getSkinElement("dock","button").height+p)>((s+1)*l)){o=((s+1)*l)+p;s=Math.floor(o/l)}h[b[m]].div.style.top=(o%l)+"px";h[b[m]].div.style.left=(r+(g.skin.getSkinElement("dock","button").width+p)*s*q)+"px";o+=g.skin.getSkinElement("dock","button").height+p}}}this.resize=i;return this}})(jwplayer);(function(a){a.html5.eventdispatcher=function(d,b){var c=new a.events.eventdispatcher(b);a.utils.extend(this,c);this.sendEvent=function(e,f){if(f===undefined){f={}}a.utils.extend(f,{id:d,version:a.version,type:e});c.sendEvent(e,f)}}})(jwplayer);(function(a){var b={prefix:"http://l.longtailvideo.com/html5/",file:"logo.png",link:"http://www.longtailvideo.com/players/jw-flv-player/",margin:8,out:0.5,over:1,timeout:3,hide:true,position:"bottom-left"};_css=a.utils.css;a.html5.logo=function(l,m){var r=l;var n;var i;var c;j();function j(){p();d();f()}function p(){if(b.prefix){var t=l.version.split(/\W/).splice(0,2).join("/");if(b.prefix.indexOf(t)<0){b.prefix+=t+"/"}}if(m.position==a.html5.view.positions.OVER){m.position=b.position}i=a.utils.extend({},b)}function d(){c=document.createElement("img");c.id=r.id+"_jwplayer_logo";c.style.display="none";c.onload=function(t){_css(c,q());r.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE,s);e()};if(!i.file){return}if(i.file.indexOf("http://")===0){c.src=i.file}else{c.src=i.prefix+i.file}}if(!i.file){return}this.resize=function(u,t){};this.getDisplayElement=function(){return c};function f(){if(i.link){c.onmouseover=h;c.onmouseout=e;c.onclick=o}else{this.mouseEnabled=false}}function o(t){if(typeof t!="undefined"){t.stopPropagation()}r.jwPause();r.jwSetFullscreen(false);if(i.link){window.open(i.link,"_blank")}return}function e(t){if(i.link){c.style.opacity=i.out}return}function h(t){if(i.hide){c.style.opacity=i.over}return}function q(){var v={textDecoration:"none",position:"absolute",cursor:"pointer"};v.display=i.hide?"none":"block";var u=i.position.toLowerCase().split("-");for(var t in u){v[u[t]]=i.margin}return v}function k(){if(i.hide){c.style.display="block";c.style.opacity=0;a.utils.fadeTo(c,i.out,0.1,parseFloat(c.style.opacity));n=setTimeout(function(){g()},i.timeout*1000)}}function g(){if(i.hide){a.utils.fadeTo(c,0,0.1,parseFloat(c.style.opacity))}}function s(t){if(t.newstate==a.api.events.state.BUFFERING){clearTimeout(n);k()}}return this}})(jwplayer);(function(a){var c={ended:a.api.events.state.IDLE,playing:a.api.events.state.PLAYING,pause:a.api.events.state.PAUSED,buffering:a.api.events.state.BUFFERING};var b=a.utils.css;a.html5.mediavideo=function(f,D){var H={abort:t,canplay:m,canplaythrough:m,durationchange:q,emptied:t,ended:m,error:l,loadeddata:q,loadedmetadata:q,loadstart:m,pause:m,play:K,playing:m,progress:A,ratechange:t,seeked:m,seeking:m,stalled:m,suspend:m,timeupdate:K,volumechange:t,waiting:m,canshowcurrentframe:t,dataunavailable:t,empty:t,load:e,loadedfirstframe:t};var I=new a.html5.eventdispatcher();a.utils.extend(this,I);var h=f;var x=D;var E;var G;var d=a.api.events.state.IDLE;var B=null;var n;var g=0;var z=false;var r=false;var M;var L;var i=[];var N;var C=false;function v(){return d}function e(O){}function t(O){}function m(O){if(c[O.type]){s(c[O.type])}}function s(O){if(C){return}if(n){O=a.api.events.state.IDLE}if(O==a.api.events.state.PAUSED&&d==a.api.events.state.IDLE){return}if(O==a.api.events.state.PLAYING&&d==a.api.events.state.IDLE){s(a.api.events.state.BUFFERING);I.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER,{bufferPercent:h.buffer});y();return}if(d!=O){var P=d;h.state=O;d=O;var Q=false;if(O==a.api.events.state.IDLE){p();if(h.position>=h.duration&&(h.position||h.duration)){Q=true}if(x.style.display!="none"&&!h.config.chromeless){x.style.display="none"}}I.sendEvent(a.api.events.JWPLAYER_PLAYER_STATE,{oldstate:P,newstate:O});if(Q){I.sendEvent(a.api.events.JWPLAYER_MEDIA_COMPLETE)}}n=false}function q(O){var P={height:O.target.videoHeight,width:O.target.videoWidth,duration:Math.round(O.target.duration*10)/10};if(h.duration===0||isNaN(h.duration)){h.duration=Math.round(O.target.duration*10)/10}h.playlist[h.item]=a.utils.extend(h.playlist[h.item],P);I.sendEvent(a.api.events.JWPLAYER_MEDIA_META,{metadata:P})}function K(P){if(n){return}if(P!==undefined&&P.target!==undefined){if(h.duration===0||isNaN(h.duration)){h.duration=Math.round(P.target.duration*10)/10}if(!z&&x.readyState>0){s(a.api.events.state.PLAYING)}if(d==a.api.events.state.PLAYING){if(!z&&x.readyState>0){z=true;try{x.currentTime=h.playlist[h.item].start}catch(O){}x.volume=h.volume/100;x.muted=h.mute}h.position=Math.round(P.target.currentTime*10)/10;I.sendEvent(a.api.events.JWPLAYER_MEDIA_TIME,{position:P.target.currentTime,duration:P.target.duration})}}A(P)}function y(){if(E===false&&d==a.api.events.state.BUFFERING){I.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER_FULL);E=true}}function F(){var O=(i[i.length-1]-i[0])/i.length;N=setTimeout(function(){if(!G){A({lengthComputable:true,loaded:1,total:1})}},O*10)}function A(Q){var P,O;if(Q!==undefined&&Q.lengthComputable&&Q.total){o();P=Q.loaded/Q.total*100;O=P/100*(h.duration-x.currentTime);if(50<P&&!G){clearTimeout(N);F()}}else{if((x.buffered!==undefined)&&(x.buffered.length>0)){maxBufferIndex=0;if(maxBufferIndex>=0){P=x.buffered.end(maxBufferIndex)/x.duration*100;O=x.buffered.end(maxBufferIndex)-x.currentTime}}}y();if(!G){if(P==100&&G===false){G=true}if(P!==null&&(P>h.buffer)){h.buffer=Math.round(P);I.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER,{bufferPercent:Math.round(P)})}}}function w(){if(B===null){B=setInterval(function(){K()},100)}}function p(){clearInterval(B);B=null}function l(Q){var P="There was an error: ";if((Q.target.error&&Q.target.tagName.toLowerCase()=="video")||Q.target.parentNode.error&&Q.target.parentNode.tagName.toLowerCase()=="video"){var O=Q.target.error===undefined?Q.target.parentNode.error:Q.target.error;switch(O.code){case O.MEDIA_ERR_ABORTED:P="You aborted the video playback: ";break;case O.MEDIA_ERR_NETWORK:P="A network error caused the video download to fail part-way: ";break;case O.MEDIA_ERR_DECODE:P="The video playback was aborted due to a corruption problem or because the video used features your browser did not support: ";break;case O.MEDIA_ERR_SRC_NOT_SUPPORTED:P="The video could not be loaded, either because the server or network failed or because the format is not supported: ";break;default:P="An unknown error occurred: ";break}}else{if(Q.target.tagName.toLowerCase()=="source"){L--;if(L>0){return}P="The video could not be loaded, either because the server or network failed or because the format is not supported: "}else{a.utils.log("Erroneous error received. Continuing...");return}}u();P+=j();C=true;I.sendEvent(a.api.events.JWPLAYER_ERROR,{error:P});return}function j(){var Q="";for(var P in M.levels){var O=M.levels[P];var R=x.ownerDocument.createElement("source");Q+=a.utils.getAbsolutePath(O.file);if(P<(M.levels.length-1)){Q+=", "}}return Q}this.getDisplayElement=function(){return x};this.play=function(){if(d!=a.api.events.state.PLAYING){if(x.style.display!="block"){x.style.display="block"}x.play();w();if(E){s(a.api.events.state.PLAYING)}}};this.pause=function(){x.pause();s(a.api.events.state.PAUSED)};this.seek=function(O){if(!(h.duration===0||isNaN(h.duration))&&!(h.position===0||isNaN(h.position))){x.currentTime=O;x.play()}};function u(){x.pause();p();h.position=0;n=true;s(a.api.events.state.IDLE)}this.stop=u;this.volume=function(O){x.volume=O/100;h.volume=O;I.sendEvent(a.api.events.JWPLAYER_MEDIA_VOLUME,{volume:Math.round(O)})};this.mute=function(O){x.muted=O;h.mute=O;I.sendEvent(a.api.events.JWPLAYER_MEDIA_MUTE,{mute:O})};this.resize=function(P,O){if(false){b(x,{width:P,height:O})}I.sendEvent(a.api.events.JWPLAYER_MEDIA_RESIZE,{fullscreen:h.fullscreen,width:P,hieght:O})};this.fullscreen=function(O){if(O===true){this.resize("100%","100%")}else{this.resize(h.config.width,h.config.height)}};this.load=function(O){J(O);I.sendEvent(a.api.events.JWPLAYER_MEDIA_LOADED);E=false;G=false;z=false;if(!h.config.chromeless){i=[];o();s(a.api.events.state.BUFFERING);setTimeout(function(){K()},25)}};function o(){var O=new Date().getTime();i.push(O)}this.hasChrome=function(){return r};function J(V){h.duration=V.duration;r=false;M=V;var Q=document.createElement("video");Q.preload="none";C=false;L=0;for(var P=0;P<V.levels.length;P++){var O=V.levels[P];if(a.utils.isYouTube(O.file)){delete Q;k(O.file);return}var R;if(O.type===undefined){var U=a.utils.extension(O.file);if(a.utils.extensionmap[U]!==undefined&&a.utils.extensionmap[U].html5!==undefined){R=a.utils.extensionmap[U].html5}}else{R=O.type}if(!R||Q.canPlayType(R)){var T=x.ownerDocument.createElement("source");T.src=a.utils.getAbsolutePath(O.file);if(R&&!a.utils.isLegacyAndroid()){T.type=R}L++;Q.appendChild(T)}}if(L===0){C=true;I.sendEvent(a.api.events.JWPLAYER_ERROR,{error:"The video could not be loaded because the format is not supported by your browser: "+j()})}if(h.config.chromeless){Q.poster=a.utils.getAbsolutePath(V.image);Q.controls="controls"}Q.style.top=x.style.top;Q.style.left=x.style.left;Q.style.width=x.style.width;Q.style.height=x.style.height;Q.style.zIndex=x.style.zIndex;Q.onload=e;Q.volume=0;x.parentNode.replaceChild(Q,x);Q.id=x.id;x=Q;for(var S in H){x.addEventListener(S,function(W){if(W.target.parentNode!==null){H[W.type](W)}},true)}}function k(S){var P=document.createElement("object");S=["http://www.youtube.com/v/",S.replace(/^[^v]+v.(.{11}).*/,"$1"),"&hl=en_US&fs=1&autoplay=1"].join("");var V={movie:S,allowFullScreen:"true",allowscriptaccess:"always"};for(var O in V){var T=document.createElement("param");T.name=O;T.value=V[O];P.appendChild(T)}var U=document.createElement("embed");var Q={src:S,type:"application/x-shockwave-flash",allowscriptaccess:"always",allowfullscreen:"true",width:document.getElementById(f.id).style.width,height:document.getElementById(f.id).style.height};for(var R in Q){U[R]=Q[R]}P.appendChild(U);P.style.position=x.style.position;P.style.top=x.style.top;P.style.left=x.style.left;P.style.width=document.getElementById(f.id).style.width;P.style.height=document.getElementById(f.id).style.height;P.style.zIndex=2147483000;x.parentNode.replaceChild(P,x);P.id=x.id;x=P;r=true}this.embed=J;return this}})(jwplayer);(function(jwplayer){var _configurableStateVariables=["width","height","start","duration","volume","mute","fullscreen","item","plugins","stretching"];jwplayer.html5.model=function(api,container,options){var _api=api;var _container=container;var _model={id:_container.id,playlist:[],state:jwplayer.api.events.state.IDLE,position:0,buffer:0,config:{width:480,height:320,item:-1,skin:undefined,file:undefined,image:undefined,start:0,duration:0,bufferlength:5,volume:90,mute:false,fullscreen:false,repeat:"none",stretching:jwplayer.utils.stretching.UNIFORM,autostart:false,debug:undefined,screencolor:undefined}};var _media;var _eventDispatcher=new jwplayer.html5.eventdispatcher();var _components=["display","logo","controlbar","dock"];jwplayer.utils.extend(_model,_eventDispatcher);for(var option in options){if(typeof options[option]=="string"){var type=/color$/.test(option)?"color":null;options[option]=jwplayer.utils.typechecker(options[option],type)}var config=_model.config;var path=option.split(".");for(var edge in path){if(edge==path.length-1){config[path[edge]]=options[option]}else{if(config[path[edge]]===undefined){config[path[edge]]={}}config=config[path[edge]]}}}for(var index in _configurableStateVariables){var configurableStateVariable=_configurableStateVariables[index];_model[configurableStateVariable]=_model.config[configurableStateVariable]}var pluginorder=_components.concat([]);if(_model.plugins!==undefined){if(typeof _model.plugins=="string"){var userplugins=_model.plugins.split(",");for(var userplugin in userplugins){if(typeof userplugins[userplugin]=="string"){pluginorder.push(userplugins[userplugin].replace(/^\s+|\s+$/g,""))}}}}if(typeof _model.config.chromeless=="undefined"&&jwplayer.utils.isIOS()){_model.config.chromeless=true}if(_model.config.chromeless){pluginorder=["logo","dock"]}_model.plugins={order:pluginorder,config:{},object:{}};if(typeof _model.config.components!="undefined"){for(var component in _model.config.components){_model.plugins.config[component]=_model.config.components[component]}}for(var pluginIndex in _model.plugins.order){var pluginName=_model.plugins.order[pluginIndex];var pluginConfig=_model.config[pluginName]===undefined?{}:_model.config[pluginName];_model.plugins.config[pluginName]=_model.plugins.config[pluginName]===undefined?pluginConfig:jwplayer.utils.extend(_model.plugins.config[pluginName],pluginConfig);if(typeof _model.plugins.config[pluginName].position=="undefined"){_model.plugins.config[pluginName].position=jwplayer.html5.view.positions.OVER}else{_model.plugins.config[pluginName].position=_model.plugins.config[pluginName].position.toString().toUpperCase()}}if(typeof _model.plugins.config.dock!="object"){var position=_model.plugins.config.dock.toString().toUpperCase();_model.plugins.config.dock={position:position}}if(typeof _model.plugins.config.dock.position!="undefined"){_model.plugins.config.dock.align=_model.plugins.config.dock.position;_model.plugins.config.dock.position=jwplayer.html5.view.positions.OVER}_model.loadPlaylist=function(arg,ready){var input;if(typeof arg=="string"){try{input=eval(arg)}catch(err){input=arg}}else{input=arg}var config;switch(jwplayer.utils.typeOf(input)){case"object":config=input;break;case"array":config={playlist:input};break;default:config={file:input};break}_model.playlist=new jwplayer.html5.playlist(config);if(_model.config.shuffle){_model.item=_getShuffleItem()}else{if(_model.config.item>=_model.playlist.length){_model.config.item=_model.playlist.length-1}else{if(_model.config.item<0){_model.config.item=0}}_model.item=_model.config.item}if(!ready){_eventDispatcher.sendEvent(jwplayer.api.events.JWPLAYER_PLAYLIST_LOADED,{playlist:_model.playlist})}_model.setActiveMediaProvider(_model.playlist[_model.item])};function _getShuffleItem(){var result=null;if(_model.playlist.length>1){while(result===null){result=Math.floor(Math.random()*_model.playlist.length);if(result==_model.item){result=null}}}else{result=0}return result}function forward(evt){if(evt.type==jwplayer.api.events.JWPLAYER_MEDIA_LOADED){_container=_media.getDisplayElement()}_eventDispatcher.sendEvent(evt.type,evt)}_model.setActiveMediaProvider=function(playlistItem){if(_media!==undefined){_media.resetEventListeners()}_media=new jwplayer.html5.mediavideo(_model,_container);_media.addGlobalListener(forward);if(_model.config.chromeless){_media.load(playlistItem)}return true};_model.getMedia=function(){return _media};_model.setupPlugins=function(){for(var plugin in _model.plugins.order){try{var pluginName=_model.plugins.order[plugin];if(jwplayer.html5[pluginName]!==undefined){_model.plugins.object[pluginName]=new jwplayer.html5[pluginName](_api,_model.plugins.config[pluginName])}else{_model.plugins.order.splice(plugin,plugin+1)}}catch(err){jwplayer.utils.log("Could not setup "+pluginName)}}};return _model}})(jwplayer);(function(a){a.html5.playlist=function(b){var d=[];if(b.playlist&&b.playlist instanceof Array&&b.playlist.length>0){for(var c in b.playlist){if(!isNaN(parseInt(c))){d.push(new a.html5.playlistitem(b.playlist[c]))}}}else{d.push(new a.html5.playlistitem(b))}return d}})(jwplayer);(function(a){a.html5.playlistitem=function(c){var b={author:"",date:"",description:"",image:"",link:"",mediaid:"",tags:"",title:"",provider:"",file:"",streamer:"",duration:-1,start:0,currentLevel:-1,levels:[]};for(var d in b){if(c[d]!==undefined){b[d]=c[d]}}if(b.levels.length===0){b.levels[0]=new a.html5.playlistitemlevel(b)}return b}})(jwplayer);(function(a){a.html5.playlistitemlevel=function(b){var d={file:"",streamer:"",bitrate:0,width:0};for(var c in d){if(b[c]!==undefined){d[c]=b[c]}}return d}})(jwplayer);(function(a){a.html5.skin=function(){var b={};var c=false;this.load=function(d,e){new a.html5.skinloader(d,function(f){c=true;b=f;e()},function(){new a.html5.skinloader("",function(f){c=true;b=f;e()})})};this.getSkinElement=function(d,e){if(c){try{return b[d].elements[e]}catch(f){a.utils.log("No such skin component / element: ",[d,e])}}return null};this.getComponentSettings=function(d){if(c){return b[d].settings}return null};this.getComponentLayout=function(d){if(c){return b[d].layout}return null}}})(jwplayer);(function(a){a.html5.skinloader=function(f,n,i){var m={};var c=n;var j=i;var e=true;var h;var l=f;var q=false;function k(){if(typeof l!="string"||l===""){d(a.html5.defaultSkin().xml)}else{a.utils.ajax(a.utils.getAbsolutePath(l),function(r){try{if(r.responseXML!==null){d(r.responseXML);return}}catch(s){}d(a.html5.defaultSkin().xml)},function(r){d(a.html5.defaultSkin().xml)})}}function d(w){var C=w.getElementsByTagName("component");if(C.length===0){return}for(var F=0;F<C.length;F++){var A=C[F].getAttribute("name");var z={settings:{},elements:{},layout:{}};m[A]=z;var E=C[F].getElementsByTagName("elements")[0].getElementsByTagName("element");for(var D=0;D<E.length;D++){b(E[D],A)}var x=C[F].getElementsByTagName("settings")[0];if(x!==undefined&&x.childNodes.length>0){var I=x.getElementsByTagName("setting");for(var N=0;N<I.length;N++){var O=I[N].getAttribute("name");var G=I[N].getAttribute("value");var v=/color$/.test(O)?"color":null;m[A].settings[O]=a.utils.typechecker(G,v)}}var J=C[F].getElementsByTagName("layout")[0];if(J!==undefined&&J.childNodes.length>0){var K=J.getElementsByTagName("group");for(var u=0;u<K.length;u++){var y=K[u];m[A].layout[y.getAttribute("position")]={elements:[]};for(var M=0;M<y.attributes.length;M++){var B=y.attributes[M];m[A].layout[y.getAttribute("position")][B.name]=B.value}var L=y.getElementsByTagName("*");for(var t=0;t<L.length;t++){var r=L[t];m[A].layout[y.getAttribute("position")].elements.push({type:r.tagName});for(var s=0;s<r.attributes.length;s++){var H=r.attributes[s];m[A].layout[y.getAttribute("position")].elements[t][H.name]=H.value}if(m[A].layout[y.getAttribute("position")].elements[t].name===undefined){m[A].layout[y.getAttribute("position")].elements[t].name=r.tagName}}}}e=false;p()}}function p(){clearInterval(h);if(!q){h=setInterval(function(){o()},100)}}function b(w,v){var u=new Image();var r=w.getAttribute("name");var t=w.getAttribute("src");var y;if(t.indexOf("data:image/png;base64,")===0){y=t}else{var s=a.utils.getAbsolutePath(l);var x=s.substr(0,s.lastIndexOf("/"));y=[x,v,t].join("/")}m[v].elements[r]={height:0,width:0,src:"",ready:false};u.onload=function(z){g(u,r,v)};u.onerror=function(z){q=true;p();j()};u.src=y}function o(){for(var r in m){if(r!="properties"){for(var s in m[r].elements){if(!m[r].elements[s].ready){return}}}}if(e===false){clearInterval(h);c(m)}}function g(r,t,s){m[s].elements[t].height=r.height;m[s].elements[t].width=r.width;m[s].elements[t].src=r.src;m[s].elements[t].ready=true;p()}k()}})(jwplayer);(function(a){a.html5.api=function(b,k){var j={};var e=document.createElement("div");b.parentNode.replaceChild(e,b);e.id=b.id;j.version=a.version;j.id=e.id;var i=new a.html5.model(j,e,k);var g=new a.html5.view(j,e,i);var h=new a.html5.controller(j,e,i,g);j.skin=new a.html5.skin();j.jwPlay=function(l){if(typeof l=="undefined"){d()}else{if(l.toString().toLowerCase()=="true"){h.play()}else{h.pause()}}};j.jwPause=function(l){if(typeof l=="undefined"){d()}else{if(l.toString().toLowerCase()=="true"){h.pause()}else{h.play()}}};function d(){if(i.state==a.api.events.state.PLAYING||i.state==a.api.events.state.BUFFERING){h.pause()}else{h.play()}}j.jwStop=h.stop;j.jwSeek=h.seek;j.jwPlaylistItem=h.item;j.jwPlaylistNext=h.next;j.jwPlaylistPrev=h.prev;j.jwResize=h.resize;j.jwLoad=h.load;function f(l){return function(){return i[l]}}j.jwGetItem=f("item");j.jwGetPosition=f("position");j.jwGetDuration=f("duration");j.jwGetBuffer=f("buffer");j.jwGetWidth=f("width");j.jwGetHeight=f("height");j.jwGetFullscreen=f("fullscreen");j.jwSetFullscreen=h.setFullscreen;j.jwGetVolume=f("volume");j.jwSetVolume=h.setVolume;j.jwGetMute=f("mute");j.jwSetMute=h.setMute;j.jwGetStretching=f("stretching");j.jwGetState=f("state");j.jwGetVersion=function(){return j.version};j.jwGetPlaylist=function(){return i.playlist};j.jwAddEventListener=h.addEventListener;j.jwRemoveEventListener=h.removeEventListener;j.jwSendEvent=h.sendEvent;j.jwDockSetButton=function(o,l,m,n){if(i.plugins.object.dock.setButton){i.plugins.object.dock.setButton(o,l,m,n)}};j.jwGetLevel=function(){};j.jwGetBandwidth=function(){};j.jwGetLockState=function(){};j.jwLock=function(){};j.jwUnlock=function(){};function c(n,m,l){return function(){n.loadPlaylist(n.config,true);n.setupPlugins();m.setup(n.getMedia().getDisplayElement());var o={id:j.id,version:j.version};l.sendEvent(a.api.events.JWPLAYER_READY,o);if(playerReady!==undefined){playerReady(o)}if(window[n.config.playerReady]!==undefined){window[n.config.playerReady](o)}n.sendEvent(a.api.events.JWPLAYER_PLAYLIST_LOADED,{playlist:n.playlist});l.item(n.item)}}if(i.config.chromeless){setTimeout(c(i,g,h),25)}else{j.skin.load(i.config.skin,c(i,g,h))}return j}})(jwplayer); -
trunk/fl5/src/com/longtailvideo/jwplayer/player/PlayerVersion.as
r1618 r1625 3 3 4 4 public class PlayerVersion { 5 protected static var _version:String = '5.5.16 18';5 protected static var _version:String = '5.5.1625'; 6 6 7 7 public static function get version():String {
Note: See TracChangeset
for help on using the changeset viewer.
