/*======================================================================================
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, tiempo, cuadro, iden, retraso)
{
this.iden = iden;
this.tiempo = tiempo;
this.imagenes = new Array();
this.imgact = 0;
this.espera = null;
this.ventana = cuadro;
this.precarga = oCarrusel_precarga;
this.iniciar = oCarrusel_iniciar;
this.animar = oCarrusel_animar;
this.precarga(lista);
this.espera = setInterval(this.iden+".iniciar()", retraso+1)
}
/*======================================================================================
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)
{
var ind;
for (ind in lista)
	{
	this.imagenes[ind] = new Image();
	this.imagenes[ind].src = lista[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.imgact = 1;
	}
}
/*======================================================================================
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) 
	{
	//El siguiente codigo realiza el opacamiento de la imagen
	presentar.ventana.src = presentar.imagenes[presentar.imgact].src;
	
	presentar.imgact++;
	
	if (presentar.imgact >= presentar.imagenes.length)
		presentar.imgact=0;
	}	
	setTimeout("opaca('" +arg + "')", sigte);
}

//Funcion agregada para realizar la animacion de opacar la imagen
function opaca(arg){
	//alert("entre");
	var speed = Math.round(400 / 100);
	var timer = 0;
	if(arg.imgact!=0){
	
		for(i = 100; i >= 20; i--) { 
				setTimeout("changeOpac(" + i + ",'" + arg +"')",(timer * speed)); 
				timer++; 
		}
		
		for(i = 20; i <= 100; i++) { 
            setTimeout("changeOpac(" + i + ",'" + arg +"')",(timer * speed)); 
            timer++; 
        }
	//alert("ya pase");
		setTimeout(arg+".animar('"+ arg +"')", 300);
	}
}

//change the opacity for different browsers 
function changeOpac(opacity,arg) { 
	
    var object = $('cuadro1').style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")";
	
}


