String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function swap_menu(element, clique) {
    var recherche= /.*hover.*/;
    var recherche2= /.*menu2.*/;
    if(clique==1 && recherche.test(element.className)){
        swap_menu(element.parentNode);
        return false;
    }
    
	if (element.tagName.toLowerCase() == 'ul'){
			var listChilds = element.childNodes;
			for (var i = 0; i < listChilds.length; i++) {
				if ((listChilds.item(i).tagName == undefined) ||
					(listChilds.item(i).tagName == null) ||
					(listChilds.item(i).tagName.toLowerCase() != 'li'))
					continue;
				var entryChilds = listChilds.item(i).childNodes;
				
				listChilds.item(i).className = listChilds.item(i).className.replace('hover', '').trim();
				//si il y a 'current' parmis les class de l'item, alors on le laisse affiché
				var current_is_in = listChilds.item(i).className.indexOf('current');
				for (var j = 0; j < entryChilds.length; j++) {
					if ((entryChilds.item(j).tagName == undefined) ||
						(entryChilds.item(j).tagName == null) ||
						(entryChilds.item(j).tagName.toLowerCase() != 'div') ||
						(current_is_in > -1))
						continue;
					if(!recherche2.test(entryChilds.item(j).className))
						continue;
					
					entryChilds.item(j).style.display = 'none';
					//entryChilds.item(j).style.visibility = 'hidden';
				}
			}
	}
	else if (element.tagName.toLowerCase() == 'li') {
		element.className = (element.className + ' hover').trim();
		var entryChilds = element.childNodes;
		element.parentNode.parentNode.blocked = true;
		for (var j = 0; j < entryChilds.length; j++) {
			if ((entryChilds.item(j).tagName == undefined) ||
				(entryChilds.item(j).tagName == null) ||
				(entryChilds.item(j).tagName.toLowerCase() != 'div'))
				continue;
			if(!recherche2.test(entryChilds.item(j).className))
				continue;
			entryChilds.item(j).style.display = 'block';
			entryChilds.item(j).style.visibility = 'visible';
			if (element.blocked)
				element.blocked = false;
			else			
				swap_menu(entryChilds.item(j));
		}
	}
	return false;
}
