(function($) {

    $.fn.usToggle = function(settings) {

        // context should be an ul
        if(! $(this).is('ul')) {
            throw new Error('usToggle must be applied to an ul');
        }

        // questions
        var questionList     = this;

        // settings
        var settings         = $.extend(
        {
            speed:       175,
            activeClass: 'active',
            blockClass:  'answer'
        }, settings);

        $(questionList).find('li').click(function(e) {

            // hide other answers
            $(questionList)
                .find('li')
                .not(this)
                .removeClass(settings.activeClass)
                .find('div.' + settings.blockClass)
                .slideUp(settings.speed);

            // set current active
            $(this).addClass(settings.activeClass);

            // show current answer
            var answerBlock = $(this).find('div.' + settings.blockClass);
            if(!answerBlock.is(':visible')) {
                $(answerBlock).slideDown(settings.speed)
            }
        });

        //hide all answers by default
        return $(this).find('div.' + settings.blockClass).hide();
    };

})(jQuery);

