function ManageMenu(cssIdentifier, skipClasse, callback) {
	out1 = out2 = null;
	if(typeof(skipClasse) == "undefined")
		skipClasse = "skip";
	$$(cssIdentifier+">LI").each(function(e) {
		e.observe("mouseover", function() {
			$$(cssIdentifier+">LI[id!="+this.id+"]").each(function(e) {
				 if(e.className != skipClasse) {
					 e.removeClassName("active");					
					 if(e.down("ul")){
						e.down("ul").hide();
						idframe = e.down("ul").identify().split('_');						
						$("frame_"+idframe[1]).style.display = 'none';
					 }
				 }
			});
			if(e.className != skipClasse) {
				this.addClassName("active");					
				if(this.down("ul")){					
					this.down("ul").show();
					idframe = this.down("ul").identify().split('_');					
					$("frame_"+idframe[1]).style.display = '';
				}
			}
		});
		e.identify();
		if(e.className == skipClasse) return;
		e.observe("mouseout", function(ev) {
			if(this.down("ul")){
				idframe = this.down("ul").identify().split('_');
				iframe = $("frame_"+idframe[1]);				
			}
			out1 = setTimeout('$("'+this.id+'").removeClassName("active");if($("'+this.id+'").down("ul"))$("'+this.id+'").down("ul").hide(); $(iframe).style.display = "none";', 100); 
			
		});
		e.descendants().each(function(e) {
			e.observe("mouseover", function() { if(out1) clearTimeout(out1); if(out2) clearTimeout(out2); });
			if(e.tagName == "UL")
				e.identify();
		});
		if(e.down("ul")){
			idframe = e.down("ul").identify().split('_');				
			$("frame_"+idframe[1]).style.display = 'none';
			e.down("ul").observe("mouseout", function(ev) {	out2 = setTimeout('$("'+this.id+'").hide().up("li").removeClassName("active");', 100); });			
		}
		if(typeof(callback) == "function")
			callback(e);
	});
}

Event.observe(window, "load", function() {
	ManageMenu("#menu", "");
	if($('rechercheProduits'))
		preSelectOptions();
});
