function retira_plique(texto)
{
	var cont = 0;
	var aux = "";

	if (texto.length > 0)
	{
		for (cont = 0; cont <= (texto.length-1); cont++)
		{
			if (texto.charAt(cont) != "'")
			{
				aux = aux + texto.charAt(cont);
			}
		}
	}
	return aux;
}

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
function NovoPreCadastro(novo_valor) {

	var form = document.form1;
	
	form.nome.value = retira_plique(form.nome.value);
	
	if (form.nome.value == "")
	{
		alert('O nome deve ser informado !');
		form.nome.focus();
		return;
	}
	if (form.cpf.value == "")
	{
		alert('O CPF deve ser informado !');
		form.cpf.focus();
		return;
	}
	if (form.dia_nasc.value == "")
	{
		alert('O dia da data de nascimento deve ser informado !');
		form.dia_nasc.focus();
		return;
	}
	if (form.dia_nasc.value > 31)
	{
		alert('O dia da data de nascimento deve ser menor ou igual a 31 !');
		form.dia_nasc.focus();
		return;
	}
	if (form.dia_nasc.value < 1)
	{
		alert('O dia da data de nascimento deve ser maior ou igual a 1 !');
		form.dia_nasc.focus();
		return;
	}
	if (form.mes_nasc.value == "")
	{
		alert('O mês da data de nascimento deve ser informado !');
		form.mes_nasc.focus();
		return;
	}
	if (form.mes_nasc.value > 12)
	{
		alert('O mês da data de nascimento deve ser menor ou igual a 12 !');
		form.mes_nasc.focus();
		return;
	}
	if (form.mes_nasc.value < 1)
	{
		alert('O mês da data de nascimento deve ser maior ou igual a 1 !');
		form.mes_nasc.focus();
		return;
	}
	if (form.ano.value == "")
	{
		alert('O ano da data de nascimento deve ser informado !');
		form.ano_nasc.focus();
		return;
	}
	if (form.ano_nasc.value.length < 4)
	{
		alert('O ano da data de nascimento deve ter 4 dígitos !');
		form.ano_nasc.focus();
		return;
	}
	if (form.ano_nasc.value <= 1900)
	{
		alert('O ano da data de nascimento inválido !');
		form.ano_nasc.focus();
		return;
	}
	
	if (form.logradouro.value == "")
	{
		alert('O Logradouro deve ser informado !');
		form.logradouro.focus();
		return;
	}
	if (form.numero.value == "")
	{
		alert('O número do Logradouro deve ser informado !');
		form.numero.focus();
		return;
	}
	if ((form.ddd1.value == "") && (form.ddd2.value == ""))
	{
		alert('Informe pelo menos um telefone de contato !');
		form.ddd1.focus();
		return;
	}
	if ((form.ddd1.value != "") && (form.tel1.value == ""))
	{
		alert('Informe o número do primeiro telefone !');
		form.tel1.focus();
		return;
	}
	if (form.ddd1.value.length < 2 || form.tel1.value.length < 8)
	{
		alert('Número do primeiro telefone inválido!');
		form.tel1.focus();
		return;
	}
	if (form.tel1.value.substring(0,1) == "7" || form.tel1.value.substring(0,1) == "8" || form.tel1.value.substring(0,1) == "9")
	{
		alert('O primeiro telefone deve ser fixo!');
		form.tel1.focus();
		return;
	}
	if (form.tel1.value == "00000000" || form.tel1.value == "11111111" || form.tel1.value == "22222222" || form.tel1.value == "33333333")
	{
		alert('Número do primeiro telefone inválido!');
		form.tel1.focus();
		return;
	}
	if (form.tel1.value == "44444444" || form.tel1.value == "55555555" || form.tel1.value == "66666666" || form.tel1.value == "77777777")
	{
		alert('Número do primeiro telefone inválido!');
		form.tel1.focus();
		return;
	}
	if (form.tel1.value == "88888888" || form.tel1.value == "99999999")
	{
		alert('Número do primeiro telefone inválido!');
		form.tel1.focus();
		return;
	}

	var par_cpf = form.cpf.value;
	if (validacpf(par_cpf,form) == false)
	{
		form.cpf.focus();	
		return;
	}
	
	digData = form.dia_nasc.value + form.mes_nasc.value + form.ano_nasc.value;
	if (VerificaData(digData,form) == false)
	{
		form.dia_nasc.focus();
		return;
	}
	
	//® VALIDAÇÃO BASICA DO EMAIL
	if ( form.email.value.length > 0 )
	{
		if ( form.email.value.indexOf('@')==-1 || form.email.value.indexOf('.')==-1 )
		{
			alert('E-mail inválido!');
			form.email.focus();
			return;
		}
	}
	
	Dt_hoje=new Date()
	dia = Dt_hoje.getDate();
	ano = Dt_hoje.getFullYear();
	mes = Dt_hoje.getMonth();
			
	var idade = ano - form.ano_nasc.value;
	
	if (dia >= form.dia_nasc.value && mes >= form.mes_nasc.value)
	{
	    //alert(idade);
	}
	else
	{
	  idade = idade - 1;
	  //alert(idade);
	  //return;
	}
	
	if (idade >= 18)
	{
		form.action = "pedidos/IncluiPreCadastro.asp?CEP=" + form.cep.value + "&CPF=" + form.cpf.value + "&NOME=" + form.nome.value + "&DATA_NASC=" + form.mes_nasc.value + "/" + form.dia_nasc.value + "/" + form.ano_nasc.value + "&NUM_LOGR=" + form.numero.value + "&COMPLEMENTO=" + form.complemento.value + "&PTOREFER=" + form.pontoderef.value + "&BAIRRO=" + form.bairro.value + "&TEL1=" + form.ddd1.value + form.tel1.value + "&TEL2=" + form.ddd2.value + form.tel2.value + "&EMAIL=" + form.email.value + "&QUEMINDICOU=" + form.quemindicou.value + "&LOGR=" + form.logradouro.value; 
		//form.action = "http://www2.demillus.com.br/pedidos/teste/IncluiPreCadastro.asp?CEP=" + form.cep.value + "&CPF=" + form.cpf.value + "&NOME=" + form.nome.value + "&DATA_NASC=" + form.mes_nasc.value + "/" + form.dia_nasc.value + "/" + form.ano_nasc.value + "&NUM_LOGR=" + form.numero.value + "&COMPLEMENTO=" + form.complemento.value + "&PTOREFER=" + form.pontoderef.value + "&TEL1=" + form.ddd1.value + form.tel1.value + "&TEL2=" + form.ddd2.value + form.tel2.value + "&EMAIL=" + form.email.value + "&QUEMINDICOU=" + form.quemindicou.value + "&LOGR=" + form.logradouro.value;
		form.submit();
	}
	else
	{
		alert('O cadastro só poderá ser efetuado para pessoas acima de 18 anos!');
		form.dia_nasc.focus();
		return;
	}
}

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
function LimpaPreCadastro()
{
	var form = document.form1;
	//alert('teste limpa');
	form.nome.value="";
	form.nome.focus();
	
}

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */

