mirror of
https://github.com/moodle/moodle.git
synced 2025-02-22 02:49:53 +01:00
1003 lines
31 KiB
JavaScript
1003 lines
31 KiB
JavaScript
/*
|
|
* flowplayer.js 3.2.8. 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/>.
|
|
*
|
|
* Date: 2011-12-30 12:34:08 -0500 (Fri, 30 Dec 2011)
|
|
* Revision: 761
|
|
*/
|
|
(function () {
|
|
function g(o) {
|
|
console.log("$f.fireEvent", [].slice.call(o))
|
|
}
|
|
|
|
function k(q) {
|
|
if (!q || typeof q != "object") {
|
|
return q
|
|
}
|
|
var o = new q.constructor();
|
|
for (var p in q) {
|
|
if (q.hasOwnProperty(p)) {
|
|
o[p] = k(q[p])
|
|
}
|
|
}
|
|
return o
|
|
}
|
|
|
|
function m(t, q) {
|
|
if (!t) {
|
|
return
|
|
}
|
|
var o, p = 0, r = t.length;
|
|
if (r === undefined) {
|
|
for (o in t) {
|
|
if (q.call(t[o], o, t[o]) === false) {
|
|
break
|
|
}
|
|
}
|
|
} else {
|
|
for (var s = t[0]; p < r && q.call(s, p, s) !== false; s = t[++p]) {
|
|
}
|
|
}
|
|
return t
|
|
}
|
|
|
|
function c(o) {
|
|
return document.getElementById(o)
|
|
}
|
|
|
|
function i(q, p, o) {
|
|
if (typeof p != "object") {
|
|
return q
|
|
}
|
|
if (q && p) {
|
|
m(p, function (r, s) {
|
|
if (!o || typeof s != "function") {
|
|
q[r] = s
|
|
}
|
|
})
|
|
}
|
|
return q
|
|
}
|
|
|
|
function n(s) {
|
|
var q = s.indexOf(".");
|
|
if (q != -1) {
|
|
var p = s.slice(0, q) || "*";
|
|
var o = s.slice(q + 1, s.length);
|
|
var r = [];
|
|
m(document.getElementsByTagName(p), function () {
|
|
if (this.className && this.className.indexOf(o) != -1) {
|
|
r.push(this)
|
|
}
|
|
});
|
|
return r
|
|
}
|
|
}
|
|
|
|
function f(o) {
|
|
o = o || window.event;
|
|
if (o.preventDefault) {
|
|
o.stopPropagation();
|
|
o.preventDefault()
|
|
} else {
|
|
o.returnValue = false;
|
|
o.cancelBubble = true
|
|
}
|
|
return false
|
|
}
|
|
|
|
function j(q, o, p) {
|
|
q[o] = q[o] || [];
|
|
q[o].push(p)
|
|
}
|
|
|
|
function e() {
|
|
return"_" + ("" + Math.random()).slice(2, 10)
|
|
}
|
|
|
|
var h = function (t, r, s) {
|
|
var q = this, p = {}, u = {};
|
|
q.index = r;
|
|
if (typeof t == "string") {
|
|
t = {url:t}
|
|
}
|
|
i(this, t, true);
|
|
m(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","), function () {
|
|
var v = "on" + this;
|
|
if (v.indexOf("*") != -1) {
|
|
v = v.slice(0, v.length - 1);
|
|
var w = "onBefore" + v.slice(2);
|
|
q[w] = function (x) {
|
|
j(u, w, x);
|
|
return q
|
|
}
|
|
}
|
|
q[v] = function (x) {
|
|
j(u, v, x);
|
|
return q
|
|
};
|
|
if (r == -1) {
|
|
if (q[w]) {
|
|
s[w] = q[w]
|
|
}
|
|
if (q[v]) {
|
|
s[v] = q[v]
|
|
}
|
|
}
|
|
});
|
|
i(this, {onCuepoint:function (x, w) {
|
|
if (arguments.length == 1) {
|
|
p.embedded = [null, x];
|
|
return q
|
|
}
|
|
if (typeof x == "number") {
|
|
x = [x]
|
|
}
|
|
var v = e();
|
|
p[v] = [x, w];
|
|
if (s.isLoaded()) {
|
|
s._api().fp_addCuepoints(x, r, v)
|
|
}
|
|
return q
|
|
}, update:function (w) {
|
|
i(q, w);
|
|
if (s.isLoaded()) {
|
|
s._api().fp_updateClip(w, r)
|
|
}
|
|
var v = s.getConfig();
|
|
var x = (r == -1) ? v.clip : v.playlist[r];
|
|
i(x, w, true)
|
|
}, _fireEvent:function (v, y, w, A) {
|
|
if (v == "onLoad") {
|
|
m(p, function (B, C) {
|
|
if (C[0]) {
|
|
s._api().fp_addCuepoints(C[0], r, B)
|
|
}
|
|
});
|
|
return false
|
|
}
|
|
A = A || q;
|
|
if (v == "onCuepoint") {
|
|
var z = p[y];
|
|
if (z) {
|
|
return z[1].call(s, A, w)
|
|
}
|
|
}
|
|
if (y && "onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(v) != -1) {
|
|
i(A, y);
|
|
if (y.metaData) {
|
|
if (!A.duration) {
|
|
A.duration = y.metaData.duration
|
|
} else {
|
|
A.fullDuration = y.metaData.duration
|
|
}
|
|
}
|
|
}
|
|
var x = true;
|
|
m(u[v], function () {
|
|
x = this.call(s, A, y, w)
|
|
});
|
|
return x
|
|
}});
|
|
if (t.onCuepoint) {
|
|
var o = t.onCuepoint;
|
|
q.onCuepoint.apply(q, typeof o == "function" ? [o] : o);
|
|
delete t.onCuepoint
|
|
}
|
|
m(t, function (v, w) {
|
|
if (typeof w == "function") {
|
|
j(u, v, w);
|
|
delete t[v]
|
|
}
|
|
});
|
|
if (r == -1) {
|
|
s.onCuepoint = this.onCuepoint
|
|
}
|
|
};
|
|
var l = function (p, r, q, t) {
|
|
var o = this, s = {}, u = false;
|
|
if (t) {
|
|
i(s, t)
|
|
}
|
|
m(r, function (v, w) {
|
|
if (typeof w == "function") {
|
|
s[v] = w;
|
|
delete r[v]
|
|
}
|
|
});
|
|
i(this, {animate:function (y, z, x) {
|
|
if (!y) {
|
|
return o
|
|
}
|
|
if (typeof z == "function") {
|
|
x = z;
|
|
z = 500
|
|
}
|
|
if (typeof y == "string") {
|
|
var w = y;
|
|
y = {};
|
|
y[w] = z;
|
|
z = 500
|
|
}
|
|
if (x) {
|
|
var v = e();
|
|
s[v] = x
|
|
}
|
|
if (z === undefined) {
|
|
z = 500
|
|
}
|
|
r = q._api().fp_animate(p, y, z, v);
|
|
return o
|
|
}, css:function (w, x) {
|
|
if (x !== undefined) {
|
|
var v = {};
|
|
v[w] = x;
|
|
w = v
|
|
}
|
|
r = q._api().fp_css(p, w);
|
|
i(o, r);
|
|
return o
|
|
}, show:function () {
|
|
this.display = "block";
|
|
q._api().fp_showPlugin(p);
|
|
return o
|
|
}, hide:function () {
|
|
this.display = "none";
|
|
q._api().fp_hidePlugin(p);
|
|
return o
|
|
}, toggle:function () {
|
|
this.display = q._api().fp_togglePlugin(p);
|
|
return o
|
|
}, fadeTo:function (y, x, w) {
|
|
if (typeof x == "function") {
|
|
w = x;
|
|
x = 500
|
|
}
|
|
if (w) {
|
|
var v = e();
|
|
s[v] = w
|
|
}
|
|
this.display = q._api().fp_fadeTo(p, y, x, v);
|
|
this.opacity = y;
|
|
return o
|
|
}, fadeIn:function (w, v) {
|
|
return o.fadeTo(1, w, v)
|
|
}, fadeOut:function (w, v) {
|
|
return o.fadeTo(0, w, v)
|
|
}, getName:function () {
|
|
return p
|
|
}, getPlayer:function () {
|
|
return q
|
|
}, _fireEvent:function (w, v, x) {
|
|
if (w == "onUpdate") {
|
|
var z = q._api().fp_getPlugin(p);
|
|
if (!z) {
|
|
return
|
|
}
|
|
i(o, z);
|
|
delete o.methods;
|
|
if (!u) {
|
|
m(z.methods, function () {
|
|
var B = "" + this;
|
|
o[B] = function () {
|
|
var C = [].slice.call(arguments);
|
|
var D = q._api().fp_invoke(p, B, C);
|
|
return D === "undefined" || D === undefined ? o : D
|
|
}
|
|
});
|
|
u = true
|
|
}
|
|
}
|
|
var A = s[w];
|
|
if (A) {
|
|
var y = A.apply(o, v);
|
|
if (w.slice(0, 1) == "_") {
|
|
delete s[w]
|
|
}
|
|
return y
|
|
}
|
|
return o
|
|
}})
|
|
};
|
|
|
|
function b(q, G, t) {
|
|
var w = this, v = null, D = false, u, s, F = [], y = {}, x = {}, E, r, p, C, o, A;
|
|
i(w, {id:function () {
|
|
return E
|
|
}, isLoaded:function () {
|
|
return(v !== null && v.fp_play !== undefined && !D)
|
|
}, getParent:function () {
|
|
return q
|
|
}, hide:function (H) {
|
|
if (H) {
|
|
q.style.height = "0px"
|
|
}
|
|
if (w.isLoaded()) {
|
|
v.style.height = "0px"
|
|
}
|
|
return w
|
|
}, show:function () {
|
|
q.style.height = A + "px";
|
|
if (w.isLoaded()) {
|
|
v.style.height = o + "px"
|
|
}
|
|
return w
|
|
}, isHidden:function () {
|
|
return w.isLoaded() && parseInt(v.style.height, 10) === 0
|
|
}, load:function (J) {
|
|
if (!w.isLoaded() && w._fireEvent("onBeforeLoad") !== false) {
|
|
var H = function () {
|
|
if (u && !flashembed.isSupported(G.version)) {
|
|
q.innerHTML = ""
|
|
}
|
|
if (J) {
|
|
J.cached = true;
|
|
j(x, "onLoad", J)
|
|
}
|
|
flashembed(q, G, {config:t})
|
|
};
|
|
var I = 0;
|
|
m(a, function () {
|
|
this.unload(function (K) {
|
|
if (++I == a.length) {
|
|
H()
|
|
}
|
|
})
|
|
})
|
|
}
|
|
return w
|
|
}, unload:function (J) {
|
|
if (u.replace(/\s/g, "") !== "") {
|
|
if (w._fireEvent("onBeforeUnload") === false) {
|
|
if (J) {
|
|
J(false)
|
|
}
|
|
return w
|
|
}
|
|
D = true;
|
|
try {
|
|
if (v) {
|
|
v.fp_close();
|
|
w._fireEvent("onUnload")
|
|
}
|
|
} catch (H) {
|
|
}
|
|
var I = function () {
|
|
v = null;
|
|
q.innerHTML = u;
|
|
D = false;
|
|
if (J) {
|
|
J(true)
|
|
}
|
|
};
|
|
if (/WebKit/i.test(navigator.userAgent) && !/Chrome/i.test(navigator.userAgent)) {
|
|
setTimeout(I, 0)
|
|
} else {
|
|
I()
|
|
}
|
|
} else {
|
|
if (J) {
|
|
J(false)
|
|
}
|
|
}
|
|
return w
|
|
}, getClip:function (H) {
|
|
if (H === undefined) {
|
|
H = C
|
|
}
|
|
return F[H]
|
|
}, getCommonClip:function () {
|
|
return s
|
|
}, getPlaylist:function () {
|
|
return F
|
|
}, getPlugin:function (H) {
|
|
var J = y[H];
|
|
if (!J && w.isLoaded()) {
|
|
var I = w._api().fp_getPlugin(H);
|
|
if (I) {
|
|
J = new l(H, I, w);
|
|
y[H] = J
|
|
}
|
|
}
|
|
return J
|
|
}, getScreen:function () {
|
|
return w.getPlugin("screen")
|
|
}, getControls:function () {
|
|
return w.getPlugin("controls")._fireEvent("onUpdate")
|
|
}, getLogo:function () {
|
|
try {
|
|
return w.getPlugin("logo")._fireEvent("onUpdate")
|
|
} catch (H) {
|
|
}
|
|
}, getPlay:function () {
|
|
return w.getPlugin("play")._fireEvent("onUpdate")
|
|
}, getConfig:function (H) {
|
|
return H ? k(t) : t
|
|
}, getFlashParams:function () {
|
|
return G
|
|
}, loadPlugin:function (K, J, M, L) {
|
|
if (typeof M == "function") {
|
|
L = M;
|
|
M = {}
|
|
}
|
|
var I = L ? e() : "_";
|
|
w._api().fp_loadPlugin(K, J, M, I);
|
|
var H = {};
|
|
H[I] = L;
|
|
var N = new l(K, null, w, H);
|
|
y[K] = N;
|
|
return N
|
|
}, getState:function () {
|
|
return w.isLoaded() ? v.fp_getState() : -1
|
|
}, play:function (I, H) {
|
|
var J = function () {
|
|
if (I !== undefined) {
|
|
w._api().fp_play(I, H)
|
|
} else {
|
|
w._api().fp_play()
|
|
}
|
|
};
|
|
if (w.isLoaded()) {
|
|
J()
|
|
} else {
|
|
if (D) {
|
|
setTimeout(function () {
|
|
w.play(I, H)
|
|
}, 50)
|
|
} else {
|
|
w.load(function () {
|
|
J()
|
|
})
|
|
}
|
|
}
|
|
return w
|
|
}, getVersion:function () {
|
|
var I = "flowplayer.js 3.2.8";
|
|
if (w.isLoaded()) {
|
|
var H = v.fp_getVersion();
|
|
H.push(I);
|
|
return H
|
|
}
|
|
return I
|
|
}, _api:function () {
|
|
if (!w.isLoaded()) {
|
|
throw"Flowplayer " + w.id() + " not loaded when calling an API method"
|
|
}
|
|
return v
|
|
}, setClip:function (H) {
|
|
m(H, function (I, J) {
|
|
if (typeof J == "function") {
|
|
j(x, I, J);
|
|
delete H[I]
|
|
} else {
|
|
if (I == "onCuepoint") {
|
|
$f(q).getCommonClip().onCuepoint(H[I][0], H[I][1])
|
|
}
|
|
}
|
|
});
|
|
w.setPlaylist([H]);
|
|
return w
|
|
}, getIndex:function () {
|
|
return p
|
|
}, bufferAnimate:function (H) {
|
|
v.fp_bufferAnimate(H === undefined || H);
|
|
return w
|
|
}, _swfHeight:function () {
|
|
return v.clientHeight
|
|
}});
|
|
m(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","), function () {
|
|
var H = "on" + this;
|
|
if (H.indexOf("*") != -1) {
|
|
H = H.slice(0, H.length - 1);
|
|
var I = "onBefore" + H.slice(2);
|
|
w[I] = function (J) {
|
|
j(x, I, J);
|
|
return w
|
|
}
|
|
}
|
|
w[H] = function (J) {
|
|
j(x, H, J);
|
|
return w
|
|
}
|
|
});
|
|
m(("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 H = this;
|
|
w[H] = function (J, I) {
|
|
if (!w.isLoaded()) {
|
|
return w
|
|
}
|
|
var K = null;
|
|
if (J !== undefined && I !== undefined) {
|
|
K = v["fp_" + H](J, I)
|
|
} else {
|
|
K = (J === undefined) ? v["fp_" + H]() : v["fp_" + H](J)
|
|
}
|
|
return K === "undefined" || K === undefined ? w : K
|
|
}
|
|
});
|
|
w._fireEvent = function (Q) {
|
|
if (typeof Q == "string") {
|
|
Q = [Q]
|
|
}
|
|
var R = Q[0], O = Q[1], M = Q[2], L = Q[3], K = 0;
|
|
if (t.debug) {
|
|
g(Q)
|
|
}
|
|
if (!w.isLoaded() && R == "onLoad" && O == "player") {
|
|
v = v || c(r);
|
|
o = w._swfHeight();
|
|
m(F, function () {
|
|
this._fireEvent("onLoad")
|
|
});
|
|
m(y, function (S, T) {
|
|
T._fireEvent("onUpdate")
|
|
});
|
|
s._fireEvent("onLoad")
|
|
}
|
|
if (R == "onLoad" && O != "player") {
|
|
return
|
|
}
|
|
if (R == "onError") {
|
|
if (typeof O == "string" || (typeof O == "number" && typeof M == "number")) {
|
|
O = M;
|
|
M = L
|
|
}
|
|
}
|
|
if (R == "onContextMenu") {
|
|
m(t.contextMenu[O], function (S, T) {
|
|
T.call(w)
|
|
});
|
|
return
|
|
}
|
|
if (R == "onPluginEvent" || R == "onBeforePluginEvent") {
|
|
var H = O.name || O;
|
|
var I = y[H];
|
|
if (I) {
|
|
I._fireEvent("onUpdate", O);
|
|
return I._fireEvent(M, Q.slice(3))
|
|
}
|
|
return
|
|
}
|
|
if (R == "onPlaylistReplace") {
|
|
F = [];
|
|
var N = 0;
|
|
m(O, function () {
|
|
F.push(new h(this, N++, w))
|
|
})
|
|
}
|
|
if (R == "onClipAdd") {
|
|
if (O.isInStream) {
|
|
return
|
|
}
|
|
O = new h(O, M, w);
|
|
F.splice(M, 0, O);
|
|
for (K = M + 1; K < F.length; K++) {
|
|
F[K].index++
|
|
}
|
|
}
|
|
var P = true;
|
|
if (typeof O == "number" && O < F.length) {
|
|
C = O;
|
|
var J = F[O];
|
|
if (J) {
|
|
P = J._fireEvent(R, M, L)
|
|
}
|
|
if (!J || P !== false) {
|
|
P = s._fireEvent(R, M, L, J)
|
|
}
|
|
}
|
|
m(x[R], function () {
|
|
P = this.call(w, O, M);
|
|
if (this.cached) {
|
|
x[R].splice(K, 1)
|
|
}
|
|
if (P === false) {
|
|
return false
|
|
}
|
|
K++
|
|
});
|
|
return P
|
|
};
|
|
function B() {
|
|
q.innerHTML = ''; // Moodle hack - we do not want splashscreens, unfortunately there is not switch to disable them
|
|
if ($f(q)) {
|
|
$f(q).getParent().innerHTML = "";
|
|
p = $f(q).getIndex();
|
|
a[p] = w
|
|
} else {
|
|
a.push(w);
|
|
p = a.length - 1
|
|
}
|
|
A = parseInt(q.style.height, 10) || q.clientHeight;
|
|
E = q.id || "fp" + e();
|
|
r = G.id || E + "_api";
|
|
G.id = r;
|
|
u = q.innerHTML;
|
|
if (typeof t == "string") {
|
|
t = {clip:{url:t}}
|
|
}
|
|
t.playerId = E;
|
|
t.clip = t.clip || {};
|
|
if (q.getAttribute("href", 2) && !t.clip.url) {
|
|
t.clip.url = q.getAttribute("href", 2)
|
|
}
|
|
s = new h(t.clip, -1, w);
|
|
t.playlist = t.playlist || [t.clip];
|
|
var I = 0;
|
|
m(t.playlist, function () {
|
|
var L = this;
|
|
if (typeof L == "object" && L.length) {
|
|
L = {url:"" + L}
|
|
}
|
|
m(t.clip, function (M, N) {
|
|
if (N !== undefined && L[M] === undefined && typeof N != "function") {
|
|
L[M] = N
|
|
}
|
|
});
|
|
t.playlist[I] = L;
|
|
L = new h(L, I, w);
|
|
F.push(L);
|
|
I++
|
|
});
|
|
m(t, function (L, M) {
|
|
if (typeof M == "function") {
|
|
if (s[L]) {
|
|
s[L](M)
|
|
} else {
|
|
j(x, L, M)
|
|
}
|
|
delete t[L]
|
|
}
|
|
});
|
|
m(t.plugins, function (L, M) {
|
|
if (M) {
|
|
y[L] = new l(L, M, w)
|
|
}
|
|
});
|
|
if (!t.plugins || t.plugins.controls === undefined) {
|
|
y.controls = new l("controls", null, w)
|
|
}
|
|
y.canvas = new l("canvas", null, w);
|
|
u = q.innerHTML;
|
|
function K(L) {
|
|
if (/iPad|iPhone|iPod/i.test(navigator.userAgent) && !/.flv$/i.test(F[0].url) && !J()) {
|
|
return true
|
|
}
|
|
if (!w.isLoaded() && w._fireEvent("onBeforeClick") !== false) {
|
|
w.load()
|
|
}
|
|
return f(L)
|
|
}
|
|
|
|
function J() {
|
|
return w.hasiPadSupport && w.hasiPadSupport()
|
|
}
|
|
|
|
function H() {
|
|
if (u.replace(/\s/g, "") !== "") {
|
|
if (q.addEventListener) {
|
|
q.addEventListener("click", K, false)
|
|
} else {
|
|
if (q.attachEvent) {
|
|
q.attachEvent("onclick", K)
|
|
}
|
|
}
|
|
} else {
|
|
if (q.addEventListener && !J()) {
|
|
q.addEventListener("click", f, false)
|
|
}
|
|
w.load()
|
|
}
|
|
}
|
|
|
|
setTimeout(H, 0)
|
|
}
|
|
|
|
if (typeof q == "string") {
|
|
var z = c(q);
|
|
if (!z) {
|
|
throw"Flowplayer cannot access element: " + q
|
|
}
|
|
q = z;
|
|
B()
|
|
} else {
|
|
B()
|
|
}
|
|
}
|
|
|
|
var a = [];
|
|
|
|
function d(o) {
|
|
this.length = o.length;
|
|
this.each = function (q) {
|
|
m(o, q)
|
|
};
|
|
this.size = function () {
|
|
return o.length
|
|
};
|
|
var p = this;
|
|
for (name in b.prototype) {
|
|
p[name] = function () {
|
|
var q = arguments;
|
|
p.each(function () {
|
|
this[name].apply(this, q)
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
window.flowplayer = window.$f = function () {
|
|
var p = null;
|
|
var o = arguments[0];
|
|
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
|
|
if (!arguments.length) {
|
|
m(a, function () {
|
|
if (this.isLoaded()) {
|
|
p = this;
|
|
return false
|
|
}
|
|
});
|
|
return p || a[0]
|
|
}
|
|
if (arguments.length == 1) {
|
|
if (typeof o == "number") {
|
|
return a[o]
|
|
} else {
|
|
if (o == "*") {
|
|
return new d(a)
|
|
}
|
|
m(a, function () {
|
|
if (this.id() == o.id || this.id() == o || this.getParent() == o) {
|
|
p = this;
|
|
return false
|
|
}
|
|
});
|
|
return p
|
|
}
|
|
}
|
|
if (arguments.length > 1) {
|
|
var t = arguments[1], q = (arguments.length == 3) ? arguments[2] : {};
|
|
if (typeof t == "string") {
|
|
t = {src:t}
|
|
}
|
|
t = i({bgcolor:"#000000", version:[9, 0], expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf", cachebusting:false}, t);
|
|
if (typeof o == "string") {
|
|
if (o.indexOf(".") != -1) {
|
|
var s = [];
|
|
m(n(o), function () {
|
|
s.push(new b(this, k(t), k(q)))
|
|
});
|
|
return new d(s)
|
|
} else {
|
|
var r = c(o);
|
|
return new b(r !== null ? r : k(o), k(t), k(q))
|
|
}
|
|
} else {
|
|
if (o) {
|
|
return new b(o, k(t), k(q))
|
|
}
|
|
}
|
|
}
|
|
return null
|
|
};
|
|
i(window.$f, {fireEvent:function () {
|
|
var o = [].slice.call(arguments);
|
|
var q = $f(o[0]);
|
|
return q ? q._fireEvent(o.slice(1)) : null
|
|
}, addPlugin:function (o, p) {
|
|
b.prototype[o] = p;
|
|
return $f
|
|
}, each:m, extend:i});
|
|
if (typeof jQuery == "function") {
|
|
jQuery.fn.flowplayer = function (q, p) {
|
|
if (!arguments.length || typeof arguments[0] == "number") {
|
|
var o = [];
|
|
this.each(function () {
|
|
var r = $f(this);
|
|
if (r) {
|
|
o.push(r)
|
|
}
|
|
});
|
|
return arguments.length ? o[arguments[0]] : new d(o)
|
|
}
|
|
return this.each(function () {
|
|
$f(this, k(q), p ? k(p) : {})
|
|
})
|
|
}
|
|
}
|
|
})();
|
|
(function () {
|
|
var h = document.all, j = "http://www.adobe.com/go/getflashplayer", 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;
|
|
try {
|
|
f = navigator.plugins["Shockwave Flash"].description.slice(16)
|
|
} catch (o) {
|
|
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 ? [f[1], f[3]] : [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");
|
|
l = l.replace(/(%)/g, "%25").replace(/'/g, "\\u0027").replace(/"/g, "\\u0022").replace(/&/g, "%26");
|
|
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.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:"3.2.8"};
|
|
jQuery.tools.flashembed = {conf:b};
|
|
jQuery.fn.flashembed = function (l, f) {
|
|
return this.each(function () {
|
|
$(this).data("flashembed", flashembed(this, l, f))
|
|
})
|
|
}
|
|
}
|
|
})(); |