//src="diapositivas.js" >

var capa1, capa2;
var capaTemp, capaPadre;
var capaX = 0;
var capaY = 0;
var alto = 0;
var ancho = 0;
var nPasos = 15;
var pasoX, pasoY;
var _laFoto;
var actual = 0;
var siguiente = 1;
var transitando = false;
var retardo = 50;
var efectoCapa = false;
var efecto = [
	sin,		// 0
	abrirD,		// 1
	cerrarI,	// 2
	abrirI,		// 3
	cerrarD,	// 4
	abrirAba,	// 5
	cerrarArr,	// 6
	abrirArr,	// 7
	cerrarAba,	// 8
	abrirAbaI,	// 9
	cerrarAbaI,	// 10
	abrirAbaD,	// 11
	cerrarAbaD,	// 12
	abrirArrI,	// 13
	cerrarArrI,	// 14
	abrirArrD,	// 15
	cerrarArrD,	// 16
	abrirCentro,	// 17
	cerrarCentro,	// 18
	abrirH,		// 19
	cerrarH,	// 20
	abrirV,		// 21
	cerrarV,	// 22
	fundido,	// último
	desplazar	// 24

];

function desplazar()	{
	_finEfecto(24);
}

function sin()	{
	_finEfecto(0);
}

function abrirI()	{
	capaX = capaX + pasoX;
	capa2.style.left = capaX + "px";
	if (capaX < ancho) setTimeout("abrirI()", retardo);
	else	_finEfecto(1);
}

function desplazar()	{
	capaX = capaX + pasoX;
	capa2X = capa2X + pasoX;
	capa2.style.left = capaX + "px";
//	capa1.style.left = (ancho + capaX) + "px";
	if (capaX < 0) setTimeout("desplazar()", retardo);
	else	_finEfecto(24);
}


function cerrarI()	{
	capaX = capaX + pasoX;
	capa2.style.left = capaX + "px";
	if (capaX < 0) setTimeout("cerrarI()", retardo);
	else	_finEfecto(2);
}

function abrirD()	{
	capaX = capaX - pasoX;
	capa2.style.left = capaX + "px";
	if (-capaX < ancho) setTimeout("abrirD()", retardo);
	else	_finEfecto(3);
}

function cerrarD()	{
	capaX = capaX - pasoX;
	capa2.style.left = capaX + "px";
	if (capaX > 0) setTimeout("cerrarD()", retardo);
	else	_finEfecto(4);
}

function abrirArr()	{
	capaY = capaY + pasoY;
	capa2.style.top = capaY + "px";
	if (capaY < alto) setTimeout("abrirArr()", retardo);
	else	_finEfecto(5);
}

function cerrarArr()	{
	capaY = capaY + pasoY;
	capa2.style.top = capaY + "px";
	if (capaY < 0) setTimeout("cerrarArr()", retardo);
	else	_finEfecto(6);
}

function abrirAba()	{
	capaY = capaY - pasoY;
	capa2.style.top = capaY + "px";
	if (-capaY < alto) setTimeout("abrirAba()", retardo);
	else	_finEfecto(7);
}

function cerrarAba()	{
	capaY = capaY - pasoY;
	capa2.style.top = capaY + "px";
	if (-capaY < 0) setTimeout("cerrarAba()", retardo);
	else	_finEfecto(8);
}

function abrirAbaI()	{
	capaY = capaY - pasoY;
	capa2.style.top = capaY + "px";
	capaX = capaX - pasoX;
	capa2.style.left = capaX + "px";
	if (-capaY < alto) setTimeout("abrirAbaI()", 10);
	else	_finEfecto(9);
}

function cerrarAbaI()	{
	capaY = capaY - pasoY;
	capa2.style.top = capaY + "px";
	capaX = capaX - pasoX;
	capa2.style.left = capaX + "px";
	if (-capaY < 0) setTimeout("cerrarAbaI()", retardo);
	else	_finEfecto(10);
}

function abrirAbaD()	{
	capaY = capaY - pasoY;
	capa2.style.top = capaY + "px";
	capaX = capaX + pasoX;
	capa2.style.left = capaX + "px";
	if (-capaY < alto) setTimeout("abrirAbaD()", retardo);
	else	_finEfecto(11);
}

function cerrarAbaD()	{
	capaY = capaY - pasoY;
	capa2.style.top = capaY + "px";
	capaX = capaX + pasoX;
	capa2.style.left = capaX + "px";
	if (-capaY < 0) setTimeout("cerrarAbaD()", retardo);
	else	_finEfecto(12);
}

