// JavaScript Document
function controlaLinhaPessoa(linhaExibir, linhaEsconder){
	
	//Função para exibir uma linha de uma tabela e escoder outra linha
	//Os parâmetros são:
	//linhaExibir: classe de um TR para aplicar display:''
	//linhaEsconder: classe de um TR para aplicar display:'none'
	
	$(linhaExibir).css('display',''); //Linha para exibir
	$(linhaEsconder).css('display','none'); //Linha para esconder
	
}

function validaCadastroPrimario(campo, valor, cliente){
	//Função para verificar se o cliente sendo cadastrado já possui ou não registro no DB.
	//Parâmetros:
	//campo: nome do campo que está sendo validado;
	//valor: valor do campo para pesquisa;
	//cliente: código do cliente - se for cadastro, vem como 0 (zero), senão vem como código do cliente.
	
	//A validação só é feita se o valor estiver preenchido
	if (valor != '' && valor != '___.___.___-__'){
		
		//Exibe a imagem de aguarde...
		$('#imgWait').css('visibility','visible');
		
		//Ajax para validar o registro
		$.ajax({
			type:'get',
			cache:false,
			url:'inc/funcoes.cliente.asp?link=primario',
			data:'campo='+campo+'&valor='+valor+'&cod='+cliente,
			success:function(response){
				//Se o retorno for diferente de vazio, exibir a mensagem (foi encontrado um registro)
				if (response != ''){
					alert('Atenção!\n'+response);
					$('#'+campo).val('');
					$('#'+campo).focus();
				}
			},
			erro:function(request, status){
			},
			complete:function(){
				$('#imgWait').css('visibility','hidden');
			}			   
		});
	}
	
}

