// JavaScript Document

/* constantes, variables y funciones para los menus del realceppa.es

secciones:

= CONSTANTES Y VARIABLES

= FUNCIONES
- despliegue de submenus
- cambios de color de fondo y fuente
*/




/* CONSTANTES Y VARIABLES */



/* para todos los items sin persianas asociadas (mh y mv), guardamos las id's de los p y los a asociados 
  para cambios de color y fuente al clickear items de cualquiera de los dos menus 
*/

var p=['pmh1','pmh2','pmh3','pmh4','pmh5','pmh6','pmh7','pmh8','pmv1','pmv2','pmv3','pmv4','pmv5','pmv6','pmv7','pmv8','pmv9','pmv10','pmv11'];
var a=['amh1','amh2','amh3','amh4','amh5','amh6','amh7','amh8',];
var pmhid,amhid,old_id=null;

/* ACABA para el menu horizontal */




/* colores de fondo y fuente (FF) para los p y los a asociados a las persianas */

/* los dos primeros valores de cada array se corresponden con los colores iniciales, los dos ultimos con los colores que toman al ser desplegadas las persianas asociadas */
/* nivel 0 */
var ff0=new Array('#bbbbbb','#606164','#cccc33','#555658');
/* nivel 1 */
var ff1=new Array('#9fa1a4','#ffffff','#555658','#555658');
/* nivel 2 */
var ff2=new Array('#888888','#ffffff','#888888','#ffffff');
/* nivel 3 */
var ff3=new Array('#888888','#ffffff','#888888','#888888');

var COLORES_FF=new Array(ff0,ff1,ff2,ff3);

/* FIN colores de fondo y fuente  */



/* ids de los items del menu con persianas asociadas,  estos arrays son para cambios de color de fuente y fondo*/
var pids0=['pp2','pp3','pp4','pp7','pp9','pp10','pp14'];
var aids0=['ap2','ap3','ap4','ap7','ap9','ap10','ap14'];
var pids1=['p_desp_com','p_desp_instr','p_desp_mono','p_desp_cria'];
var aids1=['a_desp_com','a_desp_instr','a_desp_mono','a_desp_cria'];
var pids3=['p_desp_rel'];
var aids3=['a_desp_rel'];

var PIDS=new Array(pids0,pids1,null,pids3);

/* ids de los a asociados a cada p */
var AIDS=new Array(aids0,aids1,null,aids3);

/* aqui guardaremos las ids de los p con menus abiertos asociados  en cada nivel */
var PIDS_abiertos=new Array(4);




/* guardamos todas las persianas en arrays */

/* nivel 0 */
var ecc=new Array("ecc1","ecc2","ecc3","ecc4","ecc5","ecc6","ecc7","ecc8");
var enc=new Array("enc1","enc2");
var cnt=new Array("cnt1","cnt2","cnt3");
var ci=new Array("ci1","ci2","ci3","ci4");
var tr=new Array("t1","t2","t3","t4","t5");
var eyc=new Array("ec1","ec2","ec3","ec4");
var prsa=new Array("psa1","psa2","psa3");

var pers0=new Array(7);
pers0[0]=ecc;
pers0[1]=enc;
pers0[2]=cnt;
pers0[3]=ci;
pers0[4]=tr;
pers0[5]=eyc;
pers0[6]=prsa;

/* nivel 1 */
var com=new Array("com0","com1","com2","com3");
var instr=new Array("instr0","instr1","instr2","instr3","instr4","instr5");
var mono=new Array("mono0","mono1","mono2");
var cria=new Array("cr0","cr1","cr2","cr3","cr4");

var pers1=new Array(4);
pers1[0]=com;
pers1[1]=instr;
pers1[2]=mono;
pers1[3]=cria;

/* nivel 2 */
var aptc=new Array("ac1");
var dcad=new Array("dcad1","dcad2","dcad3","dcad4");
var dcod=new Array("dcod1","dcod2");
var salt=new Array("salt1","salt2","salt3");

var pers2=new Array();
pers2[0]=aptc;
pers2[1]=dcad;
pers2[2]=dcod;
pers2[3]=salt;

/* nivel 3 */
var rsalt=new Array("rsalt0","rsalt09","rsalt08","rsalt07","rsalt06","rsalt05");

