/*
 * jquery.tools 1.1.2 - The missing UI library for the Web
 * 
 * [tools.tabs-1.0.4]
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 * 
 * -----
 * 
 * File generated: Thu Mar 11 19:37:48 GMT 2010
 */
(function(d) {
    d.tools = d.tools || {};
    d.tools.tabs = {
        version: "1.0.4", conf: {
            tabs: "a", current: "current", onBeforeClick: null, onClick: null, effect: "default", initialIndex: 0, event: "click", api: false, rotate: false
        }, addEffect: function(e, f) { c[e] = f }
    };
    var c = {
        "default": function(f, e) {
            this.getPanes().hide().eq(f).show(); e.call()
        }, fade: function(g, e) {
            var f = this.getConf(),
    j = f.fadeOutSpeed,
    h = this.getPanes();
            if (j) { h.fadeOut(j) } else { h.hide() }
            h.eq(g).fadeIn(f.fadeInSpeed, e)
        }, slide: function(f, e) {
            this.getPanes().slideUp(200); this.getPanes().eq(f).slideDown(400, e)
        }, ajax: function(f, e) {
            this.getPanes().eq(0).load(this.getTabs().eq(f).attr("href"), e)
        }
    };
    var b; d.tools.tabs.addEffect("horizontal", function(f, e) {
        if (!b) { b = this.getPanes().eq(0).width() }
        this.getCurrentPane().animate({ width: 0 }, function() {
            d(this).hide()
        });
        this.getPanes().eq(f).animate({ width: b }, function() {
            d(this).show();
            e.call()
        })
    }); function a(g, h, f) {
        var e = this, j = d(this), i;
        d.each(f, function(k, l) {
            if (d.isFunction(l)) {
                j.bind(k, l)
            }
        });
        d.extend(this, { click: function(k, n) {
            var o = e.getCurrentPane();
            var l = g.eq(k);
            if (typeof k == "string" && k.replace("#", "")) {
                l = g.filter("[href*=" + k.replace("#", "") + "]");
                k = Math.max(g.index(l), 0)
            }
            if (f.rotate) {
                var m = g.length - 1;
                if (k < 0) {
                    return e.click(m, n)
                }
                if (k > m) {
                    return e.click(0, n)
                }
            }
            if (!l.length) {
                if (i >= 0) {
                    return e
                }
                k = f.initialIndex;
                l = g.eq(k)
            }
            if (k === i) {
                return e
            }
            n = n || d.Event();
            n.type = "onBeforeClick";
            j.trigger(n, [k]);
            if (n.isDefaultPrevented()) {
                return
            }
            c[f.effect].call(e, k, function() {
                n.type = "onClick";
                j.trigger(n, [k])
            });
            n.type = "onStart";
            j.trigger(n, [k]);
            if (n.isDefaultPrevented()) {
                return
            }
            i = k;
            g.removeClass(f.current);
            l.addClass(f.current);
            var itemClass = l.attr('class');
            if (itemClass.substring(0, 11) == 'mainTabItem' && n.originalEvent != null) {
                refreshLoans();
                
            }
            return e
        }, getConf: function() {
            return f
        }, getTabs: function() {
            return g
        }, getPanes: function() {
            return h
        }, getCurrentPane: function() {
            return h.eq(i)
        }, getCurrentTab: function() {
            return g.eq(i)
        }, getIndex: function() {
            return i
        }, next: function() {
            return e.click(i + 1)
        }, prev: function() {
            return e.click(i - 1)
        }, bind: function(k, l) {
            j.bind(k, l); return e
        }, onBeforeClick: function(k) {
            return this.bind("onBeforeClick", k)
        },
            onClick: function(k) {
                return this.bind("onClick", k)
            }, unbind: function(k) {
                j.unbind(k); return e
            }
        });
        g.each(function(k) {
            d(this).bind(f.event, function(l) {
                e.click(k, l);
                return false
            })
        });
        if (location.hash) {
            e.click(location.hash)
        } else {
            if (f.initialIndex === 0 || f.initialIndex > 0) {
                e.click(f.initialIndex)
            }
        }
        h.find("a[href^=#]").click(function(k) {
            e.click(d(this).attr("href"), k)
        })
    }
    d.fn.tabs = function(i, f) {
        var g = this.eq(typeof f == "number" ? f : 0).data("tabs");
        if (g) {
            return g
        } if (d.isFunction(f)) {
            f = { onBeforeClick: f }
        } var h = d.extend({}, d.tools.tabs.conf), e = this.length;
        f = d.extend(h, f);
        this.each(function(l) {
            var j = d(this);
            var k = j.find(f.tabs);
            if (!k.length) {
                k = j.children()
            }
            var m = i.jquery ? i : j.children(i);
            if (!m.length) {
                m = e == 1 ? d(i) : j.parent().find(i)
            }
            g = new a(k, m, f);
            j.data("tabs", g)
        });
        return f.api ? g : this
    }
})(jQuery);

