//*** Navigation Menu ***
$(document).ready(function(){
	
	$.fn.hasClass = function(strClassName) {
		try {
			strClassName = strClassName.replace(".","");
			if($(this).get(0).className.indexOf(strClassName) > -1) {
				return true;
			} else {
				return false;
			}
		} catch(e) {
			//Error, return false anyhow
			return false;
		}

	}
	

	var noHighlight = false;
	var $navMenu = $("div.mod_navigation");	
	var $navMenuItems = $navMenu.find("ul.level_1 > li");
	var baseURI = $("base").attr("href");


	$navMenu.find("ul.level_1 > li > a").click(function(event) { 
			event.stopPropagation();
			event.preventDefault();
			clickHandler($(this).parent("li"));
	});

	var clickHandler = function($obj) {
		noHighlight = true;
		
		//submenu? if so show submenu when clicked
		$navMenu.find("li.active ul.level_2").slideUp("fast");
		$navMenu.find("li.trail ul.level_2").slideUp("fast");

		if ($obj.hasClass("submenu")) {
			$obj.find("ul.level_2 ul").css("display","block");
			$obj.find("ul.level_2").slideDown("normal", function() { 
					location.href = $obj.find("a").eq(0).attr("link"); 
				});
			//remove_highlight($navMenu.find("ul.level_1 > li.active"), true);
		} else {
			location.href = $obj.children("a").attr("href");
		}

	}

	$navMenuItems
		.mouseover(function() {	
			if (!$(this).hasClass("trail")) 
			{
				highlight_item($(this));
			}
		})
		.mouseout(function() { if (!$(this).hasClass("active")) remove_highlight($(this)) })
		.each(function() {
			//Allow animation to complete before loading page
			var $Link = $(this).find("a").eq(0);
			var href = $Link.attr("href");
			
			var appendBaseURL;
			if( (typeof href != "undefined") && (href.indexOf("http:") == -1) && (href.indexOf("www.") == -1) && (href.indexOf("https:") == -1)) {
				appendBaseURL = true;
			} else {
				appendBaseURL = false;
			}

			if ($(this).hasClass("submenu") && !$Link.parents("ul").eq(0).hasClass("level_2")) {
				$Link.bind("click", function() { return false; });
				if (appendBaseURL) $Link.attr("href","#").attr("link",baseURI+href);
			} else {
				if (appendBaseURL) $Link.attr("href",baseURI+href);
			}
		});

		//Exception for li.trail item
		$navMenu.find("ul.level_1 > li.trail > a")
			.mouseover(function() { highlight_item($(this).parent("li.trail")) })
			.mouseout(function() { remove_highlight($(this).parent("li.trail")) });

		var highlight_item = function($obj, override) {
			override = (override) ? override: false;
			if (!noHighlight || override) {
				$obj.css({
					"background-color":"#F7F0A2",
					"background-image":"url("+imgLocation+"menu_arrow_over.gif)"
				});
			}
		}
		var remove_highlight = function($obj, override) {
			override = (override) ? override: false;
			if (!noHighlight || override) {
				$obj.css({
					"background-color": "#AFCAEA",
					"background-image":"url("+imgLocation+"menu_arrow.gif)"
				});
			}
		}

		//Fix for last item
		if ($navMenu.find("ul.level_1 > li.last").hasClass("active"))
		{
			$navMenu.find("ul.level_1 > li.last").addClass("lastFix");
		}
});
