/**
 * Menu
 */
$(document).ready(function() {
	var timer = hoverActiveLink = activeSub = null;
	var menuSpacer = $('#menu-spacer');
	var activeLink = $('#menu>li>a.active');

	$('#menu>li').hover(function() {
		var link = $('a:first', this);
		link.addClass('hover');

		if ($('ul', this).size() > 0) {
			link.addClass('activeSub');
		}
	}, function() {
		var link = $('a:first', this);
		link.removeClass('hover');

		if ($('ul', this).size() > 0) {
			link.removeClass('activeSub');
		}
	});

	if (activeLink.size() > 0) {
		if ($('~ul', activeLink).size() > 0) {
			activeSub = $('~ul', activeLink).show();
			menuSpacer.show();
		}
	}

	function restore() {
		if (activeLink.size() > 0) {
			if ($('~ul', activeLink).size() > 0) {
				$('~ul', activeLink).addClass('open').show();
				menuSpacer.show();
			}
		}
	}

	timer = setInterval(function() {
		hoverActiveLink = $('#menu>li>a.activeSub');

		if (hoverActiveLink.size() > 0) {
			var oldHoverSub = $('#menu>li>ul.open');
			var hoverSub = hoverActiveLink.next('ul');

			if (oldHoverSub.size() > 0 && hoverSub[0] != oldHoverSub[0]) {
				oldHoverSub.fadeOut('fast', function() {
					$(this).removeClass('open');
				});
			}

			if (!menuSpacer.hasClass('open')) {
				menuSpacer.slideDown('normal', function() {
					$(this).addClass('open');
					hoverSub.fadeIn('fast', function() {
						$(this).addClass('open');
					})
				});
			} else {
				hoverSub.fadeIn('fast', function() {
					$(this).addClass('open');
				});
			}
		} else {
			var hoverSub = $('#menu>li>ul.open');
			if (hoverSub.size() > 0 && !hoverSub.prev('a').hasClass('active')) {
				hoverSub.fadeOut('fast', function() {
					$(this).removeClass('open');
					if (activeSub == null) {
						menuSpacer.slideUp('normal', function() {
							$(this).removeClass('open');
						});
					}
				});
			}

			restore();
		}
	}, 700);
});
