var allNavs = new Array();
var allStopHere = new Array();
var allDivs = document.getElementsByTagName('div');
var tmpThing;
var tmpThingTwo;
var pullIn = 20;
var pullUp = 10;
var winTimer;
var thisElem;
var hoverRe = new RegExp("Hover$");
var notThese = [];

for(var i=0;i<allDivs.length;i++) {
	if (allDivs[i].className == 'navDiv') {
		allDivs[i].setAttribute("id", 'navDiv_' + i);
		allNavs.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=='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;
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')) {
		if (!allARef[i].className.match(/Hover$/)) {
			allARef[i].className=allARef[i].className+'Hover';
			}
		thisPage=allARef[i];
		}
	}
lightPathWay(thisPage);

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  showAfter(elem) {
	var testNext;
	window.clearTimeout(winTimer);
	thisElem = elem;
	testNext = node_after(elem);
	if (testNext && testNext.className == 'stopHere') {
		// get the first child of that div
		testNext = first_child(testNext);
		}
	if (testNext && testNext.className == 'navDiv') {
		testNext.style.display='block';
		}
	}
*/
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<allNavs.length;i++) {
		document.getElementById(allNavs[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<allNavs.length;i++) {
		if (inArray(allNavs[i], notThese)) {
			document.getElementById(allNavs[i]).style.display='block';
			if(document.getElementById('heyYou')) {
				document.getElementById('heyYou').innerHTML += allNavs[i] + ' is in notThese -- setting block\n';
				}
			}
		else {
			document.getElementById(allNavs[i]).style.display='none';
			if(document.getElementById('heyYou')) {
				document.getElementById('heyYou').innerHTML += allNavs[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();
	}
