/************* Constantes ***************/
var STEP = 2;					// De quanto em quanto o alpha será alterado (0 - 100)
var DELAY_STEP = 10;			// De quanto em quanto tempo será trocado o alpha na transição de destaques
var DELAY = 4000;				// Qual a espera antes de trocar de destaque

/************* Variáveis ****************/
var indexOut = 0;				// Index do destaque a sair ou saindo
var indexIn = 1;				// Index do destaque a entrar ou entrando
var canPause = true;			// Caso o usuário clique em Pausar mas a animação está em andamento
var paused = false;				// Se os slides estão pausados

var inOpacity = 0;				// Opacidade do destaque entrando
var outOpacity = 99;			// Opacidade do destaque saindo

var destaques;					// Array de destaque
var changeable;					// Existe mais de um destaque e pode ter animação?

var timerDestaques;				// Timer da janela.


function nextDestaque(){
	if(!changeable)
		return;

	clearTimeout(timerDestaques);
	faderDestaque();
}


function previousDestaque(){
	if(!changeable)
		return;

	if(canPause){
		clearTimeout(timerDestaques);

		indexIn = indexOut - 1;
		if(indexIn < 0)
			indexIn = destaques.length - 1;

		faderDestaque();
	}
}


function goTo(index){
	if((indexIn - 1 != index && indexIn != 0) || (indexIn == 0 && index != destaques.length - 1)){
		indexIn = index;
		faderDestaque();
	}

}

function faderDestaque(){
	if(!changeable)
		return;

	clearTimeout(timerDestaques);

	canPause = false;

	inOpacity += STEP;
	outOpacity -= STEP;

	if(document.all) {
		destaques[indexOut].style.filter = "alpha(opacity=" + outOpacity + ")";
		destaques[indexIn].style.filter = "alpha(opacity=" + inOpacity + ")";
	} else {
		destaques[indexOut].style.MozOpacity = outOpacity/100;
		destaques[indexIn].style.MozOpacity = inOpacity/100;
	}


	if(inOpacity >= 98){
		destaques[indexIn].style.zIndex = 99;
		destaques[indexOut].style.zIndex = 0;
	}

	timerDestaques = setTimeout("faderDestaque()",DELAY_STEP);

	if(outOpacity <= 0){
		resetDestaques();
	}


}

function resetDestaques(){
	if(!changeable)
		return;

	clearTimeout(timerDestaques);
	inOpacity = 0;
	outOpacity = 99;

	document.getElementById("indice" + (indexIn+1)).style.color = "white";
	document.getElementById("indice" + (indexOut+1)).style.color = "#333333";

	indexOut = indexIn;

	indexIn = indexOut + 1;
	if(indexIn >= destaques.length)
		indexIn = 0;

	canPause = true;

	if(!paused)
		timerDestaques = setTimeout("faderDestaque()",DELAY);
}

function playPause(obj){
	if(!changeable)
		return;
	if(canPause){
		if(!paused){
			obj.src = "/img/bt_pause_on.gif";
			clearTimeout(timerDestaques);
		}
		else{
			obj.src = "/img/bt_pause_off.gif";
			timerDestaques = setTimeout("faderDestaque()", DELAY);
		}
	}
	paused = !paused;
}

function beginDestaques(){
	destaques = document.getElementsByName("textoGiratorio");
	changeable = destaques.length > 0;

	if(changeable){
		destaques[0].style.display = "block";
		destaques[0].style.zIndex = 99;

		for (i = 0; i < destaques.length; i++){
			var opacity = 99;
			if(i > 0){
				opacity = 0;
				destaques[i].style.zIndex = 0;
			}

			if(document.all) {
				destaques[i].style.filter = "alpha(opacity=" + opacity + ")";
			} else {
				destaques[i].style.MozOpacity = opacity/100;
			}
			destaques[i].style.display = "block";
			destaques[i].style.width = "100%";
		}

		timerDestaques = setTimeout("faderDestaque()", DELAY);
	}
}

function adicionarEventoA(objeto, TipoEvento, funcao){
	if(objeto.addEventListener){ // todos navegadores menos IE
		objeto.addEventListener(TipoEvento, funcao, false);
		return true;
	} else if (objeto.attachEvent){ // IE
		var r = objeto.attachEvent('on'+TipoEvento, funcao);
		return r;
	} else {
		return false;
	}
}

adicionarEventoA(window, 'load', beginDestaques);
