// Funciones para plegar-desplegar una capa con animación

var capas_contenedoras = new Array();

function despliega_capa (capa_contenedora,tipo,name_imagen,imagen1,imagen2)
// tipo: 0 si es capa horizontal
//       1 si es capa lateral izquierda
//		   2 si es capa lateral derecha
{
	
	this.indice = array_index (capas_contenedoras,capa_contenedora);

	if (indice==-1)
	{
		capas_contenedoras.push (capa_contenedora);

		this.velocidad = 40;
		this.id_timeout;
		this.altura_original;
		this.anchura_original;
	
		this.id_capa_contenedora = document.getElementById (capa_contenedora);
		this.id_capa = this.id_capa_contenedora.getElementsByTagName("DIV")[0];
		
		if ( (tipo==0 && (this.id_capa_contenedora.offsetHeight < this.id_capa.offsetHeight)) || (tipo>0 && (this.id_capa_contenedora.offsetWidth < this.id_capa.offsetWidth)))
		{
			if (tipo == 2)
			{
				this.id_capa_contenedora.style.left = document.body.clientWidth-1;	
			}
	
			this.altura_original = this.id_capa.offsetHeight;
			this.anchura_original = this.id_capa.offsetWidth;
			this.id_capa_contenedora.style.visibility="";
			this.id_timeout=setInterval("desplegar_capa ()",1);
		}
		else
		{
			this.id_timeout=setInterval("plegar_capa ()",1);
		}
		
		this.desplegar_capa = function ()
		{

			if (tipo > 0)
			{
				if (this.id_capa_contenedora.offsetWidth + this.velocidad > this.anchura_original)
				{
					this.id_capa_contenedora.style.width = this.anchura_original + "px";
					
					if (tipo == 2) // barra lateral derecha
					{
						this.id_capa_contenedora.style.left = parseInt(this.id_capa_contenedora.style.left.substr(0,this.id_capa_contenedora.style.left.length - 2)) - 45;
					}

					clearInterval (id_timeout);
		
					capas_contenedoras.splice (this.indice,1);
					
					if (name_imagen != "")
					{
						cambio_imagen(name_imagen,imagen1)
					}
				}
				else
				{
					this.id_capa_contenedora.style.width = this.id_capa_contenedora.offsetWidth + this.velocidad + "px";
					if (tipo == 2) // barra lateral derecha
					{
						this.id_capa_contenedora.style.left = parseInt(this.id_capa_contenedora.style.left.substr(0,this.id_capa_contenedora.style.left.length - 2)) - this.velocidad;
					}
				}
			}
			else
			{
				if (this.id_capa_contenedora.offsetHeight + this.velocidad > this.altura_original)
				{
					this.id_capa_contenedora.style.height = this.altura_original + "px";
					this.id_capa_contenedora.style.height = "";
					clearInterval (this.id_timeout);
		
					capas_contenedoras.splice (this.indice,1);

					if (name_imagen != "")
					{
						cambio_imagen(name_imagen,imagen2)
					}
				}
				else
				{
					this.id_capa_contenedora.style.height = this.id_capa_contenedora.offsetHeight + this.velocidad + "px";
				}
				
			}
		}
		
		this.plegar_capa = function ()
		{
		
			if (tipo > 0) // capas laterales
			{
				if (this.id_capa_contenedora.offsetWidth - this.velocidad < 0)
				{
					this.id_capa_contenedora.style.width = "1px";
					this.id_capa_contenedora.style.visibility = "hidden";
					clearInterval (this.id_timeout);
		
					capas_contenedoras.splice (this.indice,1);

					if (name_imagen != "")
					{
						cambio_imagen(name_imagen	,imagen2)
					}
				}
				else
				{
					this.id_capa_contenedora.style.width = this.id_capa_contenedora.offsetWidth - this.velocidad + "px";
					if (tipo == 2) // barra lateral derecha
					{
						this.id_capa_contenedora.style.left = parseInt(this.id_capa_contenedora.style.left.substr(0,this.id_capa_contenedora.style.left.length - 2)) + this.velocidad;
					}
				}
			}
			else
			{
				if (this.id_capa_contenedora.offsetHeight - this.velocidad <= 0)
				{
					this.id_capa_contenedora.style.height = "1px";
					this.id_capa_contenedora.style.visibility = "hidden";
					
					clearInterval (this.id_timeout);
		
					capas_contenedoras.splice (this.indice,1);

					if (name_imagen != "")
					{
						cambio_imagen(name_imagen	,imagen1)
					}
				}
				else
				{
					this.id_capa_contenedora.style.height = this.id_capa_contenedora.offsetHeight - this.velocidad + "px";
				}
			}
		}
	}

	return;
}

