// Finds all fieldsets with class="collapse", collapses them, and gives each // one a "Show foo" link that uncollapses it. function findForm(node) { // returns the node of the form containing the given node if (node.tagName.toLowerCase() != 'form') { return findForm(node.parentNode); } return node; } var CollapsedFieldsets = { collapse_re: /\bcollapse\b/, // Class of fieldsets that should be dealt with. collapsed_re: /\bcollapsed\b/, // Class that fieldsets get when they're hidden. collapsed_class: 'collapsed', init: function() { var fieldsets = document.getElementsByTagName('fieldset'); var collapsed_seen = false; for (var i=0; i // Show section priorities… // var div = document.createElement('div'); // Give it a hook so we can remove it later. div.id = 'fieldsetcollapser' + i; div.className = 'form-row collapse-toggle'; // CSS hook var collapse_link = document.createElement('a'); collapse_link.setAttribute('href', 'javascript:CollapsedFieldsets.display(' + i + ');'); collapse_link.appendChild(document.createTextNode('Show ' + verbose_name)); div.appendChild(collapse_link); fs.appendChild(div); } } if (collapsed_seen) { // Expand all collapsed fieldsets when form is submitted. addEvent(findForm(document.getElementsByTagName('fieldset')[0]), 'submit', function() { CollapsedFieldsets.uncollapse_all(); }); } }, fieldset_has_errors: function(fs) { // Returns true if any fields in the fieldset have validation errors. var divs = fs.getElementsByTagName('div'); for (var i=0; i