/* Adds menu folding behavior to ul class treemenu */
/* Requires Prototype 1.4.0+, Scriptaculous 1.6.2+ */

function has_children(obj) {
    next_child = obj.nextSibling;
    while (next_child) {
        if (next_child.nodeType == 1) {
            return true;
        } else {
            next_child = next_child.nextSibling;
        }
    }
    return false;
}

function toggleNavMenu () {
	$A(this.parentNode.childNodes).each( function (child) {
		if( child.nodeType==1 && /ul/i.test(child.nodeName)) {
			new Effect.toggle( child, 'blind', {duration: 0.2} );
		}
	});
	return false;
}

function assignTreemenuBehavior () {
	document.getElementsByClassName('treemenu').each( function (menu) {
		$A(menu.childNodes).each( function (node) {
			if( node.nodeType==1 ) {
				$A(node.childNodes).each( function (child) {
					if( child.nodeType==1 && /a/i.test(child.nodeName) && has_children(child)) {
						child.onclick=toggleNavMenu;
					}
				});
			}
		});
	});
}

// On document load, attach treemenu behavior
Event.observe(window, 'load', assignTreemenuBehavior, false);
