jQuery(document).ready(function()
{
	var slideUpDownTime = 250;
	var slideleftRightTime = 250;

	jQuery("ul.menu > li").click(function(e){

		var id = jQuery(this).attr("id");

		/////////////////////////////////////////////
		// Close and deactivate all submenus not
		// pertaining to the curently clicked one
		//
		jQuery("li:not(#"+id+") .left-bar").slideUp(slideUpDownTime);
		jQuery("li:not(#"+id+") .left-bar-single").slideUp(slideUpDownTime);
		jQuery("li:not(#"+id+") .sub-menu").slideUp(slideUpDownTime);
		jQuery("li:not(#"+id+") > p").removeClass("active");
		jQuery("li:not(#"+id+") > p").removeClass("parent-active");
		jQuery("ul.sub-sub-menu").hide();

		if(jQuery("li#"+id+" .sub-menu").css("display") == "block")
		{
			/////////////////////////////////////////////////////////////////////////
			// If currently open, close and deativate it by removing "active" class
			//
			jQuery("li#"+id+" .left-bar").slideUp(slideUpDownTime);
			jQuery("li#"+id+" .sub-menu").slideUp(slideUpDownTime);

			if(!jQuery("#"+id+" > .sub-menu").length)
				jQuery("#"+id+" > p").removeClass("active");
			else
				jQuery("#"+id+" > p").removeClass("parent-active");
		}
		else
		{
			////////////////////////////////////////////////////////////////////////
			// If currently closed, open and activate it by adding "active" class
			//
			var leftBarHeight = parseInt(jQuery("li#"+id).height());

			if(!isNaN(parseInt(jQuery("li#"+id).css("margin-top"))))
				leftBarHeight += parseInt(jQuery("li#"+id).css("margin-top"));
			if(!isNaN(parseInt(jQuery("li#"+id).css("margin-bottom"))))
				leftBarHeight += parseInt(jQuery("li#"+id).css("margin-bottom"));
			if(!isNaN(parseInt(jQuery("li#"+id).css("padding-top"))))
				leftBarHeight += parseInt(jQuery("li#"+id).css("padding-top"));
			if(!isNaN(parseInt(jQuery("li#"+id).css("padding-bottom"))))
				leftBarHeight += parseInt(jQuery("li#"+id).css("padding-bottom"));

			leftBarHeight += parseInt(jQuery("li#"+id+" .sub-menu").height());

			jQuery("li#"+id+" .left-bar").css("height",leftBarHeight+"px");
			jQuery("li#"+id+" .left-bar").slideDown(slideUpDownTime);
			jQuery("li#"+id+" .sub-menu").slideDown(slideUpDownTime);

			if(!jQuery("#"+id+" > .sub-menu").length)
				jQuery("#"+id+" > p").addClass("active");
			else
				jQuery("#"+id+" > p").addClass("parent-active");
		}
 	});

	jQuery("ul.sub-menu > li").click(function(e){showThirdTier($(this),slideleftRightTime);});

	jQuery("ul.sub-menu > li, ul.sub-sub-menu > li").click(function(e){ e.stopPropagation(); });

	jQuery("ul.sub-menu > li > p").hover(
		function(){
			if(!jQuery(this).hasClass("parent-active"))
				jQuery(this).addClass("hover");
		},
		function(){
			jQuery(this).removeClass("hover");
		}
	);
});

function showThirdTier(obj,slideleftRightTime)
{
	var id = obj.attr("id");

	if(!jQuery("ul.sub-sub-menu[id=sub-"+id+"]").length)
	{
		jQuery(".sub-menu li:not(#"+id+") > p").removeClass("active");
		jQuery(".sub-menu li#"+id+" > p").addClass("active");
	}
	else
	{
		/////////////////////////////////////////////
		// Close and deactivate all submenus not
		// pertaining to the curently clicked one
		//
		jQuery("ul.sub-sub-menu[id!=sub-"+id+"]").hide();
		jQuery("ul.sub-menu li:not(#"+id+") > p").removeClass("parent-active");

		///////////////////////////////////
		// Show the selected sub-sub-menu
		//
		jQuery("ul.sub-sub-menu[id=sub-"+id+"]").show();
/*
		if(self.navigator.appName == "Microsoft Internet Explorer")
			jQuery("ul.sub-sub-menu[id=sub-"+id+"]").show();
		else
			jQuery("ul.sub-sub-menu[id=sub-"+id+"]").animate({width:"show"},slideleftRightTime);
*/

		////////////////////////////////////////////////////////////////////////////////////
		// Holy Cow - OK, so we are figuring out the pixel position of the sub-sub menu
		// plus it's height as well as the pixel position of the sub-menu plus it's height
		// in order to accurately get the padding-bottom correct for sub-sub menus that
		// arent tall enought to reach the sub-menu item. Crazy, I know......
		//
		var subSubMenuPosition = jQuery("ul.sub-sub-menu[id=sub-"+id+"]").offset();
		var subMenuPosition = obj.offset();

		if((parseInt(subSubMenuPosition.top) + parseInt(jQuery("ul.sub-sub-menu[id=sub-"+id+"]").height())) < parseInt(subMenuPosition.top))
		{
			var paddingBottom = parseInt(subMenuPosition.top) - parseInt(subSubMenuPosition.top) - parseInt(jQuery("ul.sub-sub-menu[id=sub-"+id+"]").height()) + parseInt(obj.height()/2);
			jQuery("ul.sub-sub-menu[id=sub-"+id+"]").css("padding-bottom",paddingBottom+'px');
		}

		jQuery(".sub-menu li#"+id+" > p").removeClass("hover");
		jQuery(".sub-menu li#"+id+" > p").addClass("parent-active");
	}
}

function hideThirdTier(obj)
{
	var id = obj.attr("id");

	/////////////////////////////////////////////
	// Close and deactivate all submenus not
	// pertaining to the curently clicked one
	//
	jQuery("ul.sub-sub-menu[id!=sub-"+id+"]").hide();
	jQuery("ul.sub-menu li:not(#"+id+") > p").removeClass("parent-active");
}