		//based off of son of suckerfish drop down fix for IE (adapted to make parent hover when child is being hovered over
		function childHover(e) {
			for (var x = 0; x < e.childNodes.length; x++) {
				if (e.childNodes[x].nodeName.toLowerCase() == "ul") {
					for (var y = 0; y < e.childNodes[x].childNodes.length; y++) {
						if (e.childNodes[x].childNodes[y].nodeName.toLowerCase() == "li") {
							for (var z = 0; z < e.childNodes[x].childNodes[y].childNodes.length; z++) {
								if (e.childNodes[x].childNodes[y].childNodes[z].nodeName.toLowerCase() == 'a') {
									e.childNodes[x].childNodes[y].childNodes[z].onmouseover = function(){
										this.parentNode.parentNode.parentNode.className+=" sfhover";
									}
									e.childNodes[x].childNodes[y].childNodes[z].onmouseout=function() {
										this.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.className.replace(new RegExp(" sfhover\\b"), "");
									}
								}
							}
						}
					}
				}
			}
		}
		sfHover = function() {
			var sfEls = document.getElementById("nav").getElementsByTagName("LI");
			for (var i=0; i<sfEls.length; i++) {
				sfEls[i].onmouseover=function() {
					this.className+=" sfhover";
					childHover(this);
				}
				sfEls[i].onmouseout=function() {
					this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
				}
			}
		}
		if (window.attachEvent) window.attachEvent("onload", sfHover);
		
		var __eventListeners = [];
		function addListener(instance, eventName, listener) {
		    var listenerFn = listener;
		    if (instance.addEventListener) {
		        instance.addEventListener(eventName, listenerFn, false);
		    } else if (instance.attachEvent) {
		        listenerFn = function() {
		            listener(window.event);
		        };
		        instance.attachEvent("on" + eventName, listenerFn);
		    } else {
		        //throw new Error("Event registration not supported");
		    }
		    var event = {
		        instance: instance,
		        name: eventName,
		        listener: listenerFn
		    };
		    __eventListeners.push(event);
		    return event;
		}
		
		var SITE=window.SITE||{};
		var qVal;
		function windowOnload(){
			//search input box listener: empty default value on click, reload if unchanged on blur, else leave as what user input
                        if (window.document.getElementById('q')==null)
                            return; // avoid Firebug errors
			qVal = window.document.getElementById('q').value;
			SITE.listener = addListener(window.document.getElementById('q'), "click", function() {
				if(window.document.getElementById('q').value == qVal){ window.document.getElementById('q').value = ''; }
			});
			SITE.listener = addListener(window.document.getElementById('q'), "blur", function() {
				if(window.document.getElementById('q').value === ''){ window.document.getElementById('q').value = qVal; }
			});
		}
		window.onload = windowOnload;
