// CSS Top Menu- By JavaScriptKit.com (http://www.javascriptkit.com)
// Adopted from SuckerFish menu
// For this and over 400+ free scripts, visit 
// JavaScript Kit- http://www.javascriptkit.com/
//
function dummy () {
	return true;
}

function startMenu () {
	if (document.all&&document.getElementById) {
		cssmenu = document.getElementById("dhtmlgoodies_menu");
		for (i=0; i<cssmenu.childNodes.length; i++) {
			node = cssmenu.childNodes[i];
			if (node.nodeName=="LI") {
				node.onmouseover=function() {
					this.className+=" over";
				} 

				node.onmouseout=function() {                  
					this.className=this.className.replace(" over", "")
				}
			}
		}		
	}
} 

function isIE6 () {
	var ua = window.navigator.userAgent;
	var msie = ua.indexOf ( "MSIE 6" );
	return (msie >= 0);
}


if (window.attachEvent)
	window.attachEvent("onload", startMenu)
else
	window.onload=startMenu;

	/**************************************************************************************
	(C) www.dhtmlgoodies.com, November 2005
	
	www.dhtmlgoodies.com
	Alf Magne Kalleland
	
	This script is used with permission.  See DHTMLGoodies for usage information.
	****************************************************************************************/

	var timeBeforeAutoHide = 500;	// Microseconds to wait before auto hiding menu(1000 = 1 second)
	var slideSpeed_out = 5;		// Steps to move sub menu at a time ( higher = faster)
	var slideSpeed_in = 20;
		
	
	var slideTimeout_out = 10;	// Microseconds between slide steps ( lower = faster)
	var slideTimeout_in = 10;	// Microseconds between slide steps ( lower = faster)
	
	var showSubOnMouseOver = false;	// false = show sub menu on click, true = show sub menu on mouse over
	var fixedSubMenuWidth = false;	// Width of sub menu items - A number(width in pixels) or false when width should be dynamic
	
	var xOffsetSubMenu = -50; 	// Offset x-position of sub menu items - use negative value if you want the sub menu to overlap main menu
	
	var slideDirection = 'right';	// Slide to left or right ?
	
	/* Don't change anything below here */
	
	var activeSubMenuId = false;
	var activeMainMenuItem = false;
	var currentZIndex = 1000;		
	var autoHideTimer = 0;
	var submenuObjArray = new Array();
	var okToSlideInSub = new Array();
	var subPositioned = new Array();
	
	if (isIE6 ()) {
		fixedSubMenuWidth = 340;
	}
	else {
		fixedSubMenuWidth = false;
	}
	function stopAutoHide()
	{
		autoHideTimer = -1;
	}
	
	function initAutoHide()
	{
		autoHideTimer = 0;
		if(autoHideTimer>=0)autoHide();
	}
	
	function autoHide()
	{
		
		if(autoHideTimer>timeBeforeAutoHide)
		{
			
			if(activeMainMenuItem){
				activeMainMenuItem.className='';
				activeMainMenuItem = false;
			}
			
			if(activeSubMenuId){
				var obj = document.getElementById('subMenuDiv' + activeSubMenuId);
				showSub();
			}
		}else{
			if(autoHideTimer>=0){
				autoHideTimer+=50;
				setTimeout('autoHide()',50);
			}
		}
	}	
	
	function getTopPos(inputObj)
	{		
	  var returnValue = inputObj.offsetTop;
	  while((inputObj = inputObj.offsetParent) != null) returnValue += inputObj.offsetTop;
	  if (returnValue>400) {
		  returnValue=returnValue-110; /* try to keep on the page */
	  }  	
	  return returnValue;
	}
	
	function getLeftPos(inputObj)
	{
	  var returnValue = inputObj.offsetLeft;
	  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft;
	  return returnValue;
	}
	
	function showSub()
	{
		var subObj = false;
		if(this && this.tagName){
			var numericId = this.parentNode.id.replace(/[^0-9]/g,'');
			okToSlideInSub[numericId] = false;
			var subObj = document.getElementById('subMenuDiv' + numericId);
			if(activeMainMenuItem)activeMainMenuItem.className='';
			if(subObj){
				if(!subPositioned[numericId]){
					if(slideDirection=='right'){
						subObj.style.left = getLeftPos(submenuObjArray[numericId]['parentDiv']) + submenuObjArray[numericId]['parentDiv'].offsetWidth + xOffsetSubMenu + 'px';
					}else{
						subObj.style.left = getLeftPos(submenuObjArray[numericId]['parentDiv']) + xOffsetSubMenu + 'px';
						
					}
					submenuObjArray[numericId]['left'] = subObj.style.left.replace(/[^0-9]/g,'');
					subObj.style.top = getTopPos(submenuObjArray[numericId]['parentDiv']) + 'px';
					subPositioned[numericId] = true;
				}				
				subObj.style.visibility = 'visible';
				subObj.style.zIndex = currentZIndex;
				currentZIndex++;	
				this.className='activeMainMenuItem';
				activeMainMenuItem = this;
			}
		}else{
			var numericId = activeSubMenuId;
		}
		if(activeSubMenuId && (numericId!=activeSubMenuId || !subObj))slideMenu(activeSubMenuId,(slideSpeed_in*-1));
		if(numericId!=activeSubMenuId && this && subObj){
			subObj.style.width = '0px';	
			slideMenu(numericId,slideSpeed_out);
			activeSubMenuId = numericId;
		}else{
			if(numericId!=activeSubMenuId)activeSubMenuId = false;
		}
		if(showSubOnMouseOver)stopAutoHide();
	}
	
	function slideMenu(menuIndex,speed){
		var obj = submenuObjArray[menuIndex]['divObj'];
		var obj2 = submenuObjArray[menuIndex]['ulObj'];
		var width = obj.offsetWidth + speed;
		if(speed<0){
			if(width<0)width = 0;
			obj.style.width = width + 'px';
			if(slideDirection=='left'){
				obj.style.left = submenuObjArray[menuIndex]['left'] - width + 'px';
				obj2.style.left = '0px';
			}else{
				obj2.style.left = width - submenuObjArray[menuIndex]['width'] + 'px' 
			}
			if(width>0 && okToSlideInSub[menuIndex])setTimeout('slideMenu(' + menuIndex + ',' + speed + ')',slideTimeout_in); else{
				obj.style.visibility = 'hidden';
				obj.style.width = '0px';
				if(activeSubMenuId==menuIndex)activeSubMenuId=false;
			}
			
		}else{
			if(width>submenuObjArray[menuIndex]['width'])width = submenuObjArray[menuIndex]['width'];
			if(slideDirection=='left'){
				obj.style.left = submenuObjArray[menuIndex]['left'] - width + 'px';
				obj2.style.left = '0px';
			}else{
				obj2.style.left = width - submenuObjArray[menuIndex]['width'] + 'px' 
			}		
			
			obj.style.width = width + 'px';
			if(width<submenuObjArray[menuIndex]['width']){
				setTimeout('slideMenu(' + menuIndex + ',' + speed + ')',slideTimeout_out);
			}else{
				okToSlideInSub[menuIndex] = true;
			}
		}
	}
	function resetPosition()
	{
		subPositioned.length = 0;
	}
			
	function initLeftMenu()
	{
		var menuObj = document.getElementById('dhtmlgoodies_menu');	
		var mainMenuItemArray = new Array();
		
		var mainMenuItem = menuObj.getElementsByTagName('LI')[0];
		while(mainMenuItem){
			if(mainMenuItem.tagName && mainMenuItem.tagName.toLowerCase()=='li'){
				mainMenuItemArray[mainMenuItemArray.length] = mainMenuItem;
				var aTag = mainMenuItem.getElementsByTagName('A')[0];
				if(showSubOnMouseOver)
					aTag.onmouseover = showSub;	
				else
					aTag.onclick = showSub;	
			}
			mainMenuItem = mainMenuItem.nextSibling;
		}		
		
		var lis = menuObj.getElementsByTagName('A');
		for(var no=0;no<lis.length;no++){
			if(!showSubOnMouseOver)lis[no].onmouseover = stopAutoHide;
			lis[no].onmouseout = initAutoHide;
			lis[no].onmousemove = stopAutoHide;
		}
				
		for(var no=0;no<mainMenuItemArray.length;no++){
			var sub = mainMenuItemArray[no].getElementsByTagName('UL')[0];
			if(sub){
				mainMenuItemArray[no].id = 'mainMenuItem' + (no+1);
				var div = document.createElement('DIV');
				div.className='dhtmlgoodies_subMenu';
				document.body.appendChild(div);
				div.appendChild(sub);
				if(slideDirection=='right'){
					div.style.left = getLeftPos(mainMenuItemArray[no]) + mainMenuItemArray[no].offsetWidth + xOffsetSubMenu + 'px';
				}else{
					div.style.left = getLeftPos(mainMenuItemArray[no]) + xOffsetSubMenu + 'px';
				}
				div.style.top = getTopPos(mainMenuItemArray[no]) + 'px';
				div.id = 'subMenuDiv' + (no+1);
				sub.id = 'submenuUl' + (no+1);
				sub.style.position = 'relative';	

				if(navigator.userAgent.indexOf('Opera')>=0){
					submenuObjArray[no+1] = new Array();
					submenuObjArray[no+1]['parentDiv'] = mainMenuItemArray[no];
					submenuObjArray[no+1]['divObj'] = div;
					submenuObjArray[no+1]['ulObj'] = sub;
					submenuObjArray[no+1]['width'] = sub.offsetWidth;
					submenuObjArray[no+1]['left'] = div.style.left.replace(/[^0-9]/g,'');
				}
				sub.style.left = 1 - sub.offsetWidth + 'px';	
				
				if(isIE6())div.style.width = '1px';	
					
				if(navigator.userAgent.indexOf('Opera')<0){
					submenuObjArray[no+1] = new Array();
					submenuObjArray[no+1]['parentDiv'] = mainMenuItemArray[no];
					submenuObjArray[no+1]['divObj'] = div;
					submenuObjArray[no+1]['ulObj'] = sub;
					submenuObjArray[no+1]['width'] = sub.offsetWidth;
					
					
					
					submenuObjArray[no+1]['left'] = div.style.left.replace(/[^0-9]/g,'');
					if(fixedSubMenuWidth)submenuObjArray[no+1]['width'] = fixedSubMenuWidth;
				}	

				if(!document.all)div.style.width = '1px';			
					
			}			
		}
			

		
		
		menuObj.style.visibility = 'visible';
		
		window.onresize = resetPosition;
	}
	
	
	window.onload = initLeftMenu;
	




