$(document).ready(function(){
	// find and open submenu for current page if current page is a
	// main menu option
	if ( $('#left-navi-menu .navi-item.current-page').length > 0 ) 
	{
		var thisObj = $('#left-navi-menu .navi-item.current-page');

		// open this submenu, set style, flag child <a> as current-page-marker
		mOver(thisObj);
		openSubMenu(thisObj);
		thisObj.children('a').addClass('current-page-marker');
	}

	// find and open submenu for current page if current page is a
	// sub menu option
	if ( $('#left-navi-menu .navi-sub-item.current-page').length > 0 ) 
	{
		var thisObj = $('#left-navi-menu .navi-sub-item.current-page');
		var thisObjGrandparent = thisObj.parent().parent();

		// open submenu containing this item, style parent list item
		mOver(thisObjGrandparent);
		openSubMenu(thisObjGrandparent);
		thisObjGrandparent.addClass('current-page');

		// style the submenu item
		mOver(thisObj);
		thisObj.children('a').addClass('current-page-marker');
	}

	// array of top level menu item (navi-item) id names
	var naviItemList = new Array ('multi-enterprise-foundation',
	                              'multi-enterprise-integration',
	                              'business-intelligence',
	                              'supply-network',
	                              'demand-network-solutions');

	// iterate over the previous list and setup hoverIntent
	// event handlers 
	for (naviItem in naviItemList)
	{
		$('#' + naviItemList[naviItem]).hoverIntent(
			function(event){
				showPopup ( $(this) );

				if(! $(this).hasClass('current-page') )
				{
					openSubMenu($(this));
				}
			},
			function(){
				hidePopup( $(this) );

				if(! $(this).hasClass('current-page') )
				{
					closeSubMenu($(this));
				}
			}
		);
	}

	// setup hoverIntent handlers for menu sub items (navi-sub-item)
	$('.navi-sub-item').hoverIntent(
		function(){
			mOver($(this));
		},
		function(){
			if(!$(this).hasClass('current-page'))
				mOut($(this));
		}
	);

	function mOver(obj)
	{
		obj.addClass('selected')
		   .animate({backgroundColor: '#B3D10A'}, 200);
	}

	function mOut(obj)
	{
		if(!obj.hasClass('current-page')) 
			obj.removeClass('selected')
			   .animate({backgroundColor: '#ffffff'}, 200);
	}


	// open left-navi-sub-menu under given left-navi-menu
	function openSubMenu( obj ) {
		obj.animate({backgroundColor: '#B3D10A'}, 200)
		   .addClass('selected')
		   .find('ul.left-navi-sub-menu')
		   	.slideDown('slow');
	}

	// close left-navi-sub-menu under given left-navi-menu
	// if one exists, otherwise simply adjust style
	function closeSubMenu( obj ) {
		// check if this navi-item contains a <ul>
		if ( obj.find('ul.left-navi-sub-menu').length > 0 )
		{
			obj.find('ul.left-navi-sub-menu').slideUp('slow', 
				function(){
					$(this).parent().animate({backgroundColor: '#FFF'}, 200)
					                .removeClass('selected');
				}
			);
		} else { 
			// we have no child left-navi-sub-menu, simply animate bg back to white 
			// and remove 'selected' class
			obj.animate({backgroundColor: '#FFF'}, 200)
			   .removeClass('selected');
		}
	}

	function showPopup( obj ) {
		var popupId = '#' + obj.attr('id') + '-popup';

		var posTop = obj.position().top;
		var posLft = obj.position().left;
		var posHeight = obj.outerHeight();
		var posWidth = obj.outerWidth();

		$(popupId).css({'top': posTop - 30, 'left': posLft + 140})
		          .show();
	}

	function hidePopup( obj ) {
		var popupId = '#' + obj.attr('id') + '-popup';

		$(popupId).hide();
	}

	$('#sharedIcons').find('li').hover(
		function(){
			var posTop = $(this).position().top - 42;
			var posLft = $(this).position().left - 25;
			var content= $(this).find('span').html();

			$('div#leftPopBox').css({'top': posTop, 'left': posLft})
				.html(content).show();
		},
		function(){
			$('div#leftPopBox').hide();
		}
	);
});
