/*	SWFObject v2.0 <http://code.google.com/p/swfobject/>
	Copyright (c) 2007 Geoff Stearns, Michael Williams, and Bobby van der Sluis
	This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject = function() {
    var Z = "undefined",
    P = "object",
    B = "Shockwave Flash",
    h = "ShockwaveFlash.ShockwaveFlash",
    W = "application/x-shockwave-flash",
    K = "SWFObjectExprInst",
    G = window,
    g = document,
    N = navigator,
    f = [],
    H = [],
    Q = null,
    L = null,
    T = null,
    S = false,
    C = false;
    var a = function() {
        var l = typeof g.getElementById != Z && typeof g.getElementsByTagName != Z && typeof g.createElement != Z && typeof g.appendChild != Z && typeof g.replaceChild != Z && typeof g.removeChild != Z && typeof g.cloneNode != Z,
        t = [0, 0, 0],
        n = null;
        if (typeof N.plugins != Z && typeof N.plugins[B] == P) {
            n = N.plugins[B].description;
            if (n) {
                n = n.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
                t[0] = parseInt(n.replace(/^(.*)\..*$/, "$1"), 10);
                t[1] = parseInt(n.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
                t[2] = /r/.test(n) ? parseInt(n.replace(/^.*r(.*)$/, "$1"), 10) : 0
            }
        } else {
            if (typeof G.ActiveXObject != Z) {
                var o = null,
                s = false;
                try {
                    o = new ActiveXObject(h + ".7")
                } catch(k) {
                    try {
                        o = new ActiveXObject(h + ".6");
                        t = [6, 0, 21];
                        o.AllowScriptAccess = "always"
                    } catch(k) {
                        if (t[0] == 6) {
                            s = true
                        }
                    }
                    if (!s) {
                        try {
                            o = new ActiveXObject(h)
                        } catch(k) {}
                    }
                }
                if (!s && o) {
                    try {
                        n = o.GetVariable("$version");
                        if (n) {
                            n = n.split(" ")[1].split(",");
                            t = [parseInt(n[0], 10), parseInt(n[1], 10), parseInt(n[2], 10)]
                        }
                    } catch(k) {}
                }
            }
        }
        var v = N.userAgent.toLowerCase(),
        j = N.platform.toLowerCase(),
        r = /webkit/.test(v) ? parseFloat(v.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false,
        i = false,
        q = j ? /win/.test(j) : /win/.test(v),
        m = j ? /mac/.test(j) : /mac/.test(v);
        /*@cc_on i=true;@if(@_win32)q=true;@elif(@_mac)m=true;@end@*/
        return {
            w3cdom: l,
            pv: t,
            webkit: r,
            ie: i,
            win: q,
            mac: m
        }
    } ();
    var e = function() {
        if (!a.w3cdom) {
            return
        }
        J(I);
        if (a.ie && a.win) {
            try {
                g.write("<script id=__ie_ondomload defer=true src=//:><\/script>");
                var i = c("__ie_ondomload");
                if (i) {
                    i.onreadystatechange = function() {
                        if (this.readyState == "complete") {
                            this.parentNode.removeChild(this);
                            V()
                        }
                    }
                }
            } catch(j) {}
        }
        if (a.webkit && typeof g.readyState != Z) {
            Q = setInterval(function() {
                if (/loaded|complete/.test(g.readyState)) {
                    V()
                }
            },
            10)
        }
        if (typeof g.addEventListener != Z) {
            g.addEventListener("DOMContentLoaded", V, null)
        }
        M(V)
    } ();
    function V() {
        if (S) {
            return
        }
        if (a.ie && a.win) {
            var m = Y("span");
            try {
                var l = g.getElementsByTagName("body")[0].appendChild(m);
                l.parentNode.removeChild(l)
            } catch(n) {
                return
            }
        }
        S = true;
        if (Q) {
            clearInterval(Q);
            Q = null
        }
        var j = f.length;
        for (var k = 0; k < j; k++) {
            f[k]()
        }
    }
    function J(i) {
        if (S) {
            i()
        } else {
            f[f.length] = i
        }
    }
    function M(j) {
        if (typeof G.addEventListener != Z) {
            G.addEventListener("load", j, false)
        } else {
            if (typeof g.addEventListener != Z) {
                g.addEventListener("load", j, false)
            } else {
                if (typeof G.attachEvent != Z) {
                    G.attachEvent("onload", j)
                } else {
                    if (typeof G.onload == "function") {
                        var i = G.onload;
                        G.onload = function() {
                            i();
                            j()
                        }
                    } else {
                        G.onload = j
                    }
                }
            }
        }
    }
    function I() {
        var l = H.length;
        for (var j = 0; j < l; j++) {
            var m = H[j].id;
            if (a.pv[0] > 0) {
                var k = c(m);
                if (k) {
                    H[j].width = k.getAttribute("width") ? k.getAttribute("width") : "0";
                    H[j].height = k.getAttribute("height") ? k.getAttribute("height") : "0";
                    if (O(H[j].swfVersion)) {
                        if (a.webkit && a.webkit < 312) {
                            U(k)
                        }
                        X(m, true)
                    } else {
                        if (H[j].expressInstall && !C && O("6.0.65") && (a.win || a.mac)) {
                            D(H[j])
                        } else {
                            d(k)
                        }
                    }
                }
            } else {
                X(m, true)
            }
        }
    }
    function U(m) {
        var k = m.getElementsByTagName(P)[0];
        if (k) {
            var p = Y("embed"),
            r = k.attributes;
            if (r) {
                var o = r.length;
                for (var n = 0; n < o; n++) {
                    if (r[n].nodeName.toLowerCase() == "data") {
                        p.setAttribute("src", r[n].nodeValue)
                    } else {
                        p.setAttribute(r[n].nodeName, r[n].nodeValue)
                    }
                }
            }
            var q = k.childNodes;
            if (q) {
                var s = q.length;
                for (var l = 0; l < s; l++) {
                    if (q[l].nodeType == 1 && q[l].nodeName.toLowerCase() == "param") {
                        p.setAttribute(q[l].getAttribute("name"), q[l].getAttribute("value"))
                    }
                }
            }
            m.parentNode.replaceChild(p, m)
        }
    }
    function F(i) {
        if (a.ie && a.win && O("8.0.0")) {
            G.attachEvent("onunload", 
            function() {
                var k = c(i);
                if (k) {
                    for (var j in k) {
                        if (typeof k[j] == "function") {
                            k[j] = function() {}
                        }
                    }
                    k.parentNode.removeChild(k)
                }
            })
        }
    }
    function D(j) {
        C = true;
        var o = c(j.id);
        if (o) {
            if (j.altContentId) {
                var l = c(j.altContentId);
                if (l) {
                    L = l;
                    T = j.altContentId
                }
            } else {
                L = b(o)
            }
            if (! (/%$/.test(j.width)) && parseInt(j.width, 10) < 310) {
                j.width = "310"
            }
            if (! (/%$/.test(j.height)) && parseInt(j.height, 10) < 137) {
                j.height = "137"
            }
            g.title = g.title.slice(0, 47) + " - Flash Player Installation";
            var n = a.ie && a.win ? "ActiveX": "PlugIn",
            k = g.title,
            m = "MMredirectURL=" + G.location + "&MMplayerType=" + n + "&MMdoctitle=" + k,
            p = j.id;
            if (a.ie && a.win && o.readyState != 4) {
                var i = Y("div");
                p += "SWFObjectNew";
                i.setAttribute("id", p);
                o.parentNode.insertBefore(i, o);
                o.style.display = "none";
                G.attachEvent("onload", 
                function() {
                    o.parentNode.removeChild(o)
                })
            }
            R({
                data: j.expressInstall,
                id: K,
                width: j.width,
                height: j.height
            },
            {
                flashvars: m
            },
            p)
        }
    }
    function d(j) {
        if (a.ie && a.win && j.readyState != 4) {
            var i = Y("div");
            j.parentNode.insertBefore(i, j);
            i.parentNode.replaceChild(b(j), i);
            j.style.display = "none";
            G.attachEvent("onload", 
            function() {
                j.parentNode.removeChild(j)
            })
        } else {
            j.parentNode.replaceChild(b(j), j)
        }
    }
    function b(n) {
        var m = Y("div");
        if (a.win && a.ie) {
            m.innerHTML = n.innerHTML
        } else {
            var k = n.getElementsByTagName(P)[0];
            if (k) {
                var o = k.childNodes;
                if (o) {
                    var j = o.length;
                    for (var l = 0; l < j; l++) {
                        if (! (o[l].nodeType == 1 && o[l].nodeName.toLowerCase() == "param") && !(o[l].nodeType == 8)) {
                            m.appendChild(o[l].cloneNode(true))
                        }
                    }
                }
            }
        }
        return m
    }
    function R(AE, AC, q) {
        var p,
        t = c(q);
        if (typeof AE.id == Z) {
            AE.id = q
        }
        if (a.ie && a.win) {
            var AD = "";
            for (var z in AE) {
                if (AE[z] != Object.prototype[z]) {
                    if (z == "data") {
                        AC.movie = AE[z]
                    } else {
                        if (z.toLowerCase() == "styleclass") {
                            AD += ' class="' + AE[z] + '"'
                        } else {
                            if (z != "classid") {
                                AD += " " + z + '="' + AE[z] + '"'
                            }
                        }
                    }
                }
            }
            var AB = "";
            for (var y in AC) {
                if (AC[y] != Object.prototype[y]) {
                    AB += '<param name="' + y + '" value="' + AC[y] + '" />'
                }
            }
            t.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + AD + ">" + AB + '<param name="wmode" value="opaque" /></object>';
            F(AE.id);
            p = c(AE.id)
        } else {
            if (a.webkit && a.webkit < 312) {
                var AA = Y("embed");
                AA.setAttribute("type", W);
                for (var x in AE) {
                    if (AE[x] != Object.prototype[x]) {
                        if (x == "data") {
                            AA.setAttribute("src", AE[x])
                        } else {
                            if (x.toLowerCase() == "styleclass") {
                                AA.setAttribute("class", AE[x])
                            } else {
                                if (x != "classid") {
                                    AA.setAttribute(x, AE[x])
                                }
                            }
                        }
                    }
                }
                for (var w in AC) {
                    if (AC[w] != Object.prototype[w]) {
                        if (w != "movie") {
                            AA.setAttribute(w, AC[w])
                        }
                    }
                }
                t.parentNode.replaceChild(AA, t);
                p = AA
            } else {
                var s = Y(P);
                s.setAttribute("type", W);
                for (var v in AE) {
                    if (AE[v] != Object.prototype[v]) {
                        if (v.toLowerCase() == "styleclass") {
                            s.setAttribute("class", AE[v])
                        } else {
                            if (v != "classid") {
                                s.setAttribute(v, AE[v])
                            }
                        }
                    }
                }
                for (var u in AC) {
                    if (AC[u] != Object.prototype[u] && u != "movie") {
                        E(s, u, AC[u])
                    }
                }
                t.parentNode.replaceChild(s, t);
                p = s
            }
        }
        return p
    }
    function E(k, i, j) {
        var l = Y("param");
        l.setAttribute("name", i);
        l.setAttribute("value", j);
        k.appendChild(l)
    }
    function c(i) {
        return g.getElementById(i)
    }
    function Y(i) {
        return g.createElement(i)
    }
    function O(k) {
        var j = a.pv,
        i = k.split(".");
        i[0] = parseInt(i[0], 10);
        i[1] = parseInt(i[1], 10);
        i[2] = parseInt(i[2], 10);
        return (j[0] > i[0] || (j[0] == i[0] && j[1] > i[1]) || (j[0] == i[0] && j[1] == i[1] && j[2] >= i[2])) ? true: false
    }
    function A(m, j) {
        if (a.ie && a.mac) {
            return
        }
        var l = g.getElementsByTagName("head")[0],
        k = Y("style");
        k.setAttribute("type", "text/css");
        k.setAttribute("media", "screen");
        if (! (a.ie && a.win) && typeof g.createTextNode != Z) {
            k.appendChild(g.createTextNode(m + " {" + j + "}"))
        }
        l.appendChild(k);
        if (a.ie && a.win && typeof g.styleSheets != Z && g.styleSheets.length > 0) {
            var i = g.styleSheets[g.styleSheets.length - 1];
            if (typeof i.addRule == P) {
                i.addRule(m, j)
            }
        }
    }
    function X(k, i) {
        var j = i ? "visible": "hidden";
        if (S) {
            c(k).style.visibility = j
        } else {
            A("#" + k, "visibility:" + j)
        }
    }
    return {
        registerObject: function(l, i, k) {
            if (!a.w3cdom || !l || !i) {
                return
            }
            var j = {};
            j.id = l;
            j.swfVersion = i;
            j.expressInstall = k ? k: false;
            H[H.length] = j;
            X(l, false)
        },
        getObjectById: function(l) {
            var i = null;
            if (a.w3cdom && S) {
                var j = c(l);
                if (j) {
                    var k = j.getElementsByTagName(P)[0];
                    if (!k || (k && typeof j.SetVariable != Z)) {
                        i = j
                    } else {
                        if (typeof k.SetVariable != Z) {
                            i = k
                        }
                    }
                }
            }
            return i
        },
        embedSWF: function(n, u, r, t, j, m, k, p, s) {
            if (!a.w3cdom || !n || !u || !r || !t || !j) {
                return
            }
            r += "";
            t += "";
            if (O(j)) {
                X(u, false);
                var q = (typeof s == P) ? s: {};
                q.data = n;
                q.width = r;
                q.height = t;
                var o = (typeof p == P) ? p: {};
                if (typeof k == P) {
                    for (var l in k) {
                        if (k[l] != Object.prototype[l]) {
                            if (typeof o.flashvars != Z) {
                                o.flashvars += "&" + l + "=" + k[l]
                            } else {
                                o.flashvars = l + "=" + k[l]
                            }
                        }
                    }
                }
                J(function() {
                    R(q, o, u);
                    if (q.id == u) {
                        X(u, true)
                    }
                })
            } else {
                if (m && !C && O("6.0.65") && (a.win || a.mac)) {
                    X(u, false);
                    J(function() {
                        var i = {};
                        i.id = i.altContentId = u;
                        i.width = r;
                        i.height = t;
                        i.expressInstall = m;
                        D(i)
                    })
                }
            }
        },
        getFlashPlayerVersion: function() {
            return {
                major: a.pv[0],
                minor: a.pv[1],
                release: a.pv[2]
            }
        },
        hasFlashPlayerVersion: O,
        createSWF: function(k, j, i) {
            if (a.w3cdom && S) {
                return R(k, j, i)
            } else {
                return undefined
            }
        },
        createCSS: function(j, i) {
            if (a.w3cdom) {
                A(j, i)
            }
        },
        addDomLoadEvent: J,
        addLoadEvent: M,
        getQueryParamValue: function(m) {
            var l = g.location.search || g.location.hash;
            if (m == null) {
                return l
            }
            if (l) {
                var k = l.substring(1).split("&");
                for (var j = 0; j < k.length; j++) {
                    if (k[j].substring(0, k[j].indexOf("=")) == m) {
                        return k[j].substring((k[j].indexOf("=") + 1))
                    }
                }
            }
            return ""
        },
        expressInstallCallback: function() {
            if (C && L) {
                var i = c(K);
                if (i) {
                    i.parentNode.replaceChild(L, i);
                    if (T) {
                        X(T, true);
                        if (a.ie && a.win) {
                            L.style.display = "block"
                        }
                    }
                    L = null;
                    T = null;
                    C = false
                }
            }
        }
    }
} ();
 (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.substring(0, q) || "*";
            var o = s.substring(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()).substring(2, 10)
    }
    var h = function(t, r, s) {
        var q = this;
        var p = {};
        var 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.substring(0, v.length - 1);
                var w = "onBefore" + v.substring(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 s = {};
        var o = this;
        var 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 y = q._api().fp_getPlugin(p);
                    if (!y) {
                        return
                    }
                    i(o, y);
                    delete o.methods;
                    if (!u) {
                        m(y.methods, 
                        function() {
                            var A = "" + this;
                            o[A] = function() {
                                var B = [].slice.call(arguments);
                                var C = q._api().fp_invoke(p, A, B);
                                return C === "undefined" || C === undefined ? o: C
                            }
                        });
                        u = true
                    }
                }
                var z = s[w];
                if (z) {
                    z.apply(o, v);
                    if (w.substring(0, 1) == "_") {
                        delete s[w]
                    }
                }
            }
        })
    };
    function b(o, t, z) {
        var E = this,
        y = null,
        x,
        u,
        p = [],
        s = {},
        B = {},
        r,
        v,
        w,
        D,
        A,
        q;
        i(E, {
            id: function() {
                return r
            },
            isLoaded: function() {
                return (y !== null)
            },
            getParent: function() {
                return o
            },
            hide: function(F) {
                if (F) {
                    o.style.height = "0px"
                }
                if (y) {
                    y.style.height = "0px"
                }
                return E
            },
            show: function() {
                o.style.height = q + "px";
                if (y) {
                    y.style.height = A + "px"
                }
                return E
            },
            isHidden: function() {
                return y && parseInt(y.style.height, 10) === 0
            },
            load: function(F) {
                if (!y && E._fireEvent("onBeforeLoad") !== false) {
                    m(a, 
                    function() {
                        this.unload()
                    });
                    x = o.innerHTML;
                    if (x && !flashembed.isSupported(t.version)) {
                        o.innerHTML = ""
                    }
                    flashembed(o, t, {
                        config: z
                    });
                    if (F) {
                        F.cached = true;
                        j(B, "onLoad", F)
                    }
                }
                return E
            },
            unload: function() {
                if (x.replace(/\s/g, "") !== "") {
                    if (E._fireEvent("onBeforeUnload") === false) {
                        return E
                    }
                    try {
                        if (y) {
                            y.fp_close();
                            E._fireEvent("onUnload")
                        }
                    } catch(F) {}
                    y = null;
                    o.innerHTML = x
                }
                return E
            },
            getClip: function(F) {
                if (F === undefined) {
                    F = D
                }
                return p[F]
            },
            getCommonClip: function() {
                return u
            },
            getPlaylist: function() {
                return p
            },
            getPlugin: function(F) {
                var H = s[F];
                if (!H && E.isLoaded()) {
                    var G = E._api().fp_getPlugin(F);
                    if (G) {
                        H = new l(F, G, E);
                        s[F] = H
                    }
                }
                return H
            },
            getScreen: function() {
                return E.getPlugin("screen")
            },
            getControls: function() {
                return E.getPlugin("controls")
            },
            getConfig: function(F) {
                return F ? k(z) : z
            },
            getFlashParams: function() {
                return t
            },
            loadPlugin: function(I, H, K, J) {
                if (typeof K == "function") {
                    J = K;
                    K = {}
                }
                var G = J ? e() : "_";
                E._api().fp_loadPlugin(I, H, K, G);
                var F = {};
                F[G] = J;
                var L = new l(I, null, E, F);
                s[I] = L;
                return L
            },
            getState: function() {
                return y ? y.fp_getState() : -1
            },
            play: function(G, F) {
                function H() {
                    if (G !== undefined) {
                        E._api().fp_play(G, F)
                    } else {
                        E._api().fp_play()
                    }
                }
                if (y) {
                    H()
                } else {
                    E.load(function() {
                        H()
                    })
                }
                return E
            },
            getVersion: function() {
                var G = "flowplayer.js 3.1.4";
                if (y) {
                    var F = y.fp_getVersion();
                    F.push(G);
                    return F
                }
                return G
            },
            _api: function() {
                if (!y) {
                    throw "Flowplayer " + E.id() + " not loaded when calling an API method"
                }
                return y
            },
            setClip: function(F) {
                E.setPlaylist([F]);
                return E
            },
            getIndex: function() {
                return w
            }
        });
        m(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","), 
        function() {
            var F = "on" + this;
            if (F.indexOf("*") != -1) {
                F = F.substring(0, F.length - 1);
                var G = "onBefore" + F.substring(2);
                E[G] = function(H) {
                    j(B, G, H);
                    return E
                }
            }
            E[F] = function(H) {
                j(B, F, H);
                return E
            }
        });
        m(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed").split(","), 
        function() {
            var F = this;
            E[F] = function(H, G) {
                if (!y) {
                    return E
                }
                var I = null;
                if (H !== undefined && G !== undefined) {
                    I = y["fp_" + F](H, G)
                } else {
                    I = (H === undefined) ? y["fp_" + F]() : y["fp_" + F](H)
                }
                return I === "undefined" || I === undefined ? E: I
            }
        });
        E._fireEvent = function(O) {
            if (typeof O == "string") {
                O = [O]
            }
            var P = O[0],
            M = O[1],
            K = O[2],
            J = O[3],
            I = 0;
            if (z.debug) {
                g(O)
            }
            if (!y && P == "onLoad" && M == "player") {
                y = y || c(v);
                A = y.clientHeight;
                m(p, 
                function() {
                    this._fireEvent("onLoad")
                });
                m(s, 
                function(Q, R) {
                    R._fireEvent("onUpdate")
                });
                u._fireEvent("onLoad")
            }
            if (P == "onLoad" && M != "player") {
                return
            }
            if (P == "onError") {
                if (typeof M == "string" || (typeof M == "number" && typeof K == "number")) {
                    M = K;
                    K = J
                }
            }
            if (P == "onContextMenu") {
                m(z.contextMenu[M], 
                function(Q, R) {
                    R.call(E)
                });
                return
            }
            if (P == "onPluginEvent") {
                var F = M.name || M;
                var G = s[F];
                if (G) {
                    G._fireEvent("onUpdate", M);
                    G._fireEvent(K, O.slice(3))
                }
                return
            }
            if (P == "onPlaylistReplace") {
                p = [];
                var L = 0;
                m(M, 
                function() {
                    p.push(new h(this, L++, E))
                })
            }
            if (P == "onClipAdd") {
                if (M.isInStream) {
                    return
                }
                M = new h(M, K, E);
                p.splice(K, 0, M);
                for (I = K + 1; I < p.length; I++) {
                    p[I].index++
                }
            }
            var N = true;
            if (typeof M == "number" && M < p.length) {
                D = M;
                var H = p[M];
                if (H) {
                    N = H._fireEvent(P, K, J)
                }
                if (!H || N !== false) {
                    N = u._fireEvent(P, K, J, H)
                }
            }
            m(B[P], 
            function() {
                N = this.call(E, M, K);
                if (this.cached) {
                    B[P].splice(I, 1)
                }
                if (N === false) {
                    return false
                }
                I++
            });
            return N
        };
        function C() {
            if ($f(o)) {
                $f(o).getParent().innerHTML = "";
                w = $f(o).getIndex();
                a[w] = E
            } else {
                a.push(E);
                w = a.length - 1
            }
            q = parseInt(o.style.height, 10) || o.clientHeight;
            if (typeof t == "string") {
                t = {
                    src: t
                }
            }
            r = o.id || "fp" + e();
            v = t.id || r + "_api";
            t.id = v;
            z.playerId = r;
            if (typeof z == "string") {
                z = {
                    clip: {
                        url: z
                    }
                }
            }
            if (typeof z.clip == "string") {
                z.clip = {
                    url: z.clip
                }
            }
            z.clip = z.clip || {};
            if (o.getAttribute("href", 2) && !z.clip.url) {
                z.clip.url = o.getAttribute("href", 2)
            }
            u = new h(z.clip, -1, E);
            z.playlist = z.playlist || [z.clip];
            var F = 0;
            m(z.playlist, 
            function() {
                var H = this;
                if (typeof H == "object" && H.length) {
                    H = {
                        url: "" + H
                    }
                }
                m(z.clip, 
                function(I, J) {
                    if (J !== undefined && H[I] === undefined && typeof J != "function") {
                        H[I] = J
                    }
                });
                z.playlist[F] = H;
                H = new h(H, F, E);
                p.push(H);
                F++
            });
            m(z, 
            function(H, I) {
                if (typeof I == "function") {
                    if (u[H]) {
                        u[H](I)
                    } else {
                        j(B, H, I)
                    }
                    delete z[H]
                }
            });
            m(z.plugins, 
            function(H, I) {
                if (I) {
                    s[H] = new l(H, I, E)
                }
            });
            if (!z.plugins || z.plugins.controls === undefined) {
                s.controls = new l("controls", null, E)
            }
            s.canvas = new l("canvas", null, E);
            t.bgcolor = t.bgcolor || "#000000";
            t.version = t.version || [9, 0];
            t.expressInstall = "http://www.flowplayer.org/swf/expressinstall.swf";
            function G(H) {
                if (!E.isLoaded() && E._fireEvent("onBeforeClick") !== false) {
                    E.load()
                }
                return f(H)
            }
            x = o.innerHTML;
            if (x.replace(/\s/g, "") !== "") {
                if (o.addEventListener) {
                    o.addEventListener("click", G, false)
                } else {
                    if (o.attachEvent) {
                        o.attachEvent("onclick", G)
                    }
                }
            } else {
                if (o.addEventListener) {
                    o.addEventListener("click", f, false)
                }
                E.load()
            }
        }
        if (typeof o == "string") {
            flashembed.domReady(function() {
                var F = c(o);
                if (!F) {
                    throw "Flowplayer cannot access element: " + o
                } else {
                    o = F;
                    C()
                }
            })
        } else {
            C()
        }
    }
    var a = [];
    function d(o) {
        this.length = o.length;
        this.each = function(p) {
            m(o, p)
        };
        this.size = function() {
            return o.length
        }
    }
    window.flowplayer = window.$f = function() {
        var p = null;
        var o = arguments[0];
        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 r = arguments[1];
            var q = (arguments.length == 3) ? arguments[2] : {};
            if (typeof o == "string") {
                if (o.indexOf(".") != -1) {
                    var t = [];
                    m(n(o), 
                    function() {
                        t.push(new b(this, k(r), k(q)))
                    });
                    return new d(t)
                } else {
                    var s = c(o);
                    return new b(s !== null ? s: o, r, q)
                }
            } else {
                if (o) {
                    return new b(o, r, 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.prototype.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 e = typeof jQuery == "function";
    var i = {
        width: "100%",
        height: "100%",
        allowfullscreen: true,
        allowscriptaccess: "always",
        quality: "high",
        version: null,
        onFail: null,
        expressInstall: null,
        w3c: false,
        cachebusting: false
    };
    if (e) {
        jQuery.tools = jQuery.tools || {};
        jQuery.tools.flashembed = {
            version: "1.0.4",
            conf: i
        }
    }
    function j() {
        if (c.done) {
            return false
        }
        var l = document;
        if (l && l.getElementsByTagName && l.getElementById && l.body) {
            clearInterval(c.timer);
            c.timer = null;
            for (var k = 0; k < c.ready.length; k++) {
                c.ready[k].call()
            }
            c.ready = null;
            c.done = true
        }
    }
    var c = e ? jQuery: function(k) {
        if (c.done) {
            return k()
        }
        if (c.timer) {
            c.ready.push(k)
        } else {
            c.ready = [k];
            c.timer = setInterval(j, 13)
        }
    };
    function f(l, k) {
        if (k) {
            for (key in k) {
                if (k.hasOwnProperty(key)) {
                    l[key] = k[key]
                }
            }
        }
        return l
    }
    function g(k) {
        switch (h(k)) {
        case "string":
            k = k.replace(new RegExp('(["\\\\])', "g"), "\\$1");
            k = k.replace(/^\s?(\d+)%/, "$1pct");
            return '"' + k + '"';
        case "array":
            return "[" + b(k, 
            function(n) {
                return g(n)
            }).join(",") + "]";
        case "function":
            return '"function()"';
        case "object":
            var l = [];
            for (var m in k) {
                if (k.hasOwnProperty(m)) {
                    l.push('"' + m + '":' + g(k[m]))
                }
            }
            return "{" + l.join(",") + "}"
        }
        return String(k).replace(/\s/g, " ").replace(/\'/g, '"')
    }
    function h(l) {
        if (l === null || l === undefined) {
            return false
        }
        var k = typeof l;
        return (k == "object" && l.push) ? "array": k
    }
    if (window.attachEvent) {
        window.attachEvent("onbeforeunload", 
        function() {
            __flash_unloadHandler = function() {};
            __flash_savedUnloadHandler = function() {}
        })
    }
    function b(k, n) {
        var m = [];
        for (var l in k) {
            if (k.hasOwnProperty(l)) {
                m[l] = n(k[l])
            }
        }
        return m
    }
    function a(r, t) {
        var q = f({},
        r);
        var s = document.all;
        var n = '<object width="' + q.width + '" height="' + q.height + '"';
        if (s && !q.id) {
            q.id = "_" + ("" + Math.random()).substring(9)
        }
        if (q.id) {
            n += ' id="' + q.id + '"'
        }
        if (q.cachebusting) {
            q.src += ((q.src.indexOf("?") != -1 ? "&": "?") + Math.random())
        }
        if (q.w3c || !s) {
            n += ' data="' + q.src + '" type="application/x-shockwave-flash"'
        } else {
            n += ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
        }
        n += ">";
        if (q.w3c || s) {
            n += '<param name="movie" value="' + q.src + '" />'
        }
        n +='<param name="wmode" value="transparent" />';
        q.width = q.height = q.id = q.w3c = q.src = null;
        for (var l in q) {
            if (q[l] !== null) {
                n += '<param name="' + l + '" value="' + q[l] + '" />'
            }
        }
        var o = "";
        if (t) {
            for (var m in t) {
                if (t[m] !== null) {
                    o += m + "=" + (typeof t[m] == "object" ? g(t[m]) : t[m]) + "&"
                }
            }
            o = o.substring(0, o.length - 1);
            n += '<param name="flashvars" value=\'' + o + "' />"
        }
        n += "</object>";
        return n
    }
    function d(m, p, l) {
        var k = flashembed.getVersion();
        f(this, {
            getContainer: function() {
                return m
            },
            getConf: function() {
                return p
            },
            getVersion: function() {
                return k
            },
            getFlashvars: function() {
                return l
            },
            getApi: function() {
                return m.firstChild
            },
            getHTML: function() {
                return a(p, l)
            }
        });
        var q = p.version;
        var r = p.expressInstall;
        var o = !q || flashembed.isSupported(q);
        if (o) {
            p.onFail = p.version = p.expressInstall = null;
            m.innerHTML = a(p, l)
        } else {
            if (q && r && flashembed.isSupported([6, 65])) {
                f(p, {
                    src: r
                });
                l = {
                    MMredirectURL: location.href,
                    MMplayerType: "PlugIn",
                    MMdoctitle: document.title
                };
                m.innerHTML = a(p, l)
            } else {
                if (m.innerHTML.replace(/\s/g, "") !== "") {} else {
                    m.innerHTML = "<h2>Flash version " + q + " or greater is required</h2><h3>" + (k[0] > 0 ? "Your version is " + k: "You have no flash plugin installed") + "</h3>" + (m.tagName == "A" ? "<p>Click here to download latest version</p>": "<p>Download latest version from <a href='http://www.adobe.com/go/getflashplayer'>here</a></p>");
                    if (m.tagName == "A") {
                        m.onclick = function() {
                            location.href = "http://www.adobe.com/go/getflashplayer"
                        }
                    }
                }
            }
        }
        if (!o && p.onFail) {
            var n = p.onFail.call(this);
            if (typeof n == "string") {
                m.innerHTML = n
            }
        }
        if (document.all) {
            window[p.id] = document.getElementById(p.id)
        }
    }
    window.flashembed = function(l, m, k) {
        if (typeof l == "string") {
            var n = document.getElementById(l);
            if (n) {
                l = n
            } else {
                c(function() {
                    flashembed(l, m, k)
                });
                return
            }
        }
        if (!l) {
            return
        }
        if (typeof m == "string") {
            m = {
                src: m
            }
        }
        var o = f({},
        i);
        f(o, m);
        return new d(l, o, k)
    };
    f(window.flashembed, {
        getVersion: function() {
            var m = [0, 0];
            if (navigator.plugins && typeof navigator.plugins["Shockwave Flash"] == "object") {
                var l = navigator.plugins["Shockwave Flash"].description;
                if (typeof l != "undefined") {
                    l = l.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
                    var n = parseInt(l.replace(/^(.*)\..*$/, "$1"), 10);
                    var r = /r/.test(l) ? parseInt(l.replace(/^.*r(.*)$/, "$1"), 10) : 0;
                    m = [n, r]
                }
            } else {
                if (window.ActiveXObject) {
                    try {
                        var p = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")
                    } catch(q) {
                        try {
                            p = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
                            m = [6, 0];
                            p.AllowScriptAccess = "always"
                        } catch(k) {
                            if (m[0] == 6) {
                                return m
                            }
                        }
                        try {
                            p = new ActiveXObject("ShockwaveFlash.ShockwaveFlash")
                        } catch(o) {}
                    }
                    if (typeof p == "object") {
                        l = p.GetVariable("$version");
                        if (typeof l != "undefined") {
                            l = l.replace(/^\S+\s+(.*)$/, "$1").split(",");
                            m = [parseInt(l[0], 10), parseInt(l[2], 10)]
                        }
                    }
                }
            }
            return m
        },
        isSupported: function(k) {
            var m = flashembed.getVersion();
            var l = (m[0] > k[0]) || (m[0] == k[0] && m[1] >= k[1]);
            return l
        },
        domReady: c,
        asString: g,
        getHTML: a
    });
    if (e) {
        jQuery.fn.flashembed = function(l, k) {
            var m = null;
            this.each(function() {
                m = flashembed(this, l, k)
            });
            return l.api === false ? this: m
        }
    }
})();

var __thisPlayerInstance = null;
var videoObj = function(idObj, url, width, height, params) {
    this.idObj = idObj;
    this.url = url;
    this.width = width;
    this.height = height;
    this.player = null;
    this.liveClip = [];
    this.init(params);

}
videoObj.prototype = {
    'init': function(objArray) {
        var url = this.decode(this.url);
        if (!/\.(f4v|mp4)\s*$/gi.test(url)) {
            url += '.flv';

        }
        var urlArray = [];
        urlArray = url.match(/^(http:\/\/v\d+\.(1du[\w]+\.com))\/([^~]+)$/, 'gi');

        //é…ç½®å½±ç‰‡
        var clip = {
            bufferLength: 10,
            autoBuffering: true
        };
        if (objArray && objArray['events']) {
            for (var prop in objArray['events']) {
                clip[prop] = objArray['events'][prop];

            }

        }
        clip.provider = 'lighttpd';
        clip.live = false;
        if (this.width) {
            clip.width = this.width;

        }
        if (this.height) {
            clip.height = this.height;

        }
        if (objArray && objArray['autoPlay'] === false) {
            clip.autoPlay = false;

        }

        //é…ç½®æ’ä»¶
        var plugins = {};
        plugins.lighttpd = {
            url: 'http://www.1dutm.com/inc/js/player/flowplayer.pseudostreaming-3.1.3.swf'

        };

        //é…ç½®ä¸»æœº
        if (urlArray) var hosts = ['http://v1.' + urlArray[2].replace('.com', '.1duvideo.com'), 'http://cnc.v3.' + urlArray[2], 'http://v3.' + urlArray[2], 'http://v2.' + urlArray[2]];

        if (urlArray && urlArray[3]) {
            //å¦‚æžœè§†é¢‘åœ°å€ä½äºŽé›†ç¾¤ä¸‹ï¼Œåˆ™å¯ç”¨é›†ç¾¤åŠŸèƒ½
            clip.url = urlArray[3];
            clip.urlResolvers = 'cluster';
            plugins.cluster = {
                url: 'http://www.1dutm.com/inc/js/player/flowplayer.cluster-3.1.1.swf',
                hosts: hosts,
                connectTimeout: 25000,
                connectCount: 2,
                onConnect: function() {
                    }

            }

        } else {
            clip.url = url;

        }

        //é…ç½®ç›´æ’­
        if (objArray && objArray['live']) {
            clip = {
                url: 'livestream',
                live: true,
                provider: 'rtmpCNC'


            };
            this.liveClip['cnc'] = clip;
            this.liveClip['ct'] = {
                url: 'livestream',
                live: true,
                provider: 'rtmpCT'

            };

            var publishPointer = 'live';
            if (objArray['publish']) {
                publishPointer = 'yidu/' + objArray['publish'];

            }

            plugins = {
                rtmpCNC: {
                    url: 'http://www.1dutm.com/inc/js/player/flowplayer.rtmp-3.1.3.swf',
                    netConnectionUrl: 'rtmp://v10.1dutm.com/' + publishPointer
                    //	netConnectionUrl: 'rtmp:// 117.21.172.139/'+publishPointer

                },
                rtmpCT: {
                    url: 'http://www.1dutm.com/inc/js/player/flowplayer.rtmp-3.1.3.swf',
                    //	netConnectionUrl: 'rtmp:// 117.21.172.139/'+publishPointer
                    netConnectionUrl: 'rtmp://v10.1dutm.com/' + publishPointer

                }

            };

        }
        __thisPlayerInstance = this.player = flowplayer(this.idObj, "http://www.1dutm.com/inc/js/player/flowplayer-3.1.5.swf?s=" + Math.random(1), {
            log: {
                level: 'debug',
                filter: 'org.flowplayer.cluster.*'
            },
            clip: clip,
            plugins: plugins,
            play: {
                label: null,
                replayLabel: "重新播放"

            }

        });


    },
    'play': function() {
        this.player.play();

    },
    'stop': function() {
        this.player.stop();

    },
    'pause': function() {
        this.player.pause();

    },
    'setUrl': function(url) {
        this.player.play(url);

    },
    'startImage': function(imgUrl) {
        //document[this.idObj].SetVariable("player:jsStartImage", imgUrl);
        },
    'autoPlay': function() {
        //
        },
    'liveSwitch': function(clip) {
        this.player.play(this.liveClip[clip]);

    },
    'ready': function(func) {
        var thisObj = this;
        var id = setInterval(function() {
            if (this.player) {
                func();
                clearInterval(id);

            }

        },
        1000)

    },
    'decode': function(input) {
        var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
        var output = "";
        var chr1,
        chr2,
        chr3 = "";
        var enc1,
        enc2,
        enc3,
        enc4 = "";
        var i = 0;
        var base64test = /[^A-Za-z0-9\+\/\=]/g;
        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        do {
            enc1 = keyStr.indexOf(input.charAt(i++));
            enc2 = keyStr.indexOf(input.charAt(i++));
            enc3 = keyStr.indexOf(input.charAt(i++));
            enc4 = keyStr.indexOf(input.charAt(i++));

            chr1 = (enc1 << 2) | (enc2 >> 4);
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
            chr3 = ((enc3 & 3) << 6) | enc4;

            output = output + String.fromCharCode(chr1);

            if (enc3 != 64) {
                output = output + String.fromCharCode(chr2);

            }
            if (enc4 != 64) {
                output = output + String.fromCharCode(chr3);

            }
            chr1 = chr2 = chr3 = "";
            enc1 = enc2 = enc3 = enc4 = "";

        }
        while (i < input.length);
        return unescape(output);

    }

};
