/**
/* Usage: $('#sample').dsTab();
/* where '#sample' is a div that contains 'div.tabbed_links' and multiple 'div.tab_box'
/*
/* Requirements for link list:
/*  -wrapped by a div with class 'tabbed_links'
/*  -a tags have a rel that points to div#<rel>_box
/*  -default link has class of 'active'
/*
/* Requirements for tabbed divs
/*  -divs have class of 'tab_box'
/*  -divs have an id of '<rel>_box', where <rel> is the rel of their partner link
 */
jQuery.fn.dsTab = function(params) {
    var $ = jQuery;
    var params = params || {};
    params.linkSelector = params.linkSelector || 'div.tabbed_links';
    params.tabSelector = params.tabSelector || 'div.tab_box';
    params.activeSelector = params.activeSelector || 'a';
    params.activeClass = params.activeClass || 'active';
    params.relPostfix = params.relPostfix || '_box';
    $(params.linkSelector+' a', this).click(function(e){
        e.preventDefault();
        var tabbedLinks = $(this).closest(params.linkSelector);
        tabbedLinks.find('.'+params.activeClass).removeClass(params.activeClass);
        if(params.activeSelector=='a'){
            $(this).addClass(params.activeClass);
        }else{
            $(this).closest(params.activeSelector).addClass(params.activeClass);
        }
        tabbedLinks.parent().find(params.tabSelector).hide();
        $('#'+$(this).attr('rel')+params.relPostfix).show();
    });
    $(params.tabSelector,this).hide();
    if(params.activeSelector=='a'){
        var e=$(params.linkSelector+' a.'+params.activeClass, this);
    }else{
        var e=$(params.linkSelector+' .'+params.activeClass+' a', this);
    }
    $('#'+e.attr('rel')+params.relPostfix).show();
    return this;
}

