/**
* Arquivo que irá realizar o cadastro do internauta no sistema
* 
* @author Rodrigo de Macêdo <tmuniz@jc.com.br> Sistema Jornal do Commercio de Comunicação
* Necessita do framework jQuery para o funcionamento.
*
*/

//Início do documento
$(document).ready(
 	function(){
		//Carregando
		//onLoad	: carregaTermos15Dias();

		//
		// buscar o endereço do internauta
		//
		$("#cep").bind("change",
			function(){
				if(this.value.length == 9){
					$("#cidade").attr("value", "Carregando...");
					$("#bairro").attr("value", "Carregando...");
					$("#endereco").attr("value", "Carregando...");
				
					$.post("../../tratamento/endereco/trata.buscarPorCep.php",
						{
							strCep: this.value
						},
						function(retorno, textStatus){
							if(retorno.strRua != undefined){
								$("#endereco").val(retorno.strRua);
								$("#cidade").val(retorno.strCidade);
								$("#bairro").val(retorno.strBairro);
								$("#estado").val(retorno.strEstado);
							}else{
								alert("CEP não encontrado.");
								$("#estado").attr("value", "");
								$("#cidade").attr("value", "");
								$("#bairro").attr("value", "");
								$("#endereco").attr("value", "");
							}

							$("#endereco").removeAttr("disabled");
							$("#cidade").removeAttr("disabled");
							$("#bairro").removeAttr("disabled");
							$("#estado").removeAttr("disabled");
						},"json"
					);
				}
			}
		);


		//
		// EVENTO DA MUDANÇA DO COMBO DO PAÍS. VALIDAÇÕES DOS CAMPOS NA ESCOLHA DO PAÍS
		//
		$("#pais").bind("change",
			function(){
				
				if(this.value == 'Brasil'){
					
					$("#cep").attr("disabled","");
					
					$("#numeroResidencia").attr("disabled","");
				
					$("#complemento").attr("disabled","");
				
					$("#dddTelefone").attr("disabled","");
				
					$("#telefone").attr("disabled","");
				
					$("#dddCelular").attr("disabled","");
				
					$("#celular").attr("disabled","");	
				}else{
					
					$("#cep").attr("disabled", "true");
				
					$("#numeroResidencia").attr("disabled", "true");
				
					$("#complemento").attr("disabled", "true");
				
					$("#dddTelefone").attr("disabled", "true");
				
					$("#telefone").attr("disabled", "true");
				
					$("#dddCelular").attr("disabled", "true");
				
					$("#celular").attr("disabled", "true");
				
					$("#estado").attr("disabled", "true");
				
					$("#cidade").attr("disabled", "true");
				
					$("#bairro").attr("disabled", "true");
				
					$("#endereco").attr("disabled", "true");
				
					$("#cep").attr("value", "");
				
					$("#estado").attr("value", "");
				
					$("#cidade").attr("value", "");
				
					$("#bairro").attr("value", "");
					
					$("#endereco").attr("value", "");
				
				
				}
			}
		); //fim do bind do país




	}//fim do function do ready

)

/**
 * Função de cadastro do internauta
 *
 */
