/* 
 * A JQuery menu.
 * HTML structure to use:
 *
 * Notes: 
 *
 * 1: each menu MUST have an ID set. It doesn't matter what this ID is as long as it's there.
 * 2: each menu MUST have a class 'menu' set. If the menu doesn't have this, the JS won't make it dynamic
 *
 * Optional extra classnames:
 *
 * noaccordion : no accordion functionality
 * collapsible : menu works like an accordion but can be fully collapsed
 * expandfirst : first menu item expanded at page load
 *
 * <ul id="menu1" class="menu [optional class] [optional class]">
 * <li><a href="#">Sub menu heading</a>
 * <ul>
 * <li><a href="http://site.com/">Link</a></li>
 * <li><a href="http://site.com/">Link</a></li>
 * <li><a href="http://site.com/">Link</a></li>
 * ...
 * ...
 * </ul>
 * <li><a href="#">Sub menu heading</a>
 * <ul>
 * <li><a href="http://site.com/">Link</a></li>
 * <li><a href="http://site.com/">Link</a></li>
 * <li><a href="http://site.com/">Link</a></li>
 * ...
 * ...
 * </ul>
 * ...
 * ...
 * </ul>
 *
 * Based on Simple JQuery Menuj by Marco van Hylckama Vlieg
 * web: http://www.i-marco.nl/weblog/
 *
 * */

function initMenus() {
	$('ul.menu ul').hide();
	$.each($('ul.menu'), function(){
		$.each($('ul.menu li a'), function() {
			if ($(this).hasClass('current')) {
				if($(this).parent().parent().parent().is('li')) {
				 	$(this).parent().parent().parent().addClass('current');
				}
			}
		});
					
		$('ul.menu li.current ul').show();
	});
	$('ul.menu li a').click(
		function() {

			var checkElement = $(this).next();
			var parent = this.parentNode.parentNode.id;

			if($('#' + parent).hasClass('noaccordion')) {
				if((String(parent).length > 0) && (String(this.className).length > 0)) {
					if($(this).next().is(':visible')) {
						$.cookie(parent, null);
					}
					else {
						$.cookie(parent, this.className);
					}
					$(this).next().slideToggle('normal');
				}				
			}
			if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
				if($('#' + parent).hasClass('collapsible')) {
					$('#' + parent + ' ul:visible').slideUp('normal');
				}
				return false;
			}
			if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
				$('#' + parent + ' ul:visible').slideUp('normal');
				checkElement.slideDown('normal');
				return false;
			}
		}
	);
}
$(document).ready(function() {initMenus();});