var pers3=new Array();
pers3[0]=rsalt;

/* aqu guardamos todas las persianas del menu a todos los niveles */
var PERSIANAS=new Array(pers0,pers1,pers2,pers3);
/* aqu guardaremos los ids de las persianas que esten abiertas a todos los niveles */
var PERSIANAS_abiertas=new Array();

/* spans con los signos +/-  */
var spans=new Array("sp0","sp1","sp2","sp3","sp4","sp5","sp6");




/* id de persiana (PERSIANAS[nivel][id]) que se va a abrir */
var id;
var idl;/* aqui guardaremos la longitud de la persiana */


/* aqui las longitudes de las persianas que hay que cerrar */
var persiana_abierta;
var l;/* l=persiana_abierta.length-1*/
var nivel;
var i,j;
var c=0;



/* FUNCIONES */


/* cierra todo lo que este abierto en el menu izquierdo al clickear items del menu horizontal */
function reiniciar_mh()
{
	nivel=reiniciar_mh.arguments[0];
	id=reiniciar_mh.arguments[1];
	
	/* rutina de comprobacion para cerrar cualquier persiana que este abierta */
	for(i=3;i>=nivel;i--)
	{
		if(PERSIANAS_abiertas[i]!=null)
		{
			cerrar_persiana();
			PERSIANAS_abiertas[i]=null;
		}
		
	}
	
	cambiar_color_mh(id);
}


/* cierra todo lo que este abierto en el menu izquierdo y abre la persiana seleccionada */
/* - comprueba que persianas y submenus hay abiertos a todos los niveles y los cierra 
   - abre la persiana o el submenu seleccionado
   
   rutina1()-->cerrar_persiana()-->abrir_persiana()
*/
function rutina1()
{	
	/* recuperamos los argumentos enviados */
	nivel=rutina1.arguments[0];
	id=rutina1.arguments[1];
	/* con esto apuntamos a PERSIANAS[nivel][id]*/
	
	
	/* rutina de comprobacion para cerrar cualquier persiana que este abierta */
	for(i=3;i>=nivel;i--)
	{
		if(PERSIANAS_abiertas[i]!=null)
		{
			cerrar_persiana();
			
			if(i==nivel && PERSIANAS_abiertas[i]==id)
			{
				PERSIANAS_abiertas[i]=null;
				return;
			}
			
			PERSIANAS_abiertas[i]=null;
		}
		
	}
	
	if(old_id!=null && nivel==0)
		{
			document.getElementById(p[old_id]).style.backgroundColor=COLORES_FF[nivel][0];
			//getElementById(a[old_id]).style.color=COLORES_FF[nivel][1];
		}
	
	abrir_persiana();
	
	
}

/* CERRANDO PERSIANAS */
/* cerrar_persiana()-->hacer_invisible()-->replegar_persiana() */

function cerrar_persiana()
{
	persiana_abierta=PERSIANAS[i][PERSIANAS_abiertas[i]];
	l=persiana_abierta.length-1;
	if(nivel==0) document.getElementById(spans[PERSIANAS_abiertas[0]]).innerHTML="+";
	hacer_invisible();
	cambiar_colores(false);
	return;
}

function hacer_invisible()
{
	for(j=l;j>=0;j--)
	{
	document.getElementById(PERSIANAS[i][PERSIANAS_abiertas[i]][j]).style.visibility='hidden';
	}
	
	replegar_persiana();
/*	c--;
	if(c<0)
	{
		c=l;
		clearTimeout(t);
		replegar_persiana();
		return;
	}
	
	t=setTimeout("hacer_invisible();",50);
*/
	return;
}

function replegar_persiana()
{
	for(j=l;j>=0;j--)
	{
	document.getElementById(PERSIANAS[i][PERSIANAS_abiertas[i]][j]).style.display='none';
	}
	/*c--;
	if(c<0)
	{
		clearTimeout(t);
		return;
	}
	
	t=setTimeout("replegar_persiana();",50);
*/	
	/*if(c>=0);*/
	return;
}

/* ACABA CERRANDO PERSIANAS */

/* ABRIENDO PERSIANAS */
/* abrir_persiana()-->desplegar_persiana()-->hacer_visible() */