function abrirArrI()	{
	capaY = capaY + pasoY;
	capa2.style.top = capaY + "px";
	capaX = capaX - pasoX;
	capa2.style.left = capaX + "px";
	if (capaY < alto) setTimeout("abrirArrI()", retardo);
	else	_finEfecto(13);
}

function cerrarArrI()	{
	capaY = capaY + pasoY;
	capa2.style.top = capaY + "px";
	capaX = capaX - pasoX;
	capa2.style.left = capaX + "px";
	if (capaY < 0) setTimeout("cerrarArrI()", retardo);
	else	_finEfecto(14);
}

function abrirArrD()	{
	capaY = capaY + pasoY;
	capa2.style.top = capaY + "px";
	capaX = capaX + pasoX;
	capa2.style.left = capaX + "px";
	if (capaY < alto) setTimeout("abrirArrD()", retardo);
	else	_finEfecto(15);
}

function cerrarArrD()	{
	capaY = capaY + pasoY;
	capa2.style.top = capaY + "px";
	capaX = capaX + pasoX;
	capa2.style.left = capaX + "px";
	if (capaY < pasoY) setTimeout("cerrarArrD()", retardo);
	else	_finEfecto(16);
}

function abrirCentro()	{
	capaY = capaY + pasoY;
	capa2.style.top = capaY + "px";
	capaX = capaX + pasoX;
	capa2.style.left = capaX + "px";
	capa2.style.width = ancho - (capaX * 2) + "px";
	capa2.style.height = (alto - (capaY * 2)).toString() + "px";
	if ((capaX + pasoX) < ancho / 2) setTimeout("abrirCentro()", retardo);
	else	_finEfecto(17);
}

function cerrarCentro()	{
	capaY = capaY - pasoY;
	capa2.style.top = capaY + "px";
	capaX = capaX - pasoX;
	capa2.style.left = capaX + "px";
	if (capaX > pasoX)	{
		capa2.style.width = ancho - (capaX * 2) + "px";
		capa2.style.height = alto - (capaY * 2) + "px";
		setTimeout("cerrarCentro()", retardo);
	}
	else
		_finEfecto(18);
}

function abrirH()	{
//	alert("esto");
	capaY = capaY + pasoY;
	capa2.style.top = capaY + "px";
	capa2.style.height = (alto - (capaY * 2)).toString() + "px";
	if ((capaY + pasoY) * 2 <= alto) setTimeout("abrirH()", retardo);
	else	_finEfecto(19);
}

function cerrarH()	{
	capaY = capaY - pasoY;
	capa2.style.top = capaY + "px";
	if (capaY > pasoY)	{
		capa2.style.height = alto - (capaY * 2) + "px";
		setTimeout("cerrarH()", retardo);
	}
	else
		_finEfecto(20);
}

function abrirV()	{
	capaX = capaX + pasoX;
	capa2.style.left = capaX + "px";
	capa2.style.width = (ancho - (capaX * 2)).toString() + "px";
	if ((capaX + pasoX) < (ancho / 2)) setTimeout("abrirV()", retardo);
	else	_finEfecto(21);
}

function cerrarV()	{
	capaX = capaX - pasoX;
	capa2.style.left = capaX + "px";
	if (capaX > pasoX)	{
		capa2.style.width = ancho - (capaX * 2) + "px";
		setTimeout("cerrarV()", retardo);
	}
	else
		_finEfecto(22);
}

function fundido()	{
	capaX = capaX - 5;

	if (document.all && !esOpera())
		capa2.filters.alpha.opacity = capaX;
	else	if (esOpera())	
			capa2.style.OperaOpacity = capaX / 100;
		else
			capa2.style.MozOpacity = capaX / 100;
	if (capaX > 0) setTimeout("fundido()", retardo);
	else	_finEfecto(23);
}


function esOpera()	{
	return (navigator.userAgent.toLowerCase().indexOf("opera") >= 0);
}

function asignarFondo(capa, imagen)	{
	var salida = "url(" + imagen + ")";
	capa.style.backgroundImage = salida;
}

function crearCapa()	{
	capa = document.createElement("div");
	capa.id = "id" + Math.random();
	capa.style.backgroundPosition = "center center";
	
	//capa.style.backgroundAttachment = (document.all && !esOpera()) ? "fixed": "static";
	capa.style.backgroundRepeat = "no-repeat";
	capa.style.top = "0px";
	capa.style.left = "0px";
	capa.style.width = ancho + "px";
	capa.style.height = alto + "px";
	capa.style.margin = "0";
	capa.style.overflow = "hidden";
	capa.style.position = "absolute";
	return capa;
}

