/*
YUIDomCollapse by Christian Heilmann
Version 1.0 / May 2007
License: http://creativecommons.org/licenses/by/3.0/
Homepage: http://onlinetools.org/tools/yuidomcollapse/
*/
YAHOO.namespace('otorg'); YAHOO.otorg.DomCollapse = { init: function() { var css = YAHOO.otorg.DomCollapse.css; if (typeof (css) !== 'undefined') { var bookmark = window.location.hash.replace('#', ''); var elms = YAHOO.util.Dom.getElementsByClassName(css.triggerClass); for (var i = 0, j = elms.length; i < j; i++) { if (elms[i].nodeName.toLowerCase() !== 'a') { var t = YAHOO.otorg.DomCollapse.getNext(elms[i]); if (t) { var newID = t.id || YAHOO.util.Dom.generateId(); t.setAttribute('id', newID); var a = document.createElement('a'); a.setAttribute('href', '#' + newID); var c = elms[i].innerHTML; a.innerHTML = elms[i].innerHTML; elms[i].innerHTML = ''; elms[i].appendChild(a); if (newID !== bookmark) { YAHOO.util.Dom.addClass(elms[i], css.parentClass); YAHOO.util.Dom.addClass(t, css.hideClass); } else { YAHOO.util.Dom.addClass(elms[i], css.openClass); YAHOO.util.Dom.removeClass(t, css.hideClass); }; YAHOO.util.Event.on(a, 'click', YAHOO.otorg.DomCollapse.toggle); }; } else { var newID = elms[i].href.replace(/.*#/, ''); var t = document.getElementById(newID) || YAHOO.otorg.DomCollapse.getNext(elms[i]); if (t !== null) { if (t.id !== newID) { newID = t.id; elms[i].setAttribute('href', '#' + newID); }; if (newID !== bookmark) { YAHOO.util.Dom.addClass(elms[i], css.parentClass); YAHOO.util.Dom.addClass(t, css.hideClass); } else { YAHOO.util.Dom.addClass(elms[i], css.openClass); }; YAHOO.util.Event.on(elms[i], 'click', YAHOO.otorg.DomCollapse.toggle); }; }; }; }; }, getNext: function(o) { var t = o.nextSibling; if (t) { while (t.nodeType !== 1 && t.nextSibling) { t = t.nextSibling; } } return t; }, toggle: function(e) { var css = YAHOO.otorg.DomCollapse.css; var parent = YAHOO.util.Dom.hasClass(this, css.triggerClass) ? this : this.parentNode; var id = this.href.replace(/.*#/, ''); var t = document.getElementById(id); if (t !== undefined) { if (YAHOO.util.Dom.hasClass(t, css.hideClass)) { YAHOO.util.Dom.removeClass(t, css.hideClass); YAHOO.util.Dom.replaceClass(parent, css.parentClass, css.openClass); } else { YAHOO.util.Dom.addClass(t, css.hideClass); YAHOO.util.Dom.replaceClass(parent, css.openClass, css.parentClass); YAHOO.util.Event.preventDefault(e); }; }; } }; YAHOO.util.Event.onDOMReady(YAHOO.otorg.DomCollapse.init);