function validaCadastroCliente(tipo){
	
	//Função para validar o cadastro de cliente.
	//Pode ser utilizado tanto para cadastro quanto alteração, de acordo com o parâmetro tipo:
	//Tipo: add => para cadastro de clientes;
	//Tipo: upd => para atualização de cadastro
	
	var retorno = '';
	var campo = '';
	
	//Verificar se pode prosseguir com a validação.
	//Se o campo hdConfirmar for vazio, prossegue, caso contrário, exibe msg informando que está processando o cadastro
	if ($('#hdConfirmar').val() == ''){	
		//Validar tipo de pessoa (um dos itens deve ser selecionado)
		if (($('#tipoFisica').attr('checked') === false) && ($('#tipoJuridica').attr('checked') === false)){
			retorno += '* Informe o tipo de pessoa.';
			if (campo == ''){campo = '#tipoFisica';}
		}else{
			//Validar pessoa física
			if ($('#tipoFisica').attr('checked') === true){
				//Validar CPF
				if ($('#numCpf').val() == ''){
					retorno += '* Informe o seu CPF.\n';
					if (campo == ''){campo = '#numCpf';}
				}else{
					//Verificar se o CPF é válido
					if (!testaCPF($('#numCpf').val())){
						retorno += '* CPF inválido.\n';
						if (campo == ''){campo = '#numCpf';}
					}
				}
			}else{//Validar pessoa jurídica	
				//Nome da empresa
				if ($('#nomEmpresa').val() == ''){
					retorno += '* Informe o nome da empresa.\n';
					if (campo == ''){campo = '#nomEmpresa';}
				}
				//Validar CNPJ
				if ($('#numCnpj').val() == ''){
					retorno += '* Informe o CNPJ da empresa.\n';
					if (campo == ''){campo = '#numCnpj';}
				}else{
					//Verificar se o CNPJ é válido
					if (!testaCNPJ($('#numCnpj').val())){
						retorno += '* CNPJ inválido.\n';
						if (campo == ''){campo = '#numCnpj';}
					}
				}
			}
			//Continuar a validar os outros campos
			//Sexo
			if (($('#indSexoM').attr('checked') === false) && ($('#indSexoF').attr('checked') === false)){
				retorno += '* Informe o seu sexo.';
				if (campo == ''){campo = '#indSexoM';}
			}
			//Nome de contato
			if ($('#nomCliente').val() == ''){
				retorno += '* Informe o seu nome.\n';
				if (campo == ''){campo = '#nomCliente';}
			}
			//Data de nascimento
			if ($('#datNascimento').val() == ''){
				retorno += '* Informe sua data de nascimento.\n';
				if (campo == ''){campo = '#datNascimento';}
			}else{
				//Verificar se o CNPJ é válido
				if (!testaData($('#datNascimento').val())){
					retorno += '* Data de nascimento inválida.\n';
					if (campo == ''){campo = '#datNascimento';}
				}
			}
			//E-mail de contato
			if ($('#desEmail').val() == ''){
				retorno += '* Informe um e-mail de contato.\n';
				if (campo == ''){campo = '#desEmail';}
			}else{
				//Verificar se o e-mail é válido
				if (!testaEmail($('#desEmail').val())){
					retorno += '* E-mail inválido.\n';
					if (campo == ''){campo = '#desEmail';}
				}
			}
			//CEP
			if ($('#numCep').val() == ''){
				retorno += '* Informe o seu CEP.\n';
				if (campo == ''){campo = '#numCep';}
			}else{
				//Verificar se o CEP é válido
				if (!testaCEP($('#numCep').val())){
					retorno += '* CEP inválido.\n';
					if (campo == ''){campo = '#numCep';}
				}
			}
			//Endereço
			if ($('#desEndereco').val() == ''){
				retorno += '* Informe o seu endereço.\n';
				if (campo == ''){campo = '#desEndereco';}
			}
			//Número
			if ($('#numRua').val() == ''){
				retorno += '* Informe o número de seu endereço.\n';
				if (campo == ''){campo = '#numRua';}
			}
			//Bairro
			if ($('#nomBairro').val() == ''){
				retorno += '* Informe o seu bairro.\n';
				if (campo == ''){campo = '#nomBairro';}
			}
			//Cidade
			if ($('#nomCidade').val() == ''){
				retorno += '* Informe a sua cidade.\n';
				if (campo == ''){campo = '#nomCidade';}
			}
			//Estado
			if ($('#sigUf').val() == ''){
				retorno += '* Informe a sigla de seu estado.\n';
				if (campo == ''){campo = '#sigUf';}
			}
			//Ao menos um telefone de contato deve ser informado
			if (($('#numTelefone').val() == '') && ($('#numTelefoneComercial').val() == '') && ($('#numTelefoneCelular').val() == '')){
				retorno += '* Informe ao menos um telefone para contato.\n';
				if (campo == ''){campo = '#numTelefone';}
			}else{
				//Verificar se o telefone residêncial é válido
				if ($('#numTelefone').val() != ''){
					if (!testaFone($('#numTelefone').val())){
						retorno += '* Telefone residêncial inválido.\n';
						if (campo == ''){campo = '#numTelefone';}
					}
				}
				//Verificar se o telefone comercial é válido
				if ($('#numTelefoneComercial').val() != ''){
					if (!testaFone($('#numTelefoneComercial').val())){
						retorno += '* Telefone comercial inválido.\n';
						if (campo == ''){campo = '#numTelefoneComercial';}
					}
				}
				//Verificar se o telefone celular é válido
				if ($('#numTelefoneCelular').val() != ''){
					if (!testaFone($('#numTelefoneCelular').val())){
						retorno += '* Telefone celular inválido.\n';
						if (campo == ''){campo = '#numTelefoneCelular';}
					}
				}
			}
			//Se for cadastro, (tipo = add), validar as senhas.
			//Se for edição, validar apenas se um dos campos foi preenchido
			if (tipo == 'add'){
				if ($('#desSenha').val() == ''){
					retorno += '* Informe sua senha de acesso.\n';
					if (campo == ''){campo = '#desSenha';}	
				}else{
					//Tamanho da string da senha (entre 6 e 12 caracteres)
					if (($('#desSenha').val().length < 6) || ($('#desSenha').val().length > 12)){
						retorno += '* A senha de acesso deve ter entre 6 e 12 caracteres.\n';
						if (campo == ''){campo = '#desSenha';}	
					}
					//Campos senha e senha2 devem ser iguais
					if ($('#desSenha').val() != $('#desSenha1').val()){
						retorno += '* Confirmação de senha diferente da senha informada.\n';
						if (campo == ''){campo = '#desSenha1';}	
					}	
				}
			}else{ //Edição de dados do cliente
				//Verificar apenas se contiver algum texto
				if (($('#desSenha').val() != '') || ($('#desSenha').val() != '')){
					//Campos senha e senha2 devem ser iguais
					if ($('#desSenha').val() != $('#desSenha1').val()){
						retorno += '* Confirmação de senha diferente da senha informada.\n';
						if (campo == ''){campo = '#desSenha1';}	
					}else{				
						//Tamanho da string da senha (entre 6 e 12 caracteres)
						if (($('#desSenha').val().length < 6) || ($('#desSenha').val().length > 12)){
							retorno += '* A senha de acesso deve ter entre 6 e 12 caracteres.\n';
							if (campo == ''){campo = '#desSenha';}	
						}					
					}
				}
			}
		}
	}else{
		//Msg caso o processamento ainda esteja ocorrendo
		retorno = '* Aguarde a confirmação de seu cadastro.';
	}
	//Se a variável 'retorno' está vazia, não ocorreu nenhum problema.
	if (retorno == ''){
		//De acordo com o tipo de ação, chamar a respectiva função
		if (tipo == 'add'){
			addCliente();
		}else{
			editCliente();
		}
	}else{
		alert('Atenção!\n'+retorno);
		if (campo != ''){$(campo).focus();}
	}
}

