$(document).ready(function() {
	$('div.submenu_container').each(function() {
		shadeMenu($(this));
	});
	activateMenu();
});

function shadeMenu(wrapper) {
	wrapper.wrapInner('<div class="submenu_center"></div>');
	wrapper.prepend('<div class="submenu_top"></div>');
	wrapper.append('<div class="submenu_bottom"></div>');
}

function activateMenu() {
	$('ul.menu').children('li').each(function() {
		var li = $(this);
		var sub = $(this).children('.submenu_container');
		sub.show();
		li.mouseover(function() {
			li.addClass('active');
			sub.css('z-index', 12);
			clearInterval(li.data('iv'));
			sub.fadeIn(200);
		});
		li.mouseout(function() {
			clearInterval(li.data('iv'));
			li.data('iv', setTimeout(function() {
				li.removeClass('active');
				sub.css('z-index', 11);
				sub.fadeOut(200, function() {
					var ul = li.find('ul.hidden');
					ul.css('opacity', 0);
					ul.css('height', '0px');
					li.find('span.more').show();
				});
			}, 50));
		});
	});
	$('ul.submenu').children('li').each(function() {
		var li = $(this);
		li.mouseover(function() {
			li.addClass('active');
		});
		li.mouseout(function() {
			li.removeClass('active');
		});
	});
	$('ul.hidden').prev('a').each(function() {
		var anchor = $(this);
		var ul = anchor.next('ul.hidden');
		var h = ul.height();
		ul.css('opacity', 0);
		ul.css('height', '0px');
		anchor.append('<span class="more"></span>');
		anchor.click(function() {
			ul.animate(
				{ 'opacity': 1, 'height': h + 'px'},
				300
			);
			anchor.children('span').fadeOut(100);
			return false;
		});
	});
	$('.submenu_container').hide();
}
