/******************************************************************************
*Funções específicas para o site do Virtual Bolão, o Maior Bolão do Brasil		
*					- - http://www.virtualbolao.com - -													*
*																																				*
*				Desenvolvido por Estevão Rocha														*
*				Contato: adm@virtualbolao.com														*
*																																				*
*						|ô ¿ ô|																					*
*														 ~																						*
*******************************************************************************/

/*****************
 FCK
*****************/
function FCKeditor_OnComplete(editorInstance){
  editorInstance.Events.AttachEvent('OnSelectionChange', doSomething);
  editorInstance.Events.AttachEvent('OnBlur', doSomething);
}
function doSomething(editorInstance){
  var oEditor = FCKeditorAPI.GetInstance(editorInstance.Name);
  $(editorInstance.Name).value = oEditor.GetXHTML(true);
}
function getFCK(id) {
  var oEditor = FCKeditorAPI.GetInstance(id);
  return oEditor;
}

function trim(str){ //Função TRIM para Javascript
	return str.replace(/^\s+|\s+$/g,"");
}

// Define tipo de bolão e redireciona para link adequado
function defineTipo(link,id,alias){
	url = 'define_tipo.php';
	pars = 'link='+link;

	var myAjax = new Ajax.Request(url, { method: 'post', 
												parameters: pars, 
												onComplete: requestDefineTipo
											});
}

function requestDefineTipo(req){
	if (req.readyState == 4 && req.status == 200) {
		var link = req.responseText.split("-");
		if (parseInt(link[0]) == 1 || parseInt(link[0]) == 6)
			window.location = link[1]+'_ptscorridos.php';
		else if (parseInt(link[0]) == 2 || parseInt(link[0]) == 3)
			window.location = link[1]+'_mata.php';
		else if (parseInt(link[0]) == 4 || parseInt(link[0]) == 5)
			window.location = link[1]+'_grupo.php';
		else{
			alert("Não há bolão em andamento.\nAssim que o campeonato começar está seção estará ativa.");
			window.location = 'index.php';
		}
	}
}

/*************************
		Muda Classe CSS
*************************/
function changeClass(item, cl){
	item.className = cl;
}

function changeClassRodada(item, rod, ex){
	for(var i=1;i<=rod;i++)
			$('rod_'+i).className = 'cab';

	//if(ex == 0)
		//$('fase_final').className = 'cab';

	item.className = 'cabfoco';
}

function changeClassGrupo(item,g,ex){
	for(var i=1;i<=g;i++)
			$('g_'+i).className = 'cab';

	if(ex == 0)
		$('fase_final').className = 'cab';

	item.className = 'cabfoco';
}

function troca_faixas(fx){
	//esconde todas as faixas primeiro
	$('sub_faixa_inicio').hide();
	$('sub_faixa_interacao').hide();
	$('sub_faixa_tabelas').hide();
	$('sub_faixa_listagens').hide();
	$('sub_faixa_ajuda').hide();

	//mostra a faixa correta
	$(fx).show();
}

function login_top(form){
	frm = form.elements;
 
	if(trim(frm.apelido_top.value) == '' || trim(frm.senha_top.value) == ''){
		alert('Preencha APELIDO e SENHA!');
	} else {
		var login = trim(frm.apelido_top.value.toUpperCase());
		var senha = trim(frm.senha_top.value);

		var url = 'checa_login.php';
		var pars = 'alias='+login+'&pass='+senha;

		var myAjax = new Ajax.Request(url, { method: 'get', 
															parameters: pars, 
															onComplete: requestLogin_top
														});
	}
}
	
function requestLogin_top(req){
	if (req.readyState == 4 && req.status == 200) {	
		if (req.responseText == 1){ //Sucesso no login
			window.location = 'cpanel.php';
		} else {
			alert(req.responseText);
		}
	}
}

/*******************************
Bloqueia / Desbloqueia Palpites
*******************************/
function blockUnblock_palpites(a){
	if (!confirm("Tem certeza que deseja alterar esse status?")){
		window.location = 'cpanel.php';
		return;
	}
	url = 'blockUnblock_palpites.php';
	pars = 'atual='+a;
	var myAjax = new Ajax.Request(url, { method: 'post', 
												parameters: pars, 
												onComplete: requestBlockUnblock_palpites
											});
}

function requestBlockUnblock_palpites(req){
	if (req.readyState == 4 && req.status == 200) {
		alert("Status dos palpites alterado com sucesso!");
		window.location = 'cpanel.php';
	}
}

/*******************************
Apaga Log de Palpites - CPANEL
*******************************/
function delete_log(){
	if (!confirm("Tem certeza que deseja apagar o log?")){
		window.location = 'cpanel.php';
		return;
	}
	url = 'del_log.php';
	var myAjax = new Ajax.Request(url, { method: 'post',  
												onComplete: requestDelete_log
											});
}

function requestDelete_log(req){
	if (req.readyState == 4 && req.status == 200) {
		alert("Log apagado com sucesso!");
		window.location = 'cpanel.php';
	}
}

//Envia data e hora para bloqueio automatico dos palpites
function process_data_bloqueio(dia,hora){
	url = 'process_data_bloqueio.php';
	pars = 'd='+dia+'&h='+hora;

	var myAjax = new Ajax.Request(url, { method: 'post', 
											parameters: pars, 
											onComplete: requestProcess_data_bloqueio
										});
}

function requestProcess_data_bloqueio(req){
	if (req.readyState == 4 && req.status == 200) {
		alert(req.responseText);
	}
}

/***************************
Confirma Inativação de Jogador
****************************/
function inactiveConfirm(idJog){
	
	$('loadMsg').style.display = 'block'; //carregando
	$('bottom-bar').style.display = 'none';
	$('formAdm').style.borderBottom = 'solid 1px #060';
	url = 'inativar_jogador.php';
	pars = 'jog='+idJog;
	var myAjax = new Ajax.Request(url, { method: 'post', 
														parameters: pars, 
														onComplete: requestInactiveConfirm
													});
}

function requestInactiveConfirm(req){	
	//alert(req.responseText);
	if (req.readyState == 4 && req.status == 200) {
		$('loadMsg').style.display = 'none';
		$('bottom-bar').style.display = 'inline';
		var resp = req.responseText;
		$('nao').disabled = true;
		$('sim').disabled = true;
		alert('Jogador Inativado!');
		//$('statusDep').innerHTML = '';
	}
}

//Busca de jogadores na seção ADM
function buscaJogador(opt, valor){

	url= 'busca_jogador.php';
	pars = 'optBusca='+opt+'&txtBusca='+valor;

	var myAjax = new Ajax.Request(url, { method: 'post', 
											parameters: pars,
											onComplete:requestBuscaJogador
											});
}

function requestBuscaJogador(req){
	//alert(req.responseText);
	if (req.readyState == 4 && req.status == 200){
		if(req.responseText == '0')
			alert('Sua busca não retornou nenhum resultado.');
		else
			window.location = 'jogadores.php?acao=editar&id='+req.responseText;
	}
}

//inativa no relatório
function inactivePlayer(idJog){
	$('loadMsg').show();
	url = 'inativar_jogador.php';
	pars = 'jog='+idJog;
	var myAjax = new Ajax.Request(url, { method: 'post', 
												parameters: pars, 
												onComplete: requestInactivePlayer
											});
}

function requestInactivePlayer(req){	
	//alert(req.responseText);
	if (req.readyState == 4 && req.status == 200) {
		$('loadMsg').hide();
		alert('Jogador Inativado!');
	}
}

