/*!
 * jQuery Tools v1.2.6 - The missing UI library for the Web
 * 
 * overlay/overlay.js
 * overlay/overlay.apple.js
 * scrollable/scrollable.js
 * scrollable/scrollable.autoscroll.js
 * scrollable/scrollable.navigator.js
 * tabs/tabs.slideshow.js
 * toolbox/toolbox.expose.js
 * toolbox/toolbox.flashembed.js
 * toolbox/toolbox.history.js
 * toolbox/toolbox.mousewheel.js
 * tooltip/tooltip.js
 * tooltip/tooltip.dynamic.js
 * tooltip/tooltip.slide.js
 * 
 * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
 * 
 * http://flowplayer.org/tools/
 * 
 * jquery.event.wheel.js - rev 1 
 * Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)
 * Liscensed under the MIT License (MIT-LICENSE.txt)
 * http://www.opensource.org/licenses/mit-license.php
 * Created: 2008-07-01 | Updated: 2008-07-14
 * 
 * -----
 * 
 */
(function (a) {
    a.tools = a.tools || {version:"v1.2.6"}, a.tools.overlay = {addEffect:function (a, b, d) {
        c[a] = [b, d]
    }, conf:{close:null, closeOnClick:!0, closeOnEsc:!0, closeSpeed:"fast", effect:"default", fixed:!a.browser.msie || a.browser.version > 6, left:"center", load:!1, mask:null, oneInstance:!0, speed:"normal", target:null, top:"10%"}};
    var b = [], c = {};
    a.tools.overlay.addEffect("default", function (b, c) {
        var d = this.getConf(), e = a(window);
        d.fixed || (b.top += e.scrollTop(), b.left += e.scrollLeft()), b.position = d.fixed ? "fixed" : "absolute", this.getOverlay().css(b).fadeIn(d.speed, c)
    }, function (a) {
        this.getOverlay().fadeOut(this.getConf().closeSpeed, a)
    });
    function d(d, e) {
        var f = this, g = d.add(f), h = a(window), i, j, k, l = a.tools.expose && (e.mask || e.expose), m = Math.random().toString().slice(10);
        l && (typeof l == "string" && (l = {color:l}), l.closeOnClick = l.closeOnEsc = !1);
        var n = e.target || d.attr("rel");
        j = n ? a(n) : null || d;
        if (!j.length)throw"Could not find Overlay: " + n;
        d && d.index(j) == -1 && d.click(function (a) {
            f.load(a);
            return a.preventDefault()
        }), a.extend(f, {load:function (d) {
            if (f.isOpened())return f;
            var i = c[e.effect];
            if (!i)throw"Overlay: cannot find effect : \"" + e.effect + "\"";
            e.oneInstance && a.each(b, function () {
                this.close(d)
            }), d = d || a.Event(), d.type = "onBeforeLoad", g.trigger(d);
            if (d.isDefaultPrevented())return f;
            k = !0, l && a(j).expose(l);
            var n = e.top, o = e.left, p = j.outerWidth({margin:!0}), q = j.outerHeight({margin:!0});
            typeof n == "string" && (n = n == "center" ? Math.max((h.height() - q) / 2, 0) : parseInt(n, 10) / 100 * h.height()), o == "center" && (o = Math.max((h.width() - p) / 2, 0)), i[0].call(f, {top:n, left:o}, function () {
                k && (d.type = "onLoad", g.trigger(d))
            }), l && e.closeOnClick && a.mask.getMask().one("click", f.close), e.closeOnClick && a(document).bind("click." + m, function (b) {
                a(b.target).parents(j).length || f.close(b)
            }), e.closeOnEsc && a(document).bind("keydown." + m, function (a) {
                a.keyCode == 27 && f.close(a)
            });
            return f
        }, close:function (b) {
            if (!f.isOpened())return f;
            b = b || a.Event(), b.type = "onBeforeClose", g.trigger(b);
            if (!b.isDefaultPrevented()) {
                k = !1, c[e.effect][1].call(f, function () {
                    b.type = "onClose", g.trigger(b)
                }), a(document).unbind("click." + m).unbind("keydown." + m), l && a.mask.close();
                return f
            }
        }, getOverlay:function () {
            return j
        }, getTrigger:function () {
            return d
        }, getClosers:function () {
            return i
        }, isOpened:function () {
            return k
        }, getConf:function () {
            return e
        }}), a.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".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
            }
        }), i = j.find(e.close || ".close"), !i.length && !e.close && (i = a("<a class=\"close\"></a>"), j.prepend(i)), i.click(function (a) {
            f.close(a)
        }), e.load && f.load()
    }

    a.fn.overlay = function (c) {
        var e = this.data("overlay");
        if (e)return e;
        a.isFunction(c) && (c = {onBeforeLoad:c}), c = a.extend(!0, {}, a.tools.overlay.conf, c), this.each(function () {
            e = new d(a(this), c), b.push(e), a(this).data("overlay", e)
        });
        return c.api ? e : this
    }
})(jQuery);
(function (a) {
    var b = a.tools.overlay, c = a(window);
    a.extend(b.conf, {start:{top:null, left:null}, fadeInSpeed:"fast", zIndex:9999});
    function d(a) {
        var b = a.offset();
        return{top:b.top + a.height() / 2, left:b.left + a.width() / 2}
    }

    var e = function (b, e) {
        var f = this.getOverlay(), g = this.getConf(), h = this.getTrigger(), i = this, j = f.outerWidth({margin:!0}), k = f.data("img"), l = g.fixed ? "fixed" : "absolute";
        if (!k) {
            var m = f.css("backgroundImage");
            if (!m)throw"background-image CSS property not set for overlay";
            m = m.slice(m.indexOf("(") + 1, m.indexOf(")")).replace(/\"/g, ""), f.css("backgroundImage", "none"), k = a("<img src=\"" + m + "\"/>"), k.css({border:0, display:"none"}).width(j), a("body").append(k), f.data("img", k)
        }
        var n = g.start.top || Math.round(c.height() / 2), o = g.start.left || Math.round(c.width() / 2);
        if (h) {
            var p = d(h);
            n = p.top, o = p.left
        }
        g.fixed ? (n -= c.scrollTop(), o -= c.scrollLeft()) : (b.top += c.scrollTop(), b.left += c.scrollLeft()), k.css({position:"absolute", top:n, left:o, width:0, zIndex:g.zIndex}).show(), b.position = l, f.css(b), k.animate({top:f.css("top"), left:f.css("left"), width:j}, g.speed,
            function () {
                f.css("zIndex", g.zIndex + 1).fadeIn(g.fadeInSpeed, function () {
                    i.isOpened() && !a(this).index(f) ? e.call() : f.hide()
                })
            }).css("position", l)
    }, f = function (b) {
        var e = this.getOverlay().hide(), f = this.getConf(), g = this.getTrigger(), h = e.data("img"), i = {top:f.start.top, left:f.start.left, width:0};
        g && a.extend(i, d(g)), f.fixed && h.css({position:"absolute"}).animate({top:"+=" + c.scrollTop(), left:"+=" + c.scrollLeft()}, 0), h.animate(i, f.closeSpeed, b)
    };
    b.addEffect("apple", e, f)
})(jQuery);
(function (a) {
    a.tools = a.tools || {version:"v1.2.6"}, a.tools.scrollable = {conf:{activeClass:"active", circular:!1, clonedClass:"cloned", disabledClass:"disabled", easing:"swing", initialIndex:0, item:"> *", items:".items", keyboard:!0, mousewheel:!1, next:".next", prev:".prev", size:1, speed:400, vertical:!1, touch:!0, wheelSpeed:0}};
    function b(a, b) {
        var c = parseInt(a.css(b), 10);
        if (c)return c;
        var d = a[0].currentStyle;
        return d && d.width && parseInt(d.width, 10)
    }

    function c(b, c) {
        var d = a(c);
        return d.length < 2 ? d : b.parent().find(c)
    }

    var d;

    function e(b, e) {
        var f = this, g = b.add(f), h = b.children(), i = 0, j = e.vertical;
        d || (d = f), h.length > 1 && (h = a(e.items, b)), e.size > 1 && (e.circular = !1), a.extend(f, {getConf:function () {
            return e
        }, getIndex:function () {
            return i
        }, getSize:function () {
            return f.getItems().size()
        }, getNaviButtons:function () {
            return n.add(o)
        }, getRoot:function () {
            return b
        }, getItemWrap:function () {
            return h
        }, getItems:function () {
            return h.find(e.item).not("." + e.clonedClass)
        }, move:function (a, b) {
            return f.seekTo(i + a, b)
        }, next:function (a) {
            return f.move(e.size, a)
        }, prev:function (a) {
            return f.move(-e.size, a)
        }, begin:function (a) {
            return f.seekTo(0, a)
        }, end:function (a) {
            return f.seekTo(f.getSize() - 1, a)
        }, focus:function () {
            d = f;
            return f
        }, addItem:function (b) {
            b = a(b), e.circular ? (h.children().last().before(b), h.children().first().replaceWith(b.clone().addClass(e.clonedClass))) : (h.append(b), o.removeClass("disabled")), g.trigger("onAddItem", [b]);
            return f
        }, seekTo:function (b, c, k) {
            b.jquery || (b *= 1);
            if (e.circular && b === 0 && i == -1 && c !== 0)return f;
            if (!e.circular && b < 0 || b > f.getSize() || b < -1)return f;
            var l = b;
            b.jquery ? b = f.getItems().index(b) : l = f.getItems().eq(b);
            var m = a.Event("onBeforeSeek");
            if (!k) {
                g.trigger(m, [b, c]);
                if (m.isDefaultPrevented() || !l.length)return f
            }
            var n = j ? {top:-l.position().top} : {left:-l.position().left};
            i = b, d = f, c === undefined && (c = e.speed), h.animate(n, c, e.easing, k || function () {
                g.trigger("onSeek", [b])
            });
            return f
        }}), a.each(["onBeforeSeek", "onSeek", "onAddItem"], 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
            }
        });
        if (e.circular) {
            var k = f.getItems().slice(-1).clone().prependTo(h), l = f.getItems().eq(1).clone().appendTo(h);
            k.add(l).addClass(e.clonedClass), f.onBeforeSeek(function (a, b, c) {
                if (!a.isDefaultPrevented()) {
                    if (b == -1) {
                        f.seekTo(k, c, function () {
                            f.end(0)
                        });
                        return a.preventDefault()
                    }
                    b == f.getSize() && f.seekTo(l, c, function () {
                        f.begin(0)
                    })
                }
            });
            var m = b.parents().add(b).filter(function () {
                if (a(this).css("display") === "none")return!0
            });
            m.length ? (m.show(), f.seekTo(0, 0, function () {
            }), m.hide()) : f.seekTo(0, 0, function () {
            })
        }
        var n = c(b, e.prev).click(function (a) {
            a.stopPropagation(), f.prev()
        }), o = c(b, e.next).click(function (a) {
            a.stopPropagation(), f.next()
        });
        e.circular || (f.onBeforeSeek(function (a, b) {
            setTimeout(function () {
                a.isDefaultPrevented() || (n.toggleClass(e.disabledClass, b <= 0), o.toggleClass(e.disabledClass, b >= f.getSize() - 1))
            }, 1)
        }), e.initialIndex || n.addClass(e.disabledClass)), f.getSize() < 2 && n.add(o).addClass(e.disabledClass), e.mousewheel && a.fn.mousewheel && b.mousewheel(function (a, b) {
            if (e.mousewheel) {
                f.move(b < 0 ? 1 : -1, e.wheelSpeed || 50);
                return!1
            }
        });
        if (e.touch) {
            var p = {};
            h[0].ontouchstart = function (a) {
                var b = a.touches[0];
                p.x = b.clientX, p.y = b.clientY
            }, h[0].ontouchmove = function (a) {
                if (a.touches.length == 1 && !h.is(":animated")) {
                    var b = a.touches[0], c = p.x - b.clientX, d = p.y - b.clientY;
                    f[j && d > 0 || !j && c > 0 ? "next" : "prev"](), a.preventDefault()
                }
            }
        }
        e.keyboard && a(document).bind("keydown.scrollable", function (b) {
            if (!(!e.keyboard || b.altKey || b.ctrlKey || b.metaKey || a(b.target).is(":input"))) {
                if (e.keyboard != "static" && d != f)return;
                var c = b.keyCode;
                if (j && (c == 38 || c == 40)) {
                    f.move(c == 38 ? -1 : 1);
                    return b.preventDefault()
                }
                if (!j && (c == 37 || c == 39)) {
                    f.move(c == 37 ? -1 : 1);
                    return b.preventDefault()
                }
            }
        }), e.initialIndex && f.seekTo(e.initialIndex, 0, function () {
        })
    }

    a.fn.scrollable = function (b) {
        var c = this.data("scrollable");
        if (c)return c;
        b = a.extend({}, a.tools.scrollable.conf, b), this.each(function () {
            c = new e(a(this), b), a(this).data("scrollable", c)
        });
        return b.api ? c : this
    }
})(jQuery);
(function (a) {
    var b = a.tools.scrollable;
    b.autoscroll = {conf:{autoplay:!0, interval:3e3, autopause:!0}}, a.fn.autoscroll = function (c) {
        typeof c == "number" && (c = {interval:c});
        var d = a.extend({}, b.autoscroll.conf, c), e;
        this.each(function () {
            var b = a(this).data("scrollable"), c = b.getRoot(), f, g = !1;

            function h() {
                f = setTimeout(function () {
                    b.next()
                }, d.interval)
            }

            b && (e = b), b.play = function () {
                f || (g = !1, c.bind("onSeek", h), h())
            }, b.pause = function () {
                f = clearTimeout(f), c.unbind("onSeek", h)
            }, b.resume = function () {
                g || b.play()
            }, b.stop = function () {
                g = !0, b.pause()
            }, d.autopause && c.add(b.getNaviButtons()).hover(b.pause, b.resume), d.autoplay && b.play()
        });
        return d.api ? e : this
    }
})(jQuery);
(function (a) {
    var b = a.tools.scrollable;
    b.navigator = {conf:{navi:".navi", naviItem:null, activeClass:"active", indexed:!1, idPrefix:null, history:!1}};
    function c(b, c) {
        var d = a(c);
        return d.length < 2 ? d : b.parent().find(c)
    }

    a.fn.navigator = function (d) {
        typeof d == "string" && (d = {navi:d}), d = a.extend({}, b.navigator.conf, d);
        var e;
        this.each(function () {
            var b = a(this).data("scrollable"), f = d.navi.jquery ? d.navi : c(b.getRoot(), d.navi), g = b.getNaviButtons(), h = d.activeClass, i = d.history && history.pushState, j = b.getConf().size;
            b && (e = b), b.getNaviButtons = function () {
                return g.add(f)
            }, i && (history.pushState({i:0}), a(window).bind("popstate", function (a) {
                var c = a.originalEvent.state;
                c && b.seekTo(c.i)
            }));
            function k(a, c, d) {
                b.seekTo(c), d.preventDefault(), i && history.pushState({i:c})
            }

            function l() {
                return f.find(d.naviItem || "> *")
            }

            function m(b) {
                var c = a("<" + (d.naviItem || "a") + "/>").click(function (c) {
                    k(a(this), b, c)
                });
                b === 0 && c.addClass(h), d.indexed && c.text(b + 1), d.idPrefix && c.attr("id", d.idPrefix + b);
                return c.appendTo(f)
            }

            l().length ? l().each(function (b) {
                a(this).click(function (c) {
                    k(a(this), b, c)
                })
            }) : a.each(b.getItems(), function (a) {
                a % j == 0 && m(a)
            }), b.onBeforeSeek(function (a, b) {
                setTimeout(function () {
                    if (!a.isDefaultPrevented()) {
                        var c = b / j, d = l().eq(c);
                        d.length && l().removeClass(h).eq(c).addClass(h)
                    }
                }, 1)
            }), b.onAddItem(function (a, c) {
                var d = b.getItems().index(c);
                d % j == 0 && m(d)
            })
        });
        return d.api ? e : this
    }
})(jQuery);

