/*
	Arquivo JS com as fun��es da entidade Pessoa
*/

function Pessoa()
{
	var FormNovoCliente = "#frmNovoCliente";
	var FormNovoClienteSite = "#frmNovoClienteSite";
	var FormNaoSouCliente = "#frmNaoSouCliente";
	var FormLoginSite = "#frmLoginSite";
	var FormMudarSenha = "#frmMudarSenha";
	var FormEsqueciSenha = "#frmEsqueciSenha";
	
	
		
	if($(FormNovoCliente).length > 0 || $(FormNovoClienteSite).length > 0)
	{
		//Carregar os combos de Pa�s/Estado/Munic�pio
		carregarCombosPessoa();
	}
	
	
	//valida��es para o formul�rio 
	if($(FormLoginSite).length > 0)
	{
		$(FormLoginSite).validate
		(
			{
				errorPlacement: function(error, element)
				{
					error.appendTo( $("#erro" + element.attr("id")) );
				},
				rules: 
				{
					txtEmail:
					{
						required: true,
						email: true
					},
					txtSenha:
					{
						required: true
					}
				},
				messages: 
				{
					txtEmail:
					{
						required: FORMULARIO_FAQ_EMAIL,
						email: FORMULARIO_FAQ_EMAIL_VALIDO
					},
					txtSenha:
					{
						required: FORMULARIO_FAQ_SENHA
					}
				}
			}
		);
		
		/**
		$(".bt-senha").click(function(){
			if ($(this).is(".thickbox"))
			{
				if ($("#txtEmail").valid())
				{
					return false;
					//$(".bt-senha").attr("href", "#");
					//$(".bt-senha").attr("class", "bt-senha");
				}
				else
				{
					return true;
					//$(".bt-senha").attr("class", "bt-senha thickbox");
					//$(".bt-senha").attr("href", "EsqueciSenha.php?keepThis=true&amp;TB_iframe=false&amp;height=130&amp;width=400&amp;modal=true");
				}
			}
		});
		**/
		
	}
	
	
	//valida��es para o formul�rio 
	if($(FormNaoSouCliente).length > 0)
	{
		$(FormNaoSouCliente).validate
		(
			{
				errorPlacement: function(error, element) 
				{
					error.appendTo( $("#erro" + element.attr("id")) );
				},			
				rules: 
				{
					txtNovoEmail:
					{
						required: true,
						email: true,
						remote: "acao/Pessoa.php?acao=VerificarEmailNovoCliente"
					}
				},
				messages: 
				{
					txtNovoEmail:
					{
						required: FORMULARIO_FAQ_EMAIL,
						email: FORMULARIO_FAQ_EMAIL_VALIDO,
						remote: FORMULARIO_CADASTRO_EMAIL_EXISTE
					}
				}
			}
		);
	}
	
	
	/**
	* valida��es para o formul�rio de cadastro do SITE
	**/
	if($(FormNovoClienteSite).length > 0)
	{
		$("#txtCPF").mask("999.999.999-99");
		$("#txtDataNascimento").mask("99/99/9999");
		$("#txtCEP1").mask("99999-999");
		$("#txtTelResidencial").mask("(99)9999-9999");
		$("#txtCelular").mask("(99)9999-9999");
		$("#txtRecados").mask("(99)9999-9999");
		$("#txtNumero").numeric();
		
		/**
		* M�todo para buscar o cep do cliente no site dos correios
		**/
		$("#btConsultaCep").click(function(){
			window.open('http://www.correios.com.br/Servicos/cep/cep_loc_log.cfm','buscaCep','');
		});
		
		$(FormNovoClienteSite).validate
		(
			{
				errorPlacement: function(error, element) 
				{
					error.appendTo( $("#erro" + element.attr("id")) );
				},
				rules:
				{
					txtNome:
					{
						required: true
					},
					txtSobrenome:
					{
						required: true
					},
					txtSenha:
					{
						required: true
					},
					txtSenha2:
					{
						required: true,
						equalTo: "#txtSenha"
					},
					selSexo:
					{
						required: true
					},
					txtEmail:
					{
						required: true,
						email:true
					},
					txtDataNascimento:
					{
						diferente: "__/__/____",
						data: true
						
					},
					txtCPF:
					{
						required: function()
						{
							var valor = $("#txtCPF").val();
							if((valor.length > 0) && (!/_/.test(valor))) return true;
							return false;
						},
						cnpf: true,
						remote: "acao/Pessoa.php?acao=verificarCpf&codigo="+$("#hdncodigo").val()
					}
				},
				messages: 
				{
					
					txtNome:
					{
						required: FORMULARIO_CADASTRO_NOME
					},
					txtSobrenome:
					{
						required: FORMULARIO_CADASTRO_SOBRENOME
					},
					txtSenha:
					{
						required: FORMULARIO_CADASTRO_SENHA
					},
					txtSenha2:
					{
						required: FORMULARIO_CADASTRO_SENHA_CONFIRMA,
						equalTo: FORMULARIO_CADASTRO_SENHA_DIFERENTE
					},
					selSexo:
					{
						required: FORMULARIO_CADASTRO_SEXO
					},
					txtEmail:
					{
						required: FORMULARIO_CADASTRO_EMAIL,
						email: FORMULARIO_CADASTRO_EMAIL_VALIDO
					},
					txtDataNascimento:
					{
						diferente: FORMULARIO_CADASTRO_NASCIMENTO,
						data: FORMULARIO_CADASTRO_NASCIMENTO_VALIDO
					},
					txtCPF:
					{
						required: FORMULARIO_CADASTRO_CPF,
						cnpf: FORMULARIO_CADASTRO_CPF_VALIDO,
						remote: FORMULARIO_CADASTRO_CPF_EXISTE
					}
				}
			}
		);
	}
	
	
	
	/*
		valida��es para o formul�rio da p�gina Carrinho03
	*/
	if($(FormNovoCliente).length > 0)
	{
		var subTotalCarrinho = 0;
		
		// CEP DIGITADO
		var cep1 = new String($("#cepDigitado").val());
		cep1 = cep1.replace("-", "");
		
		// CEP INFORMADO
		var cep2 = new String($("#txtCEP2").val());
		cep2 = cep2.replace("-", "");
		
		// CEP CADASTRADO
		var cep3 = new String($("#txtCEP1").val());
		cep3 = cep3.replace("-", "");
		
		if (cep1 == cep3)
		{
			$("#rdReceberMesmoEndereco").click();
		}
		else
		{
			$("#rdReceber").click();
		}
		
		
		function validaCep()
		{
			var freteSelecionado = false;
			$('#frmNovoCliente .freteItem').each(function()
			{
				if ($(this).is(':checked'))
				{
					freteSelecionado = true;
				}
			});
			var rdReceberMesmoEndereco = $("#rdReceberMesmoEndereco").attr("checked");		
			
			// CEP DIGITADO
			var cep1 = new String($("#cepDigitado").val());
			cep1 = cep1.replace("-", "");
			
			// CEP INFORMADO
			var cep2 = new String($("#txtCEP2").val());
			cep2 = cep2.replace("-", "");
			
			// CEP CADASTRADO
			var cep3 = new String($("#txtCEP1").val());
			cep3 = cep3.replace("-", "");
			
			// se CEP informado for != CEP cadastrado... recalcula frete
			//alert(cep1 != cep2 && freteSelecionado == false);
			//alert(cep1);
			//alert(cep2);
			//alert(freteSelecionado);
			
			
			//alert((rdReceberMesmoEndereco == true) && (cep3 != cep2) && (freteSelecionado != true));
			if((cep1 != cep2 && freteSelecionado == false) || ($("#codigoFrete").val() == "")) 
			{
				// Previne o erro da pend�ncia 504 - ir direto para o carrinho 03 sem calcular o frete mostra um NAN no valor total.
				if ((cep2 == "" || cep2 == "_____-___"))
				{
					alert("Informe o Cep.");
					return;
				}
				
				
				
				/**
				 * @todo Mensagem desnecess�ria
				 * @author Gibran (gibran@gadbrivia.com.br)
				 * 
				alert("&Eacute; necess&aacute;rio calcular o valor do frete novamente");
				 */
				
				$("#fretes").addClass("hidden");
				$("#carregando").removeClass("hidden");
				$("#valorPedido").removeClass("hidden");
				
				var cep = cep2;
				
				$.ajax({
					type: "POST",
					url: "acao/Carrinho.php",
					data: "acao=calcularCustoFrete&cep="+cep,
					success: function(msg)
					{
						
						if(msg.length > 20)//gamb
						{
							
							$.ajax({
								type: "POST",
								url: "acao/Carrinho.php",
								data: "acao=valorTotalCarrinho",
								success: function(responseTotal)
								{
									//subTotalCarrinho = parseFloat(responseTotal);
									subTotalCarrinho = $("#hdnSubTotal").val();

									$("#carregando").addClass("hidden");
									$("#fretes").html(msg);
									$("#fretes").removeClass("hidden");
									$("#valorPedido").removeClass("hidden");

									$(".freteItem").change(function()
									{
										var codigoTipoFrete = $(this).val();
										//var valorFrete = parseFloat($("#valorFrete"+codigoTipoFrete).val());
										var valorFrete = parseFloat($("#valorFrete"+codigoTipoFrete).val()) - ((parseFloat($("#valorFrete"+codigoTipoFrete).val()) * parseInt($("#hdnPromocaoFreteUF").val())) / 100);
								
										var diasEntregaFrete = $("#diasEntregaFrete"+codigoTipoFrete).val()
										
										//$(".valor-frete").find(".valor").html("R$ "+valorFrete);
										$(".valor-frete").find(".valor").html("R$ "+FormatarDinheiro(valorFrete.toFixed(2)));
								
										//$("#fretes").addClass("hidden");
										atualizarValorTotal(valorFrete, subTotalCarrinho);
										
										$("#cepDigitado").val($("#txtCEP2").val().replace("-",""));
										$("#freteEscolhido").val($("#valorFrete"+codigoTipoFrete).val());
										$("#codigoFrete").val(codigoTipoFrete);
										$("#diasEntregaFrete").val(diasEntregaFrete);
										
									});
								}
							});
						} 
						else 
						{
							$("#carregando").addClass("hidden");
							$(".valor-frete").find(".valor").html("R$ "+msg);
							atualizarValorTotal();
						}
					}
				});
				
				return false;
			}
			else
			{
				return true;
			}
			
		}		
		
		function atualizarValorTotal(frete, subtotalcarrinho)
		{
			valorTotal = parseFloat(frete) + parseFloat(parseFloat(subtotalcarrinho).toFixed(2));
			valorTotal = valorTotal.toFixed(2);
			$(".valor-total-compras").html("R$ "+valorTotal);
		}
		
		$("#txtCPF").mask("999.999.999-99");
		$("#txtDataNascimento").mask("99/99/9999");
		$("#txtCEP1").mask("99999-999");
		$("#txtCEP2").mask("99999-999");
		$("#txtTelResidencial").mask("(99)9999-9999");
		$("#txtCelular").mask("(99)9999-9999");
		$("#txtRecados").mask("(99)9999-9999");
		$("#txtNumero").numeric();
		$("#txtNumero2").numeric();
		
		$(FormNovoCliente).validate
		(
			{
				submitHandler: function()
				{
					if(validaCep())
					{
						$(FormNovoCliente)[0].submit();
					}
				},
				errorPlacement: function(error, element) 
				{
					error.appendTo( $("#erro" + element.attr("id")) );
				},
				rules:
				{
					txtNome:
					{
						required: true
					},
					txtSobrenome:
					{
						required: true
					},
					txtCPF:
					{
						required: true,
						cnpf: true,
						remote: "acao/Pessoa.php?acao=verificarCpf&codigo="+$("#hdncodigo").val()
					},
					txtDataNascimento:
					{
						required: true,
						"data": true
					},
					selSexo:
					{
						required: true
					},
					txtEmail:
					{
						required: true,
						email:true
					},
					txtCEP1:
					{
						required: true
					},
					selPais:
					{
						required: true
					},
					selEstado:
					{
						required: true
					},
					selMunicipio:
					{
						required: true
					},
					txtBairro:
					{
						required: true
					},
					txtEndereco:
					{
						required: true
					},
					txtNumero:
					{
						required: true
					},
					txtTelResidencial:
					{
						required: true
					},
					txtSenha:
					{
						required: true
					},
					txtSenha2:
					{
						required: true,
						equalTo: "#txtSenha"
					},
					txtCEP2:
					{
						required: function(){return $("#rdReceber").is(":checked");}
					},
					selPais2:
					{
						required: function(){return $("#rdReceber").is(":checked");}
					},
					selEstado2:
					{
						required: function(){return $("#rdReceber").is(":checked");}
					},
					selMunicipio2:
					{
						required: function(){return $("#rdReceber").is(":checked");}
					},
					txtBairro2:
					{
						required: function(){return $("#rdReceber").is(":checked");}
					},
					txtEndereco2:
					{
						required: function(){return $("#rdReceber").is(":checked");}
					},
					txtNumero2:
					{
						required: function(){return $("#rdReceber").is(":checked");}
					}					
				},
				messages: 
				{
					txtNome:
					{
						required: FORMULARIO_CADASTRO_NOME
					},
					txtSobrenome:
					{
						required: FORMULARIO_CADASTRO_SOBRENOME
					},
					txtCPF:
					{
						required: FORMULARIO_CADASTRO_CPF,
						cnpf: FORMULARIO_CADASTRO_CPF_VALIDO,
						remote: FORMULARIO_CADASTRO_CPF_EXISTE
					},
					txtDataNascimento:
					{
						required: FORMULARIO_CADASTRO_NASCIMENTO,
						"data": FORMULARIO_CADASTRO_NASCIMENTO_VALIDO
					},
					selSexo:
					{
						required: FORMULARIO_CADASTRO_SEXO
					},
					txtEmail:
					{
						required: FORMULARIO_CADASTRO_EMAIL,
						email: FORMULARIO_CADASTRO_EMAIL_VALIDO
					},
					txtCEP1:
					{
						required: FORMULARIO_CADASTRO_CEP
					},
					selPais:
					{
						required: FORMULARIO_CADASTRO_PAIS
					},
					selEstado:
					{
						required: FORMULARIO_CADASTRO_ESTADO
					},
					selMunicipio:
					{
						required: FORMULARIO_CADASTRO_MUNICIPIO
					},
					txtBairro:
					{
						required: FORMULARIO_CADASTRO_BAIRRO
					},
					txtEndereco:
					{
						required: FORMULARIO_CADASTRO_ENDERECO
					},
					txtNumero:
					{
						required: FORMULARIO_CADASTRO_NUMERO
					},
					txtTelResidencial:
					{
						required: FORMULARIO_CADASTRO_FONE
					},
					txtSenha:
					{
						required: FORMULARIO_CADASTRO_SENHA
					},
					txtSenha2:
					{
						required: FORMULARIO_CADASTRO_SENHA_CONFIRMA,
						equalTo: FORMULARIO_CADASTRO_SENHA_DIFERENTE
					},
					txtCEP2:
					{
						required: FORMULARIO_CADASTRO_CEP_ENTREGA
					},
					selPais2:
					{
						required: FORMULARIO_CADASTRO_PAIS_ENTREGA
					},
					selEstado2:
					{
						required: FORMULARIO_CADASTRO_ESTADO_ENTREGA
					},
					selMunicipio2:
					{
						required: FORMULARIO_CADASTRO_MUNICIPIO_ENTREGA
					},
					txtBairro2:
					{
						required: FORMULARIO_CADASTRO_BAIRRO_ENTREGA
					},
					txtEndereco2:
					{
						required: FORMULARIO_CADASTRO_ENDERECO_ENTREGA
					},
					txtNumero2:
					{
						required: FORMULARIO_CADASTRO_NUMERO_ENTREGA
					}
				}
			}
		);
		
		//copia todos os dados de endere�o residencial da pessoa
		//marca todos como somente leitura
		$("#rdReceberMesmoEndereco").click(function(){
			if ($("#selMunicipio").val() != "")
			{
				carregarInfoLocalidade($("#selPais").val(),$("#selEstado").val(),$("#selMunicipio").val(),"2");
			}
			$("#txtCEP2").val($("#txtCEP1").val()).attr("readonly","readonly");
			$("#txtBairro2").val($("#txtBairro").val()).attr("readonly","readonly");
			$("#txtEndereco2").val($("#txtEndereco").val()).attr("readonly","readonly");
			$("#txtNumero2").val($("#txtNumero").val()).attr("readonly","readonly");
			$("#txtComplemento2").val($("#txtComplemento").val()).attr("readonly","readonly");
			$("#labelPais").html($("option:selected:eq(0)","#selPais").text());
			$("#labelEstado").html($("option:selected:eq(0)","#selEstado").text());
			$("#labelMunicipio").html($("option:selected:eq(0)","#selMunicipio").text());
			$("label.label-select").show();
			$("select.segundo-endereco-select").hide();
			$("#hdnMunicipioEntrega").val($("#selMunicipio2").val());
		});
		
		//remove o somente leitura dos campos do endere�o de entrega
		$("#rdReceber").click(function(){
			$("#txtCEP2").removeAttr("readonly");
			$("#txtBairro2").removeAttr("readonly");
			$("#txtEndereco2").removeAttr("readonly");
			$("#txtNumero2").removeAttr("readonly");
			$("#txtComplemento2").removeAttr("readonly");
			$("label.label-select").hide();
			$("select.segundo-endereco-select").show();
		});
		
		// quando o campo for alterado, guardo no hidden pra garantir que o dado ser� postado corretamente
		$("#selMunicipio2").change(function(){
			$("#hdnMunicipioEntrega").val($(this).val());
		});
	}
	
	
	/*
		valida��o do form de Mudar a Senha
	*/
	if($(FormMudarSenha).length > 0)
	{
		$(FormMudarSenha).validate
		(
			{
				errorPlacement: function(error, element)
				{
					error.appendTo( $("#erro" + element.attr("id")) );
				},
				rules: 
				{
					txtSenhaAntiga:
					{
						required: true
					},
					txtSenhaNova:
					{
						required: true,
						diferente: function (element){return $("#txtSenhaAntiga").val()}
					},
					txtSenhaNova2:
					{
						required: true,
						equalTo: "#txtSenhaNova"
					}
				},
				messages: 
				{
					txtSenhaAntiga:
					{
						required: "Digite a sua Senha Antiga"
					},
					txtSenhaNova:
					{
						required: "Digite a Nova Senha",
						diferente: "A Nova Senha não Pode ser Igual a Antiga"
					},
					txtSenhaNova2:
					{
						required: "Confirme a Nova Senha",
						equalTo: "Senha n&atilde;o Confere"
					}
				}
			}
		);
	}
	
	
	//valida��es para o formul�rio 
	if($(FormEsqueciSenha).length > 0)
	{
		$("#txtEmail").val(window.parent.$("#txtEmail").val());
		$(FormEsqueciSenha).validate
		(
			{
				errorPlacement: function(error, element) 
				{
					error.appendTo( $("#erro" + element.attr("id")) );
				},			
				rules: 
				{
					txtEmail:
					{
						required: true,
						email: true
					}
				},
				messages: 
				{
					txtEmail:
					{
						required: "Informe o Email",
						email: "Email Inv&aacute;lido"
					}
				}
			}
		);
	}
	
}