/*
 * jquery.tools 1.0.2 - The missing UI library
 * 
 * [tools.tabs-1.0.1, tools.tooltip-1.0.2, tools.scrollable-1.0.5, tools.overlay-1.0.4, tools.expose-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: Fri Jun 12 12:37:07 GMT+00:00 2009
 */
(function(c){
    c.tools = c.tools ||
    {
        version: {}
    };
    c.tools.version.tabs = "1.0.1";
    c.tools.addTabEffect = function(d, e){
        b[d] = e
    };
    var b = {
        "default": function(d){
            this.getPanes().hide().eq(d).show()
        },
        fade: function(d){
            this.getPanes().hide().eq(d).fadeIn(this.getConf().fadeInSpeed)
        },
        slide: function(d){
            this.getCurrentPane().slideUp("fast");
            this.getPanes().eq(d).slideDown()
        },
        horizontal: function(d){
            if (!c._hW) {
                c._hW = this.getPanes().eq(0).width()
            }
            this.getCurrentPane().animate({
                width: 0
            }, function(){
                c(this).hide()
            });
            this.getPanes().eq(d).animate({
                width: c._hW
            }, function(){
                c(this).show()
            })
        }
    };
    function a(e, f, g){
        var d = this;
        var h;
        function i(j, k){
            c(d).bind(j, function(m, l){
                if (k && k.call(this, l.index) === false && l) {
                    l.proceed = false
                }
            });
            return d
        }
        c.each(g, function(j, k){
            if (c.isFunction(k)) {
                i(j, k)
            }
        });
        c.extend(this, {
            click: function(k){
                if (k === h) {
                    return d
                }
                var m = d.getCurrentPane();
                var l = e.eq(k);
                if (typeof k == "string") {
                    l = e.filter("[href=" + k + "]");
                    k = e.index(l)
                }
                if (!l.length) {
                    if (h >= 0) {
                        return d
                    }
                    k = g.initialIndex;
                    l = e.eq(k)
                }
                var j = {
                    index: k,
                    proceed: true
                };
                c(d).triggerHandler("onBeforeClick", j);
                if (!j.proceed) {
                    return d
                }
                l.addClass(g.current);
                b[g.effect].call(d, k);
                c(d).triggerHandler("onClick", j);
                e.removeClass(g.current);
                l.addClass(g.current);
                h = k;
                return d
            },
            getConf: function(){
                return g
            },
            getTabs: function(){
                return e
            },
            getPanes: function(){
                return f
            },
            getCurrentPane: function(){
                return f.eq(h)
            },
            getCurrentTab: function(){
                return e.eq(h)
            },
            getIndex: function(){
                return h
            },
            next: function(){
                return d.click(h + 1)
            },
            prev: function(){
                return d.click(h - 1)
            },
            onBeforeClick: function(j){
                return i("onBeforeClick", j)
            },
            onClick: function(j){
                return i("onClick", j)
            }
        });
        e.each(function(j){
            c(this).bind(g.event, function(k){
                d.click(j);
                if (!g.history) {
                    return k.preventDefault()
                }
            })
        });
        if (g.history) {
            e.history(function(j, k){
                d.click(k || 0)
            })
        }
        if (location.hash) {
            d.click(location.hash)
        }
        else {
            d.click(g.initialIndex)
        }
        f.find("a[href^=#]").click(function(){
            d.click(c(this).attr("href"))
        })
    }
    c.fn.tabs = function(g, d){
        var e = this.eq(typeof conf == "number" ? conf : 0).data("tabs");
        if (e) {
            return e
        }
        var f = {
            tabs: "a",
            current: "current",
            onBeforeClick: null,
            onClick: null,
            effect: "default",
            history: false,
            initialIndex: 0,
            event: "click",
            api: false
        };
        if (c.isFunction(d)) {
            d = {
                onBeforeClick: d
            }
        }
        c.extend(f, d);
        this.each(function(){
            var h = c(this).find(f.tabs);
            if (!h.length) {
                h = c(this).children()
            }
            var i = g.jquery ? g : c(g);
            e = new a(h, i, f);
            c(this).data("tabs", e)
        });
        return f.api ? e : this
    }
})(jQuery);
(function(b){
    var c, a;
    b.prototype.history = function(e){
        var d = this;
        if (b.browser.msie) {
            if (!a) {
                a = b("<iframe />").hide().get(0);
                b("body").append(a);
                setInterval(function(){
                    var f = a.contentWindow.document;
                    var g = f.location.hash;
                    if (c !== g) {
                        b.event.trigger("hash", g);
                        c = g
                    }
                }, 100)
            }
            d.bind("click.hash", function(g){
                var f = a.contentWindow.document;
                f.open().close();
                f.location.hash = b(this).attr("href")
            });
            d.eq(0).triggerHandler("click.hash")
        }
        else {
            setInterval(function(){
                var f = location.hash;
                if (d.filter("[href*=" + f + "]").length && f !== c) {
                    c = f;
                    b.event.trigger("hash", f)
                }
            }, 100)
        }
        b(window).bind("hash", e);
        return this
    }
})(jQuery);


(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="'+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);
