var allTopNavs = new Array();
var allSideNavs = new Array();
var allStopHere = new Array();
var allDivs = document.getElementsByTagName('div');
var tmpThing;
var tmpThingTwo;
var pullIn = 20;
var pullUp = 10;
var winTimer;
var winTimer2;
var thisElem;
var hoverRe = new RegExp("Hover$");
var navRe = new RegExp("^nav_section");
var notSideNav = [];
var notThese = [];

for(var i=0;i<allDivs.length;i++) {
	if (allDivs[i].className == 'navDiv') {
		allDivs[i].setAttribute("id", 'navDiv_' + i);
		allTopNavs.push('navDiv_' + i);
		// assumes that the layout is consistent, with 
		// a positioning div around the nav div
		tmpThing = allDivs[i].parentNode;
		if (tmpThing.className != 'stopHere') {
			tmpThingTwo = node_before(tmpThing);
			allDivs[i].style.left = (tmpThingTwo.offsetWidth - pullIn) + 'px';
			allDivs[i].style.top = '-' + Math.floor(((tmpThingTwo.offsetHeight/2) + pullUp)) + 'px';
			if(document.getElementById('heyYou')) {
				document.getElementById('heyYou').innerHTML += 'tmpThingTwo offsetWidth: ' + tmpThingTwo.offsetWidth + '\n';
				document.getElementById('heyYou').innerHTML += 'tmpThingTwo offsetHeight: ' + Math.floor(((tmpThingTwo.offsetHeight/2) + pullUp)) + '\n';
				}
			}
		}
	if (allDivs[i].className == 'sideNavDiv') {
		allDivs[i].setAttribute("id", 'sideNavDiv_' + i);
		allSideNavs.push('sideNavDiv_' + i);
		}
	if (allDivs[i].className=='stopHere') {
		allStopHere.push(allDivs[i]);
		}
	}
for(var i=0;i<allDivs.length;i++) {
	if (allDivs[i].className == 'navDiv') {
		allDivs[i].style.display='none';
		allDivs[i].style.visibility='visible';
		}
	}
for(var i=0;i<allStopHere.length;i++) {
	allStopHere[i].style.visibility='visible';
	}
var allARef = document.getElementsByTagName('a');
var thisPage;
var thisHref = document.location.href;
var m;
if (thisHref.match(/\?/)) {
	m = thisHref.split('?');
	thisHref = m[0];
}

var typeSearch = /doodah/;
if (m && m[1]) {
	if (thisHref.match(/searchResults.php/)) {
		var whichType = /doodah/;
		if (m[1].match(/grantType=[HEAR]/)) {
						whichType=m[1].replace(/(.*grantType=)([HEAR])(.*)/, "$2");			 
			}
		if (m[1].match(/fromForm=fromForm/)) {
			//came from the search form - ignore
		}
		else {
			typeSearch = new RegExp("grantType=" + whichType);
		}
	}
}


for (var i=0;i<allARef.length;i++) {
	if ((allARef[i].href==document.location.href) || (allARef[i].href==document.location.href+'index.php')  ||  (allARef[i].href==document.location.href+'index.htm')  ||  (allARef[i].href==document.location.href+'index.html')  ||  (allARef[i].href==document.location.href+'index.asp') ||  (allARef[i].href==thisHref) ||  (allARef[i].href.match(typeSearch))) {
		if (!allARef[i].className.match(/Hover$/)) {
			allARef[i].className=allARef[i].className+'Hover';
			}
		if (allARef[i].className && allARef[i].className.match(navRe) ) {
			thisPage=allARef[i];
			}
		}
	}

function lightPathWay(elem) {
    var walkOut = "";
    var thisNode = "";
	var mySib;
	var myChild;
	var prevSib;
	var m;
	if(document.getElementById('heyYou')) {
		document.getElementById('heyYou').innerHTML += 'lightPathWay ' + elem + '\n';
		}
    if (elem) {
		if (!hoverRe.test(elem.className)) {
			elem.className = elem.className+'Hover';
			// next time we see it, it will be lit up like the xmas tree it really is
			}
		mySib = node_after(elem);
		// catch the main ones
		if (mySib && mySib.className == 'stopHere') {
			// get the first child of that div
			mySib = first_child(mySib);
			}

        walkOut = elem.parentNode;
        if (walkOut && walkOut.className == "navDiv" && walkOut.className != 'stopHere') {
			prevSib = node_before(walkOut);
			if (prevSib && (prevSib.tagName == 'a' || prevSib.tagName == 'A')) {
				if (!hoverRe.test(prevSib.className)) {
					prevSib.className = prevSib.className+'Hover';
					}
				}
			}
        while(walkOut && walkOut.className != 'stopHere') {
            walkOut = walkOut.parentNode;
            if (walkOut && walkOut.className != 'stopHere' && walkOut.className == 'navDiv') {
				prevSib = node_before(walkOut);
				if (prevSib && (prevSib.tagName == 'a' || prevSib.tagName == 'A')) {
					if (!hoverRe.test(prevSib.className)) {
						prevSib.className = prevSib.className+'Hover';
						}
					}
                }
            }
        }
	}

function waitASec(elem) {
	window.clearTimeout(winTimer);
	//winTimer = window.setTimeout("clearAll()", 1000);
	winTimer = window.setTimeout("clearAll()", 500);
	if(document.getElementById('heyYou')) {
		document.getElementById('heyYou').innerHTML += 'waitASec setting timer\n';
		document.getElementById('heyYou').innerHTML += elem + ' ' + elem.id + '\n';
		}
	}
function clearAll() {
	window.clearTimeout(winTimer);
	if(document.getElementById('heyYou')) {
		document.getElementById('heyYou').innerHTML += 'clearAll clearing timer\n';
		}
	notThese = [];
	for(var i=0;i<allTopNavs.length;i++) {
		document.getElementById(allTopNavs[i]).style.display='none';
		}
	}