// Define filenames of map images so they can be used on different pages

maps = new Array();
maps.f2aA="floor2areaA.png";
maps.f2aB="floor2areaB.png";
maps.f2aC="floor2areaC.png";
maps.f2aD="floor2areaD.png";
maps.f3aA="floor3areaA.png";
maps.f3aB="floor3areaB.png";
maps.f3aC="floor3areaC.png";
maps.f3aD="floor3areaD.png";
maps.f3aE="floor3areaE.png";
maps.f4aA="floor4areaA.png";
maps.f4aB="floor4areaB.png";
maps.f4aC="floor4areaC.png";

maps.archivesDesk="archivesDesk.png";
maps.circulationDesk="circulationDesk.png";
maps.ercDesk="ercDesk.png";
maps.illDesk="illDesk.png";
maps.mediaDesk="mediaDesk.png";
maps.periodicalsDesk="periodicalsDesk.png";
maps.referenceDesk="referenceDesk.png";
maps.reserveDesk="reservesDesk.png";
maps.securityDesk="securityDesk.png";

maps.LISAS ="LISAS.png";
maps.LISASC="LISASC.png";
maps.LISTS ="LISTS.png";
maps.LISPS ="LISPS.png";
maps.LISTLR="LISTLR.png";
maps.LISODL="LISODL.png";

