/*!
 * jQuery Tools v1.2.5 - The missing UI library for the Web
 * 
 * tooltip/tooltip.js
 * tooltip/tooltip.dynamic.js
 * tooltip/tooltip.slide.js
 * 
 * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
 * 
 * http://flowplayer.org/tools/
 * 
 */
(function(a) {

    a.tools = a.tools || {version:"v1.2.5"},a.tools.tooltip = {conf:{effect:"toggle",fadeOutSpeed:"fast",predelay:0,delay:30,opacity:1,tip:0,position:["top","center"],offset:[0,0],relative:!1,cancelDefault:!0,events:{def:"mouseenter,mouseleave",input:"focus,blur",widget:"focus mouseenter,blur mouseleave",tooltip:"mouseenter,mouseleave"},layout:"<div/>",tipClass:"tooltip"},addEffect:function(a, c, d) {
        b[a] = [c,d]
    }};
    var b = {toggle:[function(a) {
        var b = this.getConf(),c = this.getTip(),d = b.opacity;
        d < 1 && c.css({opacity:d}),c.show(),a.call()
    },function(a) {
        this.getTip().hide(),a.call()
    }],fade:[function(a) {
        var b = this.getConf();
        this.getTip().fadeTo(b.fadeInSpeed, b.opacity, a)
    },function(a) {
        this.getTip().fadeOut(this.getConf().fadeOutSpeed, a)
    }]};

    function c(b, c, d) {
        var e = d.relative ? b.position().top : b.offset().top,f = d.relative ? b.position().left : b.offset().left,g = d.position[0];
        e -= c.outerHeight() - d.offset[0],f += b.outerWidth() + d.offset[1],/iPad/i.test(navigator.userAgent) && (e -= a(window).scrollTop());
        var h = c.outerHeight() + b.outerHeight();
        g == "center" && (e += h / 2),g == "bottom" && (e += h),g = d.position[1];
        var i = c.outerWidth() + b.outerWidth();
        g == "center" && (f -= i / 2),g == "left" && (f -= i);
        return{top:e,left:f}
    }

    function d(d, e) {
        var f = this,g = d.add(f),h,i = 0,j = 0,k = d.attr("title"),l = d.attr("data-tooltip"),m = b[e.effect],n,o = d.is(":input"),p = o && d.is(":checkbox, :radio, select, :button, :submit"),q = d.attr("type"),r = e.events[q] || e.events[o ? p ? "widget" : "input" : "def"];
        if (!m)throw"Nonexistent effect \"" + e.effect + "\"";
        r = r.split(/,\s*/);
        if (r.length != 2)throw"Tooltip: bad events configuration for " + q;
        d.bind(r[0],
            function(a) {
                clearTimeout(i),e.predelay ? j = setTimeout(function() {
                    f.show(a)
                }, e.predelay) : f.show(a)
            }).bind(r[1], function(a) {
            clearTimeout(j),e.delay ? i = setTimeout(function() {
                f.hide(a)
            }, e.delay) : f.hide(a)
        }),k && e.cancelDefault && (d.removeAttr("title"),d.data("title", k)),a.extend(f, {show:function(b) {
            if (!h) {
                l ? h = a(l) : e.tip ? h = a(e.tip).eq(0) : k ? h = a(e.layout).addClass(e.tipClass).appendTo(document.body).hide().append(k) : (h = d.next(),h.length || (h = d.parent().next()));
                if (!h.length)throw"Cannot find tooltip for " + d
            }
            if (f.isShown())return f;
            h.stop(!0, !0);
            var o = c(d, h, e);
            e.tip && h.html(d.data("title")),b = b || a.Event(),b.type = "onBeforeShow",g.trigger(b, [o]);
            if (b.isDefaultPrevented())return f;
            o = c(d, h, e),h.css({position:"absolute",top:o.top,left:o.left}),n = !0,m[0].call(f, function() {
                b.type = "onShow",n = "full",g.trigger(b)
            });
            var p = e.events.tooltip.split(/,\s*/);
            h.data("__set") || (h.bind(p[0], function() {
                clearTimeout(i),clearTimeout(j)
            }),p[1] && !d.is("input:not(:checkbox, :radio), textarea") && h.bind(p[1], function(a) {
                a.relatedTarget != d[0] && d.trigger(r[1].split(" ")[0])
            }),h.data("__set", !0));
            return f
        },hide:function(c) {
            if (!h || !f.isShown())return f;
            c = c || a.Event(),c.type = "onBeforeHide",g.trigger(c);
            if (!c.isDefaultPrevented()) {
                n = !1,b[e.effect][1].call(f, function() {
                    c.type = "onHide",g.trigger(c)
                });
                return f
            }
        },isShown:function(a) {
            return a ? n == "full" : n
        },getConf:function() {
            return e
        },getTip:function() {
            return h
        },getTrigger:function() {
            return d
        }}),a.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","), function(b, c) {
            a.isFunction(e[c]) && a(f).bind(c, e[c]),f[c] = function(b) {
                b && a(f).bind(c, b);
                return f
            }
        })
    }

    a.fn.tooltip = function(b) {

        var c = this.data("tooltip");
        if (c)return c;
        b = a.extend(!0, {}, a.tools.tooltip.conf, b),typeof b.position == "string" && (b.position = b.position.split(/,?\s/)),this.each(function() {
            c = new d(a(this), b),a(this).data("tooltip", c)
        });
        return b.api ? c : this
    }
})(jQuery);
(function(a) {
    var b = a.tools.tooltip;
    b.dynamic = {conf:{classNames:"top right bottom left"}};
    function c(b) {
        var c = a(window),d = c.width() + c.scrollLeft(),e = c.height() + c.scrollTop();
        return[b.offset().top <= c.scrollTop(),d <= b.offset().left + b.width(),e <= b.offset().top + b.height(),c.scrollLeft() >= b.offset().left]
    }

    function d(a) {
        var b = a.length;
        while (b--)if (a[b])return!1;
        return!0
    }

    a.fn.dynamic = function(e) {
        typeof e == "number" && (e = {speed:e}),e = a.extend({}, b.dynamic.conf, e);
        var f = e.classNames.split(/\s/),g;
        this.each(function() {
            var b = a(this).tooltip().onBeforeShow(function(b, h) {
                var i = this.getTip(),j = this.getConf();
                g || (g = [j.position[0],j.position[1],j.offset[0],j.offset[1],a.extend({}, j)]),a.extend(j, g[4]),j.position = [g[0],g[1]],j.offset = [g[2],g[3]],i.css({visibility:"hidden",position:"absolute",top:h.top,left:h.left}).show();
                var k = c(i);
                if (!d(k)) {
                    k[2] && (a.extend(j, e.top),j.position[0] = "top",i.addClass(f[0])),k[3] && (a.extend(j, e.right),j.position[1] = "right",i.addClass(f[1])),k[0] && (a.extend(j, e.bottom),j.position[0] = "bottom",i.addClass(f[2])),k[1] && (a.extend(j, e.left),j.position[1] = "left",i.addClass(f[3]));
                    if (k[0] || k[2])j.offset[0] *= -1;
                    if (k[1] || k[3])j.offset[1] *= -1
                }
                i.css({visibility:"visible"}).hide()
            });
            b.onBeforeShow(function() {
                var a = this.getConf(),b = this.getTip();
                setTimeout(function() {
                    a.position = [g[0],g[1]],a.offset = [g[2],g[3]]
                }, 0)
            }),b.onHide(function() {
                var a = this.getTip();
                a.removeClass(e.classNames)
            }),ret = b
        });
        return e.api ? ret : this
    }
})(jQuery);
(function(a) {
    var b = a.tools.tooltip;
    a.extend(b.conf, {direction:"up",bounce:!1,slideOffset:10,slideInSpeed:200,slideOutSpeed:200,slideFade:!a.browser.msie});
    var c = {up:["-","top"],down:["+","top"],left:["-","left"],right:["+","left"]};
    b.addEffect("slide", function(a) {
        var b = this.getConf(),d = this.getTip(),e = b.slideFade ? {opacity:b.opacity} : {},f = c[b.direction] || c.up;
        e[f[1]] = f[0] + "=" + b.slideOffset,b.slideFade && d.css({opacity:0}),d.show().animate(e, b.slideInSpeed, a)
    }, function(b) {
        var d = this.getConf(),e = d.slideOffset,f = d.slideFade ? {opacity:0} : {},g = c[d.direction] || c.up,h = "" + g[0];
        d.bounce && (h = h == "+" ? "-" : "+"),f[g[1]] = h + "=" + e,this.getTip().animate(f, d.slideOutSpeed, function() {
            a(this).hide(),b.call()
        })
    })
})(jQuery);

