$.fn.isMouseOn = function(x, y) {
	var top = $(this).offset().top;
	var left = $(this).offset().left;
	
	if (x > left && x < left + $(this).outerWidth() && y > top && y < top + $(this).outerHeight()) {
		return true;
	} else {
		return false;
	}
};

var menuTimer = null;

function toggleSubMenu (subMenuElementId) {
	window.clearTimeout(menuTimer);
	
	$('div#sub_menu').children('ul').each(function() {
		$(this).hide();
	});
	
	$('#'+subMenuElementId).show();
	
	$(document).bind('mousemove', checkIsOnMenu);
}

function checkIsOnMenu(e) {
	window.clearTimeout(menuTimer);
	
	if (!$('div#menu').isMouseOn(e.pageX, e.pageY) && !$('div#sub_menu').isMouseOn(e.pageX, e.pageY)) {
		menuTimer = window.setTimeout(function() {
			$('div#sub_menu').children('ul').each(function() {
				$(this).hide();
			});
			
			$('div#sub_menu').children('ul.base').show();
			
			$(document).unbind('mousemove', checkIsOnMenu);
		}, 400);
	}
}