jQuery.fn.extend({
	menu: function(){
		// Je commence par sélectionner le premier noeud "ul" (on peut ainsi placer son sélecteur de déclaration de menu où l'on souhaite dans le code HTML
		if(this.is('ul')){
			selector = this;
		}else{
			selector= this.find('ul:first')
		}
		//Je commence par cacher tous les sous menu (ul imbriqués) au cas où une autre méthode n'aurait pas été utilisée.
		selector.find('ul').hide();
		
		// Gestion des événements souris : au survol on affiche le sous menu en cachant les sous menus frère et au retrait de la souris on cache le sous menu
		selector.find('li:has(ul)').hover( 
			function(){
				$(this).find('ul:not(:animated)').css({'position':'absolute'}).slideDown('fast'); // .css() permet de définir le style position:absolute comme je le disais
				$(this).siblings('li').find('ul:visible').slideUp('fast'); // On cache les sous menus frère qui pourraient rester visible si on se déplace trop vite de menu en menu
			},
			function(){$(this).find('ul:not(:animated)').slideUp('fast');}
		)
		
		// Pour l'accessibilité on gères les évènements au clavier aussi
		selector.find('li:has(ul) a').focus(
			function(){$(this).parents('li:first').find('ul').css({'position':'absolute'}).show();}
		)
		
		selector.find('li:has(ul) ul li:last-child a').blur(
			function(){$(this).parents('ul:first').hide();}
		)
	}
});
		
$(document).ready(function(){
	$('#nav_site').menu();

	/*$(function() {
		var zIndexNumber = 1000;
		$('div').each(function() {
			$(this).css('zIndex', zIndexNumber);
			zIndexNumber -= 10;
		});
	});*/
});