// ChileUS.org
// by Daniel Koch (daniel at danielkoch com.br)


// guarda o nome do id do elemento a
// guarda o elemento img dentro do a
var elemento_ativo = new Array(2);

// retorna o div interno dentro do li
function pegaDiv(elemento_id) {
	return document.getElementById(elemento_id + "_area");	
}

// coloca display:block na div escondida
function mostraDiv(elemento_id) {
	div = pegaDiv(elemento_id);
	div.style.display = "block";
}

// coloca display:hidden na div exibida
function escondeDiv(elemento_id) {
	div = pegaDiv(elemento_id);
	div.style.display = "none";
}

// funcao acionada quando o usuario clica em algum link do menu
function menuClick(elemento_id) {
	// pega o elemento enviado por parametro
	elemento = document.getElementById(elemento_id);
	
	// pega o primeiro elemento img dentro do elemento a
	elemento_img = elemento.getElementsByTagName("img")[0];	
	
	// se nao existir, nao faça nada.
	if(!elemento_img) return;
	
	// chama funcao de ativacao de elemento
	ativaElemento(elemento_id, elemento_img);
	
}

function desativaElemento() {	
	if(!elemento_ativo[0]) {
		return;
	}
	
	// fecha o div
	escondeDiv(elemento_ativo[0]);	
	
	// retira o _active no final do nome de arquivo
	old_elemento_img = elemento_ativo[1];
	old_elemento_img.src = old_elemento_img.src.replace(/_active.jpg/, ".jpg");	
	
	// reseta flag
	elemento_ativo = new Array(2);
}


// ativa o elemento que for passado por argumento
// ja chama a funcao desativaElemento()
function ativaElemento(elemento_id, elemento_img) {
	
	
	// se for o mesmo elemento, desativa e retorna
	if(elemento_ativo[0] && elemento_ativo[0] == elemento_id) {
		desativaElemento();
		return;		
	} else {	
		// desativa o ultimo ativo limpando o flag
		desativaElemento();
	}
	
	// guarda os parametros enviados
	elemento_ativo[0] = elemento_id;
	elemento_ativo[1] = elemento_img;
	
	// coloca _active no final do nome de arquivo
	elemento_img.src = elemento_img.src.replace(/.jpg/, "_active.jpg");
	
	// mostra o div
	mostraDiv(elemento_ativo[0]);		
}

// meu marquee
var marquee_div,
	marquee_p,
	marquee_div_width,
	marquee_loop_index,
	marquee_loop_interval;

function marquee_p_tamanho() {
	var tamanho = 0;
	for(i = 0; i < marquee_p.length; i++) {
		tamanho += marquee_p[i].innerHTML.length;
	}
	tamanho *= 4;
	return tamanho;
}

function marquee_populate() {
	// pega o tamanho do primeiro p, se for menor que 
	// o tamanho do div news_bar, entao duplicamos ele

	while(marquee_p_tamanho() < marquee_div_width) {
		var novo_p = marquee_p[0].cloneNode(true);
		
		
		marquee_div.appendChild(novo_p);		
	}
}

function marquee_loop() {
	// se o tamanho do deslocamento for menor ou igual ao tamanho do p[0]
	tamanho = marquee_p[0].innerHTML.length * 4;
	
	marquee_loop_index -= 2;
	marquee_p[0].style.marginLeft = marquee_loop_index + "px";
	
	// i e o tamanho do deslocamento em pixel
	if(marquee_loop_index <= tamanho*-1) {
		// remove o primeiro p
		marquee_div.removeChild(marquee_p[0]);
		marquee_loop_index = 0;
		
		// preenche com mais
		marquee_populate();
	}	
}

function marquee_pause() {
	clearInterval(marquee_loop_interval);
}

function marquee_continue() {
	marquee_loop_interval = setInterval("marquee_loop()", 30);
	
}

function marquee_init() {
	// setando referencias dos elementos
	marquee_div = document.getElementById('news_bar');
	
	// se for uma interna, nao tem marquee_div
	if(!marquee_div) return;	
	
	marquee_p = marquee_div.getElementsByTagName('p');
	marquee_div_width = 680;// valor em pixel do div principal	
	marquee_loop_index = 0;
	
	// checa se tem texto de noticia, se nao tiver retorna
	if(marquee_p.length < 1) { return; };
	
	// populando o div
	marquee_populate();
	
	// inicinado o loop de deslocamento
	marquee_loop_interval = setInterval("marquee_loop()", 30);
	
	// aplicando pause e continue nos mouseovers
	marquee_div.onmouseover = marquee_pause;
	marquee_div.onmouseout = marquee_continue;
	
}

// inicia tudo
window.onload = function() {
	// inicia o marquee
	//marquee_init();
	
	// ativa o menu links
	menuClick("menu_home_02");
}

// paginacao
function paginacao(elemento_nome, pagina) {
	// pega os elementos
	elemento = document.getElementById(elemento_nome);
	formulario = elemento.parentNode;
	
	// checa se o elemento existe
	if(elemento.value == '') {
		elemento.value = 0;
	}
	// calcula o valor da nova pagina
	nova_pagina = parseInt(elemento.value) + parseInt(pagina);
	
	// checa e atribui somente se for >= a 0
	if(nova_pagina >= 0) {
		elemento.value = nova_pagina;
	}
	
	// envia
	formulario.submit();	
}

// pega feeds
function pega_feeds(language_key) {
	new Ajax.Updater('news_bar', '../lib/pega_feeds.php?language_key=' + language_key, {onComplete: function(){ marquee_init();} });	
}