function primNav(id) {
	//get all menu li's for this nav ul
	var subMenus = $("#" + id + " > li.subItems");
	var subSubMenus = $("#" + id + " > li.subItems > ul li.subItems");
	//set number of menu items [aka links with subMenus]
	var menuLength = (subMenus.length -1);
	var subMenuLength = (subSubMenus.length -1);
	//loop through all primNav dropdown links, hide all non active and assign mouseover events
	for(i=0; i <= menuLength; i++){
		//check if active menu item - if so set arrow to expand version
		if(subMenus[i].getElementsByTagName('a')[0].className == "active"){
			jQuery(subMenus[i].getElementsByTagName('span')[0]).removeClass("navArr");
			jQuery(subMenus[i].getElementsByTagName('span')[0]).addClass("navArr2");
		}
    	//check for active menuItem - do not hide if active
		if(subMenus[i].getElementsByTagName('a')[0].className != "active"){
			jQuery(subMenus[i].getElementsByTagName('ul')).hide();
			jQuery(subMenus[i].getElementsByTagName('span')[0]).click(function(){ 
				//loop through all menu items and close any non active
				for(c=0; c <= menuLength; c++) {
					if(subMenus[c].getElementsByTagName('a')[0].className != "active"){
						if(subMenus[c].getElementsByTagName('span')[0].className == "navArr2" && this.parentNode.getElementsByTagName('span')[0].className != "navArr2") {
							jQuery(subMenus[c].getElementsByTagName('span')[0]).removeClass("navArr2");
							jQuery(subMenus[c].getElementsByTagName('span')[0]).addClass("navArr");
							jQuery(subMenus[c].getElementsByTagName('ul')[0]).slideToggle("medium");
						}
					}
				}
				//change arrow state of loop element to reflect col/expand view
				if(this.parentNode.getElementsByTagName('span')[0].className == "navArr2"){
					jQuery(this.parentNode.getElementsByTagName('span')[0]).removeClass("navArr2");
					jQuery(this.parentNode.getElementsByTagName('span')[0]).addClass("navArr");
				}else if(this.parentNode.getElementsByTagName('span')[0].className == "navArr") {
					jQuery(this.parentNode.getElementsByTagName('span')[0]).removeClass("navArr");
					jQuery(this.parentNode.getElementsByTagName('span')[0]).addClass("navArr2");
				}
				//show/hide menuList
				jQuery(this.parentNode.getElementsByTagName('ul')[0]).slideToggle("medium", function () {
					showNavArr(this.parentNode.getElementsByTagName('ul')[0].getElementsByTagName('span'));
				});
				
				//function to toggle visibility of navArr when animated [only fires when closing menu] 
				hideNavArr(this.parentNode.getElementsByTagName('ul')[0].getElementsByTagName('span'));
			});
		}
	}
	
	//loop through all subSubMenu dropdown links, hide all non active and assign mouseover events
	for(i=0; i <= subMenuLength; i++){
		//check if active menu item - if so set arrow to expand version
		if(subSubMenus[i].getElementsByTagName('a')[0].className == "active"){
			jQuery(subSubMenus[i].getElementsByTagName('span')[0]).removeClass("navArr");
			jQuery(subSubMenus[i].getElementsByTagName('span')[0]).addClass("navArr2");
		}
    	//check for active menuItem - do not hide if active
		if(subSubMenus[i].getElementsByTagName('a')[0].className != "active"){
			jQuery(subSubMenus[i].getElementsByTagName('ul')).hide();
			jQuery(subSubMenus[i].getElementsByTagName('span')[0]).click(function(){ 
				//loop through all menu items and close any non active
				for(c=0; c <= subMenuLength; c++) {
					if(subSubMenus[c].getElementsByTagName('a')[0].className != "active"){
						if(subSubMenus[c].getElementsByTagName('span')[0].className == "navArr2" && this.parentNode.getElementsByTagName('span')[0].className != "navArr2") {
							jQuery(subSubMenus[c].getElementsByTagName('span')[0]).removeClass("navArr2");
							jQuery(subSubMenus[c].getElementsByTagName('span')[0]).addClass("navArr");
							jQuery(subSubMenus[c].getElementsByTagName('ul')).slideToggle("medium");
						}
					}
				}
				//change arrow state of loop element to reflect col/expand view
				if(this.parentNode.getElementsByTagName('span')[0].className == "navArr2"){
					jQuery(this.parentNode.getElementsByTagName('span')[0]).removeClass("navArr2");
					jQuery(this.parentNode.getElementsByTagName('span')[0]).addClass("navArr");
				}else if(this.parentNode.getElementsByTagName('span')[0].className == "navArr") {
					jQuery(this.parentNode.getElementsByTagName('span')[0]).removeClass("navArr");
					jQuery(this.parentNode.getElementsByTagName('span')[0]).addClass("navArr2");
				}
				//show/hide menuList
				jQuery(this.parentNode.getElementsByTagName('ul')).slideToggle("medium");
			});
		}
	}
	
}

/*-----------------------------------------------------------------------------------------------------
functions to toggle the visibility of subSubMenu navArrows [btns]
[there absolute positioning causes them to show above the animation elements and look ugly]
- they show on jQ toggleSlide callback function [at end]
- they hide on diret call from function call

----------------------------------------------------------------------------------------------------*/
/*fires on completion of toggleSlide [uses toggleSlideCallback]*/
function showNavArr(element) {
	if(element.length){//fixes issue with function firing when no subSubdrop downs and getting stuck in endless null loop
		if($(element[0]).css("display") == "none") {
			//loop through all sub lis for this list and hide
			for(t=0;t <= (element.length-1); t++) {
				$(element[t]).css("display","block");
			}
		}
	}
}
/*fires on immediate direction function call [conditional checks to see if execution of hide code required]*/
function hideNavArr(element) {
	if(element.length){//fixes issue with function firing when no subSubdrop downs and getting stuck in endless null loop
		if($(element[0]).css("display") == "block") {
			//loop through all sub lis for this list and hide
			for(t=0;t <= (element.length-1); t++) {
				$(element[t]).css("display","none");
			}
		}
	}
}

