/**
 * Función que aplicará eventos para desplegar/plegar uno o más menús verticales sin necesidad de modificar el código HTML
 * Requiere la librería jquery
 * @link http://jquery.com/
 * @author Xan Torres <xan@icare-net.com>
 */
jQuery.noConflict();
jQuery(document).ready(function($) {

	var cont	= new Array();
	var btn		= new Array();
	var menu	= new Array();
	
	// VARIABLES A DEFINIR

	// IMPORTANTE: Para las id's se debe especificar el nombre con un '#' delante, para las clases un '.' y si es un tag html se escribe tal cual
	
	var btn_act			= ".menu_actif";	// Id o clase única del elemento del menú que está activo (se expandirá al cargar la página). 
											// Este parámetro será ignorado en el caso de que el menú se desplegue en el hover
	
	var base			= "#menu_vert_glsst";		// Id del contenedor que contendrá el/los menús desplegables
	
	var veloc			= "fast";			// Velocidad en que se desplegará el menú (slow, normal, fast o el número de milisegundos)
	
	var hover			= false;			// Especifica si el evento se producirá al hacer click (false) o al pasar el mouse por encima (true)

	var cierre_inact	= true;				// Variable que establece si sólo habrá un menú activo a la vez, es decir que los demás se ocultarán en caso de estar desplegados
											// Este parámetro será ignorado en el caso de que el menú se desplegue en el hover
	
	var cierre_out 		= false;			// Variable que especifica si el menú se plegará al hacer click fuera del contenedor

	
	// NIVEL 1
	
	cont[0]		= ".container";			// Clase de los contenedores que contendrán cada uno un botón y un menú desplegable
	
	btn[0]		= ".n_accordion_toggle";				// Botón que muestra/oculta el menú (debe estar dentro del contenedor)
	
	menu[0]		= ".sous_menu_vertical";	// Menú desplegable que se mostrará/ocultará (típicamente un <div>, <ul> o un <dl> dentro del contenedor).
	
	
	
	
	// INICIO CÓDIGO -->
	
	if (cierre_out) {
		$(this).click(function(){
			for (j=cont.length;j>=0;j--){
				$(menu[j] + ":visible", cont[j]).slideUp(veloc);
			}
		});
		
		jQuery.each($(base).children(), function() {
			$(this).click(function(e){
				e.stopPropagation();
			});
		});
	}

	jQuery.each(cont, function(i) {
	
		if (hover) {
			$(btn[i], base).hover(function() {
				$(menu[i] + ":hidden",$(this).closest(cont[i])).slideDown(veloc);
			});
			
			$(cont[i]).hover(null,function(){ 
				for (j=cont.length;j>=i;j--){
					$(menu[j] + ":visible", cont[j]).slideUp(veloc);
				}
			});
			$(menu[i], cont[i]).hide();
		}
		else {
			
			$(btn[i], base).click(function(e) {
				actu = $(menu[i],$(this).closest(cont[i]));
				actu.slideToggle(veloc);
				if (cierre_inact) {
					for (j=cont.length;j>=i;j--) {
						$(menu[j] + ":visible", cont[j]).not(actu).slideUp(veloc);
					}
				}
			});
			
			var activo = $(btn_act, base).closest(menu[i]);
			$(menu[i], cont[i]).not(activo).hide();
			$(menu[i] + ":hidden", activo.closest(cont[i])).show();
		}
	});

	// <-- FIN CÓDIGO

});