function hideMap (where) {
	
	document.getElementById(where).src = "/images/maps/defaultMap.png";
	return true;
}

function showMap (what, where) {
	
	document.getElementById(where).src = "/images/maps/" + maps[what];	
	document.getElementById(where).style.visibility='visible';
	return true;
}
function cloakMap (where) {
	
	document.getElementById(where).style.visibility='hidden';
	return true;
}

function revealMap (what, where) {
	
	document.getElementById(where).src = "/images/maps/" + maps[what];
	document.getElementById(where).style.visibility='visible';
	return true;
}

function raiseMap (what) {
	
	doc = "/organization/" + what + ".html";
	
	pane=window.open(doc,what,'WIDTH=470,HEIGHT=475,alwaysRaised');

	return true;
}

function noSpam (instr) {
	// Send unicode character entities for the input string
	stmt='';
	for (ii=0;ii<instr.length;ii++) {
		code=instr.charCodeAt(ii);
		stmt+='&#'+code+';';
		
	}
	msg="Cut and paste this address and place in browser as &#8220;mailto:"+stmt+"&#8221;";
	stmt='<span style="color:blue;text-decoration:underline;" title="'+msg+'" alt="'+msg+'"><a>'+stmt+'</a></span>';
	document.write(stmt);
	return true;
}


