// REQUIRES MOOTOOLS
// Rewritten by Adam to allow for always keeping a certain depth open, and updated to use modern JS (Mootools)
// Menu Code:
//		<?php echo $this->ShowCategoryTree($this->categories[$_GET['cat']]['cat_id'], false, 0, 999); ?>
// JS Code:
//		<script type="text/javascript"> Menu.Init("#main_menu ul", "click", 2); </script>

var Menu = {
	Selector: "",
	Start_Depth: 0,
	
	Init: function(selector, method, start_depth)
	{
		this.Selector = selector;
		this.Start_Depth = start_depth - 1;
		
		$$(this.Selector).each(function(el)
		{
			var depth = el.getParents("ul").length;
			el.addClass("depth-" + depth);
			el.depth = depth;
			
			if(el.getPrevious("a") != null)
			{				
				if(depth >= start_depth)
				{
					el.getPrevious("a").addEvent(method, function(event)
					{
						event.stop();
						Menu.Reset(el.depth);
						this.getNext("ul").style.display = "block";
					});
				}
			}
		});
		
		$$("body").addEvent("click", function()
		{
			Menu.Reset()
		});
		
		Menu.Reset();
	},

	Reset: function(d)
	{
		var depth = this.Start_Depth;
		if(d) { depth = d - 1; }
		
		var to_hide = $$(this.Selector + " ul");
		
		to_hide.setStyle('display', 'none');
		to_hide.getChildren("ul").each(function(el)
		{
			el.setStyle('display', 'none');
		});
		
		$$(this.Selector + " .depth-" + depth).setStyle('display', 'block');
		
		$$(".selected").getParents("ul").each(function(el)
		{
			el.setStyle('display', 'block');
		});
	}
}