function prepararCapas()	{
	var lasCapas = prepararCapas.arguments;
	for (var i = 0; i < lasCapas.length; i ++)
		with	(document.getElementById(lasCapas[i]).style)	{
			width = ancho + "px";
			height = alto + "px";
			left = "0px";
			top = "0px";
			display = "none";
			position = "absolute";
//			backgroundAttachment = (document.all && !esOpera()) ? "fixed": "static";
		}
}

function prepararCapa(id, anchura, altura)	{
	ancho = anchura;
	alto = altura;
	capa = document.getElementById(id);

//	capa.style.backgroundColor = "transparent";
	capa.style.backgroundColor = "white";

	capa.style.backgroundPosition = "center center";

//	capa.style.backgroundAttachment = (document.all && !esOpera()) ? "fixed": "static";

	capa.style.backgroundRepeat = "no-repeat";
	capa.style.overflow = "hidden";
	capa.style.position = "relative";

	capa.style.width = anchura + "px";
	capa.style.height = altura + "px";

	pasoX = parseInt(ancho / nPasos);
	pasoY = parseInt(alto / nPasos);

}

function casosEfectos(ef)	{
	switch(ef)	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 9:
		case 11:
		case 13:
		case 15:
		case 17:
		case 19:
		case 21:
			capaX = 0; capaY = 0;
			var temp = capa1.style.backgroundImage;
			capa1.style.backgroundImage = capa2.style.backgroundImage;
			capa2.style.backgroundImage = temp;

			temp = capa1.style.backgroundColor;
			capa1.style.backgroundColor = capa2.style.backgroundColor;
			capa2.style.backgroundColor = temp;
			break;
		case 24: // desplazar
			capaX = -(pasoX * nPasos);
			capa2X = 0;
			capa2.style.left = capaX + "px";
			break;
		case 2: // cerrar desde la izquierda
			capaX = -(pasoX * nPasos);
			capa2.style.left = capaX + "px";
			break;

		case 4: // cerrar desde la derecha
			capaX = (pasoX * nPasos);
			capa2.style.left = capaX + "px";
			break;
		case 6: // cerrar desde arriba
			capaY = -(pasoY * nPasos);
			capa2.style.top = capaY + "px";
			break;
		case 8: // cerrar desde abajo
			capaY = (pasoY * nPasos);
			capa2.style.top = capaY + "px";
			break;
		case 10:
			capaY = nPasos * pasoY;
			capa2.style.top = capaY + "px";
			capaX = nPasos * pasoX;
			capa2.style.left = capaX + "px";
			break;
		case 12:
			capaY = nPasos * pasoY;
			capa2.style.top = capaY + "px";
			capaX = -nPasos * pasoX;
			capa2.style.left = capaX + "px";
			break;
		case 14:
			capaY = -nPasos * pasoY;
			capa2.style.top = capaY + "px";
			capaX = nPasos * pasoX;
			capa2.style.left = capaX + "px";
			break;
		case 16:
			capaY = -nPasos * pasoY;
			capa2.style.top = capaY + "px";
			capaX = -nPasos * pasoX;
			capa2.style.left = capaX + "px";
			break;
		case 18:
			capaY = (alto + (alto % (pasoY * 2))) / 2;
			capa2.style.top = capaY + "px";
			capaX = (ancho + (ancho % (pasoX * 2))) / 2;
			capa2.style.left = capaX + "px";
			break;
		case 20:
			capaY = (alto + (alto % (pasoY * 2))) / 2;
			capa2.style.top = capaY + "px";
			break;
		case 22:
			capaX = (ancho + (ancho % (pasoX * 2))) / 2;
			capa2.style.left = capaX + "px";
			break;
		case 23: // fundido
			capaX = 100;
			var temp = capa1.style.backgroundImage;
			capa1.style.backgroundImage = capa2.style.backgroundImage;
			capa2.style.backgroundImage = temp;

			temp = capa1.style.backgroundColor;
			capa1.style.backgroundColor = capa2.style.backgroundColor;
			capa2.style.backgroundColor = temp;

			if (document.all)	capa2.style.filter = "alpha(opacity=100)";
			else if (esOpera)	capa2.style.OOpacity = "1";
			else			capa2.style.MozOpacity = "1";
			break;
		otherwise
			break;
	}
}

function iniciaEfecto(sitio, imagen, fondo, ef)	{
	if (transitando)	return;
	transitando = true;
	capa1 = document.getElementById(sitio);
	capa1.style.left = "0px";
	capa2 = crearCapa();
	capa2.style.backgroundColor = fondo;
	capa2.style.width = ancho + "px";
	capa2.style.height = alto + "px";
	capa2.style.left = "0px";
	capa2.style.top = "0px";
	capa1.appendChild(capa2);
	asignarFondo(capa2, imagen);
	casosEfectos(ef);
	efecto[ef]();
}

