// Pseudo-NameSpace. 
categorias={

/* ********************************************************
 * EXPEDIENTE DE PRIMARIA
 * ********************************************************/


/**
 * Incializa el comportamiento del expediente de primaria
 * 
 * marcar desplegado en los propios a. Los a hijos directos de div#menu son los que tendran
 * el efecto de despliegue por lo que, al contrario que en otras aplicaciones, no será necesario
 * usar una clase desplegable.
 * 
 */
inicializacion:function()
{
	jQuery("div#categorias h5 a ").click(categorias.catAcordeon); 
	jQuery("div#categorias > ul > li > a ").click(categorias.catAcordeon);
	jQuery("div#categorias ul ").hide();
	
	// Sacamos los desplegados
	jQuery("div#categorias h5 a.desplegado ").parent("h5").next("ul").show(); 
	jQuery("div#categorias > ul > li > a.desplegado ").next("ul").show();
			
},

/**
 * this esta aplicado al elemento <a> 
 * 
 * Las uls dependientes son dos:
 * En las evaluaciones: el padre(h5), siguiente hermano ul (primero de todos)
 * En las asignaturas: el primer hermano ul 
 * 
 * La funcion retorna false para q el enlace de las supracategorias no salte.
 * Si JS no esta activado todo esto no funcionara y se vera el menu completo desplegado y con
 * los enlaces correctos.
 * Las clases de desplegado o desplegable se aplican al enlace, es decir, a this
 * 
 */
catAcordeon:function()
{
	// si tiene la clase no hace falta nada
	if (jQuery(this).is(".desplegado")) 
	{
		// buscar el marcado como desplegado y ocultarlo
		// categorias
		jQuery(this).parent("h5").next("ul").slideUp();
		// subcategorias
		jQuery(this).next("ul").slideUp();
		
		// elimina una clase si no la tiene
		jQuery(this).removeClass("desplegado"); 
	}
	else // marcar el actual y desplegarlo
	{
		// categorias
		jQuery(this).parent("h5").next("ul").slideDown();
		// subcategorias
		jQuery(this).next("ul").slideDown();
		
		// añade si no estaba puesta ya
		jQuery(this).addClass("desplegado");
	}
	
	return false;
}

}
// Asignacion al evento. Cualquiera otra asignacion debe ser incluida posteriormente a este fichero
jQuery(document).ready(categorias.inicializacion);
