/* idTabs ~ Sean Catchpole - Version 2.2 - MIT/GPL */
(function () {
    var dep = {
        "jQuery": "http://code.jquery.com/jquery-latest.min.js"
    };
    var init = function () {
            (function ($tabs) {
                $tabs.fn.idTabs = function () {
                    var TABs = {};
                    for (var TABi = 0; TABi < arguments.length; ++TABi) {
                        var TABa = arguments[TABi];
                        switch (TABa.constructor) {
                        case Object:
                            $tabs.extend(TABs, TABa);
                            break;
                        case Boolean:
                            TABs.change = TABa;
                            break;
                        case Number:
                            TABs.start = TABa;
                            break;
                        case Function:
                            TABs.click = TABa;
                            break;
                        case String:
                            if (TABa.charAt(0) == '.') TABs.selected = TABa;
                            else if (TABa.charAt(0) == '!') TABs.event = TABa;
                            else TABs.start = TABa;
                            break;
                        }
                    }
                    if (typeof TABs['return'] == "function") TABs.change = TABs['return'];
                    return this.each(function () {
                        $tabs.idTabs(this, TABs);
                    });
                }
                $tabs.idTabs = function (tabs, options) {
                    var meta = ($tabs.metadata) ? $tabs(tabs).metadata() : {};
                    var TABs = $tabs.extend({}, $tabs.idTabs.settings, meta, options);
                    if (TABs.selected.charAt(0) == '.') TABs.selected = TABs.selected.substr(1);
                    if (TABs.event.charAt(0) == '!') TABs.event = TABs.event.substr(1);
                    if (TABs.start == null) TABs.start = -1;
                    var showId = function () {
                            if ($tabs(this).is('.' + TABs.selected)) return TABs.change;
                            var id = "#t" + this.href.split('#t')[1];
                            var aList = [];
                            var idList = [];
                            $tabs("a", tabs).each(function () {
                                if (this.href.match(/#t/)) {
                                    aList.push(this);
                                    idList.push("#t" + this.href.split('#t')[1]);
                                }
                            });
                            if (TABs.click && !TABs.click.apply(this, [id, idList, tabs, TABs])) return TABs.change;
                            for (TABi in aList) $tabs(aList[TABi]).removeClass(TABs.selected);
                            for (TABi in idList) $tabs(idList[TABi]).hide();
                            $tabs(this).addClass(TABs.selected);
                            $tabs(id).show();
                            return TABs.change;
                        }
                    var list = $tabs("a[href*='#t']", tabs).unbind(TABs.event, showId).bind(TABs.event, showId);
                    list.each(function () {
                        $tabs("#t" + this.href.split('#t')[1]).hide();
                    });
                    var test = false;
                    if ((test = list.filter('.' + TABs.selected)).length);
                    else if (typeof TABs.start == "number" && (test = list.eq(TABs.start)).length);
                    else if (typeof TABs.start == "string" && (test = list.filter("[href*='#t" + TABs.start + "']")).length);
                    if (test) {
                        test.removeClass(TABs.selected);
                        test.trigger(TABs.event);
                    }
                    return TABs;
                }
                $tabs.idTabs.settings = {
                    start: 0,
                    change: false,
                    click: null,
                    selected: ".selected",
                    event: "!click"
                };
                $tabs.idTabs.version = "2.2";
                $tabs(function () {
                    $tabs(".idTabs").idTabs();
                });
            })(jQuery);
        }
    var check = function (TABo, TABs) {
            TABs = TABs.split('.');
            while (TABo && TABs.length) TABo = TABo[TABs.shift()];
            return TABo;
        }
    var head = document.getElementsByTagName("head")[0];
    var add = function (url) {
            var TABs = document.createElement("script");
            TABs.type = "text/javascript";
            TABs.src = url;
            head.appendChild(TABs);
        }
    var TABs = document.getElementsByTagName('script');
    var src = TABs[TABs.length - 1].src;
    var TABok = true;
    for (TABd in dep) {
        if (check(this, TABd)) continue;
        TABok = false;
        add(dep[TABd]);
    }
    if (TABok) return init();
    add(src);
})();
