/*
	*	Name:		Expandable/Collapsible Menu System
	*	Date:		2001-07-08

	*	Author:		Ben Boyle
	*	Email:		bboyle@inspire.server101.com

	*	Platform:	document.getElementById (Ie4/5, Netscape 6)
*/


// create the menu
function nav_PF_create_menu(root) {
	document.write(nav_PF_write_menu(root));
}


// write a tree
function nav_PF_write_menu(node) {
	var text = '';
	if (node.child) {
		text += nav_include_node(node, (node.expanded ? node.expandedc : node.collapsedc), nav_PF_include_control_image(node));
		text += '\n<div id="nav_' + node.tree + '|' + node.id + '_CH" style="display: ' + (node.expanded ? 'block' : 'none') + '; padding-left: ' + nav_menu_indent + 'px;">\n';
		text += nav_PF_write_menu(node.child);
		text += '</div>\n';
	} else {
		text += nav_include_node(node, node.bulletc, nav_include_bullet_image(node));
	}

	if (node.next) {
		text += nav_PF_write_menu(node.next);
	}
	return text;
}


// expand a node
function nav_PF_expand(node) {
	nav_PF_image_swap(node, 1);
	document.getElementById('nav_' + node.tree + '|' + node.id + '_CL').className = nav_class_cache[node.expandedc];
	document.getElementById('nav_' + node.tree + '|' + node.id + '_CH').style.display = 'block';
}


// collapse a node
function nav_PF_collapse(node) {
	document.getElementById('nav_' + node.tree + '|' + node.id + '_CH').style.display = 'none';
	document.getElementById('nav_' + node.tree + '|' + node.id + '_CL').className = nav_class_cache[node.collapsedc];
	nav_PF_image_swap(node, 0);
}


// include an expand/collapse control image
function nav_PF_include_control_image(node) {
	var image;
	if (node.expanded) {
		image = node.expandedi;
	} else {
		image = node.collapsedi;
	}
	return '<a href="javascript:nav_control_click(' + node.tree + ', \'' + node.id + '\');" target="_self">' + nav_include_image(node, image) + '</a>';
}

// swap expand/collapse image
function nav_PF_image_swap(node, expand, image) {
	if (document.images) {
		if (!image) {
			image = document.images['nav_' + node.tree + '|' + node.id + '_IMG'];
			if (!image) {
				return;
			}
		}
		var i = nav_image_cache[(expand ? node.expandedi : node.collapsedi)];
		image.src = i.src;
		image.alt = i.alt;
	}
}
