/* ==================================================================
 *  dl-collapse.js
 *  Makes definition lists interactive: show/hide data by clicking on term
 *  Requires: pcclib.js
 * ------------------------------------------------------------------
 *  owner: PCC Web Team <webteam@pcc.edu>
 *  author: Curtis Harvey <charvey@pcc.edu>
 *  created: 2005-09-20 modified: 2005-09-20
 *  modified: 12-01-2005 by Gabriel McGovern  - remove broken addClassName line
 * ================================================================== */

addEvent(window, 'load', dlSetup); // from pcclib.js

function dlSetup() {
	if (!DOM) return;
	var lists, list, terms, term, i, j;
	lists = getElementsByClassName(document, 'collapse', 'dl');
	for (i=0; list=lists[i]; i++) {
		terms = list.getElementsByTagName('dt');
		for (j=0; term=terms[j]; j++) {
			toggle(term);
			//addClassName(term, 'clickable'); 
			term.className = term.className.addClass('clickable');
			term.onclick = function() { toggle(this); };
		}
	}
	if (typeof fixColumns == 'function') fixColumns(); //from pcclib.js
}

function toggle(term, mode) {
	var data = term;
	while (data = data.nextSibling) {
		if (String(data.tagName).toLowerCase() == 'dt') break;
		if (String(data.tagName).toLowerCase() != 'dd') continue;
		if (mode == null) data.style.display = (data.style.display == 'none') ? 'block' : 'none';
		else data.style.display = (mode=='open') ? 'block' : 'none';
	}
	if (typeof fixColumns == 'function') fixColumns(); //from pcclib.js
}

function toggleAll(listid, mode) {
	var terms, term, i;
	terms = document.getElementById(listid).getElementsByTagName('dt');
	for (i=0; term=terms[i]; i++) {
		toggle(term, mode);
	}
}