function fnAddLoadEvent(func) {
	var oldonload = window.onload;

	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
};


sfHover = function() {
	var m_intTimeOut = 600;
	var m_strCssClass = "sfhover";
	var m_ArrQueue = [];
	var m_reCss = new RegExp("\\b" + m_strCssClass + "\\b");
	var m_arrEls = document.getElementById("menu").getElementsByTagName("li");	
	
	for (var i=0; i<m_arrEls.length; i++) {
  
		// mouseover and mouseout handlers for regular mouse based interface.
		m_arrEls[i].onmouseover = function() {
			queueFlush();
			this.className += " " + m_strCssClass;
		}
		m_arrEls[i].onmouseout = function() {
			m_ArrQueue.push([setTimeout(queueTimeout, m_intTimeOut), this]);
		}
	}

	queueFlush = function () {
		while (m_ArrQueue.length) {
			clearTimeout(m_ArrQueue[0][0]);
			queueTimeout();
		}
	}

	queueTimeout = function() {
		if (m_ArrQueue.length) {
			var el = m_ArrQueue.shift()[1];
			el.className = el.className.replace(m_reCss, "");
		}
	}
}