function cadastrar(){
	arrErros = new Array();
	var dataNascimento = "";
	//colocando os campos nas cores naturais
	arrCampos = new Array(
		"login",
		"senha",
		"confirmacao",
		"nome",
		"estado",
		"cpf",
		"pais",
		"endereco",
		"numeroResidencia",
		"complemento",
		"cidade",
		"bairro",
		"cep",
		"dddTelefone",
		"telefone",
		"email",
		"dddCelular",
		"celular",
		"emailAlternativo",
		"dia",
		"mes",
		"ano",
		"sexo",
		"renda",
		"escolaridade",
		"timeFavorito",
		"profissao",
		"assinante",
		"leitor",
		"recebe15dias",
		"promocao",
		"mailMarketing"
	);
	
	for(k = 0 ; k < arrCampos.length ; k++){
		$("#" + arrCampos[k]).css({"background-color":""});
		$("#" + arrCampos[k]).css({"border-width":""});
	}
	
	//Validando campos vazios
	
	if(jQuery.trim($("#login").val()) == undefined || jQuery.trim($("#login").val()) == ""){
		arrErros.push({id:"login",msg:"O campo login está vazio e precisa ser preenchido."});
	}else{
		if(!loginCheck($("#login").val())){
			arrErros.push({id:"login",msg:"O login precisa ter no mínimo seis caracteres, no máximo doze e possuir pelo menos uma letra.\nO login não pode conter caracteres especiais e nem espaços."});		
		}
	}
	
	if(!senhaCheck($("#senha").val())){
			arrErros.push({id:"senha",msg:"A senha precisa ter no mínimo seis caracteres, possuir pelo menos uma letra e não pode conter caracteres especiais."});
	}else{	
		if(jQuery.trim($("#senha").val()) != jQuery.trim($("#confirmacao").val())){
			arrErros.push({id:"senha",msg:"O campo senha e confirmação de senha precisam ser iguais."});
		}
	}		
			
	if(jQuery.trim($("#nome").val()) == undefined || jQuery.trim($("#nome").val()) == ""){
		arrErros.push({id:"nome",msg:"O campo nome está vazio e precisa ser preenchido."});
	}
	
	                    if(jQuery.trim($("#cpf").val()) == undefined || jQuery.trim($("#cpf").val()) == ""){
		arrErros.push({id:"cpf",msg:"O campo cpf está vazio e precisa ser preenchido."});
	}else{
		if(!validaCpf($("#cpf").val())){
			arrErros.push({id:"cpf",msg:"O cpf está inválido."});
		}
	}
	if(jQuery.trim($("#pais").val()) == undefined || jQuery.trim($("#pais").val()) == ""){
		arrErros.push({id:"pais",msg:"O campo país está vazio e precisa ser preenchido."});
	}
	
	//se for exterior, não precisa validar estes campos vazios
	if($("#pais").val() != "Exterior"){
		
		if(jQuery.trim($("#cep").val()) == undefined || jQuery.trim($("#cep").val()) == ""){
			arrErros.push({id:"cep",msg:"O campo cep está vazio e precisa ser preenchido."});
		}else{
			//Validando o tamanho do cep
			if($("#cep").val().length < 9){
				arrErros.push({id:"cep",msg:"O campo de CEP está inválido."});
			}
	
			if(isNaN(retirarCaracteres(new Array("-"),$("#cep").val()))){			
				arrErros.push({id:"cep",msg:"O campo de cep só permite números."});
			}
	
		}
		if(jQuery.trim($("#estado").val()) == undefined || jQuery.trim($("#estado").val()) == ""){
			arrErros.push({id:"estado",msg:"O campo estado está vazio e precisa ser preenchido."});
		}
		if(jQuery.trim($("#cidade").val()) == undefined || jQuery.trim($("#cidade").val()) == ""){
			arrErros.push({id:"cidade",msg:"O campo cidade está vazio e precisa ser preenchido."});
		}
		if(jQuery.trim($("#bairro").val()) == undefined || jQuery.trim($("#bairro").val()) == ""){
			arrErros.push({id:"bairro",msg:"O campo bairro está vazio e precisa ser preenchido."});
		}
		if(jQuery.trim($("#endereco").val()) == undefined || jQuery.trim($("#endereco").val()) == ""){
			arrErros.push({id:"endereco",msg:"O campo endereço está vazio e precisa ser preenchido."});
		}
		if(isNaN($("#numeroResidencia").val())){
			arrErros.push({id:"numeroResidencia",msg:"O campo número da residência só permite números."});		
		}
	
		if(jQuery.trim($("#dddTelefone").val()) != "" || jQuery.trim($("#telefone").val()) != ""){
	
			if(isNaN($("#dddTelefone").val())){
				arrErros.push({id:"dddTelefone", msg:"O campo de DDD do telefone inválido, por favor preencha-o corretamente."});
			}else{
	
				if(jQuery.trim($("#dddTelefone").val()) == ""){
					arrErros.push({id:"dddTelefone", msg:"O campo de DDD do telefone está vazio, por favor preencha-o."});		
				}else{
					if($("#dddTelefone").val().length < 2){
						arrErros.push({id:"dddTelefone",msg:"O campo de DDD do telefone tem que ter 2 dígitos."});
					}
				}
	
			}
	
			if(isNaN(retirarCaracteres(new Array("-"),$("#telefone").val()))){
				arrErros.push({id:"telefone", msg:"O campo de telefone está inválido, por favor preencha-o corretamente."});
			}else{
	
				if(jQuery.trim($("#telefone").val()) == ""){
					arrErros.push({id:"telefone", msg:"O campo de telefone está vazio, por favor preencha-o."});		
				}else{
					if($("#telefone").val().length < 8){
						arrErros.push({id:"telefone",msg:"O campo telefone tem que ter 8 dígitos."});
					}
				}
			}
		}
	
		if(jQuery.trim($("#dddCelular").val()) != "" || jQuery.trim($("#celular").val()) != ""){
	
			if(isNaN($("#dddCelular").val())){
				arrErros.push({id:"dddCelular", msg:"O campo de DDD do celular está inválido, por favor preencha-o corretamente."});
			}else{
				if(jQuery.trim($("#dddCelular").val()) == ""){
					arrErros.push({id:"dddCelular", msg:"O campo de DDD do celular está vazio, por favor preencha-o."});		
				}else{
					if($("#dddCelular").val().length < 2){
						arrErros.push({id:"dddCelular",msg:"O campo de DDD do celular tem que ter 2 dígitos."});
					}
				}
	
			}
	
			if(isNaN(retirarCaracteres(new Array("-"),$("#celular").val()))){
				arrErros.push({id:"celular", msg:"O campo de celular está inválido, por favor preencha-o corretamente."});
			}else{
	
				if(jQuery.trim($("#celular").val()) == ""){
					arrErros.push({id:"celular", msg:"O campo de celular está vazio, por favor preencha-o."});		
				}else{
					if($("#celular").val().length < 8){
						arrErros.push({id:"celular",msg:"O campo do celular tem que ter 8 dígitos."});
					}
				}
	
			}
		}
	
	}
			
	/*if(isNaN($("#dddTelefone").val())){
		arrErros.push({id:"dddTelefone",msg:"O campo de DDD do telefone só permite números."});
	
	}
	
	if(isNaN(retirarCaracteres(new Array("-"),$("#telefone").val()))){
		
		arrErros.push({id:"telefone",msg:"O campo de telefone só permite números."});
	}*/
	
	/*if(isNaN($("#dddCelular").val())){
		arrErros.push({id:"dddCelular",msg:"O campo de DDD do celular só permite números."});
	
	}
	if(isNaN(retirarCaracteres(new Array("-"),$("#celular").val()))){
		arrErros.push({id:"celular",msg:"O campo de celular só permite números."});
	
	}*/
	//Verificando se o e-mail está no formato correto
	
	if(jQuery.trim($("#email").val()) == undefined || jQuery.trim($("#email").val()) == ""){
		arrErros.push({id:"email",msg:"O campo e-mail está vazio e precisa ser preenchido."});
		
	}else{
		if(!emailCheck ($('#email').val())){
			arrErros.push({id:"email",msg:"O e-mail está inválido."});
		}
	 }
	
	if($('#emailAlternativo').val() != ""){
		if(!emailCheck ($('#emailAlternativo').val())){
			arrErros.push({id:"emailAlternativo",msg:"O e-mail alternativo está inválido."});
		}	
	}
	
	if($("#dia").val() == undefined || $("#dia").val() == ""){
		arrErros.push({id:"dia",msg:"O campo dia, na data de nascimento, está vazio e precisa ser preenchido."});
	}
	if($("#mes").val() == undefined || $("#mes").val() == ""){
		arrErros.push({id:"mes",msg:"O campo mês, na data de nascimento, está vazio e precisa ser preenchido."});
	}
	if($("#ano").val() == undefined || $("#ano").val() == ""){
		arrErros.push({id:"ano",msg:"O campo ano, na data de nascimento, está vazio e precisa ser preenchido."});
	}
	if(jQuery.trim($("#sexo").val()) == undefined || jQuery.trim($("#sexo").val()) == ""){
		arrErros.push({id:"sexo",msg:"O campo sexo está vazio e precisa ser preenchido."});
	}		
	if(jQuery.trim($("#escolaridade").val()) == undefined || jQuery.trim($("#escolaridade").val()) == ""){
		arrErros.push({id:"escolaridade",msg:"O campo escolaridade está vazio e precisa ser preenchido."});
	}		
	if(jQuery.trim($("#profissao").val()) == undefined || jQuery.trim($("#profissao").val()) == ""){
		arrErros.push({id:"profissao",msg:"O campo profissão está vazio e precisa ser preenchido."});
	}
	
	dataNascimento	= $('#dia').val() + "-" + $('#mes').val() + "-" + $('#ano').val();
	
	if($("#assinante").attr("checked") == false){
		
		assinante = 0;
		
	}else{
		assinante = 1;
	}
	
	
	if($("#leitor").attr("checked") == false){
		
		leitor = 0;
	
	}
	  else{
		leitor = 1;
	}
	
	if($("#recebe15dias").attr("checked") == false){
		
		recebe15dias = 0;
	
	}
	  else{
		recebe15dias = 1;
	}
		
	if($("#promocao").attr("checked") == false){
		promocao = 0;
	
	}
	else{
		promocao = 1;
	
	}
	
	if($("#mailMarketing").attr("checked") == false){
		
		mailMarketing = 0;
		
	}
	else{
		mailMarketing = 1;
	
	}
	
	if($("#strCaptcha").val().length < 4){
		arrErros.push({id:"strCaptcha",msg:"É preciso preencher os quatro caracteres de verificação que aparecem na imagem."});
	
	}
	
	var termos;
	if($("#termo").attr("checked") == false){
	
		alert("É preciso concordar com os termos de aceitação pra poder efetuar o cadastro.");
		return false;
	
	}
	else{
	
		termos = 1;
	
	}
	
	//Definindo o registro
	var strTemaNewsletter = "";
	$("input[@name=checkTemaNewsletter][@checked]").each( 
		function(){
			strTemaNewsletter += $(this).val() + "#";
		}
	);
	
	//Retirando a útlima cerquilha
	strTemaNewsletter = strTemaNewsletter.substr(0,strTemaNewsletter.length -1);
	
	//travando o botão
	$("#btAdicionar").attr("disabled",true);
	$("#btAdicionar").val("Processando...");
	
	//Sem erros
	if(arrErros.length == 0){
		//Realizando a requisição
		$.post("../../tratamento/central-do-internauta/trata.cadastrar.php",
			{
				strLogin	 		: $("#login").val(),	
				strSenha	 		: $("#senha").val(),	
				strConfirmacao		: $("#confirmacao").val(),
				strNome  	 		: $("#nome").val(),
				strCpf 	 		: $("#cpf").val(),
				strEstado 			: $("#estado").val(),
				strPais 			: $("#pais").val(),
				strEndereco			: $("#endereco").val(),
				intNumeroResidencia		: $("#numeroResidencia").val(),
				strComplemento		: $("#complemento").val(),
				strCidade 			: $("#cidade").val(),
				strBairro 			: $("#bairro").val(),
				strCep 			: $("#cep").val(),
				intDddFone			: $("#dddTelefone").val(),
				intTelefone			: $("#telefone").val(),
				strEmail 			: $("#email").val(),
				intDddCel			: $("#dddCelular").val(),
				intCelular			: $("#celular").val(),
				strEmailAlternativo		: $("#emailAlternativo").val(),
				strDataNascimento 		: dataNascimento,
				strSexo 			: $("#sexo").val(),
				strRenda 			: $("#renda").val(),
				intEscolaridade		: $("#escolaridade").val(),
				strTimeFavorito		: $("#timeFavorito").val(),
				strProfissao			: $("#profissao").val(),
				intAssinante 			: assinante,
				intLeitor 			: leitor,
				intRecebe15dias 		: recebe15dias,
				intPromocao 			: promocao,
				strTemas			: strTemaNewsletter,
				strCaptcha			: $("#strCaptcha").val(),
				intMailMarketing		: mailMarketing,
				intTermos			: termos
		
		},
		//Verificando o retorno
		function(retorno, textStatus){
			$("#btAdicionar").attr("disabled",false);
			$("#btAdicionar").val("Cadastrar");
			//Sem erro vindo do servidor
			if(textStatus != "success"){
				alert("Ocorreu um erro durante a requisição com o servidor, favor tentar novamente mais tarde!");

			}else{

				//Mostrando o resultado
				if(retorno.strTipo == "ok"){
					$("#coluna-1").html(retorno.html);	
					window.location = "#";
				}else if(retorno.strTipo == "email"){
					
					document.getElementById('formulario-cadastro').reset();
					alert(retorno.strMensagem);	
					
				}else{
					
					alert(retorno.strMensagem);
				}
			}
		},"json")//Fim da requisição em AJAX
		
	}else{
				$("#btAdicionar").attr("disabled",false);
		$("#btAdicionar").val("Cadastrar");
		
		//caso de erros
		strErro = "Atenção aos erros abaixo \n ------------------------\n";
		for(i = 0 ; i < arrErros.length ; i++){
			strErro += arrErros[i].msg + "\n";
			$("#" + arrErros[i].id).css({"background-color":"#FFE7E7"});
			$("#" + arrErros[i].id).css({"border-width":"1px"});
		}
		alert(strErro);
	}
	
}

		
function carregaTermos15Dias(){
	if($("#recebe15dias").attr("checked") == false){
		$("#divTermos15Dias").hide("flag");
	}else{
		$("#divTermos15Dias").show("flag");
	}
}