﻿//Javascript for TA Site Navigation Menus

//Utility function for css class replacement on hover
$.fn.hoverClass = function(c) {
	return $(this).each(function() {
		$(this).hover(
			function() { $(this).addClass(c); },
			function() { $(this).removeClass(c); }
		);
	});
};
		
// Top Navigation Menu
function topInit() {
	$('#topNavList li').hover(
		function() { $('ul.subNodes', this).slideDown('slow'); },
		function() { $('ul.subNodes', this).hide('fast'); }
	);
	
	$('li.topNode').hoverClass('topNode-hover');
	$('li.childNode').hoverClass('childNode-hover');
	
	$('#topNavList li').bind("click", 
		function(event) {
			navUrl = $(this).children('a').attr('href');
			if( $(this).children('a').attr('rel') == 'external' ) {
				window.open(navUrl);
			}
			else {
				location.assign(navUrl);
			}
			event.stopPropagation();
		}
	);
}

// Left Navigation Menu
function leftInit() {	
	$('#leftNavList li').bind("mouseover", { dir : 'over' }, navHover);
	$('#leftNavList li').bind("mouseout", { dir : 'out' }, navHover);
	// $('#leftNavList li').children('div').not($('.arrowBtn')).click( function() { 
		// if($('a[@rel=external]',this).length == 0) {
			// window.location.replace($('a',this).attr('href')); }
	// } );
	$('.arrowBtn').click( function() { navExpandCollapse(this); } );
	
	$('.arrowBtn').css(arrowCss)
	$('.arrowBtn').siblings('div').css(aDivCss);
	$('.arrowBtn').siblings('ul').hide();
	
	expandToSelected($('li[@class$=selected]'));
	
	($('#leftNavList li/div').not('.arrowBtn')).bind("click",
		function(event) {
			navUrl = $('a', this).attr('href');
			if( $('a', this).attr('rel') == 'external' ) {
				window.open(navUrl);
			}
			else {
				location.assign(navUrl);
			}
			event.stopPropagation();
		}
	);
}

var arrowCss = { height: 20, width: 27, cursor: "pointer", marginLeft: "199px", borderLeft : "1px solid #fff" };
var aDivCss = { "float" : "left", lineHeight : "20px", width: 198 };
var selectedParentCss = { color : "#003876", "background" : "#AEBDCF" };
var selectedParents;
var elemSelected = $('li[@class$=selected]');

function navHover(event) {
	elem = $(this);
	dir = event.data.dir;
	hCls = $(elem).attr('class').split(' ')[0] + '-hover';
	
	if(hCls) {
		if(dir == 'over') {
			$(elem).addClass(hCls);
			$(elem).not($(selectedParents)).not($(elemSelected)).children('div').children('a').css( { color : '#fff' } );
		}
		else {
			$(elem).removeClass(hCls);
			$(elem).not($(selectedParents)).not($(elemSelected)).children('div').children('a').css( { color : '' } );
		}
	}
	
	event.stopPropagation();
}

function navExpandCollapse(elem) {
	downCls = 'arrowBtn-down';
	childList = $(elem).siblings('ul');
	
	$(elem).toggleClass(downCls);
	$(childList).slideToggle();
}

function expandToSelected(elem) {
	if( $(elem).length > 0 ) {
		$(elem).parents('li').children('.arrowBtn').each( function() { 
			navExpandCollapse(this);
		} );

		elemSelected = elem;
		selectedParents = $(elem).parents('li').add($(elem).parents('li').children('div').children('a'));
		$(selectedParents).css(selectedParentCss);
		
		$(elem).children('.arrowBtn').each( function() { navExpandCollapse(this); } );
	}
}