// Menu:hover with delay
// ---------------------

// This script will enable the :hover for the submenu's within
// the menu's. Besides enabling the :hover it will also set
// a delay on the submenu.

// Credits: Tino Zijdel (crisp), crisp(at)tweakers.net


var menu = null;

function init_menu() {
	menu = document.getElementById('menu');
	var li = menu.getElementsByTagName('li'), i = li.length;
	while (i--) li[i].onmouseover = showMenu;
	menu.onmouseout = timeout;
	menu.onmouseover = cleartimer;
}

var timer = null;
function timeout() {
	timer = setTimeout('hideMenus(menu, null)', 1000);
}

function cleartimer() {
	if (timer) {
		clearTimeout(timer);
		timer = null;
	}
}

function showMenu()	{
	var ul = this.parentNode;
	while (ul) {
	    if (ul.tagName.toLowerCase() == 'ul' ) {
		   hideMenus(ul, this);
			break;
		}

		ul = ul.parentNode;
	}

	ul = this.firstChild;
	while (ul) {
		if (ul.nodeType == 1 && ul.tagName.toLowerCase() == 'ul') {
			ul.style.display = 'block';
			ul.style.visibility = ''; // necessary for IE
			break;
		}

		ul = ul.nextSibling;
	}
}

function stripos ( f_haystack, f_needle, f_offset ){
    // Finds position of first occurrence of a string within another, case insensitive  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/stripos    // +     original by: Martijn Wieringa
    // +      revised by: Onno Marsman
    // *         example 1: stripos('ABC', 'a');
    // *         returns 1: 0
    var haystack = (f_haystack+'').toLowerCase();
	var needle = (f_needle+'').toLowerCase();
    var index = 0;
     if ((index = haystack.indexOf(needle, f_offset)) !== -1) {
        return index;    }
    return false;
}

function hideMenus(level, skipli) {
	var stack = [level], i = 0, li, j, el, tag;
	do {
		li = stack[i].childNodes, j = li.length;
		while (j--) {
			el = li[j];
			if (el.nodeType == 1 && el != skipli) {
				tag = el.tagName.toLowerCase();
				if (tag == 'li') {
					stack[i++] = el;
				}
				else if (tag == 'ul' && el.style.display == 'block') {
					stack[i++] = el;
					var no=0;
					for(var i=0; i<el.childNodes.length; i++)
					   {
					   if (stripos(el.childNodes[i].className,"menu-current")!==false){ no=1;}
					   }
					   if (stripos(el.parentNode.className,"menu-current")!==false){no=1;}
					   
					if (no!=1)
					{
					el.style.display = 'none';
					el.style.visibility = 'hidden'; // necessary for IE
					}                                           
				}
			}
		}
	}
	while (i--);
}
