if (isJsEnabled()) { addLoadEvent(collapseAutoAttach); } function collapseAutoAttach() { var fieldsets = document.getElementsByTagName('fieldset'); var legend, fieldset; for (var i = 0; fieldset = fieldsets[i]; i++) { if (!hasClass(fieldset, 'collapsible')) { continue; } legend = fieldset.getElementsByTagName('legend'); if (legend.length == 0) { continue; } legend = legend[0]; var a = document.createElement('a'); a.href = '#'; a.id='fieldset'+i; a.onclick = function() { toggleClass(this.parentNode.parentNode, 'collapsed'); res=hasClass(this.parentNode.parentNode, 'collapsed')?'':1; collapseSetPersistent(this.id, res); this.blur(); return false; }; a.innerHTML=legend.innerHTML; while (legend.hasChildNodes()) { removeNode(legend.childNodes[0]); } legend.appendChild(a); collapseEnsureErrorsVisible(fieldset,i); } } function collapseEnsureErrorsVisible(fieldset,cnt) { if (!hasClass(fieldset, 'collapsed')) { return; } var inputs = []; inputs = inputs.concat(fieldset.getElementsByTagName('input')); inputs = inputs.concat(fieldset.getElementsByTagName('textarea')); inputs = inputs.concat(fieldset.getElementsByTagName('select')); for (var j = 0; j<3; j++) { for (var i = 0; i < inputs[j].length; i++) { if (hasClass(inputs[j][i], 'error')) { return removeClass(fieldset, 'collapsed'); } } } if(collapseGetPersistent('fieldset'+cnt)){ return removeClass(fieldset, 'collapsed'); } } function collapseSetPersistent(name, value, expires){ document.cookie= name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ("; path=" + window.location.pathname); } function collapseGetPersistent(name){ var dc = document.cookie; var prefix = name + "="; var begin = dc.indexOf("; " + prefix); if (begin == -1){ begin = dc.indexOf(prefix); if (begin != 0) return null; }else{ begin += 2; } var end = document.cookie.indexOf(";", begin); if (end == -1){ end = dc.length; } return unescape(dc.substring(begin + prefix.length, end)); }