/*
 * jquery.tools 1.0.2 - The missing UI library
 * 
 * [tools.tooltip-1.0.2, tools.scrollable-1.0.5, tools.overlay-1.0.4, tools.expose-1.0.3, tools.flashembed-1.0.3]
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 * 
 * -----
 * 
 * Build: Sun Jun 14 16:50:11 GMT+00:00 2009
 */
(function (c) {
    c.tools = c.tools || {
        version: {}
    };
    c.tools.version.tooltip = "1.0.2";
    var b = {
        toggle: [function () {
            this.getTip().show()
        },
        function () {
            this.getTip().hide()
        }],
        fade: [function () {
            this.getTip().fadeIn(this.getConf().fadeInSpeed)
        },
        function () {
            this.getTip().fadeOut(this.getConf().fadeOutSpeed)
        }]
    };
    c.tools.addTipEffect = function (d, f, e) {
        b[d] = [f, e]
    };
    c.tools.addTipEffect("slideup", function () {
        var d = this.getConf();
        var e = d.slideOffset || 10;
        this.getTip().css({
            opacity: 0
        }).animate({
            top: "-=" + e,
            opacity: d.opacity
        },
        d.slideInSpeed || 200).show()
    },
    function () {
        var d = this.getConf();
        var e = d.slideOffset || 10;
        this.getTip().animate({
            top: "-=" + e,
            opacity: 0
        },
        d.slideOutSpeed || 200, function () {
            c(this).hide().animate({
                top: "+=" + (e * 2)
            },
            0)
        })
    });

    function a(f, e) {
        var d = this;
        var h = f.next();
        if (e.tip) {
            if (e.tip.indexOf("#") != -1) {
                h = c(e.tip)
            } else {
                h = f.nextAll(e.tip).eq(0);
                if (!h.length) {
                    h = f.parent().nextAll(e.tip).eq(0)
                }
            }
        }

        function j(k, l) {
            c(d).bind(k, function (n, m) {
                if (l && l.call(this) === false && m) {
                    m.proceed = false
                }
            });
            return d
        }
        c.each(e, function (k, l) {
            if (c.isFunction(l)) {
                j(k, l)
            }
        });
        var g = f.is("input, textarea");
        f.bind(g ? "focus" : "mouseover", function (k) {
            k.target = this;
            d.show(k);
            h.hover(function () {
                d.show()
            },
            function () {
                d.hide()
            })
        });
        f.bind(g ? "blur" : "mouseout", function () {
            d.hide()
        });
        h.css("opacity", e.opacity);
        var i = 0;
        c.extend(d, {
            show: function (q) {
                if (q) {
                    f = c(q.target)
                }
                clearTimeout(i);
                if (h.is(":animated") || h.is(":visible")) {
                    return d
                }
                var o = {
                    proceed: true
                };
                c(d).trigger("onBeforeShow", o);
                if (!o.proceed) {
                    return d
                }
                var n = f.position().top - h.outerHeight();
                var k = h.outerHeight() + f.outerHeight();
                var r = e.position[0];
                if (r == "center") {
                    n += k / 2
                }
                if (r == "bottom") {
                    n += k
                }
                var l = f.outerWidth() + h.outerWidth();
                var m = f.position().left + f.outerWidth();
                r = e.position[1];
                if (r == "center") {
                    m -= l / 2
                }
                if (r == "left") {
                    m -= l
                }
                n += e.offset[0];
                m += e.offset[1];
                h.css({
                    position: "absolute",
                    top: n,
                    left: m
                });
                b[e.effect][0].call(d);
                c(d).trigger("onShow");
                return d
            },
            hide: function () {
                clearTimeout(i);
                i = setTimeout(function () {
                    if (!h.is(":visible")) {
                        return d
                    }
                    var k = {
                        proceed: true
                    };
                    c(d).trigger("onBeforeHide", k);
                    if (!k.proceed) {
                        return d
                    }
                    b[e.effect][1].call(d);
                    c(d).trigger("onHide")
                },
                e.delay || 1);
                return d
            },
            isShown: function () {
                return h.is(":visible, :animated")
            },
            getConf: function () {
                return e
            },
            getTip: function () {
                return h
            },
            getTrigger: function () {
                return f
            },
            onBeforeShow: function (k) {
                return j("onBeforeShow", k)
            },
            onShow: function (k) {
                return j("onShow", k)
            },
            onBeforeHide: function (k) {
                return j("onBeforeHide", k)
            },
            onHide: function (k) {
                return j("onHide", k)
            }
        })
    }
    c.prototype.tooltip = function (d) {
        var e = this.eq(typeof d == "number" ? d : 0).data("tooltip");
        if (e) {
            return e
        }
        var f = {
            tip: null,
            effect: "slideup",
            delay: 30,
            opacity: 1,
            position: ["top", "center"],
            offset: [0, 0],
            api: false
        };
        if (c.isFunction(d)) {
            d = {
                onBeforeShow: d
            }
        }
        c.extend(f, d);
        this.each(function () {
            e = new a(c(this), f);
            c(this).data("tooltip", e)
        });
        return f.api ? e : this
    }
})(jQuery);
(function (b) {
    b.tools = b.tools || {
        version: {}
    };
    b.tools.version.scrollable = "1.0.5";
    var c = null;

    function a(p, m) {
        var s = this;
        if (!c) {
            c = s
        }

        function n(t, u) {
            b(s).bind(t, function (w, v) {
                if (u && u.call(this, v.index) === false && v) {
                    v.proceed = false
                }
            });
            return s
        }
        b.each(m, function (t, u) {
            if (b.isFunction(u)) {
                n(t, u)
            }
        });
        var d = !m.vertical;
        var f = b(m.items, p);
        var j = 0;

        function l(u, t) {
            return u.indexOf("#") != -1 ? b(u).eq(0) : t.siblings(u).eq(0)
        }
        var q = l(m.navi, p);
        var g = l(m.prev, p);
        var i = l(m.next, p);
        var h = l(m.prevPage, p);
        var o = l(m.nextPage, p);
        b.extend(s, {
            getIndex: function () {
                return j
            },
            getConf: function () {
                return m
            },
            getSize: function () {
                return s.getItems().size()
            },
            getPageAmount: function () {
                return Math.ceil(this.getSize() / m.size)
            },
            getPageIndex: function () {
                return Math.ceil(j / m.size)
            },
            getRoot: function () {
                return p
            },
            getItemWrap: function () {
                return f
            },
            getItems: function () {
                return f.children()
            },
            getVisibleItems: function () {
                return s.getItems().slice(j, j + m.size)
            },
            seekTo: function (w, u, A) {
                if (u === undefined) {
                    u = m.speed
                }
                if (b.isFunction(u)) {
                    A = u;
                    u = m.speed
                }
                if (w < 0) {
                    w = 0
                }
                if (w > s.getSize() - m.size) {
                    return s
                }
                var B = s.getItems().eq(w);
                if (!B.length) {
                    return s
                }
                var t = {
                    index: w,
                    proceed: true
                };
                b(s).trigger("onBeforeSeek", t);
                if (!t.proceed) {
                    return s
                }
                if (d) {
                    var v = -B.position().left;
                    f.animate({
                        left: v
                    },
                    u, m.easing, A ?
                    function () {
                        A.call(s)
                    } : null)
                } else {
                    var z = -B.position().top;
                    f.animate({
                        top: z
                    },
                    u, m.easing, A ?
                    function () {
                        A.call(s)
                    } : null)
                }
                if (q.length) {
                    var x = m.activeClass;
                    var y = Math.ceil(w / m.size);
                    y = Math.min(y, q.children().length - 1);
                    q.children().removeClass(x).eq(y).addClass(x)
                }
                if (w === 0) {
                    g.add(h).addClass(m.disabledClass)
                } else {
                    g.add(h).removeClass(m.disabledClass)
                }
                if (w >= s.getSize() - m.size) {
                    i.add(o).addClass(m.disabledClass)
                } else {
                    i.add(o).removeClass(m.disabledClass)
                }
                c = s;
                j = w;
                b(s).trigger("onSeek", {
                    index: w
                });
                return s
            },
            move: function (v, u, t) {
                var w = j + v;
                if (m.loop && w > (s.getSize() - m.size)) {
                    w = 0
                }
                return this.seekTo(w, u, t)
            },
            next: function (u, t) {
                return this.move(1, u, t)
            },
            prev: function (u, t) {
                return this.move(-1, u, t)
            },
            movePage: function (v, u, t) {
                return this.move(m.size * v, u, t)
            },
            setPage: function (x, y, v) {
                var u = m.size;
                var t = u * x;
                var w = t + u >= this.getSize();
                if (w) {
                    t = this.getSize() - m.size
                }
                return this.seekTo(t, y, v)
            },
            prevPage: function (u, t) {
                return this.setPage(this.getPageIndex() - 1, u, t)
            },
            nextPage: function (u, t) {
                return this.setPage(this.getPageIndex() + 1, u, t)
            },
            begin: function (u, t) {
                return this.seekTo(0, u, t)
            },
            end: function (u, t) {
                return this.seekTo(this.getSize() - m.size, u, t)
            },
            reload: function () {
                return r()
            },
            click: function (u, x, v) {
                var w = s.getItems().eq(u);
                var t = m.activeClass;
                if (u < 0 || u >= this.getSize()) {
                    return s
                }
                if (m.size == 2) {
                    if (u == s.getIndex()) {
                        u--
                    }
                    s.getItems().removeClass(t);
                    w.addClass(t);
                    return this.seekTo(u, x, v)
                }
                if (!w.hasClass(t)) {
                    s.getItems().removeClass(t);
                    w.addClass(t);
                    var z = Math.floor(m.size / 2);
                    var y = u - z;
                    if (y > s.getSize() - m.size) {
                        y = s.getSize() - m.size
                    }
                    if (y !== u) {
                        return this.seekTo(y, x, v)
                    }
                }
                return s
            },
            onBeforeSeek: function (t) {
                return n("onBeforeSeek", t)
            },
            onSeek: function (t) {
                return n("onSeek", t)
            }
        });
        if (b.isFunction(b.fn.mousewheel)) {
            p.bind("mousewheel.scrollable", function (u, v) {
                var t = b.browser.opera ? 1 : -1;
                s.move(v > 0 ? t : -t, 50);
                return false
            })
        }
        g.addClass(m.disabledClass).click(function () {
            s.prev()
        });
        i.click(function () {
            s.next()
        });
        o.click(function () {
            s.nextPage()
        });
        h.addClass(m.disabledClass).click(function () {
            s.prevPage()
        });
        if (m.keyboard) {
            b(document).unbind("keydown.scrollable").bind("keydown.scrollable", function (t) {
                var u = c;
                if (!u || t.altKey || t.ctrlKey) {
                    return
                }
                if (d && (t.keyCode == 37 || t.keyCode == 39)) {
                    u.move(t.keyCode == 37 ? -1 : 1);
                    return t.preventDefault()
                }
                if (!d && (t.keyCode == 38 || t.keyCode == 40)) {
                    u.move(t.keyCode == 38 ? -1 : 1);
                    return t.preventDefault()
                }
                return true
            })
        }

        function r() {
            if (q.is(":empty") || q.data("me") == s) {
                q.empty();
                q.data("me", s);
                for (var u = 0; u < s.getPageAmount(); u++) {
                    var v = b("<" + m.naviItem + "/>").attr("href", u).click(function (x) {
                        var w = b(this);
                        w.parent().children().removeClass(m.activeClass);
                        w.addClass(m.activeClass);
                        s.setPage(w.attr("href"));
                        return x.preventDefault()
                    });
                    if (u === 0) {
                        v.addClass(m.activeClass)
                    }
                    q.append(v)
                }
            } else {
                var t = q.children();
                t.each(function (w) {
                    var x = b(this);
                    x.attr("href", w);
                    if (w === 0) {
                        x.addClass(m.activeClass)
                    }
                    x.click(function () {
                        q.find("." + m.activeClass).removeClass(m.activeClass);
                        x.addClass(m.activeClass);
                        s.setPage(x.attr("href"))
                    })
                })
            }
            if (m.clickable) {
                s.getItems().each(function (x, w) {
                    var y = b(this);
                    if (!y.data("set")) {
                        y.bind("click.scrollable", function () {
                            s.click(x)
                        });
                        y.data("set", true)
                    }
                })
            }
            if (m.hoverClass) {
                s.getItems().hover(function () {
                    b(this).addClass(m.hoverClass)
                },
                function () {
                    b(this).removeClass(m.hoverClass)
                })
            }
            return s
        }
        r();
        var e = null;

        function k() {
            if (e) {
                return
            }
            e = setInterval(function () {
                if (m.interval === 0) {
                    clearInterval(e);
                    e = 0;
                    return
                }
                s.next()
            },
            m.interval)
        }
        if (m.interval > 0) {
            p.hover(function () {
                clearInterval(e);
                e = 0
            },
            function () {
                k()
            });
            k()
        }
    }
    b.fn.scrollable = function (d) {
        var e = this.eq(typeof d == "number" ? d : 0).data("scrollable");
        if (e) {
            return e
        }
        var f = {
            size: 5,
            vertical: false,
            clickable: true,
            loop: false,
            interval: 0,
            speed: 400,
            keyboard: true,
            activeClass: "active",
            disabledClass: "disabled",
            hoverClass: null,
            easing: "swing",
            items: ".items",
            prev: ".prev",
            next: ".next",
            prevPage: ".prevPage",
            nextPage: ".nextPage",
            navi: ".navi",
            naviItem: "a",
            api: false,
            onBeforeSeek: null,
            onSeek: null
        };
        b.extend(f, d);
        this.each(function () {
            e = new a(b(this), f);
            b(this).data("scrollable", e)
        });
        return f.api ? e : this
    }
})(jQuery);
(function (b) {
    b.tools = b.tools || {
        version: {}
    };
    b.tools.version.overlay = "1.0.4";
    var c = [];

    function a(h, d) {
        var r = this,
            q = b(window),
            f, n, s, i, k, m, l;
        var e = d.expose && b.tools.version.expose;

        function p(o, t) {
            b(r).bind(o, function (v, u) {
                if (t && t.call(this) === false && u) {
                    u.proceed = false
                }
            });
            return r
        }
        b.each(d, function (o, t) {
            if (b.isFunction(t)) {
                p(o, t)
            }
        });
        var j = d.target || h.attr("rel");
        var g = j ? b(j) : null;
        if (!g) {
            g = h
        } else {
            k = h
        }
        q.load(function () {
            m = g.attr("overlay");
            if (!m) {
                m = g.css("backgroundImage");
                if (!m) {
                    throw "background-image CSS property not set for overlay element: " + j
                }
                m = m.substring(m.indexOf("(") + 1, m.indexOf(")")).replace(/\"/g, "");
                g.css("backgroundImage", "none");
                g.attr("overlay", m)
            }
            s = g.outerWidth({
                margin: true
            });
            i = g.outerHeight({
                margin: true
            });
            n = b('<img src="../../../js/jquery/' + m + '"/>');
            n.css({
                border: 0,
                position: "absolute",
                display: "none"
            }).width(s).attr("overlay", true);
            b("body").append(n);
            if (k) {
                k.bind("click.overlay", function (o) {
                    r.load(o.pageY - q.scrollTop(), o.pageX - q.scrollLeft());
                    return o.preventDefault()
                })
            }
            d.close = d.close || ".close";
            if (!g.find(d.close).length) {
                g.prepend('<div class="close"></div>')
            }
            f = g.find(d.close);
            f.bind("click.overlay", function () {
                r.close()
            });
            if (d.preload) {
                setTimeout(function () {
                    var o = new Image();
                    o.src = m
                },
                2000)
            }
        });
        b.extend(r, {
            load: function (w, v) {
                if (!n) {
                    q.load(function () {
                        r.load(w, v)
                    });
                    return r
                }
                if (r.isOpened()) {
                    return r
                }
                if (d.oneInstance) {
                    b.each(c, function () {
                        this.close()
                    })
                }
                var u = {
                    proceed: true
                };
                b(r).trigger("onBeforeLoad", u);
                if (!u.proceed) {
                    return r
                }
                if (e) {
                    n.expose(d.expose);
                    l = n.expose().load()
                }
                w = w || d.start.top;
                v = v || d.start.left;
                var o = d.finish.top;
                var t = d.finish.left;
                if (o == "center") {
                    o = Math.max((q.height() - i) / 2, 0)
                }
                if (t == "center") {
                    t = Math.max((q.width() - s) / 2, 0)
                }
                if (!d.start.absolute) {
                    w += q.scrollTop();
                    v += q.scrollLeft()
                }
                if (!d.finish.absolute) {
                    o += q.scrollTop();
                    t += q.scrollLeft()
                }
                n.css({
                    top: w,
                    left: v,
                    width: d.start.width,
                    zIndex: d.zIndex
                }).show();
                n.animate({
                    top: o,
                    left: t,
                    width: s
                },
                d.speed, function () {
                    g.css({
                        position: "absolute",
                        top: o,
                        left: t
                    });
                    var x = n.css("zIndex");
                    f.add(g).css("zIndex", ++x);
                    g.fadeIn(d.fadeInSpeed, function () {
                        b(r).trigger("onLoad")
                    })
                });
                return r
            },
            close: function () {
                if (!r.isOpened()) {
                    return r
                }
                var u = {
                    proceed: true
                };
                b(r).trigger("onBeforeClose", u);
                if (!u.proceed) {
                    return r
                }
                if (l) {
                    l.close()
                }
                if (n.is(":visible")) {
                    g.hide();
                    var t = d.start.top;
                    var o = d.start.left;
                    if (k) {
                        u = k.offset();
                        t = u.top + k.height() / 2;
                        o = u.left + k.width() / 2
                    }
                    n.animate({
                        top: t,
                        left: o,
                        width: 0
                    },
                    d.closeSpeed, function () {
                        b(r).trigger("onClose", u)
                    })
                }
                return r
            },
            getBackgroundImage: function () {
                return n
            },
            getContent: function () {
                return g
            },
            getTrigger: function () {
                return k
            },
            isOpened: function () {
                return g.is(":visible")
            },
            getConf: function () {
                return d
            },
            onBeforeLoad: function (o) {
                return p("onBeforeLoad", o)
            },
            onLoad: function (o) {
                return p("onLoad", o)
            },
            onBeforeClose: function (o) {
                return p("onBeforeClose", o)
            },
            onClose: function (o) {
                return p("onClose", o)
            }
        });
        b(document).keydown(function (o) {
            if (o.keyCode == 27) {
                r.close()
            }
        });
        if (d.closeOnClick) {
            b(document).bind("click.overlay", function (o) {
                if (!g.is(":visible, :animated")) {
                    return
                }
                var t = b(o.target);
                if (t.attr("overlay")) {
                    return
                }
                if (t.parents("[overlay]").length) {
                    return
                }
                r.close()
            })
        }
    }
    b.fn.overlay = function (e) {
        var f = this.eq(typeof e == "number" ? e : 0).data("overlay");
        if (f) {
            return f
        }
        var d = b(window);
        var g = {
            start: {
                top: Math.round(d.height() / 2),
                left: Math.round(d.width() / 2),
                width: 0,
                absolute: false
            },
            finish: {
                top: 80,
                left: "center",
                absolute: false
            },
            speed: "normal",
            fadeInSpeed: "fast",
            closeSpeed: "fast",
            close: null,
            oneInstance: true,
            closeOnClick: true,
            preload: true,
            zIndex: 9999,
            api: false,
            expose: null,
            target: null
        };
        if (b.isFunction(e)) {
            e = {
                onBeforeLoad: e
            }
        }
        b.extend(true, g, e);
        this.each(function () {
            f = new a(b(this), g);
            c.push(f);
            b(this).data("overlay", f)
        });
        return g.api ? f : this
    }
})(jQuery);
(function (b) {
    b.tools = b.tools || {
        version: {}
    };
    b.tools.version.expose = "1.0.3";

    function a() {
        var e = b(window).width();
        if (b.browser.mozilla) {
            return e
        }
        var d;
        if (window.innerHeight && window.scrollMaxY) {
            d = window.innerWidth + window.scrollMaxX
        } else {
            if (document.body.scrollHeight > document.body.offsetHeight) {
                d = document.body.scrollWidth
            } else {
                d = document.body.offsetWidth
            }
        }
        return d < e ? d + 20 : e
    }

    function c(g, h) {
        var e = this,
            d = null,
            f = false,
            i = 0;

        function j(k, l) {
            b(e).bind(k, function (n, m) {
                if (l && l.call(this) === false && m) {
                    m.proceed = false
                }
            });
            return e
        }
        b.each(h, function (k, l) {
            if (b.isFunction(l)) {
                j(k, l)
            }
        });
        b(window).bind("resize.expose", function () {
            if (d) {
                d.css({
                    width: a(),
                    height: b(document).height()
                })
            }
        });
        b.extend(this, {
            getMask: function () {
                return d
            },
            getExposed: function () {
                return g
            },
            getConf: function () {
                return h
            },
            isLoaded: function () {
                return f
            },
            load: function () {
                if (f) {
                    return e
                }
                i = g.eq(0).css("zIndex");
                if (h.maskId) {
                    d = b("#" + h.maskId)
                }
                if (!d || !d.length) {
                    d = b("<div/>").css({
                        position: "absolute",
                        top: 0,
                        left: 0,
                        width: a(),
                        height: b(document).height(),
                        display: "none",
                        opacity: 0,
                        zIndex: h.zIndex
                    });
                    if (h.maskId) {
                        d.attr("id", h.maskId)
                    }
                    b("body").append(d);
                    var k = d.css("backgroundColor");
                    if (!k || k == "transparent" || k == "rgba(0, 0, 0, 0)") {
                        d.css("backgroundColor", h.color)
                    }
                    if (h.closeOnEsc) {
                        b(document).bind("keydown.unexpose", function (n) {
                            if (n.keyCode == 27) {
                                e.close()
                            }
                        })
                    }
                    if (h.closeOnClick) {
                        d.bind("click.unexpose", function () {
                            e.close()
                        })
                    }
                }
                var m = {
                    proceed: true
                };
                b(e).trigger("onBeforeLoad", m);
                if (!m.proceed) {
                    return e
                }
                b.each(g, function () {
                    var n = b(this);
                    if (!/relative|absolute|fixed/i.test(n.css("position"))) {
                        n.css("position", "relative")
                    }
                });
                g.css({
                    zIndex: h.zIndex + 1
                });
                var l = d.height();
                if (!this.isLoaded()) {
                    d.css({
                        opacity: 0,
                        display: "block"
                    }).fadeTo(h.loadSpeed, h.opacity, function () {
                        if (d.height() != l) {
                            d.css("height", l)
                        }
                        b(e).trigger("onLoad")
                    })
                }
                f = true;
                return e
            },
            close: function () {
                if (!f) {
                    return e
                }
                var k = {
                    proceed: true
                };
                b(e).trigger("onBeforeClose", k);
                if (k.proceed === false) {
                    return e
                }
                d.fadeOut(h.closeSpeed, function () {
                    b(e).trigger("onClose");
                    g.css({
                        zIndex: b.browser.msie ? i : null
                    })
                });
                f = false;
                return e
            },
            onBeforeLoad: function (k) {
                return j("onBeforeLoad", k)
            },
            onLoad: function (k) {
                return j("onLoad", k)
            },
            onBeforeClose: function (k) {
                return j("onBeforeClose", k)
            },
            onClose: function (k) {
                return j("onClose", k)
            }
        })
    }
    b.fn.expose = function (d) {
        var e = this.eq(typeof d == "number" ? d : 0).data("expose");
        if (e) {
            return e
        }
        var f = {
            maskId: null,
            loadSpeed: "slow",
            closeSpeed: "fast",
            closeOnClick: true,
            closeOnEsc: true,
            zIndex: 9998,
            opacity: 0.8,
            color: "#456",
            api: false
        };
        if (typeof d == "string") {
            d = {
                color: d
            }
        }
        b.extend(f, d);
        this.each(function () {
            e = new c(b(this), f);
            b(this).data("expose", e)
        });
        return f.api ? e : this
    }
})(jQuery);
(function () {
    var e = typeof jQuery == "function";

    function i() {
        if (c.done) {
            return false
        }
        var k = document;
        if (k && k.getElementsByTagName && k.getElementById && k.body) {
            clearInterval(c.timer);
            c.timer = null;
            for (var j = 0; j < c.ready.length; j++) {
                c.ready[j].call()
            }
            c.ready = null;
            c.done = true
        }
    }
    var c = e ? jQuery : function (j) {
        if (c.done) {
            return j()
        }
        if (c.timer) {
            c.ready.push(j)
        } else {
            c.ready = [j];
            c.timer = setInterval(i, 13)
        }
    };

    function f(k, j) {
        if (j) {
            for (key in j) {
                if (j.hasOwnProperty(key)) {
                    k[key] = j[key]
                }
            }
        }
        return k
    }

    function g(j) {
        switch (h(j)) {
        case "string":
            j = j.replace(new RegExp('(["\\\\])', "g"), "\\$1");
            j = j.replace(/^\s?(\d+)%/, "$1pct");
            return '"' + j + '"';
        case "array":
            return "[" + b(j, function (m) {
                return g(m)
            }).join(",") + "]";
        case "function":
            return '"function()"';
        case "object":
            var k = [];
            for (var l in j) {
                if (j.hasOwnProperty(l)) {
                    k.push('"' + l + '":' + g(j[l]))
                }
            }
            return "{" + k.join(",") + "}"
        }
        return String(j).replace(/\s/g, " ").replace(/\'/g, '"')
    }

    function h(k) {
        if (k === null || k === undefined) {
            return false
        }
        var j = typeof k;
        return (j == "object" && k.push) ? "array" : j
    }
    if (window.attachEvent) {
        window.attachEvent("onbeforeunload", function () {
            __flash_unloadHandler = function () {};
            __flash_savedUnloadHandler = function () {}
        })
    }

    function b(j, m) {
        var l = [];
        for (var k in j) {
            if (j.hasOwnProperty(k)) {
                l[k] = m(j[k])
            }
        }
        return l
    }

    function a(q, s) {
        var o = f({},
        q);
        var r = document.all;
        var m = '<object width="' + o.width + '" height="' + o.height + '"';
        if (r && !o.id) {
            o.id = "_" + ("" + Math.random()).substring(9)
        }
        if (o.id) {
            m += ' id="' + o.id + '"'
        }
        o.src += ((o.src.indexOf("?") != -1 ? "&" : "?") + Math.random());
        if (o.w3c || !r) {
            m += ' data="../../../js/jquery/' + o.src + '" type="application/x-shockwave-flash"'
        } else {
            m += ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
        }
        m += ">";
        if (o.w3c || r) {
            m += '<param name="movie" value="' + o.src + '" />'
        }
        o.width = o.height = o.id = o.w3c = o.src = null;
        for (var j in o) {
            if (o[j] !== null) {
                m += '<param name="' + j + '" value="' + o[j] + '" />'
            }
        }
        var n = "";
        if (s) {
            for (var l in s) {
                if (s[l] !== null) {
                    n += l + "=" + (typeof s[l] == "object" ? g(s[l]) : s[l]) + "&"
                }
            }
            n = n.substring(0, n.length - 1);
            m += '<param name="flashvars" value=\'' + n + "' />"
        }
        m += "</object>";
        return m
    }

    function d(l, o, k) {
        var j = flashembed.getVersion();
        f(this, {
            getContainer: function () {
                return l
            },
            getConf: function () {
                return o
            },
            getVersion: function () {
                return j
            },
            getFlashvars: function () {
                return k
            },
            getApi: function () {
                return l.firstChild
            },
            getHTML: function () {
                return a(o, k)
            }
        });
        var p = o.version;
        var q = o.expressInstall;
        var n = !p || flashembed.isSupported(p);
        if (n) {
            o.onFail = o.version = o.expressInstall = null;
            l.innerHTML = a(o, k)
        } else {
            if (p && q && flashembed.isSupported([6, 65])) {
                f(o, {
                    src: q
                });
                k = {
                    MMredirectURL: location.href,
                    MMplayerType: "PlugIn",
                    MMdoctitle: document.title
                };
                l.innerHTML = a(o, k)
            } else {
                if (l.innerHTML.replace(/\s/g, "") !== "") {} else {
                    l.innerHTML = "<h2>Flash version " + p + " or greater is required</h2><h3>" + (j[0] > 0 ? "Your version is " + j : "You have no flash plugin installed") + "</h3>" + (l.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 (l.tagName == "A") {
                        l.onclick = function () {
                            location.href = "http://www.adobe.com/go/getflashplayer"
                        }
                    }
                }
            }
        }
        if (!n && o.onFail) {
            var m = o.onFail.call(this);
            if (typeof m == "string") {
                l.innerHTML = m
            }
        }
        if (document.all) {
            window[o.id] = document.getElementById(o.id)
        }
    }
    window.flashembed = function (k, l, j) {
        if (typeof k == "string") {
            var m = document.getElementById(k);
            if (m) {
                k = m
            } else {
                c(function () {
                    flashembed(k, l, j)
                });
                return
            }
        }
        if (!k) {
            return
        }
        var n = {
            width: "100%",
            height: "100%",
            allowfullscreen: true,
            allowscriptaccess: "always",
            quality: "high",
            version: null,
            onFail: null,
            expressInstall: null,
            w3c: false
        };
        if (typeof l == "string") {
            l = {
                src: l
            }
        }
        f(n, l);
        return new d(k, n, j)
    };
    f(window.flashembed, {
        getVersion: function () {
            var l = [0, 0];
            if (navigator.plugins && typeof navigator.plugins["Shockwave Flash"] == "object") {
                var k = navigator.plugins["Shockwave Flash"].description;
                if (typeof k != "undefined") {
                    k = k.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
                    var m = parseInt(k.replace(/^(.*)\..*$/, "$1"), 10);
                    var q = /r/.test(k) ? parseInt(k.replace(/^.*r(.*)$/, "$1"), 10) : 0;
                    l = [m, q]
                }
            } else {
                if (window.ActiveXObject) {
                    try {
                        var o = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")
                    } catch(p) {
                        try {
                            o = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
                            l = [6, 0];
                            o.AllowScriptAccess = "always"
                        } catch(j) {
                            if (l[0] == 6) {
                                return l
                            }
                        }
                        try {
                            o = new ActiveXObject("ShockwaveFlash.ShockwaveFlash")
                        } catch(n) {}
                    }
                    if (typeof o == "object") {
                        k = o.GetVariable("$version");
                        if (typeof k != "undefined") {
                            k = k.replace(/^\S+\s+(.*)$/, "$1").split(",");
                            l = [parseInt(k[0], 10), parseInt(k[2], 10)]
                        }
                    }
                }
            }
            return l
        },
        isSupported: function (j) {
            var l = flashembed.getVersion();
            var k = (l[0] > j[0]) || (l[0] == j[0] && l[1] >= j[1]);
            return k
        },
        domReady: c,
        asString: g,
        getHTML: a
    });
    if (e) {
        jQuery.tools = jQuery.tools || {
            version: {}
        };
        jQuery.tools.version.flashembed = "1.0.3";
        jQuery.fn.flashembed = function (k, j) {
            var l = null;
            this.each(function () {
                l = flashembed(this, k, j)
            });
            return k.api === false ? this : l
        }
    }
})();