
$(function() { //(1)
	
	$('#menu ul > li, #menu > li > ul > li').click(function(event) { //(2)
		
		var menuHeaderClick = $(this).is('li.header'); //(3a)
		var menuHeaderClickNoExp = $(this).is('li[class=header no-expand]'); //(3b)
		var subHeaderClick = $(this).is('li[class$=submenuheader]'); //(3c)
		var subHeaderClickNoExp = $(this).is('li.header ul.categoryitems li.no-expand'); //(3d)
		var subItemClick = $(this).is('ul.subcategoryitems li'); //(3e)
		var selfClick = $(this).find('ul:first').is(':visible'); //(3f)
		var time = 800; //(3g)
		
		
		if(menuHeaderClick && selfClick) {
			event.preventDefault();
			event.stopPropagation();
			var url = $(this).find('a').attr('href');
			$(this).find('ul.subcategoryitems:visible').slideUp(time);
			window.setTimeout(function(){document.location.href=url;}, time); //timeout and waiting until effect is complete
		}
		
		else if(subHeaderClick && selfClick) {
			event.preventDefault();
			event.stopPropagation();
			var url = $(this).find('a').attr('href');
			window.setTimeout(function(){document.location.href=url;}, time); //timeout and waiting until effect is complete
		}
		
		else if(menuHeaderClick && !selfClick && !menuHeaderClickNoExp ) {
			event.preventDefault();
			event.stopPropagation();
			var url = $(this).find('a').attr('href');
			$(this).parent().find('ul.categoryitems:visible').slideUp(time);
			$(this).find('a:first').addClass('active-category');
			$(this).find('ul.categoryitems:hidden').slideDown(time);
			window.setTimeout(function(){document.location.href=url;}, time); //timeout and waiting until effect is complete
		}
		else if(menuHeaderClickNoExp && !selfClick) {
			event.preventDefault();
			event.stopPropagation();
			var url = $(this).find('a').attr('href');
			$(this).parent().find('ul.categoryitems:visible').slideUp(time);
			$(this).find('a:first').addClass('active-category-noexp');
			window.setTimeout(function(){document.location.href=url;}, time); //timeout and waiting until effect is complete
			
		}
		else if(subHeaderClick && !selfClick  && !subItemClick ) {
			event.preventDefault();
			event.stopPropagation();
			var url = $(this).find('a').attr('href');
			$(this).parent().find('ul.subcategoryitems:hidden').slideDown(time);
			window.setTimeout(function(){document.location.href=url;}, time); //timeout and waiting until effect is complete
		}
		else if(subHeaderClickNoExp && !selfClick  && !subItemClick ) {
			event.preventDefault();
			event.stopPropagation();
			var url = $(this).find('a').attr('href');
			$(this).parent().find('ul.subcategoryitems:visible').slideUp(time);
			window.setTimeout(function(){document.location.href=url;}, time); //timeout and waiting until effect is complete
		}
		else if(!selfClick) {
			event.preventDefault();
			event.stopPropagation();
			var url = $(this).find('a').attr('href');
			$(this)
				.parent()
				.find('>li ul:first:visible')
				.slideToggle(time);
			window.setTimeout(function(){document.location.href=url;}, time); //timeout and waiting until effect is complete
		}
	});	

});
