var fileName = 'File name: menudisplay\n';
var setnav1 = '';
var setnav2 = '';
var setnav3 = '';
var relnav1 = '';
var relnav2 = '';

/****************************************
* Function setnav
****************************************/
function setnav() {
      	var fname = 'Function name: setnav\n';
		var callingFunction = 'set';
		var menulocation;
		var debug = false;
		if (!document.getElementById || !document.getElementsByTagName) {
		var errormsg = 'FAILED: document.getElementById || !document.getElementsByTagName)';
		errorHandling(fileName,fname,errormsg)
			return;
		}

		getPageNav(callingFunction);
		level1 = setnav1;
		level2 = setnav2;
		level3 = setnav3;
		if (level3 == undefined) {level3 = ''}

		/*if (!document.getElementById(level1)||!document.getElementById(level2)||!document.getElementById(level3)) {
		var errormsg = 'FAILED: document.getElementById(level1)||!document.getElementById(level2)||!document.getElementById(level3)';
		errorHandling(fileName,fname,errormsg)
			return;
		}
		*/

        if (debug) {alert(fname + '\n' + 'level1:  ' + level1 + '\n' + 'level2: ' + level2 + '\n' + 'level3 is: ' + level3 + '\n' + 'menulocation is: ' + menulocation)};
		if(level1 == 'none') {
			document.getElementById(menulocation).id = 'menuOff';
			menulocation == 'none';
			if (debug) {alert('menulocation: ' + menulocation)}
		}
		document.getElementById(level1).style.display = 'block';
		document.getElementById(level2).style.display = 'block';
		if (level3 == '' || level3 == null) {
			if (debug) {alert('level3 false')}
			document.getElementById(level1).className = document.getElementById(level1).className + ' menuOn';
		} else {
			if (debug) {alert('level3 true')}
			document.getElementById(level1).className = document.getElementById(level1).className +  ' menuhdrOn';
			document.getElementById(level3).className = document.getElementById(level3).className + ' menuOn';
            document.getElementById(level3).style.display = 'block';
		}
		//document.getElementById(level2).className = document.getElementById(level2).className + ' menuOn';
		menulocation == level2;
    }


/****************************************
* Function releasenav
****************************************/
	function releasenav() {
      	var fname = 'Function name: releasenav\n';
		var callingFunction = 'release';
		var menulocation;
		var debug = false;

		getPageNav(callingFunction);
		level1 = relnav1;
		level2 = relnav2;

        if (debug) {alert(fname + '\n' + 'level1:  ' + level1 + '\n' + 'level2: ' + level2 + '\n' + 'menulocation is: ' + menulocation)};
		if (level1 == null || level2 == null){
			var errormsg = 'FAILED: level1 == null || level2 == null';
			errorHandling(fileName,fname,errormsg);
			return;
		}
		if(level1 == 'none') {
			document.getElementById(menulocation).id = 'menuOff';
			menulocation == 'none';
			if (debug) {alert('menulocation: ' + menulocation)}
		}
		document.getElementById(level2).id = 'menuOff';
		menulocation == level2;
    }


/****************************************
* Function toggleMenu
* if menu level one
* cycle through all menu levels set display to none
* if menu level 2
* cycle through 2nd level menus set display to none
* finally set display block on passed menu item.
****************************************/
    function toggleMenu(menuID,menuLevel) {
    	var fname = 'Function name: toggleMenu\n';
		var callingFunction = 'toggle';
		if (menuID == null || menuLevel == null){
			var errormsg = 'FAILED: menuID == null || menuLevel == null';
			errorHandling(fileName,fname,errormsg)
			return;
		}

		var menuObject = document.getElementById(menuID)
		var menulevel = 'menusub';
		var menusub1Array = new Array('millers', 'smiths', 'reunions', 'family')
        var menusub2Array = new Array ('keith', 'david')
		var debug = false;

		if (debug) {alert(fname + '\n' + 'value of menuLevel: ' + menuLevel + '\n menuID: ' + menuID)}

		if (menuLevel==(menulevel + 1)) {
			if (debug) {alert(fname + '\n' + 'menulevel1 is true' + '\n')}
			for (i = 0; i < menusub2Array.length;) {
				if (debug) {alert('i is: ' + i)}
					document.getElementById(menusub2Array[i]).style.display = 'none'
					i++
			}
			for (i = 0; i < menusub1Array.length;) {
				document.getElementById(menusub1Array[i]).style.display = 'none'
				i++
			}
		}

		if (menuLevel==(menulevel + 2)) {
			if (debug) {alert(fname + '\n' + 'menulevel2 is true' + '\n')}
				for (i = 0; i < menusub2Array.length;) {
					document.getElementById(menusub2Array[i]).style.display = 'none'
					i++
				}
		}

		if (debug) {alert(fname + '\n' + 'value of menuID is: ' + menuID)}
		menuObject.style.display = 'block';
		return;
    }


