
/* - collapse.js - */
// http://www.lepe.es/portal_javascripts/collapse.js?original=1
function isJsEnabled(){if(typeof document.jsEnabled=='undefined'){document.jsEnabled=!(!document.getElementsByTagName||!document.createElement||!document.createTextNode||!document.documentElement||!document.getElementById)}
return document.jsEnabled}
if(isJsEnabled()){document.documentElement.className='collapseEnabled';registerPloneFunction(collapseAutoAttach)}
function hasClass(node,className){if(node.className==className){return true}
var reg=new RegExp('(^| )'+className+'($| )')
if(reg.test(node.className)){return true}
return false}
function addClass(node,className){if(hasClass(node,className)){return false}
node.className+=' '+className;return true}
function removeClass(node,className){if(!hasClass(node,className)){return false}
node.className=eregReplace('(^|\\s+)'+className+'($|\\s+)',' ',node.className);return true}
function toggleClass(node,className){if(!removeClass(node,className)&&!addClass(node,className)){return false}
return true}
function eregReplace(search,replace,subject){return subject.replace(new RegExp(search,'g'),replace)}
function removeNode(node){if(typeof node=='string'){node=$(node)}
if(node&&node.parentNode){return node.parentNode.removeChild(node)}
else{return false}}
function absolutePosition(el){var sLeft=0,sTop=0;var isDiv=/^div$/i.test(el.tagName);if(isDiv&&el.scrollLeft){sLeft=el.scrollLeft}
if(isDiv&&el.scrollTop){sTop=el.scrollTop}
var r={x:el.offsetLeft-sLeft,y:el.offsetTop-sTop};if(el.offsetParent){var tmp=absolutePosition(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y}
return r};
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.onclick=function(){toggleClass(this.parentNode.parentNode,'collapsed');if(!hasClass(this.parentNode.parentNode,'collapsed')){collapseScrollIntoView(this.parentNode.parentNode);if(typeof textAreaAutoAttach!='undefined'){textAreaAutoAttach(null,this.parentNode.parentNode)}}
this.blur();return false};a.innerHTML=legend.innerHTML;while(legend.hasChildNodes()){removeNode(legend.childNodes[0])}
legend.appendChild(a);collapseEnsureErrorsVisible(fieldset)}}
function collapseEnsureErrorsVisible(fieldset){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')}}}}
function collapseScrollIntoView(node){var h=self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0;var offset=self.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;var pos=absolutePosition(node);if(pos.y+node.scrollHeight>h+offset){if(node.scrollHeight>h){window.scrollTo(0,pos.y)} else{window.scrollTo(0,pos.y+node.scrollHeight-h)}}}

