// ############# configuración ############################

// llenar la matriz Archivos con las imágenes de la secuencia en orden:
var Archivos = new Array('km2/bg_banner01.jpg', 'km2/bg_banner02.jpg', 'km2/bg_banner03.jpg', 'km2/bg_banner04.jpg', 'km2/bg_banner05.jpg', 'km2/bg_banner06.jpg');
var Intervalo = 5; // segundos de demora entre cargas de imagen
var Velocidad = 1; // duración de la transición en segundos

// ############# fin de la configuración ##################

Intervalo = 100*Intervalo;  
Velocidad = 50*Velocidad;  
var Cuadros = new Array(); // matriz de referencia de elementos <div>
var Imagenes = new Array(); // matriz de referencia de elementos <img>
var Imagen; // elemento para ir almacenando las imágenes temporales
var Puntero = new Array(); // matriz de punteros para los cuadros emergente y anterior 
var Contador=0; // variable para el contador de imágenes
var Opacidad = 0; // variable para el nivel de opacidad
var Espera=0; // variable para el controlador de demora
var RecTrans; // variable para el procedimiento recursivo de transición
var RecDemora; // variable para los procedimiento recursivo de demora

function Inicio() {
if (IPD) { // 
	Cuadros[0]=document.getElementById('Cuadro0'); // llenamos la matriz de referencia de elementos <div>
	Cuadros[1]=document.getElementById('Cuadro1');
	Imagenes[0]=document.getElementById('Imagen0'); // llenamos la matriz de referencia de elementos <img>
	Imagenes[1]=document.getElementById('Imagen1');
	Contador=1; // iniciamos el contador 
	Cuadros[1].style.display='block';
	Carga(); // disparamos el primer proceso
	}
}

function Carga() { 
Imagen=new Image;
Imagen.onload=Demora; // especificamos la rutina que se ejecutará cuando se cargue la imagen
Imagen.src=Archivos[Contador%Archivos.length];   
}

function TransMOZ() {
Puntero[0].style.MozOpacity =(5*Opacidad)/100; // incrementamos la opacidad del cuadro emergente
Puntero[1].style.MozOpacity =(100-5*Opacidad)/100; // reducimos la opacidad del cuadro anterior
Opacidad++; // incrementamos el valor de la opacidad
if (Opacidad==21) { // si hemos alcanzado el tope de opacidad...
	Opacidad=0;  // reiniciamos el valor de la opacidad
	clearInterval(RecTrans); // anulamos el procedimiento recursivo.
	if (Contador < Archivos.length) Imagenes[Contador%2].src=Archivos[Contador]; // si todavía quedan imágenes cargamos la siguiente
	}
}

function TransCSS() {
Puntero[0].style.opacity =(5*Opacidad)/100; // incrementamos la opacidad del cuadro emergente
Puntero[1].style.opacity =(100-5*Opacidad)/100; // reducimos la opacidad del cuadro anterior
Opacidad++; // incrementamos el valor de la opacidad
if (Opacidad==21) { // si hemos alcanzado el tope de opacidad...
	Opacidad=0;  // reiniciamos el valor de la opacidad
	clearInterval(RecTrans); // anulamos el procedimiento recursivo.
	if (Contador < Archivos.length) Imagenes[Contador%2].src=Archivos[Contador]; // si todavía quedan imágenes cargamos la siguiente
	}
}

function TransIE5 () {
Puntero[0].style.filter = 'alpha(opacity='+(5*Opacidad)+')';  // incrementamos la opacidad del cuadro emergente
Puntero[1].style.filter = 'alpha(opacity='+(100-5*Opacidad)+')';  // reducimos la opacidad del cuadro activo
Opacidad++; // incrementamos el valor de la opacidad
if (Opacidad==21) { // si hemos alcanzado el tope de opacidad...
	Opacidad=0;  // reiniciamos el valor de la opacidad
	clearInterval(RecTrans); // anulamos el procedimiento recursivo.
	if (Contador < Archivos.length) Imagenes[Contador%2].src=Archivos[Contador]; // si todavía quedan imágenes cargamos la siguiente
	}
}

function Demora () {
if (Espera>10) { // si la demora ha terminado...
	clearTimeout(RecDemora); // anulamos el procedimiento recursivo.
	Puntero[0]=Cuadros[Contador%2]; //referencia al cuadro emergente
	Puntero[1]=Cuadros[(Contador+1)%2]; //referencia al cuadro actual
	Espera=0; // reiniciamos el controlador de demora
	Imagenes[Contador%2].src=Imagen.src; // si todavía quedan imágenes cargamos la siguiente
	RecTrans = setInterval('TransCSS()',Velocidad); // Efecto de transición en Gecko
	Contador++; // incrementamos el contador
	Carga(); 
	}
else {
	Espera++; // seguimos esperando
	RecDemora=setTimeout('Demora()', Intervalo); // y volvemos a llamar a la función
	}
}