function inArray(findThis, inThis) {
	var retval = false;
	for (var i=0;i<inThis.length;i++) {
		if (inThis[i] == findThis) {
			retval = true;
			break;
			}
		}
	return retval;
	}
function clearIt() {
	window.clearTimeout(winTimer);
	if(document.getElementById('heyYou')) {
		document.getElementById('heyYou').innerHTML += 'clearIt clearing timer\n';
		}
	for(var i=0;i<allTopNavs.length;i++) {
		if (inArray(allTopNavs[i], notThese)) {
			document.getElementById(allTopNavs[i]).style.display='block';
			if(document.getElementById('heyYou')) {
				document.getElementById('heyYou').innerHTML += allTopNavs[i] + ' is in notThese -- setting block\n';
				}
			}
		else {
			document.getElementById(allTopNavs[i]).style.display='none';
			if(document.getElementById('heyYou')) {
				document.getElementById('heyYou').innerHTML += allTopNavs[i] + ' is not in in notThese -- setting none\n';
				}
			}
		}
	}
function showAfter(elem) {
    var walkOut = "";
    var thisNode = "";
	var mySib;
	var myChild;
	var prevSib;
	var m;
	if(document.getElementById('heyYou')) {
		document.getElementById('heyYou').innerHTML += '\nshowAfter ' + elem + '\n';
		}
	window.clearTimeout(winTimer);
	notThese = [];
	thisElem = elem;
    if (elem) {
		mySib = node_after(elem);
		// catch the main ones
		if (mySib && (mySib.className == 'stopHere' || !mySib.className)) {
			// get the first child of that div
			mySib = first_child(mySib);
			}
		
		if (mySib) {
			if (mySib.tagName=='div'|| mySib.tagName=='DIV' && mySib.className == 'navDiv') {
				if(document.getElementById('heyYou')) {
					document.getElementById('heyYou').innerHTML += 'mySib ' + mySib.id + '\n';
					}
				mySib.style.display='block';
				notThese.push(mySib.id);
				}
			}
		walkOut = elem.parentNode;
		if(document.getElementById('heyYou')) {
			document.getElementById('heyYou').innerHTML += 'walkOut parent: ' + walkOut.id + '\n';
			}
		if (walkOut && walkOut.className == "navDiv" && walkOut.className != 'stopHere') {
			walkOut.style.display='block';
			notThese.push(walkOut.id);
			prevSib = node_before(walkOut);
			}
		while(walkOut && walkOut.className != 'stopHere') {
			walkOut = walkOut.parentNode;
			if (walkOut && walkOut.className != 'stopHere' && walkOut.className == 'navDiv') {
				if(document.getElementById('heyYou')) {
					document.getElementById('heyYou').innerHTML += 'walkOut ' + walkOut.id + '\n';
					}
				walkOut.style.display='block';
				notThese.push(walkOut.id);
				}
			}
        }
	clearIt();
	}
function initSetOpen(elem) {
    var walkOut = "";
    var thisNode = "";
	var mySib;
	var myChild;
	var prevSib;
	var m;
    if (elem) {
		if (!hoverRe.test(elem.className)) {
			elem.className = elem.className+'Hover';
			}
		mySib = node_after(elem);
		if (mySib) {
			if (mySib.tagName=='div'||mySib.tagName=='DIV') {
				mySib.style.display='block';
			}
		}
        walkOut = elem.parentNode;
        if (walkOut && walkOut.className == "sideNavDiv" && walkOut.className != 'stopHere') {
			walkOut.style.display='block';
			notSideNav.push(walkOut.id);
			prevSib = node_before(walkOut);
			if (prevSib && (prevSib.tagName == 'a' || prevSib.tagName == 'A')) {
				if (!hoverRe.test(prevSib.className)) {
					prevSib.className = prevSib.className+'Hover';
					}
				}
			}
        while(walkOut && walkOut.className != 'stopHere') {
            walkOut = walkOut.parentNode;
            if (walkOut && walkOut.className == "sideNavDiv" && walkOut.className != 'stopHere') {
                walkOut.style.display='block';
				notSideNav.push(walkOut.id);
				prevSib = node_before(walkOut);
				if (prevSib && (prevSib.tagName == 'a' || prevSib.tagName == 'A')) {
					if (!hoverRe.test(prevSib.className)) {
						prevSib.className = prevSib.className+'Hover';
						}
					}
                }
            }
        }
	}
function setOpen(elem) {
	var mySib;
	var myChild;
	window.clearTimeout(winTimer2);
    if (elem) {
		mySib = node_after(elem);
		if (mySib) {
			if (mySib.tagName=='div'||mySib.tagName=='DIV') {
				mySib.style.display='block';
				}
			}
		}
	}
function setClosed(elem) {
	window.clearTimeout(winTimer2);
	winTimer2 = window.setTimeout("realSetClosed()",1000);
	}
function realSetClosed() {
	for(var i=0;i<allSideNavs.length;i++) {
		if (inArray(allSideNavs[i], notSideNav)) {
			document.getElementById(allSideNavs[i]).style.display='block';
			if(document.getElementById('heyYou')) {
				document.getElementById('heyYou').innerHTML += allSideNavs[i] + ' is in notThese -- setting block\n';
				}
			}
		else {
			document.getElementById(allSideNavs[i]).style.display='none';
			if(document.getElementById('heyYou')) {
				document.getElementById('heyYou').innerHTML += allSideNavs[i] + ' is not in in notThese -- setting none\n';
				}
			}
		}
	}

lightPathWay(thisPage);
initSetOpen(thisPage);
