// Smartdrop - v 1.0
// Author: Keith Gibbs (kgibbs@bu.edu)

// Please do not duplicate this code without permission

function buildNav() {
	if (window.print) { /* prevents IE 5 for Mac running the code poorly */
		manifest = navset.length;								
		for (var i = 0; i < navset.length; i++) {				
			var menu = navset[i];
			var container = document.getElementById(keyword + i);	
			addMouseEvents(container, true	);
			var ul = document.createElement("ul");
			container.appendChild(ul);								
			buildMenu(ul, menu, true);
		}	
	}
}

function buildMenu(ul, menu, isDropdown) {
	for (var j = 0; j < menu.length; j++) {
		var item = menu[j];
		var li = document.createElement("li");
		var a = document.createElement("a");
/*		a.appendChild(document.createTextNode(item.label.replace(/ /g,'\u00a0'))); */
/* 09/17/07 Added exception processing for Pro Bono Program, old code commented out above. */
		switch (item.label)
		 {
		  case "Pro Bono Program":
		   {
		    var emphasis = (document.createElement("em"));
		    var txt2 = (document.createTextNode("Pro"+"\u00a0"+"Bono"));
		    var txt3 = (document.createTextNode("\u00a0"+"Program"));
		    emphasis.appendChild(txt2);
		    a.appendChild(emphasis);
            a.appendChild(txt3);
            break
		   }
	      default:
		   {
    		a.appendChild(document.createTextNode(item.label.replace(/ /g,'\u00a0')));
		   }
         }
/* End code added 09/17/07 */
		var href = (item.uri.charAt(0) == '/' || item.uri.substr(0, 4) == 'http') ? item.uri : basehref + item.uri;
		a.setAttribute('href', href);
		if (item.target) a.setAttribute('target', item.target);
		if (item.className) li.className = item.className;
		ul.style.visibility ="hidden";
		ul.style.display ="none";
		li.appendChild(a);
		ul.appendChild(li);
		ul.className = (isDropdown) ? 'dropdown' : 'flyout';
		if (item.submenu) {
			var subul = document.createElement("ul");
			li.id = (keyword + manifest);
			addMouseEvents(li, false);
			li.appendChild(subul);
			manifest++;
			buildMenu(subul, item.submenu, false);
		}
	}	
}

function addMouseEvents(li, isDropdown) {
   isVisible = new Array;
   var x = li.id.substr(keyword.length);
   li.onmouseover = function(ev) {
     for (var i = 0; i < navset.length; i++) {
       document.getElementById(keyword + i).getElementsByTagName('ul')[0].style.visibility='hidden';
	   document.getElementById(keyword + i).getElementsByTagName('a')[0].className=' '; /* unsets hover class */
     }
     li.getElementsByTagName('ul')[0].style.visibility='visible';
     li.getElementsByTagName('ul')[0].style.display='block';
	 li.getElementsByTagName('a')[0].className='hover';  /* sets hover class, used for 'sticking' navbar rollovers, comment out if not used */
     isVisible[x] = true;
   };
   li.onmouseout = function(ev) {
     isVisible[x] = false;
	if (isDropdown)
       setTimeout("hideMenu("+x+");", 900);
     else
       hideMenu(x);
   };
}

function hideMenu(x) {
	var m = document.getElementById(keyword + x);
	var uls = m.getElementsByTagName('ul');
	if (isVisible[x]) {return}; 
	for (var i = 0; i < uls.length; i++) {
		  	m.getElementsByTagName('a')[0].className=' ';   /* unsets hover class, used for 'sticking' navbar rollovers, comment out if not used */
			if (uls[i].id != (keyword + i)) uls[i].style.visibility='hidden';
	}
}
