jQuery.fn.togglableDL = function (conf) {
    var config = jQuery.extend({
        speed:     100
    }, conf);

    return this.each(function () {
        var dds = jQuery('dd', this).slideUp(config.speed);

        jQuery('dt', this).each(function () {
            var dt = jQuery(this);

            dt.html('<a href="#">' + dt.html() + '</a>').find('a').toggle(function () {
                var isDT = false;

                dt.nextAll().each(function () {
                    if (isDT || jQuery(this).is('dt')) {
                        isDT = true;
                        return;
                    }

                    jQuery(this).slideDown(config.speed);
                });
            }, 
            function () {
                var isDT = false;

                dt.nextAll().each(function () {
                    if (isDT || jQuery(this).is('dt')) {
                        isDT = true;
                        return;
                    }

                    jQuery(this).slideUp(config.speed);
                });
            });
        });
    });
};

