	
	function dd_getObj(element) {
	  if (arguments.length > 1) {
		for (var i = 0, elements = [], length = arguments.length; i < length; i++)
		  elements.push($(arguments[i]));
		return elements;
	  }
	  if (typeof element == 'string')
		element = document.getElementById(element);
	  return element;
	}
	
	function dd_init(init_location, dd_options){
		navBox = dd_getObj(init_location)
		navList = navBox.getElementsByTagName("a")
		
		//Possible options
		//  xOffset: 	[0] controls the amount the menu will move on the x axis
		//  yOffset: 	[0] controls the amount the menu will move on the y axis
		//  direction:	["down"|"up"] controls the direction which the nav will drop.
		//  menuStay:	[null] the id of the menu you wish to remain on.
		//  hideStay:	[false] hides the menuStay, if set, when other menus are active;
		if(dd_options){
			x_offset = dd_options.xOffset ? dd_options.xOffset : 0;
			y_offset = dd_options.yOffset ? dd_options.yOffset : 0;
			direction = dd_options.dropDirection ? dd_options.dropDirection : "down";
			menuStay = dd_options.menuStay ? dd_options.menuStay : null;
			hideStay = dd_options.hideStay ? dd_options.hideStay : false;
		}else{
			x_offset = 0;
			y_offset = 0;
			direction = "down";
			menuStay = null;
			hideStay = false;
		}
		
		for(i = 0; i < navList.length; i++){
			if(navList[i].getAttribute("rel") == "ddnav"){
				navList[i].setAttribute("navXOffset", x_offset);
				navList[i].setAttribute("navYOffset", y_offset);
				navList[i].setAttribute("navDir", direction);
				
				navID = navList[i].id.split("_")[1];
				
				navList[i].setAttribute("menuStay", menuStay);
				navList[i].setAttribute("hideStay", hideStay);
				
			//	if(menuStay && hideStay){
					if(menuStay != navID){
						navList[i].onmouseover = function(){
							dd_show(this);
						}
						navList[i].onmouseout = function(){
							dd_hide(this);
						}
					}
			//	}
			}
		}
	}
	
	function dd_sortPages(a,b){
		if(a.level != b.level){
			return a.level - b.level;
		}else if(a.parentID != b.parentID){
			return a.parentID - b.parentID;
		}else{
			return a.sort - b.sort;
		}
	}
	
	function dd_findx(obj) 
	{
		var curleft = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	}
	
	function dd_findy(obj)
	{
		var curtop = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}
		}
		else if (obj.y)
			curtop += obj.y;
		return curtop;
	}
	
	function dd_show(navObj){
		var navInfo = navObj.id.split("_");
		var navID = navInfo[1];
		var navLevel = navInfo[0].substring(1);
	
		var navImg = dd_getObj("L1State_" + navID)
		navImg.setAttribute("origsrc", navImg.src);
		navImg.src = navImg.getAttribute("oversrc");
		navImg.style.cursor = "pointer";
		
		var onID = getQueryVariable('t');
		if(onID == -100) onID = null;
		
		//MOD the nav here
		var XnavMod = parseInt(navObj.getAttribute("navXOffset"));
		var YnavMod = parseInt(navObj.getAttribute("navYOffset"));
		
		var dropDirection = navObj.getAttribute("navDir").toLowerCase();
			
		var navX = dd_findx(navObj);
		var navY = dd_findy(navObj);
		
		navX += XnavMod;
		navY += YnavMod;
		
		menuS = navObj.getAttribute("menuStay");
		hideS = navObj.getAttribute("hideStay");
		
		if(menuS && hideS)
			if(menuS !=  navID)
				dd_hide(dd_getObj("L1_" + menuS));
		
		//Container naming convention 
		//ddnav_L<LevelNum>_NavID
		//	ex. ddnav_L2_100324
		if(navContainer = dd_getObj("ddnav_L" + (parseInt(navLevel)+1) + "_" + navID)){
			navContainer.style.display = "";
			
			//alert(navX + ", " + navY);
			
			if(parseInt(navLevel) + 1 > 2)
				navX += 300;
			
			if(dropDirection == "up"){
				navY -= parseInt(navContainer.offsetHeight);
			}
			
			navContainer.style.position = "absolute";
			navContainer.style.left = navX + "px";
			navContainer.style.top = navY + "px";
			
			var dd_ieframe = dd_getObj("dd_ieframe")
			dd_ieframe.style.height = navContainer.offsetHeight;
			dd_ieframe.style.width = navContainer.style.width;
			dd_ieframe.style.top = navContainer.style.top;
			dd_ieframe.style.left = navContainer.style.left;
			
		//	if(parentID = navContainer.getAttribute("parentID")){
		//		dd_show(dd_getObj(parentID));
		//	}
			
		}else{
			//alert("building nav ddnav_L" + (parseInt(navLevel)+1) + "_" + navID);
			schoolPageList.sort(dd_sortPages);
			
			if(parseInt(navLevel) + 1 > 2)
				navX += 300;
			
			//alert(navX + ", " + navY);
			
			navContainer = document.createElement("div");
			navContainer.id = "ddnav_L" + (parseInt(navLevel)+1) + "_" + navID;
			navContainer.style.position = "absolute";
			navContainer.style.zIndex = 999998;
			navContainer.className = "dd_nav_container";
			navContainer.setAttribute("parentID", navObj.id);
			
			//if(menuS && hideS){
				if(menuS !=  navID){
					
					navContainer.onmouseover = function(){
						dd_show(dd_getObj(this.getAttribute("parentID")));
					}
					navContainer.onmouseout = function(){
						dd_hide(dd_getObj(this.getAttribute("parentID")));
					}
					
				}
			//}
			
			var thisNav;
			var tempNavElem;
			for(var i = 0; i < schoolPageList.length; i++){
				thisNav = schoolPageList[i];
				if(thisNav.level == parseInt(navLevel)+1 && thisNav.parentID == navID){
					tempNavElem = document.createElement("div");
					tempNavElem.id = "L" + parseInt(thisNav.level) + "_" + parseInt(thisNav.pageID)
					
					//alert(onID + "/" + thisNav.pageID);
					
					if(onID != parseInt(thisNav.pageID)){
						tempNavElem.className = "dd_nav_off";
						tempNavElem.onmouseover = function(){
							this.className = "dd_nav_on";
							//dd_show(this);
						}
						tempNavElem.onmouseout = function(){
							this.className = "dd_nav_off";
							//dd_hide(this);
						}
					}else{
						tempNavElem.className = "dd_nav_on";
					}
					
					tempNavElem.innerHTML = thisNav.pageName;
					tempNavElem.setAttribute("url", thisNav.pageURL);
					tempNavElem.onclick = function(){
						if(thisURL = this.getAttribute("url")){
							//alert(thisURL);
							location.href = thisURL;
						}
					}
					navContainer.appendChild(tempNavElem);
				}
			}
			
			if(navContainer.childNodes.length > 0){
				dd_getObj("dd_nav").appendChild(navContainer);
			

				if(dropDirection == "up"){
					navY -= parseInt(navContainer.offsetHeight);
				}				
			
				navContainer.style.left = navX + "px";
				navContainer.style.top = navY + "px";
			
				navContainer.style.display = "";
				
				var dd_ieframe = dd_getObj("dd_ieframe")
				dd_ieframe.style.height = navContainer.offsetHeight;
				dd_ieframe.style.width = navContainer.style.width;
				dd_ieframe.style.top = navContainer.style.top;
				dd_ieframe.style.left = navContainer.style.left;
			}
		}
		
			
	//	if(parentID = navContainer.getAttribute("parentID")){
	//		dd_show(dd_getObj(parentID));
	//	}
		
		//alert("L" + navLevel + "_" + navID);
	}
	
	function dd_hide(navObj){
		var navInfo = navObj.id.split("_");
		var navID = navInfo[1];
		var navLevel = navInfo[0].substring(1);
			
		var navImg = dd_getObj("L1State_" + navID);
		navImg.src = navImg.getAttribute("origsrc");
		navImg.style.cursor = 'pointer';
		
		if(navContainer = dd_getObj("ddnav_L" + (parseInt(navLevel)+1) + "_" + navID)){
			navContainer.style.display = "none";
			dd_getObj("dd_ieframe").style.display = "none";
		}
		
		menuS = navObj.getAttribute("menuStay");
		hideS = navObj.getAttribute("hideStay");
		
		if(menuS && hideS) 
			if(menuS != navID)
				dd_show(dd_getObj("L1_" + menuS));
	}
	
	function getQueryVariable(variable) {
		var query = window.location.search.substring(1);
		var vars = query.split("&");
		for (var i=0;i<vars.length;i++) {
			var pair = vars[i].split("=");
			if (pair[0] == variable) {
				return pair[1];
			}
		} 
		return -100;
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	