/***************************
	Confirmação de Depósito
****************************/
function cashConfirm(idJog, idInd){
	
	$('loadMsg').style.display = 'block'; //carregando
	$('bottom-bar').style.display = 'none';
	$('formAdm').style.borderBottom = 'solid 1px #060';
	url = 'confirma_deposito.php';
	pars = 'jog='+idJog+'&ind='+idInd;
	var myAjax = new Ajax.Request(url, { method: 'post', 
														parameters: pars, 
														onComplete: requestCashConfirm
													});
}

function requestCashConfirm(req){	
	//alert(req.responseText);
	if (req.readyState == 4 && req.status == 200) {
		$('loadMsg').style.display = 'none';
		$('bottom-bar').style.display = 'inline';
		var resp = req.responseText;
		$('depSim').disabled = true;
		alert('Depósito confirmado!');
		if (resp != '0')
			alert('O indicador deste jogador está com '+resp+' indicação(ões).');
		$('statusDep').innerHTML = '';
	}
}

//paginação - lista
function pagination(pag,sec,full){
	if (!pag) {
		pag = 1;
	}
	$('page').value = pag;

	url = sec+'_lista.php';
	pars = 'pagina='+pag+'&acesso='+full;
	var myAjax = new Ajax.Request(url, { method: 'post', 
														asynchronous: false,
														parameters: pars, 
														onComplete: requestPagination
													});
}

function requestPagination(req){
	if (req.responseText == 0) {
		$('listagem').innerHTML = '<br />Não há registros no momento.<br /><br />';
	} else {
		$('listagem').innerHTML = req.responseText;
	}
}

/***************************
 Formulário Jogadores/Clubes...
			Submeter
***************************/
function checkSubmit(frm){
	//quantidade de elementos no form
	var qtd = frm.elements.length;
	
	for(var i=0; i<qtd; i++){
		field = frm.elements[i];
		switch (field.name){
		case('idJog'):
			if (field.value == '') {
				alert('É necessário escolher um jogador na lista');
				return false;
			}
			break;
		case ('nome'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','nome');
				field.focus();
				return false;
			}
			break;
		case ('email'):
			if (field.value == ''){
				showAlertError('Necessário Informar: ','e-mail');
				field.focus();
				return false;
			} else if (!checkMail(field.value)) {
				showAlertError('Inválido: ','e-mail');
				field.focus();
				field.select();
				return false;
			} 
			break;
		case ('alias'):
			if(field.value == ''){
				showAlertError('Necessário Informar: ','apelido');
				field.focus();
				return false;
			} else if (field.value.length < 3) 	{
				showAlertError('Nº de caracteres insuficientes: ','apelido');
				field.focus();
				return false;
			}
			break;
		case ('cidade'):
			if(field.value == ''){
				showAlertError('Necessário Informar: ','cidade');
				field.focus();
				return false;
			}
			break;
		case ('uf'):
			if(field.value == 0){
				showAlertError('Necessário Informar: ','uf');
				field.focus();
				return false;
			}
			break;
		case ('grupo'):
			if(field.value == -1){
				showAlertError('Necessário Informar: ','grupo');
				field.focus();
				return false;
			}
			break;
		case ('pais'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','País');
				field.focus();
				return false;
			}
			break;
		case ('mandante'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Clube mandante');
				return false;
			}
			break;
		case ('visitante'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Clube visitante');
				return false;
			}
			break;
		case ('dia'):
			if (frm.name != 'frmNot')	{
				if (field.value == '') {
					showAlertError('Necessário Informar: ','Data');
					field.focus();
					return false;
				}
			}
			break;
		case ('tipoEsc'):
			if ($('w').checked) { //Nome da imagem
				if ($('write').value == ''){
					showAlertError('Necessário Informar: ','Nome da imagem');
					$('write').focus();
					return false;
				}
			} else { //Upload
				if ($('up').value == ''){
					showAlertError('Necessário Informar: ','Arquivo para Upload');
					$('up').focus();
					return false;
				}
				if (!checkFile($('up').value)) { //extensões
					showAlertError('Tipo de imagem inválida. Formatos válidos: ','gif, jpg, png, bmp');
					$('up').focus();
					return false;
				}
			}
				break;
		//Campeonato
		case ('ano'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Ano do campeonato');
				field.focus();
				return false;
			}
			break;
		case ('qtdClubes'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Quantidade de clubes');
				field.focus();
				return false;
			} else if (field.value == "0") {
				showAlertError('Valor precisa ser maior do que 0 (zero): ','Quantidade de clubes');
				field.focus();
				return false;
			}
			break;
		//Notícias
		case ('titulo'):
			if(field.value == ''){
				showAlertError('Necessário Informar: ','título');
				field.focus();
				return false;
			}
			break;
		case ('texto'):
			var texto = getFCK('texto');
			if(texto.GetHTML() == ''){
				showAlertError('Necessário Informar: ','texto');
				texto.EditorWindow.focus()
				return false;
			}
			break;
		// Enquetes
		case ('pergunta'):
			if(field.value == ''){
				showAlertError('Necessário Informar: ','pergunta');
				field.focus();
				return false;
			}
			break;
		case ('opcao_1'):
			if($('idEnquete').value == '') {
				if(field.value == '' || !$('opcao_2')){
					showAlertError('Necessário Informar pelo menos: ','Opções 1 e 2');
					field.focus();
					return false;
				}
			}
			break;
		case ('opcao_2'):			
			if($('idEnquete').value == '') {
				if(field.value == ''){
					showAlertError('Necessário Informar pelo menos: ','Opções 1 e 2');
					field.focus();
					return false;
				}
			}
			break;
		} //switch
	} //for

	if (confirm('Clique em OK para confirmar a gravação.')){
		document.getElementById(frm.name).submit();
	}
}

function showAlertError(erro,campo,extra){
	alert('Atenção »» '+erro+campo.toUpperCase());
}

//Checa extensões de arquivo para upload
function checkFile(file){
	var bar = new RegExp('[\\\\,/]') 
	if(file.search(bar) == -1) //não achou a barra = caminho inválido
		return false;

	var arq = file.split('\\'); //transforma caminho em array
	arquivo = arq[arq.length-1]; //pega o último elemento do array = nome do arquivo + extensão

	var ext = arquivo.substring(arquivo.length-3,arquivo.length); //somente extensão
	
	if (ext != 'gif' && ext != 'jpg' && ext != 'png' && ext != 'bmp'){
		return false
	}

	return true;	
}

// JOGOS - PTS CORRIDOS / HÍBRIDO
function show_rodadas(rod,jr,ex){
	url = 'jogos_ptscorridos_rodadas.php';

	if (rod == 0){ //hibrido
		pars = 'rodada='+rod+'&jogos_rod='+jr+'&extra='+ex;
		$('extra').value = ex;
	} else { 
		pars = 'rodada='+rod+'&jogos_rod='+jr;
		$('extra').value = '0';
	}

	var myAjax = new Ajax.Request(url, { method: 'post', 
														asynchronous: false,
														parameters: pars, 
														onComplete: requestShow_rodadas
													});
}

function requestShow_rodadas(req){
	//alert(req.responseText);
	if (req.responseText == 0) {
		$('listagem_rod').innerHTML = '<br />Não há registros no momento.<br /><br />';
	} else {
		$('listagem_rod').innerHTML = req.responseText;
	}
}

