sfHover = function() {  
     var timeout = 400;  
     var cssClass = "sfhover";  
   
     var queue = [];  
     var reCSS = new RegExp("\\b" + cssClass + "\\b");  

     if (document.getElementById("flere")){	// Esben
		 document.getElementById("flere").onmouseover = function() {
			 queueFlush();
			 document.getElementById("feedback").className += " " + cssClass;
		 }
		 document.getElementById("flere").onmouseout = function() {  
			 queue.push([setTimeout(queueTimeout, timeout), document.getElementById("feedback")]);
		 }
		 document.getElementById("flere").onfocus = function() {
			 queueFlush();
			 document.getElementById("feedback").className += " " + cssClass;
		 }
		 document.getElementById("flere").onblur = function() {
			 queue.push([setTimeout(queueTimeout, timeout), document.getElementById("feedback")]);
		 }
	 }
	 
     var sfEls = document.getElementById("mainnav").getElementsByTagName("li");  	
     for (var i=0; i<sfEls.length; i++) {  
   
         // 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, "");
         }  
     }  
 }  
 addLoadEvent(sfHover);

function addLoadEvent(func) {  
     var oldonload = window.onload;  
     if (typeof window.onload != 'function') {  
         window.onload = func;  
     } else {  
         window.onload = function() {  
             oldonload();  
             func();  
         }  
     }  
  } 
  

if (window.attachEvent) window.attachEvent("onload", sfHover);