function addCliente(){
	
	//Exibe a imagem de 'aguarde...'
	$('#imgWait').css('visibility','visible');
	//Desabilita o botão de confirmação
	$('#hdConfirmar').val('s');
	
	$.ajax({
		type:'post',
		cache:false,
		url:'inc/funcoes.cliente.asp?link=add',
		data:$('#frmCadastro').serialize(),
		success:function(response){
			//O retorno será na forma: código cliente|resposta|página de retorno
			//Separar e fazer a validação
			var vetRetorno = response.split('|');
			if (vetRetorno[0] > 0){
				vetMensagem = vetRetorno[1].split('##');
				if (vetMensagem[1] != ''){
					alert('Atenção!\n'+vetMensagem[0]+'\n'+vetMensagem[1]);
				}else{
					alert(vetMensagem[0]);
				}
				window.open(vetRetorno[2],'_self');
			}else{
				alert('Atenção!\nOcorreu um erro ao tentar cadastrar seus dados.\nPor favor, tente novamente.');
			}
		},
		error:function(request, status){
			alert('Atenção!\nOcorreu um erro ao tentar cadastrar seus dados.\nPor favor, tente novamente.');
		},
		complete:function(){
			//Esconde a imagem de 'aguarde...'
			$('#imgWait').css('visibility','hidden');
			//Habilita o botão de confirmação
			$('#hdConfirmar').val('');
		}
	});	
}

