var tab = {
    make: function(options) {
        var mytabs = $('li:not(.tabIgnore)', options.tab);
        var self = this;
        mytabs.css({
            cursor: 'pointer'
        });
        mytabs.click(function() {
            self.select(options, $(this));
        });
        mytabs.hover(function() {
            self.hover(options, $(this), true);
        }, function() {
            self.hover(options, $(this), false);
        });

        var selector = 'li:first';
        if (options.addr && location.href.match(/#(.*)$/)) {
            if (options.addr == '#') {
                selector = 'li.' + RegExp.$1;
            } else {
                var args = RegExp.$1.split('&');
                $.each(args, function() {
                    var d = this.split('=');
                    var key = d[0], value = d[1];
                    if (options.addr == key) {
                        selector = 'li.' + value;
                    }
                });
            }
        }
        this.select(options, $(selector, options.tab));
    },

    hover: function(options, obj, isover) {
        var myclass = obj.attr('class').split(' ')[0];
        var c = options.hover + ' ' + myclass + '_' + options.hover;
        if (isover)
            obj.addClass(c);
        else
            obj.removeClass(c);
    },

    select: function(options, obj) {
        var myclass = obj.attr('class').split(' ')[0];
        var selected = $('.selected', options.tab).attr('class');
        if (selected && selected.split(' ')[0] == myclass) return;

        $(options.page).children().hide();
        $('.' + myclass, options.page).show();
        if (options.scrollpane) $('.' + myclass + ' .' + options.scrollpane, options.page).jScrollPane();

        $('li', options.tab).each(function() {
            var myclass = $(this).attr('class').split(' ')[0];
            $(this).removeClass(
                options.selected
              + ' ' + myclass + '_' + options.selected
              /*
              + ' ' + options.hover
              + ' ' + myclass + '_' + options.hover
              */
            );
        });
        obj.addClass(
            options.selected
          + ' ' + myclass + '_' + options.selected
        );
        if (options.click) options.click($('.' + myclass, options.page));
    }
};