function submit_jogos(frm,jr,tip){
	$('loadMsg').innerHTML = '<img src="../../arquivos/layout/spinner.gif" border="0" /><br />Salvando os registros.<br />Aguarde.';
	$('loadMsg').show();

	if($('extra').value != 0) //se forem jogos da fase final
		jr = $('extra').value;

	if (tip != 3){ //desde q não seja TIPO = mata-mata
		var qtd = frm.elements.length; //quantidade de elementos no form
		var reg = qtd/jr; //acha o número de campos do formulário em cada linha
	
		ids = '';
		for(var i=0;i<qtd;i+=reg){
			nome = frm.elements[i].name;
			n = nome.split('_');
			ids += n[1]+',';
		}
	}
	
	if (tip == 1){ //pontos corridos/híbrido
		url = 'jogos_ptscorridos_save.php?nomes='+ids+'&jrod='+jr;
	} else if (tip == 2){ //grupos
		url = 'jogos_grupo_save.php?nomes='+ids+'&jg='+jr;
	} else if (tip == 3){ //mata-mata
		url = 'jogos_mata_save.php';
	}
	
	var myAjax = new Ajax.Request(url, { method: 'post', 
													parameters: $('frmJogos').serialize(true), //passa os dados do form
													onComplete:requestSubmit_jogos
													});
}

function requestSubmit_jogos(req){
	//alert(req.responseText);
	if (req.readyState == 4 && req.status == 200) {
		$('loadMsg').hide();
		alert('Jogos salvos com sucesso!');
	}

	//if(req.responseText)
		//window.location = 'jogos_mata.php';
}


function repeatDate(nome){
	if ($('dia_'+nome).value == ''){
		alert('Preencha a DATA!');
	} else {
		$('diaexibe_'+nome).value = $('dia_'+nome).value;
	}
}


// PALPITES - PTS CORRIDOS / HÍBRIDO
function show_rodadas_palpites(rod,jr,ex){
	url = 'palpites_ptscorridos_rodadas.php';

	if (rod == 0){ //hibrido
		pars = 'rodada='+rod+'&jogos_rod='+jr+'&extra='+ex;
		$('extra').value = ex;
	} else { 
		pars = 'rodada='+rod+'&jogos_rod='+jr;
		$('extra').value = '0';
	}

	var myAjax = new Ajax.Request(url, { method: 'post', 
														asynchronous: false,
														parameters: pars, 
														onComplete: requestShow_rodadas_palpites
													});
}

function requestShow_rodadas_palpites(req){
	//alert(req.responseText);
	if (req.responseText == 0) {
		$('listagem_rod_palpites').innerHTML = '<br />Não há registros no momento.<br /><br />';
	} else {
		$('listagem_rod_palpites').innerHTML = req.responseText;
	}
}



// JOGOS - GRUPOS
function show_grupos(g,jg,ex){
	url = 'jogos_grupo_grupos.php';

	if (g == 0){ //fase final
		pars = 'grupo='+g+'&jogos_grupo='+jg+'&extra='+ex;
		$('extra').value = ex;
	} else { 
		pars = 'grupo='+g+'&jogos_grupo='+jg;
		$('extra').value = '0';
	}

	var myAjax = new Ajax.Request(url, { method: 'post', 
														asynchronous: false,
														parameters: pars, 
														onComplete: requestShow_grupos
													});
}

// PALPITES - GRUPOS
function show_grupos_palpites(gr,jg,ex){
	$('loadMsg').innerHTML = '<img src="../arquivos/layout/spinner.gif" border="0" /><br />Carregando...';
	$('loadMsg').show();

	url = 'palpites_grupo_grupos.php';

	if (gr == 0){ //hibrido
		pars = 'rodada='+gr+'&jogos_rod='+jg+'&extra='+ex;
		$('extra').value = ex;
	} else { 
		var letter = change_num_letter(gr);
		pars = 'rodada='+gr+'&jogos_rod='+jg+'&letra='+letter;
		$('extra').value = '0';
	}

	var myAjax = new Ajax.Request(url, { method: 'post', 
												asynchronous: false,
												parameters: pars, 
												onComplete: requestShow_rodadas_palpites
											});
}


function requestShow_rodadas_palpites(req){
	//alert(req.responseText);
	if (req.responseText == 0) {
		$('listagem_rod_palpites').innerHTML = '<br />Não há registros no momento.<br /><br />';
	} else {
		$('listagem_rod_palpites').innerHTML = req.responseText;
		$('loadMsg').hide();
	}
}

function change_num_letter(num){
	var arrLetraNumeros = new Array(); 
	arrLetraNumeros[1] = 'A'; 
	arrLetraNumeros[2] = 'B'; 
	arrLetraNumeros[3] = 'C'; 
	arrLetraNumeros[4] = 'D'; 
	arrLetraNumeros[5] = 'E'; 
	arrLetraNumeros[6] = 'F'; 
	arrLetraNumeros[7] = 'G'; 
	arrLetraNumeros[8] = 'H'; 
	arrLetraNumeros[9] = 'I'; 
	arrLetraNumeros[10] = 'J'; 
	
	return arrLetraNumeros[num];
}


function requestShow_grupos(req){
	//alert(req.responseText);
	if (req.responseText == 0) {
		$('listagem_rod').innerHTML = '<br />Não há registros no momento.<br /><br />';
	} else {
		$('listagem_rod').innerHTML = req.responseText;
	}
}

//JOGOS - MATA-MATA
function show_mata_mata(){
	url = 'jogos_mata_lista.php';

	var myAjax = new Ajax.Request(url, { method: 'post', 
														asynchronous: false,
														//parameters: pars, 
														onComplete: requestShow_mata_mata
													});
}

function requestShow_mata_mata(req){
	//alert(req.responseText);
	if (req.responseText == 0) {
		$('listagem_rod').innerHTML = '<br />Não há registros no momento.<br /><br />';
	} else {
		$('listagem_rod').innerHTML = req.responseText;
	}
}


//PALPITES - MATA-MATA
function show_mata_mata_palpites(tip, qtd){
	pars = 'tip='+tip+'&qtdClubes='+qtd;
	url = 'palpites_mata_lista.php';

	var myAjax = new Ajax.Request(url, { method: 'post', 
												asynchronous: false, 
												parameters: pars,
												onComplete: requestShow_mata_mata_palpites
											});
}

function requestShow_mata_mata_palpites(req){
	//alert(req.responseText);
	if (req.responseText == 0) {
		$('listagem_rod_palpites').innerHTML = '<br />Não há registros no momento.<br /><br />';
	} else {
		$('listagem_rod_palpites').innerHTML = req.responseText;
	}
}


//RESULTADOS REAIS
function show_jogos_resultados(rod,jr){
	url = 'resultados_lista.php';

	pars = 'rodada='+rod+'&jogos_rod='+jr;

	var myAjax = new Ajax.Request(url, { method: 'post', 
											asynchronous: false,
											parameters: pars, 
											onComplete: requestShow_jogos_resultados
										});
}

function requestShow_jogos_resultados(req){
	//alert(req.responseText);
	if (req.responseText == 0) {
		$('listagem_rod').innerHTML = '<br />Não há registros no momento.<br /><br />';
	} else {
		$('listagem_rod').innerHTML = req.responseText;
	}
}

/*******************************
	Abaixo as várias rotinas de 
	cálculo de pontuação dos palpites,
	dos jogadores e dos clubes
*******************************/
function processResultados(frm,jr){
	$('loadMsg').innerHTML = '<img src="../../arquivos/layout/spinner.gif" border="0" /><br />Gravando os resultados.<br />Aguarde.';
	$('loadMsg').show();

	var qtd = frm.elements.length; //quantidade de elementos no form

	ids = '';
	for(var i=0;i<qtd;i+=2){ //i+=2 = número de campos do formulario em cada linha (placar mandante e placar visitante)
		nome = frm.elements[i].name;
		n = nome.split('_');
		ids += n[1]+',';
	}

	url = 'resultados_post.php?nomes='+ids+'&jrod='+jr+'&' + Math.ceil ( Math.random() * 100000 ); //evitando chaching

	var myAjax = new Ajax.Request(url, { method: 'post', 
												parameters: $('frmResult').serialize(true), //passa os dados do form
												onComplete: requestProcessResultados
											});
}