var thiselemparent = "";
var thiselemfirstchild = "";
var thiselemid = "";
var elemidarry  = new Array();


/****************************************
* Function getPageNav
* read page meta tags and determine
* navigation parameters
****************************************/
function getPageNav(calling_Function) {
	var fname = 'Function name: getPageNav\n';
	var debug = 'true';
	if (!document.getElementById || !document.getElementsByTagName) {
		var errormsg = 'FAILED: document.getElementById || !document.getElementsByTagName)';
		errorHandling(fileName,fname,errormsg)
		return;
	}
	if (!document.getElementsByTagName("meta")) {
		var errormsg = 'FAILED: document.getElementsByTagName("meta")';
		errorHandling(fileName,fname,errormsg)
		return;
	}
	//alert(fname + document.getElementsByTagName("meta")[0].getAttribute("content")+ '\n' + document.getElementsByTagName("meta")[1].getAttribute("content"));
	var list = document.getElementsByTagName("meta");
	for (var i=0;i<list.length;i++) {
		var wanteditem = '';
		var thisitem = list[i].getAttribute("name");
		if (calling_Function == 'set') {
			if (thisitem == 'navset') {
				var setnav = list[i].getAttribute("content");
				setnav1 = list[i].getAttribute("content").split(',')[0];
				setnav2 = list[i].getAttribute("content").split(',')[1];
				setnav3 = list[i].getAttribute("content").split(',')[2];
				return setnav1,setnav2,setnav3;
			}
		}

		if (calling_Function == 'release') {
			if (thisitem == 'navrelease') {
				var relnav = list[i].getAttribute("content");
				relnav1 = list[i].getAttribute("content").split(',')[0];
				relnav2 = list[i].getAttribute("content").split(',')[1];
				//alert('relnav1: ' + relnav1 + '\n' + 'relnav2: ' + relnav2 + '\n');
				return relnav1,relnav2;
			}
		}

	}
}

/****************************************
* Function getElementsByClassName
*  pass in an elements classname attribute
*  find the childnode (should be an a element)
*  find the parentnode id(should be the enclosing div)
*  returns parentnode id
****************************************/
function getElementsByClassName(findclass) {
	var fname = "getElementsByClassName: ";
	var allelements = document.getElementsByTagName('*');
	for (var i = 0; i < allelements.length; i++) {
		var thiselement = allelements[i];
		if (thiselement.className && thiselement.className == findclass) {
			//alert(fname + 'if by class name: ' + thiselement + ' :: ' + i + '\n');
			thiselemid = thiselement.getAttribute("id");
			//alert(fname + thiselemid);
			thiselemfirstchild = thiselement.firstChild;  //should be a H1 tag wrapping an anchor element
			//thiselemfirstchild.setAttribute("onclick", "goaway");
			//alert (fname + thiselemfirstchild.getAttribute("onclick"));
			//alert (fname + thiselemfirstchild.getAttribute("id"));
			thiselemparent = thiselement.parentNode.id;
			//alert(fname + thiselemparent);
			//return thiselemid, thiselemparent;
			elemidarry.push(thiselemid);
		}
	}
	//alert(fname + elemidarry);
	return elemidarry;
}
