/**
 * CHANGES
 * v.2.1.3.1 - NON OFFICIAL CHANGE - Add a test to verifiy if fieldset is not
 *             already binded with collapsible function if not when you have a
 *             fieldset on a page and you call a page with fieldsets in a tab
 *             in ajax the fieldsets already presents are not working anymore.
 * v.2.1.3 - Made it $.noConflict() compatible
 * v.2.1.2 - Fixed bug in which nested fieldsets do not work correctly.
 * v.2.1.1 - Forgot to put the new filter from v.2.1 into the if (settings.closed)
 * v.2.1 - Changed jQuery(this).parent().children().filter( ELEMENTS HERE) to jQuery(this).parent().children().not('label').  Prevents you from having to guess what elements will be in the fieldset.
 * v.2.0 - Added settings to allow a fieldset to be initiated as closed.
 *
 * This script may be used by anyone, but please link back to me.
 *
 * Copyright 2009-2010.  Michael Irwin (http://michael.theirwinfamily.net)
 */
       
jQuery.fn.collapse = function(options) {
    var defaults = {
        closed : false
    }
    settings = jQuery.extend({}, defaults, options);

    return this.each(function() {
        var obj = jQuery(this);
        if (!obj.find("legend:first").hasClass('collapsible')) {
            obj.find("legend:first").addClass('collapsible').click(function() {
                if (obj.hasClass('collapsed'))
                    obj.removeClass('collapsed').addClass('collapsible');
        
                jQuery(this).removeClass('collapsed');
        
                obj.children().not('legend').toggle("slow", function() {
                 
                     if (jQuery(this).is(":visible"))
                        obj.find("legend:first").addClass('collapsible');
                     else
                        obj.addClass('collapsed').find("legend").addClass('collapsed');
                 });
            });
            if (settings.closed) {
                obj.addClass('collapsed').find("legend:first").addClass('collapsed');
                obj.children().not("legend:first").css('display', 'none');
            }
        }
    });
};