function requestProcessResultados(req){
	//alert(req.responseText);
	$('loadMsg').hide();
	if (req.responseText == 1) {
		alert('Resultados salvos com sucesso!\nClique em OK para iniciar o cálculo dos pontos e aguarde.'); //dá mensagem de sucesso
		pointsPalpitesCalculate();
	} else {
		alert(req.responseText);
	}
}

//calcula os pontos dos palpites segundo os resultados
function pointsPalpitesCalculate(){
	$('loadMsg').innerHTML = '<img src="../../arquivos/layout/spinner.gif" border="0" /><br />Calculando os pontos dos palpites.<br />Aguarde.';
	$('loadMsg').show();
	url = 'calcula_pontuacao_palpites.php?' + Math.ceil ( Math.random() * 100000 );
	pars = 'acao=show';

	var myAjax = new Ajax.Request(url, { method: 'get', 
											parameters: pars, 
											onComplete: requestPointsPalpitesCalculate
										});
}

function requestPointsPalpitesCalculate(req){
	//alert(req.responseText);
	$('loadMsg').hide();
	if (req.responseText == 1) {
		pointsJogadoresCalculate();
	} else {
		alert(req.responseText);
	}
}

// calcula os pontos dos jogadores segundo 
// pontuação dos palpites feita anteriormente
function pointsJogadoresCalculate(){
	$('loadMsg').innerHTML = '<img src="../../arquivos/layout/spinner.gif" border="0" /><br />Calculando os pontos dos jogadores.<br />Aguarde mais um pouco.';
	$('loadMsg').show();
	url = 'calcula_pontuacao_jogadores.php?' + Math.ceil ( Math.random() * 100000 );
	pars = 'acao=show';

	var myAjax = new Ajax.Request(url, { method: 'get', 
												parameters: pars, 
												onComplete: requestPointsJogadoresCalculate
											});
}

function requestPointsJogadoresCalculate(req){
	$('loadMsg').hide();
	if (req.responseText == 1) {
		pointsClubesCalculate();
	} else {
		alert(req.responseText);
	}
}

//calcula os pontos dos clubes e monta
//gravando as informações da tabela no BD
function pointsClubesCalculate(){
	//$('loadMsg').style.height = '120px';
	$('loadMsg').innerHTML = '<img src="../../arquivos/layout/spinner.gif" border="0" /><br />Calculando a pontuação dos clubes e montando tabela.<br />Aguarde mais um pouco.';
	$('loadMsg').show();
	url = 'calcula_pontuacao_clubes.php?' + Math.ceil ( Math.random() * 100000 );
	pars = 'acao=show';

	var myAjax = new Ajax.Request(url, { method: 'get', 
												parameters: pars, 
												onComplete: requestPointsClubesCalculate
											});
}

function requestPointsClubesCalculate(req){

	$('loadMsg').hide();
	if (req.responseText == 1) {
		alert('Resultados Reais lançados com sucesso!');
		//window.location = '../classificacao.php';
	} else {
		alert(req.responseText);
	}
}

/***********************
	Mostra/Esconde divs
***********************/
function showHideRules(elem){
	stt = elem.style.display;
	if (stt == 'none') 
		elem.style.display='block';
	else 
		elem.style.display='none';
}

/*******************************
	Checa campos de form um a um
********************************/
var status = Array;
function checkField(field){
	var n = field.name;
	changeClass(field,'text'); //muda para classe sem Foco
	switch(n){
		//Inscrição
		case ('nome'):
			if (field.value == ''){
				show_error(n,'Preencha » Nome');
				status[0] = 0;
				return false;
			} else status[0] = 1;
			break;
		case ('email'):
			if (field.value == ''){
				show_error(n,'Preencha » E-mail');
				status[1] = 0;
				return false;
			} else if (!checkMail(field.value)) {
				show_error(n,'E-mail inválido');
				status[1] = 0;
				return false;
			} else status[1] = 1;
			break;
		case ('reEmail'):
			if (field.value == ''){
				show_error(n,'Repita » E-mail');
				status[2] = 0;
				return false;
			} else if (field.value != $('email').value){
				show_error(n,'E-mails diferentes');
				status[2] = 0;
				return false;
			} else {
				status[2] = 1;
				verifica_logins(field.value);
			}
			break;		
		case ('pass'):
			var pr = new RegExp(/[\W_]/); //regras para senhas
			var letter = new RegExp(/[a-zA-Z]+/);
			var number = new RegExp(/[0-9]+/);
			if (field.value == ''){
				show_error(n,'Preencha » Senha');
				status[4] = 0;
				return false;
			} else if ((field.value.length < 5) || (field.value.length > 10)) {
				show_error(n,'Senha deve ter entre 5 e 10 caracteres');
				status[4] = 0;
				return false;
			} else if (pr.test(field.value)) { 
				show_error(n,'Senha com caracter(es) inválido(s)');
				status[4] = 0;
				return false;
			} else if (field.value.search(letter) == -1 || field.value.search(number) == -1) {
				show_error(n,'Senha deve conter letras E números');
				status[4] = 0;
				return false;
			} else {
				status[4] = 1;
			}
			break;	
		case ('rePass'):
			if (field.value == ''){
				show_error(n,'Repita » Senha');
				status[5] = 0;
				return false;
			} else if (field.value != $('pass').value){
				show_error(n,'Senhas diferentes');
				status[5] = 0;
				return false;
			} else {
				status[5] = 1;
			}
			break;
		case ('cidade'):
			if (field.value == ''){
				show_error(n,'Preencha » Cidade');
				status[6] = 0;
				return false;
			} else status[6] = 1;
			break;
		case ('uf'):
			if (field.value == 0){
				show_error(n,'Selecione » Estado');
				status[7] = 0;
				return false;
			} else {
				status[7] = 1;
				status[8] = 1; //numInd1
			}
			break;
		case('numInd1'):	
			status[8] = 1;
			break;
		// Recados
		case ('de'):
			if (field.value == ''){
				show_error(n,'Preencha » Seu nome ou apelido no bolão');
				status[0] = 0;
				return false;
			} else status[0] = 1;
			break;
		case ('para'):
			if (field.value == ''){
				show_error(n,'Preencha » Nome do destinatário ou seu apelido no bolão');
				status[1] = 0;
				return false;
			} else status[1] = 1;
			break;
		case ('recado'):
			if (field.value == ''){
				show_error(n,'Preencha » Recado');
				status[2] = 0;
				return false;
			} else status[2] = 1;
			break;
		//Contato
		case ('tipo'):
			status[2] = 1;
			break;
		case ('comentario'):
			if (field.value == ''){
				show_error(n,'Preencha » Mensagem');
				status[3] = 0;
				return false;
			} else status[3] = 1;
			break;
		//Indicação
		case('numInd'):	
			status[1] = 1;
			break;
		case ('email1'):
			if (field.value == ''){
				show_error(n,'Preencha » Seu e-mail');
				status[2] = 0;
				return false;
			} else if (!checkMail(field.value)) {
				show_error(n,'E-mail inválido');
				status[2] = 0;
				return false;
			} else {
				status[2] = 1;
				status[1] = 1; //numInd
			}
			break;
		case ('nome2'):
			if (field.value == ''){
				show_error(n,'Preencha » Nome do amigo');
				status[3] = 0;
				return false;
			} else status[3] = 1;
			break;
		case ('email2'):
			if (field.value == ''){
				show_error(n,'Preencha » E-mail do amigo');
				status[4] = 0;
				return false;
			} else if (!checkMail(field.value)) {
				show_error(n,'E-mail inválido');
				status[4] = 0;
				return false;
			} else status[4] = 1;
			break;
		//Depósito
		case ('dia'):
			if (field.value == ''){
				show_error(n,'Preencha » Data da transação');
				status[2] = 0;
				return false;
			} else if (field.value.length < 8)	{
				show_error(n,'Preencha » Formato de data inválido');
				status[2] = 0;
				return false;
			} else status[2] = 1;
			break;
		case ('hora'):
			if (field.value == ''){
				show_error(n,'Preencha » Hora aproximada da transação');
				status[3] = 0;
				return false;
			} else if (field.value.length < 5)	{
				show_error(n,'Preencha » Formato de hora inválido');
				status[3] = 0;
				return false;
			} else {
				status[3] = 1;
				status[4] = 1; //tipoPag
				//status[5] = 1; //detalhes
			}
			break;
		//OPINIÕES
		case ('nota_jogo'):
			if (field.value == '0')	{
				show_error(n,'Selecione » Nota para o bolão');
				status[3] = 0;
				return false;
			} else { 
				status[2] = 1;
				status[3] = 1;
			}
			break;
		case ('nota_site'):
			if (field.value == '0')	{
				show_error(n,'Selecione » Nota para o site');
				status[4] = 0;
				return false;
			} else status[4] = 1;
			break;

		case ('tipoPag'):
			status[4] = 1;
			break;
		case ('detalhes'):
			if ($('tipoPag').value == 'outro') {
				if (field.value == ''){
					show_error(n,'Preencha » Detalhes da transação');
					status[5] = 0;
					return false;
				}
			}
			status[5] = 1;
			break;
	}
	show_success(n);
	return true;
}

