﻿sfHover = function() {
	var timeout = 0;
	var cssClass = "sfhover";
	var altCssClass = "tophover";

	var queue = [];
	var reCSS = new RegExp("\\b" + cssClass + "\\b");
	var altReCSS = new RegExp("\\b" + altCssClass + "\\b");
	var sfEls = document.getElementById("mainNavv2").getElementsByTagName("li");
	for (var i=0; i<sfEls.length; i++) {


        sfAnchors = sfEls[i].getElementsByTagName("a");
        if(sfAnchors.length > 1)
        {
            //alert(sfAnchors.length);
            sfAnchors[0].onmouseover = function() {
		        this.parentNode.className += " " + altCssClass;
		        //alert("in: " + this.parentNode.className);
		    }
	        sfAnchors[0].onmouseout = function() {
	            //alert("out " + this.className);
    	        //this.className.replace(altReCSS, "");
    	        this.parentNode.className = "";
		        //alert("out: " + this.parentNode.className);
		    }
            
        }

		// mouseover and mouseout handlers for regular mouse based interface.
		sfEls[i].onmouseover = function() {
			queueFlush();
			this.className += " " + cssClass;
		}
		sfEls[i].onmouseout = function() {
			queue.push([setTimeout(queueTimeout, timeout), this]);
		}

		// focus and blur handlers for keyboard based navigation.
		sfEls[i].onfocus = function() {
			queueFlush();
			this.className += " " + cssClass;
		}
		sfEls[i].onblur = function() {
			queue.push([setTimeout(queueTimeout, timeout), this]);
		}
		
		// click event handler needed for tablet type interfaces (e.g. Apple iPhone).
		sfEls[i].onclick = function(e) {
			if (this.className.search(reCSS) == -1) {
				// CSS not set, so clear all sibling (and decendants) menus, and then set CSS on this menu…
				var elems = this.parentNode.getElementsByTagName("li");
				for (var i=0; i<elems.length; i++) {
					elems[i].className = elems[i].className.replace(reCSS, "");
				}
				this.className += " " + cssClass;
			} else {
				// CSS already set, so clear all decendant menus and then this menu…
				var elems = this.getElementsByTagName("li");
				for (var i=0; i<elems.length; i++) {
					elems[i].className = elems[i].className.replace(reCSS, "");
				}
				this.className = this.className.replace(reCSS, "");
			}
			if (e && e.stopPropagation)
				e.stopPropagation();
			else
				window.event.cancelBubble = true;
		}
	}

	queueFlush = function () {
		while (queue.length) {
			clearTimeout(queue[0][0]);
			queueTimeout();
		}
	}

	queueTimeout = function() {
		if (queue.length) {
			var el = queue.shift()[1];
			el.className = el.className.replace(reCSS, "");
		}
	}
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

addLoadEvent(sfHover);