(function($) {  
    $.fn.expander = function(options) {
        
        // Set some default options
        var defaults = {
            buttonTitleOpen: 'View less',
            buttonTitleClosed: 'View more'
        };  
        
        // Extend function with options
        var options = $.extend(defaults,options);
        
        // Apply function to all matched objects
        return this.each(function() {
        
            var content = $(this);
            // First, hide the content
            content.hide();
            var open = false;
            
            // Add link to parent
            var link = $('<a>');
            link.addClass('expander-button closed').attr('href','javascript:void(0)').attr('title',options.buttonTitleClosed).html(options.buttonTitleClosed);
            link.appendTo(content.parent());
            
            link.click(function() {
                if(open == false) {
                    content.slideDown('normal',function() {
                        open = true;
                        link.removeClass('closed').addClass('open').attr('title',options.buttonTitleOpen).html(options.buttonTitleOpen);
                        return false;
                    });
                } else {
                    content.slideUp('normal',function() {
                        open = false;
                        link.removeClass('open').addClass('closed').attr('title',options.buttonTitleClosed).html(options.buttonTitleClosed);
                        return false;
                    });
                }
            });
        
        });
        
    };
})(jQuery);