/********************************
	Checa de todos os campos do 
		form estão preenchidos
********************************/
function checkStatus(form,num){
	//num = número de elementos que devem ser extraídos da conta total de elementos do form (ex: form de inscrição -1 = botão)
	frm = form.elements;
	qtd = parseInt(frm.length) - num;
	for(var i = 0; i < qtd; i++){
		if (!status[i] || status[i] == 0){
			frm[i].focus();
			return false;
		}
	}
	$('alias').disabled = false;
	$('btnSend').disabled = true;
	return true;
}

/******************************
	Mostra mensagem e gif de erro
******************************/
function show_error(n,msg){
	$('stt_'+n).innerHTML = '<img src="../arquivos/layout/x.gif" border="0" />';
	$('stt_'+n).style.visibility = 'visible';

	$('mensagem').style.visibility = 'visible';
	$('mensagem').innerHTML = 'Atenção: '+msg;
}

/******************************
Mostra mensagem e gif de sucesso
******************************/
function show_success(n){
	$('stt_'+n).innerHTML = '<img src="../arquivos/layout/check.gif" border="0" />';
	$('stt_'+n).style.visibility = 'visible';

	$('mensagem').style.visibility = 'hidden';
}

function checkMail(mail){
    var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
    if(typeof(mail) == "string"){
        if(er.test(mail)){ return true; }
    }else if(typeof(mail) == "object"){
        if(er.test(mail.value)){ 
                    return true; 
                }
    }else{
        return false;
        }
}

/*****************************
	    Retira chars especiais
*****************************/
function offChars(evt) {
	//evt.which(Firefox); event.keyCode(IE)
	var evento = (evt.which) ? evt.which : evt.keyCode; 

	var palavra = String.fromCharCode(evento);

	//lista de caracteres ignorados
	var noWay = new RegExp(/[A-Za-z0-9\. ]/);
	if(palavra.search(noWay)== -1)
		return false;
 }

/*************************
	Checa duplicidade de
				apelido
*************************/
function checkAlias(a){

	changeClass($('alias'),'text'); //muda para classe sem Foco

	if (a.value == ''){
		show_error('alias','Preencha » Apelido');
		status[3] = 0;
		return false;
	} else if (a.value.length < 3){
		show_error('alias','Mínimo de caraceteres requerido para Apelido = 3');
		status[3] = 0;
		return false;
	}

	a.value = a.value.toUpperCase()

	var url = 'validacao.php';
	var pars = 'alias='+a.value;

	var myAjax = new Ajax.Request(url, { method: 'get', 
															parameters: pars, 
															onComplete: requestCheckAlias
														});
}

function requestCheckAlias(req){
	if (req.readyState == 1) {
		$('mensagem').style.visibility = 'visible';
		$('mensagem').innerHTML = 'Verificando Apelido...';
	}

	if (req.readyState == 4 && req.status == 200) {			
			if (req.responseText == 0)	{
				show_success('alias');
				status[3] = 1;
			} else {
				show_error('alias','Apelido já existe');
				status[3] = 0;
			}
	}
}

/*************************
Verifica se há logins (apelidos)
Cadastrados para o email informado
na inscrição
*************************/
function verifica_logins(f){
	var url = 'procura_login.php';
	var pars = 'email='+f;

	var myAjax = new Ajax.Request(url, { method: 'get', 
															parameters: pars, 
															onComplete: requestVerifica_logins
														});
}

function requestVerifica_logins(req){
	//alert(req.responseText);
	if (req.readyState == 4 && req.status == 200) {
			if (trim(req.responseText) != '') {
				var l = req.responseText.split('|'); //armazena os logins em um array
				var logins = 'Você tem apelidos cadastrados nesse e-mail. Escolha um deles ou clique em <b>NOVO</b> para criar um inédito.<br /><br />';
				logins += '<a href="#" onClick="clear_alias()"><u><strong><font color="#ff0000">NOVO</font></strong></u></a><br /><br />';
				for (var i = 1;i < l.length ;i++) { //percorre o array	
					logins += '- <a href="#" onClick="send_alias(\''+l[i]+'\')"><u>'+l[i]+'</u></a><br />';
				}
				
				$('loadLogins').innerHTML = logins; //exibe os logins linha a linha
				$('loadLogins').show();
				$('secMain').show();
			} else {
				$('loadLogins').hide();
				$('secMain').hide();
			}
	}
}

function send_alias(alias) {
	$('alias').value = alias;
	$('loadLogins').hide();
	$('secMain').hide();
	$('flag').value = '0';
	$('alias').disabled = true;
	$('pass').focus();
	$('stt_alias').innerHTML = '<img src="../arquivos/layout/check.gif" border="0" />';
	status[3] = 1;
}

function clear_alias() {
	$('flag').value = 1;
	$('alias').value = '';
	$('loadLogins').hide();
	$('secMain').hide();
	$('alias').disabled = false;
	$('alias').focus();
	status[3] = 0;
}
/*************************
	Contador de caracteres
	para TEXTAREA
*************************/
function Contador(obj,max) { 
      if (max !=0) { 
         if (obj.value.length > max)  {
            obj.value = obj.value.substring(0, max); 
            }
      }
      $('contador').value = obj.value.length+' de '+ max;
   } 

/*****************************
	Seleciona todos checkbox ao 
				mesmo tempo
*****************************/
function selectAll(cb,frm){
	var qtd = frm.elements.length; //Quantidade total de elementos do formulário

   for (var i=0;i<qtd;i++) {
	     if(frm.elements[i].type == "checkbox"){
			if (cb.checked == true) //marcar tudo
				  frm.elements[i].checked= true;
			else //desmarcar tudo
				  frm.elements[i].checked= false;
		 }
   } 
}