function trata_keyup_cep(frm,obj,event)
{
	var tecla = event.keyCode;

	/* Guardo o tamanho máximo da caixa de texto, o conteúdo e a tecla pressionada */
	var valor = obj.value.toString();
	var tam   = valor.length;

	/* A-Z -> 65-90 ; a-z -> 97-122 ; ENTER -> 13 */
	/* (0-9) -> Teclado: 48-57 */
	/* NumPad: 96-105 */
	
  		
	if ((tecla == 13) | ((tecla >= 65 & tecla <= 90)) | ((tecla >= 96) & (tecla <= 122)) | ((tecla >= 48) & (tecla <= 57)))
		{
			if (tecla == 13) /* enter*/
			{
				if (obj.name == "CEP")
				{
					CEP2.focus();
				}
				else if (obj.name == "CEP2")
				{
					cmdbuscacep.focus();
				}
				return true;
			}
			else
			{
				
				if ((obj.name == "CEP") & (tam >= 5))
				{
					CEP2.focus();
				}
				else if ((obj.name == "CEP2") & (tam >= 3))
				{
					cmdbuscacep.focus();
				}
			}
		}
	return true;
}
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
function trata_keydown_cep(frm,obj,event)
{
    /* Guardo o evento e o form que chamou a função */
    var x = event.keyCode;
    var form = window.document.forms[0];
    var cep = CEP.value;
    
    /* Se for o "Enter" */
     if (x == 13){
   	//CRITICA_CEP();
   	if (CEP.value.length < 5)
   	{
   		alert('O CEP deve ser informado com 5 dígitos.');
   		CEP.focus();
   		return false;
   	}
   	else if (CEP2.value.length < 3)
   	{
   		alert('O Sufixo do CEP deve ser informado com 3 dígitos.');
   		CEP2.focus();
   		return false;
   	}
    }
    else 
    {
    	/* Se não for "Enter" retorno o retorno da rotina que permite somente números */
        var ret;
        ret = ForceNumericInput(event, this, false, false)
        return ret;
        if (CEP.value.length >= 5)
	{
		CEP2.focus();
		return true;
	}
    }
    return false;
}

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
function trata_keydown_sufixocep(frm,obj,event)
{
    /* Guardo o evento e o form que chamou a função */
    var x = event.keyCode;
    var form = window.document.forms[0];
    var cep = CEP2.value;
    
    /* Se for o "Enter" */
     if (x == 13){
   	//CRITICA_CEP();
   	if (CEP2.value.length < 3)
   	{
   		alert('O sufixo do CEP deve ser informado com 3 dígitos.');
   		return false;
   	}
    }
    else {
    
         /* Se não for "Enter" retorno o retorno da rotina que permite somente números */
         var ret;
         //ret = somente_numeros(CEP,event);  esta rotina não aceita a tecla del
         ret = ForceNumericInput(event, this, false, false);
         return ret;
    }
    return false;
}

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
function trata_keydown(frm,obj,event)
{
	var tecla = event.keyCode;

	if (tecla == 192)
	{
		/* Não permite plique (') */
		return false;
	}
	return true;
}

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
function somente_maiusculas(obj,event){

	var tecla = event.keyCode;
	var texto = obj.value.toUpperCase();

	if (((tecla >= 65) & (tecla <= 90)) | ((tecla >= 97) & (tecla <= 122))){
		obj.value = texto;
	}
	//alert("tecla=" + tecla + " obj.value=" + obj.value + " texto=" + texto);
}

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */

