  function obj(cadena) {
	  return("\""+cadena+"\"");
  }

    // Muestra un desplegable
  function mostrarDesplegable(capa1) {
	  document.getElementById("desplegable"+capa1).style.visibility='visible';
  }

    // Oculta un desplegable
  function ocultarDesplegable(capa1) {
	  document.getElementById("desplegable"+capa1).style.visibility='hidden';
  }
  
    // Gestiona el crecimiento decrecimiento de los cuadros
  function gestionEventosCuadros (capa1,accion) {
	  capa2=(capa1=="WC"?"RE":"WC");
	  if (accion=='entrar') {
		  setTimeout('mostrarDesplegable('+obj(capa1)+');',200);
	  } else {
		  timers[capa1]=setTimeout('ocultarDesplegable('+obj(capa1)+');',200);
	  }
  }

    // Se encarga de cerrar la ventana desplegable cuando corresponda
  function gestionEventosDesplegables (capa1,accion) {
	  capa2=(capa1=="WC"?"RE":"WC");
	  if (accion=='entrar') {
		  if (timers[capa1]!=0) clearTimeout(timers[capa1]);
	  } else if (accion='salir')
		  aux1=setTimeout("ocultarDesplegable("+obj(capa1)+");",200);
  }
	
	  // Indica si el nodo fuente es hijo del nodo destino (true en ese caso) en el DOM o no (false)
	function hijode (fuente,destino) {
		auxBody=document.getElementsByTagName('BODY');
		auxBody=auxBody[0];
		auxHtml=document.getElementsByTagName('HTML');
		auxHtml=auxHtml[0];
		if (destino==undefined) destino=auxHtml;
		while ((destino!=fuente) && (destino!=auxBody) && (destino!=auxHtml))
		   destino=destino.parentNode;
		if (destino==fuente)
		  return true;
		else
		  return false;
	}
	
	  // Decide si lanzar el evento o no dependiendo de si lo lanza una capa hija de la principal
	  // event -> objeto event, capa -> WC o RE y tipo -> desplegable o cuadro
	function procesarEventos (event,capa,tipo) {
		evento=((window.event)?window.event:event);
		  // Nombre de la capa que analizamos
		capaAux=((tipo=='desplegable'?'desplegable':'')+capa);
		  // Determina si entramos o salimos
		accion=((evento.type=='mouseover')?'entrar':'salir'); 
		if (window.event) {
			fuente=evento.fromElement;
			destino=evento.toElement;
		} else {
			fuente=evento.target;
			destino=evento.relatedTarget;
		}
		origenDentro=hijode(document.getElementById(capaAux),fuente);
		destinoDentro=hijode(document.getElementById(capaAux),destino);
		 // Dentro true -> evento dentro de capa; else salimos o entramos en la capa principal
		dentro=((origenDentro) && (destinoDentro));
		  // El evento se ha lanzado por una salida o entrada de la capa principal
		if (!dentro && (fuente!=destino))
		  if (tipo=='cuadro')
		    gestionEventosCuadros(capa,accion);
		  else
		    gestionEventosDesplegables(capa,accion);
	}

	// Muestra la categoría elegida y oculta las demás
	function mostrarContenidos(categoria) {
	  for(i=1;i<=5;i++)
	    if (i==categoria) {
		  document.getElementById("cContenido"+i).style.visibility='visible';
		  document.getElementById("cIcoCategoria"+i).style.backgroundColor='#DCB66C';
		} else {
		  if (document.getElementById("cContenido"+i)!=null) document.getElementById("cContenido"+i).style.visibility='hidden';
		  if (document.getElementById("cIcoCategoria"+i)!=null) document.getElementById("cIcoCategoria"+i).style.backgroundColor='#295DB4';
		}
	}

  function bannerAleatorio() {
	  do {
		fin=Math.round(Math.random()*(numBanners-1));
	  } while (  ((fin==bannersActivos[1]) || (fin==bannersActivos[2]) || (fin==bannersActivos[3]) || (fin==bannersActivos[4]) || (fin==bannersActivos[5]))  && (numBanners>5));
      return(fin);
  }

  function ajustarBanners() {
	  for(i=1;i<=5;i++) {
		  if (bannersActivos[i]=='off') bannersActivos[i]=bannerAleatorio();
	  }
  }
  
    // Gestiona el crecimiento decrecimiento de los cuadros
  function moverBanners() {
	pasoActualBanner++;
	 // Calculamos las nuevas posiciones de los banners
	posAux= new Array;
	for(i=1;i<=3;i++)
	  posAux[i]=posicionCoords[i]+(pixelesPasoBanner*pasoActualBanner);
	 // Actualizamos la posicón de las capas
	for(i=1;i<=3;i++)
	  document.getElementById(posicionBanner[i]).style.left=posAux[i]+'px';
	 // Fin de la animación?
	if (pasoActualBanner<=pasosTotalBanner) {
	//  clearTimeout(timerBanner);
	    timerBanner=setTimeout("moverBanners();",tiempoPasoBanner);
	} else {
		 // Colocamos la capa de la derecha la izquierda del todo
		bannersActivos[0]=bannersActivos[3];
		for(i=3;i>=1;i--) bannersActivos[i]=bannersActivos[i-1];
		posicionBanner[0]=posicionBanner[3];
		for(i=3;i>=1;i--) posicionBanner[i]=posicionBanner[i-1];
		for(i=1;i<=3;i++)
		  document.getElementById(posicionBanner[i]).style.left=posicionCoords[i]+'px';
		pasoActualBanner=0;
        bannersActivos[1]=bannerAleatorio();
		document.getElementById(posicionBanner[1]).innerHTML=banner[bannersActivos[1]];
		timerBanner=setTimeout("moverBanners();",tiempoPasadaCarrusel);
	}
  }


  function animarCarrusel () {
	if (carruselActivo==1) timerBanner=setTimeout("moverBanners();",tiempoPasadaCarrusel);
  }


