
;(function($)
{
	var submenus = [],
		tID      = false,
		container = false;

	$.hkiff33menu = {
		smTop: false,
		smBeginTop: false,
		delay: 1500,
		activeMenuIndex : false,
		displayMenuIndex : false
	};

	$.fn.extend({

		initMainMenu: function() 
		{
			this.each(function() {
				container = this;
			});

			// register main menu items
			$.hkiff33menu.smTop = 40;
			$.hkiff33menu.smBeginTop = 40 - 8;

			$('#mainmenu a').each(function(index) {
				// assign index
				$(this).data('menu-index', index);

				// store submenus
				var submenu = document.getElementById('submenu-'+(index+1));

				if (submenu)
				{
					submenu = $(submenu);

					if (submenu.hasClass('active'))
					{
						$.hkiff33menu.activeMenuIndex = index;
						$.hkiff33menu.displayMenuIndex = index;
						pos = submenu.position();
					}
					else
					{
						submenu.css('opacity', 0)
							.css('top', $.hkiff33menu.smBeginTop + "px");

						// initialize submenu styles
						if ($.browser.msie)
						{
							submenu.removeClass('submenu');
						}
						else
						{
							submenu.css('display', 'table');
						}
					}
					

					$(submenu)
						.mouseover(onSubmenuItemOver)
						.mouseout(onMenuItemOut);

					submenus[index] = submenu;
				}
			})
			.mouseover(onMenuItemOver)
			.mouseout(onMenuItemOut);
		}
	});

	function onMenuItemOver(event)
	{
		if ($(this).data('menu-index') !== $.hkiff33menu.displayMenuIndex)
		{
			showSubmenu($(this).data('menu-index'));
		}

		if (tID)
			clearTimeout(tID);
	}

	function onSubmenuItemOver(event)
	{
		if (tID)
			clearTimeout(tID);
	}

	function showSubmenu(index)
	{
		$.hkiff33menu.displayMenuIndex = index;

		$.each(submenus, function(i)
		{
			if (submenus[i])
			{
				if (i !== $.hkiff33menu.displayMenuIndex)
				{
					submenuItemOut(i);
				}
				else
				{
					submenuItemIn(i);
				}
			}
		});
	}

	function onMenuItemOut(event)
	{
		tID = setTimeout(restoreSubmenu, $.hkiff33menu.delay);
	}

	function restoreSubmenu()
	{
		if ($.hkiff33menu.activeMenuIndex !== $.hkiff33menu.displayMenuIndex)
		{
			$.each(submenus, function(i)
			{
				if (submenus[i])
				{
					if (i !== $.hkiff33menu.activeMenuIndex)
					{
						submenuItemOut(i);
					}
					else
					{
						submenuItemIn(i);
					}
				}
			});

			$.hkiff33menu.displayMenuIndex = $.hkiff33menu.activeMenuIndex;
		}
	}

	function submenuItemIn(i)
	{
		submenus[i].css('top', $.hkiff33menu.smBeginTop + "px")
			.css('opacity', 0)
			.css('visibility', 'visible')
			.animate({ opacity: 1.0, top: $.hkiff33menu.smTop + "px" }, 
				{ 
					queue: false, 
					duration: 300,
					easing: 'linear',
					complete: function() { 
						if (jQuery.browser.msie)
							this.style.removeAttribute('filter'); 
					}
				}
			);
	}

	function submenuItemOut(i)
	{
		submenus[i]
			.css('visibility', 'hidden')
			.animate({ opacity: 0.0 }, { queue: false, duration: 300 }, 'swing');
	}

})(jQuery);

jQuery(document).ready(function() 
{
	$('#master-topmenu').initMainMenu();
});
