//variaveis globais
var tempoProximaAtividade = 30000; //30s
var tempoRecarregarInformacoes = 90000; //1min:30s
var tempoRecarregarInformacoesCasoErro = 90000; //1min:30s
var tamanhoListagem = 5;
var primeiraExecucao = true;

var id = 0;
var ultimaData = "";
var atividades = [];

function carregaAtividades() {
	var params  = "action=ajaxListagemAoVivo&control={/literal}{$control}{literal}&data=" + url_encode(ultimaData);
	var opt = {
		method: 'post',
		parameters: params,
		onSuccess: function(t) {
		    var objResp = eval('(' + t.responseText + ')');
		    atividades = atividades.concat(objResp.atividades);
		    ultimaData = (objResp.atividades) ? objResp.atividades[objResp.atividades.length - 1].atributes.data : ultimaData;
		    if(primeiraExecucao) {
				listaAtividades();
				primeiraExecucao = false;
			}
			setTimeout("carregaAtividades()", tempoRecarregarInformacoes);
		},
		onFailure: function(t) {
			setTimeout('carregaAtividades()', tempoRecarregarInformacoesCasoErro)
		}
	};		
	var myAjax = new Ajax.Request("atividadesDoUsuario.php", opt);
}

function listaAtividades() {
	var texto;
	var value = atividades.shift();
	
	if(value && value.atributes.nome_usuario) {
		var atividade = value.atributes;
		var elementAntigo = null;
		var autor = "";
		
		autor = "<a href='/"+ atividade.syxt_id +"'>"+ atividade.nome_usuario +" "+ ((atividade.sobrenome != null) ? atividade.sobrenome.substr(0,1) +"." : "") +"</a> ";
		switch(atividade.tipo_atividade) {
			case 'voto':
				texto = "<img src='img/icone_voto.gif' /> <a href='topico.php?tid="+ atividade.referencia_id +"&uid="+ atividade.syxt_id +"'>"+ atividade.nome_topico +"</a> votado por "+ autor +" ";
				break;
			case 'post':
				texto = "<img src='img/icone_comentario.gif' /> <a href='topico.php?tid="+ atividade.referencia_id +"&uid="+ atividade.syxt_id +"'>"+ atividade.nome_topico +"</a> comentado por "+ autor +" ";
				break;
			case 'conteudo':
				texto = "<img src='img/icone_"+ replaceAccent(atividade.tipo) +".gif' /> <a href='topico.php?tid="+ atividade.referencia_id +"&uid="+ atividade.syxt_id +"'>"+ atividade.nome_topico +"</a> adicionado ao perfil por "+ autor +" ";
				break;
			case 'contato':
				if(atividade.id_usu_contato < atividade.usuario_id) //so mostra para um dos usuarios
					texto = "<img src='img/icone_contato.gif' /> "+ autor +" e <a href='/"+ atividade.syxt_id_contato +"'>"+ atividade.nome_usuario_contato +" "+ ((atividade.sobrenome_contato != null) ? atividade.sobrenome_contato.substr(0,1)+"." : "") +"</a> fizeram contato";
				break;
			case 'assinatura':
				texto = "<img src='img/icone_assinar.gif' /> "+ autor +" assinou o perfil de <a href='/"+ atividade.syxt_id_contato +"'>"+ atividade.nome_usuario_contato +" "+ ((atividade.sobrenome_contato != null) ? atividade.sobrenome_contato.substr(0,1)+"." : "") +"</a>";
				break;
		}
		
		//se nao tem texto (usuarios q se adicionaram e id_usu_contato > usuario_id, por exemplo), entao vai para o proximo item do vetor
		if(!texto) {
			listaAtividades();
			return;
		}
		
		//fade out no penultimo
		if(elementAntigo = $('listAoVivo_' + (id - tamanhoListagem + 1))) {
			$('td_listAoVivo_' + (id - tamanhoListagem + 1)).style['border-bottom'] = "0px";
			new Effect.Fade(elementAntigo, { duration: 1.5 });
		}
					
		//apaga o ultimo
		if(elementAntigo = $('listAoVivo_' + (id - tamanhoListagem)))
			Element.remove(elementAntigo);
			
		//insere o novo
		var elementId = 'listAoVivo_' + id;
		texto = '<tr id="'+ elementId +'" ><td id="td_'+ elementId +'" >'+ texto + '</td></tr>';
		new Insertion.Top('tabelaListaAoVivo', texto);
		new Effect.Highlight(elementId);
		
		id++;

		if(id < tamanhoListagem - 1) //para que os 4 primeiros aparecam sem intervalo de tempo entre eles
			listaAtividades();
		else		
			setTimeout("listaAtividades()", tempoProximaAtividade);
	}
	else
		setTimeout("listaAtividades()", tempoProximaAtividade); //esperando por mais atualizacoes
}
