function addEvent(obj, eventType, func, useCapture) {
	if (obj.addEventListener) {
		obj.addEventListener(eventType, func, useCapture);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on" + eventType, func);
		return r;
	} else {
		return false; 
	}
}

function removeEvent(obj, eventType, func, useCapture) {
	if (obj.removeEventListener) {
		obj.removeEventListener(eventType, func, useCapture);
		return true;
	} else if (obj.detachEvent) {
		var r = obj.detachEvent("on" + eventType, func);
		return r;
	} else {
		return false; 
	}
}


function addClass(obj, className) {
	if (!obj || hasClass(obj, className)) return;
	if (obj.className) {
		obj.className += ' '+className;
	} else {
		obj.className = className;
	}
}

function hasClass(obj, className) {
	if (!obj.className) return false;
	return (obj.className.search('(^|\\s)' + className + '(\\s|$)') != -1);
}

function getElementsByClassName(elementName, className) {
	var allElements = document.getElementsByTagName(elementName);
	var elemColl = new Array();
	for (var i = 0; i< allElements.length; i++) {
		if (hasClass(allElements[i], className)) {
			elemColl[elemColl.length] = allElements[i];
		}
	}
	return elemColl;
}

function toggler(event) {
	
	var tgt = (!event.srcElement) ? event.target : event.srcElement;
	tgt.className = 'hiliteOn';

	var idx = tgt.getAttribute('idx');
	var numChunks = chunks.length;
	while (numChunks--) {
		chunks[numChunks].style.display = (numChunks == idx) ? 'block' : 'none';
	}
	
}


function resetToggle(event) {
	
	var numChunks = chunks.length;
	var numLabels = labels.length;
	
	while (numChunks--) {
		chunks[numChunks].style.display = 'none'; 
	}

	chunks[0].style.display='block';
	
	while(numLabels--) {
		labels[numLabels].className = 'hiliteOff';
	}
}

function nohilite(event) {
	var tgt = (!event.srcElement) ? event.target : event.srcElement;
	tgt.className = 'hiliteOff';
}

function setSectionClass() {
	navmenu = document.getElementById("nav");
	navItems = navmenu.getElementsByTagName("li");
	for (i=0;i<navItems.length;i++){ //find item that's currently set to active and unset it
		thisNavItem = navItems[i];
		activeItemClass = thisNavItem.getAttribute('class');
		if (activeItemClass == "dir active-section") {
			thisNavItem.setAttribute('class','dir');
			}
		}
	s = document.location.pathname.substring(1); //get relevant part of page URL
	navlinks = navmenu.getElementsByTagName("a");
	for (i=0;i<navlinks.length;i++){ //find link that corresponds to page URL, then set its parent to the active-section class
		thisNavLink = navlinks[i];
		shortLink = thisNavLink.getAttribute('href').substring(3);
		bingo = shortLink.substring(0, shortLink.indexOf("/"));
		if (!(bingo == "") && (s.indexOf(bingo)) >= 0) {
			if (thisNavLink.parentNode.getAttribute('class') == "dir") {
				thisNavLink.parentNode.setAttribute('class','dir active-section');
			}
			else {
				thisNavLink.parentNode.parentNode.parentNode.setAttribute('class','dir active-section');
			}
		}
		//else if (document.location.pathname.substring(0) == "/" || document.location.pathname.substring(0) == "/index.html") {
			//document.getElementById('home-section').setAttribute('class','dir active-section');
		//}
	}
}

var chunks;
var labels; 
var mainnav

window.onload = function() {
	
	mainnav = document.getElementById('mainnav');
	chunks = getElementsByClassName('div', 'chunk');
	labels = mainnav.getElementsByTagName('li');
	
	chunks[0].style.display='block';
	
	var numLabels = labels.length;
	while (numLabels--) {
		labels[numLabels].setAttribute('idx', (numLabels + 1));
		addEvent(labels[numLabels], 'mouseover', toggler, false);
		addEvent(labels[numLabels], 'mouseout', nohilite, false);
	}
	
	addEvent(mainnav, 'mouseout', resetToggle, false);
	
	setSectionClass();
}
