// $Id: nice_menus.js,v 1.1.2.2 2006/08/06 10:16:20 jakeg Exp $
// Hover delay added by Neal Bussett, neal@bussett.com, 2007/01/30
// We want all browsers to see this. Not just IE

var nice_menu_delay_count = 0; // global count to make unique classes

function DelayHout() { // changed the function name to reflect new purpose
    var ulNodes = getElementsByClass("nice-menu");
    var j = 0;
    var liNodes = null;
    for (var i = 0; i < ulNodes.length; i++) { 
	liNodes = ulNodes[i].getElementsByTagName("li");
	for (j = 0; j < liNodes.length; j++) {
	    if (hasClass(liNodes[j], 'menuparent')) {
		liNodes[j].onmouseover=function() {
		    //window.alert("Pascal: ben aan het testen: [" + this.className + "]");
		    //this.className=this.className.replace(" over", "");
		    
		    //removeClass(this, 'over');
		    //removeClass(this, '');
		    
		    if(!addClass(this, 'over')) { //if we haven't added a class (it exists, we should have an off pending)
			var reg = /(overtimer\d+)/;
			var otimers = reg.exec(this.className);
			for(k = 0; k < otimers.length; k++) {
			    removeClass(this,otimers[k]);
			}
		    }
		    
		}
		liNodes[j].onmouseout=function() {
		    addClass(this, 'overtimer' + nice_menu_delay_count);
		    setTimeout("handleHout(" + '"overtimer' + nice_menu_delay_count + '")',150);
		    nice_menu_delay_count++;
		}
	    } // end hasNodes (before the mouseover/mouseout)
	}
    }
}

function getElementsByClass(searchClass,node,tag) {
    var classElements = new Array();
    if (node == null) node = document;
    if (tag == null) tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
    for (i = 0, j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
	    classElements[j] = els[i];
    	    j++;
	}
    }
    return classElements;
}

function handleHout(timername) {
    var menu = getElementsByClass(timername);
    if (menu.length > 0) { // empty means the over has already been removed
	removeClass(menu[0], timername);
	removeClass(menu[0], 'over');
    }
}

// This is the Drupal method of adding a function to the BODY onload event.  (See misc/drupal.js)
addLoadEvent(DelayHout);
