// JavaScript Document

//efecto_resize: Cambia el tamaño de una capa del valor actual al especificado
//		capa: id de la capa
//		i: tamaño nuevo, en px
//		eje: eje en el que se realiza el reescalado: 
//			'x' para horizontal
//			'y' para vertical
//		tiempo: duración en segundos de la transición
//		ffin: se ejecuta al terminar

function efecto_resize(capa, i, eje, tiempo, ffin)
{
var porc;

capa=document.getElementById(capa);

if (eje=='x') {
	a=capa.style.width.substr(0,capa.style.width.length-2);
} else {
	a=capa.style.height.substr(0,capa.style.height.length-2);
}

porc= (i/a)*100;

//Así podemos encadenar una funcion tras un efecto
new Effect.Scale( capa, porc, { 
			scaleContent: false, 
			scaleX: (eje=='x'), 
			scaleY: (eje!='x'), 
			duration: tiempo, 
			scaleMode: { originalHeight: a, originalWidth: a },
			afterFinish: function () { 
				 eval(ffin);
				 } 
			} 
	);

}



//efecto_togglesize: Alterna el tamaño de una capa entre dos valores
//		capa: id de la capa
//		a: tamaño 1, en px
//		b: tamaño 2, en px
//		eje: eje en el que se realiza el reescalado: 
//			'x' para horizontal
//			'y' para vertical
//		tiempo: duración en segundos de la transición
//	Si la capa tiene tamaño a se hace la trasición de a -> b, si no, de b -> a

function efecto_togglesize(capa, a, b, eje, tiempo,ffin)
{
var porc;

capa=document.getElementById(capa);

if (eje=='x') {
	sizeactual=capa.style.width;
} else {
	sizeactual=capa.style.height;
}

//Vamos a hacer que sea siempre de a -> b, con lo que si estamos de b->a las cambiamos
if (a+'px'!=sizeactual) {
	//estamos en b (cambiamos a por b)
	porc=a;
	a=b;
	b=porc;
}

porc= (a==0?b*100:((b/a)*100));

new Effect.Scale( capa, porc, { 
			scaleContent: false, 
			scaleX: (eje=='x'), 
			scaleY: (eje!='x'), 
			duration: tiempo, 
			scaleMode: { originalHeight: (a==0?1:a), originalWidth: (a==0?1:a) },
			afterFinish: function () { 
				 eval(ffin);
				 } 
			} 
	);



}



function efecto_opacidad(capa, de, a, tiempo,ffin)
{

capa=document.getElementById(capa);

new Effect.Opacity( capa,  { 
			from: de, 
			to: a, 
			duration: tiempo, 
			afterFinish: function () { 
				 eval(ffin);
				 } 
			} 
	);



}





/*
// Así podemos hacer efectos en paralelo
new Effect.Parallel(
   [
	new Effect.Scale( capa, porc, { 
				scaleContent: false, 
				scaleX: (eje=='x'), 
				scaleY: (eje!='x'), 
				duration: tiempo, 
				scaleMode: { originalHeight: a, originalWidth: a } 
				} 
		),
     new Effect.Opacity(capa, { 
			to: 1.0, 
			from: 0.0 
			} 
		) 
	], 
    	{ 
		duration: 1.0, 
		afterFinish: function(effect)
				{ alert('Fin'); }
		}
   );
*/

/*
//Así un efecto en solitario
new Effect.Scale( capa, porc, { 
			scaleContent: false, 
			scaleX: (eje=='x'), 
			scaleY: (eje!='x'), 
			duration: tiempo, 
			scaleMode: { originalHeight: a, originalWidth: a } 
			} 
	);
*/
