[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/lib/flowplayer/ -> flowplayer-3.2.13.js (source)

   1  /*
   2   * flowplayer.js The Flowplayer API
   3   *
   4   * Copyright 2009-2011 Flowplayer Oy
   5   *
   6   * This file is part of Flowplayer.
   7   *
   8   * Flowplayer is free software: you can redistribute it and/or modify
   9   * it under the terms of the GNU General Public License as published by
  10   * the Free Software Foundation, either version 3 of the License, or
  11   * (at your option) any later version.
  12   *
  13   * Flowplayer is distributed in the hope that it will be useful,
  14   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16   * GNU General Public License for more details.
  17   *
  18   * You should have received a copy of the GNU General Public License
  19   * along with Flowplayer.  If not, see <http://www.gnu.org/licenses/>.
  20   *
  21   */
  22  !function () {
  23      function h(p) {
  24          console.log("$f.fireEvent", [].slice.call(p))
  25      }
  26  
  27      function l(r) {
  28          if (!r || typeof r != "object") {
  29              return r
  30          }
  31          var p = new r.constructor();
  32          for (var q in r) {
  33              if (r.hasOwnProperty(q)) {
  34                  p[q] = l(r[q])
  35              }
  36          }
  37          return p
  38      }
  39  
  40      function n(u, r) {
  41          if (!u) {
  42              return
  43          }
  44          var p, q = 0, s = u.length;
  45          if (s === undefined) {
  46              for (p in u) {
  47                  if (r.call(u[p], p, u[p]) === false) {
  48                      break
  49                  }
  50              }
  51          } else {
  52              for (var t = u[0]; q < s && r.call(t, q, t) !== false; t = u[++q]) {
  53              }
  54          }
  55          return u
  56      }
  57  
  58      function c(p) {
  59          return document.getElementById(p)
  60      }
  61  
  62      function j(r, q, p) {
  63          if (typeof q != "object") {
  64              return r
  65          }
  66          if (r && q) {
  67              n(q, function (s, t) {
  68                  if (!p || typeof t != "function") {
  69                      r[s] = t
  70                  }
  71              })
  72          }
  73          return r
  74      }
  75  
  76      function o(t) {
  77          var r = t.indexOf(".");
  78          if (r != -1) {
  79              var q = t.slice(0, r) || "*";
  80              var p = t.slice(r + 1, t.length);
  81              var s = [];
  82              n(document.getElementsByTagName(q), function () {
  83                  if (this.className && this.className.indexOf(p) != -1) {
  84                      s.push(this)
  85                  }
  86              });
  87              return s
  88          }
  89      }
  90  
  91      function g(p) {
  92          p = p || window.event;
  93          if (p.preventDefault) {
  94              p.stopPropagation();
  95              p.preventDefault()
  96          } else {
  97              p.returnValue = false;
  98              p.cancelBubble = true
  99          }
 100          return false
 101      }
 102  
 103      function k(r, p, q) {
 104          r[p] = r[p] || [];
 105          r[p].push(q)
 106      }
 107  
 108      function e(p) {
 109          return p.replace(/&amp;/g, "%26").replace(/&/g, "%26").replace(/=/g, "%3D")
 110      }
 111  
 112      function f() {
 113          return"_" + ("" + Math.random()).slice(2, 10)
 114      }
 115  
 116      var i = function (u, s, t) {
 117          var r = this, q = {}, v = {};
 118          r.index = s;
 119          if (typeof u == "string") {
 120              u = {url: u}
 121          }
 122          j(this, u, true);
 123          n(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","), function () {
 124              var w = "on" + this;
 125              if (w.indexOf("*") != -1) {
 126                  w = w.slice(0, w.length - 1);
 127                  var x = "onBefore" + w.slice(2);
 128                  r[x] = function (y) {
 129                      k(v, x, y);
 130                      return r
 131                  }
 132              }
 133              r[w] = function (y) {
 134                  k(v, w, y);
 135                  return r
 136              };
 137              if (s == -1) {
 138                  if (r[x]) {
 139                      t[x] = r[x]
 140                  }
 141                  if (r[w]) {
 142                      t[w] = r[w]
 143                  }
 144              }
 145          });
 146          j(this, {onCuepoint: function (y, x) {
 147              if (arguments.length == 1) {
 148                  q.embedded = [null, y];
 149                  return r
 150              }
 151              if (typeof y == "number") {
 152                  y = [y]
 153              }
 154              var w = f();
 155              q[w] = [y, x];
 156              if (t.isLoaded()) {
 157                  t._api().fp_addCuepoints(y, s, w)
 158              }
 159              return r
 160          }, update: function (x) {
 161              j(r, x);
 162              if (t.isLoaded()) {
 163                  t._api().fp_updateClip(x, s)
 164              }
 165              var w = t.getConfig();
 166              var y = (s == -1) ? w.clip : w.playlist[s];
 167              j(y, x, true)
 168          }, _fireEvent: function (w, z, x, B) {
 169              if (w == "onLoad") {
 170                  n(q, function (C, D) {
 171                      if (D[0]) {
 172                          t._api().fp_addCuepoints(D[0], s, C)
 173                      }
 174                  });
 175                  return false
 176              }
 177              B = B || r;
 178              if (w == "onCuepoint") {
 179                  var A = q[z];
 180                  if (A) {
 181                      return A[1].call(t, B, x)
 182                  }
 183              }
 184              if (z && "onBeforeBegin,onMetaData,onMetaDataChange,onStart,onUpdate,onResume".indexOf(w) != -1) {
 185                  j(B, z);
 186                  if (z.metaData) {
 187                      if (!B.duration) {
 188                          B.duration = z.metaData.duration
 189                      } else {
 190                          B.fullDuration = z.metaData.duration
 191                      }
 192                  }
 193              }
 194              var y = true;
 195              n(v[w], function () {
 196                  y = this.call(t, B, z, x)
 197              });
 198              return y
 199          }});
 200          if (u.onCuepoint) {
 201              var p = u.onCuepoint;
 202              r.onCuepoint.apply(r, typeof p == "function" ? [p] : p);
 203              delete u.onCuepoint
 204          }
 205          n(u, function (w, x) {
 206              if (typeof x == "function") {
 207                  k(v, w, x);
 208                  delete u[w]
 209              }
 210          });
 211          if (s == -1) {
 212              t.onCuepoint = this.onCuepoint
 213          }
 214      };
 215      var m = function (q, s, r, u) {
 216          var p = this, t = {}, v = false;
 217          if (u) {
 218              j(t, u)
 219          }
 220          n(s, function (w, x) {
 221              if (typeof x == "function") {
 222                  t[w] = x;
 223                  delete s[w]
 224              }
 225          });
 226          j(this, {animate: function (z, A, y) {
 227              if (!z) {
 228                  return p
 229              }
 230              if (typeof A == "function") {
 231                  y = A;
 232                  A = 500
 233              }
 234              if (typeof z == "string") {
 235                  var x = z;
 236                  z = {};
 237                  z[x] = A;
 238                  A = 500
 239              }
 240              if (y) {
 241                  var w = f();
 242                  t[w] = y
 243              }
 244              if (A === undefined) {
 245                  A = 500
 246              }
 247              s = r._api().fp_animate(q, z, A, w);
 248              return p
 249          }, css: function (x, y) {
 250              if (y !== undefined) {
 251                  var w = {};
 252                  w[x] = y;
 253                  x = w
 254              }
 255              s = r._api().fp_css(q, x);
 256              j(p, s);
 257              return p
 258          }, show: function () {
 259              this.display = "block";
 260              r._api().fp_showPlugin(q);
 261              return p
 262          }, hide: function () {
 263              this.display = "none";
 264              r._api().fp_hidePlugin(q);
 265              return p
 266          }, toggle: function () {
 267              this.display = r._api().fp_togglePlugin(q);
 268              return p
 269          }, fadeTo: function (z, y, x) {
 270              if (typeof y == "function") {
 271                  x = y;
 272                  y = 500
 273              }
 274              if (x) {
 275                  var w = f();
 276                  t[w] = x
 277              }
 278              this.display = r._api().fp_fadeTo(q, z, y, w);
 279              this.opacity = z;
 280              return p
 281          }, fadeIn: function (x, w) {
 282              return p.fadeTo(1, x, w)
 283          }, fadeOut: function (x, w) {
 284              return p.fadeTo(0, x, w)
 285          }, getName: function () {
 286              return q
 287          }, getPlayer: function () {
 288              return r
 289          }, _fireEvent: function (x, w, y) {
 290              if (x == "onUpdate") {
 291                  var A = r._api().fp_getPlugin(q);
 292                  if (!A) {
 293                      return
 294                  }
 295                  j(p, A);
 296                  delete p.methods;
 297                  if (!v) {
 298                      n(A.methods, function () {
 299                          var C = "" + this;
 300                          p[C] = function () {
 301                              var D = [].slice.call(arguments);
 302                              var E = r._api().fp_invoke(q, C, D);
 303                              return E === "undefined" || E === undefined ? p : E
 304                          }
 305                      });
 306                      v = true
 307                  }
 308              }
 309              var B = t[x];
 310              if (B) {
 311                  var z = B.apply(p, w);
 312                  if (x.slice(0, 1) == "_") {
 313                      delete t[x]
 314                  }
 315                  return z
 316              }
 317              return p
 318          }})
 319      };
 320  
 321      function b(r, H, u) {
 322          var x = this, w = null, E = false, v, t, G = [], z = {}, y = {}, F, s, q, D, p, B;
 323          j(x, {id: function () {
 324              return F
 325          }, isLoaded: function () {
 326              return(w !== null && w.fp_play !== undefined && !E)
 327          }, getParent: function () {
 328              return r
 329          }, hide: function (I) {
 330              if (I) {
 331                  r.style.height = "0px"
 332              }
 333              if (x.isLoaded()) {
 334                  w.style.height = "0px"
 335              }
 336              return x
 337          }, show: function () {
 338              r.style.height = B + "px";
 339              if (x.isLoaded()) {
 340                  w.style.height = p + "px"
 341              }
 342              return x
 343          }, isHidden: function () {
 344              return x.isLoaded() && parseInt(w.style.height, 10) === 0
 345          }, load: function (K) {
 346              if (!x.isLoaded() && x._fireEvent("onBeforeLoad") !== false) {
 347                  var I = function () {
 348                      if (v && !flashembed.isSupported(H.version)) {
 349                          r.innerHTML = ""
 350                      }
 351                      if (K) {
 352                          K.cached = true;
 353                          k(y, "onLoad", K)
 354                      }
 355                      flashembed(r, H, {config: u})
 356                  };
 357                  var J = 0;
 358                  n(a, function () {
 359                      this.unload(function (L) {
 360                          if (++J == a.length) {
 361                              I()
 362                          }
 363                      })
 364                  })
 365              }
 366              return x
 367          }, unload: function (K) {
 368              if (v.replace(/\s/g, "") !== "") {
 369                  if (x._fireEvent("onBeforeUnload") === false) {
 370                      if (K) {
 371                          K(false)
 372                      }
 373                      return x
 374                  }
 375                  E = true;
 376                  try {
 377                      if (w) {
 378                          if (w.fp_isFullscreen()) {
 379                              w.fp_toggleFullscreen()
 380                          }
 381                          w.fp_close();
 382                          x._fireEvent("onUnload")
 383                      }
 384                  } catch (I) {
 385                  }
 386                  var J = function () {
 387                      w = null;
 388                      r.innerHTML = v;
 389                      E = false;
 390                      if (K) {
 391                          K(true)
 392                      }
 393                  };
 394                  if (/WebKit/i.test(navigator.userAgent) && !/Chrome/i.test(navigator.userAgent)) {
 395                      setTimeout(J, 0)
 396                  } else {
 397                      J()
 398                  }
 399              } else {
 400                  if (K) {
 401                      K(false)
 402                  }
 403              }
 404              return x
 405          }, getClip: function (I) {
 406              if (I === undefined) {
 407                  I = D
 408              }
 409              return G[I]
 410          }, getCommonClip: function () {
 411              return t
 412          }, getPlaylist: function () {
 413              return G
 414          }, getPlugin: function (I) {
 415              var K = z[I];
 416              if (!K && x.isLoaded()) {
 417                  var J = x._api().fp_getPlugin(I);
 418                  if (J) {
 419                      K = new m(I, J, x);
 420                      z[I] = K
 421                  }
 422              }
 423              return K
 424          }, getScreen: function () {
 425              return x.getPlugin("screen")
 426          }, getControls: function () {
 427              return x.getPlugin("controls")._fireEvent("onUpdate")
 428          }, getLogo: function () {
 429              try {
 430                  return x.getPlugin("logo")._fireEvent("onUpdate")
 431              } catch (I) {
 432              }
 433          }, getPlay: function () {
 434              return x.getPlugin("play")._fireEvent("onUpdate")
 435          }, getConfig: function (I) {
 436              return I ? l(u) : u
 437          }, getFlashParams: function () {
 438              return H
 439          }, loadPlugin: function (L, K, N, M) {
 440              if (typeof N == "function") {
 441                  M = N;
 442                  N = {}
 443              }
 444              var J = M ? f() : "_";
 445              x._api().fp_loadPlugin(L, K, N, J);
 446              var I = {};
 447              I[J] = M;
 448              var O = new m(L, null, x, I);
 449              z[L] = O;
 450              return O
 451          }, getState: function () {
 452              return x.isLoaded() ? w.fp_getState() : -1
 453          }, play: function (J, I) {
 454              var K = function () {
 455                  if (J !== undefined) {
 456                      x._api().fp_play(J, I)
 457                  } else {
 458                      x._api().fp_play()
 459                  }
 460              };
 461              if (x.isLoaded()) {
 462                  K()
 463              } else {
 464                  if (E) {
 465                      setTimeout(function () {
 466                          x.play(J, I)
 467                      }, 50)
 468                  } else {
 469                      x.load(function () {
 470                          K()
 471                      })
 472                  }
 473              }
 474              return x
 475          }, getVersion: function () {
 476              var J = "flowplayer.js @VERSION";
 477              if (x.isLoaded()) {
 478                  var I = w.fp_getVersion();
 479                  I.push(J);
 480                  return I
 481              }
 482              return J
 483          }, _api: function () {
 484              if (!x.isLoaded()) {
 485                  throw"Flowplayer " + x.id() + " not loaded when calling an API method"
 486              }
 487              return w
 488          }, setClip: function (I) {
 489              n(I, function (J, K) {
 490                  if (typeof K == "function") {
 491                      k(y, J, K);
 492                      delete I[J]
 493                  } else {
 494                      if (J == "onCuepoint") {
 495                          $f(r).getCommonClip().onCuepoint(I[J][0], I[J][1])
 496                      }
 497                  }
 498              });
 499              x.setPlaylist([I]);
 500              return x
 501          }, getIndex: function () {
 502              return q
 503          }, bufferAnimate: function (I) {
 504              w.fp_bufferAnimate(I === undefined || I);
 505              return x
 506          }, _swfHeight: function () {
 507              return w.clientHeight
 508          }});
 509          n(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","), function () {
 510              var I = "on" + this;
 511              if (I.indexOf("*") != -1) {
 512                  I = I.slice(0, I.length - 1);
 513                  var J = "onBefore" + I.slice(2);
 514                  x[J] = function (K) {
 515                      k(y, J, K);
 516                      return x
 517                  }
 518              }
 519              x[I] = function (K) {
 520                  k(y, I, K);
 521                  return x
 522              }
 523          });
 524          n(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed,setKeyboardShortcutsEnabled,isKeyboardShortcutsEnabled").split(","), function () {
 525              var I = this;
 526              x[I] = function (K, J) {
 527                  if (!x.isLoaded()) {
 528                      return x
 529                  }
 530                  var L = null;
 531                  if (K !== undefined && J !== undefined) {
 532                      L = w["fp_" + I](K, J)
 533                  } else {
 534                      L = (K === undefined) ? w["fp_" + I]() : w["fp_" + I](K)
 535                  }
 536                  return L === "undefined" || L === undefined ? x : L
 537              }
 538          });
 539          x._fireEvent = function (R) {
 540              if (typeof R == "string") {
 541                  R = [R]
 542              }
 543              var S = R[0], P = R[1], N = R[2], M = R[3], L = 0;
 544              if (u.debug) {
 545                  h(R)
 546              }
 547              if (!x.isLoaded() && S == "onLoad" && P == "player") {
 548                  w = w || c(s);
 549                  p = x._swfHeight();
 550                  n(G, function () {
 551                      this._fireEvent("onLoad")
 552                  });
 553                  n(z, function (T, U) {
 554                      U._fireEvent("onUpdate")
 555                  });
 556                  t._fireEvent("onLoad")
 557              }
 558              if (S == "onLoad" && P != "player") {
 559                  return
 560              }
 561              if (S == "onError") {
 562                  if (typeof P == "string" || (typeof P == "number" && typeof N == "number")) {
 563                      P = N;
 564                      N = M
 565                  }
 566              }
 567              if (S == "onContextMenu") {
 568                  n(u.contextMenu[P], function (T, U) {
 569                      U.call(x)
 570                  });
 571                  return
 572              }
 573              if (S == "onPluginEvent" || S == "onBeforePluginEvent") {
 574                  var I = P.name || P;
 575                  var J = z[I];
 576                  if (J) {
 577                      J._fireEvent("onUpdate", P);
 578                      return J._fireEvent(N, R.slice(3))
 579                  }
 580                  return
 581              }
 582              if (S == "onPlaylistReplace") {
 583                  G = [];
 584                  var O = 0;
 585                  n(P, function () {
 586                      G.push(new i(this, O++, x))
 587                  })
 588              }
 589              if (S == "onClipAdd") {
 590                  if (P.isInStream) {
 591                      return
 592                  }
 593                  P = new i(P, N, x);
 594                  G.splice(N, 0, P);
 595                  for (L = N + 1; L < G.length; L++) {
 596                      G[L].index++
 597                  }
 598              }
 599              var Q = true;
 600              if (typeof P == "number" && P < G.length) {
 601                  D = P;
 602                  var K = G[P];
 603                  if (K) {
 604                      Q = K._fireEvent(S, N, M)
 605                  }
 606                  if (!K || Q !== false) {
 607                      Q = t._fireEvent(S, N, M, K)
 608                  }
 609              }
 610              n(y[S], function () {
 611                  Q = this.call(x, P, N);
 612                  if (this.cached) {
 613                      y[S].splice(L, 1)
 614                  }
 615                  if (Q === false) {
 616                      return false
 617                  }
 618                  L++
 619              });
 620              return Q
 621          };
 622          function C() {
 623              r.innerHTML=''; // Moodle hack - we do not want splashscreens, unfortunately there is not switch to disable them
 624              if ($f(r)) {
 625                  $f(r).getParent().innerHTML = "";
 626                  q = $f(r).getIndex();
 627                  a[q] = x
 628              } else {
 629                  a.push(x);
 630                  q = a.length - 1
 631              }
 632              B = parseInt(r.style.height, 10) || r.clientHeight;
 633              F = r.id || "fp" + f();
 634              s = H.id || F + "_api";
 635              H.id = s;
 636              v = r.innerHTML;
 637              if (typeof u == "string") {
 638                  u = {clip: {url: u}}
 639              }
 640              u.playerId = F;
 641              u.clip = u.clip || {};
 642              if (r.getAttribute("href", 2) && !u.clip.url) {
 643                  u.clip.url = r.getAttribute("href", 2)
 644              }
 645              if (u.clip.url) {
 646                  u.clip.url = e(u.clip.url)
 647              }
 648              t = new i(u.clip, -1, x);
 649              u.playlist = u.playlist || [u.clip];
 650              var J = 0;
 651              n(u.playlist, function () {
 652                  var M = this;
 653                  if (typeof M == "object" && M.length) {
 654                      M = {url: "" + M}
 655                  }
 656                  if (M.url) {
 657                      M.url = e(M.url)
 658                  }
 659                  n(u.clip, function (N, O) {
 660                      if (O !== undefined && M[N] === undefined && typeof O != "function") {
 661                          M[N] = O
 662                      }
 663                  });
 664                  u.playlist[J] = M;
 665                  M = new i(M, J, x);
 666                  G.push(M);
 667                  J++
 668              });
 669              n(u, function (M, N) {
 670                  if (typeof N == "function") {
 671                      if (t[M]) {
 672                          t[M](N)
 673                      } else {
 674                          k(y, M, N)
 675                      }
 676                      delete u[M]
 677                  }
 678              });
 679              n(u.plugins, function (M, N) {
 680                  if (N) {
 681                      z[M] = new m(M, N, x)
 682                  }
 683              });
 684              if (!u.plugins || u.plugins.controls === undefined) {
 685                  z.controls = new m("controls", null, x)
 686              }
 687              z.canvas = new m("canvas", null, x);
 688              v = r.innerHTML;
 689              function L(M) {
 690                  if (/iPad|iPhone|iPod/i.test(navigator.userAgent) && !/.flv$/i.test(G[0].url) && !K()) {
 691                      return true
 692                  }
 693                  if (!x.isLoaded() && x._fireEvent("onBeforeClick") !== false) {
 694                      x.load()
 695                  }
 696                  return g(M)
 697              }
 698  
 699              function K() {
 700                  return x.hasiPadSupport && x.hasiPadSupport()
 701              }
 702  
 703              function I() {
 704                  if (v.replace(/\s/g, "") !== "") {
 705                      if (r.addEventListener) {
 706                          r.addEventListener("click", L, false)
 707                      } else {
 708                          if (r.attachEvent) {
 709                              r.attachEvent("onclick", L)
 710                          }
 711                      }
 712                  } else {
 713                      if (r.addEventListener && !K()) {
 714                          r.addEventListener("click", g, false)
 715                      }
 716                      x.load()
 717                  }
 718              }
 719  
 720              setTimeout(I, 0)
 721          }
 722  
 723          if (typeof r == "string") {
 724              var A = c(r);
 725              if (!A) {
 726                  throw"Flowplayer cannot access element: " + r
 727              }
 728              r = A;
 729              C()
 730          } else {
 731              C()
 732          }
 733      }
 734  
 735      var a = [];
 736  
 737      function d(p) {
 738          this.length = p.length;
 739          this.each = function (r) {
 740              n(p, r)
 741          };
 742          this.size = function () {
 743              return p.length
 744          };
 745          var q = this;
 746          for (name in b.prototype) {
 747              q[name] = function () {
 748                  var r = arguments;
 749                  q.each(function () {
 750                      this[name].apply(this, r)
 751                  })
 752              }
 753          }
 754      }
 755  
 756      window.flowplayer = window.$f = function () {
 757          var q = null;
 758          var p = arguments[0];
 759          if(!flashembed.isSupported([6, 65])){return null;} // Moodle hack - we do not want the missing flash hints - we need the original links for accessibility and incompatible browsers
 760          if (!arguments.length) {
 761              n(a, function () {
 762                  if (this.isLoaded()) {
 763                      q = this;
 764                      return false
 765                  }
 766              });
 767              return q || a[0]
 768          }
 769          if (arguments.length == 1) {
 770              if (typeof p == "number") {
 771                  return a[p]
 772              } else {
 773                  if (p == "*") {
 774                      return new d(a)
 775                  }
 776                  n(a, function () {
 777                      if (this.id() == p.id || this.id() == p || this.getParent() == p) {
 778                          q = this;
 779                          return false
 780                      }
 781                  });
 782                  return q
 783              }
 784          }
 785          if (arguments.length > 1) {
 786              var u = arguments[1], r = (arguments.length == 3) ? arguments[2] : {};
 787              if (typeof u == "string") {
 788                  u = {src: u}
 789              }
 790              u = j({bgcolor: "#000000", version: [10, 1], expressInstall: "http://releases.flowplayer.org/swf/expressinstall.swf", cachebusting: false}, u);
 791              if (typeof p == "string") {
 792                  if (p.indexOf(".") != -1) {
 793                      var t = [];
 794                      n(o(p), function () {
 795                          t.push(new b(this, l(u), l(r)))
 796                      });
 797                      return new d(t)
 798                  } else {
 799                      var s = c(p);
 800                      return new b(s !== null ? s : l(p), l(u), l(r))
 801                  }
 802              } else {
 803                  if (p) {
 804                      return new b(p, l(u), l(r))
 805                  }
 806              }
 807          }
 808          return null
 809      };
 810      j(window.$f, {fireEvent: function () {
 811          var q = [].slice.call(arguments);
 812          var r = $f(q[0]);
 813          return r ? r._fireEvent(q.slice(1)) : null
 814      }, addPlugin: function (p, q) {
 815          b.prototype[p] = q;
 816          return $f
 817      }, each: n, extend: j});
 818      if (typeof jQuery == "function") {
 819          jQuery.fn.flowplayer = function (r, q) {
 820              if (!arguments.length || typeof arguments[0] == "number") {
 821                  var p = [];
 822                  this.each(function () {
 823                      var s = $f(this);
 824                      if (s) {
 825                          p.push(s)
 826                      }
 827                  });
 828                  return arguments.length ? p[arguments[0]] : new d(p)
 829              }
 830              return this.each(function () {
 831                  $f(this, l(r), q ? l(q) : {})
 832              })
 833          }
 834      }
 835  }();
 836  !function () {
 837      var h = document.all, j = "http://get.adobe.com/flashplayer", c = typeof jQuery == "function", e = /(\d+)[^\d]+(\d+)[^\d]*(\d*)/, b = {width: "100%", height: "100%", id: "_" + ("" + Math.random()).slice(9), allowfullscreen: true, allowscriptaccess: "always", quality: "high", version: [3, 0], onFail: null, expressInstall: null, w3c: false, cachebusting: false};
 838      if (window.attachEvent) {
 839          window.attachEvent("onbeforeunload", function () {
 840              __flash_unloadHandler = function () {
 841              };
 842              __flash_savedUnloadHandler = function () {
 843              }
 844          })
 845      }
 846      function i(m, l) {
 847          if (l) {
 848              for (var f in l) {
 849                  if (l.hasOwnProperty(f)) {
 850                      m[f] = l[f]
 851                  }
 852              }
 853          }
 854          return m
 855      }
 856  
 857      function a(f, n) {
 858          var m = [];
 859          for (var l in f) {
 860              if (f.hasOwnProperty(l)) {
 861                  m[l] = n(f[l])
 862              }
 863          }
 864          return m
 865      }
 866  
 867      window.flashembed = function (f, m, l) {
 868          if (typeof f == "string") {
 869              f = document.getElementById(f.replace("#", ""))
 870          }
 871          if (!f) {
 872              return
 873          }
 874          if (typeof m == "string") {
 875              m = {src: m}
 876          }
 877          return new d(f, i(i({}, b), m), l)
 878      };
 879      var g = i(window.flashembed, {conf: b, getVersion: function () {
 880          var m, f, o;
 881          try {
 882              o = navigator.plugins["Shockwave Flash"];
 883              if (o[0].enabledPlugin != null) {
 884                  f = o.description.slice(16)
 885              }
 886          } catch (p) {
 887              try {
 888                  m = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
 889                  f = m && m.GetVariable("$version")
 890              } catch (n) {
 891                  try {
 892                      m = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
 893                      f = m && m.GetVariable("$version")
 894                  } catch (l) {
 895                  }
 896              }
 897          }
 898          f = e.exec(f);
 899          return f ? [1 * f[1], 1 * f[(f[1] * 1 > 9 ? 2 : 3)] * 1] : [0, 0]
 900      }, asString: function (l) {
 901          if (l === null || l === undefined) {
 902              return null
 903          }
 904          var f = typeof l;
 905          if (f == "object" && l.push) {
 906              f = "array"
 907          }
 908          switch (f) {
 909              case"string":
 910                  l = l.replace(new RegExp('(["\\\\])', "g"), "\\$1");
 911                  l = l.replace(/^\s?(\d+\.?\d*)%/, "$1pct");
 912                  return'"' + l + '"';
 913              case"array":
 914                  return"[" + a(l,function (o) {
 915                      return g.asString(o)
 916                  }).join(",") + "]";
 917              case"function":
 918                  return'"function()"';
 919              case"object":
 920                  var m = [];
 921                  for (var n in l) {
 922                      if (l.hasOwnProperty(n)) {
 923                          m.push('"' + n + '":' + g.asString(l[n]))
 924                      }
 925                  }
 926                  return"{" + m.join(",") + "}"
 927          }
 928          return String(l).replace(/\s/g, " ").replace(/\'/g, '"')
 929      }, getHTML: function (o, l) {
 930          o = i({}, o);
 931          var n = '<object width="' + o.width + '" height="' + o.height + '" id="' + o.id + '" name="' + o.id + '"';
 932          if (o.cachebusting) {
 933              o.src += ((o.src.indexOf("?") != -1 ? "&" : "?") + Math.random())
 934          }
 935          if (o.w3c || !h) {
 936              n += ' data="' + o.src + '" type="application/x-shockwave-flash"'
 937          } else {
 938              n += ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
 939          }
 940          n += ">";
 941          if (o.w3c || h) {
 942              n += '<param name="movie" value="' + o.src + '" />'
 943          }
 944          o.width = o.height = o.id = o.w3c = o.src = null;
 945          o.onFail = o.version = o.expressInstall = null;
 946          for (var m in o) {
 947              if (o[m]) {
 948                  n += '<param name="' + m + '" value="' + o[m] + '" />'
 949              }
 950          }
 951          var p = "";
 952          if (l) {
 953              for (var f in l) {
 954                  if (l[f]) {
 955                      var q = l[f];
 956                      p += f + "=" + (/function|object/.test(typeof q) ? g.asString(q) : q) + "&"
 957                  }
 958              }
 959              p = p.slice(0, -1);
 960              n += '<param name="flashvars" value=\'' + p + "' />"
 961          }
 962          n += "</object>";
 963          return n
 964      }, isSupported: function (f) {
 965          return k[0] > f[0] || k[0] == f[0] && k[1] >= f[1]
 966      }});
 967      var k = g.getVersion();
 968  
 969      function d(f, n, m) {
 970          if (g.isSupported(n.version)) {
 971              f.innerHTML = g.getHTML(n, m)
 972          } else {
 973              if (n.expressInstall && g.isSupported([6, 65])) {
 974                  f.innerHTML = g.getHTML(i(n, {src: n.expressInstall}), {MMredirectURL: encodeURIComponent(location.href), MMplayerType: "PlugIn", MMdoctitle: document.title})
 975              } else {
 976                  if (!f.innerHTML.replace(/\s/g, "")) {
 977                      f.innerHTML = "<h2>Flash version " + n.version + " or greater is required</h2><h3>" + (k[0] > 0 ? "Your version is " + k : "You have no flash plugin installed") + "</h3>" + (f.tagName == "A" ? "<p>Click here to download latest version</p>" : "<p>Download latest version from <a href='" + j + "'>here</a></p>");
 978                      if (f.tagName == "A" || f.tagName == "DIV") {
 979                          f.onclick = function () {
 980                              location.href = j
 981                          }
 982                      }
 983                  }
 984                  if (n.onFail) {
 985                      var l = n.onFail.call(this);
 986                      if (typeof l == "string") {
 987                          f.innerHTML = l
 988                      }
 989                  }
 990              }
 991          }
 992          if (h) {
 993              window[n.id] = document.getElementById(n.id)
 994          }
 995          i(this, {getRoot: function () {
 996              return f
 997          }, getOptions: function () {
 998              return n
 999          }, getConf: function () {
1000              return m
1001          }, getApi: function () {
1002              return f.firstChild
1003          }})
1004      }
1005  
1006      if (c) {
1007          jQuery.tools = jQuery.tools || {version: "@VERSION"};
1008          jQuery.tools.flashembed = {conf: b};
1009          jQuery.fn.flashembed = function (l, f) {
1010              return this.each(function () {
1011                  $(this).data("flashembed", flashembed(this, l, f))
1012              })
1013          }
1014      }
1015  }();


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1