// define variavis globais 
var rotator_interval, temponoar, activerotator_id;

// para de rotacionar as materias
function stoprotator(){
	clearInterval(rotator_interval);	 
}

// faz com que continue a rotacao das materias
function playrotator(){
	stoprotator();
	rotator_interval = setInterval("rotate('"+activerotator_id+"')",temponoar*1000);		
}

// muda para a próxima materia em clico, não foi implementada opção para retornar, bastanto ir sempre em frente
function proximaMateria(){
	rotate(activerotator_id);	
}

// funcao q inicializa o rotacionador de materias
function loadrotator(rotator_id){
	activerotator_id = rotator_id;	// armazena o id do rotator ativo no escopo global
	var rotator= document.getElementById(rotator_id); // referencia o objeto 
	var imagens= rotator.getElementsByTagName('img'); // agrupa os elementos de imagem
	var qtd_imagens = imagens.length; // contabiliza o numero de imagens
	imagens.item(0).style.zIndex = 2; // define o index z do primeiro item do grupo
	imagens.item(1).style.zIndex = 1;
	
	// define todas as imagens como escondidas menos a primeira a ser exibida
	for( var i=2; i <qtd_imagens; i++) {
		imagens.item(i).style.display = 'none'; // esconde
		imagens.item(i).style.zIndex = 0; // define o index z como 1 abaixo da que está visivel
	}
	
// tempo q cada materia fica em exibição apartir do fade 0%
	temponoar = 10; // segundos
	rotator_interval = setInterval("rotate('"+rotator_id+"')",temponoar*1000); // inicia o contador de tempo para executar a função rotate que faz o fade da imagem
	mostraMateria(imagens.item(0).id.substr(3)); // exibe texto da materia no ar
}

// rotaciona as imagens e as materias
function rotate(containerObj_id){

	var containerObj = document.getElementById(containerObj_id); // referencia o objeto q contem os dados selecionados na base

// seleciona as imagens dentro do container
	var imagens = containerObj.getElementsByTagName('img'); // agrupa os objetos de imagem

//mede a quantidade de imagens dentro do container
	var qtd_imagens = imagens.length;

// inicia variaveis 
	var old_img='', new_img='', idx='';
	
// descobre qual imagem está na frente
	for(i=0; i< qtd_imagens; i++){
		if(imagens.item(i).style.zIndex == 2){ // se zIndex 1 é imagem da frente
			old_img = imagens.item(i); // seleciona a imagem q está na frente
			idx = i; // seleciona o indice da imagem q está na frente		
		}
	}
	
// descobre se imagem atual é a ultima do container e seleciona a proxima imagem
	if(idx == (qtd_imagens-1) ) {
		new_img = imagens.item(0);
	} else {
		new_img =  imagens.item(idx+1);
	}

// define zindex "0" para as materias q nao serao exibidas nessa rodada
	for(i=0; i< qtd_imagens; i++){
		if( (imagens.item(i).id != old_img.id) && (imagens.item(i).id != new_img.id) ){ 
			imagens.item(i).style.zIndex = 0;
		}
	}

// define q a imagem nova passa para camada 1 e a imagem atual passa para a camada 0 inferior a 1
	old_img.style.zIndex = 1;
	new_img.style.zIndex = 2;
	
// define q a nova imagem deve ser exibida mas com 100% de transparencia
	new_img.style.opacity = 0;
	new_img.style.filter = 'alpha(0)';
	new_img.style.display = 'block';

// inicia o fade da imagem nova 
 	fadeIn(new_img,old_img,1); // (objtoshow,objtohid,fade_time)
	
// chama subfuncao para alterar o texto da materia
	mostraMateria(new_img.id.substr(3));
}


// funcao para fazer o esmaecimendo para mostrar a imagem/ escondendo a imagem anterior ao chegar em opcidade 100% na nova imagem
function fadeIn(objToShow, objToHide, time) {
	target = objToShow; // referencia o objeto 
	alpha = 0; // define o de transparência para o inicio do fade
	timer = ((time*1000)/50);
	// define e inicia o intervalo de tempo para realizar o fadein, armazenando-o em variavel
	var a = setInterval(  
		function() {
			if (alpha >= 100) 
				clearInterval(a);
			// chama subfunção que define a opcidade do objeto
			setAlpha(target, alpha);
			alpha += 5;
			if (alpha==0){
				objToHide.style.opacity = 0;
				objToHide.style.filter = 'alpha(opacity=0)';
				objToHide.style.display = 'none';
			}
		}  
	, timer);
}

// funcao para definir a opcaidade do objeto
function setAlpha(target, alpha) {
	target.style.filter = "alpha(opacity="+ alpha +")";
	target.style.opacity = alpha/100;
}

// funcao para exibir o conteudo de texto da matéria
function mostraMateria(id_materia){
	document.getElementById('titulo_pnoticia').innerHTML = document.getElementById('titulo'+id_materia).innerHTML;
	document.getElementById('chamada_pnoticia').innerHTML = document.getElementById('chamada'+id_materia).innerHTML;	
}