var JBC =
{
	load:function(parentId)
	{
		Event.observe(window, 'load', function()
		{
			JBC.collapseMenu();		// collapse the entire menu on load
			JBC.prepareMenu();		// add onclick events to all links in menu

			// if a child of a parent is the current url, expand parent
			if (parentId > 0) JBC.toggleMenu($(parentId).down(1), $(parentId).down().readAttribute('href'));

			if ($('tracking-terms')) Event.observe($('tracking-terms'), 'click', JBC.trackingTerms);
		});
	},

	trackingTerms:function(e)
	{
		e = e || window.event;
		Event.stop(e);
		Modalbox.show($('tracking-terms').readAttribute('href'), {title:$('tracking-terms').readAttribute('title'), height:260});
		return false;
	},

	collapseMenu:function(node)
	{
		if (!document.getElementById) return false;
		if (!$('menu')) return false;
		if (!node) node = $('menu');

		if (node.childNodes.length > 0)
		{
			for (var i=0; i<node.childNodes.length; i++)
			{
				var child = node.childNodes[i];
				if (child.nodeName == 'UL')
					child.style.display = 'none';

				JBC.collapseMenu(child);
			}
		}
	},

	prepareMenu:function()
	{
		if (!document.getElementById || !document.getElementsByTagName) return false;
		if (!$('menu')) return false;

		var links = $('menu').getElementsByTagName('a');
		for (var i=0; i<links.length; i++) {
			links[i].onclick = function()
			{
				JBC.toggleMenu(this.parentNode.getElementsByTagName('UL')[0], this.href);
				return false;
			}
		}
	},

	toggleMenu:function(node, link)
	{
		if (!document.getElementById) return false;
		if (!link) return false;
		if (!node) location.href = link.href;

		Element.extend(node);

		// Collapse all nodes, and only show clicked node (when clicking top level of menu)
		if ((node.parentNode.parentNode) && (node.parentNode.parentNode.identify() == 'menu'))
			JBC.hideTopLevels();

		if (node.style.display == '')
		{
			Effect.BlindUp(node, {duration: 0.3});
		} else {
			node.up().addClassName('on');
			Effect.BlindDown(node, {duration: 0.3});
		}
	},

	hideTopLevels:function()
	{
		if (!document.getElementById) return false;
		if (!(node = $('menu'))) return false;

		if (node.childNodes.length > 0)
		{
			for (var i=0; i<node.childNodes.length; i++)
			{
				var child = node.childNodes[i];
				for(var j=0; j<child.childNodes.length; j++)
				{
					var grandchild = child.childNodes[j];
					if (grandchild.nodeName == 'UL')
					{
						if (grandchild.style.display == '')
						{
							grandchild.up('li',0).removeClassName('on');
							Effect.BlindUp(grandchild, {duration: 0.3});
						}
					}
				}
			}		
		}
	}
};
