$(document).ready(function() {

	$('.submenu:has(a)').each(function() {

		var link = $(this).prev('.sub');
		var menu = $(this);
		var attr = $(menu).children();
		var timeout;
		var position = link.position();
		var shown = false;
		var opa = '';

		$(link).add(menu).mouseover(function() {
			clearTimeout(timeout);

			if (shown == false) {
				showMenu();
			}

		}).mouseout(function() {
			clearTimeout(timeout);
			timeout = setTimeout(function() {
				hideMenu();
			}, 300);
		});

		$('body').children().not(link).not(menu).click(function() {
			hideMenu();
		});

		function hideMenu() {
			shown = false;
			$(menu).slideUp(200, function() {
				$(this).css('display', 'none');
			});

		}
		function showMenu() {
			shown = true;
			$(menu).slideDown(200);
		}

	});
});
