1// JW Player *************************************************************************** 2if (typeof jwplayer == "undefined") { 3 var jwplayer = function(a) { 4 if (jwplayer.api) { 5 return jwplayer.api.selectPlayer(a) 6 } 7 }; 8 var $jw = jwplayer; 9 jwplayer.version = "5.7.1896"; 10 jwplayer.vid = document.createElement("video"); 11 jwplayer.audio = document.createElement("audio"); 12 jwplayer.source = document.createElement("source"); 13 (function(b) { 14 b.utils = function() {}; 15 b.utils.typeOf = function(d) { 16 var c = typeof d; 17 if (c === "object") { 18 if (d) { 19 if (d instanceof Array) { 20 c = "array" 21 } 22 } else { 23 c = "null" 24 } 25 } 26 return c 27 }; 28 b.utils.extend = function() { 29 var c = b.utils.extend["arguments"]; 30 if (c.length > 1) { 31 for (var e = 1; e < c.length; e++) { 32 for (var d in c[e]) { 33 c[0][d] = c[e][d] 34 } 35 } 36 return c[0] 37 } 38 return null 39 }; 40 b.utils.clone = function(f) { 41 var c; 42 var d = b.utils.clone["arguments"]; 43 if (d.length == 1) { 44 switch (b.utils.typeOf(d[0])) { 45 case "object": 46 c = {}; 47 for (var e in d[0]) { 48 c[e] = b.utils.clone(d[0][e]) 49 } 50 break; 51 case "array": 52 c = []; 53 for (var e in d[0]) { 54 c[e] = b.utils.clone(d[0][e]) 55 } 56 break; 57 default: 58 return d[0]; 59 break 60 } 61 } 62 return c 63 }; 64 b.utils.extension = function(c) { 65 if (!c) { 66 return "" 67 } 68 c = c.substring(c.lastIndexOf("/") + 1, c.length); 69 c = c.split("?")[0]; 70 if (c.lastIndexOf(".") > -1) { 71 return c.substr(c.lastIndexOf(".") + 1, c.length).toLowerCase() 72 } 73 return 74 }; 75 b.utils.html = function(c, d) { 76 c.innerHTML = d 77 }; 78 b.utils.wrap = function(c, d) { 79 if (c.parentNode) { 80 c.parentNode.replaceChild(d, c) 81 } 82 d.appendChild(c) 83 }; 84 b.utils.ajax = function(g, f, c) { 85 var e; 86 if (window.XMLHttpRequest) { 87 e = new XMLHttpRequest() 88 } else { 89 e = new ActiveXObject("Microsoft.XMLHTTP") 90 } 91 e.onreadystatechange = function() { 92 if (e.readyState === 4) { 93 if (e.status === 200) { 94 if (f) { 95 f(e) 96 } 97 } else { 98 if (c) { 99 c(g) 100 } 101 } 102 } 103 }; 104 try { 105 e.open("GET", g, true); 106 e.send(null) 107 } catch (d) { 108 if (c) { 109 c(g) 110 } 111 } 112 return e 113 }; 114 b.utils.load = function(d, e, c) { 115 d.onreadystatechange = function() { 116 if (d.readyState === 4) { 117 if (d.status === 200) { 118 if (e) { 119 e() 120 } 121 } else { 122 if (c) { 123 c() 124 } 125 } 126 } 127 } 128 }; 129 b.utils.find = function(d, c) { 130 return d.getElementsByTagName(c) 131 }; 132 b.utils.append = function(c, d) { 133 c.appendChild(d) 134 }; 135 b.utils.isIE = function() { 136 return ((!+"\v1") || (typeof window.ActiveXObject != "undefined")) 137 }; 138 b.utils.isLegacyAndroid = function() { 139 var c = navigator.userAgent.toLowerCase(); 140 return (c.match(/android 2.[012]/i) !== null) 141 }; 142 b.utils.isIOS = function(d) { 143 if (typeof d == "undefined") { 144 d = /iP(hone|ad|od)/i 145 } 146 var c = navigator.userAgent.toLowerCase(); 147 return (c.match(d) !== null) 148 }; 149 b.utils.isIPad = function() { 150 return b.utils.isIOS(/iPad/i) 151 }; 152 b.utils.isIPod = function() { 153 return b.utils.isIOS(/iP(hone|od)/i) 154 }; 155 b.utils.getFirstPlaylistItemFromConfig = function(c) { 156 var d = {}; 157 var e; 158 if (c.playlist && c.playlist.length) { 159 e = c.playlist[0] 160 } else { 161 e = c 162 } 163 d.file = e.file; 164 d.levels = e.levels; 165 d.streamer = e.streamer; 166 d.playlistfile = e.playlistfile; 167 d.provider = e.provider; 168 if (!d.provider) { 169 if (d.file && (d.file.toLowerCase().indexOf("youtube.com") > -1 || d.file.toLowerCase().indexOf("youtu.be") > -1)) { 170 d.provider = "youtube" 171 } 172 if (d.streamer && d.streamer.toLowerCase().indexOf("rtmp://") == 0) { 173 d.provider = "rtmp" 174 } 175 if (e.type) { 176 d.provider = e.type.toLowerCase() 177 } 178 } 179 if (d.provider == "audio") { 180 d.provider = "sound" 181 } 182 return d 183 }; 184 b.utils.getOuterHTML = function(c) { 185 if (c.outerHTML) { 186 return c.outerHTML 187 } else { 188 try { 189 return new XMLSerializer().serializeToString(c) 190 } catch (d) { 191 return "" 192 } 193 } 194 }; 195 b.utils.setOuterHTML = function(f, e) { 196 if (f.outerHTML) { 197 f.outerHTML = e 198 } else { 199 var g = document.createElement("div"); 200 g.innerHTML = e; 201 var c = document.createRange(); 202 c.selectNodeContents(g); 203 var d = c.extractContents(); 204 f.parentNode.insertBefore(d, f); 205 f.parentNode.removeChild(f) 206 } 207 }; 208 b.utils.hasFlash = function() { 209 if (typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] != "undefined") { 210 return true 211 } 212 if (typeof window.ActiveXObject != "undefined") { 213 try { 214 new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); 215 return true 216 } catch (c) {} 217 } 218 return false 219 }; 220 b.utils.getPluginName = function(c) { 221 if (c.lastIndexOf("/") >= 0) { 222 c = c.substring(c.lastIndexOf("/") + 1, c.length) 223 } 224 if (c.lastIndexOf("-") >= 0) { 225 c = c.substring(0, c.lastIndexOf("-")) 226 } 227 if (c.lastIndexOf(".swf") >= 0) { 228 c = c.substring(0, c.lastIndexOf(".swf")) 229 } 230 if (c.lastIndexOf(".js") >= 0) { 231 c = c.substring(0, c.lastIndexOf(".js")) 232 } 233 return c 234 }; 235 b.utils.getPluginVersion = function(c) { 236 if (c.lastIndexOf("-") >= 0) { 237 if (c.lastIndexOf(".js") >= 0) { 238 return c.substring(c.lastIndexOf("-") + 1, c.lastIndexOf(".js")) 239 } else { 240 if (c.lastIndexOf(".swf") >= 0) { 241 return c.substring(c.lastIndexOf("-") + 1, c.lastIndexOf(".swf")) 242 } else { 243 return c.substring(c.lastIndexOf("-") + 1) 244 } 245 } 246 } 247 return "" 248 }; 249 b.utils.getAbsolutePath = function(j, h) { 250 if (!b.utils.exists(h)) { 251 h = document.location.href 252 } 253 if (!b.utils.exists(j)) { 254 return undefined 255 }
256 if (a(j)) { 257 return j 258 } 259 var k = h.substring(0, h.indexOf("://") + 3); 260 var g = h.substring(k.length, h.indexOf("/", k.length + 1)); 261 var d; 262 if (j.indexOf("/") === 0) { 263 d = j.split("/") 264 } else { 265 var e = h.split("?")[0]; 266 e = e.substring(k.length + g.length + 1, e.lastIndexOf("/")); 267 d = e.split("/").concat(j.split("/")) 268 } 269 var c = []; 270 for (var f = 0; f < d.length; f++) { 271 if (!d[f] || !b.utils.exists(d[f]) || d[f] == ".") { 272 continue 273 } else { 274 if (d[f] == "..") { 275 c.pop() 276 } else { 277 c.push(d[f]) 278 } 279 } 280 } 281 return k + g + "/" + c.join("/") 282 }; 283 284 function a(d) { 285 if (!b.utils.exists(d)) { 286 return 287 } 288 var e = d.indexOf("://"); 289 var c = d.indexOf("?"); 290 return (e > 0 && (c < 0 || (c > e))) 291 } 292 b.utils.pluginPathType = { 293 ABSOLUTE: "ABSOLUTE", 294 RELATIVE: "RELATIVE", 295 CDN: "CDN" 296 }; 297 b.utils.getPluginPathType = function(d) { 298 if (typeof d != "string") { 299 return 300 } 301 d = d.split("?")[0]; 302 var e = d.indexOf("://"); 303 if (e > 0) { 304 return b.utils.pluginPathType.ABSOLUTE 305 } 306 var c = d.indexOf("/"); 307 var f = b.utils.extension(d); 308 if (e < 0 && c < 0 && (!f || !isNaN(f))) { 309 return b.utils.pluginPathType.CDN 310 } 311 return b.utils.pluginPathType.RELATIVE 312 }; 313 b.utils.mapEmpty = function(c) { 314 for (var d in c) { 315 return false 316 } 317 return true 318 }; 319 b.utils.mapLength = function(d) { 320 var c = 0; 321 for (var e in d) { 322 c++ 323 } 324 return c 325 }; 326 b.utils.log = function(d, c) { 327 if (typeof console != "undefined" && typeof console.log != "undefined") { 328 if (c) { 329 console.log(d, c) 330 } else { 331 console.log(d) 332 } 333 } 334 }; 335 b.utils.css = function(d, g, c) { 336 if (b.utils.exists(d)) { 337 for (var e in g) { 338 try { 339 if (typeof g[e] === "undefined") { 340 continue 341 } else { 342 if (typeof g[e] == "number" && !(e == "zIndex" || e == "opacity")) { 343 if (isNaN(g[e])) { 344 continue 345 } 346 if (e.match(/color/i)) { 347 g[e] = "#" + b.utils.strings.pad(g[e].toString(16), 6) 348 } else { 349 g[e] = Math.ceil(g[e]) + "px" 350 } 351 } 352 } 353 d.style[e] = g[e] 354 } catch (f) {} 355 } 356 } 357 }; 358 b.utils.isYouTube = function(c) { 359 return (c.indexOf("youtube.com") > -1 || c.indexOf("youtu.be") > -1) 360 }; 361 b.utils.transform = function(c, d) { 362 c.style.webkitTransform = d; 363 c.style.MozTransform = d; 364 c.style.OTransform = d 365 }; 366 b.utils.stretch = function(h, n, m, f, l, g) { 367 if (typeof m == "undefined" || typeof f == "undefined" || typeof l == "undefined" || typeof g == "undefined") { 368 return 369 } 370 var d = m / l; 371 var e = f / g; 372 var k = 0; 373 var j = 0; 374 n.style.overflow = "hidden"; 375 b.utils.transform(n, ""); 376 var c = {}; 377 switch (h.toUpperCase()) { 378 case b.utils.stretching.NONE: 379 c.width = l; 380 c.height = g; 381 break; 382 case b.utils.stretching.UNIFORM: 383 if (d > e) { 384 c.width = l * e; 385 c.height = g * e 386 } else { 387 c.width = l * d; 388 c.height = g * d 389 } 390 break; 391 case b.utils.stretching.FILL: 392 if (d > e) { 393 c.width = l * d; 394 c.height = g * d 395 } else { 396 c.width = l * e; 397 c.height = g * e 398 } 399 break; 400 case b.utils.stretching.EXACTFIT: 401 b.utils.transform(n, ["scale(", d, ",", e, ")", " translate(0px,0px)"].join("")); 402 c.width = l; 403 c.height = g; 404 break; 405 default: 406 break 407 } 408 c.top = (f - c.height) / 2; 409 c.left = (m - c.width) / 2; 410 b.utils.css(n, c) 411 }; 412 b.utils.stretching = { 413 NONE: "NONE", 414 FILL: "FILL", 415 UNIFORM: "UNIFORM", 416 EXACTFIT: "EXACTFIT" 417 }; 418 b.utils.deepReplaceKeyName = function(h, e, c) { 419 switch (b.utils.typeOf(h)) { 420 case "array": 421 for (var g = 0; g < h.length; g++) { 422 h[g] = b.utils.deepReplaceKeyName(h[g], e, c) 423 } 424 break; 425 case "object": 426 for (var f in h) { 427 var d = f.replace(new RegExp(e, "g"), c); 428 h[d] = b.utils.deepReplaceKeyName(h[f], e, c); 429 if (f != d) { 430 delete h[f] 431 } 432 } 433 break 434 } 435 return h 436 }; 437 b.utils.isInArray = function(e, d) { 438 if (!(e) || !(e instanceof Array)) { 439 return false 440 } 441 for (var c = 0; c < e.length; c++) { 442 if (d === e[c]) { 443 return true 444 } 445 } 446 return false 447 }; 448 b.utils.exists = function(c) { 449 switch (typeof(c)) { 450 case "string": 451 return (c.length > 0); 452 break; 453 case "object": 454 return (c !== null); 455 case "undefined": 456 return false 457 } 458 return true 459 }; 460 b.utils.empty = function(c) { 461 if (typeof c.hasChildNodes == "function") { 462 while (c.hasChildNodes()) { 463 c.removeChild(c.firstChild) 464 } 465 } 466 }; 467 b.utils.parseDimension = function(c) { 468 if (typeof c == "string") { 469 if (c === "") { 470 return 0 471 } else { 472 if (c.lastIndexOf("%") > -1) { 473 return c 474 } else { 475 return parseInt(c.replace("px", ""), 10) 476 } 477 } 478 } 479 return c 480 }; 481 b.utils.getDimensions = function(c) { 482 if (c && c.style) { 483 return { 484 x: b.utils.parseDimension(c.style.left), 485 y: b.utils.parseDimension(c.style.top), 486 width: b.utils.parseDimension(c.style.width), 487 height: b.utils.parseDimension(c.style.height) 488 } 489 } else { 490 return {} 491 } 492 }; 493 b.utils.timeFormat = function(c) { 494 str = "00:00"; 495 if (c > 0) { 496 str = Math.floor(c / 60) < 10 ? "0" + Math.floor(c / 60) + ":" : Math.floor(c / 60) + ":"; 497 str += Math.floor(c % 60) < 10 ? "0" + Math.floor(c % 60) : Math.floor(c % 60) 498 } 499 return str 500 } 501 })(jwplayer); 502 (function(a) { 503 a.events = function() {}; 504 a.events.COMPLETE = "COMPLETE"; 505 a.events.ERROR = "ERROR" 506 })(jwplayer); 507 (function(jwplayer) { 508 jwplayer.events.eventdispatcher = function(debug) { 509 var _debug = debug; 510 var _listeners; 511 var _globallisteners; 512 this.resetEventListeners = function() { 513 _listeners = {}; 514 _globallisteners = [] 515 }; 516 this.resetEventListeners(); 517 this.addEventListener = function(type, listener, count) { 518 try { 519 if (!jwplayer.utils.exists(_listeners[type])) { 520 _listeners[type] = [] 521 } 522 if (typeof(listener) == "string") { 523 eval("listener = " + listener) 524 } 525 _listeners[type].push({ 526 listener: listener, 527 count: count 528 }) 529 } catch (err) { 530 jwplayer.utils.log("error", err) 531 } 532 return false 533 }; 534 this.removeEventListener = function(type, listener) { 535 if (!_listeners[type]) { 536 return 537 } 538 try { 539 for (var listenerIndex = 0; listenerIndex < _listeners[type].length; listenerIndex++) { 540 if (_listeners[type][listenerIndex].listener.toString() == listener.toString()) { 541 _listeners[type].splice(listenerIndex, 1); 542 break 543 } 544 } 545 } catch (err) { 546 jwplayer.utils.log("error", err) 547 } 548 return false 549 }; 550 this.addGlobalListener = function(listener, count) { 551 try { 552 if (typeof(listener) == "string") { 553 eval("listener = " + listener) 554 } 555 _globallisteners.push({ 556 listener: listener, 557 count: count 558 }) 559 } catch (err) { 560 jwplayer.utils.log("error", err) 561 } 562 return false 563 }; 564 this.removeGlobalListener = function(listener) { 565 if (!_globallisteners[type]) { 566 return 567 } 568 try { 569 for (var globalListenerIndex = 0; globalListenerIndex < _globallisteners.length; globalListenerIndex++) { 570 if (_globallisteners[globalListenerIndex].listener.toString() == listener.toString()) { 571 _globallisteners.splice(globalListenerIndex, 1); 572 break 573 } 574 } 575 } catch (err) { 576 jwplayer.utils.log("error", err) 577 } 578 return false 579 }; 580 this.sendEvent = function(type, data) { 581 if (!jwplayer.utils.exists(data)) { 582 data = {} 583 } 584 if (_debug) { 585 jwplayer.utils.log(type, data) 586 } 587 if (typeof _listeners[type] != "undefined") { 588 for (var listenerIndex = 0; listenerIndex < _listeners[type].length; listenerIndex++) { 589 try { 590 _listeners[type][listenerIndex].listener(data) 591 } catch (err) { 592 jwplayer.utils.log("There was an error while handling a listener: " + err.toString(), _listeners[type][listenerIndex].listener) 593 } 594 if (_listeners[type][listenerIndex]) { 595 if (_listeners[type][listenerIndex].count === 1) { 596 delete _listeners[type][listenerIndex] 597 } else { 598 if (_listeners[type][listenerIndex].count > 0) { 599 _listeners[type][listenerIndex].count = _listeners[type][listenerIndex].count - 1 600 } 601 } 602 } 603 } 604 } 605 for (var globalListenerIndex = 0; globalListenerIndex < _globallisteners.length; globalListenerIndex++) { 606 try { 607 _globallisteners[globalListenerIndex].listener(data) 608 } catch (err) { 609 jwplayer.utils.log("There was an error while handling a listener: " + err.toString(), _globallisteners[globalListenerIndex].listener) 610 } 611 if (_globallisteners[globalListenerIndex]) { 612 if (_globallisteners[globalListenerIndex].count === 1) { 613 delete _globallisteners[globalListenerIndex] 614 } else { 615 if (_globallisteners[globalListenerIndex].count > 0) { 616 _globallisteners[globalListenerIndex].count = _globallisteners[globalListenerIndex].count - 1 617 } 618 } 619 } 620 } 621 } 622 } 623 })(jwplayer); 624 (function(a) { 625 var b = {}; 626 a.utils.animations = function() {}; 627 a.utils.animations.transform = function(c, d) { 628 c.style.webkitTransform = d; 629 c.style.MozTransform = d; 630 c.style.OTransform = d; 631 c.style.msTransform = d 632 }; 633 a.utils.animations.transformOrigin = function(c, d) { 634 c.style.webkitTransformOrigin = d; 635 c.style.MozTransformOrigin = d; 636 c.style.OTransformOrigin = d; 637 c.style.msTransformOrigin = d 638 }; 639 a.utils.animations.rotate = function(c, d) { 640 a.utils.animations.transform(c, ["rotate(", d, "deg)"].join("")) 641 }; 642 a.utils.cancelAnimation = function(c) { 643 delete b[c.id] 644 }; 645 a.utils.fadeTo = function(m, f, e, j, h, d) { 646 if (b[m.id] != d && a.utils.exists(d)) { 647 return 648 } 649 if (m.style.opacity == f) { 650 return 651 } 652 var c = new Date().getTime(); 653 if (d > c) { 654 setTimeout(function() { 655 a.utils.fadeTo(m, f, e, j, 0, d) 656 }, d - c) 657 } 658 if (m.style.display == "none") { 659 m.style.display = "block" 660 } 661 if (!a.utils.exists(j)) { 662 j = m.style.opacity === "" ? 1 : m.style.opacity 663 } 664 if (m.style.opacity == f && m.style.opacity !== "" && a.utils.exists(d)) { 665 if (f === 0) { 666 m.style.display = "none" 667 } 668 return 669 } 670 if (!a.utils.exists(d)) { 671 d = c; 672 b[m.id] = d 673 } 674 if (!a.utils.exists(h)) { 675 h = 0 676 } 677 var k = (e > 0) ? ((c - d) / (e * 1000)) : 0; 678 k = k > 1 ? 1 : k; 679 var l = f - j; 680 var g = j + (k * l); 681 if (g > 1) { 682 g = 1 683 } else { 684 if (g < 0) { 685 g = 0 686 } 687 } 688 m.style.opacity = g; 689 if (h > 0) { 690 b[m.id] = d + h * 1000; 691 a.utils.fadeTo(m, f, e, j, 0, b[m.id]); 692 return 693 } 694 setTimeout(function() { 695 a.utils.fadeTo(m, f, e, j, 0, d) 696 }, 10) 697 } 698 })(jwplayer); 699 (function(a) { 700 a.utils.arrays = function() {}; 701 a.utils.arrays.indexOf = function(c, d) { 702 for (var b = 0; b < c.length; b++) { 703 if (c[b] == d) { 704 return b 705 } 706 } 707 return -1 708 }; 709 a.utils.arrays.remove = function(c, d) { 710 var b = a.utils.arrays.indexOf(c, d); 711 if (b > -1) { 712 c.splice(b, 1) 713 } 714 } 715 })(jwplayer); 716 (function(a) { 717 a.utils.extensionmap = { 718 "3gp": { 719 html5: "video/3gpp", 720 flash: "video" 721 }, 722 "3gpp": { 723 html5: "video/3gpp" 724 }, 725 "3g2": { 726 html5: "video/3gpp2", 727 flash: "video" 728 }, 729 "3gpp2": { 730 html5: "video/3gpp2" 731 }, 732 flv: { 733 flash: "video" 734 }, 735 f4a: { 736 html5: "audio/mp4" 737 }, 738 f4b: { 739 html5: "audio/mp4", 740 flash: "video" 741 }, 742 f4v: { 743 html5: "video/mp4", 744 flash: "video" 745 }, 746 mov: { 747 html5: "video/quicktime", 748 flash: "video" 749 }, 750 m4a: { 751 html5: "audio/mp4", 752 flash: "video" 753 }, 754 m4b: { 755 html5: "audio/mp4" 756 }, 757 m4p: { 758 html5: "audio/mp4" 759 }, 760 m4v: { 761 html5: "video/mp4", 762 flash: "video" 763 }, 764 mp4: { 765 html5: "video/mp4", 766 flash: "video" 767 }, 768 rbs: { 769 flash: "sound" 770 }, 771 aac: { 772 html5: "audio/aac", 773 flash: "video" 774 }, 775 mp3: { 776 html5: "audio/mp3", 777 flash: "sound" 778 }, 779 ogg: { 780 html5: "audio/ogg" 781 }, 782 oga: { 783 html5: "audio/ogg" 784 }, 785 ogv: { 786 html5: "video/ogg" 787 }, 788 webm: { 789 html5: "video/webm" 790 }, 791 m3u8: { 792 html5: "audio/x-mpegurl" 793 }, 794 gif: { 795 flash: "image" 796 }, 797 jpeg: { 798 flash: "image" 799 }, 800 jpg: { 801 flash: "image" 802 }, 803 swf: { 804 flash: "image" 805 }, 806 png: { 807 flash: "image" 808 }, 809 wav: { 810 html5: "audio/x-wav" 811 } 812 } 813 })(jwplayer); 814 (function(e) { 815 e.utils.mediaparser = function() {}; 816 var g = { 817 element: { 818 width: "width", 819 height: "height", 820 id: "id", 821 "class": "className", 822 name: "name" 823 }, 824 media: { 825 src: "file", 826 preload: "preload", 827 autoplay: "autostart", 828 loop: "repeat", 829 controls: "controls" 830 }, 831 source: { 832 src: "file", 833 type: "type", 834 media: "media", 835 "data-jw-width": "width", 836 "data-jw-bitrate": "bitrate" 837 }, 838 video: { 839 poster: "image" 840 } 841 }; 842 var f = {}; 843 e.utils.mediaparser.parseMedia = function(j) { 844 return d(j) 845 }; 846 847 function c(k, j) { 848 if (!e.utils.exists(j)) { 849 j = g[k] 850 } else { 851 e.utils.extend(j, g[k]) 852 } 853 return j 854 } 855 function d(n, j) { 856 if (f[n.tagName.toLowerCase()] && !e.utils.exists(j)) { 857 return f[n.tagName.toLowerCase()](n) 858 } else { 859 j = c("element", j); 860 var o = {}; 861 for (var k in j) { 862 if (k != "length") { 863 var m = n.getAttribute(k); 864 if (e.utils.exists(m)) { 865 o[j[k]] = m 866 } 867 } 868 } 869 var l = n.style["#background-color"]; 870 if (l && !(l == "transparent" || l == "rgba(0, 0, 0, 0)")) { 871 o.screencolor = l 872 } 873 return o 874 } 875 } 876 function h(n, k) { 877 k = c("media", k); 878 var l = []; 879 var j = e.utils.selectors("source", n); 880 for (var m in j) { 881 if (!isNaN(m)) { 882 l.push(a(j[m])) 883 } 884 } 885 var o = d(n, k); 886 if (e.utils.exists(o.file)) { 887 l[0] = { 888 file: o.file 889 } 890 } 891 o.levels = l; 892 return o 893 } 894 function a(l, k) { 895 k = c("source", k); 896 var j = d(l, k); 897 j.width = j.width ? j.width : 0; 898 j.bitrate = j.bitrate ? j.bitrate : 0; 899 return j 900 } 901 function b(l, k) { 902 k = c("video", k); 903 var j = h(l, k); 904 return j 905 } 906 f.media = h; 907 f.audio = h; 908 f.source = a; 909 f.video = b 910 })(jwplayer); 911 (function(a) { 912 a.utils.loaderstatus = { 913 NEW: "NEW", 914 LOADING: "LOADING", 915 ERROR: "ERROR", 916 COMPLETE: "COMPLETE" 917 }; 918 a.utils.scriptloader = function(c) { 919 var d = a.utils.loaderstatus.NEW; 920 var b = new a.events.eventdispatcher(); 921 a.utils.extend(this, b); 922 this.load = function() { 923 if (d == a.utils.loaderstatus.NEW) { 924 d = a.utils.loaderstatus.LOADING; 925 var e = document.createElement("script"); 926 e.onload = function(f) { 927 d = a.utils.loaderstatus.COMPLETE; 928 b.sendEvent(a.events.COMPLETE) 929 }; 930 e.onerror = function(f) { 931 d = a.utils.loaderstatus.ERROR; 932 b.sendEvent(a.events.ERROR) 933 }; 934 e.onreadystatechange = function() { 935 if (e.readyState == "loaded" || e.readyState == "complete") { 936 d = a.utils.loaderstatus.COMPLETE; 937 b.sendEvent(a.events.COMPLETE) 938 } 939 }; 940 document.getElementsByTagName("head")[0].appendChild(e); 941 e.src = c 942 } 943 };
944 this.getStatus = function() { 945 return d 946 } 947 } 948 })(jwplayer); 949 (function(a) { 950 a.utils.selectors = function(b, e) { 951 if (!a.utils.exists(e)) { 952 e = document 953 } 954 b = a.utils.strings.trim(b); 955 var c = b.charAt(0); 956 if (c == "#") { 957 return e.getElementById(b.substr(1)) 958 } else { 959 if (c == ".") { 960 if (e.getElementsByClassName) { 961 return e.getElementsByClassName(b.substr(1)) 962 } else { 963 return a.utils.selectors.getElementsByTagAndClass("*", b.substr(1)) 964 } 965 } else { 966 if (b.indexOf(".") > 0) { 967 var d = b.split("."); 968 return a.utils.selectors.getElementsByTagAndClass(d[0], d[1]) 969 } else { 970 return e.getElementsByTagName(b) 971 } 972 } 973 } 974 return null 975 }; 976 a.utils.selectors.getElementsByTagAndClass = function(e, h, g) { 977 var j = []; 978 if (!a.utils.exists(g)) { 979 g = document 980 } 981 var f = g.getElementsByTagName(e); 982 for (var d = 0; d < f.length; d++) { 983 if (a.utils.exists(f[d].className)) { 984 var c = f[d].className.split(" "); 985 for (var b = 0; b < c.length; b++) { 986 if (c[b] == h) { 987 j.push(f[d]) 988 } 989 } 990 } 991 } 992 return j 993 } 994 })(jwplayer); 995 (function(a) { 996 a.utils.strings = function() {}; 997 a.utils.strings.trim = function(b) { 998 return b.replace(/^\s*/, "").replace(/\s*$/, "") 999 }; 1000 a.utils.strings.pad = function(c, d, b) { 1001 if (!b) { 1002 b = "0" 1003 } 1004 while (c.length < d) { 1005 c = b + c 1006 } 1007 return c 1008 }; 1009 a.utils.strings.serialize = function(b) { 1010 if (b == null) { 1011 return null 1012 } else { 1013 if (b == "true") { 1014 return true 1015 } else { 1016 if (b == "false") { 1017 return false 1018 } else { 1019 if (isNaN(Number(b)) || b.length > 5 || b.length == 0) { 1020 return b 1021 } else { 1022 return Number(b) 1023 } 1024 } 1025 } 1026 } 1027 }; 1028 a.utils.strings.seconds = function(d) { 1029 d = d.replace(",", "."); 1030 var b = d.split(":"); 1031 var c = 0; 1032 if (d.substr(-1) == "s") { 1033 c = Number(d.substr(0, d.length - 1)) 1034 } else { 1035 if (d.substr(-1) == "m") { 1036 c = Number(d.substr(0, d.length - 1)) * 60 1037 } else { 1038 if (d.substr(-1) == "h") { 1039 c = Number(d.substr(0, d.length - 1)) * 3600 1040 } else { 1041 if (b.length > 1) { 1042 c = Number(b[b.length - 1]); 1043 c += Number(b[b.length - 2]) * 60; 1044 if (b.length == 3) { 1045 c += Number(b[b.length - 3]) * 3600 1046 } 1047 } else { 1048 c = Number(d) 1049 } 1050 } 1051 } 1052 } 1053 return c 1054 }; 1055 a.utils.strings.xmlAttribute = function(b, c) { 1056 for (var d = 0; d < b.attributes.length; d++) { 1057 if (b.attributes[d].name && b.attributes[d].name.toLowerCase() == c.toLowerCase()) { 1058 return b.attributes[d].value.toString() 1059 } 1060 } 1061 return "" 1062 }; 1063 a.utils.strings.jsonToString = function(f) { 1064 var h = h || {}; 1065 if (h && h.stringify) { 1066 return h.stringify(f) 1067 } 1068 var c = typeof(f); 1069 if (c != "object" || f === null) { 1070 if (c == "string") { 1071 f = '"' + f + '"' 1072 } else { 1073 return String(f) 1074 } 1075 } else { 1076 var g = [], 1077 b = (f && f.constructor == Array); 1078 for (var d in f) { 1079 var e = f[d]; 1080 switch (typeof(e)) { 1081 case "string": 1082 e = '"' + e + '"'; 1083 break; 1084 case "object": 1085 if (a.utils.exists(e)) { 1086 e = a.utils.strings.jsonToString(e) 1087 } 1088 break 1089 } 1090 if (b) { 1091 if (typeof(e) != "function") { 1092 g.push(String(e)) 1093 } 1094 } else { 1095 if (typeof(e) != "function") { 1096 g.push('"' + d + '":' + String(e)) 1097 } 1098 } 1099 } 1100 if (b) { 1101 return "[" + String(g) + "]" 1102 } else { 1103 return "{" + String(g) + "}" 1104 } 1105 } 1106 } 1107 })(jwplayer); 1108 (function(c) { 1109 var d = new RegExp(/^(#|0x)[0-9a-fA-F]{3,6}/); 1110 c.utils.typechecker = function(g, f) { 1111 f = !c.utils.exists(f) ? b(g) : f; 1112 return e(g, f) 1113 }; 1114 1115 function b(f) { 1116 var g = ["true", "false", "t", "f"]; 1117 if (g.toString().indexOf(f.toLowerCase().replace(" ", "")) >= 0) { 1118 return "boolean" 1119 } else { 1120 if (d.test(f)) { 1121 return "color" 1122 } else { 1123 if (!isNaN(parseInt(f, 10)) && parseInt(f, 10).toString().length == f.length) { 1124 return "integer" 1125 } else { 1126 if (!isNaN(parseFloat(f)) && parseFloat(f).toString().length == f.length) { 1127 return "float" 1128 } 1129 } 1130 } 1131 } 1132 return "string" 1133 } 1134 function e(g, f) { 1135 if (!c.utils.exists(f)) { 1136 return g 1137 } 1138 switch (f) { 1139 case "color": 1140 if (g.length > 0) { 1141 return a(g) 1142 } 1143 return null; 1144 case "integer": 1145 return parseInt(g, 10); 1146 case "float": 1147 return parseFloat(g); 1148 case "boolean": 1149 if (g.toLowerCase() == "true") { 1150 return true 1151 } else { 1152 if (g == "1") { 1153 return true 1154 } 1155 } 1156 return false 1157 } 1158 return g 1159 } 1160 function a(f) { 1161 switch (f.toLowerCase()) { 1162 case "blue":
1163 return parseInt("0000FF", 16); 1164 case "green": 1165 return parseInt("00FF00", 16); 1166 case "red": 1167 return parseInt("FF0000", 16); 1168 case "cyan": 1169 return parseInt("00FFFF", 16); 1170 case "magenta": 1171 return parseInt("FF00FF", 16); 1172 case "yellow": 1173 return parseInt("FFFF00", 16); 1174 case "black": 1175 return parseInt("000000", 16); 1176 case "white": 1177 return parseInt("FFFFFF", 16); 1178 default: 1179 f = f.replace(/(#|0x)?([0-9A-F]{3,6})$/gi, "$2"); 1180 if (f.length == 3) { 1181 f = f.charAt(0) + f.charAt(0) + f.charAt(1) + f.charAt(1) + f.charAt(2) + f.charAt(2) 1182 } 1183 return parseInt(f, 16) 1184 } 1185 return parseInt("000000", 16) 1186 } 1187 })(jwplayer); 1188 (function(a) { 1189 a.utils.parsers = function() {}; 1190 a.utils.parsers.localName = function(b) { 1191 if (!b) { 1192 return "" 1193 } else { 1194 if (b.localName) { 1195 return b.localName 1196 } else { 1197 if (b.baseName) { 1198 return b.baseName 1199 } else { 1200 return "" 1201 } 1202 } 1203 } 1204 }; 1205 a.utils.parsers.textContent = function(b) { 1206 if (!b) { 1207 return "" 1208 } else { 1209 if (b.textContent) { 1210 return b.textContent 1211 } else { 1212 if (b.text) { 1213 return b.text 1214 } else { 1215 return "" 1216 } 1217 } 1218 } 1219 } 1220 })(jwplayer); 1221 (function(a) { 1222 a.utils.parsers.jwparser = function() {}; 1223 a.utils.parsers.jwparser.PREFIX = "jwplayer"; 1224 a.utils.parsers.jwparser.parseEntry = function(c, d) { 1225 for (var b = 0; b < c.childNodes.length; b++) { 1226 if (c.childNodes[b].prefix == a.utils.parsers.jwparser.PREFIX) { 1227 d[a.utils.parsers.localName(c.childNodes[b])] = a.utils.strings.serialize(a.utils.parsers.textContent(c.childNodes[b])) 1228 } 1229 if (!d.file && String(d.link).toLowerCase().indexOf("youtube") > -1) { 1230 d.file = d.link 1231 } 1232 } 1233 return d 1234 }; 1235 a.utils.parsers.jwparser.getProvider = function(c) { 1236 if (c.type) { 1237 return c.type 1238 } else { 1239 if (c.file.indexOf("youtube.com/w") > -1 || c.file.indexOf("youtube.com/v") > -1 || c.file.indexOf("youtu.be/") > -1) { 1240 return "youtube" 1241 } else { 1242 if (c.streamer && c.streamer.indexOf("rtmp") == 0) { 1243 return "rtmp" 1244 } else { 1245 if (c.streamer && c.streamer.indexOf("http") == 0) { 1246 return "http" 1247 } else { 1248 var b = a.utils.strings.extension(c.file); 1249 if (extensions.hasOwnProperty(b)) { 1250 return extensions[b] 1251 } 1252 } 1253 } 1254 } 1255 } 1256 return "" 1257 } 1258 })(jwplayer); 1259 (function(a) { 1260 a.utils.parsers.mediaparser = function() {}; 1261 a.utils.parsers.mediaparser.PREFIX = "media"; 1262 a.utils.parsers.mediaparser.parseGroup = function(d, f) { 1263 var e = false; 1264 for (var c = 0; c < d.childNodes.length; c++) { 1265 if (d.childNodes[c].prefix == a.utils.parsers.mediaparser.PREFIX) { 1266 if (!a.utils.parsers.localName(d.childNodes[c])) { 1267 continue 1268 } 1269 switch (a.utils.parsers.localName(d.childNodes[c]).toLowerCase()) { 1270 case "content": 1271 if (!e) { 1272 f.file = a.utils.strings.xmlAttribute(d.childNodes[c], "url") 1273 } 1274 if (a.utils.strings.xmlAttribute(d.childNodes[c], "duration")) { 1275 f.duration = a.utils.strings.seconds(a.utils.strings.xmlAttribute(d.childNodes[c], "duration")) 1276 } 1277 if (a.utils.strings.xmlAttribute(d.childNodes[c], "start")) { 1278 f.start = a.utils.strings.seconds(a.utils.strings.xmlAttribute(d.childNodes[c], "start")) 1279 } 1280 if (d.childNodes[c].childNodes && d.childNodes[c].childNodes.length > 0) { 1281 f = a.utils.parsers.mediaparser.parseGroup(d.childNodes[c], f) 1282 } 1283 if (a.utils.strings.xmlAttribute(d.childNodes[c], "width") || a.utils.strings.xmlAttribute(d.childNodes[c], "bitrate") || a.utils.strings.xmlAttribute(d.childNodes[c], "url")) { 1284 if (!f.levels) { 1285 f.levels = [] 1286 } 1287 f.levels.push({ 1288 width: a.utils.strings.xmlAttribute(d.childNodes[c], "width"), 1289 bitrate: a.utils.strings.xmlAttribute(d.childNodes[c], "bitrate"), 1290 file: a.utils.strings.xmlAttribute(d.childNodes[c], "url") 1291 }) 1292 } 1293 break; 1294 case "title": 1295 f.title = a.utils.parsers.textContent(d.childNodes[c]); 1296 break; 1297 case "description": 1298 f.description = a.utils.parsers.textContent(d.childNodes[c]); 1299 break; 1300 case "keywords": 1301 f.tags = a.utils.parsers.textContent(d.childNodes[c]); 1302 break; 1303 case "thumbnail": 1304 f.image = a.utils.strings.xmlAttribute(d.childNodes[c], "url"); 1305 break; 1306 case "credit": 1307 f.author = a.utils.parsers.textContent(d.childNodes[c]); 1308 break; 1309 case "player": 1310 var b = d.childNodes[c].url; 1311 if (b.indexOf("youtube.com") >= 0 || b.indexOf("youtu.be") >= 0) { 1312 e = true; 1313 f.file = a.utils.strings.xmlAttribute(d.childNodes[c], "url") 1314 } 1315 break; 1316 case "group": 1317 a.utils.parsers.mediaparser.parseGroup(d.childNodes[c], f); 1318 break 1319 } 1320 } 1321 } 1322 return f 1323 } 1324 })(jwplayer); 1325 (function(b) { 1326 b.utils.parsers.rssparser = function() {}; 1327 b.utils.parsers.rssparser.parse = function(f) { 1328 var c = []; 1329 for (var e = 0; e < f.childNodes.length; e++) { 1330 if (b.utils.parsers.localName(f.childNodes[e]).toLowerCase() == "channel") { 1331 for (var d = 0; d < f.childNodes[e].childNodes.length; d++) { 1332 if (b.utils.parsers.localName(f.childNodes[e].childNodes[d]).toLowerCase() == "item") { 1333 c.push(a(f.childNodes[e].childNodes[d])) 1334 } 1335 } 1336 } 1337 } 1338 return c 1339 }; 1340 1341 function a(d) { 1342 var e = {}; 1343 for (var c = 0; c < d.childNodes.length; c++) { 1344 if (!b.utils.parsers.localName(d.childNodes[c])) { 1345 continue 1346 } 1347 switch (b.utils.parsers.localName(d.childNodes[c]).toLowerCase()) { 1348 case "enclosure": 1349 e.file = b.utils.strings.xmlAttribute(d.childNodes[c], "url"); 1350 break; 1351 case "title":
1352 e.title = b.utils.parsers.textContent(d.childNodes[c]); 1353 break; 1354 case "pubdate": 1355 e.date = b.utils.parsers.textContent(d.childNodes[c]); 1356 break; 1357 case "description": 1358 e.description = b.utils.parsers.textContent(d.childNodes[c]); 1359 break; 1360 case "link": 1361 e.link = b.utils.parsers.textContent(d.childNodes[c]); 1362 break; 1363 case "category": 1364 if (e.tags) { 1365 e.tags += b.utils.parsers.textContent(d.childNodes[c]) 1366 } else { 1367 e.tags = b.utils.parsers.textContent(d.childNodes[c]) 1368 } 1369 break 1370 } 1371 } 1372 e = b.utils.parsers.mediaparser.parseGroup(d, e); 1373 e = b.utils.parsers.jwparser.parseEntry(d, e); 1374 return new b.html5.playlistitem(e) 1375 } 1376 })(jwplayer); 1377 (function(a) { 1378 var c = {}; 1379 var b = {}; 1380 a.plugins = function() {}; 1381 a.plugins.loadPlugins = function(e, d) { 1382 b[e] = new a.plugins.pluginloader(new a.plugins.model(c), d); 1383 return b[e] 1384 }; 1385 a.plugins.registerPlugin = function(h, f, e) { 1386 var d = a.utils.getPluginName(h); 1387 if (c[d]) { 1388 c[d].registerPlugin(h, f, e) 1389 } else { 1390 a.utils.log("A plugin (" + h + ") was registered with the player that was not loaded. Please check your configuration."); 1391 for (var g in b) { 1392 b[g].pluginFailed() 1393 } 1394 } 1395 } 1396 })(jwplayer); 1397 (function(a) { 1398 a.plugins.model = function(b) { 1399 this.addPlugin = function(c) { 1400 var d = a.utils.getPluginName(c); 1401 if (!b[d]) { 1402 b[d] = new a.plugins.plugin(c) 1403 } 1404 return b[d] 1405 } 1406 } 1407 })(jwplayer); 1408 (function(a) { 1409 a.plugins.pluginmodes = { 1410 FLASH: "FLASH", 1411 JAVASCRIPT: "JAVASCRIPT", 1412 HYBRID: "HYBRID" 1413 }; 1414 a.plugins.plugin = function(b) { 1415 var d = "http://plugins.longtailvideo.com"; 1416 var j = a.utils.loaderstatus.NEW; 1417 var k; 1418 var h; 1419 var l; 1420 var c = new a.events.eventdispatcher(); 1421 a.utils.extend(this, c); 1422 1423 function e() { 1424 switch (a.utils.getPluginPathType(b)) { 1425 case a.utils.pluginPathType.ABSOLUTE: 1426 return b; 1427 case a.utils.pluginPathType.RELATIVE: 1428 return a.utils.getAbsolutePath(b, window.location.href); 1429 case a.utils.pluginPathType.CDN: 1430 var n = a.utils.getPluginName(b); 1431 var m = a.utils.getPluginVersion(b); 1432 return d + "/" + a.version.split(".")[0] + "/" + n + "/" + n + (m !== "" ? ("-" + m) : "") + ".js" 1433 } 1434 } 1435 function g(m) { 1436 l = setTimeout(function() { 1437 j = a.utils.loaderstatus.COMPLETE; 1438 c.sendEvent(a.events.COMPLETE) 1439 }, 1000) 1440 } 1441 function f(m) { 1442 j = a.utils.loaderstatus.ERROR; 1443 c.sendEvent(a.events.ERROR) 1444 } 1445 this.load = function() { 1446 if (j == a.utils.loaderstatus.NEW) { 1447 if (b.lastIndexOf(".swf") > 0) { 1448 k = b; 1449 j = a.utils.loaderstatus.COMPLETE; 1450 c.sendEvent(a.events.COMPLETE); 1451 return 1452 } 1453 j = a.utils.loaderstatus.LOADING; 1454 var m = new a.utils.scriptloader(e()); 1455 m.addEventListener(a.events.COMPLETE, g); 1456 m.addEventListener(a.events.ERROR, f); 1457 m.load() 1458 } 1459 }; 1460 this.registerPlugin = function(o, n, m) { 1461 if (l) { 1462 clearTimeout(l); 1463 l = undefined 1464 } 1465 if (n && m) { 1466 k = m; 1467 h = n 1468 } else { 1469 if (typeof n == "string") { 1470 k = n 1471 } else { 1472 if (typeof n == "function") { 1473 h = n 1474 } else { 1475 if (!n && !m) { 1476 k = o 1477 } 1478 } 1479 } 1480 } 1481 j = a.utils.loaderstatus.COMPLETE; 1482 c.sendEvent(a.events.COMPLETE) 1483 }; 1484 this.getStatus = function() { 1485 return j 1486 }; 1487 this.getPluginName = function() { 1488 return a.utils.getPluginName(b) 1489 }; 1490 this.getFlashPath = function() { 1491 if (k) { 1492 switch (a.utils.getPluginPathType(k)) { 1493 case a.utils.pluginPathType.ABSOLUTE: 1494 return k; 1495 case a.utils.pluginPathType.RELATIVE: 1496 if (b.lastIndexOf(".swf") > 0) { 1497 return a.utils.getAbsolutePath(k, window.location.href) 1498 } 1499 return a.utils.getAbsolutePath(k, e()); 1500 case a.utils.pluginPathType.CDN: 1501 if (k.indexOf("-") > -1) { 1502 return k + "h" 1503 } 1504 return k + "-h" 1505 } 1506 } 1507 return null 1508 }; 1509 this.getJS = function() { 1510 return h 1511 }; 1512 this.getPluginmode = function() { 1513 if (typeof k != "undefined" && typeof h != "undefined") { 1514 return a.plugins.pluginmodes.HYBRID 1515 } else { 1516 if (typeof k != "undefined") { 1517 return a.plugins.pluginmodes.FLASH 1518 } else { 1519 if (typeof h != "undefined") { 1520 return a.plugins.pluginmodes.JAVASCRIPT 1521 } 1522 } 1523 } 1524 }; 1525 this.getNewInstance = function(n, m, o) { 1526 return new h(n, m, o) 1527 }; 1528 this.getURL = function() { 1529 return b 1530 } 1531 } 1532 })(jwplayer); 1533 (function(a) { 1534 a.plugins.pluginloader = function(h, e) { 1535 var g = {}; 1536 var k = a.utils.loaderstatus.NEW; 1537 var d = false;
1538 var b = false; 1539 var c = new a.events.eventdispatcher(); 1540 a.utils.extend(this, c); 1541 1542 function f() { 1543 if (!b) { 1544 b = true; 1545 k = a.utils.loaderstatus.COMPLETE; 1546 c.sendEvent(a.events.COMPLETE) 1547 } 1548 } 1549 function j() { 1550 if (!b) { 1551 var m = 0; 1552 for (plugin in g) { 1553 var l = g[plugin].getStatus(); 1554 if (l == a.utils.loaderstatus.LOADING || l == a.utils.loaderstatus.NEW) { 1555 m++ 1556 } 1557 } 1558 if (m == 0) { 1559 f() 1560 } 1561 } 1562 } 1563 this.setupPlugins = function(n, l, s) { 1564 var m = { 1565 length: 0, 1566 plugins: {} 1567 }; 1568 var p = { 1569 length: 0, 1570 plugins: {} 1571 }; 1572 for (var o in g) { 1573 var q = g[o].getPluginName(); 1574 if (g[o].getFlashPath()) { 1575 m.plugins[g[o].getFlashPath()] = l.plugins[o]; 1576 m.plugins[g[o].getFlashPath()].pluginmode = g[o].getPluginmode(); 1577 m.length++ 1578 } 1579 if (g[o].getJS()) { 1580 var r = document.createElement("div"); 1581 r.id = n.id + "_" + q; 1582 r.style.position = "absolute"; 1583 r.style.zIndex = p.length + 10; 1584 p.plugins[q] = g[o].getNewInstance(n, l.plugins[o], r); 1585 p.length++; 1586 if (typeof p.plugins[q].resize != "undefined") { 1587 n.onReady(s(p.plugins[q], r, true)); 1588 n.onResize(s(p.plugins[q], r)) 1589 } 1590 } 1591 } 1592 n.plugins = p.plugins; 1593 return m 1594 }; 1595 this.load = function() { 1596 k = a.utils.loaderstatus.LOADING; 1597 d = true; 1598 for (var l in e) { 1599 if (a.utils.exists(l)) { 1600 g[l] = h.addPlugin(l); 1601 g[l].addEventListener(a.events.COMPLETE, j); 1602 g[l].addEventListener(a.events.ERROR, j) 1603 } 1604 } 1605 for (l in g) { 1606 g[l].load() 1607 } 1608 d = false; 1609 j() 1610 }; 1611 this.pluginFailed = function() { 1612 f() 1613 }; 1614 this.getStatus = function() { 1615 return k 1616 } 1617 } 1618 })(jwplayer); 1619 (function(b) { 1620 var a = []; 1621 b.api = function(d) { 1622 this.container = d; 1623 this.id = d.id; 1624 var n = {}; 1625 var s = {}; 1626 var q = {}; 1627 var c = []; 1628 var h = undefined; 1629 var l = false; 1630 var j = []; 1631 var p = b.utils.getOuterHTML(d); 1632 var r = {}; 1633 var k = {}; 1634 this.getBuffer = function() { 1635 return this.callInternal("jwGetBuffer") 1636 }; 1637 this.getContainer = function() { 1638 return this.container 1639 }; 1640 1641 function e(u, t) { 1642 return function(z, v, w, x) { 1643 if (u.renderingMode == "flash" || u.renderingMode == "html5") { 1644 var y; 1645 if (v) { 1646 k[z] = v; 1647 y = "jwplayer('" + u.id + "').callback('" + z + "')" 1648 } else { 1649 if (!v && k[z]) { 1650 delete k[z] 1651 } 1652 } 1653 h.jwDockSetButton(z, y, w, x) 1654 } 1655 return t 1656 } 1657 } 1658 this.getPlugin = function(t) { 1659 var v = this; 1660 var u = {}; 1661 if (t == "dock") { 1662 return b.utils.extend(u, { 1663 setButton: e(v, u), 1664 show: function() { 1665 v.callInternal("jwDockShow"); 1666 return u 1667 }, 1668 hide: function() { 1669 v.callInternal("jwDockHide"); 1670 return u 1671 }, 1672 onShow: function(w) { 1673 v.componentListener("dock", b.api.events.JWPLAYER_COMPONENT_SHOW, w); 1674 return u 1675 }, 1676 onHide: function(w) { 1677 v.componentListener("dock", b.api.events.JWPLAYER_COMPONENT_HIDE, w); 1678 return u 1679 } 1680 }) 1681 } else { 1682 if (t == "controlbar") { 1683 return b.utils.extend(u, { 1684 show: function() { 1685 v.callInternal("jwControlbarShow"); 1686 return u 1687 }, 1688 hide: function() { 1689 v.callInternal("jwControlbarHide"); 1690 return u 1691 }, 1692 onShow: function(w) { 1693 v.componentListener("controlbar", b.api.events.JWPLAYER_COMPONENT_SHOW, w); 1694 return u 1695 }, 1696 onHide: function(w) { 1697 v.componentListener("controlbar", b.api.events.JWPLAYER_COMPONENT_HIDE, w); 1698 return u 1699 } 1700 }) 1701 } else { 1702 if (t == "display") { 1703 return b.utils.extend(u, { 1704 show: function() { 1705 v.callInternal("jwDisplayShow"); 1706 return u 1707 }, 1708 hide: function() { 1709 v.callInternal("jwDisplayHide"); 1710 return u 1711 }, 1712 onShow: function(w) { 1713 v.componentListener("display", b.api.events.JWPLAYER_COMPONENT_SHOW, w); 1714 return u 1715 }, 1716 onHide: function(w) { 1717 v.componentListener("display", b.api.events.JWPLAYER_COMPONENT_HIDE, w); 1718 return u 1719 } 1720 }) 1721 } else { 1722 return this.plugins[t] 1723 } 1724 } 1725 } 1726 }; 1727 this.callback = function(t) { 1728 if (k[t]) { 1729 return k[t]() 1730 } 1731 }; 1732 this.getDuration = function() { 1733 return this.callInternal("jwGetDuration") 1734 }; 1735 this.getFullscreen = function() { 1736 return this.callInternal("jwGetFullscreen") 1737 }; 1738 this.getHeight = function() { 1739 return this.callInternal("jwGetHeight") 1740 }; 1741 this.getLockState = function() { 1742 return this.callInternal("jwGetLockState") 1743 }; 1744 this.getMeta = function() { 1745 return this.getItemMeta() 1746 }; 1747 this.getMute = function() { 1748 return this.callInternal("jwGetMute") 1749 }; 1750 this.getPlaylist = function() { 1751 var u = this.callInternal("jwGetPlaylist"); 1752 if (this.renderingMode == "flash") { 1753 b.utils.deepReplaceKeyName(u, "__dot__", ".") 1754 } 1755 for (var t = 0; t < u.length; t++) { 1756 if (!b.utils.exists(u[t].index)) { 1757 u[t].index = t 1758 } 1759 } 1760 return u 1761 }; 1762 this.getPlaylistItem = function(t) { 1763 if (!b.utils.exists(t)) { 1764 t = this.getCurrentItem() 1765 } 1766 return this.getPlaylist()[t] 1767 }; 1768 this.getPosition = function() { 1769 return this.callInternal("jwGetPosition") 1770 }; 1771 this.getRenderingMode = function() { 1772 return this.renderingMode 1773 };
1774 this.getState = function() { 1775 return this.callInternal("jwGetState") 1776 }; 1777 this.getVolume = function() { 1778 return this.callInternal("jwGetVolume") 1779 }; 1780 this.getWidth = function() { 1781 return this.callInternal("jwGetWidth") 1782 }; 1783 this.setFullscreen = function(t) { 1784 if (!b.utils.exists(t)) { 1785 this.callInternal("jwSetFullscreen", !this.callInternal("jwGetFullscreen")) 1786 } else { 1787 this.callInternal("jwSetFullscreen", t) 1788 } 1789 return this 1790 }; 1791 this.setMute = function(t) { 1792 if (!b.utils.exists(t)) { 1793 this.callInternal("jwSetMute", !this.callInternal("jwGetMute")) 1794 } else { 1795 this.callInternal("jwSetMute", t) 1796 } 1797 return this 1798 }; 1799 this.lock = function() { 1800 return this 1801 }; 1802 this.unlock = function() { 1803 return this 1804 }; 1805 this.load = function(t) { 1806 this.callInternal("jwLoad", t); 1807 return this 1808 }; 1809 this.playlistItem = function(t) { 1810 this.callInternal("jwPlaylistItem", t); 1811 return this 1812 }; 1813 this.playlistPrev = function() { 1814 this.callInternal("jwPlaylistPrev"); 1815 return this 1816 }; 1817 this.playlistNext = function() { 1818 this.callInternal("jwPlaylistNext"); 1819 return this 1820 }; 1821 this.resize = function(u, t) { 1822 if (this.renderingMode == "html5") { 1823 h.jwResize(u, t) 1824 } else { 1825 this.container.width = u; 1826 this.container.height = t 1827 } 1828 return this 1829 }; 1830 this.play = function(t) { 1831 if (typeof t == "undefined") { 1832 t = this.getState(); 1833 if (t == b.api.events.state.PLAYING || t == b.api.events.state.BUFFERING) { 1834 this.callInternal("jwPause") 1835 } else { 1836 this.callInternal("jwPlay") 1837 } 1838 } else { 1839 this.callInternal("jwPlay", t) 1840 } 1841 return this 1842 }; 1843 this.pause = function(t) { 1844 if (typeof t == "undefined") { 1845 t = this.getState(); 1846 if (t == b.api.events.state.PLAYING || t == b.api.events.state.BUFFERING) { 1847 this.callInternal("jwPause") 1848 } else { 1849 this.callInternal("jwPlay") 1850 } 1851 } else { 1852 this.callInternal("jwPause", t) 1853 } 1854 return this 1855 }; 1856 this.stop = function() { 1857 this.callInternal("jwStop"); 1858 return this 1859 }; 1860 this.seek = function(t) { 1861 this.callInternal("jwSeek", t); 1862 return this 1863 }; 1864 this.setVolume = function(t) { 1865 this.callInternal("jwSetVolume", t); 1866 return this 1867 }; 1868 this.onBufferChange = function(t) { 1869 return this.eventListener(b.api.events.JWPLAYER_MEDIA_BUFFER, t) 1870 }; 1871 this.onBufferFull = function(t) { 1872 return this.eventListener(b.api.events.JWPLAYER_MEDIA_BUFFER_FULL, t) 1873 }; 1874 this.onError = function(t) { 1875 return this.eventListener(b.api.events.JWPLAYER_ERROR, t) 1876 }; 1877 this.onFullscreen = function(t) { 1878 return this.eventListener(b.api.events.JWPLAYER_FULLSCREEN, t) 1879 }; 1880 this.onMeta = function(t) { 1881 return this.eventListener(b.api.events.JWPLAYER_MEDIA_META, t) 1882 }; 1883 this.onMute = function(t) { 1884 return this.eventListener(b.api.events.JWPLAYER_MEDIA_MUTE, t) 1885 }; 1886 this.onPlaylist = function(t) { 1887 return this.eventListener(b.api.events.JWPLAYER_PLAYLIST_LOADED, t) 1888 }; 1889 this.onPlaylistItem = function(t) { 1890 return this.eventListener(b.api.events.JWPLAYER_PLAYLIST_ITEM, t) 1891 }; 1892 this.onReady = function(t) { 1893 return this.eventListener(b.api.events.API_READY, t) 1894 }; 1895 this.onResize = function(t) { 1896 return this.eventListener(b.api.events.JWPLAYER_RESIZE, t) 1897 }; 1898 this.onComplete = function(t) { 1899 return this.eventListener(b.api.events.JWPLAYER_MEDIA_COMPLETE, t) 1900 }; 1901 this.onSeek = function(t) { 1902 return this.eventListener(b.api.events.JWPLAYER_MEDIA_SEEK, t) 1903 }; 1904 this.onTime = function(t) { 1905 return this.eventListener(b.api.events.JWPLAYER_MEDIA_TIME, t) 1906 }; 1907 this.onVolume = function(t) { 1908 return this.eventListener(b.api.events.JWPLAYER_MEDIA_VOLUME, t) 1909 }; 1910 this.onBuffer = function(t) { 1911 return this.stateListener(b.api.events.state.BUFFERING, t) 1912 }; 1913 this.onPause = function(t) { 1914 return this.stateListener(b.api.events.state.PAUSED, t) 1915 }; 1916 this.onPlay = function(t) { 1917 return this.stateListener(b.api.events.state.PLAYING, t) 1918 }; 1919 this.onIdle = function(t) { 1920 return this.stateListener(b.api.events.state.IDLE, t) 1921 }; 1922 this.remove = function() { 1923 n = {}; 1924 j = []; 1925 if (b.utils.getOuterHTML(this.container) != p) { 1926 b.api.destroyPlayer(this.id, p) 1927 } 1928 }; 1929 this.setup = function(u) { 1930 if (b.embed) { 1931 var t = this.id; 1932 this.remove(); 1933 var v = b(t); 1934 v.config = u; 1935 return new b.embed(v) 1936 } 1937 return this 1938 }; 1939 this.registerPlugin = function(v, u, t) { 1940 b.plugins.registerPlugin(v, u, t) 1941 }; 1942 this.setPlayer = function(t, u) { 1943 h = t; 1944 this.renderingMode = u 1945 }; 1946 this.stateListener = function(t, u) { 1947 if (!s[t]) { 1948 s[t] = []; 1949 this.eventListener(b.api.events.JWPLAYER_PLAYER_STATE, g(t)) 1950 } 1951 s[t].push(u); 1952 return this 1953 }; 1954 1955 function g(t) { 1956 return function(v) { 1957 var u = v.newstate, 1958 x = v.oldstate; 1959 if (u == t) { 1960 var w = s[u]; 1961 if (w) { 1962 for (var y = 0; y < w.length; y++) { 1963 if (typeof w[y] == "function") { 1964 w[y].call(this, { 1965 oldstate: x, 1966 newstate: u 1967 }) 1968 } 1969 } 1970 } 1971 } 1972 } 1973 } 1974 this.componentListener = function(t, u, v) { 1975 if (!q[t]) { 1976 q[t] = {} 1977 } 1978 if (!q[t][u]) { 1979 q[t][u] = []; 1980 this.eventListener(u, m(t, u)) 1981 } 1982 q[t][u].push(v); 1983 return this 1984 }; 1985 1986 function m(t, u) { 1987 return function(w) { 1988 if (t == w.component) { 1989 var v = q[t][u]; 1990 if (v) { 1991 for (var x = 0; x < v.length; x++) { 1992 if (typeof v[x] == "function") { 1993 v[x].call(this, w) 1994 } 1995 } 1996 } 1997 } 1998 } 1999 } 2000 this.addInternalListener = function(t, u) { 2001 t.jwAddEventListener(u, 'function(dat) { jwplayer("' + this.id + '").dispatchEvent("' + u + '", dat); }') 2002 }; 2003 this.eventListener = function(t, u) { 2004 if (!n[t]) { 2005 n[t] = []; 2006 if (h && l) { 2007 this.addInternalListener(h, t) 2008 } 2009 } 2010 n[t].push(u); 2011 return this 2012 }; 2013 this.dispatchEvent = function(v) { 2014 if (n[v]) { 2015 var u = f(v, arguments[1]); 2016 for (var t = 0; t < n[v].length; t++) { 2017 if (typeof n[v][t] == "function") { 2018 n[v][t].call(this, u) 2019 } 2020 } 2021 } 2022 }; 2023 2024 function f(v, t) { 2025 var x = b.utils.extend({}, t); 2026 if (v == b.api.events.JWPLAYER_FULLSCREEN && !x.fullscreen) { 2027 x.fullscreen = x.message == "true" ? true : false;
2028 delete x.message 2029 } else { 2030 if (typeof x.data == "object") { 2031 x = b.utils.extend(x, x.data); 2032 delete x.data 2033 } 2034 } 2035 var u = ["position", "duration", "offset"]; 2036 for (var w in u) { 2037 if (x[u[w]]) { 2038 x[u[w]] = Math.round(x[u[w]] * 1000) / 1000 2039 } 2040 } 2041 return x 2042 } 2043 this.callInternal = function(u, t) { 2044 if (l) { 2045 if (typeof h != "undefined" && typeof h[u] == "function") { 2046 if (b.utils.exists(t)) { 2047 return (h[u])(t) 2048 } else { 2049 return (h[u])() 2050 } 2051 } 2052 return null 2053 } else { 2054 j.push({ 2055 method: u, 2056 parameters: t 2057 }) 2058 } 2059 }; 2060 this.playerReady = function(v) { 2061 l = true; 2062 if (!h) { 2063 this.setPlayer(document.getElementById(v.id)) 2064 } 2065 this.container = document.getElementById(this.id); 2066 for (var t in n) { 2067 this.addInternalListener(h, t) 2068 } 2069 this.eventListener(b.api.events.JWPLAYER_PLAYLIST_ITEM, function(w) { 2070 r = {} 2071 }); 2072 this.eventListener(b.api.events.JWPLAYER_MEDIA_META, function(w) { 2073 b.utils.extend(r, w.metadata) 2074 }); 2075 this.dispatchEvent(b.api.events.API_READY); 2076 while (j.length > 0) { 2077 var u = j.shift(); 2078 this.callInternal(u.method, u.parameters) 2079 } 2080 }; 2081 this.getItemMeta = function() { 2082 return r 2083 }; 2084 this.getCurrentItem = function() { 2085 return this.callInternal("jwGetPlaylistIndex") 2086 }; 2087 2088 function o(v, x, w) { 2089 var t = []; 2090 if (!x) { 2091 x = 0 2092 } 2093 if (!w) { 2094 w = v.length - 1 2095 } 2096 for (var u = x; u <= w; u++) { 2097 t.push(v[u]) 2098 } 2099 return t 2100 } 2101 return this 2102 }; 2103 b.api.selectPlayer = function(d) { 2104 var c; 2105 if (!b.utils.exists(d)) { 2106 d = 0 2107 } 2108 if (d.nodeType) { 2109 c = d 2110 } else { 2111 if (typeof d == "string") { 2112 c = document.getElementById(d) 2113 } 2114 } 2115 if (c) { 2116 var e = b.api.playerById(c.id); 2117 if (e) { 2118 return e 2119 } else { 2120 return b.api.addPlayer(new b.api(c)) 2121 } 2122 } else { 2123 if (typeof d == "number") { 2124 return b.getPlayers()[d] 2125 } 2126 } 2127 return null 2128 }; 2129 b.api.events = { 2130 API_READY: "jwplayerAPIReady", 2131 JWPLAYER_READY: "jwplayerReady", 2132 JWPLAYER_FULLSCREEN: "jwplayerFullscreen", 2133 JWPLAYER_RESIZE: "jwplayerResize", 2134 JWPLAYER_ERROR: "jwplayerError", 2135 JWPLAYER_COMPONENT_SHOW: "jwplayerComponentShow", 2136 JWPLAYER_COMPONENT_HIDE: "jwplayerComponentHide", 2137 JWPLAYER_MEDIA_BUFFER: "jwplayerMediaBuffer", 2138 JWPLAYER_MEDIA_BUFFER_FULL: "jwplayerMediaBufferFull", 2139 JWPLAYER_MEDIA_ERROR: "jwplayerMediaError", 2140 JWPLAYER_MEDIA_LOADED: "jwplayerMediaLoaded", 2141 JWPLAYER_MEDIA_COMPLETE: "jwplayerMediaComplete", 2142 JWPLAYER_MEDIA_SEEK: "jwplayerMediaSeek", 2143 JWPLAYER_MEDIA_TIME: "jwplayerMediaTime", 2144 JWPLAYER_MEDIA_VOLUME: "jwplayerMediaVolume", 2145 JWPLAYER_MEDIA_META: "jwplayerMediaMeta", 2146 JWPLAYER_MEDIA_MUTE: "jwplayerMediaMute", 2147 JWPLAYER_PLAYER_STATE: "jwplayerPlayerState", 2148 JWPLAYER_PLAYLIST_LOADED: "jwplayerPlaylistLoaded", 2149 JWPLAYER_PLAYLIST_ITEM: "jwplayerPlaylistItem" 2150 }; 2151 b.api.events.state = { 2152 BUFFERING: "BUFFERING", 2153 IDLE: "IDLE", 2154 PAUSED: "PAUSED", 2155 PLAYING: "PLAYING" 2156 }; 2157 b.api.playerById = function(d) { 2158 for (var c = 0; c < a.length; c++) { 2159 if (a[c].id == d) { 2160 return a[c] 2161 } 2162 } 2163 return null 2164 }; 2165 b.api.addPlayer = function(c) { 2166 for (var d = 0; d < a.length; d++) { 2167 if (a[d] == c) { 2168 return c 2169 } 2170 } 2171 a.push(c); 2172 return c 2173 }; 2174 b.api.destroyPlayer = function(g, d) { 2175 var f = -1; 2176 for (var j = 0; j < a.length; j++) { 2177 if (a[j].id == g) { 2178 f = j; 2179 continue 2180 } 2181 } 2182 if (f >= 0) { 2183 var c = document.getElementById(a[f].id); 2184 if (document.getElementById(a[f].id + "_wrapper")) { 2185 c = document.getElementById(a[f].id + "_wrapper") 2186 } 2187 if (c) { 2188 if (d) { 2189 b.utils.setOuterHTML(c, d) 2190 } else { 2191 var h = document.createElement("div"); 2192 var e = c.id; 2193 if (c.id.indexOf("_wrapper") == c.id.length - 8) { 2194 newID = c.id.substring(0, c.id.length - 8) 2195 } 2196 h.setAttribute("id", e); 2197 c.parentNode.replaceChild(h, c) 2198 } 2199 } 2200 a.splice(f, 1) 2201 } 2202 return null 2203 }; 2204 b.getPlayers = function() { 2205 return a.slice(0) 2206 } 2207 })(jwplayer); 2208 var _userPlayerReady = (typeof playerReady == "function") ? playerReady : undefined; 2209 playerReady = function(b) { 2210 var a = jwplayer.api.playerById(b.id); 2211 if (a) { 2212 a.playerReady(b) 2213 } else { 2214 jwplayer.api.selectPlayer(b.id).playerReady(b) 2215 } 2216 if (_userPlayerReady) { 2217 _userPlayerReady.call(this, b) 2218 } 2219 }; 2220 (function(a) { 2221 a.embed = function(g) { 2222 var j = { 2223 width: 400, 2224 height: 300, 2225 components: { 2226 controlbar: { 2227 position: "over" 2228 } 2229 } 2230 }; 2231 var f = a.utils.mediaparser.parseMedia(g.container); 2232 var e = new a.embed.config(a.utils.extend(j, f, g.config), this); 2233 var h = a.plugins.loadPlugins(g.id, e.plugins); 2234 2235 function c(m, l) { 2236 for (var k in l) { 2237 if (typeof m[k] == "function") { 2238 (m[k]).call(m, l[k]) 2239 } 2240 } 2241 } 2242 function d() { 2243 if (h.getStatus() == a.utils.loaderstatus.COMPLETE) { 2244 for (var m = 0; m < e.modes.length; m++) { 2245 if (e.modes[m].type && a.embed[e.modes[m].type]) { 2246 var k = e; 2247 if (e.modes[m].config) { 2248 k = a.utils.extend(a.utils.clone(e), e.modes[m].config) 2249 } 2250 var l = new a.embed[e.modes[m].type](document.getElementById(g.id), e.modes[m], k, h, g); 2251 if (l.supportsConfig()) { 2252 l.embed(); 2253 c(g, e.events); 2254 return g 2255 } 2256 } 2257 } 2258 a.utils.log("No suitable players found"); 2259 new a.embed.logo(a.utils.extend({ 2260 hide: true 2261 }, e.components.logo), "none", g.id) 2262 } 2263 } 2264 h.addEventListener(a.events.COMPLETE, d); 2265 h.addEventListener(a.events.ERROR, d); 2266 h.load(); 2267 return g 2268 }; 2269 2270 function b() { 2271 if (!document.body) { 2272 return setTimeout(b, 15) 2273 } 2274 var c = a.utils.selectors.getElementsByTagAndClass("video", "jwplayer"); 2275 for (var d = 0; d < c.length; d++) { 2276 var e = c[d]; 2277 a(e.id).setup({}) 2278 } 2279 } 2280 b() 2281 })(jwplayer); 2282 (function(e) { 2283 function h() { 2284 return [{ 2285 type: "flash", 2286 src: "/jwplayer/player.swf" 2287 }, { 2288 type: "html5" 2289 }, { 2290 type: "download" 2291 }] 2292 } 2293 var a = { 2294 players: "modes", 2295 autoplay: "autostart" 2296 }; 2297 2298 function b(n) { 2299 var m = n.toLowerCase(); 2300 var l = ["left", "right", "top", "bottom"]; 2301 for (var k = 0; k < l.length; k++) { 2302 if (m == l[k]) { 2303 return true 2304 } 2305 } 2306 return false 2307 } 2308 function c(l) { 2309 var k = false;
2310 k = (l instanceof Array) || (typeof l == "object" && !l.position && !l.size); 2311 return k 2312 } 2313 function j(k) { 2314 if (typeof k == "string") { 2315 if (parseInt(k).toString() == k || k.toLowerCase().indexOf("px") > -1) { 2316 return parseInt(k) 2317 } 2318 } 2319 return k 2320 } 2321 var g = ["playlist", "dock", "controlbar", "logo", "display"]; 2322 2323 function f(k) { 2324 var n = {}; 2325 switch (e.utils.typeOf(k.plugins)) { 2326 case "object": 2327 for (var m in k.plugins) { 2328 n[e.utils.getPluginName(m)] = m 2329 } 2330 break; 2331 case "string": 2332 var o = k.plugins.split(","); 2333 for (var l = 0; l < o.length; l++) { 2334 n[e.utils.getPluginName(o[l])] = o[l] 2335 } 2336 break 2337 } 2338 return n 2339 } 2340 function d(o, n, m, k) { 2341 if (e.utils.typeOf(o[n]) != "object") { 2342 o[n] = {} 2343 } 2344 var l = o[n][m]; 2345 if (e.utils.typeOf(l) != "object") { 2346 o[n][m] = l = {} 2347 } 2348 if (k) { 2349 if (n == "plugins") { 2350 var p = e.utils.getPluginName(m); 2351 l[k] = o[p + "." + k]; 2352 delete o[p + "." + k] 2353 } else { 2354 l[k] = o[m + "." + k]; 2355 delete o[m + "." + k] 2356 } 2357 } 2358 } 2359 e.embed.deserialize = function(l) { 2360 var m = f(l); 2361 for (var k in m) { 2362 d(l, "plugins", m[k]) 2363 } 2364 for (var p in l) { 2365 if (p.indexOf(".") > -1) { 2366 var o = p.split("."); 2367 var n = o[0]; 2368 var p = o[1]; 2369 if (e.utils.isInArray(g, n)) { 2370 d(l, "components", n, p) 2371 } else { 2372 if (m[n]) { 2373 d(l, "plugins", m[n], p) 2374 } 2375 } 2376 } 2377 } 2378 return l 2379 }; 2380 e.embed.config = function(k, u) { 2381 var t = e.utils.extend({}, k); 2382 var r; 2383 if (c(t.playlist)) { 2384 r = t.playlist; 2385 delete t.playlist 2386 } 2387 t = e.embed.deserialize(t); 2388 t.height = j(t.height); 2389 t.width = j(t.width); 2390 if (typeof t.plugins == "string") { 2391 var l = t.plugins.split(","); 2392 if (typeof t.plugins != "object") { 2393 t.plugins = {} 2394 } 2395 for (var p = 0; p < l.length; p++) { 2396 var q = e.utils.getPluginName(l[p]); 2397 if (typeof t[q] == "object") { 2398 t.plugins[l[p]] = t[q]; 2399 delete t[q] 2400 } else { 2401 t.plugins[l[p]] = {} 2402 } 2403 } 2404 } 2405 for (var s = 0; s < g.length; s++) { 2406 var o = g[s]; 2407 if (e.utils.exists(t[o])) { 2408 if (typeof t[o] != "object") { 2409 if (!t.components[o]) { 2410 t.components[o] = {} 2411 } 2412 if (o == "logo") { 2413 t.components[o].file = t[o] 2414 } else { 2415 t.components[o].position = t[o] 2416 } 2417 delete t[o] 2418 } else { 2419 if (!t.components[o]) { 2420 t.components[o] = {} 2421 } 2422 e.utils.extend(t.components[o], t[o]); 2423 delete t[o] 2424 } 2425 } 2426 if (typeof t[o + "size"] != "undefined") { 2427 if (!t.components[o]) { 2428 t.components[o] = {} 2429 } 2430 t.components[o].size = t[o + "size"]; 2431 delete t[o + "size"] 2432 } 2433 } 2434 if (typeof t.icons != "undefined") { 2435 if (!t.components.display) { 2436 t.components.display = {} 2437 } 2438 t.components.display.icons = t.icons; 2439 delete t.icons 2440 } 2441 for (var n in a) { 2442 if (t[n]) { 2443 if (!t[a[n]]) { 2444 t[a[n]] = t[n] 2445 } 2446 delete t[n] 2447 } 2448 } 2449 var m; 2450 if (t.flashplayer && !t.modes) { 2451 m = h(); 2452 m[0].src = t.flashplayer; 2453 delete t.flashplayer 2454 } else { 2455 if (t.modes) { 2456 if (typeof t.modes == "string") { 2457 m = h(); 2458 m[0].src = t.modes 2459 } else { 2460 if (t.modes instanceof Array) { 2461 m = t.modes 2462 } else { 2463 if (typeof t.modes == "object" && t.modes.type) { 2464 m = [t.modes] 2465 } 2466 } 2467 } 2468 delete t.modes 2469 } else { 2470 m = h() 2471 } 2472 } 2473 t.modes = m; 2474 if (r) { 2475 t.playlist = r 2476 } 2477 return t 2478 } 2479 })(jwplayer); 2480 (function(a) { 2481 a.embed.download = function(c, g, b, d, f) { 2482 this.embed = function() { 2483 var k = a.utils.extend({}, b); 2484 var q = {}; 2485 var j = b.width ? b.width : 480; 2486 if (typeof j != "number") { 2487 j = parseInt(j, 10) 2488 } 2489 var m = b.height ? b.height : 320; 2490 if (typeof m != "number") { 2491 m = parseInt(m, 10) 2492 } 2493 var u, o, n; 2494 var s = {}; 2495 if (b.playlist && b.playlist.length) { 2496 s.file = b.playlist[0].file; 2497 o = b.playlist[0].image; 2498 s.levels = b.playlist[0].levels 2499 } else { 2500 s.file = b.file; 2501 o = b.image; 2502 s.levels = b.levels 2503 } 2504 if (s.file) { 2505 u = s.file 2506 } else { 2507 if (s.levels && s.levels.length) { 2508 u = s.levels[0].file 2509 } 2510 } 2511 n = u ? "pointer" : "auto"; 2512 var l = { 2513 display: { 2514 style: { 2515 cursor: n, 2516 width: j, 2517 height: m, 2518 backgroundColor: "#000", 2519 position: "relative", 2520 textDecoration: "none", 2521 border: "none", 2522 display: "block" 2523 } 2524 }, 2525 display_icon: { 2526 style: { 2527 cursor: n, 2528 position: "absolute", 2529 display: u ? "block" : "none", 2530 top: 0, 2531 left: 0, 2532 border: 0, 2533 margin: 0, 2534 padding: 0, 2535 zIndex: 3, 2536 width: 50, 2537 height: 50, 2538 backgroundImage: "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALdJREFUeNrs18ENgjAYhmFouDOCcQJGcARHgE10BDcgTOIosAGwQOuPwaQeuFRi2p/3Sb6EC5L3QCxZBgAAAOCorLW1zMn65TrlkH4NcV7QNcUQt7Gn7KIhxA+qNIR81spOGkL8oFJDyLJRdosqKDDkK+iX5+d7huzwM40xptMQMkjIOeRGo+VkEVvIPfTGIpKASfYIfT9iCHkHrBEzf4gcUQ56aEzuGK/mw0rHpy4AAACAf3kJMACBxjAQNRckhwAAAABJRU5ErkJggg==)" 2539 } 2540 },
2541 display_iconBackground: { 2542 style: { 2543 cursor: n, 2544 position: "absolute", 2545 display: u ? "block" : "none", 2546 top: ((m - 50) / 2), 2547 left: ((j - 50) / 2), 2548 border: 0, 2549 width: 50, 2550 height: 50, 2551 margin: 0, 2552 padding: 0, 2553 zIndex: 2, 2554 backgroundImage: "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEpJREFUeNrszwENADAIA7DhX8ENoBMZ5KR10EryckCJiIiIiIiIiIiIiIiIiIiIiIh8GmkRERERERERERERERERERERERGRHSPAAPlXH1phYpYaAAAAAElFTkSuQmCC)" 2555 } 2556 }, 2557 display_image: { 2558 style: { 2559 width: j, 2560 height: m, 2561 display: o ? "block" : "none", 2562 position: "absolute", 2563 cursor: n, 2564 left: 0, 2565 top: 0, 2566 margin: 0, 2567 padding: 0, 2568 textDecoration: "none", 2569 zIndex: 1, 2570 border: "none" 2571 } 2572 } 2573 }; 2574 var h = function(v, x, y) { 2575 var w = document.createElement(v); 2576 if (y) { 2577 w.id = y 2578 } else { 2579 w.id = c.id + "_jwplayer_" + x 2580 } 2581 a.utils.css(w, l[x].style); 2582 return w 2583 }; 2584 q.display = h("a", "display", c.id); 2585 if (u) { 2586 q.display.setAttribute("href", a.utils.getAbsolutePath(u)) 2587 } 2588 q.display_image = h("img", "display_image"); 2589 q.display_image.setAttribute("alt", "Click to download..."); 2590 if (o) { 2591 q.display_image.setAttribute("src", a.utils.getAbsolutePath(o)) 2592 } 2593 if (true) { 2594 q.display_icon = h("div", "display_icon"); 2595 q.display_iconBackground = h("div", "display_iconBackground"); 2596 q.display.appendChild(q.display_image); 2597 q.display_iconBackground.appendChild(q.display_icon); 2598 q.display.appendChild(q.display_iconBackground) 2599 } 2600 _css = a.utils.css; 2601 _hide = function(v) { 2602 _css(v, { 2603 display: "none" 2604 }) 2605 }; 2606 2607 function r(v) { 2608 _imageWidth = q.display_image.naturalWidth; 2609 _imageHeight = q.display_image.naturalHeight; 2610 t() 2611 } 2612 function t() { 2613 a.utils.stretch(a.utils.stretching.UNIFORM, q.display_image, j, m, _imageWidth, _imageHeight) 2614 } 2615 q.display_image.onerror = function(v) { 2616 _hide(q.display_image) 2617 }; 2618 q.display_image.onload = r; 2619 c.parentNode.replaceChild(q.display, c); 2620 var p = (b.plugins && b.plugins.logo) ? b.plugins.logo : {}; 2621 q.display.appendChild(new a.embed.logo(b.components.logo, "download", c.id)); 2622 f.container = document.getElementById(f.id); 2623 f.setPlayer(q.display, "download") 2624 }; 2625 this.supportsConfig = function() { 2626 if (b) { 2627 var j = a.utils.getFirstPlaylistItemFromConfig(b); 2628 if (typeof j.file == "undefined" && typeof j.levels == "undefined") { 2629 return true 2630 } else { 2631 if (j.file) { 2632 return e(j.file, j.provider, j.playlistfile) 2633 } else { 2634 if (j.levels && j.levels.length) { 2635 for (var h = 0; h < j.levels.length; h++) { 2636 if (j.levels[h].file && e(j.levels[h].file, j.provider, j.playlistfile)) { 2637 return true 2638 } 2639 } 2640 } 2641 } 2642 } 2643 } else { 2644 return true 2645 } 2646 }; 2647 2648 function e(j, l, h) { 2649 if (h) { 2650 return false 2651 } 2652 var k = ["image", "sound", "youtube", "http"]; 2653 if (l && (k.toString().indexOf(l) > -1)) { 2654 return true 2655 } 2656 if (!l || (l && l == "video")) { 2657 var m = a.utils.extension(j); 2658 if (m && a.utils.extensionmap[m]) { 2659 return true 2660 } 2661 } 2662 return false 2663 } 2664 } 2665 })(jwplayer); 2666 (function(a) { 2667 a.embed.flash = function(f, g, l, e, j) { 2668 function m(o, n, p) { 2669 var q = document.createElement("param"); 2670 q.setAttribute("name", n); 2671 q.setAttribute("value", p); 2672 o.appendChild(q) 2673 } 2674 function k(o, p, n) { 2675 return function(q) { 2676 if (n) { 2677 document.getElementById(j.id + "_wrapper").appendChild(p) 2678 } 2679 var s = document.getElementById(j.id).getPluginConfig("display"); 2680 o.resize(s.width, s.height); 2681 var r = { 2682 left: s.x, 2683 top: s.y 2684 }; 2685 a.utils.css(p, r) 2686 } 2687 } 2688 function d(p) { 2689 if (!p) { 2690 return {} 2691 } 2692 var r = {}; 2693 for (var o in p) { 2694 var n = p[o]; 2695 for (var q in n) { 2696 r[o + "." + q] = n[q] 2697 } 2698 } 2699 return r 2700 } 2701 function h(q, p) { 2702 if (q[p]) { 2703 var s = q[p]; 2704 for (var o in s) { 2705 var n = s[o]; 2706 if (typeof n == "string") { 2707 if (!q[o]) { 2708 q[o] = n 2709 } 2710 } else { 2711 for (var r in n) { 2712 if (!q[o + "." + r]) { 2713 q[o + "." + r] = n[r] 2714 } 2715 } 2716 } 2717 } 2718 delete q[p] 2719 } 2720 } 2721 function b(q) { 2722 if (!q) { 2723 return {} 2724 } 2725 var t = {}, 2726 s = []; 2727 for (var n in q) { 2728 var p = a.utils.getPluginName(n); 2729 var o = q[n]; 2730 s.push(n); 2731 for (var r in o) { 2732 t[p + "." + r] = o[r] 2733 } 2734 } 2735 t.plugins = s.join(","); 2736 return t 2737 } 2738 function c(p) {
2739 var n = p.netstreambasepath ? "" : "netstreambasepath=" + encodeURIComponent(window.location.href.split("#")[0]) + "&"; 2740 for (var o in p) { 2741 if (typeof(p[o]) == "object") { 2742 n += o + "=" + encodeURIComponent("[[JSON]]" + a.utils.strings.jsonToString(p[o])) + "&" 2743 } else { 2744 n += o + "=" + encodeURIComponent(p[o]) + "&" 2745 } 2746 } 2747 return n.substring(0, n.length - 1) 2748 } 2749 this.embed = function() { 2750 l.id = j.id; 2751 var y; 2752 var q = a.utils.extend({}, l); 2753 var n = q.width; 2754 var w = q.height; 2755 if (f.id + "_wrapper" == f.parentNode.id) { 2756 y = document.getElementById(f.id + "_wrapper") 2757 } else { 2758 y = document.createElement("div"); 2759 y.id = f.id + "_wrapper"; 2760 a.utils.wrap(f, y); 2761 a.utils.css(y, { 2762 position: "relative", 2763 width: n, 2764 height: w 2765 }) 2766 } 2767 var o = e.setupPlugins(j, q, k); 2768 if (o.length > 0) { 2769 a.utils.extend(q, b(o.plugins)) 2770 } else { 2771 delete q.plugins 2772 } 2773 var r = ["height", "width", "modes", "events"]; 2774 for (var u = 0; u < r.length; u++) { 2775 delete q[r[u]] 2776 } 2777 var p = "opaque"; 2778 if (q.wmode) { 2779 p = q.wmode 2780 } 2781 h(q, "components"); 2782 h(q, "providers"); 2783 if (typeof q["dock.position"] != "undefined") { 2784 if (q["dock.position"].toString().toLowerCase() == "false") { 2785 q.dock = q["dock.position"]; 2786 delete q["dock.position"] 2787 } 2788 } 2789 var x = "#000000"; 2790 var t; 2791 if (a.utils.isIE()) { 2792 var v = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" bgcolor="' + x + '" width="100%" height="100%" id="' + f.id + '" name="' + f.id + '" tabindex=0"">'; 2793 v += '<param name="movie" value="' + g.src + '">'; 2794 v += '<param name="allowfullscreen" value="true">'; 2795 v += '<param name="allowscriptaccess" value="always">'; 2796 v += '<param name="seamlesstabbing" value="true">'; 2797 v += '<param name="wmode" value="' + p + '">'; 2798 v += '<param name="flashvars" value="' + c(q) + '">'; 2799 v += "</object>"; 2800 a.utils.setOuterHTML(f, v); 2801 t = document.getElementById(f.id) 2802 } else { 2803 var s = document.createElement("object"); 2804 s.setAttribute("type", "application/x-shockwave-flash"); 2805 s.setAttribute("data", g.src); 2806 s.setAttribute("width", "100%"); 2807 s.setAttribute("height", "100%"); 2808 s.setAttribute("bgcolor", "#000000"); 2809 s.setAttribute("id", f.id); 2810 s.setAttribute("name", f.id); 2811 s.setAttribute("tabindex", 0); 2812 m(s, "allowfullscreen", "true"); 2813 m(s, "allowscriptaccess", "always"); 2814 m(s, "seamlesstabbing", "true"); 2815 m(s, "wmode", p); 2816 m(s, "flashvars", c(q)); 2817 f.parentNode.replaceChild(s, f); 2818 t = s 2819 } 2820 j.container = t; 2821 j.setPlayer(t, "flash") 2822 }; 2823 this.supportsConfig = function() { 2824 if (a.utils.hasFlash()) { 2825 if (l) { 2826 var o = a.utils.getFirstPlaylistItemFromConfig(l); 2827 if (typeof o.file == "undefined" && typeof o.levels == "undefined") { 2828 return true 2829 } else { 2830 if (o.file) { 2831 return flashCanPlay(o.file, o.provider) 2832 } else { 2833 if (o.levels && o.levels.length) { 2834 for (var n = 0; n < o.levels.length; n++) { 2835 if (o.levels[n].file && flashCanPlay(o.levels[n].file, o.provider)) { 2836 return true 2837 } 2838 } 2839 } 2840 } 2841 } 2842 } else { 2843 return true 2844 } 2845 } 2846 return false 2847 }; 2848 flashCanPlay = function(n, p) { 2849 var o = ["video", "http", "sound", "image"]; 2850 if (p && (o.toString().indexOf(p < 0))) { 2851 return true 2852 } 2853 var q = a.utils.extension(n); 2854 if (!q) { 2855 return true 2856 } 2857 if (a.utils.exists(a.utils.extensionmap[q]) && !a.utils.exists(a.utils.extensionmap[q].flash)) { 2858 return false 2859 } 2860 return true 2861 } 2862 } 2863 })(jwplayer); 2864 (function(a) { 2865 a.embed.html5 = function(c, g, b, d, f) { 2866 function e(j, k, h) { 2867 return function(l) { 2868 var m = document.getElementById(c.id + "_displayarea"); 2869 if (h) { 2870 m.appendChild(k) 2871 } 2872 var n = m.style; 2873 j.resize(parseInt(n.width.replace("px", "")), parseInt(n.height.replace("px", ""))); 2874 k.left = n.left; 2875 k.top = n.top 2876 } 2877 } 2878 this.embed = function() { 2879 if (a.html5) { 2880 d.setupPlugins(f, b, e); 2881 c.innerHTML = ""; 2882 var j = a.utils.extend({ 2883 screencolor: "0x000000" 2884 }, b); 2885 var h = ["plugins", "modes", "events"]; 2886 for (var k = 0; k < h.length; k++) { 2887 delete j[h[k]] 2888 } 2889 if (j.levels && !j.sources) { 2890 j.sources = b.levels 2891 } 2892 if (j.skin && j.skin.toLowerCase().indexOf(".zip") > 0) { 2893 j.skin = j.skin.replace(/\.zip/i, ".xml") 2894 } 2895 var l = new(a.html5(c)).setup(j); 2896 f.container = document.getElementById(f.id); 2897 f.setPlayer(l, "html5") 2898 } else { 2899 return null 2900 } 2901 }; 2902 this.supportsConfig = function() { 2903 if ( !! a.vid.canPlayType) { 2904 if (b) { 2905 var j = a.utils.getFirstPlaylistItemFromConfig(b); 2906 if (typeof j.file == "undefined" && typeof j.levels == "undefined") { 2907 return true 2908 } else { 2909 if (j.file) { 2910 return html5CanPlay(a.vid, j.file, j.provider, j.playlistfile) 2911 } else { 2912 if (j.levels && j.levels.length) { 2913 for (var h = 0; h < j.levels.length; h++) { 2914 if (j.levels[h].file && html5CanPlay(a.vid, j.levels[h].file, j.provider, j.playlistfile)) { 2915 return true 2916 } 2917 } 2918 } 2919 } 2920 } 2921 } else { 2922 return true 2923 } 2924 } 2925 return false 2926 }; 2927 html5CanPlay = function(k, j, l, h) { 2928 if (h) { 2929 return false 2930 } 2931 if (l && l == "youtube") { 2932 return true 2933 } 2934 if (l && l != "video" && l != "http" && l != "sound") { 2935 return false 2936 } 2937 var m = a.utils.extension(j); 2938 if (!a.utils.exists(m) || !a.utils.exists(a.utils.extensionmap[m])) { 2939 return true 2940 } 2941 if (!a.utils.exists(a.utils.extensionmap[m].html5)) { 2942 return false 2943 } 2944 if (a.utils.isLegacyAndroid() && m.match(/m4v|mp4/)) { 2945 return true 2946 } 2947 return browserCanPlay(k, a.utils.extensionmap[m].html5) 2948 }; 2949 browserCanPlay = function(j, h) { 2950 if (!h) { 2951 return true 2952 } 2953 if (j.canPlayType(h)) { 2954 return true 2955 } else { 2956 if (h == "audio/mp3" && navigator.userAgent.match(/safari/i)) { 2957 return j.canPlayType("audio/mpeg") 2958 } else { 2959 return false 2960 } 2961 } 2962 } 2963 } 2964 })(jwplayer); 2965 (function(a) { 2966 a.embed.logo = function(m, l, d) { 2967 var j = { 2968 prefix: "http://l.longtailvideo.com/" + l + "/", 2969 file: "logo.png", 2970 link: "http://www.longtailvideo.com/players/jw-flv-player/", 2971 margin: 8, 2972 out: 0.5, 2973 over: 1, 2974 timeout: 5, 2975 hide: false, 2976 position: "bottom-left" 2977 }; 2978 _css = a.utils.css; 2979 var b; 2980 var h; 2981 k(); 2982 2983 function k() { 2984 o(); 2985 c(); 2986 f() 2987 } 2988 function o() { 2989 if (j.prefix) { 2990 var q = a.version.split(/\W/).splice(0, 2).join("/"); 2991 if (j.prefix.indexOf(q) < 0) { 2992 j.prefix += q + "/" 2993 } 2994 } 2995 h = a.utils.extend({}, j) 2996 } 2997 function p() { 2998 var s = { 2999 border: "none", 3000 textDecoration: "none", 3001 position: "absolute", 3002 cursor: "pointer", 3003 zIndex: 10 3004 }; 3005 s.display = h.hide ? "none" : "block"; 3006 var r = h.position.toLowerCase().split("-"); 3007 for (var q in r) { 3008 s[r[q]] = h.margin 3009 } 3010 return s 3011 } 3012 function c() { 3013 b = document.createElement("img"); 3014 b.id = d + "_jwplayer_logo"; 3015 b.style.display = "none"; 3016 b.onload = function(q) { 3017 _css(b, p()); 3018 e() 3019 }; 3020 if (!h.file) { 3021 return 3022 } 3023 if (h.file.indexOf("http://") === 0) { 3024 b.src = h.file 3025 } else { 3026 b.src = h.prefix + h.file 3027 } 3028 } 3029 if (!h.file) { 3030 return 3031 } 3032 function f() { 3033 if (h.link) { 3034 b.onmouseover = g; 3035 b.onmouseout = e; 3036 b.onclick = n 3037 } else { 3038 this.mouseEnabled = false 3039 } 3040 } 3041 function n(q) { 3042 if (typeof q != "undefined") { 3043 q.preventDefault(); 3044 q.stopPropagation() 3045 } 3046 if (h.link) { 3047 window.open(h.link, "_blank") 3048 } 3049 return 3050 } 3051 function e(q) { 3052 if (h.link) { 3053 b.style.opacity = h.out 3054 } 3055 return 3056 } 3057 function g(q) { 3058 if (h.hide) { 3059 b.style.opacity = h.over 3060 } 3061 return 3062 } 3063 return b 3064 } 3065 })(jwplayer); 3066 (function(a) { 3067 a.html5 = function(b) { 3068 var c = b; 3069 this.setup = function(d) { 3070 a.utils.extend(this, new a.html5.api(c, d)); 3071 return this 3072 }; 3073 return this 3074 } 3075 })(jwplayer); 3076 (function(b) { 3077 var d = b.utils; 3078 var c = d.css; 3079 b.html5.view = function(r, q, f) { 3080 var u = r; 3081 var n = q; 3082 var x = f; 3083 var w; 3084 var g; 3085 var C; 3086 var s; 3087 var D; 3088 var p; 3089 var A; 3090 3091 function z() { 3092 w = document.createElement("div"); 3093 w.id = n.id; 3094 w.className = n.className; 3095 _videowrapper = document.createElement("div"); 3096 _videowrapper.id = w.id + "_video_wrapper"; 3097 n.id = w.id + "_video"; 3098 c(w, { 3099 position: "relative", 3100 height: x.height, 3101 width: x.width, 3102 padding: 0, 3103 backgroundColor: E(), 3104 zIndex: 0 3105 }); 3106 3107 function E() { 3108 if (u.skin.getComponentSettings("display") && u.skin.getComponentSettings("display").backgroundcolor) { 3109 return u.skin.getComponentSettings("display").backgroundcolor 3110 } 3111 return parseInt("000000", 16) 3112 } 3113 c(n, { 3114 width: x.width, 3115 height: x.height, 3116 top: 0, 3117 left: 0, 3118 zIndex: 1, 3119 margin: "auto", 3120 display: "block" 3121 }); 3122 c(_videowrapper, { 3123 overflow: "hidden", 3124 position: "absolute", 3125 top: 0, 3126 left: 0, 3127 bottom: 0, 3128 right: 0 3129 }); 3130 d.wrap(n, w); 3131 d.wrap(n, _videowrapper); 3132 s = document.createElement("div"); 3133 s.id = w.id + "_displayarea"; 3134 w.appendChild(s) 3135 } 3136 function k() { 3137 for (var E = 0; E < x.plugins.order.length; E++) { 3138 var F = x.plugins.order[E]; 3139 if (d.exists(x.plugins.object[F].getDisplayElement)) { 3140 x.plugins.object[F].height = d.parseDimension(x.plugins.object[F].getDisplayElement().style.height); 3141 x.plugins.object[F].width = d.parseDimension(x.plugins.object[F].getDisplayElement().style.width); 3142 x.plugins.config[F].currentPosition = x.plugins.config[F].position 3143 } 3144 } 3145 v() 3146 } 3147 function m(E) { 3148 c(s, { 3149 display: x.getMedia().hasChrome() ? "none" : "block" 3150 }) 3151 } 3152 function v(F) { 3153 var H = x.getMedia() ? x.getMedia().getDisplayElement() : null; 3154 if (d.exists(H)) { 3155 if (A != H) { 3156 if (A && A.parentNode) { 3157 A.parentNode.replaceChild(H, A) 3158 } 3159 A = H 3160 } 3161 for (var E = 0; E < x.plugins.order.length; E++) { 3162 var G = x.plugins.order[E]; 3163 if (d.exists(x.plugins.object[G].getDisplayElement)) { 3164 x.plugins.config[G].currentPosition = x.plugins.config[G].position 3165 } 3166 } 3167 } 3168 j(x.width, x.height) 3169 } 3170 this.setup = function() { 3171 if (x && x.getMedia()) { 3172 n = x.getMedia().getDisplayElement() 3173 } 3174 z(); 3175 k(); 3176 u.jwAddEventListener(b.api.events.JWPLAYER_PLAYER_STATE, m); 3177 u.jwAddEventListener(b.api.events.JWPLAYER_MEDIA_LOADED, v); 3178 u.jwAddEventListener(b.api.events.JWPLAYER_MEDIA_META, function() { 3179 y() 3180 }); 3181 var E; 3182 if (d.exists(window.onresize)) { 3183 E = window.onresize 3184 } 3185 window.onresize = function(F) { 3186 if (d.exists(E)) { 3187 try { 3188 E(F) 3189 } catch (H) {} 3190 } 3191 if (u.jwGetFullscreen()) { 3192 var G = document.body.getBoundingClientRect(); 3193 x.width = Math.abs(G.left) + Math.abs(G.right); 3194 x.height = window.innerHeight 3195 } 3196 j(x.width, x.height) 3197 } 3198 }; 3199 3200 function h(E) { 3201 switch (E.keyCode) { 3202 case 27: 3203 if (u.jwGetFullscreen()) { 3204 u.jwSetFullscreen(false) 3205 } 3206 break; 3207 case 32: 3208 if (u.jwGetState() != b.api.events.state.IDLE && u.jwGetState() != b.api.events.state.PAUSED) { 3209 u.jwPause() 3210 } else { 3211 u.jwPlay() 3212 } 3213 break 3214 } 3215 } 3216 function j(H, E) { 3217 if (w.style.display == "none") { 3218 return 3219 } 3220 var G = [].concat(x.plugins.order); 3221 G.reverse(); 3222 D = G.length + 2; 3223 if (!x.fullscreen) { 3224 x.width = H; 3225 x.height = E; 3226 g = H; 3227 C = E; 3228 c(s, { 3229 top: 0, 3230 bottom: 0, 3231 left: 0, 3232 right: 0, 3233 width: H, 3234 height: E, 3235 position: "relative" 3236 }); 3237 c(w, { 3238 height: C, 3239 width: g 3240 }); 3241 var F = o(t, G); 3242 if (F.length > 0) { 3243 D += F.length; 3244 var J = F.indexOf("playlist"), 3245 I = F.indexOf("controlbar"); 3246 if (J >= 0 && I >= 0) { 3247 F[J] = F.splice(I, 1, F[J])[0] 3248 } 3249 o(l, F, true) 3250 } 3251 } else { 3252 if (!(navigator && navigator.vendor && navigator.vendor.indexOf("Apple") == 0)) { 3253 o(B, G, true) 3254 } 3255 } 3256 y() 3257 } 3258 function o(J, G, H) { 3259 var F = []; 3260 for (var E = 0; E < G.length; E++) { 3261 var K = G[E]; 3262 if (d.exists(x.plugins.object[K].getDisplayElement)) { 3263 if (x.plugins.config[K].currentPosition != b.html5.view.positions.NONE) { 3264 var I = J(K, D--); 3265 if (!I) { 3266 F.push(K) 3267 } else { 3268 x.plugins.object[K].resize(I.width, I.height); 3269 if (H) { 3270 delete I.width; 3271 delete I.height 3272 } 3273 c(x.plugins.object[K].getDisplayElement(), I) 3274 } 3275 } else { 3276 c(x.plugins.object[K].getDisplayElement(), { 3277 display: "none" 3278 }) 3279 } 3280 } 3281 } 3282 return F 3283 } 3284 function t(F, G) { 3285 if (d.exists(x.plugins.object[F].getDisplayElement)) { 3286 if (x.plugins.config[F].position && a(x.plugins.config[F].position)) { 3287 if (!d.exists(x.plugins.object[F].getDisplayElement().parentNode)) { 3288 w.appendChild(x.plugins.object[F].getDisplayElement()) 3289 } 3290 var E = e(F); 3291 E.zIndex = G; 3292 return E 3293 } 3294 } 3295 return false 3296 } 3297 function l(G, H) { 3298 if (!d.exists(x.plugins.object[G].getDisplayElement().parentNode)) { 3299 s.appendChild(x.plugins.object[G].getDisplayElement()) 3300 } 3301 var E = x.width, 3302 F = x.height; 3303 if (typeof x.width == "string" && x.width.lastIndexOf("%") > -1) { 3304 percentage = parseFloat(x.width.substring(0, x.width.lastIndexOf("%"))) / 100; 3305 E = Math.round(window.innerWidth * percentage) 3306 } 3307 if (typeof x.height == "string" && x.height.lastIndexOf("%") > -1) { 3308 percentage = parseFloat(x.height.substring(0, x.height.lastIndexOf("%"))) / 100; 3309 F = Math.round(window.innerHeight * percentage) 3310 } 3311 return { 3312 position: "absolute", 3313 width: (E - d.parseDimension(s.style.left) - d.parseDimension(s.style.right)), 3314 height: (F - d.parseDimension(s.style.top) - d.parseDimension(s.style.bottom)), 3315 zIndex: H 3316 } 3317 } 3318 function B(E, F) { 3319 return { 3320 position: "fixed", 3321 width: x.width, 3322 height: x.height, 3323 zIndex: F 3324 } 3325 } 3326 function y() { 3327 if (!d.exists(x.getMedia())) { 3328 return 3329 } 3330 s.style.position = "absolute"; 3331 var H = x.getMedia().getDisplayElement(); 3332 if (H && H.tagName.toLowerCase() == "video") { 3333 H.style.position = "absolute"; 3334 var E, I; 3335 if (s.style.width.toString().lastIndexOf("%") > -1 || s.style.width.toString().lastIndexOf("%") > -1) { 3336 var F = s.getBoundingClientRect(); 3337 E = Math.abs(F.left) + Math.abs(F.right); 3338 I = Math.abs(F.top) + Math.abs(F.bottom) 3339 } else { 3340 E = d.parseDimension(s.style.width); 3341 I = d.parseDimension(s.style.height) 3342 } 3343 if (H.parentNode) { 3344 H.parentNode.style.left = s.style.left; 3345 H.parentNode.style.top = s.style.top 3346 } 3347 d.stretch(u.jwGetStretching(), H, E, I, H.videoWidth ? H.videoWidth : 400, H.videoHeight ? H.videoHeight : 300) 3348 } else { 3349 var G = x.plugins.object.display.getDisplayElement(); 3350 if (G) { 3351 x.getMedia().resize(d.parseDimension(G.style.width), d.parseDimension(G.style.height)) 3352 } else { 3353 x.getMedia().resize(d.parseDimension(s.style.width), d.parseDimension(s.style.height)) 3354 } 3355 } 3356 } 3357 function e(F) { 3358 var G = { 3359 position: "absolute", 3360 margin: 0, 3361 padding: 0, 3362 top: null 3363 }; 3364 var E = x.plugins.config[F].currentPosition.toLowerCase(); 3365 switch (E.toUpperCase()) { 3366 case b.html5.view.positions.TOP: 3367 G.top = d.parseDimension(s.style.top); 3368 G.left = d.parseDimension(s.style.left); 3369 G.width = g - d.parseDimension(s.style.left) - d.parseDimension(s.style.right); 3370 G.height = x.plugins.object[F].height; 3371 s.style[E] = d.parseDi
3371mension(s.style[E]) + x.plugins.object[F].height + "px"; 3372 s.style.height = d.parseDimension(s.style.height) - G.height + "px"; 3373 break; 3374 case b.html5.view.positions.RIGHT: 3375 G.top = d.parseDimension(s.style.top); 3376 G.right = d.parseDimension(s.style.right); 3377 G.width = x.plugins.object[F].width; 3378 G.height = C - d.parseDimension(s.style.top) - d.parseDimension(s.style.bottom); 3379 s.style[E] = d.parseDimension(s.style[E]) + x.plugins.object[F].width + "px"; 3380 s.style.width = d.parseDimension(s.style.width) - G.width + "px"; 3381 break; 3382 case b.html5.view.positions.BOTTOM: 3383 G.bottom = d.parseDimension(s.style.bottom); 3384 G.left = d.parseDimension(s.style.left); 3385 G.width = g - d.parseDimension(s.style.left) - d.parseDimension(s.style.right); 3386 G.height = x.plugins.object[F].height; 3387 s.style[E] = d.parseDimension(s.style[E]) + x.plugins.object[F].height + "px"; 3388 s.style.height = d.parseDimension(s.style.height) - G.height + "px"; 3389 break; 3390 case b.html5.view.positions.LEFT: 3391 G.top = d.parseDimension(s.style.top); 3392 G.left = d.parseDimension(s.style.left); 3393 G.width = x.plugins.object[F].width; 3394 G.height = C - d.parseDimension(s.style.top) - d.parseDimension(s.style.bottom); 3395 s.style[E] = d.parseDimension(s.style[E]) + x.plugins.object[F].width + "px"; 3396 s.style.width = d.parseDimension(s.style.width) - G.width + "px"; 3397 break; 3398 default: 3399 break 3400 } 3401 return G 3402 } 3403 this.resize = j; 3404 this.fullscreen = function(H) { 3405 if (navigator && navigator.vendor && navigator.vendor.indexOf("Apple") === 0) { 3406 if (x.getMedia().getDisplayElement().webkitSupportsFullscreen) { 3407 if (H) { 3408 try { 3409 x.getMedia().getDisplayElement().webkitEnterFullscreen() 3410 } catch (G) {} 3411 } else { 3412 try { 3413 x.getMedia().getDisplayElement().webkitExitFullscreen() 3414 } catch (G) {} 3415 } 3416 } 3417 } else { 3418 if (H) { 3419 document.onkeydown = h; 3420 clearInterval(p); 3421 var F = document.body.getBoundingClientRect(); 3422 x.width = Math.abs(F.left) + Math.abs(F.right); 3423 x.height = window.innerHeight; 3424 var E = { 3425 position: "fixed", 3426 width: "100%", 3427 height: "100%", 3428 top: 0, 3429 left: 0, 3430 zIndex: 2147483000 3431 }; 3432 c(w, E); 3433 E.zIndex = 1; 3434 if (x.getMedia() && x.getMedia().getDisplayElement()) { 3435 c(x.getMedia().getDisplayElement(), E) 3436 } 3437 E.zIndex = 2; 3438 c(s, E) 3439 } else { 3440 document.onkeydown = ""; 3441 x.width = g; 3442 x.height = C; 3443 c(w, { 3444 position: "relative", 3445 height: x.height, 3446 width: x.width, 3447 zIndex: 0 3448 }) 3449 } 3450 j(x.width, x.height) 3451 } 3452 } 3453 }; 3454 3455 function a(e) { 3456 return ([b.html5.view.positions.TOP, b.html5.view.positions.RIGHT, b.html5.view.positions.BOTTOM, b.html5.view.positions.LEFT].toString().indexOf(e.toUpperCase()) > -1) 3457 } 3458 b.html5.view.positions = { 3459 TOP: "TOP", 3460 RIGHT: "RIGHT", 3461 BOTTOM: "BOTTOM", 3462 LEFT: "LEFT", 3463 OVER: "OVER", 3464 NONE: "NONE" 3465 } 3466 })(jwplayer); 3467 (function(a) { 3468 var b = { 3469 backgroundcolor: "", 3470 margin: 10, 3471 font: "Arial,sans-serif", 3472 fontsize: 10, 3473 fontcolor: parseInt("000000", 16), 3474 fontstyle: "normal", 3475 fontweight: "bold", 3476 buttoncolor: parseInt("ffffff", 16), 3477 position: a.html5.view.positions.BOTTOM, 3478 idlehide: false, 3479 layout: { 3480 left: { 3481 position: "left", 3482 elements: [{ 3483 name: "play", 3484 type: "button" 3485 }, { 3486 name: "divider", 3487 type: "divider" 3488 }, { 3489 name: "prev", 3490 type: "button" 3491 }, { 3492 name: "divider", 3493 type: "divider" 3494 }, { 3495 name: "next", 3496 type: "button" 3497 }, { 3498 name: "divider", 3499 type: "divider" 3500 }, { 3501 name: "elapsed", 3502 type: "text" 3503 }] 3504 }, 3505 center: { 3506 position: "center", 3507 elements: [{ 3508 name: "time", 3509 type: "slider" 3510 }] 3511 }, 3512 right: { 3513 position: "right", 3514 elements: [{ 3515 name: "duration", 3516 type: "text" 3517 }, { 3518 name: "blank", 3519 type: "button" 3520 }, {
3521 name: "divider", 3522 type: "divider" 3523 }, { 3524 name: "mute", 3525 type: "button" 3526 }, { 3527 name: "volume", 3528 type: "slider" 3529 }, { 3530 name: "divider", 3531 type: "divider" 3532 }, { 3533 name: "fullscreen", 3534 type: "button" 3535 }] 3536 } 3537 } 3538 }; 3539 _utils = a.utils; 3540 _css = _utils.css; 3541 _hide = function(c) { 3542 _css(c, { 3543 display: "none" 3544 }) 3545 }; 3546 _show = function(c) { 3547 _css(c, { 3548 display: "block" 3549 }) 3550 }; 3551 a.html5.controlbar = function(l, V) { 3552 var k = l; 3553 var D = _utils.extend({}, b, k.skin.getComponentSettings("controlbar"), V); 3554 if (D.position == a.html5.view.positions.NONE || typeof a.html5.view.positions[D.position] == "undefined") { 3555 return 3556 } 3557 if (_utils.mapLength(k.skin.getComponentLayout("controlbar")) > 0) { 3558 D.layout = k.skin.getComponentLayout("controlbar") 3559 } 3560 var ac; 3561 var P; 3562 var ab; 3563 var E; 3564 var v = "none"; 3565 var g; 3566 var j; 3567 var ad; 3568 var f; 3569 var e; 3570 var y; 3571 var Q = {}; 3572 var p = false; 3573 var c = {}; 3574 var Y; 3575 var h = false; 3576 var o; 3577 var d; 3578 var S = false; 3579 var G = false; 3580 var W = new a.html5.eventdispatcher(); 3581 _utils.extend(this, W); 3582 3583 function J() { 3584 if (!Y) { 3585 Y = k.skin.getSkinElement("controlbar", "background"); 3586 if (!Y) { 3587 Y = { 3588 width: 0, 3589 height: 0, 3590 src: null 3591 } 3592 } 3593 } 3594 return Y 3595 } 3596 function N() { 3597 ab = 0; 3598 E = 0; 3599 P = 0; 3600 if (!p) { 3601 var ak = { 3602 height: J().height, 3603 backgroundColor: D.backgroundcolor 3604 }; 3605 ac = document.createElement("div"); 3606 ac.id = k.id + "_jwplayer_controlbar"; 3607 _css(ac, ak) 3608 } 3609 var aj = (k.skin.getSkinElement("controlbar", "capLeft")); 3610 var ai = (k.skin.getSkinElement("controlbar", "capRight")); 3611 if (aj) { 3612 x("capLeft", "left", false, ac) 3613 } 3614 var al = { 3615 position: "absolute", 3616 height: J().height, 3617 left: (aj ? aj.width : 0), 3618 zIndex: 0 3619 }; 3620 Z("background", ac, al, "img"); 3621 if (J().src) { 3622 Q.background.src = J().src 3623 } 3624 al.zIndex = 1; 3625 Z("elements", ac, al); 3626 if (ai) { 3627 x("capRight", "right", false, ac) 3628 } 3629 } 3630 this.getDisplayElement = function() { 3631 return ac 3632 }; 3633 this.resize = function(ak, ai) { 3634 _utils.cancelAnimation(ac); 3635 document.getElementById(k.id).onmousemove = A; 3636 e = ak; 3637 y = ai; 3638 if (G != k.jwGetFullscreen()) { 3639 G = k.jwGetFullscreen(); 3640 d = undefined 3641 } 3642 var aj = w(); 3643 A(); 3644 I({ 3645 id: k.id, 3646 duration: ad, 3647 position: j 3648 }); 3649 u({ 3650 id: k.id, 3651 bufferPercent: f 3652 }); 3653 return aj 3654 }; 3655 this.show = function() { 3656 if (h) { 3657 h = false; 3658 _show(ac); 3659 T() 3660 } 3661 }; 3662 this.hide = function() { 3663 if (!h) { 3664 h = true; 3665 _hide(ac); 3666 aa() 3667 } 3668 }; 3669 3670 function q() { 3671 var aj = ["timeSlider", "volumeSlider", "timeSliderRail", "volumeSliderRail"]; 3672 for (var ak in aj) { 3673 var ai = aj[ak]; 3674 if (typeof Q[ai] != "undefined") { 3675 c[ai] = Q[ai].getBoundingClientRect() 3676 } 3677 } 3678 } 3679 function A(ai) { 3680 if (h) { 3681 return 3682 } 3683 if (D.position == a.html5.view.positions.OVER || k.jwGetFullscreen()) { 3684 clearTimeout(o); 3685 switch (k.jwGetState()) { 3686 case a.api.events.state.PAUSED: 3687 case a.api.events.state.IDLE: 3688 if (!D.idlehide || _utils.exists(ai)) { 3689 U() 3690 } 3691 if (D.idlehide) { 3692 o = setTimeout(function() { 3693 z() 3694 }, 2000) 3695 } 3696 break; 3697 default: 3698 if (ai) { 3699 U() 3700 } 3701 o = setTimeout(function() { 3702 z() 3703 }, 2000); 3704 break 3705 } 3706 } 3707 } 3708 function z(ai) { 3709 aa(); 3710 _utils.cancelAnimation(ac); 3711 _utils.fadeTo(ac, 0, 0.1, 1, 0) 3712 } 3713 function U() { 3714 T(); 3715 _utils.cancelAnimation(ac); 3716 _utils.fadeTo(ac, 1, 0, 1, 0) 3717 } 3718 function H(ai) { 3719 return function() { 3720 if (S && d != ai) { 3721 d = ai; 3722 W.sendEvent(ai, { 3723 component: "controlbar", 3724 boundingRect: O() 3725 }) 3726 } 3727 } 3728 } 3729 var T = H(a.api.events.JWPLAYER_COMPONENT_SHOW); 3730 var aa = H(a.api.events.JWPLAYER_COMPONENT_HIDE); 3731 3732 function O() { 3733 if (D.position == a.html5.view.positions.OVER || k.jwGetFullscreen()) { 3734 return _utils.getDimensions(ac) 3735 } else { 3736 return { 3737 x: 0, 3738 y: 0, 3739 width: 0, 3740 height: 0 3741 } 3742 } 3743 } 3744 function Z(am, al, ak, ai) { 3745 var aj; 3746 if (!p) { 3747 if (!ai) { 3748 ai = "div" 3749 } 3750 aj = document.createElement(ai); 3751 Q[am] = aj; 3752 aj.id = ac.id + "_" + am; 3753 al.appendChild(aj) 3754 } else { 3755 aj = document.getElementById(ac.id + "_" + am) 3756 } 3757 if (_utils.exists(ak)) { 3758 _css(aj, ak) 3759 } 3760 return aj 3761 } 3762 function M() { 3763 ah(D.layout.left); 3764 ah(D.layout.right, -1); 3765 ah(D.layout.center) 3766 } 3767 function ah(al, ai) { 3768 var am = al.position == "right" ? "right" : "left"; 3769 var ak = _utils.extend([], al.elements); 3770 if (_utils.exists(ai)) { 3771 ak.reverse() 3772 } 3773 for (var aj = 0; aj < ak.length; aj++) { 3774 C(ak[aj], am) 3775 } 3776 } 3777 function K() { 3778 return P++ 3779 } 3780 function C(am, ao) { 3781 var al, aj, ak, ai, aq; 3782 if (am.type == "divider") { 3783 x("divider" + K(), ao, true, undefined, undefined, am.width, am.element); 3784 return 3785 } 3786 switch (am.name) { 3787 case "play": 3788 x("playButton", ao, false); 3789 x("pauseButton", ao, true); 3790 R("playButton", "jwPlay"); 3791 R("pauseButton", "jwPause"); 3792 break; 3793 case "prev": 3794 x("prevButton", ao, true); 3795 R("prevButton", "jwPlaylistPrev"); 3796 break; 3797 case "stop": 3798 x("stopButton", ao, true); 3799 R("stopButton", "jwStop"); 3800 break; 3801 case "next": 3802 x("nextButton", ao, true); 3803 R("nextButton", "jwPlaylistNext"); 3804 break; 3805 case "elapsed": 3806 x("elapsedText", ao, true); 3807 break; 3808 case "time": 3809 aj = !_utils.exists(k.skin.getSkinElement("controlbar", "timeSliderCapLeft")) ? 0 : k.skin.getSkinElement("controlbar", "timeSliderCapLeft").width; 3810 ak = !_utils.exists(k.skin.getSkinElement("controlbar", "timeSliderCapRight")) ? 0 : k.skin.getSkinElement("controlbar", "timeSliderCapRight").width; 3811 al = ao == "left" ? aj : ak; 3812 ai = k.skin.getSkinElement("controlbar", "timeSliderRail").width + aj + ak; 3813 aq = { 3814 height: J().height, 3815 position: "absolute", 3816 top: 0, 3817 width: ai 3818 }; 3819 aq[ao] = ao == "left" ? ab : E; 3820 var an = Z("timeSlider", Q.elements, aq); 3821 x("timeSliderCapLeft", ao, true, an, ao == "left" ? 0 : al); 3822 x("timeSliderRail", ao, false, an, al); 3823 x("timeSliderBuffer", ao, false, an, al); 3824 x("timeSliderProgress", ao, false, an, al); 3825 x("timeSliderThumb", ao, false, an, al); 3826 x("timeSliderCapRight", ao, true, an, ao == "right" ? 0 : al); 3827 X("time"); 3828 break; 3829 case "fullscreen": 3830 x("fullscreenButton", ao, false); 3831 x("normalscreenButton", ao, true); 3832 R("fullscreenButton", "jwSetFullscreen", true); 3833 R("normalscreenButton", "jwSetFullscreen", false); 3834 break; 3835 case "volume": 3836 aj = !_utils.exists(k.skin.getSkinElement("controlbar", "volumeSliderCapLeft")) ? 0 : k.skin.getSkinElement("controlbar", "volumeSliderCapLeft").width; 3837 ak = !_utils.exists(k.skin.getSkinElement("controlbar", "volumeSliderCapRight")) ? 0 : k.skin.getSkinElement("controlbar", "volumeSliderCapRight").width; 3838 al = ao == "left" ? aj : ak; 3839 ai = k.skin.getSkinElement("controlbar", "volumeSliderRail").width + aj + ak; 3840 aq = { 3841 height: J().height, 3842 position: "absolute", 3843 top: 0, 3844 width: ai 3845 }; 3846 aq[ao] = ao == "left" ? ab : E; 3847 var ap = Z("volumeSlider", Q.elements, aq); 3848 x("volumeSliderCapLeft", ao, true, ap, ao == "left" ? 0 : al); 3849 x("volumeSliderRail", ao, true, ap, al); 3850 x("volumeSliderProgress", ao, false, ap, al); 3851 x("volumeSliderCapRight", ao, true, ap, ao == "right" ? 0 : al); 3852 X("volume"); 3853 break; 3854 case "mute": 3855 x("muteButton", ao, false); 3856 x("unmuteButton", ao, true); 3857 R("muteButton", "jwSetMute", true); 3858 R("unmuteButton", "jwSetMute", false); 3859 break; 3860 case "duration": 3861 x("durationText", ao, true); 3862 break 3863 } 3864 } 3865 function x(al, ao, aj, ar, am, ai, ak) { 3866 if (_utils.exists(k.skin.getSkinElement("controlbar", al)) || al.indexOf("Text") > 0 || al.indexOf("divider") === 0) { 3867 var an = { 3868 height: J().height, 3869 position: "absolute", 3870 display: "block", 3871 top: 0 3872 }; 3873 if ((al.indexOf("next") === 0 || al.indexOf("prev") === 0) && k.jwGetPlaylist().length < 2) { 3874 aj = false;
3875 an.display = "none" 3876 } 3877 var at; 3878 if (al.indexOf("Text") > 0) { 3879 al.innerhtml = "00:00"; 3880 an.font = D.fontsize + "px/" + (J().height + 1) + "px " + D.font; 3881 an.color = D.fontcolor; 3882 an.textAlign = "center"; 3883 an.fontWeight = D.fontweight; 3884 an.fontStyle = D.fontstyle; 3885 an.cursor = "default"; 3886 at = 14 + 3 * D.fontsize 3887 } else { 3888 if (al.indexOf("divider") === 0) { 3889 if (ai) { 3890 if (!isNaN(parseInt(ai))) { 3891 at = parseInt(ai) 3892 } 3893 } else { 3894 if (ak) { 3895 var ap = k.skin.getSkinElement("controlbar", ak); 3896 if (ap) { 3897 an.background = "url(" + ap.src + ") repeat-x center left"; 3898 at = ap.width 3899 } 3900 } else { 3901 an.background = "url(" + k.skin.getSkinElement("controlbar", "divider").src + ") repeat-x center left"; 3902 at = k.skin.getSkinElement("controlbar", "divider").width 3903 } 3904 } 3905 } else { 3906 an.background = "url(" + k.skin.getSkinElement("controlbar", al).src + ") repeat-x center left"; 3907 at = k.skin.getSkinElement("controlbar", al).width 3908 } 3909 } 3910 if (ao == "left") { 3911 an.left = isNaN(am) ? ab : am; 3912 if (aj) { 3913 ab += at 3914 } 3915 } else { 3916 if (ao == "right") { 3917 an.right = isNaN(am) ? E : am; 3918 if (aj) { 3919 E += at 3920 } 3921 } 3922 } 3923 if (_utils.typeOf(ar) == "undefined") { 3924 ar = Q.elements 3925 } 3926 an.width = at; 3927 if (p) { 3928 _css(Q[al], an) 3929 } else { 3930 var aq = Z(al, ar, an); 3931 if (_utils.exists(k.skin.getSkinElement("controlbar", al + "Over"))) { 3932 aq.onmouseover = function(au) { 3933 aq.style.backgroundImage = ["url(", k.skin.getSkinElement("controlbar", al + "Over").src, ")"].join("") 3934 }; 3935 aq.onmouseout = function(au) { 3936 aq.style.backgroundImage = ["url(", k.skin.getSkinElement("controlbar", al).src, ")"].join("") 3937 } 3938 } 3939 } 3940 } 3941 } 3942 function F() { 3943 k.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED, B); 3944 k.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_ITEM, s); 3945 k.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_BUFFER, u); 3946 k.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE, r); 3947 k.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_TIME, I); 3948 k.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_MUTE, ag); 3949 k.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_VOLUME, m); 3950 k.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_COMPLETE, L) 3951 } 3952 function B() { 3953 N(); 3954 M(); 3955 w(); 3956 ae() 3957 } 3958 function s(ai) { 3959 ad = k.jwGetPlaylist()[ai.index].duration; 3960 I({ 3961 id: k.id, 3962 duration: ad, 3963 position: 0 3964 }); 3965 u({ 3966 id: k.id, 3967 bufferProgress: 0 3968 }) 3969 } 3970 function ae() { 3971 I({ 3972 id: k.id, 3973 duration: k.jwGetDuration(), 3974 position: 0 3975 }); 3976 u({ 3977 id: k.id, 3978 bufferProgress: 0 3979 }); 3980 ag({ 3981 id: k.id, 3982 mute: k.jwGetMute() 3983 }); 3984 r({ 3985 id: k.id, 3986 newstate: a.api.events.state.IDLE 3987 }); 3988 m({ 3989 id: k.id, 3990 volume: k.jwGetVolume() 3991 }) 3992 } 3993 function R(ak, al, aj) { 3994 if (p) { 3995 return 3996 } 3997 if (_utils.exists(k.skin.getSkinElement("controlbar", ak))) { 3998 var ai = Q[ak]; 3999 if (_utils.exists(ai)) { 4000 _css(ai, { 4001 cursor: "pointer" 4002 }); 4003 if (al == "fullscreen") { 4004 ai.onmouseup = function(am) { 4005 am.stopPropagation(); 4006 k.jwSetFullscreen(!k.jwGetFullscreen()) 4007 } 4008 } else { 4009 ai.onmouseup = function(am) { 4010 am.stopPropagation(); 4011 if (_utils.exists(aj)) { 4012 k[al](aj) 4013 } else { 4014 k[al]() 4015 } 4016 } 4017 } 4018 } 4019 } 4020 } 4021 function X(ai) { 4022 if (p) { 4023 return 4024 } 4025 var aj = Q[ai + "Slider"]; 4026 _css(Q.elements, { 4027 cursor: "pointer" 4028 }); 4029 _css(aj, { 4030 cursor: "pointer" 4031 }); 4032 aj.onmousedown = function(ak) { 4033 v = ai 4034 }; 4035 aj.onmouseup = function(ak) { 4036 ak.stopPropagation(); 4037 af(ak.pageX) 4038 }; 4039 aj.onmousemove = function(ak) { 4040 if (v == "time") { 4041 g = true;
4042 var al = ak.pageX - c[ai + "Slider"].left - window.pageXOffset; 4043 _css(Q.timeSliderThumb, { 4044 left: al 4045 }) 4046 } 4047 } 4048 } 4049 function af(aj) { 4050 g = false; 4051 var ai; 4052 if (v == "time") { 4053 ai = aj - c.timeSliderRail.left + window.pageXOffset; 4054 var al = ai / c.timeSliderRail.width * ad; 4055 if (al < 0) { 4056 al = 0 4057 } else { 4058 if (al > ad) { 4059 al = ad - 3 4060 } 4061 } 4062 if (k.jwGetState() == a.api.events.state.PAUSED || k.jwGetState() == a.api.events.state.IDLE) { 4063 k.jwPlay() 4064 } 4065 k.jwSeek(al) 4066 } else { 4067 if (v == "volume") { 4068 ai = aj - c.volumeSliderRail.left - window.pageXOffset; 4069 var ak = Math.round(ai / c.volumeSliderRail.width * 100); 4070 if (ak < 0) { 4071 ak = 0 4072 } else { 4073 if (ak > 100) { 4074 ak = 100 4075 } 4076 } 4077 if (k.jwGetMute()) { 4078 k.jwSetMute(false) 4079 } 4080 k.jwSetVolume(ak) 4081 } 4082 } 4083 v = "none" 4084 } 4085 function u(aj) { 4086 if (_utils.exists(aj.bufferPercent)) { 4087 f = aj.bufferPercent 4088 } 4089 if (c.timeSliderRail) { 4090 var ak = c.timeSliderRail.width; 4091 var ai = isNaN(Math.round(ak * f / 100)) ? 0 : Math.round(ak * f / 100); 4092 _css(Q.timeSliderBuffer, { 4093 width: ai 4094 }) 4095 } 4096 } 4097 function ag(ai) { 4098 if (ai.mute) { 4099 _hide(Q.muteButton); 4100 _show(Q.unmuteButton); 4101 _hide(Q.volumeSliderProgress) 4102 } else { 4103 _show(Q.muteButton); 4104 _hide(Q.unmuteButton); 4105 _show(Q.volumeSliderProgress) 4106 } 4107 } 4108 function r(ai) { 4109 if (ai.newstate == a.api.events.state.BUFFERING || ai.newstate == a.api.events.state.PLAYING) { 4110 _show(Q.pauseButton); 4111 _hide(Q.playButton) 4112 } else { 4113 _hide(Q.pauseButton); 4114 _show(Q.playButton) 4115 } 4116 A(); 4117 if (ai.newstate == a.api.events.state.IDLE) { 4118 _hide(Q.timeSliderBuffer); 4119 _hide(Q.timeSliderProgress); 4120 _hide(Q.timeSliderThumb); 4121 I({ 4122 id: k.id, 4123 duration: k.jwGetDuration(), 4124 position: 0 4125 }) 4126 } else { 4127 _show(Q.timeSliderBuffer); 4128 if (ai.newstate != a.api.events.state.BUFFERING) { 4129 _show(Q.timeSliderProgress); 4130 _show(Q.timeSliderThumb) 4131 } 4132 } 4133 } 4134 function L(ai) { 4135 u({ 4136 bufferPercent: 0 4137 }); 4138 I(_utils.extend(ai, { 4139 position: 0, 4140 duration: ad 4141 })) 4142 } 4143 function I(al) { 4144 if (_utils.exists(al.position)) { 4145 j = al.position 4146 } 4147 if (_utils.exists(al.duration)) { 4148 ad = al.duration 4149 } 4150 var aj = (j === ad === 0) ? 0 : j / ad; 4151 var am = c.timeSliderRail; 4152 if (am) { 4153 var ai = isNaN(Math.round(am.width * aj)) ? 0 : Math.round(am.width * aj); 4154 var ak = ai; 4155 if (Q.timeSliderProgress) { 4156 Q.timeSliderProgress.style.width = ai + "px"; 4157 if (!g) { 4158 if (Q.timeSliderThumb) { 4159 Q.timeSliderThumb.style.left = ak + "px" 4160 } 4161 } 4162 } 4163 } 4164 if (Q.durationText) { 4165 Q.durationText.innerHTML = _utils.timeFormat(ad) 4166 } 4167 if (Q.elapsedText) { 4168 Q.elapsedText.innerHTML = _utils.timeFormat(j) 4169 } 4170 } 4171 function n() { 4172 var am, aj; 4173 var ak = document.getElementById(ac.id + "_elements"); 4174 if (!ak) { 4175 return 4176 } 4177 var al = ak.childNodes; 4178 for (var ai in ak.childNodes) { 4179 if (isNaN(parseInt(ai, 10))) { 4180 continue 4181 } 4182 if (al[ai].id.indexOf(ac.id + "_divider") === 0 && aj && aj.id.indexOf(ac.id + "_divider") === 0 && al[ai].style.backgroundImage == aj.style.backgroundImage) { 4183 al[ai].style.display = "none" 4184 } else { 4185 if (al[ai].id.indexOf(ac.id + "_divider") === 0 && am && am.style.display != "none") { 4186 al[ai].style.display = "block" 4187 } 4188 } 4189 if (al[ai].style.display != "none") { 4190 aj = al[ai] 4191 } 4192 am = al[ai] 4193 } 4194 } 4195 function w() { 4196 n(); 4197 if (k.jwGetFullscreen()) { 4198 _show(Q.normalscreenButton); 4199 _hide(Q.fullscreenButton) 4200 } else { 4201 _hide(Q.normalscreenButton); 4202 _show(Q.fullscreenButton) 4203 } 4204 var aj = { 4205 width: e 4206 }; 4207 var ai = {}; 4208 if (D.position == a.html5.view.positions.OVER || k.jwGetFullscreen()) { 4209 aj.left = D.margin; 4210 aj.width -= 2 * D.margin; 4211 aj.top = y - J().height - D.margin; 4212 aj.height = J().height 4213 } 4214 var al = k.skin.getSkinElement("controlbar", "capLeft"); 4215 var ak = k.skin.getSkinElement("controlbar", "capRight"); 4216 ai.left = al ? al.width : 0; 4217 ai.width = aj.width - ai.left - (ak ? ak.width : 0); 4218 var am = !_utils.exists(k.skin.getSkinElement("controlbar", "timeSliderCapLeft")) ? 0 : k.skin.getSkinElement("controlbar", "timeSliderCapLeft").width; 4219 _css(Q.timeSliderRail, { 4220 width: (ai.width - ab - E), 4221 left: am 4222 }); 4223 if (_utils.exists(Q.timeSliderCapRight)) { 4224 _css(Q.timeSliderCapRight, { 4225 left: am + (ai.width - ab - E) 4226 }) 4227 } 4228 _css(ac, aj); 4229 _css(Q.elements, ai); 4230 _css(Q.background, ai); 4231 q(); 4232 return aj 4233 } 4234 function m(am) { 4235 if (_utils.exists(Q.volumeSliderRail)) { 4236 var ak = isNaN(am.volume / 100) ? 1 : am.volume / 100; 4237 var al = _utils.parseDimension(Q.volumeSliderRail.style.width); 4238 var ai = isNaN(Math.round(al * ak)) ? 0 : Math.round(al * ak); 4239 var an = _utils.parseDimension(Q.volumeSliderRail.style.right); 4240 var aj = (!_utils.exists(k.skin.getSkinElement("controlbar", "volumeSliderCapLeft"))) ? 0 : k.skin.getSkinElement("controlbar", "volumeSliderCapLeft").width; 4241 _css(Q.volumeSliderProgress, { 4242 width: ai, 4243 left: aj 4244 }); 4245 if (_utils.exists(Q.volumeSliderCapLeft)) { 4246 _css(Q.volumeSliderCapLeft, { 4247 left: 0 4248 }) 4249 } 4250 } 4251 } 4252 function t() { 4253 N(); 4254 M(); 4255 q(); 4256 p = true; 4257 F(); 4258 D.idlehide = (D.idlehide.toString().toLowerCase() == "true"); 4259 if (D.position == a.html5.view.positions.OVER && D.idlehide) { 4260 ac.style.opacity = 0; 4261 S = true 4262 } else { 4263 setTimeout((function() { 4264 S = true; 4265 T() 4266 }), 1) 4267 } 4268 ae() 4269 } 4270 t(); 4271 return this 4272 } 4273 })(jwplayer); 4274 (function(b) { 4275 var a = ["width", "height", "state", "playlist", "item", "position", "buffer", "duration", "volume", "mute", "fullscreen"]; 4276 var c = b.utils; 4277 b.html5.controller = function(z, w, h, v) { 4278 var C = z; 4279 var G = h; 4280 var g = v; 4281 var o = w; 4282 var J = true; 4283 var e = -1; 4284 var A = c.exists(G.config.debug) && (G.config.debug.toString().toLowerCase() == "console"); 4285 var m = new b.html5.eventdispatcher(o.id, A); 4286 c.extend(this, m); 4287 var E = []; 4288 var d = false;
4289 4290 function r(M) { 4291 if (d) { 4292 m.sendEvent(M.type, M) 4293 } else { 4294 E.push(M) 4295 } 4296 } 4297 function K(M) { 4298 if (!d) { 4299 m.sendEvent(b.api.events.JWPLAYER_READY, M); 4300 if (b.utils.exists(window.playerReady)) { 4301 playerReady(M) 4302 } 4303 if (b.utils.exists(window[h.config.playerReady])) { 4304 window[h.config.playerReady](M) 4305 } 4306 while (E.length > 0) { 4307 var O = E.shift(); 4308 m.sendEvent(O.type, O) 4309 } 4310 if (h.config.autostart && !b.utils.isIOS()) { 4311 t(G.item) 4312 } 4313 while (p.length > 0) { 4314 var N = p.shift(); 4315 x(N.method, N.arguments) 4316 } 4317 d = true 4318 } 4319 } 4320 G.addGlobalListener(r); 4321 G.addEventListener(b.api.events.JWPLAYER_MEDIA_BUFFER_FULL, function() { 4322 G.getMedia().play() 4323 }); 4324 G.addEventListener(b.api.events.JWPLAYER_MEDIA_TIME, function(M) { 4325 if (M.position >= G.playlist[G.item].start && e >= 0) { 4326 G.playlist[G.item].start = e; 4327 e = -1 4328 } 4329 }); 4330 G.addEventListener(b.api.events.JWPLAYER_MEDIA_COMPLETE, function(M) { 4331 setTimeout(s, 25) 4332 }); 4333 4334 function u() { 4335 try { 4336 f(G.item); 4337 if (G.playlist[G.item].levels[0].file.length > 0) { 4338 if (J || G.state == b.api.events.state.IDLE) { 4339 G.getMedia().load(G.playlist[G.item]); 4340 J = false 4341 } else { 4342 if (G.state == b.api.events.state.PAUSED) { 4343 G.getMedia().play() 4344 } 4345 } 4346 } 4347 return true 4348 } catch (M) { 4349 m.sendEvent(b.api.events.JWPLAYER_ERROR, M) 4350 } 4351 return false 4352 } 4353 function I() { 4354 try { 4355 if (G.playlist[G.item].levels[0].file.length > 0) { 4356 switch (G.state) { 4357 case b.api.events.state.PLAYING: 4358 case b.api.events.state.BUFFERING: 4359 G.getMedia().pause(); 4360 break 4361 } 4362 } 4363 return true 4364 } catch (M) { 4365 m.sendEvent(b.api.events.JWPLAYER_ERROR, M) 4366 } 4367 return false 4368 } 4369 function D(M) { 4370 try { 4371 if (G.playlist[G.item].levels[0].file.length > 0) { 4372 if (typeof M != "number") { 4373 M = parseFloat(M) 4374 } 4375 switch (G.state) { 4376 case b.api.events.state.IDLE: 4377 if (e < 0) { 4378 e = G.playlist[G.item].start; 4379 G.playlist[G.item].start = M 4380 } 4381 u(); 4382 break; 4383 case b.api.events.state.PLAYING: 4384 case b.api.events.state.PAUSED: 4385 case b.api.events.state.BUFFERING: 4386 G.seek(M); 4387 break 4388 } 4389 } 4390 return true 4391 } catch (N) { 4392 m.sendEvent(b.api.events.JWPLAYER_ERROR, N) 4393 } 4394 return false 4395 } 4396 function n(M) { 4397 if (!c.exists(M)) { 4398 M = true 4399 } 4400 try { 4401 G.getMedia().stop(M); 4402 return true 4403 } catch (N) { 4404 m.sendEvent(b.api.events.JWPLAYER_ERROR, N) 4405 } 4406 return false 4407 } 4408 function k() { 4409 try { 4410 if (G.playlist[G.item].levels[0].file.length > 0) { 4411 if (G.config.shuffle) { 4412 f(y()) 4413 } else { 4414 if (G.item + 1 == G.playlist.length) { 4415 f(0) 4416 } else { 4417 f(G.item + 1) 4418 } 4419 } 4420 } 4421 if (G.state != b.api.events.state.IDLE) { 4422 var N = G.state; 4423 G.state = b.api.events.state.IDLE; 4424 m.sendEvent(b.api.events.JWPLAYER_PLAYER_STATE, { 4425 oldstate: N, 4426 newstate: b.api.events.state.IDLE 4427 }) 4428 } 4429 u(); 4430 return true 4431 } catch (M) { 4432 m.sendEvent(b.api.events.JWPLAYER_ERROR, M) 4433 } 4434 return false 4435 } 4436 function j() { 4437 try { 4438 if (G.playlist[G.item].levels[0].file.length > 0) { 4439 if (G.config.shuffle) { 4440 f(y()) 4441 } else { 4442 if (G.item === 0) { 4443 f(G.playlist.length - 1) 4444 } else { 4445 f(G.item - 1) 4446 } 4447 } 4448 } 4449 if (G.state != b.api.events.state.IDLE) { 4450 var N = G.state; 4451 G.state = b.api.events.state.IDLE; 4452 m.sendEvent(b.api.events.JWPLAYER_PLAYER_STATE, { 4453 oldstate: N, 4454 newstate: b.api.events.state.IDLE 4455 }) 4456 } 4457 u(); 4458 return true 4459 } catch (M) { 4460 m.sendEvent(b.api.events.JWPLAYER_ERROR, M) 4461 } 4462 return false 4463 } 4464 function y() { 4465 var M = null; 4466 if (G.playlist.length > 1) { 4467 while (!c.exists(M)) { 4468 M = Math.floor(Math.random() * G.playlist.length); 4469 if (M == G.item) { 4470 M = null 4471 } 4472 } 4473 } else { 4474 M = 0 4475 } 4476 return M 4477 } 4478 function t(N) { 4479 if (!G.playlist || !G.playlist[N]) { 4480 return false 4481 } 4482 try { 4483 if (G.playlist[N].levels[0].file.length > 0) { 4484 var O = G.state; 4485 if (O !== b.api.events.state.IDLE) { 4486 if (G.playlist[G.item].provider == G.playlist[N].provider) { 4487 n(false) 4488 } else { 4489 n() 4490 } 4491 } 4492 f(N); 4493 u() 4494 } 4495 return true 4496 } catch (M) { 4497 m.sendEvent(b.api.events.JWPLAYER_ERROR, M) 4498 } 4499 return false 4500 } 4501 function f(M) { 4502 if (!G.playlist[M]) { 4503 return 4504 }
4505 G.setActiveMediaProvider(G.playlist[M]); 4506 if (G.item != M) { 4507 G.item = M; 4508 J = true; 4509 m.sendEvent(b.api.events.JWPLAYER_PLAYLIST_ITEM, { 4510 index: M 4511 }) 4512 } 4513 } 4514 function H(N) { 4515 try { 4516 f(G.item); 4517 var O = G.getMedia(); 4518 switch (typeof(N)) { 4519 case "number": 4520 O.volume(N); 4521 break; 4522 case "string": 4523 O.volume(parseInt(N, 10)); 4524 break 4525 } 4526 return true 4527 } catch (M) { 4528 m.sendEvent(b.api.events.JWPLAYER_ERROR, M) 4529 } 4530 return false 4531 } 4532 function q(N) { 4533 try { 4534 f(G.item); 4535 var O = G.getMedia(); 4536 if (typeof N == "undefined") { 4537 O.mute(!G.mute) 4538 } else { 4539 if (N.toString().toLowerCase() == "true") { 4540 O.mute(true) 4541 } else { 4542 O.mute(false) 4543 } 4544 } 4545 return true 4546 } catch (M) { 4547 m.sendEvent(b.api.events.JWPLAYER_ERROR, M) 4548 } 4549 return false 4550 } 4551 function l(N, M) { 4552 try { 4553 G.width = N; 4554 G.height = M; 4555 g.resize(N, M); 4556 m.sendEvent(b.api.events.JWPLAYER_RESIZE, { 4557 width: G.width, 4558 height: G.height 4559 }); 4560 return true 4561 } catch (O) { 4562 m.sendEvent(b.api.events.JWPLAYER_ERROR, O) 4563 } 4564 return false 4565 } 4566 function B(N) { 4567 try { 4568 if (typeof N == "undefined") { 4569 G.fullscreen = !G.fullscreen; 4570 g.fullscreen(!G.fullscreen) 4571 } else { 4572 if (N.toString().toLowerCase() == "true") { 4573 G.fullscreen = true; 4574 g.fullscreen(true) 4575 } else { 4576 G.fullscreen = false; 4577 g.fullscreen(false) 4578 } 4579 } 4580 m.sendEvent(b.api.events.JWPLAYER_RESIZE, { 4581 width: G.width, 4582 height: G.height 4583 }); 4584 m.sendEvent(b.api.events.JWPLAYER_FULLSCREEN, { 4585 fullscreen: N 4586 }); 4587 return true 4588 } catch (M) { 4589 m.sendEvent(b.api.events.JWPLAYER_ERROR, M) 4590 } 4591 return false 4592 } 4593 function L(M) { 4594 try { 4595 n(); 4596 G.loadPlaylist(M); 4597 f(G.item); 4598 return true 4599 } catch (N) { 4600 m.sendEvent(b.api.events.JWPLAYER_ERROR, N) 4601 } 4602 return false 4603 } 4604 b.html5.controller.repeatoptions = { 4605 LIST: "LIST", 4606 ALWAYS: "ALWAYS", 4607 SINGLE: "SINGLE", 4608 NONE: "NONE" 4609 }; 4610 4611 function s() { 4612 switch (G.config.repeat.toUpperCase()) { 4613 case b.html5.controller.repeatoptions.SINGLE: 4614 u(); 4615 break; 4616 case b.html5.controller.repeatoptions.ALWAYS: 4617 if (G.item == G.playlist.length - 1 && !G.config.shuffle) { 4618 t(0) 4619 } else { 4620 k() 4621 } 4622 break; 4623 case b.html5.controller.repeatoptions.LIST: 4624 if (G.item == G.playlist.length - 1 && !G.config.shuffle) { 4625 n(); 4626 f(0) 4627 } else { 4628 k() 4629 } 4630 break; 4631 default: 4632 n(); 4633 break 4634 } 4635 } 4636 var p = []; 4637 4638 function F(M) { 4639 return function() { 4640 if (d) { 4641 x(M, arguments) 4642 } else { 4643 p.push({ 4644 method: M, 4645 arguments: arguments 4646 }) 4647 } 4648 } 4649 } 4650 function x(O, N) { 4651 var M = []; 4652 for (i = 0; i < N.length; i++) { 4653 M.push(N[i]) 4654 } 4655 O.apply(this, M) 4656 } 4657 this.play = F(u); 4658 this.pause = F(I); 4659 this.seek = F(D); 4660 this.stop = F(n); 4661 this.next = F(k); 4662 this.prev = F(j); 4663 this.item = F(t); 4664 this.setVolume = F(H); 4665 this.setMute = F(q); 4666 this.resize = F(l); 4667 this.setFullscreen = F(B); 4668 this.load = F(L); 4669 this.playerReady = K 4670 } 4671 })(jwplayer); 4672 (function(a) { 4673 a.html5.defaultSkin = function() { 4674 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+AOGFQ
4674RhTJhrEQkGcczfujhg4CQwECDADpTRWU/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/6
46745FF/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>'; 4675 this.xml = null; 4676 if (window.DOMParser) { 4677 parser = new DOMParser(); 4678 this.xml = parser.parseFromString(this.text, "text/xml") 4679 } else { 4680 this.xml = new ActiveXObject("Microsoft.XMLDOM"); 4681 this.xml.async = "false"; 4682 this.xml.loadXML(this.text) 4683 } 4684 return this 4685 } 4686 })(jwplayer); 4687 (function(a) { 4688 _utils = a.utils; 4689 _css = _utils.css; 4690 _hide = function(b) { 4691 _css(b, { 4692 display: "none" 4693 }) 4694 }; 4695 _show = function(b) { 4696 _css(b, { 4697 display: "block" 4698 }) 4699 }; 4700 a.html5.display = function(k, G) { 4701 var j = { 4702 icons: true, 4703 showmute: false 4704 }; 4705 var Q = _utils.extend({}, j, G); 4706 var h = k; 4707 var P = {}; 4708 var e; 4709 var u; 4710 var w; 4711 var N; 4712 var s; 4713 var I; 4714 var A; 4715 var J = !_utils.exists(h.skin.getComponentSettings("display").bufferrotation) ? 15 : parseInt(h.skin.getComponentSettings("display").bufferrotation, 10); 4716 var q = !_utils.exists(h.skin.getComponentSettings("display").bufferinterval) ? 100 : parseInt(h.skin.getComponentSettings("display").bufferinterval, 10); 4717 var z = -1; 4718 var t = ""; 4719 var K = true; 4720 var d; 4721 var g = false;
4722 var n = false; 4723 var H = new a.html5.eventdispatcher(); 4724 _utils.extend(this, H); 4725 var D = { 4726 display: { 4727 style: { 4728 cursor: "pointer", 4729 top: 0, 4730 left: 0, 4731 overflow: "hidden" 4732 }, 4733 click: m 4734 }, 4735 display_icon: { 4736 style: { 4737 cursor: "pointer", 4738 position: "absolute", 4739 top: ((h.skin.getSkinElement("display", "background").height - h.skin.getSkinElement("display", "playIcon").height) / 2), 4740 left: ((h.skin.getSkinElement("display", "background").width - h.skin.getSkinElement("display", "playIcon").width) / 2), 4741 border: 0, 4742 margin: 0, 4743 padding: 0, 4744 zIndex: 3, 4745 display: "none" 4746 } 4747 }, 4748 display_iconBackground: { 4749 style: { 4750 cursor: "pointer", 4751 position: "absolute", 4752 top: ((u - h.skin.getSkinElement("display", "background").height) / 2), 4753 left: ((e - h.skin.getSkinElement("display", "background").width) / 2), 4754 border: 0, 4755 backgroundImage: (["url(", h.skin.getSkinElement("display", "background").src, ")"]).join(""), 4756 width: h.skin.getSkinElement("display", "background").width, 4757 height: h.skin.getSkinElement("display", "background").height, 4758 margin: 0, 4759 padding: 0, 4760 zIndex: 2, 4761 display: "none" 4762 } 4763 }, 4764 display_image: { 4765 style: { 4766 display: "none", 4767 width: e, 4768 height: u, 4769 position: "absolute", 4770 cursor: "pointer", 4771 left: 0, 4772 top: 0, 4773 margin: 0, 4774 padding: 0, 4775 textDecoration: "none", 4776 zIndex: 1 4777 } 4778 }, 4779 display_text: { 4780 style: { 4781 zIndex: 4, 4782 position: "relative", 4783 opacity: 0.8, 4784 backgroundColor: parseInt("000000", 16), 4785 color: parseInt("ffffff", 16), 4786 textAlign: "center", 4787 fontFamily: "Arial,sans-serif", 4788 padding: "0 5px", 4789 fontSize: 14 4790 } 4791 } 4792 }; 4793 h.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE, p); 4794 h.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_MUTE, p); 4795 h.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_ITEM, p); 4796 h.jwAddEventListener(a.api.events.JWPLAYER_ERROR, o); 4797 L(); 4798 4799 function L() { 4800 P.display = C("div", "display"); 4801 P.display_text = C("div", "display_text"); 4802 P.display.appendChild(P.display_text); 4803 P.display_image = C("img", "display_image"); 4804 P.display_image.onerror = function(R) { 4805 _hide(P.display_image) 4806 }; 4807 P.display_image.onload = y; 4808 P.display_icon = C("div", "display_icon"); 4809 P.display_iconBackground = C("div", "display_iconBackground"); 4810 P.display.appendChild(P.display_image); 4811 P.display_iconBackground.appendChild(P.display_icon); 4812 P.display.appendChild(P.display_iconBackground); 4813 f(); 4814 setTimeout((function() { 4815 n = true; 4816 if (Q.icons.toString() == "true") { 4817 F() 4818 } 4819 }), 1) 4820 } 4821 this.getDisplayElement = function() { 4822 return P.display 4823 }; 4824 this.resize = function(S, R) { 4825 _css(P.display, { 4826 width: S, 4827 height: R 4828 }); 4829 _css(P.display_text, { 4830 width: (S - 10), 4831 top: ((R - P.display_text.getBoundingClientRect().height) / 2) 4832 }); 4833 _css(P.display_iconBackground, { 4834 top: ((R - h.skin.getSkinElement("display", "background").height) / 2), 4835 left: ((S - h.skin.getSkinElement("display", "background").width) / 2) 4836 }); 4837 if (e != S || u != R) { 4838 e = S; 4839 u = R; 4840 d = undefined; 4841 F() 4842 } 4843 c(); 4844 p({}) 4845 }; 4846 this.show = function() { 4847 if (g) { 4848 g = false;
4849 r(h.jwGetState()) 4850 } 4851 }; 4852 this.hide = function() { 4853 if (!g) { 4854 B(); 4855 g = true 4856 } 4857 }; 4858 4859 function y(R) { 4860 w = P.display_image.naturalWidth; 4861 N = P.display_image.naturalHeight; 4862 c() 4863 } 4864 function c() { 4865 _utils.stretch(h.jwGetStretching(), P.display_image, e, u, w, N) 4866 } 4867 function C(R, T) { 4868 var S = document.createElement(R); 4869 S.id = h.id + "_jwplayer_" + T; 4870 _css(S, D[T].style); 4871 return S 4872 } 4873 function f() { 4874 for (var R in P) { 4875 if (_utils.exists(D[R].click)) { 4876 P[R].onclick = D[R].click 4877 } 4878 } 4879 } 4880 function m(R) { 4881 if (typeof R.preventDefault != "undefined") { 4882 R.preventDefault() 4883 } else { 4884 R.returnValue = false 4885 } 4886 if (h.jwGetState() != a.api.events.state.PLAYING) { 4887 h.jwPlay() 4888 } else { 4889 h.jwPause() 4890 } 4891 } 4892 function O(R) { 4893 if (A) { 4894 B(); 4895 return 4896 } 4897 P.display_icon.style.backgroundImage = (["url(", h.skin.getSkinElement("display", R).src, ")"]).join(""); 4898 _css(P.display_icon, { 4899 width: h.skin.getSkinElement("display", R).width, 4900 height: h.skin.getSkinElement("display", R).height, 4901 top: (h.skin.getSkinElement("display", "background").height - h.skin.getSkinElement("display", R).height) / 2, 4902 left: (h.skin.getSkinElement("display", "background").width - h.skin.getSkinElement("display", R).width) / 2 4903 }); 4904 b(); 4905 if (_utils.exists(h.skin.getSkinElement("display", R + "Over"))) { 4906 P.display_icon.onmouseover = function(S) { 4907 P.display_icon.style.backgroundImage = ["url(", h.skin.getSkinElement("display", R + "Over").src, ")"].join("") 4908 }; 4909 P.display_icon.onmouseout = function(S) { 4910 P.display_icon.style.backgroundImage = ["url(", h.skin.getSkinElement("display", R).src, ")"].join("") 4911 } 4912 } else { 4913 P.display_icon.onmouseover = null; 4914 P.display_icon.onmouseout = null 4915 } 4916 } 4917 function B() { 4918 if (Q.icons.toString() == "true") { 4919 _hide(P.display_icon); 4920 _hide(P.display_iconBackground); 4921 M() 4922 } 4923 } 4924 function b() { 4925 if (!g && Q.icons.toString() == "true") { 4926 _show(P.display_icon); 4927 _show(P.display_iconBackground); 4928 F() 4929 } 4930 } 4931 function o(R) { 4932 A = true; 4933 B(); 4934 P.display_text.innerHTML = R.error; 4935 _show(P.display_text); 4936 P.display_text.style.top = ((u - P.display_text.getBoundingClientRect().height) / 2) + "px" 4937 } 4938 function E() { 4939 P.display_image.style.display = "none" 4940 } 4941 function p(R) { 4942 if ((R.type == a.api.events.JWPLAYER_PLAYER_STATE || R.type == a.api.events.JWPLAYER_PLAYLIST_ITEM) && A) { 4943 A = false; 4944 _hide(P.display_text) 4945 } 4946 var S = h.jwGetState(); 4947 if (S == t) { 4948 return 4949 } 4950 t = S; 4951 if (z >= 0) { 4952 clearTimeout(z) 4953 } 4954 if (K || h.jwGetState() == a.api.events.state.PLAYING || h.jwGetState() == a.api.events.state.PAUSED) { 4955 r(h.jwGetState()) 4956 } else { 4957 z = setTimeout(l(h.jwGetState()), 500) 4958 } 4959 } 4960 function l(R) { 4961 return (function() { 4962 r(R) 4963 }) 4964 } 4965 function r(R) { 4966 if (_utils.exists(I)) { 4967 clearInterval(I); 4968 I = null; 4969 _utils.animations.rotate(P.display_icon, 0) 4970 } 4971 switch (R) { 4972 case a.api.events.state.BUFFERING: 4973 if (_utils.isIOS()) { 4974 E(); 4975 B() 4976 } else { 4977 if (h.jwGetPlaylist()[h.jwGetItem()].provider == "sound") { 4978 v() 4979 } 4980 s = 0; 4981 I = setInterval(function() { 4982 s += J; 4983 _utils.animations.rotate(P.display_icon, s % 360) 4984 }, q); 4985 O("bufferIcon"); 4986 K = true 4987 } 4988 break; 4989 case a.api.events.state.PAUSED: 4990 if (!_utils.isIOS()) { 4991 if (h.jwGetPlaylist()[h.jwGetItem()].provider != "sound") { 4992 _css(P.display_image, { 4993 background: "transparent no-repeat center center" 4994 }) 4995 } 4996 O("playIcon"); 4997 K = true 4998 } 4999 break; 5000 case a.api.events.state.IDLE: 5001 if (h.jwGetPlaylist()[h.jwGetItem()] && h.jwGetPlaylist()[h.jwGetItem()].image) { 5002 v() 5003 } else { 5004 E() 5005 } 5006 O("playIcon"); 5007 K = true; 5008 break; 5009 default:
5010 if (h.jwGetPlaylist()[h.jwGetItem()] && h.jwGetPlaylist()[h.jwGetItem()].provider == "sound") { 5011 if (_utils.isIOS()) { 5012 E(); 5013 K = false 5014 } else { 5015 v() 5016 } 5017 } else { 5018 E(); 5019 K = false 5020 } 5021 if (h.jwGetMute() && Q.showmute) { 5022 O("muteIcon") 5023 } else { 5024 B() 5025 } 5026 break 5027 } 5028 z = -1 5029 } 5030 function v() { 5031 if (h.jwGetPlaylist()[h.jwGetItem()] && h.jwGetPlaylist()[h.jwGetItem()].image) { 5032 _css(P.display_image, { 5033 display: "block" 5034 }); 5035 P.display_image.src = _utils.getAbsolutePath(h.jwGetPlaylist()[h.jwGetItem()].image) 5036 } 5037 } 5038 function x(R) { 5039 return function() { 5040 if (!n) { 5041 return 5042 } 5043 if (!g && d != R) { 5044 d = R; 5045 H.sendEvent(R, { 5046 component: "display", 5047 boundingRect: _utils.getDimensions(P.display_iconBackground) 5048 }) 5049 } 5050 } 5051 } 5052 var F = x(a.api.events.JWPLAYER_COMPONENT_SHOW); 5053 var M = x(a.api.events.JWPLAYER_COMPONENT_HIDE); 5054 return this 5055 } 5056 })(jwplayer); 5057 (function(a) { 5058 _css = a.utils.css; 5059 a.html5.dock = function(p, u) { 5060 function q() { 5061 return { 5062 align: a.html5.view.positions.RIGHT 5063 } 5064 } 5065 var k = a.utils.extend({}, q(), u); 5066 if (k.align == "FALSE") { 5067 return 5068 } 5069 var f = {}; 5070 var s = []; 5071 var g; 5072 var v; 5073 var d = false; 5074 var t = false; 5075 var e = { 5076 x: 0, 5077 y: 0, 5078 width: 0, 5079 height: 0 5080 }; 5081 var r; 5082 var j = new a.html5.eventdispatcher(); 5083 _utils.extend(this, j); 5084 var m = document.createElement("div"); 5085 m.id = p.id + "_jwplayer_dock"; 5086 p.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE, l); 5087 this.getDisplayElement = function() { 5088 return m 5089 }; 5090 this.setButton = function(A, x, y, z) { 5091 if (!x && f[A]) { 5092 a.utils.arrays.remove(s, A); 5093 m.removeChild(f[A].div); 5094 delete f[A] 5095 } else { 5096 if (x) { 5097 if (!f[A]) { 5098 f[A] = {} 5099 } 5100 f[A].handler = x; 5101 f[A].outGraphic = y; 5102 f[A].overGraphic = z; 5103 if (!f[A].div) { 5104 s.push(A); 5105 f[A].div = document.createElement("div"); 5106 f[A].div.style.position = "relative"; 5107 m.appendChild(f[A].div); 5108 f[A].div.appendChild(document.createElement("img")); 5109 f[A].div.childNodes[0].style.position = "absolute"; 5110 f[A].div.childNodes[0].style.left = 0; 5111 f[A].div.childNodes[0].style.top = 0; 5112 f[A].div.childNodes[0].style.zIndex = 10; 5113 f[A].div.childNodes[0].style.cursor = "pointer"; 5114 f[A].div.appendChild(document.createElement("img")); 5115 f[A].div.childNodes[1].style.position = "absolute"; 5116 f[A].div.childNodes[1].style.left = 0; 5117 f[A].div.childNodes[1].style.top = 0; 5118 if (p.skin.getSkinElement("dock", "button")) { 5119 f[A].div.childNodes[1].src = p.skin.getSkinElement("dock", "button").src 5120 } 5121 f[A].div.childNodes[1].style.zIndex = 9; 5122 f[A].div.childNodes[1].style.cursor = "pointer"; 5123 f[A].div.onmouseover = function() { 5124 if (f[A].overGraphic) { 5125 f[A].div.childNodes[0].src = f[A].overGraphic 5126 } 5127 if (p.skin.getSkinElement("dock", "buttonOver")) { 5128 f[A].div.childNodes[1].src = p.skin.getSkinElement("dock", "buttonOver").src 5129 } 5130 }; 5131 f[A].div.onmouseout = function() { 5132 if (f[A].outGraphic) { 5133 f[A].div.childNodes[0].src = f[A].outGraphic 5134 } 5135 if (p.skin.getSkinElement("dock", "button")) { 5136 f[A].div.childNodes[1].src = p.skin.getSkinElement("dock", "button").src 5137 } 5138 }; 5139 if (f[A].overGraphic) { 5140 f[A].div.childNodes[0].src = f[A].overGraphic 5141 } 5142 if (f[A].outGraphic) { 5143 f[A].div.childNodes[0].src = f[A].outGraphic 5144 } 5145 if (p.skin.getSkinElement("dock", "button")) { 5146 f[A].div.childNodes[1].src = p.skin.getSkinElement("dock", "button").src 5147 } 5148 } 5149 if (x) { 5150 f[A].div.onclick = function(B) { 5151 B.preventDefault(); 5152 a(p.id).callback(A); 5153 if (f[A].overGraphic) { 5154 f[A].div.childNodes[0].src = f[A].overGraphic 5155 } 5156 if (p.skin.getSkinElement("dock", "button")) { 5157 f[A].div.childNodes[1].src = p.skin.getSkinElement("dock", "button").src 5158 } 5159 } 5160 } 5161 } 5162 } 5163 h(g, v) 5164 }; 5165 5166 function h(x, J) { 5167 if (s.length > 0) { 5168 var y = 10; 5169 var I = y; 5170 var F = -1; 5171 var G = p.skin.getSkinElement("dock", "button").height; 5172 var E = p.skin.getSkinElement("dock", "button").width; 5173 var C = x - E - y; 5174 var H, B; 5175 if (k.align == a.html5.view.positions.LEFT) { 5176 F = 1; 5177 C = y 5178 } 5179 for (var z = 0; z < s.length; z++) { 5180 var K = Math.floor(I / J); 5181 if ((I + G + y) > ((K + 1) * J)) { 5182 I = ((K + 1) * J) + y; 5183 K = Math.floor(I / J) 5184 } 5185 var A = f[s[z]].div; 5186 A.style.top = (I % J) + "px"; 5187 A.style.left = (C + (p.skin.getSkinElement("dock", "button").width + y) * K * F) + "px"; 5188 var D = { 5189 x: a.utils.parseDimension(A.style.left), 5190 y: a.utils.parseDimension(A.style.top), 5191 width: E, 5192 height: G 5193 }; 5194 if (!H || (D.x <= H.x && D.y <= H.y)) { 5195 H = D 5196 } 5197 if (!B || (D.x >= B.x && D.y >
5197= B.y)) { 5198 B = D 5199 } 5200 I += p.skin.getSkinElement("dock", "button").height + y 5201 } 5202 e = { 5203 x: H.x, 5204 y: H.y, 5205 width: B.x - H.x + B.width, 5206 height: H.y - B.y + B.height 5207 } 5208 } 5209 if (t != p.jwGetFullscreen() || g != x || v != J) { 5210 g = x; 5211 v = J; 5212 t = p.jwGetFullscreen(); 5213 r = undefined; 5214 setTimeout(n, 1) 5215 } 5216 } 5217 function b(x) { 5218 return function() { 5219 if (!d && r != x && s.length > 0) { 5220 r = x; 5221 j.sendEvent(x, { 5222 component: "dock", 5223 boundingRect: e 5224 }) 5225 } 5226 } 5227 } 5228 function l(x) { 5229 if (a.utils.isIOS()) { 5230 switch (x.newstate) { 5231 case a.api.events.state.IDLE: 5232 o(); 5233 break; 5234 default: 5235 c(); 5236 break 5237 } 5238 } 5239 } 5240 var n = b(a.api.events.JWPLAYER_COMPONENT_SHOW); 5241 var w = b(a.api.events.JWPLAYER_COMPONENT_HIDE); 5242 this.resize = h; 5243 var o = function() { 5244 _css(m, { 5245 display: "block" 5246 }); 5247 if (d) { 5248 d = false; 5249 n() 5250 } 5251 }; 5252 var c = function() { 5253 _css(m, { 5254 display: "none" 5255 }); 5256 if (!d) { 5257 w(); 5258 d = true 5259 } 5260 }; 5261 this.hide = c; 5262 this.show = o; 5263 return this 5264 } 5265 })(jwplayer); 5266 (function(a) { 5267 a.html5.eventdispatcher = function(d, b) { 5268 var c = new a.events.eventdispatcher(b); 5269 a.utils.extend(this, c); 5270 this.sendEvent = function(e, f) { 5271 if (!a.utils.exists(f)) { 5272 f = {} 5273 } 5274 a.utils.extend(f, { 5275 id: d, 5276 version: a.version, 5277 type: e 5278 }); 5279 c.sendEvent(e, f) 5280 } 5281 } 5282 })(jwplayer); 5283 (function(a) { 5284 var b = { 5285 prefix: "http://l.longtailvideo.com/html5/", 5286 file: "logo.png", 5287 link: "http://www.longtailvideo.com/players/jw-flv-player/", 5288 margin: 8, 5289 out: 0.5, 5290 over: 1, 5291 timeout: 5, 5292 hide: true, 5293 position: "bottom-left" 5294 }; 5295 _css = a.utils.css; 5296 a.html5.logo = function(n, r) { 5297 var q = n; 5298 var u; 5299 var d; 5300 var t; 5301 var h = false; 5302 g(); 5303 5304 function g() { 5305 o(); 5306 c(); 5307 l() 5308 } 5309 function o() { 5310 if (b.prefix) { 5311 var v = n.version.split(/\W/).splice(0, 2).join("/"); 5312 if (b.prefix.indexOf(v) < 0) { 5313 b.prefix += v + "/" 5314 } 5315 } 5316 if (r.position == a.html5.view.positions.OVER) { 5317 r.position = b.position 5318 } 5319 d = a.utils.extend({}, b) 5320 } 5321 function c() { 5322 t = document.createElement("img"); 5323 t.id = q.id + "_jwplayer_logo"; 5324 t.style.display = "none"; 5325 t.onload = function(v) { 5326 _css(t, k()); 5327 q.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE, j); 5328 p() 5329 }; 5330 if (!d.file) { 5331 return 5332 } 5333 if (d.file.indexOf("http://") === 0) { 5334 t.src = d.file 5335 } else { 5336 t.src = d.prefix + d.file 5337 } 5338 } 5339 if (!d.file) { 5340 return 5341 } 5342 this.resize = function(w, v) {}; 5343 this.getDisplayElement = function() { 5344 return t 5345 }; 5346 5347 function l() { 5348 if (d.link) { 5349 t.onmouseover = f; 5350 t.onmouseout = p; 5351 t.onclick = s 5352 } else { 5353 this.mouseEnabled = false 5354 } 5355 } 5356 function s(v) { 5357 if (typeof v != "undefined") { 5358 v.stopPropagation() 5359 } 5360 if (!h) { 5361 return 5362 } 5363 q.jwPause(); 5364 q.jwSetFullscreen(false); 5365 if (d.link) { 5366 window.open(d.link, "_top") 5367 } 5368 return 5369 } 5370 function p(v) { 5371 if (d.link && h) { 5372 t.style.opacity = d.out 5373 } 5374 return 5375 } 5376 function f(v) { 5377 if (d.hide.toString() == "true" && h) { 5378 t.style.opacity = d.over 5379 } 5380 return 5381 } 5382 function k() { 5383 var x = { 5384 textDecoration: "none", 5385 position: "absolute", 5386 cursor: "pointer" 5387 }; 5388 x.display = (d.hide.toString() == "true") ? "none" : "block"; 5389 var w = d.position.toLowerCase().split("-"); 5390 for (var v in w) { 5391 x[w[v]] = d.margin 5392 } 5393 return x 5394 } 5395 function m() { 5396 if (d.hide.toString() == "true") { 5397 t.style.display = "block"; 5398 t.style.opacity = 0; 5399 a.utils.fadeTo(t, d.out, 0.1, parseFloat(t.style.opacity)); 5400 u = setTimeout(function() { 5401 e() 5402 }, d.timeout * 1000) 5403 } 5404 h = true 5405 } 5406 function e() { 5407 h = false; 5408 if (d.hide.toString() == "true") { 5409 a.utils.fadeTo(t, 0, 0.1, parseFloat(t.style.opacity)) 5410 } 5411 } 5412 function j(v) { 5413 if (v.newstate == a.api.events.state.BUFFERING) { 5414 clearTimeout(u); 5415 m() 5416 } 5417 } 5418 return this 5419 } 5420 })(jwplayer); 5421 (function(a) { 5422 var c = { 5423 ended: a.api.events.state.IDLE, 5424 playing: a.api.events.state.PLAYING, 5425 pause: a.api.events.state.PAUSED, 5426 buffering: a.api.events.state.BUFFERING 5427 }; 5428 var e = a.utils; 5429 var b = e.css; 5430 var d = e.isIOS(); 5431 a.html5.mediavideo = function(h, s) { 5432 var r = { 5433 abort: n, 5434 canplay: k, 5435 canplaythrough: k, 5436 durationchange: G, 5437 emptied: n, 5438 ended: k, 5439 error: u, 5440 loadeddata: G, 5441 loadedmetadata: G, 5442 loadstart: k, 5443 pause: k, 5444 play: n, 5445 playing: k, 5446 progress: v, 5447 ratechange: n, 5448 seeked: k, 5449 seeking: k, 5450 stalled: k, 5451 suspend: k, 5452 timeupdate: D, 5453 volumechange: n, 5454 waiting: k, 5455 canshowcurrentframe: n, 5456 dataunavailable: n, 5457 empty: n, 5458 load: z, 5459 loadedfirstframe: n 5460 }; 5461 var j = new a.html5.eventdispatcher(); 5462 e.extend(this, j); 5463 var y = h, 5464 l = s, 5465 m, B, A, x, f, H = false, 5466 C, p, q; 5467 o(); 5468 this.load = function(J, K) { 5469 if (typeof K == "undefined") { 5470 K = true 5471 } 5472 x = J; 5473 e.empty(m); 5474 q = 0; 5475 if (J.levels && J.levels.length > 0) { 5476 if (J.levels.length == 1) { 5477 m.src = J.levels[0].file 5478 } else { 5479 if (m.src) { 5480 m.removeAttribute("src") 5481 } 5482 for (var I = 0; I < J.levels.length; I++) { 5483 var L = m.ownerDocument.createElement("source"); 5484 L.src = J.levels[I].file;
5485 m.appendChild(L); 5486 q++ 5487 } 5488 } 5489 } else { 5490 m.src = J.file 5491 } 5492 if (d) { 5493 if (J.image) { 5494 m.poster = J.image 5495 } 5496 m.controls = "controls"; 5497 m.style.display = "block" 5498 } 5499 C = p = A = false; 5500 y.buffer = 0; 5501 if (!e.exists(J.start)) { 5502 J.start = 0 5503 } 5504 y.duration = J.duration; 5505 j.sendEvent(a.api.events.JWPLAYER_MEDIA_LOADED); 5506 if ((!d && J.levels.length == 1) || !H) { 5507 m.load() 5508 } 5509 H = false; 5510 if (K) { 5511 E(a.api.events.state.BUFFERING); 5512 j.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER, { 5513 bufferPercent: 0 5514 }); 5515 this.play() 5516 } 5517 }; 5518 this.play = function() { 5519 if (B != a.api.events.state.PLAYING) { 5520 t(); 5521 if (p) { 5522 E(a.api.events.state.PLAYING) 5523 } else { 5524 E(a.api.events.state.BUFFERING) 5525 } 5526 m.play() 5527 } 5528 }; 5529 this.pause = function() { 5530 m.pause(); 5531 E(a.api.events.state.PAUSED) 5532 }; 5533 this.seek = function(I) { 5534 if (!(y.duration <= 0 || isNaN(y.duration)) && !(y.position <= 0 || isNaN(y.position))) { 5535 m.currentTime = I; 5536 m.play() 5537 } 5538 }; 5539 _stop = this.stop = function(I) { 5540 if (!e.exists(I)) { 5541 I = true 5542 } 5543 g(); 5544 if (I) { 5545 m.style.display = "none"; 5546 p = false; 5547 var J = navigator.userAgent; 5548 if (J.match(/chrome/i)) { 5549 m.src = undefined 5550 } else { 5551 if (J.match(/safari/i)) { 5552 m.removeAttribute("src") 5553 } else { 5554 m.src = "" 5555 } 5556 } 5557 m.removeAttribute("controls"); 5558 m.removeAttribute("poster"); 5559 e.empty(m); 5560 m.load(); 5561 H = true; 5562 if (m.webkitSupportsFullscreen) { 5563 try { 5564 m.webkitExitFullscreen() 5565 } catch (K) {} 5566 } 5567 } 5568 E(a.api.events.state.IDLE) 5569 }; 5570 this.fullscreen = function(I) { 5571 if (I === true) { 5572 this.resize("100%", "100%") 5573 } else { 5574 this.resize(y.config.width, y.config.height) 5575 } 5576 }; 5577 this.resize = function(J, I) { 5578 if (false) { 5579 b(l, { 5580 width: J, 5581 height: I 5582 }) 5583 } 5584 j.sendEvent(a.api.events.JWPLAYER_MEDIA_RESIZE, { 5585 fullscreen: y.fullscreen, 5586 width: J, 5587 hieght: I 5588 }) 5589 }; 5590 this.volume = function(I) { 5591 if (!d) { 5592 m.volume = I / 100; 5593 y.volume = I; 5594 j.sendEvent(a.api.events.JWPLAYER_MEDIA_VOLUME, { 5595 volume: Math.round(I) 5596 }) 5597 } 5598 }; 5599 this.mute = function(I) { 5600 if (!d) { 5601 m.muted = I; 5602 y.mute = I; 5603 j.sendEvent(a.api.events.JWPLAYER_MEDIA_MUTE, { 5604 mute: I 5605 }) 5606 } 5607 }; 5608 this.getDisplayElement = function() { 5609 return m 5610 }; 5611 this.hasChrome = function() { 5612 return false 5613 }; 5614 5615 function o() { 5616 m = document.createElement("video"); 5617 B = a.api.events.state.IDLE; 5618 for (var I in r) { 5619 m.addEventListener(I, function(J) { 5620 if (e.exists(J.target.parentNode)) { 5621 r[J.type](J) 5622 } 5623 }, true) 5624 } 5625 m.setAttribute("x-webkit-airplay", "allow"); 5626 if (l.parentNode) { 5627 l.parentNode.replaceChild(m, l) 5628 } 5629 if (!m.id) { 5630 m.id = l.id 5631 } 5632 } 5633 function E(I) { 5634 if (I == a.api.events.state.PAUSED && B == a.api.events.state.IDLE) { 5635 return 5636 } 5637 if (B != I) { 5638 var J = B; 5639 y.state = B = I; 5640 j.sendEvent(a.api.events.JWPLAYER_PLAYER_STATE, { 5641 oldstate: J, 5642 newstate: I 5643 }) 5644 } 5645 } 5646 function n(I) {} 5647 function v(K) { 5648 var J; 5649 if (e.exists(K) && K.lengthComputable && K.total) { 5650 J = K.loaded / K.total * 100 5651 } else { 5652 if (e.exists(m.buffered) && (m.buffered.length > 0)) { 5653 var I = m.buffered.length - 1; 5654 if (I >= 0) { 5655 J = m.buffered.end(I) / m.duration * 100 5656 } 5657 } 5658 } 5659 if (p === false && B == a.api.events.state.BUFFERING) { 5660 j.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER_FULL); 5661 p = true 5662 } 5663 if (!C) { 5664 if (J == 100) { 5665 C = true 5666 } 5667 if (e.exists(J) && (J > y.buffer)) { 5668 y.buffer = Math.round(J); 5669 j.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER, { 5670 bufferPercent: Math.round(J) 5671 }) 5672 } 5673 } 5674 } 5675 function D(J) { 5676 if (e.exists(J) && e.exists(J.target)) { 5677 if (!isNaN(J.target.duration) && (isNaN(y.duration) || y.duration < 1)) { 5678 if (J.target.duration == Infinity) { 5679 y.duration = 0 5680 } else { 5681 y.duration = Math.round(J.target.duration * 10) / 10 5682 } 5683 } 5684 if (!A && m.readyState > 0) { 5685 m.style.display = "block"; 5686 E(a.api.events.state.PLAYING) 5687 } 5688 if (B == a.api.events.state.PLAYING) { 5689 if (!A && m.readyState > 0) { 5690 A = true; 5691 try { 5692 if (m.currentTime < x.start) { 5693 m.currentTime = x.start 5694 } 5695 } catch (I) {} 5696 m.volume = y.volume / 100; 5697 m.muted = y.mute 5698 } 5699 y.position = y.duration > 0 ? (Math.round(J.target.currentTime * 10) / 10) : 0; 5700 j.sendEvent(a.api.events.JWPLAYER_MEDIA_TIME, { 5701 position: y.position, 5702 duration: y.duration 5703 }); 5704 if (y.position >= y.duration && (y.position > 0 || y.duration >
5704 0)) { 5705 w() 5706 } 5707 } 5708 } 5709 v(J) 5710 } 5711 function z(I) {} 5712 function k(I) { 5713 if (c[I.type]) { 5714 if (I.type == "ended") { 5715 w() 5716 } else { 5717 E(c[I.type]) 5718 } 5719 } 5720 } 5721 function G(I) { 5722 var J = { 5723 height: I.target.videoHeight, 5724 width: I.target.videoWidth, 5725 duration: Math.round(I.target.duration * 10) / 10 5726 }; 5727 if ((y.duration === 0 || isNaN(y.duration)) && I.target.duration != Infinity) { 5728 y.duration = Math.round(I.target.duration * 10) / 10 5729 } 5730 j.sendEvent(a.api.events.JWPLAYER_MEDIA_META, { 5731 metadata: J 5732 }) 5733 } 5734 function u(K) { 5735 if (B == a.api.events.state.IDLE) { 5736 return 5737 } 5738 var J = "There was an error: "; 5739 if ((K.target.error && K.target.tagName.toLowerCase() == "video") || K.target.parentNode.error && K.target.parentNode.tagName.toLowerCase() == "video") { 5740 var I = !e.exists(K.target.error) ? K.target.parentNode.error : K.target.error; 5741 switch (I.code) { 5742 case I.MEDIA_ERR_ABORTED: 5743 J = "You aborted the video playback: "; 5744 break; 5745 case I.MEDIA_ERR_NETWORK: 5746 J = "A network error caused the video download to fail part-way: "; 5747 break; 5748 case I.MEDIA_ERR_DECODE: 5749 J = "The video playback was aborted due to a corruption problem or because the video used features your browser did not support: "; 5750 break; 5751 case I.MEDIA_ERR_SRC_NOT_SUPPORTED: 5752 J = "The video could not be loaded, either because the server or network failed or because the format is not supported: "; 5753 break; 5754 default: 5755 J = "An unknown error occurred: "; 5756 break 5757 } 5758 } else { 5759 if (K.target.tagName.toLowerCase() == "source") { 5760 q--; 5761 if (q > 0) { 5762 return 5763 } 5764 J = "The video could not be loaded, either because the server or network failed or because the format is not supported: " 5765 } else { 5766 e.log("An unknown error occurred. Continuing..."); 5767 return 5768 } 5769 } 5770 _stop(false); 5771 J += F(); 5772 _error = true; 5773 j.sendEvent(a.api.events.JWPLAYER_ERROR, { 5774 error: J 5775 }); 5776 return 5777 } 5778 function F() { 5779 var K = ""; 5780 for (var J in x.levels) { 5781 var I = x.levels[J]; 5782 var L = l.ownerDocument.createElement("source"); 5783 K += a.utils.getAbsolutePath(I.file); 5784 if (J < (x.levels.length - 1)) { 5785 K += ", " 5786 } 5787 } 5788 return K 5789 } 5790 function t() { 5791 if (!e.exists(f)) { 5792 f = setInterval(function() { 5793 v() 5794 }, 100) 5795 } 5796 } 5797 function g() { 5798 clearInterval(f); 5799 f = null 5800 } 5801 function w() { 5802 if (B != a.api.events.state.IDLE) { 5803 _stop(false); 5804 j.sendEvent(a.api.events.JWPLAYER_MEDIA_COMPLETE) 5805 } 5806 } 5807 } 5808 })(jwplayer); 5809 (function(a) { 5810 var c = { 5811 ended: a.api.events.state.IDLE, 5812 playing: a.api.events.state.PLAYING, 5813 pause: a.api.events.state.PAUSED, 5814 buffering: a.api.events.state.BUFFERING 5815 }; 5816 var b = a.utils.css; 5817 a.html5.mediayoutube = function(j, e) { 5818 var f = new a.html5.eventdispatcher(); 5819 a.utils.extend(this, f); 5820 var l = j; 5821 var h = document.getElementById(e.id); 5822 var g = a.api.events.state.IDLE; 5823 var n, m; 5824 5825 function k(p) { 5826 if (g != p) { 5827 var q = g; 5828 l.state = p; 5829 g = p; 5830 f.sendEvent(a.api.events.JWPLAYER_PLAYER_STATE, { 5831 oldstate: q, 5832 newstate: p 5833 }) 5834 } 5835 } 5836 this.getDisplayElement = function() { 5837 return h 5838 }; 5839 this.play = function() { 5840 if (g == a.api.events.state.IDLE) { 5841 f.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER, { 5842 bufferPercent: 100 5843 }); 5844 f.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER_FULL); 5845 k(a.api.events.state.PLAYING) 5846 } else { 5847 if (g == a.api.events.state.PAUSED) { 5848 k(a.api.events.state.PLAYING) 5849 } 5850 } 5851 }; 5852 this.pause = function() { 5853 k(a.api.events.state.PAUSED) 5854 }; 5855 this.seek = function(p) {}; 5856 this.stop = function(p) { 5857 if (!_utils.exists(p)) { 5858 p = true 5859 } 5860 l.position = 0; 5861 k(a.api.events.state.IDLE); 5862 if (p) { 5863 b(h, { 5864 display: "none" 5865 }) 5866 } 5867 }; 5868 this.volume = function(p) { 5869 l.volume = p; 5870 f.sendEvent(a.api.events.JWPLAYER_MEDIA_VOLUME, { 5871 volume: Math.round(p) 5872 }) 5873 }; 5874 this.mute = function(p) { 5875 h.muted = p; 5876 l.mute = p; 5877 f.sendEvent(a.api.events.JWPLAYER_MEDIA_MUTE, { 5878 mute: p 5879 }) 5880 }; 5881 this.resize = function(q, p) { 5882 if (q * p > 0 && n) { 5883 n.width = m.width = q; 5884 n.height = m.height = p 5885 } 5886 f.sendEvent(a.api.events.JWPLAYER_MEDIA_RESIZE, { 5887 fullscreen: l.fullscreen, 5888 width: q, 5889 height: p 5890 }) 5891 }; 5892 this.fullscreen = function(p) { 5893 if (p === true) { 5894 this.resize("100%", "100%") 5895 } else { 5896 this.resize(l.config.width, l.config.height) 5897 } 5898 }; 5899 this.load = function(p) { 5900 o(p); 5901 b(n, { 5902 display: "block" 5903 }); 5904 k(a.api.events.state.BUFFERING); 5905 f.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER, { 5906 bufferPercent: 0 5907 }); 5908 f.sendEvent(a.api.events.JWPLAYER_MEDIA_LOADED); 5909 this.play() 5910 }; 5911 this.hasChrome = function() { 5912 return (g != a.api.events.state.IDLE) 5913 }; 5914 5915 function o(v) { 5916 var s = v.levels[0].file; 5917 s = ["http://www.youtube.com/v/", d(s), "&hl=en_US&
5917fs=1&autoplay=1"].join(""); 5918 n = document.createElement("object"); 5919 n.id = h.id; 5920 n.style.position = "absolute"; 5921 var u = { 5922 movie: s, 5923 allowfullscreen: "true", 5924 allowscriptaccess: "always" 5925 }; 5926 for (var p in u) { 5927 var t = document.createElement("param"); 5928 t.name = p; 5929 t.value = u[p]; 5930 n.appendChild(t) 5931 } 5932 m = document.createElement("embed"); 5933 n.appendChild(m); 5934 var q = { 5935 src: s, 5936 type: "application/x-shockwave-flash", 5937 allowfullscreen: "true", 5938 allowscriptaccess: "always", 5939 width: n.width, 5940 height: n.height 5941 }; 5942 for (var r in q) { 5943 m.setAttribute(r, q[r]) 5944 } 5945 n.appendChild(m); 5946 n.style.zIndex = 2147483000; 5947 if (h != n && h.parentNode) { 5948 h.parentNode.replaceChild(n, h) 5949 } 5950 h = n 5951 } 5952 function d(q) { 5953 var p = q.split(/\?|\#\!/); 5954 var s = ""; 5955 for (var r = 0; r < p.length; r++) { 5956 if (p[r].substr(0, 2) == "v=") { 5957 s = p[r].substr(2) 5958 } 5959 } 5960 if (s == "") { 5961 if (q.indexOf("/v/") >= 0) { 5962 s = q.substr(q.indexOf("/v/") + 3) 5963 } else { 5964 if (q.indexOf("youtu.be") >= 0) { 5965 s = q.substr(q.indexOf("youtu.be/") + 9) 5966 } else { 5967 s = q 5968 } 5969 } 5970 } 5971 if (s.indexOf("?") > -1) { 5972 s = s.substr(0, s.indexOf("?")) 5973 } 5974 if (s.indexOf("&") > -1) { 5975 s = s.substr(0, s.indexOf("&")) 5976 } 5977 return s 5978 } 5979 this.embed = m; 5980 return this 5981 } 5982 })(jwplayer); 5983 (function(jwplayer) { 5984 var _configurableStateVariables = ["width", "height", "start", "duration", "volume", "mute", "fullscreen", "item", "plugins", "stretching"]; 5985 jwplayer.html5.model = function(api, container, options) { 5986 var _api = api; 5987 var _container = container; 5988 var _model = { 5989 id: _container.id, 5990 playlist: [], 5991 state: jwplayer.api.events.state.IDLE, 5992 position: 0, 5993 buffer: 0, 5994 config: { 5995 width: 480, 5996 height: 320, 5997 item: -1, 5998 skin: undefined, 5999 file: undefined, 6000 image: undefined, 6001 start: 0, 6002 duration: 0, 6003 bufferlength: 5, 6004 volume: 90, 6005 mute: false, 6006 fullscreen: false, 6007 repeat: "", 6008 stretching: jwplayer.utils.stretching.UNIFORM, 6009 autostart: false, 6010 debug: undefined, 6011 screencolor: undefined 6012 } 6013 }; 6014 var _media; 6015 var _eventDispatcher = new jwplayer.html5.eventdispatcher(); 6016 var _components = ["display", "logo", "controlbar", "playlist", "dock"]; 6017 jwplayer.utils.extend(_model, _eventDispatcher); 6018 for (var option in options) { 6019 if (typeof options[option] == "string") { 6020 var type = /color$/.test(option) ? "color" : null; 6021 options[option] = jwplayer.utils.typechecker(options[option], type) 6022 } 6023 var config = _model.config; 6024 var path = option.split("."); 6025 for (var edge in path) { 6026 if (edge == path.length - 1) { 6027 config[path[edge]] = options[option] 6028 } else { 6029 if (!jwplayer.utils.exists(config[path[edge]])) { 6030 config[path[edge]] = {} 6031 } 6032 config = config[path[edge]] 6033 } 6034 } 6035 } 6036 for (var index in _configurableStateVariables) { 6037 var configurableStateVariable = _configurableStateVariables[index]; 6038 _model[configurableStateVariable] = _model.config[configurableStateVariable] 6039 } 6040 var pluginorder = _components.concat([]); 6041 if (jwplayer.utils.exists(_model.plugins)) { 6042 if (typeof _model.plugins == "string") { 6043 var userplugins = _model.plugins.split(","); 6044 for (var userplugin in userplugins) { 6045 if (typeof userplugins[userplugin] == "string") { 6046 pluginorder.push(userplugins[userplugin].replace(/^\s+|\s+$/g, "")) 6047 } 6048 } 6049 } 6050 } 6051 if (jwplayer.utils.isIOS()) { 6052 pluginorder = ["display", "logo", "dock", "playlist"]; 6053 if (!jwplayer.utils.exists(_model.config.repeat)) { 6054 _model.config.repeat = "list" 6055 } 6056 } else { 6057 if (_model.config.chromeless) { 6058 pluginorder = ["logo", "dock", "playlist"]; 6059 if (!jwplayer.utils.exists(_model.config.repeat)) { 6060 _model.config.repeat = "list" 6061 } 6062 } 6063 } 6064 _model.plugins = { 6065 order: pluginorder, 6066 config: {}, 6067 object: {} 6068 }; 6069 if (typeof _model.config.components != "undefined") { 6070 for (var component in _model.config.components) { 6071 _model.plugins.config[component] = _model.config.components[component] 6072 } 6073 } 6074 for (var pluginIndex in _model.plugins.order) { 6075 var pluginName = _model.plugins.order[pluginIndex]; 6076 var pluginConfig = !jwplayer.utils.exists(_model.plugins.config[pluginName]) ? {}
6076 : _model.plugins.config[pluginName]; 6077 _model.plugins.config[pluginName] = !jwplayer.utils.exists(_model.plugins.config[pluginName]) ? pluginConfig : jwplayer.utils.extend(_model.plugins.config[pluginName], pluginConfig); 6078 if (!jwplayer.utils.exists(_model.plugins.config[pluginName].position)) { 6079 if (pluginName == "playlist") { 6080 _model.plugins.config[pluginName].position = jwplayer.html5.view.positions.NONE 6081 } else { 6082 _model.plugins.config[pluginName].position = jwplayer.html5.view.positions.OVER 6083 } 6084 } else { 6085 _model.plugins.config[pluginName].position = _model.plugins.config[pluginName].position.toString().toUpperCase() 6086 } 6087 } 6088 if (typeof _model.plugins.config.dock != "undefined") { 6089 if (typeof _model.plugins.config.dock != "object") { 6090 var position = _model.plugins.config.dock.toString().toUpperCase(); 6091 _model.plugins.config.dock = { 6092 position: position 6093 } 6094 } 6095 if (typeof _model.plugins.config.dock.position != "undefined") { 6096 _model.plugins.config.dock.align = _model.plugins.config.dock.position; 6097 _model.plugins.config.dock.position = jwplayer.html5.view.positions.OVER 6098 } 6099 } 6100 function _loadExternal(playlistfile) { 6101 var loader = new jwplayer.html5.playlistloader(); 6102 loader.addEventListener(jwplayer.api.events.JWPLAYER_PLAYLIST_LOADED, function(evt) { 6103 _model.playlist = new jwplayer.html5.playlist(evt); 6104 _loadComplete(true) 6105 }); 6106 loader.addEventListener(jwplayer.api.events.JWPLAYER_ERROR, function(evt) { 6107 _model.playlist = new jwplayer.html5.playlist({ 6108 playlist: [] 6109 }); 6110 _loadComplete(false) 6111 }); 6112 loader.load(playlistfile) 6113 } 6114 function _loadComplete() { 6115 if (_model.config.shuffle) { 6116 _model.item = _getShuffleItem() 6117 } else { 6118 if (_model.config.item >= _model.playlist.length) { 6119 _model.config.item = _model.playlist.length - 1 6120 } else { 6121 if (_model.config.item < 0) { 6122 _model.config.item = 0 6123 } 6124 } 6125 _model.item = _model.config.item 6126 } 6127 _eventDispatcher.sendEvent(jwplayer.api.events.JWPLAYER_PLAYLIST_LOADED, { 6128 playlist: _model.playlist 6129 }); 6130 _eventDispatcher.sendEvent(jwplayer.api.events.JWPLAYER_PLAYLIST_ITEM, { 6131 index: _model.item 6132 }) 6133 } 6134 _model.loadPlaylist = function(arg) { 6135 var input; 6136 if (typeof arg == "string") { 6137 if (arg.indexOf("[") == 0 || arg.indexOf("{") == "0") { 6138 try { 6139 input = eval(arg) 6140 } catch (err) { 6141 input = arg 6142 } 6143 } else { 6144 input = arg 6145 } 6146 } else { 6147 input = arg 6148 } 6149 var config; 6150 switch (jwplayer.utils.typeOf(input)) { 6151 case "object": 6152 config = input; 6153 break; 6154 case "array": 6155 config = { 6156 playlist: input 6157 }; 6158 break; 6159 default: 6160 _loadExternal(input); 6161 return; 6162 break 6163 } 6164 _model.playlist = new jwplayer.html5.playlist(config); 6165 if (jwplayer.utils.extension(_model.playlist[0].file) == "xml") { 6166 _loadExternal(_model.playlist[0].file) 6167 } else { 6168 _loadComplete() 6169 } 6170 }; 6171 6172 function _getShuffleItem() { 6173 var result = null; 6174 if (_model.playlist.length > 1) { 6175 while (!jwplayer.utils.exists(result)) { 6176 result = Math.floor(Math.random() * _model.playlist.length); 6177 if (result == _model.item) { 6178 result = null 6179 } 6180 } 6181 } else { 6182 result = 0 6183 } 6184 return result 6185 } 6186 function forward(evt) { 6187 if (evt.type == jwplayer.api.events.JWPLAYER_MEDIA_LOADED) { 6188 _container = _media.getDisplayElement() 6189 } 6190 _eventDispatcher.sendEvent(evt.type, evt) 6191 } 6192 var _mediaProviders = {}; 6193 _model.setActiveMediaProvider = function(playlistItem) { 6194 if (playlistItem.provider == "audio") { 6195 playlistItem.provider = "sound" 6196 } 6197 var provider = playlistItem.provider; 6198 var current = _media ? _media.getDisplayElement() : null; 6199 if (provider == "sound" || provider == "http" || provider == "") { 6200 provider = "video" 6201 } 6202 if (!jwplayer.utils.exists(_mediaProviders[provider])) { 6203 switch (provider) { 6204 case "video": 6205 _media = new jwplayer.html5.mediavideo(_model, current ? current : _container); 6206 break; 6207 case "youtube": 6208 _media = new jwplayer.html5.mediayoutube(_model, current ? current : _container); 6209 break 6210 } 6211 if (!jwplayer.utils.exists(_media)) { 6212 return false 6213 } 6214 _media.addGlobalListener(forward);
6215 _mediaProviders[provider] = _media 6216 } else { 6217 if (_media != _mediaProviders[provider]) { 6218 if (_media) { 6219 _media.stop() 6220 } 6221 _media = _mediaProviders[provider] 6222 } 6223 } 6224 return true 6225 }; 6226 _model.getMedia = function() { 6227 return _media 6228 }; 6229 _model.seek = function(pos) { 6230 _eventDispatcher.sendEvent(jwplayer.api.events.JWPLAYER_MEDIA_SEEK, { 6231 position: _model.position, 6232 offset: pos 6233 }); 6234 return _media.seek(pos) 6235 }; 6236 _model.setupPlugins = function() { 6237 if (!jwplayer.utils.exists(_model.plugins) || !jwplayer.utils.exists(_model.plugins.order) || _model.plugins.order.length == 0) { 6238 jwplayer.utils.log("No plugins to set up"); 6239 return _model 6240 } 6241 for (var i = 0; i < _model.plugins.order.length; i++) { 6242 try { 6243 var pluginName = _model.plugins.order[i]; 6244 if (jwplayer.utils.exists(jwplayer.html5[pluginName])) { 6245 if (pluginName == "playlist") { 6246 _model.plugins.object[pluginName] = new jwplayer.html5.playlistcomponent(_api, _model.plugins.config[pluginName]) 6247 } else { 6248 _model.plugins.object[pluginName] = new jwplayer.html5[pluginName](_api, _model.plugins.config[pluginName]) 6249 } 6250 } else { 6251 _model.plugins.order.splice(plugin, plugin + 1) 6252 } 6253 if (typeof _model.plugins.object[pluginName].addGlobalListener == "function") { 6254 _model.plugins.object[pluginName].addGlobalListener(forward) 6255 } 6256 } catch (err) { 6257 jwplayer.utils.log("Could not setup " + pluginName) 6258 } 6259 } 6260 }; 6261 return _model 6262 } 6263 })(jwplayer); 6264 (function(a) { 6265 a.html5.playlist = function(b) { 6266 var d = []; 6267 if (b.playlist && b.playlist instanceof Array && b.playlist.length > 0) { 6268 for (var c in b.playlist) { 6269 if (!isNaN(parseInt(c))) { 6270 d.push(new a.html5.playlistitem(b.playlist[c])) 6271 } 6272 } 6273 } else { 6274 d.push(new a.html5.playlistitem(b)) 6275 } 6276 return d 6277 } 6278 })(jwplayer); 6279 (function(a) { 6280 var c = { 6281 size: 180, 6282 position: a.html5.view.positions.NONE, 6283 itemheight: 60, 6284 thumbs: true, 6285 fontcolor: "#000000", 6286 overcolor: "", 6287 activecolor: "", 6288 backgroundcolor: "#f8f8f8", 6289 font: "_sans", 6290 fontsize: "", 6291 fontstyle: "", 6292 fontweight: "" 6293 }; 6294 var b = { 6295 _sans: "Arial, Helvetica, sans-serif", 6296 _serif: "Times, Times New Roman, serif", 6297 _typewriter: "Courier New, Courier, monospace" 6298 }; 6299 _utils = a.utils; 6300 _css = _utils.css; 6301 _hide = function(d) { 6302 _css(d, { 6303 display: "none" 6304 }) 6305 }; 6306 _show = function(d) { 6307 _css(d, { 6308 display: "block" 6309 }) 6310 }; 6311 a.html5.playlistcomponent = function(r, B) { 6312 var w = r; 6313 var e = a.utils.extend({}, c, w.skin.getComponentSettings("playlist"), B); 6314 if (e.position == a.html5.view.positions.NONE || typeof a.html5.view.positions[e.position] == "undefined") { 6315 return 6316 } 6317 var x; 6318 var l; 6319 var C; 6320 var d; 6321 var g; 6322 var f; 6323 var k = -1; 6324 var h = { 6325 background: undefined, 6326 item: undefined, 6327 itemOver: undefined, 6328 itemImage: undefined, 6329 itemActive: undefined 6330 }; 6331 this.getDisplayElement = function() { 6332 return x 6333 }; 6334 this.resize = function(F, D) { 6335 l = F; 6336 C = D; 6337 if (w.jwGetFullscreen()) { 6338 _hide(x) 6339 } else { 6340 var E = { 6341 display: "block", 6342 width: l, 6343 height: C 6344 }; 6345 _css(x, E) 6346 } 6347 }; 6348 this.show = function() { 6349 _show(x) 6350 }; 6351 this.hide = function() { 6352 _hide(x) 6353 }; 6354 6355 function j() { 6356 x = document.createElement("div"); 6357 x.id = w.id + "_jwplayer_playlistcomponent"; 6358 switch (e.position) { 6359 case a.html5.view.positions.RIGHT: 6360 case a.html5.view.positions.LEFT: 6361 x.style.width = e.size + "px"; 6362 break; 6363 case a.html5.view.positions.TOP: 6364 case a.html5.view.positions.BOTTOM: 6365 x.style.height = e.size + "px"; 6366 break 6367 } 6368 A(); 6369 if (h.item) { 6370 e.itemheight = h.item.height 6371 } 6372 x.style.backgroundColor = "#C6C6C6"; 6373 w.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED, s); 6374 w.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_ITEM, u); 6375 w.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE, m) 6376 } 6377 function p() { 6378 var D = document.createElement("ul"); 6379 _css(D, { 6380 width: x.style.width, 6381 minWidth: x.style.width, 6382 height: x.style.height, 6383 backgroundColor: e.backgroundcolor, 6384 backgroundImage: h.background ? "url(" + h.background.src + ")" : "", 6385 color: e.fontcolor, 6386 listStyle: "none", 6387 margin: 0, 6388 padding: 0, 6389 fontFamily: b[e.font] ? b[e.font] : b._sans, 6390 fontSize: (e.fontsize ? e.fontsize : 11) + "px", 6391 fontStyle: e.fontstyle, 6392 fontWeight: e.fontweight, 6393 overflowY: "auto" 6394 }); 6395 return D 6396 } 6397 function y(D) { 6398 return function() { 6399 var E = f.getElementsByClassName("item")[D]; 6400 var F = e.fontcolor; 6401 var G = h.item ? "url(" + h.item.src + ")" : ""; 6402 if (D == w.jwGetPlaylistIndex()) { 6403 if (e.activecolor !== "") { 6404 F = e.activecolor 6405 } 6406 if (h.itemActive) { 6407 G = "url(" + h.itemActive.src + ")" 6408 } 6409 } 6410 _css(E, { 6411 color: e.overcolor !== "" ? e.overcolor : F, 6412 backgroundImage: h.itemOver ? "url(" + h.itemOver.src + ")" : G 6413 }) 6414 } 6415 } 6416 function o(D) { 6417 return function() { 6418 var E = f.getElementsByClassName("item")[D]; 6419 var F = e.fontcolor; 6420 var G = h.item ? "url(" + h.item.src + ")" : ""; 6421 if (D == w.jwGetPlaylistIndex()) { 6422 if (e.activecolor !== "") { 6423 F = e.activecolor 6424 } 6425 if (h.itemActive) { 6426 G = "url(" + h.itemActive.src + ")" 6427 } 6428 } 6429 _css(E, { 6430 color: F, 6431 backgroundImage: G 6432 }) 6433 } 6434 } 6435 function q(I) { 6436 var P = d[I]; 6437 var O = document.createElement("li"); 6438 O.className = "item"; 6439 _css(O, { 6440 height: e.itemheight, 6441 display: "block", 6442 cursor: "pointer", 6443 backgroundImage: h.item ? "url(" + h.item.src + ")" : "", 6444 backgroundSize: "100% " + e.itemheight + "px" 6445 }); 6446 O.onmouseover = y(I); 6447 O.onmouseout = o(I); 6448 var J = document.createElement("div"); 6449 var F = new Image(); 6450 var K = 0; 6451 var L = 0; 6452 var M = 0; 6453 if (v() && (P.image || P["playlist.image"] || h.itemImage)) { 6454 F.className = "image"; 6455 if (h.itemImage) { 6456 K = (e.itemheight - h.itemImage.height) / 2; 6457 L = h.itemImage.width; 6458 M = h.itemImage.height 6459 } else { 6460 L = e.itemheight * 4 / 3; 6461 M = e.itemheight 6462 } 6463 _css(J, { 6464 height: M, 6465 width: L, 6466 "float": "left", 6467 styleFloat: "left", 6468 cssFloat: "left", 6469 margin: "0 5px 0 0", 6470 background: "black", 6471 overflow: "hidden", 6472 margin: K + "px", 6473 position: "relative" 6474 }); 6475 _css(F, { 6476 position: "relative" 6477 }); 6478 J.appendChild(F); 6479 F.onload = function() { 6480 a.utils.stretch(a.utils.stretching.FILL, F, L, M, this.naturalWi
6480dth, this.naturalHeight) 6481 }; 6482 if (P["playlist.image"]) { 6483 F.src = P["playlist.image"] 6484 } else { 6485 if (P.image) { 6486 F.src = P.image 6487 } else { 6488 if (h.itemImage) { 6489 F.src = h.itemImage.src 6490 } 6491 } 6492 } 6493 O.appendChild(J) 6494 } 6495 var E = l - L - K * 2; 6496 if (C < e.itemheight * d.length) { 6497 E -= 15 6498 } 6499 var D = document.createElement("div"); 6500 _css(D, { 6501 position: "relative", 6502 height: "100%", 6503 overflow: "hidden" 6504 }); 6505 var G = document.createElement("span"); 6506 if (P.duration > 0) { 6507 G.className = "duration"; 6508 _css(G, { 6509 fontSize: (e.fontsize ? e.fontsize : 11) + "px", 6510 fontWeight: (e.fontweight ? e.fontweight : "bold"), 6511 width: "40px", 6512 height: e.fontsize ? e.fontsize + 10 : 20, 6513 lineHeight: 24, 6514 "float": "right", 6515 styleFloat: "right", 6516 cssFloat: "right" 6517 }); 6518 G.innerHTML = _utils.timeFormat(P.duration); 6519 D.appendChild(G) 6520 } 6521 var N = document.createElement("span"); 6522 N.className = "title"; 6523 _css(N, { 6524 padding: "5px 5px 0 " + (K ? 0 : "5px"), 6525 height: e.fontsize ? e.fontsize + 10 : 20, 6526 lineHeight: e.fontsize ? e.fontsize + 10 : 20, 6527 overflow: "hidden", 6528 "float": "left", 6529 styleFloat: "left", 6530 cssFloat: "left", 6531 width: ((P.duration > 0) ? E - 50 : E) - 10 + "px", 6532 fontSize: (e.fontsize ? e.fontsize : 13) + "px", 6533 fontWeight: (e.fontweight ? e.fontweight : "bold") 6534 }); 6535 N.innerHTML = P ? P.title : ""; 6536 D.appendChild(N); 6537 if (P.description) { 6538 var H = document.createElement("span"); 6539 H.className = "description"; 6540 _css(H, { 6541 display: "block", 6542 "float": "left", 6543 styleFloat: "left", 6544 cssFloat: "left", 6545 margin: 0, 6546 paddingLeft: N.style.paddingLeft, 6547 paddingRight: N.style.paddingRight, 6548 lineHeight: (e.fontsize ? e.fontsize + 4 : 16) + "px", 6549 overflow: "hidden", 6550 position: "relative" 6551 }); 6552 H.innerHTML = P.description; 6553 D.appendChild(H) 6554 } 6555 O.appendChild(D); 6556 return O 6557 } 6558 function s(E) { 6559 x.innerHTML = ""; 6560 d = w.jwGetPlaylist(); 6561 if (!d) { 6562 return 6563 } 6564 items = []; 6565 f = p(); 6566 for (var F = 0; F < d.length; F++) { 6567 var D = q(F); 6568 D.onclick = z(F); 6569 f.appendChild(D); 6570 items.push(D) 6571 } 6572 k = w.jwGetPlaylistIndex(); 6573 o(k)(); 6574 x.appendChild(f); 6575 if (_utils.isIOS() && window.iScroll) { 6576 f.style.height = e.itemheight * d.length + "px"; 6577 var G = new iScroll(x.id) 6578 } 6579 } 6580 function z(D) { 6581 return function() { 6582 w.jwPlaylistItem(D); 6583 w.jwPlay(true) 6584 } 6585 } 6586 function n() { 6587 f.scrollTop = w.jwGetPlaylistIndex() * e.itemheight 6588 } 6589 function v() { 6590 return e.thumbs.toString().toLowerCase() == "true" 6591 } 6592 function u(D) { 6593 if (k >= 0) { 6594 o(k)(); 6595 k = D.index 6596 } 6597 o(D.index)(); 6598 n() 6599 } 6600 function m() { 6601 if (e.position == a.html5.view.positions.OVER) { 6602 switch (w.jwGetState()) { 6603 case a.api.events.state.IDLE: 6604 _show(x); 6605 break; 6606 default: 6607 _hide(x); 6608 break 6609 } 6610 } 6611 } 6612 function A() { 6613 for (var D in h) { 6614 h[D] = t(D) 6615 } 6616 } 6617 function t(D) { 6618 return w.skin.getSkinElement("playlist", D) 6619 } 6620 j(); 6621 return this 6622 } 6623 })(jwplayer); 6624 (function(b) { 6625 b.html5.playlistitem = function(d) { 6626 var e = { 6627 author: "", 6628 date: "", 6629 description: "", 6630 image: "", 6631 link: "", 6632 mediaid: "", 6633 tags: "", 6634 title: "", 6635 provider: "", 6636 file: "", 6637 streamer: "", 6638 duration: -1, 6639 start: 0, 6640 currentLevel: -1, 6641 levels: [] 6642 }; 6643 var c = b.utils.extend({}, e, d); 6644 if (c.type) { 6645 c.provider = c.type; 6646 delete c.type 6647 } 6648 if (c.levels.length === 0) { 6649 c.levels[0] = new b.html5.playlistitemlevel(c) 6650 } 6651 if (!c.provider) { 6652 c.provider = a(c.levels[0]) 6653 } else { 6654 c.provider = c.provider.toLowerCase() 6655 } 6656 return c 6657 }; 6658 6659 function a(e) { 6660 if (b.utils.isYouTube(e.file)) { 6661 return "youtube" 6662 } else { 6663 var f = b.utils.extension(e.file); 6664 var c; 6665 if (f && b.utils.extensionmap[f]) { 6666 if (f == "m3u8") { 6667 return "video" 6668 } 6669 c = b.utils.extensionmap[f].html5 6670 } else { 6671 if (e.type) { 6672 c = e.type 6673 } 6674 } 6675 if (c) { 6676 var d = c.split("/")[0]; 6677 if (d == "audio") { 6678 return "sound" 6679 } else { 6680 if (d == "video") { 6681 return d 6682 } 6683 } 6684 } 6685 } 6686 return "" 6687 } 6688 })(jwplayer); 6689 (function(a) { 6690 a.html5.playlistitemlevel = function(b) { 6691 var d = { 6692 file: "", 6693 streamer: "", 6694 bitrate: 0, 6695 width: 0 6696 }; 6697 for (var c in d) { 6698 if (a.utils.exists(b[c])) { 6699 d[c] = b[c] 6700 } 6701 } 6702 return d 6703 } 6704 })(jwplayer); 6705 (function(a) { 6706 a.html5.playlistloader = function() { 6707 var c = new a.html5.eventdispatcher(); 6708 a.utils.extend(this, c); 6709 this.load = function(e) { 6710 a.utils.ajax(e, d, b) 6711 }; 6712 6713 function d(g) { 6714 var f = [];
6715 try { 6716 var f = a.utils.parsers.rssparser.parse(g.responseXML.firstChild); 6717 c.sendEvent(a.api.events.JWPLAYER_PLAYLIST_LOADED, { 6718 playlist: new a.html5.playlist({ 6719 playlist: f 6720 }) 6721 }) 6722 } catch (h) { 6723 b("Could not parse the playlist") 6724 } 6725 } 6726 function b(e) { 6727 c.sendEvent(a.api.events.JWPLAYER_ERROR, { 6728 error: e ? e : "could not load playlist for whatever reason. too bad" 6729 }) 6730 } 6731 } 6732 })(jwplayer); 6733 (function(a) { 6734 a.html5.skin = function() { 6735 var b = {}; 6736 var c = false; 6737 this.load = function(d, e) { 6738 new a.html5.skinloader(d, function(f) { 6739 c = true; 6740 b = f; 6741 e() 6742 }, function() { 6743 new a.html5.skinloader("", function(f) { 6744 c = true; 6745 b = f; 6746 e() 6747 }) 6748 }) 6749 }; 6750 this.getSkinElement = function(d, e) { 6751 if (c) { 6752 try { 6753 return b[d].elements[e] 6754 } catch (f) { 6755 a.utils.log("No such skin component / element: ", [d, e]) 6756 } 6757 } 6758 return null 6759 }; 6760 this.getComponentSettings = function(d) { 6761 if (c) { 6762 return b[d].settings 6763 } 6764 return null 6765 }; 6766 this.getComponentLayout = function(d) { 6767 if (c) { 6768 return b[d].layout 6769 } 6770 return null 6771 } 6772 } 6773 })(jwplayer); 6774 (function(a) { 6775 a.html5.skinloader = function(f, p, k) { 6776 var o = {}; 6777 var c = p; 6778 var l = k; 6779 var e = true; 6780 var j; 6781 var n = f; 6782 var s = false; 6783 6784 function m() { 6785 if (typeof n != "string" || n === "") { 6786 d(a.html5.defaultSkin().xml) 6787 } else { 6788 a.utils.ajax(a.utils.getAbsolutePath(n), function(t) { 6789 try { 6790 if (a.utils.exists(t.responseXML)) { 6791 d(t.responseXML); 6792 return 6793 } 6794 } catch (u) { 6795 h() 6796 } 6797 d(a.html5.defaultSkin().xml) 6798 }, function(t) { 6799 d(a.html5.defaultSkin().xml) 6800 }) 6801 } 6802 } 6803 function d(y) { 6804 var E = y.getElementsByTagName("component"); 6805 if (E.length === 0) { 6806 return 6807 } 6808 for (var H = 0; H < E.length; H++) { 6809 var C = E[H].getAttribute("name"); 6810 var B = { 6811 settings: {}, 6812 elements: {}, 6813 layout: {} 6814 }; 6815 o[C] = B; 6816 var G = E[H].getElementsByTagName("elements")[0].getElementsByTagName("element"); 6817 for (var F = 0; F < G.length; F++) { 6818 b(G[F], C) 6819 } 6820 var z = E[H].getElementsByTagName("settings")[0]; 6821 if (z && z.childNodes.length > 0) { 6822 var K = z.getElementsByTagName("setting"); 6823 for (var P = 0; P < K.length; P++) { 6824 var Q = K[P].getAttribute("name"); 6825 var I = K[P].getAttribute("value"); 6826 var x = /color$/.test(Q) ? "color" : null; 6827 o[C].settings[Q] = a.utils.typechecker(I, x) 6828 } 6829 } 6830 var L = E[H].getElementsByTagName("layout")[0]; 6831 if (L && L.childNodes.length > 0) { 6832 var M = L.getElementsByTagName("group"); 6833 for (var w = 0; w < M.length; w++) { 6834 var A = M[w]; 6835 o[C].layout[A.getAttribute("position")] = { 6836 elements: [] 6837 }; 6838 for (var O = 0; O < A.attributes.length; O++) { 6839 var D = A.attributes[O]; 6840 o[C].layout[A.getAttribute("position")][D.name] = D.value 6841 } 6842 var N = A.getElementsByTagName("*"); 6843 for (var v = 0; v < N.length; v++) { 6844 var t = N[v]; 6845 o[C].layout[A.getAttribute("position")].elements.push({ 6846 type: t.tagName 6847 }); 6848 for (var u = 0; u < t.attributes.length; u++) { 6849 var J = t.attributes[u]; 6850 o[C].layout[A.getAttribute("position")].elements[v][J.name] = J.value 6851 } 6852 if (!a.utils.exists(o[C].layout[A.getAttribute("position")].elements[v].name)) { 6853 o[C].layout[A.getAttribute("position")].elements[v].name = t.tagName 6854 } 6855 } 6856 } 6857 } 6858 e = false; 6859 r() 6860 } 6861 } 6862 function r() { 6863 clearInterval(j); 6864 if (!s) { 6865 j = setInterval(function() { 6866 q() 6867 }, 100) 6868 } 6869 } 6870 function b(y, x) { 6871 var w = new Image(); 6872 var t = y.getAttribute("name"); 6873 var v = y.getAttribute("src"); 6874 var A; 6875 if (v.indexOf("data:image/png;base64,") === 0) { 6876 A = v 6877 } else { 6878 var u = a.utils.getAbsolutePath(n); 6879 var z = u.substr(0, u.lastIndexOf("/")); 6880 A = [z, x, v].join("/") 6881 } 6882 o[x].elements[t] = { 6883 height: 0, 6884 width: 0, 6885 src: "", 6886 ready: false, 6887 image: w 6888 }; 6889 w.onload = function(B) { 6890 g(w, t, x) 6891 }; 6892 w.onerror = function(B) { 6893 s = true; 6894 r(); 6895 l() 6896 }; 6897 w.src = A 6898 } 6899 function h() { 6900 for (var u in o) { 6901 var w = o[u]; 6902 for (var t in w.elements) { 6903 var x = w.elements[t]; 6904 var v = x.image; 6905 v.onload = null; 6906 v.onerror = null; 6907 delete x.image; 6908 delete w.elements[t] 6909 } 6910 delete o[u] 6911 } 6912 } 6913 function q() { 6914 for (var t in o) { 6915 if (t != "properties") { 6916 for (var u in o[t].elements) { 6917 if (!o[t].elements[u].ready) { 6918 return 6919 } 6920 } 6921 } 6922 } 6923 if (e === false) { 6924 clearInterval(j); 6925 c(o) 6926 } 6927 } 6928 function g(t, v, u) { 6929 if (o[u] && o[u].elements[v]) { 6930 o[u].elements[v].height = t.height; 6931 o[u].elements[v].width = t.width; 6932 o[u].elements[v].src = t.src; 6933 o[u].elements[v].ready = true; 6934 r() 6935 } else { 6936 a.utils.log("Loaded an image for a missing element: " + u + "." + v) 6937 } 6938 } 6939 m() 6940 } 6941 })(jwplayer); 6942 (function(a) { 6943 a.html5.api = function(c, n) { 6944 var m = {}; 6945 var f = document.createElement("div"); 6946 c.parentNode.replaceChild(f, c); 6947 f.id = c.id; 6948 m.version = a.version; 6949 m.id = f.id; 6950 var l = new a.html5.model(m, f, n); 6951 var j = new a.html5.view(m, f, l); 6952 var k = new a.html5.controller(m, f, l, j); 6953 m.skin = new a.html5.skin(); 6954 m.jwPlay = function(o) { 6955 if (typeof o == "undefined") { 6956 e() 6957 } else { 6958 if (o.toString().toLowerCase() == "true") { 6959 k.play() 6960 } else { 6961 k.pause() 6962 } 6963 } 6964 }; 6965 m.jwPause = function(o) { 6966 if (typeof o == "undefined") { 6967 e() 6968 } else { 6969 if (o.toString().toLowerCase() == "true") { 6970 k.pause() 6971 } else { 6972 k.play() 6973 } 6974 } 6975 }; 6976 6977 function e() { 6978 if (l.state == a.api.events.state.PLAYING || l.state == a.api.events.state.BUFFERING) { 6979 k.pause() 6980 } else { 6981 k.play() 6982 } 6983 } 6984 m.jwStop = k.stop; 6985 m.jwSeek = k.seek; 6986 m.jwPlaylistItem = k.item; 6987 m.jwPlaylistNext = k.next; 6988 m.jwPlaylistPrev = k.prev; 6989 m.jwResize = k.resize; 6990 m.jwLoad = k.load; 6991 6992 function h(o) { 6993 return function() { 6994 return l[o] 6995 } 6996 } 6997 function d(o, q, p) { 6998 return function() { 6999 var r = l.plugins.object[o]; 7000 if (r && r[q] && typeof r[q] == "function") { 7001 r[q].apply(r, p) 7002 } 7003 } 7004 } 7005 m.jwGetItem = h("item"); 7006 m.jwGetPosition = h("position"); 7007 m.jwGetDuration = h("duration"); 7008 m.jwGetBuffer = h("buffer"); 7009 m.jwGetWidth = h("width"); 7010 m.jwGetHeight = h("height"); 7011 m.jwGetFullscreen = h("fullscreen"); 7012 m.jwSetFullscreen = k.setFullscreen; 7013 m.jwGetVolume = h("volume"); 7014 m.jwSetVolume = k.setVolume; 7015 m.jwGetMute = h("mute"); 7016 m.jwSetMute = k.setMute; 7017 m.jwGetStretching = h("stretching"); 7018 m.jwGetState = h("state"); 7019 m.jwGetVersion = function() { 7020 return m.version 7021 }; 7022 m.jwGetPlaylist = function() { 7023 return l.playlist 7024 }; 7025 m.jwGetPlaylistIndex = m.jwGetItem; 7026 m.jwAddEventListener = k.addEventListener; 7027 m.jwRemoveEventListener = k.removeEventListener; 7028 m.jwSendEvent = k.sendEvent; 7029 m.jwDockSetButton = function(r, o, p, q) { 7030 if (l.plugins.object.dock && l.plugins.object.dock.setButton) { 7031 l.plugins.object.dock.setButton(r, o, p, q) 7032 } 7033 }; 7034 m.jwControlbarShow = d("controlbar", "show"); 7035 m.jwControlbarHide = d("controlbar", "hide"); 7036 m.jwDockShow = d("dock", "show"); 7037 m.jwDockHide = d("dock", "hide"); 7038 m.jwDisplayShow = d("display", "show"); 7039 m.jwDisplayHide = d("display", "hide"); 7040 m.jwGetLevel = function() {}; 7041 m.jwGetBandwidth = function() {}; 7042 m.jwGetLockState = function() {}; 7043 m.jwLock = function() {}; 7044 m.jwUnlock = function() {}; 7045 7046 function b() { 7047 if (l.config.playlistfile) { 7048 l.addEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED, g); 7049 l.loadPlaylist(l.config.playlistfile) 7050 } else { 7051 if (typeof l.config.playlist == "string") { 7052 l.addEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED, g); 7053 l.loadPlaylist(l.config.playlist) 7054 } else { 7055 l.loadPlaylist(l.config); 7056 setTimeout(g, 25) 7057 } 7058 } 7059 } 7060 function g(o) { 7061 l.removeEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED, g); 7062 l.setupPlugins(); 7063 j.setup(); 7064 var o = { 7065 id: m.id, 7066 version: m.version 7067 }; 7068 k.playerReady(o) 7069 } 7070 if (l.config.chromeless && !a.utils.isIOS()) { 7071 b() 7072 } else { 7073 m.skin.load(l.config.skin, b) 7074 } 7075 return m 7076 } 7077 })(jwplayer); 7078 7079};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.