/**
*	Faz com que sempre que uma requisição ajax seja solicitada ele esconda o botão de finalizar o cadastro
**/

$(document).ready(function(){
	$("#botaoRegistrar")
	.ajaxStart(function(){
		$(this).hide();
	})
	.ajaxComplete(function(){
		$(this).show();
	});	
});



function validarData(data)
{
    var dia = data.split("/")[0];
    var mes = data.split("/")[1];
    var ano = data.split("/")[2];
    var MyData = new Date(ano, mes - 1, dia);
    var valido = true;
	
	if((MyData.getMonth() + 1 != mes)||
         (MyData.getDate() != dia)||
         (MyData.getFullYear() != ano))
         valido = false;
    
	return valido;
}



/**
 * Função que valida os campos ao submit
 */
function validaCadastro()
{
	var nickname 	  = $('#usuario').val();
	var nome 		  = $('#nome').val();
	var email 		  = $('#email').val();
	
	var data 		  = $('#usuario_dia').val() + '/' + $('#usuario_mes').val() + '/' + $('#usuario_ano').val();
	var sexo 		  = $('#usuario_sexo').val();
	
	var senha 		  = $('#usuario_pass').val();
	var confirmaSenha = $('#senha2').val();
	var termos 		  = $('#usuario_termos').attr('checked');

	$('#termosValidaMsg').slideUp('fast');
	$('#nomeValidaMsg').slideUp('fast');
	$('#usuarioValidaMsg').slideUp('fast');
	$('#emailValidaMsg').slideUp('fast');
	
	$('#dataNascValidaMsg').slideUp('fast');
	$('#sexoValidaMsg').slideUp('fast');
	

	$('#senhaValidaMsg').slideUp('fast');
	$('#senhaNumValidaMsg').slideUp('fast');
	$('#confsenhaValidaMsg').slideUp('fast');
	$('#confsenhaNumValidaMsg').slideUp('fast');
	$('#confsenhaDifValidaMsg').slideUp('fast');
	$('#senhaDifValidaMsg').slideUp('fast');

	var erro = '';

	if(termos !== true){
		$('#termosValidaMsg').slideDown('normal');
		erro = 'termos';
	}

	if(nome == ''){
		$('#nomeValidaMsg').slideDown('normal');
		erro = 'nome';
	}

	if(nickname == ''){
		$('#usuarioValidaMsg').slideDown('normal');
		erro = 'nickname';
	}
	
	if(data == '' || !validarData(data))
	{
		$('#dataNascValidaMsg').slideDown('normal');
		erro = 'data';
	}
	
	if(sexo == '' )
	{
		$('#sexoValidaMsg').slideDown('normal');
		erro = 'sexo';
	}

	//var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var filter = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;

	if(email == ''){
		$('#emailValidaMsg').slideDown('normal');
		erro = 'email';
	}
	else if(!filter.test(email)){

		if(email == 'chaves+2@uol.com.br')
			alert(filter);

		$('#emailMsg').html('Formato de e-mail inválido!');
		$('#emailMsg').slideDown('normal');
		setTimeout("$('#emailMsg').slideUp('normal');$('#emailMsg').html('');$('#email').focus();",3000);
		erro = 'email';
    }


	if(senha == ''){
		$('#senhaValidaMsg').slideDown('normal');
		erro = 'senha';
	}

	if(senha.length < 6 && senha.length > 0){
		$('#senhaNumValidaMsg').slideDown('normal');
		erro = 'senha';
	}

	if(confirmaSenha == ''){
		$('#confsenhaValidaMsg').slideDown('normal');
		erro = 'senha';
	}

	if(confirmaSenha.length < 6 && confirmaSenha.length > 0){
		$('#confsenhaNumValidaMsg').slideDown('normal');
		erro = 'senha';
	}

	if(confirmaSenha != senha && senha.length > 5 && confirmaSenha.length > 5){
		$('#confsenhaDifValidaMsg').slideDown('normal');
		$('#senhaDifValidaMsg').slideDown('normal');
		erro = 'senha';
	}


	if(erro != ''){
		return false;
	}else{
		return true;
	}

}



/**
*	Transforma o texto do nome em minsculo e substitui os espaos por _
*/