/*************************************
	Apaga todos os campos associados 
		com os checkbox selecionados
**************************************/
function delSelected(frm,pag,per_page,tip){

	var qtd = frm.elements.length; //Quantidade total de elementos do formulário

	var elem = new Array(qtd) //cria um array do tamanho de qtd
	for (var i=0;i<qtd;i++) {
		elem[i] = '';
		if(frm.elements[i].type == "checkbox"){ //Se for checkbox...
			if (frm.elements[i].checked == true && frm.elements[i].id != 'allRec'){ //checa se está selecionado
				var check = 1;
				elem[i] = frm.elements[i].id;
			}
		}
	}
	
	if (!check) { // se não houver checkbox selecionado
		alert('Selecione ao menos um registro para ser apagado');
		return false;
	} 

	if (!confirm('Confirma o apagamento dos registros selecionados?')) {
		return false;
	}
	
	if (tip == 'rec') //Recados
		url = 'apaga_recados.php';
	else //Opiniões
		url = 'apaga_opinioes.php';

	pars = 'ids='+elem+'&page='+pag+'&per='+per_page;
	var myAjax = new Ajax.Request(url, { method: 'post', 
														parameters: pars, 
														onComplete: requestDelSelected
													});

}

function requestDelSelected(req){
	if (req.readyState == 4 && req.status == 200) {	
			var pag = req.responseText.split("=");
			pag[1] = parseInt(pag[1]);
			
			if (pag[0] == 'Opi'){ //Opiniões
				if (pag[1] == 0) //não há nenhuma opinião restante
					window.location = 'opinioes.php';
				else
					window.location = 'opinioes.php?pag='+pag[1]; //redireciona para a página correta

			} else { //Recados
				if (pag[1] == 0) //não há nenhum recado restante
					window.location = 'recados.php';
				else
					window.location = 'recados.php?pag='+pag[1]; //redireciona para a página correta
			}

	}
}

//Cuida para que o usuário só insira números no campo determinado -> evento onKeyPress
function onlyNum(evt){ 
	var caractere = (evt.which) ? evt.which : event.keyCode
	if (caractere > 31 && (caractere < 48 || caractere > 57)){
		return false
	}
	return true
}

// Insere barras nos espaços corretos da data -> evento onKeyDown
function maskDate(campo){ 
	var data = campo.value;   
	if (data.length == 2 || data.length == 5){                  
		data = data + '/';      
		$(campo.name).value = data;   
		return true;                            
	}                     
}

// Valida data -> evento onBlur
function dateValidate(campo) {
    var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
    var msgErro = 'Formato inválido de data.';
    if (campo.value.match(expReg) || campo.value == '') {
        return true; 
    } else {
        alert(msgErro);
        campo.focus();
		campo.select();
    } 
}

function maskHour(campo){ 
	var hora = campo.value;   
	if (hora.length == 2 || hora.length == 5){                  
		hora = hora + ':';      
		$(campo.name).value = hora;   
		return true;                            
	}      
}

/****************
		ADM
****************/
function showListActivate(div){
	if ($(div).visible()) {
		Effect.SlideUp(div,{duration:1});
	} else {
		Effect.SlideDown(div,{duration:1});
	}
}

/*****************************
	habilita/desabilita clubes
****************************/
function changeStatusTeam(frm, camp){
	if(!confirm('Clique em OK para confirmar as mudanças.')){
		window.location = 'clubes.php';
		return false;
	}

	qtd = frm.elements.length

	var elemYes = new Array; //clubes selecionados
	var elemNo = new Array; //clubes não-selecionados
	var yes = 0;
	var no = 0;
	for (var i=0;i<qtd ;i++) {
		 if(frm.elements[i].type == "checkbox"){
			if (frm.elements[i].checked == true) {
				elemYes[yes] = frm.elements[i].name;
				 yes ++;
			} else {
				elemNo[no] = frm.elements[i].name;
				 no ++;
			}
		 }
	}

	url = 'ativa_desativa_clubes.php';
	pars = 'marcados='+elemYes+'&desmarcados='+elemNo+'&campeonato='+camp;
	var myAjax = new Ajax.Request(url, { method: 'post', 
														parameters: pars, 
														onComplete: requestChangeStatus
													});

}

function requestChangeStatus(req){
	if (req.readyState == 4 && req.status == 200) {
		alert('Alterações efetuadas!');
		window.location = 'clubes.php';
	}
}

/************************************
			   -- Configurações --
	Mostra campos de porcentagem
			dinamicamente
***********************************/
function showWinners(qtd, p, show){
	if (!qtd || qtd == '0'){
		alert('A quantidade de ganhadores precisa ser maior que 0 (zero)');
		$('ganhadores').focus();
		$('ganhadores').select();
		return false;
	} else if (qtd > 50){
		alert('A quantidade de ganhadores não pode ser maior que 50');
		$('ganhadores').focus();
		$('ganhadores').select();
		return false;
	} else if (!show){
		if ($('alterWinners').value == '')	{
			return false;
		}
	}

	var nav = checkNav(); //checa Navegador
	if (nav == 'IE')
		$('trWinners').style.display = 'block'; //somente IE -> não renderiza bem no FF
	else
		$('trWinners').style.display = 'table-row'; //o valor 'table-row' não é suportado pelo IE
		
	//limpa conteúdo anterior
	$('winners').innerHTML = '';

	var content = "";
	for(var i=1; i<=qtd; i++){
		if(p)
			content += i+"º lugar:&nbsp;<input type='text' class='texto' style='margin-bottom:1px' name='class_"+i+"' id='class_"+i+"' size='5' maxlength='5' onKeyPress='return onlyNumAlter(event)' onKeyDown='FormataValor(this, 5, event)' value='"+p[i]+"' /> %<br />";
		else
			content += i+"º lugar:&nbsp;<input type='text' class='texto' style='margin-bottom:1px' name='class_"+i+"' id='class_"+i+"' size='5' maxlength='5' onKeyPress='return onlyNumAlter(event)' onKeyDown='FormataValor(this, 5, event)' /> %<br />";
	}
	
	$('winners').innerHTML = content;
	$('class_1').focus();
	
}

/*********************************
			-- Configurações --
	Alteração na quantidade de 
	ganhadores/porcentagens
*********************************/
function onlyNumAlter(evt){
	var caractere = (evt.which) ? evt.which : event.keyCode
	if (caractere > 31 && (caractere < 48 || caractere > 57)){
		return false
	}

	$('alterWinners').value = '1';
	return true
}

//Verifica Browser do usuário
function checkNav(){
	var UA = navigator.userAgent;

	if (UA.indexOf('MSIE') > -1) { //IE
	   return 'IE';
	} else { //FF, Opera, ...
	   return 'FF';
	}
}

/*************************
	Configurações - Salvar
**************************/
function checkSaveConf(frm){
	//quantidade de elementos no form
	var qtd = frm.elements.length;
	
	for(var i=0; i<qtd; i++){
		field = frm.elements[i];
		switch (field.name){
		case ('camp'):
			if (field.value == '0') {
				showAlertError('Necessário Informar: ','campeonato atual');
				field.focus();
				return false;
			}
			break;
		case ('ganhadores'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','quantidade de ganhadores');
				field.focus();
				return false;
			} else if (field.value == '0'){
				showAlertError('Valor precisa ser maior do que 0 (zero): ','quantidade de ganhadores');
				field.focus();
				return false;
			}
			break;
		case ('preco'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','preço da inscrição');
				field.focus();
				return false;
			} else if (field.value == '0'){
				showAlertError('Valor precisa ser maior do que 0 (zero): ','preço da inscrição');
				field.focus();
				return false;
			}
			break;
		case ('porcentagem'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','porcentagem destinada a premiação');
				field.focus();
				return false;
			} else if (field.value == '0'){
				showAlertError('Valor precisa ser maior do que 0 (zero): ','porcentagem destinada a premiação');
				field.focus();
				return false;
			}
			break;
		case ('result_mandante'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Pontuação para Resultado do mandante');
				field.focus();
				return false;
			} else if (field.value == '0'){
				showAlertError('Valor precisa ser maior do que 0 (zero): ','Pontuação para Resultado do mandante');
				field.focus();
				return false;
			}
			break;
		case ('placar_mandante'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Pontuação para placar do mandante');
				field.focus();
				return false;
			} else if (field.value == '0'){
				showAlertError('Valor precisa ser maior do que 0 (zero): ','Pontuação para placar do mandante');
				field.focus();
				return false;
			}
			break;
		case ('status'):
			if (field.value == '0') {
				showAlertError('Necessário Informar: ','status');
				field.focus();
				return false;
			} else if (field.value == '3') {
				if ($('total_premiacao').value == '0,00' || $('total_premiacao').value == ''){
					showAlertError('Necessário calcular: ','total premiação');
					$('btnCalculo2').focus();
					return false;
				}
			}
			break;
		}
	}	
	
	if (confirm('Clique em OK para confirmar a gravação.')){
		$(frm).submit();
	}

}

