var win;

function toggleNext(target, index, first) {
	var focused = "abs";
	var selected = "selected";
	var next = target.nextSibling;
	var tags = target.parentNode.getElementsByTagName(index);
	
	while(next.nodeType != 1) next = next.nextSibling;
	
	next.style.display = ((next.style.display == "none") ? "block" : "none");
	
	var rE = new RegExp("(^|\\s)" + focused + "(\\s|$)");
	
	if (rE.test(next.className) == false) { next.className += " " + focused; }
	
	if (first!=1){
		for (i=0; i < tags.length; i++) {
			var tohide = tags[i].nextSibling;
			
			while(tohide.nodeType != 1) tohide = tohide.nextSibling;
			
			if (tohide != next) { tohide.style.display = "none"; }
			
			tags[i].className = tags[i].className.replace(new RegExp(selected+"\\b"), "");
			
			if (tags[i] == target && next.style.display == "block"){
				var rEx = new RegExp("(^|\\s)" + selected + "(\\s|$)");
				if (rEx.test(tags[i].className) == false) { tags[i].className += " " + selected; }
			}
		}	
	} else {
		var firstone = tags[0].nextSibling;
		
		while(firstone.nodeType != 1) firstone = firstone.nextSibling;
		
		firstone.style.display = "block";
		
		var rEx = new RegExp("(^|\\s)" + selected + "(\\s|$)");
		
		if (rEx.test(tags[0].className) == false) { tags[0].className += " "+selected; }
	}
}

function toggleNextByIdAndTag(target,index) {
	var ccn = "clicker";
	
	clickers = document.getElementById(target).getElementsByTagName(index);
	
	for (i = 0; i < clickers.length; i++) {
		clickers[i].className += " " + ccn;
		clickers[i].onclick = function() { toggleNext(this,index) }
		toggleNext(clickers[i], index, 1);
	}
}

// catch the mouse events
function attachMouseListener(node, funct) {
  if (node.attachEvent) {
    node.attachEvent("onmouseover", funct);
  } else {
		node.addEventListener("mouseover", funct, false);
  }
}

// catch the mouse out events
function attachMouseOutListener(node, funct) {
  if (node.attachEvent) {
		node.attachEvent("onmouseout", funct);
  } else {
		node.addEventListener("mouseout", funct, false);
	}
}

function sfHover() {	
	var sfEls = document.getElementById("homeLink").getElementsByTagName("li");
	var menus = document.getElementById("homeLink").getElementsByTagName("div");
	
	attachMouseListener(sfEls[0], mainMenuShow);
	attachMouseOutListener(sfEls[0], mainMenuHide);
	
	for(i = 0; i < menus.length; i++) {
		attachMouseListener(menus[i], mainMenuShow);
		attachMouseOutListener(menus[i], mainMenuHide);
	}
}

function mainMenuShow(event) { 
	document.getElementById("vassarHomeLink").parentNode.className = "sfhover";
	
	if(win) {
		window.clearTimeout(win);
	}
}

function mainMenuHide(event) {
	document.getElementById("vassarHomeLink").parentNode.id = "toMouseOut";
	
	if(win) {
		window.clearTimeout(win);
	}
	win = window.setTimeout("mainMenuHideInit()", 400);
}

function mainMenuHideInit() {
	var element = document.getElementById("toMouseOut");	
		element.className = "";
		element.id = "";
}

//fncAddLoadEvent(function(){toggleNextByIdAndTag('dlist','h5')});
fncAddLoadEvent(function(){sfHover()});