// Fade And Swap - Orbelink
// Version 0.5


var defDelay = 5000;
var defSpeed = 20;
var idToSwap = "";
var Images = new Array();
var ImagesCount = 0;
var imageCounter = 0;

/** Cambia la opacidad para los diferentes exploradores
 * @param opacity Porcentaje de opacidad para la imagen
 * @param id El id de la image
 */
function changeOpac(opacity, id){
	var object = document.getElementById(id);
	if(typeof (object.style.filter) != 'undefined'){
		object.style.filter = 'alpha(opacity='+opacity+')';
	}
    else if(typeof object.style.MozOpacity != 'undefined') object.style.MozOpacity=opacity/100;
    else if(typeof object.style.khtmlOpacity != 'undefined') object.style.khtmlOpacity = opacity/100;
    else object.style.opacity = opacity/100;
}

function fadeAndSwapImages(theID,nextImage){
	var speed=arguments[3];
	
	if(speed==null){
		speed=defSpeed;
	}

	var timer = 0;
	for(i = 99; i >= 0; i--) { // Se utiliza 99 como la opacidad máxima para eliminar un error en mozilla
		var tid = setTimeout("changeOpac(" + i + ",'" + theID + "')",(timer * speed));
    	timer++;
    }

	var tid1 = setTimeout("document.getElementById('" + theID + "').src = '" + nextImage + "'", (timer * speed));
    timer++;
	
    for(i = 0; i <= 99; i++) {
		var tid = setTimeout("changeOpac(" + i + ",'" + theID + "')",(timer * speed));
		timer++;
    }
}

function checkImage(nombre){
	for(var temp=0 ; Nombres[temp] != null ; temp++){
		if(Images[temp]==nombre){
			return temp;
		}
	}
	return null;
}

function SetVariables(theIdToSwap){
	idToSwap = theIdToSwap;
	var speed=arguments[1];
	var delay=arguments[2];
	if(speed!=null){
		defSpeed = speed;
	}
	
	if(delay!=null){
		defDelay = delay;
	}
}

/**
 * @param imageToAdd El path relativo a la imagen que se le hara swap.
 */
function add(imageToAdd){
	Images[ImagesCount] = imageToAdd;
	ImagesCount++;
}

function startImagesSwap(){
	var currentDelay = 0;
	for(var count = 0; count < ImagesCount; count++){
		currentDelay += count * defDelay;
		var nothing2 = setTimeout("delayChangeImage()",currentDelay);
		count++;
    }
	currentDelay = count * defDelay;;
	nothig2 = setTimeout("startImagesSwap()",currentDelay);
}

function delayChangeImage(){
	imageCounter++;
	if (imageCounter == ImagesCount){
	   	imageCounter = 0;
	}
	var nextImage = Images[imageCounter];
	var nothing3 = setTimeout("fadeAndSwapImages('"+ idToSwap + "','" + nextImage + "')", defDelay);
	
}