(function (a) {
    a.tools = a.tools || {version:"v1.2.6"};
    var b;
    b = a.tools.expose = {conf:{maskId:"exposeMask", loadSpeed:"slow", closeSpeed:"fast", closeOnClick:!0, closeOnEsc:!0, zIndex:9998, opacity:.8, startOpacity:0, color:"#fff", onLoad:null, onClose:null}};
    function c() {
        if (a.browser.msie) {
            var b = a(document).height(), c = a(window).height();
            return[window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, b - c < 20 ? c : b]
        }
        return[a(document).width(), a(document).height()]
    }

    function d(b) {
        if (b)return b.call(a.mask)
    }

    var e, f, g, h, i;
    a.mask = {load:function (j, k) {
        if (g)return this;
        typeof j == "string" && (j = {color:j}), j = j || h, h = j = a.extend(a.extend({}, b.conf), j), e = a("#" + j.maskId), e.length || (e = a("<div/>").attr("id", j.maskId), a("body").append(e));
        var l = c();
        e.css({position:"absolute", top:0, left:0, width:l[0], height:l[1], display:"none", opacity:j.startOpacity, zIndex:j.zIndex}), j.color && e.css("backgroundColor", j.color);
        if (d(j.onBeforeLoad) === !1)return this;
        j.closeOnEsc && a(document).bind("keydown.mask", function (b) {
            b.keyCode == 27 && a.mask.close(b)
        }), j.closeOnClick && e.bind("click.mask", function (b) {
            a.mask.close(b)
        }), a(window).bind("resize.mask", function () {
            a.mask.fit()
        }), k && k.length && (i = k.eq(0).css("zIndex"), a.each(k, function () {
            var b = a(this);
            /relative|absolute|fixed/i.test(b.css("position")) || b.css("position", "relative")
        }), f = k.css({zIndex:Math.max(j.zIndex + 1, i == "auto" ? 0 : i)})), e.css({display:"block"}).fadeTo(j.loadSpeed, j.opacity, function () {
            a.mask.fit(), d(j.onLoad), g = "full"
        }), g = !0;
        return this
    }, close:function () {
        if (g) {
            if (d(h.onBeforeClose) === !1)return this;
            e.fadeOut(h.closeSpeed, function () {
                d(h.onClose), f && f.css({zIndex:i}), g = !1
            }), a(document).unbind("keydown.mask"), e.unbind("click.mask"), a(window).unbind("resize.mask")
        }
        return this
    }, fit:function () {
        if (g) {
            var a = c();
            e.css({width:a[0], height:a[1]})
        }
    }, getMask:function () {
        return e
    }, isLoaded:function (a) {
        return a ? g == "full" : g
    }, getConf:function () {
        return h
    }, getExposed:function () {
        return f
    }}, a.fn.mask = function (b) {
        a.mask.load(b);
        return this
    }, a.fn.expose = function (b) {
        a.mask.load(b, this);
        return this
    }
})(jQuery);
(function () {
    var a = document.all, b = "http://www.adobe.com/go/getflashplayer", c = typeof jQuery == "function", d = /(\d+)[^\d]+(\d+)[^\d]*(\d*)/, e = {width:"100%", height:"100%", id:"_" + ("" + Math.random()).slice(9), allowfullscreen:!0, allowscriptaccess:"always", quality:"high", version:[3, 0], onFail:null, expressInstall:null, w3c:!1, cachebusting:!1};
    window.attachEvent && window.attachEvent("onbeforeunload", function () {
        __flash_unloadHandler = function () {
        }, __flash_savedUnloadHandler = function () {
        }
    });
    function f(a, b) {
        if (b)for (var c in b)b.hasOwnProperty(c) && (a[c] = b[c]);
        return a
    }

    function g(a, b) {
        var c = [];
        for (var d in a)a.hasOwnProperty(d) && (c[d] = b(a[d]));
        return c
    }

    window.flashembed = function (a, b, c) {
        typeof a == "string" && (a = document.getElementById(a.replace("#", "")));
        if (a) {
            typeof b == "string" && (b = {src:b});
            return new j(a, f(f({}, e), b), c)
        }
    };
    var h = f(window.flashembed, {conf:e, getVersion:function () {
        var a, b;
        try {
            b = navigator.plugins["Shockwave Flash"].description.slice(16)
        } catch (c) {
            try {
                a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"), b = a && a.GetVariable("$version")
            } catch (e) {
                try {
                    a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"), b = a && a.GetVariable("$version")
                } catch (f) {
                }
            }
        }
        b = d.exec(b);
        return b ? [b[1], b[3]] : [0, 0]
    }, asString:function (a) {
        if (a === null || a === undefined)return null;
        var b = typeof a;
        b == "object" && a.push && (b = "array");
        switch (b) {
            case"string":
                a = a.replace(new RegExp("([\"\\\\])", "g"), "\\$1"), a = a.replace(/^\s?(\d+\.?\d*)%/, "$1pct");
                return"\"" + a + "\"";
            case"array":
                return"[" + g(a,
                    function (a) {
                        return h.asString(a)
                    }).join(",") + "]";
            case"function":
                return"\"function()\"";
            case"object":
                var c = [];
                for (var d in a)a.hasOwnProperty(d) && c.push("\"" + d + "\":" + h.asString(a[d]));
                return"{" + c.join(",") + "}"
        }
        return String(a).replace(/\s/g, " ").replace(/\'/g, "\"")
    }, getHTML:function (b, c) {
        b = f({}, b);
        var d = "<object width=\"" + b.width + "\" height=\"" + b.height + "\" id=\"" + b.id + "\" name=\"" + b.id + "\"";
        b.cachebusting && (b.src += (b.src.indexOf("?") != -1 ? "&" : "?") + Math.random()), b.w3c || !a ? d += " data=\"" + b.src + "\" type=\"application/x-shockwave-flash\"" : d += " classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"", d += ">";
        if (b.w3c || a)d += "<param name=\"movie\" value=\"" + b.src + "\" />";
        b.width = b.height = b.id = b.w3c = b.src = null, b.onFail = b.version = b.expressInstall = null;
        for (var e in b)b[e] && (d += "<param name=\"" + e + "\" value=\"" + b[e] + "\" />");
        var g = "";
        if (c) {
            for (var i in c)if (c[i]) {
                var j = c[i];
                g += i + "=" + encodeURIComponent(/function|object/.test(typeof j) ? h.asString(j) : j) + "&"
            }
            g = g.slice(0, -1), d += "<param name=\"flashvars\" value='" + g + "' />"
        }
        d += "</object>";
        return d
    }, isSupported:function (a) {
        return i[0] > a[0] || i[0] == a[0] && i[1] >= a[1]
    }}), i = h.getVersion();

    function j(c, d, e) {
        if (h.isSupported(d.version))c.innerHTML = h.getHTML(d, e); else if (d.expressInstall && h.isSupported([6, 65]))c.innerHTML = h.getHTML(f(d, {src:d.expressInstall}), {MMredirectURL:location.href, MMplayerType:"PlugIn", MMdoctitle:document.title}); else {
            c.innerHTML.replace(/\s/g, "") || (c.innerHTML = "<h2>Flash version " + d.version + " or greater is required</h2><h3>" + (i[0] > 0 ? "Your version is " + i : "You have no flash plugin installed") + "</h3>" + (c.tagName == "A" ? "<p>Click here to download latest version</p>" : "<p>Download latest version from <a href='" + b + "'>here</a></p>"), c.tagName == "A" && (c.onclick = function () {
                location.href = b
            }));
            if (d.onFail) {
                var g = d.onFail.call(this);
                typeof g == "string" && (c.innerHTML = g)
            }
        }
        a && (window[d.id] = document.getElementById(d.id)), f(this, {getRoot:function () {
            return c
        }, getOptions:function () {
            return d
        }, getConf:function () {
            return e
        }, getApi:function () {
            return c.firstChild
        }})
    }

    c && (jQuery.tools = jQuery.tools || {version:"v1.2.6"}, jQuery.tools.flashembed = {conf:e}, jQuery.fn.flashembed = function (a, b) {
        return this.each(function () {
            jQuery(this).data("flashembed", flashembed(this, a, b))
        })
    })
})();
(function (a) {
    var b, c, d, e;
    a.tools = a.tools || {version:"v1.2.6"}, a.tools.history = {init:function (g) {
        e || (a.browser.msie && a.browser.version < "8" ? c || (c = a("<iframe/>").attr("src", "javascript:false;").hide().get(0), a("body").prepend(c), setInterval(function () {
            var d = c.contentWindow.document, e = d.location.hash;
            b !== e && a(window).trigger("hash", e)
        }, 100), f(location.hash || "#")) : setInterval(function () {
            var c = location.hash;
            c !== b && a(window).trigger("hash", c)
        }, 100), d = d ? d.add(g) : g, g.click(function (b) {
            var d = a(this).attr("href");
            c && f(d);
            if (d.slice(0, 1) != "#") {
                location.href = "#" + d;
                return b.preventDefault()
            }
        }), e = !0)
    }};
    function f(a) {
        if (a) {
            var b = c.contentWindow.document;
            b.open().close(), b.location.hash = a
        }
    }

    a(window).bind("hash", function (c, e) {
        e ? d.filter(
            function () {
                var b = a(this).attr("href");
                return b == e || b == e.replace("#", "")
            }).trigger("history", [e]) : d.eq(0).trigger("history", [e]), b = e
    }), a.fn.history = function (b) {
        a.tools.history.init(this);
        return this.bind("history", b)
    }
})(jQuery);
(function (a) {
    a.fn.mousewheel = function (a) {
        return this[a ? "bind" : "trigger"]("wheel", a)
    }, a.event.special.wheel = {setup:function () {
        a.event.add(this, b, c, {})
    }, teardown:function () {
        a.event.remove(this, b, c)
    }};
    var b = a.browser.mozilla ? "DOMMouseScroll" + (a.browser.version < "1.9" ? " mousemove" : "") : "mousewheel";

    function c(b) {
        switch (b.type) {
            case"mousemove":
                return a.extend(b.data, {clientX:b.clientX, clientY:b.clientY, pageX:b.pageX, pageY:b.pageY});
            case"DOMMouseScroll":
                a.extend(b, b.data), b.delta = -b.detail / 3;
                break;
            case"mousewheel":
                b.delta = b.wheelDelta / 120
        }
        b.type = "wheel";
        return a.event.handle.call(this, b, b.delta)
    }
})(jQuery);
(function (a) {
    a.tools = a.tools || {version:"v1.2.6"}, a.tools.tooltip = {conf:{effect:"toggle", fadeOutSpeed:"fast", predelay:0, delay:30, opacity:1, tip:0, fadeIE:!1, 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 (b) {
        var c = this.getConf();
        !a.browser.msie || c.fadeIE ? this.getTip().fadeTo(c.fadeInSpeed, c.opacity, b) : (this.getTip().show(), b())
    }, function (b) {
        var c = this.getConf();
        !a.browser.msie || c.fadeIE ? this.getTip().fadeOut(c.fadeOutSpeed, b) : (this.getTip().hide(), b())
    }]};

    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 = 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.unbind(p[0]).bind(p[0], function () {
                clearTimeout(i), clearTimeout(j)
            }), p[1] && !d.is("input:not(:checkbox, :radio), textarea") && h.unbind(p[1]).bind(p[1], function (a) {
                a.relatedTarget != d[0] && d.trigger(r[1].split(" ")[0])
            }), e.tip || h.data("__set", !0));
            return f
        }, hide:function (c) {
            if (!h || !f.isShown())return f;
            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 = a.extend(!0, {}, e), g = e.classNames.split(/\s/), h;
        this.each(function () {
            var b = a(this).tooltip().onBeforeShow(function (b, e) {
                var i = this.getTip(), j = this.getConf();
                h || (h = [j.position[0], j.position[1], j.offset[0], j.offset[1], a.extend({}, j)]), a.extend(j, h[4]), j.position = [h[0], h[1]], j.offset = [h[2], h[3]], i.css({visibility:"hidden", position:"absolute", top:e.top, left:e.left}).show();
                var k = a.extend(!0, {}, f), l = c(i);
                if (!d(l)) {
                    l[2] && (a.extend(j, k.top), j.position[0] = "top", i.addClass(g[0])), l[3] && (a.extend(j, k.right), j.position[1] = "right", i.addClass(g[1])), l[0] && (a.extend(j, k.bottom), j.position[0] = "bottom", i.addClass(g[2])), l[1] && (a.extend(j, k.left), j.position[1] = "left", i.addClass(g[3]));
                    if (l[0] || l[2])j.offset[0] *= -1;
                    if (l[1] || l[3])j.offset[1] *= -1
                }
                i.css({visibility:"visible"}).hide()
            });
            b.onBeforeShow(function () {
                var a = this.getConf(), b = this.getTip();
                setTimeout(function () {
                    a.position = [h[0], h[1]], a.offset = [h[2], h[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);
/*!
 * jQuery Tools v1.2.6 - The missing UI library for the Web
 *
 * toolbox/toolbox.expose.js
 *
 * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
 *
 * http://flowplayer.org/tools/
 *
 */
(function (a) {
    a.tools = a.tools || {version:"v1.2.6"};
    var b;
    b = a.tools.expose = {conf:{maskId:"exposeMask", loadSpeed:"slow", closeSpeed:"fast", closeOnClick:!0, closeOnEsc:!0, zIndex:9998, opacity:.8, startOpacity:0, color:"#fff", onLoad:null, onClose:null}};
    function c() {
        if (a.browser.msie) {
            var b = a(document).height(), c = a(window).height();
            return[window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, b - c < 20 ? c : b]
        }
        return[a(document).width(), a(document).height()]
    }

    function d(b) {
        if (b)return b.call(a.mask)
    }

    var e, f, g, h, i;
    a.mask = {load:function (j, k) {
        if (g)return this;
        typeof j == "string" && (j = {color:j}), j = j || h, h = j = a.extend(a.extend({}, b.conf), j), e = a("#" + j.maskId), e.length || (e = a("<div/>").attr("id", j.maskId), a("body").append(e));
        var l = c();
        e.css({position:"absolute", top:0, left:0, width:l[0], height:l[1], display:"none", opacity:j.startOpacity, zIndex:j.zIndex}), j.color && e.css("backgroundColor", j.color);
        if (d(j.onBeforeLoad) === !1)return this;
        j.closeOnEsc && a(document).bind("keydown.mask", function (b) {
            b.keyCode == 27 && a.mask.close(b)
        }), j.closeOnClick && e.bind("click.mask", function (b) {
            a.mask.close(b)
        }), a(window).bind("resize.mask", function () {
            a.mask.fit()
        }), k && k.length && (i = k.eq(0).css("zIndex"), a.each(k, function () {
            var b = a(this);
            /relative|absolute|fixed/i.test(b.css("position")) || b.css("position", "relative")
        }), f = k.css({zIndex:Math.max(j.zIndex + 1, i == "auto" ? 0 : i)})), e.css({display:"block"}).fadeTo(j.loadSpeed, j.opacity, function () {
            a.mask.fit(), d(j.onLoad), g = "full"
        }), g = !0;
        return this
    }, close:function () {
        if (g) {
            if (d(h.onBeforeClose) === !1)return this;
            e.fadeOut(h.closeSpeed, function () {
                d(h.onClose), f && f.css({zIndex:i}), g = !1
            }), a(document).unbind("keydown.mask"), e.unbind("click.mask"), a(window).unbind("resize.mask")
        }
        return this
    }, fit:function () {
        if (g) {
            var a = c();
            e.css({width:a[0], height:a[1]})
        }
    }, getMask:function () {
        return e
    }, isLoaded:function (a) {
        return a ? g == "full" : g
    }, getConf:function () {
        return h
    }, getExposed:function () {
        return f
    }}, a.fn.mask = function (b) {
        a.mask.load(b);
        return this
    }, a.fn.expose = function (b) {
        a.mask.load(b, this);
        return this
    }
})(jQuery);
/*
 * jQuery QuickFlip v2.1.1
 * http://jonraasch.com/blog/quickflip-2-jquery-plugin
 *
 * Copyright (c) 2009 Jon Raasch (http://jonraasch.com/)
 * Licensed under the FreeBSD License:
 * http://dev.jonraasch.com/quickflip/docs#licensing
 *
 */
(function (c) {
    var a = false, b = null;
    c.quickFlip = {wrappers:[], opts:[], objs:[], init:function (d, f) {
        var d = d || {};
        d.closeSpeed = d.closeSpeed || 180;
        d.openSpeed = d.openSpeed || 120;
        d.ctaSelector = d.ctaSelector || ".quickFlipCta";
        d.refresh = d.refresh || a;
        d.easing = d.easing || "swing";
        d.noResize = d.noResize || a;
        d.vertical = d.vertical || a;
        var g = typeof(f) != "undefined" ? c(f) : c(".quickFlip"), h = g.children();
        if (g.css("position") == "static") {
            g.css("position", "relative")
        }
        var e = c.quickFlip.wrappers.length;
        h.each(function (i) {
            var k = c(this);
            if (d.ctaSelector) {
                k.find(d.ctaSelector).click(function (j) {
                    j.preventDefault();
                    c.quickFlip.flip(e)
                })
            }
            if (i) {
                k.hide()
            }
        });
        c.quickFlip.opts.push(d);
        c.quickFlip.objs.push({$box:c(g), $kids:c(h)});
        c.quickFlip.build(e);
        if (!d.noResize) {
            c(window).resize(function () {
                for (var j = 0; j < c.quickFlip.wrappers.length; j++) {
                    c.quickFlip.removeFlipDivs(j);
                    c.quickFlip.build(j)
                }
            })
        }
    }, build:function (f, h) {
        c.quickFlip.opts[f].panelWidth = c.quickFlip.opts[f].panelWidth || c.quickFlip.objs[f].$box.width();
        c.quickFlip.opts[f].panelHeight = c.quickFlip.opts[f].panelHeight || c.quickFlip.objs[f].$box.height();
        var e = c.quickFlip.opts[f], g = {wrapper:c.quickFlip.objs[f].$box, index:f, half:parseInt((e.vertical ? e.panelHeight : e.panelWidth) / 2), panels:[], flipDivs:[], flipDivCols:[], currPanel:h || 0, options:e};
        c.quickFlip.objs[f].$kids.each(function (k) {
            var i = c(this).css({position:"absolute", top:0, left:0, margin:0, padding:0, width:e.panelWidth, height:e.panelHeight});
            g.panels[k] = i;
            var l = d(g, k).hide().appendTo(g.wrapper);
            g.flipDivs[k] = l;
            g.flipDivCols[k] = l.children()
        });
        c.quickFlip.wrappers[f] = g;
        function d(i, p) {
            function o(q, t) {
                var r = c("<div></div>"), s = q.panels[t].clone().show();
                r.css(l);
                r.html(s);
                return r
            }

            var n = c("<div></div>"), j = i.panels[p].html(), l = {width:e.vertical ? e.panelWidth : i.half, height:e.vertical ? i.half : e.panelHeight, position:"absolute", overflow:"hidden", margin:0, padding:0};
            if (e.vertical) {
                l.left = 0
            } else {
                l.top = 0
            }
            var m = c(o(i, p)).appendTo(n), k = c(o(i, p)).appendTo(n);
            if (e.vertical) {
                m.css("bottom", i.half);
                k.css("top", i.half);
                k.children().css({top:b, bottom:0})
            } else {
                m.css("right", i.half);
                k.css("left", i.half);
                k.children().css({right:0, left:"auto"})
            }
            return n
        }
    }, flip:function (g, q, l, r) {
        function h(j, i) {
            j = j || {};
            i = i || {};
            for (opt in j) {
                i[opt] = j[opt]
            }
            return i
        }

        if (typeof g != "number" || typeof c.quickFlip.wrappers[g] == "undefined") {
            return
        }
        var n = c.quickFlip.wrappers[g], f = n.currPanel, e = (typeof(q) != "undefined" && q != b) ? q : (n.panels.length > f + 1) ? f + 1 : 0;
        n.currPanel = e, l = (typeof(l) != "undefined" && l != b) ? l : 1;
        r = h(r, c.quickFlip.opts[g]);
        n.panels[f].hide();
        if (r.refresh) {
            c.quickFlip.removeFlipDivs(g);
            c.quickFlip.build(g, e);
            n = c.quickFlip.wrappers[g]
        }
        n.flipDivs[f].show();
        var p = 0, o = 0, d = r.vertical ? {height:0} : {width:0}, m = r.vertical ? {height:n.half} : {width:n.half};
        n.flipDivCols[f].animate(d, r.closeSpeed, r.easing, function () {
            if (!p) {
                p++
            } else {
                n.flipDivs[e].show();
                n.flipDivCols[e].css(d);
                n.flipDivCols[e].animate(m, r.openSpeed, r.easing, function () {
                    if (!o) {
                        o++
                    } else {
                        n.flipDivs[e].hide();
                        n.panels[e].show();
                        switch (l) {
                            case 0:
                            case -1:
                                c.quickFlip.flip(g, b, -1);
                                break;
                            case 1:
                                break;
                            default:
                                c.quickFlip.flip(g, b, l - 1);
                                break
                        }
                    }
                })
            }
        })
    }, removeFlipDivs:function (e) {
        for (var d = 0; d < c.quickFlip.wrappers[e].flipDivs.length; d++) {
            c.quickFlip.wrappers[e].flipDivs[d].remove()
        }
    }};
    c.fn.quickFlip = function (d) {
        this.each(function () {
            new c.quickFlip.init(d, this)
        });
        return this
    };
    c.fn.whichQuickFlip = function () {
        function f(j, h) {
            if (!j || !h || !j.length || !h.length || j.length != h.length) {
                return a
            }
            for (var g = 0; g < j.length; g++) {
                if (j[g] !== h[g]) {
                    return a
                }
            }
            return true
        }

        var d = b;
        for (var e = 0; e < c.quickFlip.wrappers.length; e++) {
            if (f(this, c(c.quickFlip.wrappers[e].wrapper))) {
                d = e
            }
        }
        return d
    };
    c.fn.quickFlipper = function (d, f, e) {
        this.each(function () {
            var h = c(this), g = h.whichQuickFlip();
            if (g == b) {
                h.quickFlip(d);
                g = h.whichQuickFlip()
            }
            c.quickFlip.flip(g, f, e, d)
        })
    }
})(jQuery);