/*************************
Configurações do Sistema
**************************/
function checkSaveConfSist(frm){
	//quantidade de elementos no form
	var qtd = frm.elements.length;
	
	for(var i=0; i<qtd; i++){
		field = frm.elements[i];
		switch (field.name){
		case ('leiamais'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Caracteres Leia Mais');
				field.focus();
				return false;
			}
			break;
		
		case ('recados'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Qtd. Recados');
				field.focus();
				return false;
			}
			break;

		case ('opinioes'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Qtd. Opiniões');
				field.focus();
				return false;
			}
			break;

		case ('clubes'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Qtd. Clubes');
				field.focus();
				return false;
			}
			break;

		case ('enquetes'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Qtd. Enquetes');
				field.focus();
				return false;
			}
			break;

		case ('faqs'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Qtd. Faqs');
				field.focus();
				return false;
			}
			break;

		case ('grupos'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Qtd. Grupos');
				field.focus();
				return false;
			}
			break;

		case ('jogadores'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Qtd. Jogadores');
				field.focus();
				return false;
			}
			break;
		
		case ('jogos'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Qtd. Jogos');
				field.focus();
				return false;
			}
			break;

		case ('noticias'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Qtd. Notícias');
				field.focus();
				return false;
			}
			break;

		case ('regulamentos'):
			if (field.value == '') {
				showAlertError('Necessário Informar: ','Qtd. Regulamentos');
				field.focus();
				return false;
			}
			break;
		}
	}

	if (confirm('Clique em OK para confirmar a gravação.')){
		$(frm).submit();
	}
}


//formata para valores monetários
function FormataValor(id,tammax,teclapres) {
    
	if(window.event) { // Internet Explorer
		var tecla = teclapres.keyCode; }
	else if(teclapres.which) { // Nestcape / firefox
		var tecla = teclapres.which;
	}
    
	vr = $(id).value;
	vr = vr.toString().replace( "/", "" );
	vr = vr.toString().replace( "/", "" );
	vr = vr.toString().replace( ",", "" );
	vr = vr.toString().replace( ".", "" );
	vr = vr.toString().replace( ".", "" );
	vr = vr.toString().replace( ".", "" );
	vr = vr.toString().replace( ".", "" );
	tam = vr.length;

	if (tam < tammax && tecla != 8){ tam = vr.length + 1; }

	if (tecla == 8 ){ tam = tam - 1; }

	if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){
	if ( tam <= 2 ){
	$(id).value = vr; }
	if ( (tam > 2) && (tam <= 5) ){
	$(id).value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); }
	if ( (tam >= 6) && (tam <= 8) ){
	$(id).value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }
	if ( (tam >= 9) && (tam <= 11) ){
	$(id).value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }
	if ( (tam >= 12) && (tam <= 14) ){
	$(id).value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }
	if ( (tam >= 15) && (tam <= 17) ){
	$(id).value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam );}
	}
}

/***************************************
				-- CONFIGURAÇÕES --
calcula quantidade de inscritos no bolão
****************************************/
function calcInsc(){
	url = 'configuracoes.php';
	pars = 'acao=calculo';
	var myAjax = new Ajax.Request(url, { method: 'post', 
														parameters: pars, 
														onComplete: requestCalcInsc
													});
}

function requestCalcInsc(req){
	$('inscritos').value = parseInt(req.responseText);
}

/***************************************
				-- CONFIGURAÇÕES --
calcula totais (arrecadação/premiação)
****************************************/
function calcValues(){
	var preco = $('preco').value;
	var porcent = $('porcentagem').value;
	var insc = $('inscritos').value;

	if (!preco || preco==0 || !porcent || porcent==0 || !insc || insc==0) {
		alert('Os seguintes campos não podem ter valor 0(zero) ou serem nulos: Preço Inscrição, Porcentagem Premiação e Qtd. Inscritos');
		$('total_arrecadado').value = '';
		$('total_premiacao').value = '';
		return false;
	}
	
	preco = preco.replace('.',''); //tira o ponto separador de milhar
	preco = preco.replace(',','.'); //substitui a vírgula por ponto

	porcent = porcent.replace(',','.');

	// Total Arrecadado
	 var totalArrec = parseFloat(preco) * parseInt(insc);
	 totalArrec = totalArrec.toString().replace('.',',');

	 if (totalArrec.search(',') == -1)
		$('total_arrecadado').value = totalArrec+',00';
	 else 
		$('total_arrecadado').value = totalArrec

	 //Total Premiação
	 totalPrem = (parseFloat(totalArrec) / 100) * parseFloat(porcent);
	 totalPrem = totalPrem.toString().replace('.',',');

	 if (totalPrem.search(',') == -1)
		$('total_premiacao').value = totalPrem+',00';
	 else
		$('total_premiacao').value = totalPrem
}

/************************
	- - CLASSIFICAÇÃO - -
			busca jogador
*************************/
 function playerFind(jog){
	if (!jog.value)	{
		alert('Preencha ao menos uma parte do apelido para busca.');
		jog.focus();
		return false;
	}

	$('msgBusca').style.visibility = 'visible';
	url = 'busca_classificacao.php';
	pars = 'apelido='+jog.value;
	var myAjax = new Ajax.Request(url, { method: 'post', 
														parameters: pars, 
														onComplete: requestPlayerFind
													});
 }

 function requestPlayerFind(req){	

	if (req.readyState == 4 && req.status == 200) {
		$('msgBusca').style.visibility = 'hidden';
		if (req.responseText == '0'){
			alert('Não foi encontrado nenhum jogador com este apelido.');
			return false;
		}
		arr = req.responseText.split(",");
		window.location = 'classificacao.php#'+arr[0];
		for (var i=0; i<arr.length; i++) {
			$('class_'+arr[i]).style.backgroundColor = '#ff0';
			$('jogador_'+arr[i]).style.backgroundColor = '#ff0';
			$('uf_'+arr[i]).style.backgroundColor = '#ff0';
			$('pontos_'+arr[i]).style.backgroundColor = '#ff0';
			$('percent_'+arr[i]).style.backgroundColor = '#ff0';
			$('acertos_'+arr[i]).style.backgroundColor = '#ff0';
			$('premio_'+arr[i]).style.backgroundColor = '#ff0';
		}
	}
 }

/**************************
Processa palpites via ajax
***************************/
function processPalpites(id){
	
	$('btnSalvar').disabled = true;
	
	$('loadMsg').innerHTML = '<img src="../arquivos/layout/spinner.gif" border="0" /><br />Gravando os palpites.<br />Aguarde.';
	$('loadMsg').show();
	url = 'palpites_post.php?' + Math.ceil ( Math.random() * 100000 ) + '&id='+id; //evitando chaching
	var myAjax = new Ajax.Request(url, { method: 'post', 
											parameters: $('frmPalpites').serialize(true), //passa os dados do form
											onComplete: requestProcessPalpites
										});
}

