var slideActual = new Array();
var array_original = new Array();
var opacidadSlide = new Array();
var timer = new Array();

function showSlide(id){ $(id).fade('in') }
function hiddenSlide(id){ $(id).fade('out') }

function num_aleatorio(inferior,superior){
	numPosibilidades = superior - inferior
	aleat = Math.random() * numPosibilidades
	aleat = Math.round(aleat)
	return parseInt(inferior) + aleat
} 

function dar_aleotoriedad(array){
	//creamos array_original y  que es igual que array
	for (i=0;i<array.length;i++){ array_original[i]=array[i]; }
	//recordamos que el ultimo debe ser el 1º y lo demás aleatorio
	array[0]=array_original[array.length-1];
	array_original.splice (array.length-1,1); 
	for (i=1;i<array.length;i++){
		aleatorio = num_aleatorio(0,(array_original.length)-1); //aleatorio entre 0 y el largo del array
		array[i]=array_original[aleatorio]; //cambiamos el array que recorreremos
		array_original.splice (aleatorio,1); //eliminamos el elemento seleccionado al array_original para no repitir 
	}
	//restablecemos array_original y reordenamos array
	for (i=0;i<array.length;i++){
		document.getElementById(array[i]).style.zIndex=array.length-i;
		showSlide(array[i]);
	}
	return array
}

function vuelta_array(array){
	//creamos array_original y  que es igual que array
	for (i=0;i<array.length;i++){ array_original[i]=array[i]; }
	//recordamos que el ultimo debe ser el 1º y luego repetimos la misma cadena
	for (i=0;i<array.length;i++){
		if(i==0){ array[i]=array_original[array.length-1]; }
		else{ array[i]=array_original[i-1]; }
	}
	//restablecemos array_original y reordenamos array
	for (i=0;i<array.length;i++){
		document.getElementById(array[i]).style.zIndex=array.length-i;
		showSlide(array[i]);
	}
	return array
}

function carrusel(array, id, intervalo, aleotoriedad){
	slideActual[id]=0; opacidadSlide[id]=1; intervalo=intervalo*1000;
	//asignamos z-index según posicionamiento array
	for (i=0;i<array.length;i++){ document.getElementById(array[i]).style.zIndex=array.length-i; }
	//si queremos aleatoriedad
	if(aleotoriedad =='A' && array.length>2){ array=dar_aleotoriedad(array); }
	
	//CADA INTERVALO APLICAMOS FUNCION DENTRO DEL SETINTERVAL
	timer[id] = setInterval(function(){
		//cuando hagamos un ciclo reinicimos slideActual
		if (slideActual[id] == array.length-1){ slideActual[id] = 0; opacidadSlide[id]++; }
		//hidden o show - con opacidadSlide sabemos si todas las capas están ocultas o visibles
		resto = opacidadSlide[id] % 2;
		//si resto es 0 todo esta oculto así que empezamos de nuevo
		if (resto == 0){
			//si queremos aleatoriedad, volvemos a recolocar array y colocación capas
			if(aleotoriedad =='A' && array.length>2){ array=dar_aleotoriedad(array); ; }
			else { array=vuelta_array(array); }
			opacidadSlide[id]=1;
		}
		//alert('Antes '+id+'  '+array[slideActual[id]]);
		hiddenSlide(array[slideActual[id]]);
		slideActual[id]++;
		//alert('Despues '+id+' '+array[slideActual[id]]);
	}, intervalo);
}