	/* add IE elements to mozilla */
	if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.parentElement) {
		// support "parentElement" 
		HTMLElement.prototype.__defineGetter__("parentElement", function() {     
				return (this.parentNode == this.ownerDocument) ? null : this.parentNode; 
			}
		); 

		// mimic IE's "runtimeStyle" 
		HTMLElement.prototype.__defineGetter__("currentStyle", function() {     
				return getComputedStyle(this, null); 
			}
		); 
		
		// mimic IE's "runtimeStyle" 
		HTMLElement.prototype.__defineGetter__("runtimeStyle", function() { 
				// this doesn't work yet (bugzilla:45424) //#    
				return this.ownerDocument.defaultView.getOverrideStyle(this, null); 
			}
		); 
	}




	//center image highlighting
	function highlightThisPic(imgElement, textForBox, newSrc) {
		imgElement.src = newSrc;
		document.getElementById("personDescriptionText").innerHTML = textForBox;
		document.getElementById("scwTDimage").style.display = "none";
		document.getElementById("scwTDtable").style.display = "inline";
	}
	
	function unhighlightThisPic(imgElement, oldSrc) {
		imgElement.src = oldSrc;
		document.getElementById("personDescriptionText").innerHTML = "";
		document.getElementById("scwTDimage").style.display = "inline";
		document.getElementById("scwTDtable").style.display = "none";
	}
	
	function getDim(el){
		for (var lx=0,ly=0;el!=null;
			lx+=el.offsetLeft,ly+=el.offsetTop,el=el.offsetParent);
		return {x:lx,y:ly}
	}
				
	function showHoverBox(someE) {
		if (! document.all) {
			window.event = someE;
			addIeEventsToMozilla(window.event);
			//alert(window.event.srcElement);
		}

		if (lastHovered.firstChild.id == tdOfBox) {
			lastHovered.style.backgroundColor = selectedBgColor;
		} else {
			//alert(lastHovered.firstChild.id + "..." + lastHovered.getAttribute("defaultBG"));
			if (lastHovered.getAttribute("defaultBG")) {
				lastHovered.style.backgroundColor = lastHovered.getAttribute("defaultBG");
			} else {
				lastHovered.style.backgroundColor = "transparent";
			}
			lastHovered.style.color = "white";
		}
		//alert(window.event.srcElement.parentElement.parentElement.tagName);
		if (window.event.srcElement.tagName == "SPAN") {
			lastHovered = window.event.srcElement.parentElement.parentElement;
			thisElement = window.event.srcElement.parentElement;
		} else {
			lastHovered = window.event.srcElement.parentElement;
			thisElement = window.event.srcElement;
		}
		//alert(window.event.srcElement.id);
		
		//alert(window.event.srcElement.parentElement);
		lastHovered.style.backgroundColor = "navy";
		/*window.clearTimeout(showerVar);
		if (thisElement.id != "") {
			showerVar = window.setTimeout("showBox('" + thisElement.id + "');",showTimeout);
		} else {
			alert("NO ID: " + window.event.srcElement.tagName);
		}*/
	}
	
	function showHoverBoxNow(someE) {
		if (! document.all) {
			window.event = someE;
			addIeEventsToMozilla(window.event);
			//alert(window.event.srcElement);
		}
		
		myTableDim = getDim(middleTD);
		hoverDiv.style.left = myTableDim.x;
		hoverDiv.style.top = myTableDim.y;
		
		if (window.event.srcElement.tagName == "SPAN") {
			lastHovered = window.event.srcElement.parentElement.parentElement;
			thisElement = window.event.srcElement.parentElement;
		} else {
			lastHovered = window.event.srcElement.parentElement;
			thisElement = window.event.srcElement;
		}
		
		lastHovered.style.backgroundColor = "navy";
		try {
			window.clearTimeout(showerVar);
		} catch(e){}
		
		showBox(thisElement.id);
	}
	
	function showBox(td_id) {
		tdOfBox = td_id;
		window.clearTimeout(hiderVar);
		hoverDiv.style.display = "block";
		clearTRbgs();
		document.getElementById(tdOfBox).parentElement.style.backgroundColor = selectedBgColor;
		document.getElementById("div_" + td_id).style.display = "block";
		//hoverDiv.innerText = document.getElementById(td_id).innerText;
	}
	
	function clearTRbgs() {
		// hide the regular elements
		for (x = 1; x <=numSideNavElements; x++) {
			document.getElementById("sideBar_TD" + x).parentElement.style.backgroundColor = "transparent";
			document.getElementById("div_sideBar_TD" + x).style.display = "none";
		}

		// hide the special elements (and their spacer elements)
		for (y = 1; y <=numSpecialElements; y++) {
			// special elements
			document.getElementById("sideBar_TD" + (y + numSideNavElements)).parentElement.style.backgroundColor = document.getElementById("sideBar_TD" + (y + numSideNavElements)).parentElement.getAttribute("defaultBG");
			document.getElementById("div_sideBar_TD" + (y + numSideNavElements)).style.display = "none";
			
			// spacer elements
			document.getElementById("emptySideBarTR" + (y + numSideNavElements)).style.backgroundColor = "transparent";
		}

		// hide the topmost empty element
		document.getElementById("emptySideBarTR").style.backgroundColor = "transparent";
	}
	
	function hideBox() {
		//window.clearTimeout(showerVar);
		hoverDiv.style.display = "none";
		clearTRbgs();
		tdOfBox = "";
		//lastHovered.style.backgroundColor = "transparent";
	}
	
	function hideHoverBox(timeoutLength) {
		//window.clearTimeout(hiderVar);
		//window.clearTimeout(showerVar);
		if (lastHovered.firstChild.id == tdOfBox) {
			lastHovered.style.backgroundColor = selectedBgColor;
		} else {
			if (lastHovered.getAttribute("defaultBG")) {
				lastHovered.style.backgroundColor = lastHovered.getAttribute("defaultBG");
			} else {
				lastHovered.style.backgroundColor = "transparent";
			}
			//lastHovered.style.backgroundColor = "transparent";
			lastHovered.style.color = "white";
		}
		//hiderVar = window.setTimeout("hideBox();",timeoutLength);
	}
	
	function stopHiderCountdown() {
		try {
			window.clearTimeout(hiderVar);
		} catch(e){}
	}
	
	
	
	function remeasureHoverBox() {
		myTableDim = getDim(middleTD);
		hoverDiv.style.left = myTableDim.x;
		hoverDiv.style.top = myTableDim.y;
	}
	
	
	/* ####################################################### */
	/* ###########   CLEAN UP EVENTS FOR MOZILLA   ########### */
	/* ####################################################### */
	
	
	function addMozillaEventsToIE(event) {
		if (!event.stopPropagation) {
			event.stopPropagation = new Function('this.cancelBubble = true')
		}
		if (!event.preventDefault()) {
			event.preventDefault() = new Function('this.returnValue = true')
		} 
		if (typeof event.layerX == 'undefined' && typeof event.offsetX == 'number') {
			event.layerX = event.offsetX
			event.layerY = event.offsetY
		}
		if (!event.target && event.srcElement) {
			event.target = event.srcElement
			if (event.type == 'onmouseout') {
				event.relatedTarget = event.toElement
			} else if (event.type == 'onmouseover') {
				event.relatedTarget = event.fromElement
			}
		}
	}
	
	function addIeEventsToMozilla(someEvent) {
		if (!someEvent.cancelBubble) {
			someEvent.cancelBubble = new Function('this.stopPropagation = true')
		}
		if (!someEvent.returnValue) {
			someEvent.returnValue = new Function('this.preventDefault()')
		} 
		if (typeof someEvent.offsetX == 'undefined' && typeof someEvent.layerX == 'number') {
			someEvent.offsetX = someEvent.layerX
			someEvent.offsetY = someEvent.layerY
		}
		if (someEvent.target && !someEvent.srcElement) {
			someEvent.srcElement = someEvent.target
			if (someEvent.type == 'onmouseout') {
				someEvent.toElement = someEvent.relatedTarget
			} else if (someEvent.type == 'onmouseover') {
				someEvent.fromElement = someEvent.relatedTarget
			}
		}
	}

	