function trata_keydown_cpf(frm,obj,event)
{
    /* Guardo o evento e o form que chamou a função */
    var x = event.keyCode;
    var form = window.document.forms[0];
    var cpf = frm.cpf.value;
    
    /* Se for o "Enter" */
    if (x == 13)
    {
    	if (frm.cpf.value.length < 11)
       	{
       		alert('O CPF deve ser informado com 11 dígitos.');
       		frm.cpf.focus();
       		return false;
       	}
    	else 
       	{
       		frm.dia_nasc.focus();
   		return false;
   	}
    }
    else 
    {
         /* Se não for "Enter" retorno o retorno da rotina que permite somente números */
         var ret;
         ret = somente_numeros(cpf,event);
         return ret;
    }
    return false;
}

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
function somente_numeros(par,event)
{
	/*
  	Esta função retorna 'true' quando o caracter é numérico e false quando é não-numérico
	A chamada pela caixa de texto é: onKeyDown = 'return somente_numeros(this,event)'
	(0-9) -> Teclado: 48-57 ;
	NumPad: 96-105;
	BackSpace:8; Enter:13; Tab:9; End:35; Home:36; Shift:16;
	Setas: esq:37; cima:38; dir:39; baixo:40;
  	*/

	var x = event.keyCode;

  	if (((x < 48) | (x > 57)) & ((x < 96) | (x > 105)) & ((x < 35) | (x > 40)) & (x != 8) & (x != 13) & (x != 9) & (x != 16))
	{
      		return false;
	}
	return true;
}


/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    função para permitir a digitação de números decimais e inteiros */
    