function abrir_persiana()
{
	cambiar_colores(true);
	idl=PERSIANAS[nivel][id].length;
	if(nivel==0) document.getElementById(spans[id]).innerHTML="-";
	desplegar_persiana();
	PERSIANAS_abiertas[nivel]=id;
	return;
}


function desplegar_persiana()
{
	document.getElementById(PERSIANAS[nivel][id][c]).style.display='block';
	c++;
	
	if(c==idl)
	{
		c=0;
		clearTimeout(t);
		hacer_visible();
		return;
	}
	
	t=setTimeout("desplegar_persiana();",50);
	
}

function hacer_visible()
{
	document.getElementById(PERSIANAS[nivel][id][c]).style.visibility='visible';
	c++;
	if(c==idl)
	{
		c=0;
		clearTimeout(t);
		return;
	}
	
	t=setTimeout("hacer_visible();",50);
	
}

/* ACABA ABRIENDO PERSIANAS */



/* CAMBIANDO COLORES DE LOS ITEMS DE LOS MENUS */

function cambiar_colores()
{
	bgcolor=COLORES_FF[nivel][2];
	color=COLORES_FF[nivel][3];
	nivel2=nivel;
	id2=id;
	boolean=cambiar_colores.arguments[0];
	
	if(!boolean)
	{
		nivel2=i;
		id2=PERSIANAS_abiertas[nivel2];
		bgcolor=COLORES_FF[nivel2][0];
		color=COLORES_FF[nivel2][1];
	}
	
	if(PIDS[nivel2]==null) return;
	
	with(document)
	{
		getElementById(PIDS[nivel2][id2]).style.backgroundColor=bgcolor;
		getElementById(AIDS[nivel2][id2]).style.color=color;
	}
}





/* para el menu horizontal */


function cambiar_color_mh(id)
{
	pmhid=p[id];
	amhid=a[id];
	
	
	
	with (document)
	{
		getElementById(pmhid).style.backgroundColor=COLORES_FF[nivel][2];
		//getElementById(amhid).style.color=COLORES_FF[nivel][3];
		
		if(old_id!=null && old_id!=id)
		{
			getElementById(p[old_id]).style.backgroundColor=COLORES_FF[nivel][0];
			//getElementById(a[old_id]).style.color=COLORES_FF[nivel][1];
		}
		
	}
	
	old_id=id;
	
}


/* cambia los colores de fondo y fuente de los p y los a asociados a las persianas de nivel 1+*/
function cambiar_color_pdesp()
{	
	/* si estamos en el nivel 2 salimos de la funcion */
	if(PIDS[nivel]==null) return;
	
	if(PIDS_abiertos[nivel]!=null)
	{
		document.getElementById(PIDS[nivel][PIDS_abiertos[nivel]]).style.backgroundColor=COLORES_FF[nivel][0];
		document.getElementById(AIDS[nivel][PIDS_abiertos[nivel]]).style.color=COLORES_FF[nivel][1];
		if(PIDS_abiertos[nivel]==id)
		{
		PIDS_abiertos[nivel]=null;
		return;
		}
	}
	
	if(id!=null)
	{
	document.getElementById(PIDS[nivel][id]).style.backgroundColor=COLORES_FF[nivel][2];
	document.getElementById(AIDS[nivel][id]).style.color=COLORES_FF[nivel][3];
	PIDS_abiertos[nivel]=id;
	return;
	}
}

/* colores originales de fondo y fuente para los p y los a asociados a las persianas de nivel 1+ en la rutina de cerrar persianas abiertas */
function reset_colores()
{
		if(PIDS[i]==null) return;
	
		document.getElementById(PIDS[i][PIDS_abiertos[i]]).style.backgroundColor=COLORES_FF[i][0];
		document.getElementById(AIDS[i][PIDS_abiertos[i]]).style.color=COLORES_FF[i][1];
		
		if(i==nivel && PIDS_abiertos[i]==PIDS[nivel][i])
		{
		PIDS_abiertos[i]=null;
		return;
		}
		
		PIDS_abiertos[i]=null;
}


/* ACABA CAMBIANDO COLORES DE LOS ITEMS DE LOS MENUS */











