(function($) {

	var openItem;
	var active = null;

	// Open the sub-menu
	var open = function(elem)
	{
		$(elem).find('ul').css('display', 'block');
		$(elem).addClass('open');
		openItem = elem;
	};

	// Close the sub-menu
	var close = function(elem)
	{
		$(elem).find('ul').css('display', 'none');
		$(elem).removeClass('open');
	};

	// Toggle the sub-menu
	var toggle = function(elem)
	{
		if ($(elem).hasClass('open'))
		{
			close(elem);
		}
		else
		{
			open(elem);
		}
	};

	// Mouse over a subnav item
	var over = function(elem)
	{
		var image = $(elem).find('.large-image');
		if (image)
		{
			$('#category-image').css('backgroundImage', 'url(' + image.attr('src') + ')');
		}
		$(active).removeClass('hover');
		$(elem).addClass('hover');
		active = elem;
	};

	$.fn.menu = function()
	{
		$('.has_children').each(function()
		{
			var item = $(this);

			// Add click event
			item.click(function(e)
			{
				if ($(e.target).parent().hasClass('has_children'))
				{
					e.preventDefault();
					toggle(item);
				}
			});
		})

		// Add mouseover events for image showing
		var first = true;
		$(this).children('li').each(function()
		{
			$(this).mouseover(function(e)
			{
				if ($(e.target).parent().hasClass('level_1'))
				{
					over(this);
					close(openItem);
				}
			});

			if (first)
			{
				over(this);
				first = false;
			}
		});
	};

}(jQuery));