function ForceNumericInput(event, This, AllowDecimal, AllowMinus)
{

    var lngCaracter     = 0;
    var strCaracter     = '';
    var blnRetorno      = false;
    var blnTeclaControl = false;
    var blnTeclaShift   = false;

    // Recuperando o keyCode da tecla.
    if(event.keyCode)
    {
        lngCaracter = event.keyCode;
    }
    else if(event.which)
    {
        lngCaracter = event.which;
    }
    else if(event.charCode)
    {
        lngCaracter = event.charCode;
    }
    else
    {
        lngCaracter = void(0);
    }

    // Valor booleano que indica se as teclas Shift e/ou Control estão pressionadas.    

	blnTeclaControl = event.ctrlKey;
	blnTeclaShift   = event.shiftKey;

	if(arguments.length == 1)
	{
		var s = This.value;
		// garante que o sinal de "-" seja o primeiro do índice
		var i = s.lastIndexOf("-");
		if(i == -1)
			return;
		if(i != 0)
			This.value = s.substring(0,i)+s.substring(i+1);
			return;
	}
	switch(event.keyCode)
	{
	case 8:     // backspace
	case 9:     // tab
	case 13:     // enter
	case 35:     // end
	case 36:     //home
	case 37:    // left arrow
	case 39:    // right arrow
	case 46:    // delete
	event.returnValue = true;
	return;
	}

	// Permitir o uso de CTRL com as teclas C, V, X e A.
	strCaracter = String.fromCharCode(lngCaracter).toUpperCase();
	var objExpressaoRegular = /^[CVXA]$/;
	if(blnTeclaControl && objExpressaoRegular.test(strCaracter))
	{
		event.returnValue = true;
		return;
	}

	// Permitir o uso de SHIFT com as teclas INSERT ==> 
	var objExpressaoRegular = /^(45|46)$/;
	if(blnTeclaShift && objExpressaoRegular.test(lngCaracter))
	{
		event.returnValue = true;
		return;
	}

	//Vou validar estas teclas separadamente, pois algumas teclas requerem certas particularidades.
	//    O Backspace pode ser utilizado sozinho ou com em conjunto com o CTRL.

	if((!blnTeclaShift) && lngCaracter == 8)
	{
		event.returnValue = true;
		return;
	}

	// O Insert e o Delete não podem ser usados em combinação com outras teclas.
	var objExpressaoRegular = /^(45|46)$/;
	if((!(blnTeclaControl || blnTeclaShift)) && objExpressaoRegular.test(lngCaracter))
	{
		event.returnValue = true;
		return;
	}

	if(event.keyCode == 189)     // sinal de número de negativo
	{
		if(AllowMinus == false)
		{
			CancelEventExecution(event);
			return;
		}
		// aguarda até que o controle tenha sido atualizado
		var s = "ForceNumericInput(document.getElementById('"+This.id+"'))";
		setTimeout(s, 250);
		return;
	}
	if(AllowDecimal && event.keyCode == 188)
	{
		if(This.value.indexOf(",") >= 0)
		{
			// restringe a digitação de apenas uma vírgula
			CancelEventExecution(event);
			return;
		}
		event.returnValue = true;
		return;
	}

	// permite caracteres entre 0 e 9
	if(event.keyCode >= 48 && event.keyCode <= 57)
	{
		event.returnValue = true;
		return;
	}
	// permite caracteres numpad
	if(event.keyCode >= 96 && event.keyCode <= 105)
	{
		event.returnValue = true;
		return;
	}

CancelEventExecution(event);
}
/*
* Cancela a execução de uma function mapeada por um evento
*/
function CancelEventExecution(event)
{
	if (navigator.appName == "Netscape")
	{
		event.preventDefault();
	} 
	else 
	{
		event.returnValue = false;
	}
}
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
function execAction(frm,obj,event)   
{   
    if (window.event.keyCode == 13) {   
    	
        alert(obj.name);
        if (obj.name == "CEP")
	{
		alert('Usuario teclou enter...');
		frm.CEP2.focus();
	}
	event.returnValue=false;   
        event.keyCode=0;   
    }   
} 

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */


function trata_keyup(frm,obj,event)
{
	var tecla = event.keyCode;
	
	/* Guardo o tamanho máximo da caixa de texto, o conteúdo e a tecla pressionada */
	var valor = obj.value.toString();
	var tam   = valor.length;

	/* A-Z -> 65-90 ; a-z -> 97-122 ; ENTER -> 13 */
	/* (0-9) -> Teclado: 48-57 */
	/* NumPad: 96-105 */

	if ((tecla == 13) | ((tecla >= 65 & tecla <= 90)) | ((tecla >= 96) & (tecla <= 122)) | ((tecla >= 48) & (tecla <= 57)))
	{
		if (tecla == 13) /* enter*/
		{
			if (obj.name == "nome")
			{
				frm.cpf.focus();
			}
			else if (obj.name == "cpf")
			{
				frm.dia_nasc.focus();	
			}
			else if (obj.name == "dia_nasc")
			{
				frm.mes_nasc.focus();
			}
			else if (obj.name == "mes_nasc")
			{
				frm.ano_nasc.focus();
			}
			else if (obj.name == "ano_nasc")
			{
				if (frm.logradouro.disabled == false) //testa se esta habilitado
				{
					frm.logradouro.focus();
				}
				else
				{
					frm.numero.focus();
				}
			}			
			else if ((obj.name == "logradouro") & (tam >= 52))
			{
				frm.numero.focus();
			}			
			else if (obj.name == "numero")
			{
				frm.complemento.focus();
			}
			else if (obj.name == "complemento")
			{
				frm.pontoderef.focus();
			}
			else if (obj.name == "pontoderef") 
			{
				frm.ddd1.focus();
			}
			else if (obj.name == "ddd1") 
			{
				frm.tel1.focus();
			}
			else if (obj.name == "tel1") 
			{
				frm.ddd2.focus();
			}
			else if (obj.name == "ddd2") 
			{
				frm.tel2.focus();
			}
			else if (obj.name == "tel2") 
			{
				frm.email.focus();
			}
			else if (obj.name == "email")
			{
				frm.quemindicou.focus();
			}
			return true;
		}
		else
		{
			if ((obj.name == "nome") & (tam >= 50))
			{
				frm.cpf.focus();
			}
			else if ((obj.name == "cpf") & (tam >= 11))
			{
				frm.dia_nasc.focus();
			
			}
			else if ((obj.name == "dia_nasc") & (tam >= 2))
			{
				frm.mes_nasc.focus();
			}
			else if ((obj.name == "mes_nasc") & (tam >= 2))
			{
				frm.ano_nasc.focus();
			}
			else if ((obj.name == "ano_nasc") & (tam >= 4))
			{
				if (frm.logradouro.disabled == false) //testa se esta habilitado
				{
					frm.logradouro.focus();
				}
				else
				{
					frm.numero.focus();
				}
			}
			else if ((obj.name == "logradouro") & (tam >= 52))
			{
				frm.numero.focus();
			}
			else if ((obj.name == "numero") & (tam >= 10))
			{
				frm.complemento.focus();
			}
			else if ((obj.name == "complemento") & (tam >= 30))
			{
				frm.pontoderef.focus();
			}
			else if ((obj.name == "pontoderef") & (tam >= 60))
			{
				frm.ddd1.focus();
			}
			else if ((obj.name == "ddd1") & (tam >= 2))
			{
				frm.tel1.focus();
			}
			else if ((obj.name == "tel1") & (tam >= 8))
			{
				frm.ddd2.focus();
			}
			else if ((obj.name == "ddd2") & (tam >= 2))
			{
				frm.tel2.focus();
			}
			else if ((obj.name == "tel2") & (tam >= 8))
			{
				frm.email.focus();
			}
			else if ((obj.name == "email") & (tam >= 50))
			{
				frm.quemindicou.focus();
			}
		}
	}
	
	return true;
}

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */

function validacpf(par_cpf,frm)
{ 
 
	var i; 
	s = par_cpf; 
	var c = s.substr(0,9); 
	var dv = s.substr(9,2); 
	var d1 = 0; 
  
	for (i = 0; i < 9; i++) 
	{ 
		d1 += c.charAt(i)*(10-i); 
	} 
  
	if (d1 == 0)
	{ 
		alert("CPF Inválido") 
		return false; 
	} 
	d1 = 11 - (d1 % 11); 
	if (d1 > 9) d1 = 0; 
	if (dv.charAt(0) != d1) 
	{ 
		alert("CPF Inválido") 
		return false; 
	} 
	d1 *= 2; 
	  
	for (i = 0; i < 9; i++) 
	{ 
	d1 += c.charAt(i)*(11-i); 
	} 
	d1 = 11 - (d1 % 11); 
	  
	if (d1 > 9) d1 = 0; 
	if (dv.charAt(1) != d1) 
	{ 
		alert("CPF Inválido") 
		return false; 
	} 
	return true; 
	//frm.dia_nasc.focus();
} 

/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */  
//VALIDAÇÃO DA DATA 

function VerificaData(digData,form) 
{        
	var bissexto = 0;        
	var data = digData;         
	var tam = data.length;        
	if (tam == 8)         
	{                
	var dia = data.substr(0,2)                
	var mes = data.substr(2,2)                
	var ano = data.substr(4,4)                

	if ((ano > 1900)||(ano < 2100))                
	{                        
		switch (mes)                         
		{                                
			case '01':                                
			case '03':                                
			case '05':                                
			case '07':                                
			case '08':                                
			case '10':                                
			case '12':                                        
				if  (dia <= 31)                                         
				{                                                
					return true;                                        
				}                                        
				break                                                                
			case '04':                                              
			case '06':                                
			case '09':                                
			case '11':                                        
				if  (dia <= 30)                                         
				{                                                
					return true;                                        
				}
				break                                
			case '02':                                        
				/* Validando ano Bissexto / fevereiro / dia */                                         
				if ((ano % 4 == 0) || (ano % 100 == 0) || (ano % 400 == 0))                                         
				{
					bissexto = 1;                                         
				}                                         
				if ((bissexto == 1) && (dia <= 29))                                         
				{                                                 
					return true;                                                                     
				}
				if ((bissexto != 1) && (dia <= 28))                                         
				{
					return true;                                         
				}                                                               
				break                                                                   
			}                
		}        
	}               
	alert("A Data de Nascimento "+dia+" / "+mes+" / "+ano+" é inválida!");        
	return false;

}