function editCliente(){
		
	//Exibe a imagem de 'Aguarde...'
	$('#imgWait').css('visibility','visible');
	
	//Desabilita o botão de confirmação
	$('#hdConfirmar').val('s');
	
	$.ajax({
		type:'post',
		cache:false,
		url:'inc/funcoes.cliente.asp?link=upd',
		data:$('#frmCadastro').serialize(),
		success:function(response){
			//O retorno será na forma: código cliente|resposta|página de retorno
			//Separar e fazer a validação
			var vetRetorno = response.split('|');
			if (vetRetorno[0] > 0){
				vetMensagem = vetRetorno[1].split('##');
				if (vetMensagem[1] != ''){
					alert('Atenção!\n'+vetMensagem[0]+'\n'+vetMensagem[1]);
				}else{
					alert(vetMensagem[0]);					
				}
				window.open(vetRetorno[2],'_self');
			}else{
				alert('Atenção!\nOcorreu um erro ao tentar alterar seus dados.\nPor favor, tente novamente.');
			}
			window.location = 'index.asp'
		},
		error:function(request, status){
			alert('Atenção!\nOcorreu um erro ao tentar alterar seus dados.\nPor favor, tente novamente.');
		},
		complete:function(){
			//Esconde a imagem de 'aguarde...'
			$('#imgWait').css('visibility','hidden');
			//Habilita o botão de confirmação
			$('#hdConfirmar').val('');
		}
	});		
}

function exibeEnderecoCliente(cep){
	
	var numCep = cep.replace('-','');
	
	$.ajax({
		type:'get',
		cache:false,
		async:false,
		url:'inc/funcoes.cliente.asp?link=address',
		data:'cepDest='+numCep,
		success:function(response){
			//Cria o vetor
			var vetFrete = response.split('<br>');			
			//Exibe os valores de endereço nos campos respectivos
			$('#numCep').val(cep);
			$('#desEndereco').val(vetFrete[1].split(':')[1]);
			$('#nomBairro').val(vetFrete[2].split(':')[1]);
			$('#nomCidade').val(vetFrete[3].split(':')[1]);
			$('#sigUf').val(vetFrete[4].split(':')[1]);
		},
		error:function(request, status){
		},
		complete:function(){
		}
	});
}

function validaLoginCliente(){

	var retorno = '';
	var campo = '';
		
	//Verificar se o cliente informou corretamente o e-mail de acesso
	if ($('#loginEmail').val() == ''){
		retorno += '* Informe o seu e-mail.\n';
		if (campo == ''){campo = '#loginEmail';}
	}else{ //Verificar se o CEP é válido
		if (!testaEmail($('#loginEmail').val())){
			retorno += '* Formato do e-mail inválido.\n';
			if (campo == ''){campo = '#loginEmail';}
		}
	}
	//Verificar se o cliente informou a senha de acesso
	if ($('#loginSenha').val() == ''){
		retorno += '* Informe a sua senha de acesso.\n';
		if (campo == ''){campo = '#loginSenha';}
	}
	
	//Se o campo retorno está vazio, não ocrreram erros.
	//Se estiver, exibir msg de erro.
	if (retorno != ''){
		alert('Atenção!\n' + retorno);	
		if (campo != ''){$(campo).focus();}
	}else{
		
		$('#imgWait').css('visibility','visible');
		
		//Inserir, dentro da session frete, no asp, o cep que o cliente inseriu
		$.ajax({
			type:'post',
			cache:false,
			url: $('#frmLogin').attr('action'),
			data:$('#frmLogin').serialize(),
			complete:function(){	
				$('#imgWait').css('visibility','hidden');
			},
			success:function(response){
				//O retorno do ASP é:
				//código do cliente (se não foi encontrado, retorna 0(zero)|página para retorno
				if (response != ''){
					var vetRetorno = response.split('|');
					//Verifica se foi encontrado um cliente para os parâmetros informados
					if (vetRetorno[0] == '0'){
						alert('Atenção!\nNenhum registro encontrado para o e-mail ou senha informados.');
						$('#loginEmail').focus();
					}else{
						//Abre a página definida no ASP
						window.open(vetRetorno[1],'_self');
					}
				}
			},
			error:function(request, status){
			}
		});
	}	
}