function efectoACapas(capaA, capaB, ef)	{
	if (transitando)	return;
	efectoCapa = true;
	transitando = true;

	capa1 = document.getElementById(capaA);
	capaAux = document.getElementById(capaB);
	capa2 = capaAux.cloneNode(true);
	capaPadre = capaAux.parentNode;
	capaPadre.removeChild(capaAux);
	capa1.appendChild(capa2);

//	casosEfectoACapas(ef);
//	efecto[ef]();

}

function _finEfecto(n)	{
	switch(n)	{
		case 0:
		case 2:
		case 4:
		case 6:
		case 8:
		case 10:
		case 12:
		case 14:
		case 16:
		case 18:
		case 20:
		case 22:
		case 24:
			if (efectoCapa)	{
				var tempPadre1 = capa1.parentNode;
				var tempPadre2 = capa2.parentNode;
				var capaTemp1 = capa1;
				var capaTemp2 = capa2.cloneNode(true);
				tempPadre1.removeChild(capa1)
				tempPadre2.replaceChild(capaTemp1, capa2);
				tempPadre1.appendChild(capa1);
			}
			else	{
				capa1.style.backgroundColor = capa2.style.backgroundColor;
				capa1.style.backgroundImage = capa2.style.backgroundImage;
				capa1.style.left = "0px";
			}
			break;
		otherwise
			break;
	}
	transitando = false;
	if (efectoCapa)	{
		efectoCapa = false;
	}
	else
	capa1.removeChild(capa2)
}

function casosEfectoACapas(ef)	{
	switch(ef)	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 9:
		case 11:
		case 13:
		case 15:
		case 17:
		case 19:
		case 21:
			capaX = 0; capaY = 0;
			var tempPadre1 = capa1.parentNode;
			var tempPadre2 = capa2.parentNode;
			var capaTemp1 = capa1.cloneNode(true);
			var capaTemp2 = capa2.cloneNode(true);
			tempPadre1.removeChild(capa1)
			tempPadre2.replaceChild(capaTemp1, capa2);
			tempPadre1.appendChild(capaTemp2);
			break;
		case 2: // cerrar desde la izquierda
			capaX = -(pasoX * nPasos);
			capa2.style.left = capaX + "px";
			break;

		case 4: // cerrar desde la derecha
			capaX = (pasoX * nPasos);
			capa2.style.left = capaX + "px";
			break;
		case 6: // cerrar desde arriba
			capaY = -(pasoY * nPasos);
			capa2.style.top = capaY + "px";
			break;
		case 8: // cerrar desde abajo
			capaY = (pasoY * nPasos);
			capa2.style.top = capaY + "px";
			break;
		case 10:
			capaY = nPasos * pasoY;
			capa2.style.top = capaY + "px";
			capaX = nPasos * pasoX;
			capa2.style.left = capaX + "px";
			break;
		case 12:
			capaY = nPasos * pasoY;
			capa2.style.top = capaY + "px";
			capaX = -nPasos * pasoX;
			capa2.style.left = capaX + "px";
			break;
		case 14:
			capaY = -nPasos * pasoY;
			capa2.style.top = capaY + "px";
			capaX = nPasos * pasoX;
			capa2.style.left = capaX + "px";
			break;
		case 16:
			capaY = -nPasos * pasoY;
			capa2.style.top = capaY + "px";
			capaX = -nPasos * pasoX;
			capa2.style.left = capaX + "px";
			break;
		case 18:
			capaY = (alto + (alto % (pasoY * 2))) / 2;
			capa2.style.top = capaY + "px";
			capaX = (ancho + (ancho % (pasoX * 2))) / 2;
			capa2.style.left = capaX + "px";
			break;
		case 20:
			capaY = (alto + (alto % (pasoY * 2))) / 2;
			capa2.style.top = capaY + "px";
			break;
		case 22:
			capaX = (ancho + (ancho % (pasoX * 2))) / 2;
			capa2.style.left = capaX + "px";
			break;
		case 23: // fundido
			capaX = 100;
			var temp = capa1.style.backgroundImage;
			capa1.style.backgroundImage = capa2.style.backgroundImage;
			capa2.style.backgroundImage = temp;

			temp = capa1.style.backgroundColor;
			capa1.style.backgroundColor = capa2.style.backgroundColor;
			capa2.style.backgroundColor = temp;

			if (document.all)	capa2.style.filter = "alpha(opacity=100)";
			else if (esOpera)	capa2.style.OOpacity = "1";
			else			capa2.style.MozOpacity = "1";
			break;
		otherwise
			break;
	}
}

