1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114 |
- /*
- * flowplayer.js The Flowplayer API
- *
- * Copyright 2009-2011 Flowplayer Oy
- *
- * This file is part of Flowplayer.
- *
- * Flowplayer is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Flowplayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Flowplayer. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- !(function() {
- function h(p) {
- console.log('$f.fireEvent', [].slice.call(p));
- }
- function l(r) {
- if (!r || typeof r != 'object') {
- return r;
- }
- var p = new r.constructor();
- for (var q in r) {
- if (r.hasOwnProperty(q)) {
- p[q] = l(r[q]);
- }
- }
- return p;
- }
- function n(u, r) {
- if (!u) {
- return;
- }
- var p,
- q = 0,
- s = u.length;
- if (s === undefined) {
- for (p in u) {
- if (r.call(u[p], p, u[p]) === false) {
- break;
- }
- }
- } else {
- for (var t = u[0]; q < s && r.call(t, q, t) !== false; t = u[++q]) {}
- }
- return u;
- }
- function c(p) {
- return document.getElementById(p);
- }
- function j(r, q, p) {
- if (typeof q != 'object') {
- return r;
- }
- if (r && q) {
- n(q, function(s, t) {
- if (!p || typeof t != 'function') {
- r[s] = t;
- }
- });
- }
- return r;
- }
- function o(t) {
- var r = t.indexOf('.');
- if (r != -1) {
- var q = t.slice(0, r) || '*';
- var p = t.slice(r + 1, t.length);
- var s = [];
- n(document.getElementsByTagName(q), function() {
- if (this.className && this.className.indexOf(p) != -1) {
- s.push(this);
- }
- });
- return s;
- }
- }
- function g(p) {
- p = p || window.event;
- if (p.preventDefault) {
- p.stopPropagation();
- p.preventDefault();
- } else {
- p.returnValue = false;
- p.cancelBubble = true;
- }
- return false;
- }
- function k(r, p, q) {
- r[p] = r[p] || [];
- r[p].push(q);
- }
- function e(p) {
- return p
- .replace(/&/g, '%26')
- .replace(/&/g, '%26')
- .replace(/=/g, '%3D');
- }
- function f() {
- return '_' + ('' + Math.random()).slice(2, 10);
- }
- var i = function(u, s, t) {
- var r = this,
- q = {},
- v = {};
- r.index = s;
- if (typeof u == 'string') {
- u = { url: u };
- }
- j(this, u, true);
- n('Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop'.split(','), function() {
- var w = 'on' + this;
- if (w.indexOf('*') != -1) {
- w = w.slice(0, w.length - 1);
- var x = 'onBefore' + w.slice(2);
- r[x] = function(y) {
- k(v, x, y);
- return r;
- };
- }
- r[w] = function(y) {
- k(v, w, y);
- return r;
- };
- if (s == -1) {
- if (r[x]) {
- t[x] = r[x];
- }
- if (r[w]) {
- t[w] = r[w];
- }
- }
- });
- j(this, {
- onCuepoint: function(y, x) {
- if (arguments.length == 1) {
- q.embedded = [null, y];
- return r;
- }
- if (typeof y == 'number') {
- y = [y];
- }
- var w = f();
- q[w] = [y, x];
- if (t.isLoaded()) {
- t._api().fp_addCuepoints(y, s, w);
- }
- return r;
- },
- update: function(x) {
- j(r, x);
- if (t.isLoaded()) {
- t._api().fp_updateClip(x, s);
- }
- var w = t.getConfig();
- var y = s == -1 ? w.clip : w.playlist[s];
- j(y, x, true);
- },
- _fireEvent: function(w, z, x, B) {
- if (w == 'onLoad') {
- n(q, function(C, D) {
- if (D[0]) {
- t._api().fp_addCuepoints(D[0], s, C);
- }
- });
- return false;
- }
- B = B || r;
- if (w == 'onCuepoint') {
- var A = q[z];
- if (A) {
- return A[1].call(t, B, x);
- }
- }
- if (z && 'onBeforeBegin,onMetaData,onMetaDataChange,onStart,onUpdate,onResume'.indexOf(w) != -1) {
- j(B, z);
- if (z.metaData) {
- if (!B.duration) {
- B.duration = z.metaData.duration;
- } else {
- B.fullDuration = z.metaData.duration;
- }
- }
- }
- var y = true;
- n(v[w], function() {
- y = this.call(t, B, z, x);
- });
- return y;
- },
- });
- if (u.onCuepoint) {
- var p = u.onCuepoint;
- r.onCuepoint.apply(r, typeof p == 'function' ? [p] : p);
- delete u.onCuepoint;
- }
- n(u, function(w, x) {
- if (typeof x == 'function') {
- k(v, w, x);
- delete u[w];
- }
- });
- if (s == -1) {
- t.onCuepoint = this.onCuepoint;
- }
- };
- var m = function(q, s, r, u) {
- var p = this,
- t = {},
- v = false;
- if (u) {
- j(t, u);
- }
- n(s, function(w, x) {
- if (typeof x == 'function') {
- t[w] = x;
- delete s[w];
- }
- });
- j(this, {
- animate: function(z, A, y) {
- if (!z) {
- return p;
- }
- if (typeof A == 'function') {
- y = A;
- A = 500;
- }
- if (typeof z == 'string') {
- var x = z;
- z = {};
- z[x] = A;
- A = 500;
- }
- if (y) {
- var w = f();
- t[w] = y;
- }
- if (A === undefined) {
- A = 500;
- }
- s = r._api().fp_animate(q, z, A, w);
- return p;
- },
- css: function(x, y) {
- if (y !== undefined) {
- var w = {};
- w[x] = y;
- x = w;
- }
- s = r._api().fp_css(q, x);
- j(p, s);
- return p;
- },
- show: function() {
- this.display = 'block';
- r._api().fp_showPlugin(q);
- return p;
- },
- hide: function() {
- this.display = 'none';
- r._api().fp_hidePlugin(q);
- return p;
- },
- toggle: function() {
- this.display = r._api().fp_togglePlugin(q);
- return p;
- },
- fadeTo: function(z, y, x) {
- if (typeof y == 'function') {
- x = y;
- y = 500;
- }
- if (x) {
- var w = f();
- t[w] = x;
- }
- this.display = r._api().fp_fadeTo(q, z, y, w);
- this.opacity = z;
- return p;
- },
- fadeIn: function(x, w) {
- return p.fadeTo(1, x, w);
- },
- fadeOut: function(x, w) {
- return p.fadeTo(0, x, w);
- },
- getName: function() {
- return q;
- },
- getPlayer: function() {
- return r;
- },
- _fireEvent: function(x, w, y) {
- if (x == 'onUpdate') {
- var A = r._api().fp_getPlugin(q);
- if (!A) {
- return;
- }
- j(p, A);
- delete p.methods;
- if (!v) {
- n(A.methods, function() {
- var C = '' + this;
- p[C] = function() {
- var D = [].slice.call(arguments);
- var E = r._api().fp_invoke(q, C, D);
- return E === 'undefined' || E === undefined ? p : E;
- };
- });
- v = true;
- }
- }
- var B = t[x];
- if (B) {
- var z = B.apply(p, w);
- if (x.slice(0, 1) == '_') {
- delete t[x];
- }
- return z;
- }
- return p;
- },
- });
- };
- function b(r, H, u) {
- var x = this,
- w = null,
- E = false,
- v,
- t,
- G = [],
- z = {},
- y = {},
- F,
- s,
- q,
- D,
- p,
- B;
- j(x, {
- id: function() {
- return F;
- },
- isLoaded: function() {
- return w !== null && w.fp_play !== undefined && !E;
- },
- getParent: function() {
- return r;
- },
- hide: function(I) {
- if (I) {
- r.style.height = '0px';
- }
- if (x.isLoaded()) {
- w.style.height = '0px';
- }
- return x;
- },
- show: function() {
- r.style.height = B + 'px';
- if (x.isLoaded()) {
- w.style.height = p + 'px';
- }
- return x;
- },
- isHidden: function() {
- return x.isLoaded() && parseInt(w.style.height, 10) === 0;
- },
- load: function(K) {
- if (!x.isLoaded() && x._fireEvent('onBeforeLoad') !== false) {
- var I = function() {
- if (v && !flashembed.isSupported(H.version)) {
- r.innerHTML = '';
- }
- if (K) {
- K.cached = true;
- k(y, 'onLoad', K);
- }
- flashembed(r, H, { config: u });
- };
- var J = 0;
- n(a, function() {
- this.unload(function(L) {
- if (++J == a.length) {
- I();
- }
- });
- });
- }
- return x;
- },
- unload: function(K) {
- if (v.replace(/\s/g, '') !== '') {
- if (x._fireEvent('onBeforeUnload') === false) {
- if (K) {
- K(false);
- }
- return x;
- }
- E = true;
- try {
- if (w) {
- if (w.fp_isFullscreen()) {
- w.fp_toggleFullscreen();
- }
- w.fp_close();
- x._fireEvent('onUnload');
- }
- } catch (I) {}
- var J = function() {
- w = null;
- r.innerHTML = v;
- E = false;
- if (K) {
- K(true);
- }
- };
- if (/WebKit/i.test(navigator.userAgent) && !/Chrome/i.test(navigator.userAgent)) {
- setTimeout(J, 0);
- } else {
- J();
- }
- } else {
- if (K) {
- K(false);
- }
- }
- return x;
- },
- getClip: function(I) {
- if (I === undefined) {
- I = D;
- }
- return G[I];
- },
- getCommonClip: function() {
- return t;
- },
- getPlaylist: function() {
- return G;
- },
- getPlugin: function(I) {
- var K = z[I];
- if (!K && x.isLoaded()) {
- var J = x._api().fp_getPlugin(I);
- if (J) {
- K = new m(I, J, x);
- z[I] = K;
- }
- }
- return K;
- },
- getScreen: function() {
- return x.getPlugin('screen');
- },
- getControls: function() {
- return x.getPlugin('controls')._fireEvent('onUpdate');
- },
- getLogo: function() {
- try {
- return x.getPlugin('logo')._fireEvent('onUpdate');
- } catch (I) {}
- },
- getPlay: function() {
- return x.getPlugin('play')._fireEvent('onUpdate');
- },
- getConfig: function(I) {
- return I ? l(u) : u;
- },
- getFlashParams: function() {
- return H;
- },
- loadPlugin: function(L, K, N, M) {
- if (typeof N == 'function') {
- M = N;
- N = {};
- }
- var J = M ? f() : '_';
- x._api().fp_loadPlugin(L, K, N, J);
- var I = {};
- I[J] = M;
- var O = new m(L, null, x, I);
- z[L] = O;
- return O;
- },
- getState: function() {
- return x.isLoaded() ? w.fp_getState() : -1;
- },
- play: function(J, I) {
- var K = function() {
- if (J !== undefined) {
- x._api().fp_play(J, I);
- } else {
- x._api().fp_play();
- }
- };
- if (x.isLoaded()) {
- K();
- } else {
- if (E) {
- setTimeout(function() {
- x.play(J, I);
- }, 50);
- } else {
- x.load(function() {
- K();
- });
- }
- }
- return x;
- },
- getVersion: function() {
- var J = 'flowplayer.js @VERSION';
- if (x.isLoaded()) {
- var I = w.fp_getVersion();
- I.push(J);
- return I;
- }
- return J;
- },
- _api: function() {
- if (!x.isLoaded()) {
- throw 'Flowplayer ' + x.id() + ' not loaded when calling an API method';
- }
- return w;
- },
- setClip: function(I) {
- n(I, function(J, K) {
- if (typeof K == 'function') {
- k(y, J, K);
- delete I[J];
- } else {
- if (J == 'onCuepoint') {
- $f(r)
- .getCommonClip()
- .onCuepoint(I[J][0], I[J][1]);
- }
- }
- });
- x.setPlaylist([I]);
- return x;
- },
- getIndex: function() {
- return q;
- },
- bufferAnimate: function(I) {
- w.fp_bufferAnimate(I === undefined || I);
- return x;
- },
- _swfHeight: function() {
- return w.clientHeight;
- },
- });
- n(
- 'Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut'.split(','),
- function() {
- var I = 'on' + this;
- if (I.indexOf('*') != -1) {
- I = I.slice(0, I.length - 1);
- var J = 'onBefore' + I.slice(2);
- x[J] = function(K) {
- k(y, J, K);
- return x;
- };
- }
- x[I] = function(K) {
- k(y, I, K);
- return x;
- };
- }
- );
- 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() {
- var I = this;
- x[I] = function(K, J) {
- if (!x.isLoaded()) {
- return x;
- }
- var L = null;
- if (K !== undefined && J !== undefined) {
- L = w['fp_' + I](K, J);
- } else {
- L = K === undefined ? w['fp_' + I]() : w['fp_' + I](K);
- }
- return L === 'undefined' || L === undefined ? x : L;
- };
- }
- );
- x._fireEvent = function(R) {
- if (typeof R == 'string') {
- R = [R];
- }
- var S = R[0],
- P = R[1],
- N = R[2],
- M = R[3],
- L = 0;
- if (u.debug) {
- h(R);
- }
- if (!x.isLoaded() && S == 'onLoad' && P == 'player') {
- w = w || c(s);
- p = x._swfHeight();
- n(G, function() {
- this._fireEvent('onLoad');
- });
- n(z, function(T, U) {
- U._fireEvent('onUpdate');
- });
- t._fireEvent('onLoad');
- }
- if (S == 'onLoad' && P != 'player') {
- return;
- }
- if (S == 'onError') {
- if (typeof P == 'string' || (typeof P == 'number' && typeof N == 'number')) {
- P = N;
- N = M;
- }
- }
- if (S == 'onContextMenu') {
- n(u.contextMenu[P], function(T, U) {
- U.call(x);
- });
- return;
- }
- if (S == 'onPluginEvent' || S == 'onBeforePluginEvent') {
- var I = P.name || P;
- var J = z[I];
- if (J) {
- J._fireEvent('onUpdate', P);
- return J._fireEvent(N, R.slice(3));
- }
- return;
- }
- if (S == 'onPlaylistReplace') {
- G = [];
- var O = 0;
- n(P, function() {
- G.push(new i(this, O++, x));
- });
- }
- if (S == 'onClipAdd') {
- if (P.isInStream) {
- return;
- }
- P = new i(P, N, x);
- G.splice(N, 0, P);
- for (L = N + 1; L < G.length; L++) {
- G[L].index++;
- }
- }
- var Q = true;
- if (typeof P == 'number' && P < G.length) {
- D = P;
- var K = G[P];
- if (K) {
- Q = K._fireEvent(S, N, M);
- }
- if (!K || Q !== false) {
- Q = t._fireEvent(S, N, M, K);
- }
- }
- n(y[S], function() {
- Q = this.call(x, P, N);
- if (this.cached) {
- y[S].splice(L, 1);
- }
- if (Q === false) {
- return false;
- }
- L++;
- });
- return Q;
- };
- function C() {
- if ($f(r)) {
- $f(r).getParent().innerHTML = '';
- q = $f(r).getIndex();
- a[q] = x;
- } else {
- a.push(x);
- q = a.length - 1;
- }
- B = parseInt(r.style.height, 10) || r.clientHeight;
- F = r.id || 'fp' + f();
- s = H.id || F + '_api';
- H.id = s;
- v = r.innerHTML;
- if (typeof u == 'string') {
- u = { clip: { url: u } };
- }
- u.playerId = F;
- u.clip = u.clip || {};
- if (r.getAttribute('href', 2) && !u.clip.url) {
- u.clip.url = r.getAttribute('href', 2);
- }
- if (u.clip.url) {
- u.clip.url = e(u.clip.url);
- }
- t = new i(u.clip, -1, x);
- u.playlist = u.playlist || [u.clip];
- var J = 0;
- n(u.playlist, function() {
- var M = this;
- if (typeof M == 'object' && M.length) {
- M = { url: '' + M };
- }
- if (M.url) {
- M.url = e(M.url);
- }
- n(u.clip, function(N, O) {
- if (O !== undefined && M[N] === undefined && typeof O != 'function') {
- M[N] = O;
- }
- });
- u.playlist[J] = M;
- M = new i(M, J, x);
- G.push(M);
- J++;
- });
- n(u, function(M, N) {
- if (typeof N == 'function') {
- if (t[M]) {
- t[M](N);
- } else {
- k(y, M, N);
- }
- delete u[M];
- }
- });
- n(u.plugins, function(M, N) {
- if (N) {
- z[M] = new m(M, N, x);
- }
- });
- if (!u.plugins || u.plugins.controls === undefined) {
- z.controls = new m('controls', null, x);
- }
- z.canvas = new m('canvas', null, x);
- v = r.innerHTML;
- function L(M) {
- if (/iPad|iPhone|iPod/i.test(navigator.userAgent) && !/.flv$/i.test(G[0].url) && !K()) {
- return true;
- }
- if (!x.isLoaded() && x._fireEvent('onBeforeClick') !== false) {
- x.load();
- }
- return g(M);
- }
- function K() {
- return x.hasiPadSupport && x.hasiPadSupport();
- }
- function I() {
- if (v.replace(/\s/g, '') !== '') {
- if (r.addEventListener) {
- r.addEventListener('click', L, false);
- } else {
- if (r.attachEvent) {
- r.attachEvent('onclick', L);
- }
- }
- } else {
- if (r.addEventListener && !K()) {
- r.addEventListener('click', g, false);
- }
- x.load();
- }
- }
- setTimeout(I, 0);
- }
- if (typeof r == 'string') {
- var A = c(r);
- if (!A) {
- throw 'Flowplayer cannot access element: ' + r;
- }
- r = A;
- C();
- } else {
- C();
- }
- }
- var a = [];
- function d(p) {
- this.length = p.length;
- this.each = function(r) {
- n(p, r);
- };
- this.size = function() {
- return p.length;
- };
- var q = this;
- for (name in b.prototype) {
- q[name] = function() {
- var r = arguments;
- q.each(function() {
- this[name].apply(this, r);
- });
- };
- }
- }
- window.flowplayer = window.$f = function() {
- var q = null;
- var p = arguments[0];
- if (!arguments.length) {
- n(a, function() {
- if (this.isLoaded()) {
- q = this;
- return false;
- }
- });
- return q || a[0];
- }
- if (arguments.length == 1) {
- if (typeof p == 'number') {
- return a[p];
- } else {
- if (p == '*') {
- return new d(a);
- }
- n(a, function() {
- if (this.id() == p.id || this.id() == p || this.getParent() == p) {
- q = this;
- return false;
- }
- });
- return q;
- }
- }
- if (arguments.length > 1) {
- var u = arguments[1],
- r = arguments.length == 3 ? arguments[2] : {};
- if (typeof u == 'string') {
- u = { src: u };
- }
- u = j({ bgcolor: '#000000', version: [10, 1], expressInstall: 'http://releases.flowplayer.org/swf/expressinstall.swf', cachebusting: false }, u);
- if (typeof p == 'string') {
- if (p.indexOf('.') != -1) {
- var t = [];
- n(o(p), function() {
- t.push(new b(this, l(u), l(r)));
- });
- return new d(t);
- } else {
- var s = c(p);
- return new b(s !== null ? s : l(p), l(u), l(r));
- }
- } else {
- if (p) {
- return new b(p, l(u), l(r));
- }
- }
- }
- return null;
- };
- j(window.$f, {
- fireEvent: function() {
- var q = [].slice.call(arguments);
- var r = $f(q[0]);
- return r ? r._fireEvent(q.slice(1)) : null;
- },
- addPlugin: function(p, q) {
- b.prototype[p] = q;
- return $f;
- },
- each: n,
- extend: j,
- });
- if (typeof jQuery == 'function') {
- jQuery.fn.flowplayer = function(r, q) {
- if (!arguments.length || typeof arguments[0] == 'number') {
- var p = [];
- this.each(function() {
- var s = $f(this);
- if (s) {
- p.push(s);
- }
- });
- return arguments.length ? p[arguments[0]] : new d(p);
- }
- return this.each(function() {
- $f(this, l(r), q ? l(q) : {});
- });
- };
- }
- })();
- !(function() {
- 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,
- };
- if (window.attachEvent) {
- window.attachEvent('onbeforeunload', function() {
- __flash_unloadHandler = function() {};
- __flash_savedUnloadHandler = function() {};
- });
- }
- function i(m, l) {
- if (l) {
- for (var f in l) {
- if (l.hasOwnProperty(f)) {
- m[f] = l[f];
- }
- }
- }
- return m;
- }
- function a(f, n) {
- var m = [];
- for (var l in f) {
- if (f.hasOwnProperty(l)) {
- m[l] = n(f[l]);
- }
- }
- return m;
- }
- window.flashembed = function(f, m, l) {
- if (typeof f == 'string') {
- f = document.getElementById(f.replace('#', ''));
- }
- if (!f) {
- return;
- }
- if (typeof m == 'string') {
- m = { src: m };
- }
- return new d(f, i(i({}, b), m), l);
- };
- var g = i(window.flashembed, {
- conf: b,
- getVersion: function() {
- var m, f, o;
- try {
- o = navigator.plugins['Shockwave Flash'];
- if (o[0].enabledPlugin != null) {
- f = o.description.slice(16);
- }
- } catch (p) {
- try {
- m = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.7');
- f = m && m.GetVariable('$version');
- } catch (n) {
- try {
- m = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
- f = m && m.GetVariable('$version');
- } catch (l) {}
- }
- }
- f = e.exec(f);
- return f ? [1 * f[1], 1 * f[f[1] * 1 > 9 ? 2 : 3] * 1] : [0, 0];
- },
- asString: function(l) {
- if (l === null || l === undefined) {
- return null;
- }
- var f = typeof l;
- if (f == 'object' && l.push) {
- f = 'array';
- }
- switch (f) {
- case 'string':
- l = l.replace(new RegExp('(["\\\\])', 'g'), '\\$1');
- l = l.replace(/^\s?(\d+\.?\d*)%/, '$1pct');
- return '"' + l + '"';
- case 'array':
- return (
- '[' +
- a(l, function(o) {
- return g.asString(o);
- }).join(',') +
- ']'
- );
- case 'function':
- return '"function()"';
- case 'object':
- var m = [];
- for (var n in l) {
- if (l.hasOwnProperty(n)) {
- m.push('"' + n + '":' + g.asString(l[n]));
- }
- }
- return '{' + m.join(',') + '}';
- }
- return String(l)
- .replace(/\s/g, ' ')
- .replace(/\'/g, '"');
- },
- getHTML: function(o, l) {
- o = i({}, o);
- var n = '<object width="' + o.width + '" height="' + o.height + '" id="' + o.id + '" name="' + o.id + '"';
- if (o.cachebusting) {
- o.src += (o.src.indexOf('?') != -1 ? '&' : '?') + Math.random();
- }
- if (o.w3c || !h) {
- n += ' data="' + o.src + '" type="application/x-shockwave-flash"';
- } else {
- n += ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
- }
- n += '>';
- if (o.w3c || h) {
- n += '<param name="movie" value="' + o.src + '" />';
- }
- o.width = o.height = o.id = o.w3c = o.src = null;
- o.onFail = o.version = o.expressInstall = null;
- for (var m in o) {
- if (o[m]) {
- n += '<param name="' + m + '" value="' + o[m] + '" />';
- }
- }
- var p = '';
- if (l) {
- for (var f in l) {
- if (l[f]) {
- var q = l[f];
- p += f + '=' + (/function|object/.test(typeof q) ? g.asString(q) : q) + '&';
- }
- }
- p = p.slice(0, -1);
- n += '<param name="flashvars" value=\'' + p + "' />";
- }
- n += '</object>';
- return n;
- },
- isSupported: function(f) {
- return k[0] > f[0] || (k[0] == f[0] && k[1] >= f[1]);
- },
- });
- var k = g.getVersion();
- function d(f, n, m) {
- if (g.isSupported(n.version)) {
- f.innerHTML = g.getHTML(n, m);
- } else {
- if (n.expressInstall && g.isSupported([6, 65])) {
- f.innerHTML = g.getHTML(i(n, { src: n.expressInstall }), {
- MMredirectURL: encodeURIComponent(location.href),
- MMplayerType: 'PlugIn',
- MMdoctitle: document.title,
- });
- } else {
- if (!f.innerHTML.replace(/\s/g, '')) {
- 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>");
- if (f.tagName == 'A' || f.tagName == 'DIV') {
- f.onclick = function() {
- location.href = j;
- };
- }
- }
- if (n.onFail) {
- var l = n.onFail.call(this);
- if (typeof l == 'string') {
- f.innerHTML = l;
- }
- }
- }
- }
- if (h) {
- window[n.id] = document.getElementById(n.id);
- }
- i(this, {
- getRoot: function() {
- return f;
- },
- getOptions: function() {
- return n;
- },
- getConf: function() {
- return m;
- },
- getApi: function() {
- return f.firstChild;
- },
- });
- }
- if (c) {
- jQuery.tools = jQuery.tools || { version: '@VERSION' };
- jQuery.tools.flashembed = { conf: b };
- jQuery.fn.flashembed = function(l, f) {
- return this.each(function() {
- $(this).data('flashembed', flashembed(this, l, f));
- });
- };
- }
- })();
|