/*======================================================================================
FUNCION:	oCarrusel, constructor del objeto oCarrusel
ARGS:		lista: array con las URL de las imágenes a mostrar
			tiempo: milisegundos de tiempo entre imágenes sucesivas
			cuadro: cadena con el atributo name del elemento IMG de la página
			iden:	cadena con el nombre del objeto oCarrusel
			retraso: retraso inicial para comenzar el carrusel de imágenes
RETURN:		Nada				
DESCRIP:	Esta función construye el objeto oCarrusel inicializando sus propiedades con 
			los argumentos pasados y usando procedimientos internos como la precarga de
			imágenes y la inicialización del objeto para su animación
==========================================================================================*/
function oCarrusel(lista, listapie, tiempo, cuadro, cuadropie, iden, retraso)
{
this.iden = iden;
this.tiempo = tiempo;
this.imagenes = new Array();
this.piesdefoto = new Array();
this.imgact = -1;
this.espera = null;
this.ventana = cuadro;
this.ventanapie = cuadropie;
this.precarga = oCarrusel_precarga;
this.iniciar = oCarrusel_iniciar;
this.animar = oCarrusel_animar;
this.precarga(lista, listapie);
this.espera = setInterval(this.iden+".iniciar()", retraso)
}

/*======================================================================================
FUNCION:	oCarrusel_precarga, método del objeto oCarrusel
ARGS:		lista: array con las URL de las imágenes a mostrar
RETURN:		Nada				
DESCRIP:	Crea los objetos Image y les asigna el origen
==========================================================================================*/
function oCarrusel_precarga(lista, listapie)
{
var ind;
for (ind in lista)
	{
	this.imagenes[ind] = new Image();
	this.imagenes[ind].src = lista[ind]
	this.piesdefoto[ind] = listapie[ind];
	}
}
/*======================================================================================
FUNCION:	oCarrusel_iniciar, método del objeto oCarrusel
ARGS:		Ninguno
RETURN:		Nada				
DESCRIP:	Enlaza la propiedad ventana con el elemento IMG existente en la página WEB
			inicializando al mismo tiempo la propiedad imgact para que pueda comenzar 
			la animación.
==========================================================================================*/
function oCarrusel_iniciar()
{
var obj=this;
if (document.images[obj.ventana])
	{
	clearInterval(obj.espera);
	obj.ventana = document.images[obj.ventana];
	obj.ventanapie = document.forms[obj.ventanapie];	
	obj.imgact = 0;
	}
}

/*======================================================================================
FUNCION:	oCarrusel_animar, método del objeto oCarrusel
ARGS:		arg: el objeto oCarrusel que se va a animar. La primera llamada no lleva
			argumento pues se refiere al propio objeto.
RETURN:		Nada				
DESCRIP:	Esta función va cambiando a intervalos la imagen mostrada.
			Si no existe argumento la llamada se ha realizado como método del objeto, y
			construye el argumento para la llamada mediante temporizador.
			Si existe argumento la llamada se debe al temporizador (que sólo reconoce 
			variables globales). En cualquier caso si la imgact es cero o positiva asigna
			la URL leida en la propiedad imagenes del objeto e incrementa imgact para que 
			apunte a la siguiente imagen. Este proceso se repite de forma continua. Cuando
			se alcanza la última imagen se asigna a imgact el valor 0 y vuelve a comenzar 
			el ciclo.
==========================================================================================*/
function oCarrusel_animar(arg)
{
var presentar;
if (!arg)
	arg=this.iden;
presentar = eval(arg);
var sigte = presentar.tiempo;
if (presentar.imgact > -1) 
	{
		presentar.ventana.style.filter="blendTrans(duration=1)";
		presentar.ventana.filters.blendTrans.Apply();
		presentar.ventana.filters.blendTrans.Play();
/*	if (document.all)
	{
		presentar.ventana.style.filter="blendTrans(duration=1)";
		presentar.ventana.filters.blendTrans.Apply();
	}
	if (document.all)
	{
		presentar.ventana.filters.blendTrans.Play();
	}*/
	presentar.ventana.src = presentar.imagenes[presentar.imgact].src;
	document.formulario.piefoto.value = presentar.piesdefoto[presentar.imgact];
	presentar.imgact++;
	if (presentar.imgact >= presentar.imagenes.length)
		presentar.imgact=0;
	}	
setTimeout(arg+".animar('"+ arg +"')", sigte)
}