function requestProcessPalpites(req){
	//alert(req.responseText);
	$('loadMsg').hide();
	if (req.responseText == 1) { //Palpites Bloqueados
		alert('Os palpites estão bloqueados temporariamente.\nVolte depois. Obrigado!');
		window.location = './';

	} else if (req.responseText == 0) { //Palpites salvos
		alert('Seus palpites foram salvos com sucesso!');
		$('btnSalvar').disabled = false;
	
	} else if (req.responseText == 2) {  // expirado período de palpites
		alert('O tempo para realizar os palpites se encerrou.\nAcompanhe o bolão pelo link CLASSIFICAÇÃO.\nObrigado!');
		window.location = './'; //redireciona

	} else {
		alert(req.responseText);
		$('btnSalvar').disabled = false;
	}
}


// Enquete - checa se usuário votou
function checaVoto(frm){
	var qtd = frm.elements.length; //Quantidade total de elementos do formulário
	for (var i=0; i<qtd; i++) {
		 if(frm.elements[i].type == "checkbox" || frm.elements[i].type == 'radio') {
			if (frm.elements[i].checked)	{
				setTimeout(function() {
							window.location = 'index.php'; },
							1000);
				return true;
			}
		 }
	}
	
	alert('Você não selecionou seu voto.');
	return false;
}

function showEnquete(id){
	
	$('loadMsg').show();

	url = 'enquetes_anteriores.php'
	pars = 'enquete='+id;
	var myAjax = new Ajax.Request(url, { method: 'post', 
														parameters: pars, 
														onComplete: requestShowEnquete
													});
}

function requestShowEnquete(req){
	$('loadMsg').hide();
	id = req.responseText;
	if (id != 0) { //arquivo (imagem) da enquete existe
		$('enqCont').innerHTML = '<img src="enquete/resultado_enquete_'+id+'.jpg" border="0" />';
	} else { //enquete não existe
		$('enqCont').innerHTML = '<br /><br />Enquete não disponível.<br /><br />';
	}

	$('enqCont').show();
}

/**************************
		E-MAIL EM MASSA
		Seleção de Jogadores
****************************/
function movimento(elemento, direcao) {
        var sel = document.getElementById(elemento);
        var len, i;
        if (!sel) {
            return;
        }
        if (direcao == 'passar' && arguments[2] == undefined) {
            return;
        } else if (direcao == 'passar') {
            var sel_pai = document.getElementById(arguments[2]);
            var selecionados = new Array();
            if (!sel_pai) {
                return;
            }
            len = sel_pai.options.length;
            for (i = 0; i < len; i++) {
                if (sel_pai.options[i].selected) {
                    sel.options[sel.options.length] = new Option(sel_pai.options[i].text, sel_pai.options[i].value);
                    selecionados.push(i);
                }
            }
            len = selecionados.length;
            for (i = len-1; i >= 0; i--) {
                sel_pai.options[selecionados[i]] = null;
            }
        } 
    }

// Contador de tempo para efetuar palpites - HOME
function contador_palpites(){
	url = 'palpites_auto_block.php';
	var myAjax = new Ajax.Request(url, { method: 'post',  
											onComplete: requestContador_palpites
										});
}

function requestContador_palpites(req){
	//alert(req.responseText);
	if (req.readyState == 4 && req.status == 200) {
		if(req.responseText == '1'){
			$('cabinfotempo').hide();
			$('msgbloqueio').show();
		} else {
			
			cont_atual = req.responseText.split('-');
			$('dia_faltante').innerHTML = cont_atual[0];
			$('hora_faltante').innerHTML = cont_atual[1];
			$('minuto_faltante').innerHTML = cont_atual[2];
			$('segundo_faltante').innerHTML = cont_atual[3];

			setTimeout("contador_palpites()",1)
		}
	}
}

//Relatórios
function processRel(tip){
	url = 'show_relatorio.php';
	pars = 'rel='+tip;

	var myAjax = new Ajax.Request(url, { method: 'post', 
									parameters: pars,
									onComplete: requestProcessRel
								});
}

function requestProcessRel(req){
	if (req.readyState == 4 && req.status == 200){
		$('showRel').innerHTML = req.responseText;
	}
}

//Checa os campos da montagem dos grupos - ADM/Jogos -> Tipo = Grupos
function checaAllFields(frm){
	qtd = frm.elements.length-1;
	
	//precisa preencher TODOS os times, senão cancela
	for (var i=0;i<qtd;i++){
		if(frm.elements[i].value == '0'){
			alert("Preencha todos os campos");
			return false
		}
	}
	
	return true;
}

//Monta so grupos para os campeonatos desse tipo
function monta_grupos(qtdGrupos, qtdClubesGrupo){

	url = "monta_grupos.php?g="+qtdGrupos+"&c="+qtdClubesGrupo;
	var myAjax = new Ajax.Request(url, { method: 'post', 
											parameters: $('frmGrupos').serialize(true), //passa os dados do form
											onComplete:requestMonta_grupos
											});
}

function requestMonta_grupos(req){
	if (req.readyState == 4 && req.status == 200){
		alert("Grupos gravados com sucesso!");
	}
}

//checa se tecla Caps Lock está ativa
//em fase de apuração...
function checar_caps_lock(evt) {
	var codigo_tecla = (evt.which) ? evt.which : evt.keyCode;
		//alert(codigo_tecla)
	tecla_shift = evt.shiftKey?evt.shiftKey:((codigo_tecla == 16)?true:false);
	if(((codigo_tecla >= 65 && codigo_tecla <= 90) && !tecla_shift) || ((codigo_tecla >= 97 && codigo_tecla <= 122) && tecla_shift))
		alert('Atenção: A tecla CAPS LOCK está ligada! A senha difere maiúsculas de minúsculas.');
	
}

// troca de senha
function valida_troca_senha(frm, id){
	frm = frm.elements;
	if (frm.senha_atual.value == '' || frm.senha_nova.value == '' || frm.reSenha_nova.value == ''){
		alert('Preencha todos os dados!');
		return false;
	} else {

		var pr = new RegExp(/[\W_]/); //regras para senhas
		var letter = new RegExp(/[a-zA-Z]+/);
		var number = new RegExp(/[0-9]+/);

		if ((frm.senha_atual.value.length < 5) || (frm.senha_atual.value.length > 10)) {
			alert('Senha Atual deve ter entre 5 e 10 caracteres');
			return false;
		} else if (pr.test(frm.senha_atual.value)) {
			alert('Senha Atual tem caractere inválido.');
			return false;
		} else if ((frm.senha_nova.value.length < 5) || (frm.senha_nova.value.length > 10)) {
			alert('Senha Nova deve ter entre 5 e 10 caracteres');
			return false;
		} else if (pr.test(frm.senha_nova.value)) {
			alert('Senha Nova tem caractere inválido.');
			return false;
		} else if (frm.senha_nova.value.search(letter) == -1 || frm.senha_nova.value.search(number) == -1) {
			alert('Senha Nova deve conter letras E números');
			return false;
		} else if (frm.reSenha_nova.value != frm.senha_nova.value) {
			alert('Senha repetida diferente da senha nova.');
			return false;
		}
	}
	
	url = 'alter_pass_exec.php?id='+id;
	var myAjax = new Ajax.Request(url, { method: 'post', 
											parameters: $('frmAlterSenha').serialize(true), //passa os dados do form
											onComplete:requestValida_troca_senha
											});
}

function requestValida_troca_senha(req){
	if (req.readyState == 4 && req.status == 200){
		if(req.responseText == '0'){
			alert('Senha atual digitada não coincide com senha cadastrada!');
		}else{
			alert('Senha alterada com sucesso!');
			window.location = 'cpanel.php';
		}
	}
}