function abreCadastroCliente(erro){
	
	var retorno = '';
	var campo = '';
		
	//Verificar se o cliente informou corretamente o número do cep
	if ($('#loginCep').val() == '' && $('#loginCep').val() != '_____-___'){
		retorno = '* Informe o seu CEP.';
		if (campo == ''){campo = '#loginCep';}
	}else{ //Verificar se o CEP é válido
		if (!testaCEP($('#loginCep').val())){
			retorno = '* Formato do CEP inválido.';
			if (campo == ''){campo = '#loginCep';}
		}
	}
	//Se o campo retorno está vazio, não ocrreram erros.
	//Se estiver, exibir msg de erro.
	if (retorno != ''){
		alert('Atenção!\n' + retorno);	
		if (campo != ''){$(campo).focus();}
	}else{
		//Inserir, dentro da session frete, no asp, o cep que o cliente inseriu
		$.ajax({
			type:'get',
			cache:false,
			async:false,
			url:'inc/funcoes.cliente.asp?link=cep',
			data:'cep='+$('#loginCep').val(),
			complete:function(){
			},
			success:function(){
				window.open('cliente.cadastrar.asp?erro='+erro+'&cep='+$('#loginCep').val(),'_self');
			},
			error:function(request, status){
			}
		});
	}	
}

function marcaIsento(origem, destino){
	
	//Parâmetros:
	//origem: campo de onde se está verificando o atributto checked
	//destino: campo onde será inserido o valor ou não
		
	if ($(origem).attr('checked') == true){
		$(destino).val($(origem).val());
	}else{
		$(destino).val('');
	}
	
}

function requestPwd(){
	
	var retorno = '';
	var campo = '';
	
	//Validar o endereço de e-mail
	if ($('#des_email').val() == ''){
		retorno += '* Informe o seu e-mail cadastrado em nossa loja.\n';
		if (campo == ''){
			campo = '#des_email';
		}
	}else{
		if (!testaEmail($('#des_email').val())){
			retorno += '* Formato do e-mail inválido.\n';
			if (campo == ''){
				campo = '#des_email';
			}
		}
	}
	
	//Se 'retorno' for vazio, prosseguir, pois não houve erro
	if(retorno == ''){
		//Exibir a imagem de 'Aguarde...'
		$('#imgWait').css('visibility','visible');
		//Apagar o botão de enviar
		$('#btEnviar').css('visibility','hidden');
		$.ajax({
			type:'get',
			cache:false,
			url:'inc/funcoes.cliente.asp?link=pwd',
			data:'mail='+$('#des_email').val(),
			success:function(response){
				var vetRetorno = response.split('|||');
				if (vetRetorno[1] == ''){
					alert(vetRetorno[0]);
				}else{ //Erro durante o envio
					alert('Atenção!\n'+vetRetorno[0]+'\n'+vetRetorno[1]);
				}
			},
			error:function(request, status){
				
			},
			complete:function(){
				//Apagar a imagem de 'Aguarde...'
				$('#imgWait').css('visibility','hidden');
				//Exibir o botão de enviar
				$('#btEnviar').css('visibility','visible');
			}
		});
	}else{
		alert('Atenção!\n'+retorno);
		if (campo != ''){
			$(campo).focus();
		}
	}	
}

function centralizaPopUp(pagina, larguraJanela, alturaJanela, opcoes){
  
  	//Função para abrir uma janela popUp centralizada
  
  	var largura = screen.width;
	var altura = screen.height;  
  	var XX = (largura-larguraJanela)/2;
  	var YY = (altura-alturaJanela)/2;
 	var ID = pagina.replace(/[^a-zA-Z1-9\ ]*/g,"");
  	
	if (opcoes){
		opcoes = ','+opcoes;
	}
  	janela = window.open(pagina,ID,'width='+larguraJanela+',height='+alturaJanela+',left='+XX+',top='+YY+''+opcoes);
  	if (janela)
    	janela.focus();
  	else
    	alert('Foi detectado que você possui um bloqueador de POPUP´s.\nPara usar todos os recursos da Loja Virtual é recomendável que ele esteja desabilitado!');
}
