jQuery(function($) {	
	
	// Bind nav links
	$('#primary-nav li a').click(function(e) {
		e.preventDefault();
		
		var linkLocation = this.href;
		var isOldBrowser = $.browser.msie && $.browser.version < 9;
		var isSubNavLink = $(this).closest('ul').hasClass('sub-nav');
		var isHomepage = $('body.home').length > 0;
		
		
		if(isOldBrowser) {
			if(isSubNavLink || isHomepage)
				window.location = linkLocation;
			else
				showSubNav($(this), function() {
					window.location = linkLocation;
				});
				
			return;
		}
		
		
		if(!isSubNavLink && !isHomepage)
			showSubNav($(this));
		
		
		$('.fade').fadeOut('normal', function() {
			window.location = linkLocation;
		});
	});
	
	
	function showSubNav($currentLink, callback) {
		var $nav = $currentLink.parent();
		var $subnav = $nav.find('.sub-nav');
		
		$('#primary-nav > li').removeClass('active');
		$nav.addClass('active');
		
		$('#primary-nav .sub-nav').not($subnav).slideUp();
		$subnav.slideDown('normal', function() {
			if(callback)
				callback();	
		});
	}
	
	
	// Bind secondary nav links
	$('#secondary-nav li a').click(function(e) {
		e.preventDefault();
		
		var linkLocation = this.href;
		
		$('#primary-nav > li').removeClass('active');
		$('#primary-nav .sub-nav').slideUp('normal');
		
		$('.fade').fadeOut('normal', function() {
			window.location = linkLocation;
		});
	});

	
	// Bind window resizing to adjust nav width
	$(window).resize(resizeNav);
	function resizeNav() {
		$lis = $('#primary-nav > li');
		$lis.width($(window).width() - $lis.offset().left - $(window).scrollLeft());
	}
	
	
	//
	// Initialize
	resizeNav();
	
	var bodyClass = $('body').attr('class');
	$activeElement = $('#primary-nav .'+bodyClass);
	$activeElement.addClass('active');
	$activeElement.parents('li').addClass('active');
	$('#primary-nav .active .sub-nav').show();
	
	var bodyClass = $('body').attr('class');
	$activeElement = $('#secondary-nav .'+bodyClass);
	$activeElement.addClass('active');
	$activeElement.parents('li').addClass('active');
	$('#primary-nav .active .sub-nav').show();
	
	// Hide fade content and fade in
	if(!($.browser.msie && $.browser.version < 9))
		$('.fade').hide().fadeIn(1000);
});