function arrumaNome(texto){

	var contTexto = texto.length;
	texto = texto.replace(" ","_");
	texto = texto.replace(/[^a-z0-9_]/gi,"");
	texto = texto.toLowerCase();

	if(contTexto > texto.length){
		$('#palavraProibidaMsg').slideUp('fast');
		$('#usuarioMsg').slideDown('normal');
		setTimeout("$('#usuarioMsg').slideUp('normal');",3000);
		$('#usuarioOk').hide();
		$('#usuarioNo').show();
		arrumaNome(texto);
	}else{

		$.ajax({
		   type: "POST",
		   url: "users/ajax",
		   data: "acao=validanome&texto="+texto,
		   success: function(retorno){
			 retorno = retorno.replace(/^\s+|\s+$/g,"");

			 if(retorno == 'nada'){
				$('#usuarioOk').hide();
				$('#usuarioNo').hide();
			 }else{
				 if(retorno == 'ok'){
					$('#usuarioOk').show();
					$('#usuarioNo').hide();
				 }else if(retorno != 'no' && retorno != 'ok'){
					$('#usuarioOk').hide();
					$('#usuarioNo').show();
					$('#usuarioMsg').slideUp('fast');
					$('#palavraProibidaMsg').html('A palavra '+retorno+' foi removida por ser considerada maliciosa!');
					$('#palavraProibidaMsg').slideDown('normal');
					setTimeout("$('#palavraProibidaMsg').slideUp('normal');",3000);
					texto = texto.replace(retorno,"");
					$('#usuario').val(texto);
					arrumaNome(texto);
				 }else{
					$('#usuarioOk').hide();
					$('#usuarioNo').show();
				 }
			   }
		   }

		 });
	}

	$('#usuario').val(texto);

}


/**
*	Valida o texto do nome para ver se j existe no banco
*/

function validaNome(texto){

	var contTexto = texto.length;
	texto = texto.replace(" ","_");
	texto = texto.replace(/[^a-z0-9_]/gi,"");
	texto = texto.toLowerCase();

	$.ajax({
	   type: "POST",
	   url: "users/ajax",
	   data: "acao=validanome&texto="+texto,
	   success: function(retorno) {
		 retorno = retorno.replace(/^\s+|\s+$/g,"");

		 if(retorno == 'ok')
		 {
			$('#usuarioOk').show();
			$('#usuarioNo').hide();
			if($('#nome').val() == ''){
				$('#nome').val(texto);
			}
		 }
		 
		 else if(retorno != 'nada')
		 {
			$('#usuarioOk').hide();
			$('#usuarioNo').show();
			
			if(texto.length < 3 || texto.length > 20)
			{
				$('#palavraProibidaMsg').html('Aceitos nomes entre 3 e 20 caracteres!');
			}
			else
			{
				$('#palavraProibidaMsg').html('Nome de usuário já registrado!');
			}
			
			$('#palavraProibidaMsg').slideDown('normal');
			setTimeout("$('#palavraProibidaMsg').slideUp('normal');$('#usuario').focus();",3000);
		 }

	   }

	});

}

/**
*	Valida o e-mail do usuário
*/

function validaEmail(email)
{
	var filter = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	if (!filter.test(email)) {
		if(email != ''){
			$('#emailMsg').html('Formato de e-mail inválido!');
			$('#emailMsg').slideDown('normal');
			setTimeout("$('#emailMsg').slideUp('normal');$('#emailMsg').html('');$('#email').focus();",3000);
		}

	}
	
	else
	{
		$.ajax({
		   type: "POST",
		   url: "users/ajax",
		   data: "acao=validaemail&email="+email,
		   success: function(retorno){
				 retorno = retorno.replace(/^\s+|\s+$/g,"");

				 if(retorno != 'ok'){
					$('#emailMsg').slideDown('normal');
					$('#emailMsg').html('E-mail já registrado!');
					setTimeout("$('#emailMsg').slideUp('normal');$('#emailMsg').html('');$('#email').focus();",3000);
				 }
		   }

		 });
	}
}


/**
 *	Verifica se a qtd de caracteres digitados é maior que 6
 */

function minimoCaracteresSenha(senha)
{
	if(senha.length > 5 )
	{
		$('#senhaOk').show();
		$('#senhaNo').hide();
	}
	else if(senha.length > 0 && senha.length < 6)
	{
		$('#senhaOk').hide();
		$('#senhaNo').show();
	}
}

/**
*	Verifica se o campo confirmar senha está igual ao campo senha
**/

function comparaSenhas(confirmarSenha)
{
	var senha = $('#usuario_pass').val();
	if(confirmarSenha.length > 5)
	{
		if(senha == confirmarSenha)
		{
			$('#confsenhaOk').show();
			$('#confsenhaNo').hide();
		}
		else{
			$('#confsenhaOk').hide();
			$('#confsenhaNo').show();
		}
	}
	
	else if(confirmarSenha.length > 0 && confirmarSenha.length < 6)
	{
		$('#confsenhaOk').hide();
		$('#confsenhaNo').show();
	}

}
