
	/*/////////////////////////////////////////////////////////////////////////////////
	// Validar a data
	/////////////////////////////////////////////////////////////////////////////////*/
	function ValidaData(obj,dateStr) {
		if (dateStr.length==0){
			return true;
		}
		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
		
		/*if (matchArray == null) {
			alert("O formato da data é 00/00/0000");
			obj.focus()
			return false;
		}*/
		if (dateStr.length == 1 ) {
			alert("O formato da data é 00/00/0000");
			return false;
		}
				
		if (dateStr.length >1 && dateStr.length < 10 ) {
			alert("O formato da data é 00/00/0000");
			obj.focus();
			return false;
		}
		
		day = matchArray[1]; // p@rse date into variables
		month = matchArray[3];
		year = matchArray[5];
		
		if (month < 1 || month > 12) { // check month range
			alert("Mês deve ser entre 1 a 12");
			obj.focus()
			return false;
		}
		
		if (day < 1 || day > 31) {
			alert("Dia deve ser entre 1 e 31.");
			obj.focus()
			return false;
		}
		
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
			alert("Mês "+month+" não tem 31 dias.");
			obj.focus()
			return false;
		}
		
		if (month == 2) { // check for february 29th
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day > 29 || (day==29 && !isleap)) {
				alert("Fevereiro " + year + " não tem " + day + " dias!");
				obj.focus()
				return false;
			}
		}
		return true; // date is valid
	}

	/*/////////////////////////////////////////////////////////////////////////////////
	// Coloca o campo no formato de Data
	/////////////////////////////////////////////////////////////////////////////////*/

	function FormataData(Campo, Tecla, Proximo){
		var Tecla = Tecla.keyCode;
	
		var vr = new String(Campo.value);
		vr = vr.replace("/", "");
		vr = vr.replace("/", "");

		tam = vr.length;
			if (Tecla != 9 && Tecla != 8 && Tecla != 46 && Tecla != 47){
				if (tam >= 2 && tam < 4)
					Campo.value = vr.substr(0,2) + '/' + vr.substr(2,2);
				if (tam >= 4 && tam <= 6)
					Campo.value = vr.substr(0,2) + '/' + vr.substr(2,2) + '/' + vr.substr(4,4);
				if (tam == 8){
					if(Proximo){
						Proximo.select();
						Proximo.focus();
					}
				}
			}
	}
	
	/*/////////////////////////////////////////////////////////////////////////////////
	// Coloca o campo no formato de CEP
	/////////////////////////////////////////////////////////////////////////////////*/

	function FormataCEP(Campo, Tecla, Proximo){
		var Tecla = Tecla.keyCode;
		var vr = new String(Campo.value);
		vr = vr.replace("-", "");
		tam = vr.length;
		if (Tecla != 45){
		if (tam >= 5 && tam < 8){
		Campo.value = vr.substr(0,5)+'-'+ vr.substr(5,3) 
		}
			if (tam == 8){
				if(Proximo){
					Proximo.select();
					Proximo.focus();
				}
			}
		}
		}
		
	/*/////////////////////////////////////////////////////////////////////////////////
	// Coloca o campo no formato de Telefone
	/////////////////////////////////////////////////////////////////////////////////*/

	function FormataTEL(Campo, Tecla, Proximo){
		var Tecla = Tecla.keyCode;
		var vr = new String(Campo.value);
		vr = vr.replace("-", "");
		tam = vr.length;
		if (Tecla != 45){
		if (tam >= 4 && tam < 8){
		Campo.value = vr.substr(0,4)+'-'+ vr.substr(4,4) 
		}
			if (tam == 8){
				if(Proximo){
					Proximo.select();
					Proximo.focus();
				}
			}
		}
		}
		
	/*/////////////////////////////////////////////////////////////////////////////////
	// Pula de Campo
	/////////////////////////////////////////////////////////////////////////////////*/

	function Proximo(Campo,Proximo,Tamanho_Campo){
		var vr = new String(Campo.value);
		tam = vr.length;
			if (tam == Tamanho_Campo){
				if(Proximo){
					Proximo.select();
					Proximo.focus();
				}
			}

		}
	
	/*/////////////////////////////////////////////////////////////////////////////////
	// Bloquear letras
	/////////////////////////////////////////////////////////////////////////////////*/
		function Tecla(e)
		{
		if (document.all) // Internet Explorer
		var tecla = event.keyCode;
		else if(document.layers) // Nestcape
		var tecla = e.which;
		if (tecla > 47 && tecla < 58) // numeros de 0 a 9
		return true;
		else
		{
		if (tecla != 8) // backspace
		event.keyCode = 0;
		//return false;
		else
		return true;
		}
		}
		
	/*/////////////////////////////////////////////////////////////////////////////////
	// Validação do CEP
	/////////////////////////////////////////////////////////////////////////////////*/
		function validaCEP(obj){
			if(obj.value != ""){
				if(obj.value.length == 1){
				alert("Preencha o campo CEP corretamente");
				obj.focus()
				return false;
				}
				if(obj.value.length > 1 && obj.value.length < 9){
				alert("Preencha o campo CEP corretamente");
				obj.focus();
				return false;
				}
			}
		return true;
		
		
		}
	/*/////////////////////////////////////////////////////////////////////////////////
	// Coloca o campo no formato de CPF
	/////////////////////////////////////////////////////////////////////////////////*/
	function FormataCPF(Campo, Tecla, Proximo){
		var Tecla = Tecla.keyCode;
	
		var vr = new String(Campo.value);
		vr = vr.replace(".", "");
		vr = vr.replace(".", "");
		vr = vr.replace(".", "");
		vr = vr.replace("-", "");
	
		tam = vr.length;

		if (Tecla != 9 && Tecla != 8 && Tecla != 46){
			if (tam >= 3 && tam < 6)
				Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3);
			if (tam >= 6 && tam < 9)
				Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,3);
			if (tam >= 10 && tam <= 11)
				Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,3) + '-' + vr.substr(9,2);
			if (tam == 11){
				if(Proximo){
					Proximo.select();
					Proximo.focus();
				}
			}
		}
	}
	/////////////////////////////////////////////////////////////////////////////////*/
	// Funcao para checagem de CPF
	/////////////////////////////////////////////////////////////////////////////////*/
	function checa_cpf(ls_cpf){
		var frase="1234567890-.";
		var fcerta=true;
		
		
		
		for (i=0;i<ls_cpf.value.length;i++)
			fcerta&=frase.indexOf(ls_cpf.value.charAt(i))!=-1;
		
	 	//var mascara=/\d{9,9}+[-]+\d{2,2}/;
		vr = ls_cpf.value;
		vr = vr.replace(".", "");
		vr = vr.replace(".", "");
		//vr = vr.replace("-", "");
		
		if (ls_cpf.value.length != 0){
			if (!fcerta || vr.length > 12 || vr.length < 12){
				return false;
			} else {
				var ls_num_cpf = vr.substring(0,9) + vr.substring(10,12)
				//Calcula o primeiro digito de ls_num_cpf
				var li_conta1=0;
				for(i=1;i<=9;i++)
					li_conta1 += parseInt(ls_num_cpf.charAt(i-1))*(11-i);
			
				var li_conta2 = 11 - (li_conta1 % 11);
				if (li_conta2>9)
				li_conta2=0;
		
				if (li_conta2 != ls_num_cpf.charAt(ls_num_cpf.length-2)){
					return false;
				}
		 
				//Calcula o segundo digito de ls_num_cpf
				var li_conta1=0;
				for(i=1;i<=9;i++)
					li_conta1+=parseInt(ls_num_cpf.charAt(i))*(11-i);
			
				var li_conta2 = 11 - (li_conta1 % 11);
				if (li_conta2 > 9)
					li_conta2 = 0;
		
				if (li_conta2 == ls_num_cpf.charAt(ls_num_cpf.length-1))
		
					return ls_num_cpf;
				}
		 	return false;
		}else{
			return true;
		}
	}

	/*/////////////////////////////////////////////////////////////////////////////////
	// Coloca o campo no formato CNPJ
	/////////////////////////////////////////////////////////////////////////////////*/
	function FormataCNPJ(Campo, Tecla,Proximo){
		var tecla = Tecla.keyCode;

		var vr = new String(Campo.value);
		vr = vr.replace(".", "");
		vr = vr.replace(".", "");
		vr = vr.replace("/", "");
		vr = vr.replace("-", "");

		tam = vr.length + 1 ;
		
		if (tecla != 9 && tecla != 8 && tecla != 46){
			if (tam > 2 && tam < 6)
				Campo.value = vr.substr(0, 2) + '.' + vr.substr(2, tam);
			if (tam >= 6 && tam < 9)
				Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,tam-5);
			if (tam >= 9 && tam < 13)
				Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,tam-8);
			if (tam >= 13 && tam < 15)
				Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,4)+ '-' + vr.substr(12,tam-12);

			if (tam == 15){
				if(Proximo){
					Proximo.select();
					Proximo.focus();
				}
			}
		}
		
	}
	
	
	function ValidaCNPJ(obj){
		if(obj.value != ""){
			if (obj.value.length < 18){
				alert('Preencha o campo CNPJ corretamente!');
				obj.focus();
				return false;
			}
			return true;
		}
	
	}
	
function isNUMB(c) 
 { 
 if((cx=c.indexOf(","))!=-1) 
  { 
  c = c.substring(0,cx)+"."+c.substring(cx+1); 
  } 
 if((parseFloat(c) / c != 1)) 
  { 
  if(parseFloat(c) * c == 0) 
   { 
   return(1); 
   } 
  else 
   { 
   return(0); 
   } 
  } 
 else 
  { 
  return(1); 
  } 
 } 

function LIMP(c) 
 { 
 while((cx=c.indexOf("-"))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 while((cx=c.indexOf("/"))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 while((cx=c.indexOf(","))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 while((cx=c.indexOf("."))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 while((cx=c.indexOf("("))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 while((cx=c.indexOf(")"))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 while((cx=c.indexOf(" "))!=-1) 
  { 
  c = c.substring(0,cx)+c.substring(cx+1); 
  } 
 return(c); 
 } 

function VerifyCNPJ(CNPJ) 
 { 
 CNPJ = LIMP(CNPJ); 
 if(isNUMB(CNPJ) != 1) 
  { 
  return(0); 
  } 
 else 
  { 
  if(CNPJ == 0) 
   { 
   return(0); 
   } 
  else 
   { 
   g=CNPJ.length-2; 
   if(RealTestaCNPJ(CNPJ,g) == 1) 
    { 
    g=CNPJ.length-1; 
    if(RealTestaCNPJ(CNPJ,g) == 1) 
     { 
     return(1); 
     } 
    else 
     { 
     return(0); 
     } 
    } 
   else 
    { 
    return(0); 
    } 
   } 
  } 
 } 
function RealTestaCNPJ(CNPJ,g) 
 { 
 var VerCNPJ=0; 
 var ind=2; 
 var tam; 
 for(f=g;f>0;f--) 
  { 
  VerCNPJ+=parseInt(CNPJ.charAt(f-1))*ind; 
  if(ind>8) 
   { 
   ind=2; 
   } 
  else 
   { 
   ind++; 
   } 
  } 
  VerCNPJ%=11; 
  if(VerCNPJ==0 || VerCNPJ==1) 
   { 
   VerCNPJ=0; 
   } 
  else 
   { 
   VerCNPJ=11-VerCNPJ; 
   } 
 if(VerCNPJ!=parseInt(CNPJ.charAt(g))) 
  { 
  return(0); 
  } 
 else 
  { 
  return(1); 
  } 
 } 
  

  function FormataCGC(Formulario, Campo, TeclaPres) 
  { 
    var tecla = TeclaPres.keyCode; 
    var strCampo; 
    var vr; 
    var tam; 
    var TamanhoMaximo = 14; 
  
    eval("strCampo = document." + Formulario + "." + Campo); 
  
    vr = strCampo.value; 
    vr = vr.replace("/", ""); 
    vr = vr.replace("/", ""); 
    vr = vr.replace("/", ""); 
    vr = vr.replace(",", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace(".", ""); 
    vr = vr.replace("-", ""); 
    vr = vr.replace("-", ""); 
    vr = vr.replace("-", ""); 
    vr = vr.replace("-", ""); 
    vr = vr.replace("-", ""); 
    tam = vr.length; 

    if (tam < TamanhoMaximo && tecla != 8) 
    { 
      tam = vr.length + 1; 
    } 

    if (tecla == 8) 
    { 
      tam = tam - 1; 
    } 

    if (tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105) 
    { 
      if (tam <= 2) 
      { 
        strCampo.value = vr; 
      } 
       if ((tam > 2) && (tam <= 6)) 
       { 
         strCampo.value = vr.substr(0, tam - 2) + '-' + vr.substr(tam - 2, tam); 
       } 
       if ((tam >= 7) && (tam <= 9)) 
       { 
         strCampo.value = vr.substr(0, tam - 6) + '/' + vr.substr(tam - 6, 4) + '-' + vr.substr(tam - 2, tam); 
      } 
       if ((tam >= 10) && (tam <= 12)) 
       { 
         strCampo.value = vr.substr(0, tam - 9) + '.' + vr.substr(tam - 9, 3) + '/' + vr.substr(tam - 6, 4) + '-' + vr.substr(tam - 2, tam); 
      } 
       if ((tam >= 13) && (tam <= 14)) 
       { 
         strCampo.value = vr.substr(0, tam - 12) + '.' + vr.substr(tam - 12, 3) + '.' + vr.substr(tam - 9, 3) + '/' + vr.substr(tam - 6, 4) + '-' + vr.substr(tam - 2, tam); 
      } 
       if ((tam >= 15) && (tam <= 17)) 
       { 
         strCampo.value = vr.substr(0, tam - 14) + '.' + vr.substr(tam - 14, 3) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + '-' + vr.substr(tam - 2, tam); 
      } 
    } 
  } 


function Testa(obj){
if(obj.value!=""){
	if(!VerifyCNPJ(obj.value) == 1){ 
		alert("CNPJ não é válido!"); 
		obj.focus();
		return false;
	} 
	return true; 
	}
}	
	
	
function validaEmail(obj){
	var email = obj.value; 
	var BadChars = "*|,\":<>[]{}`\'';()&$#% "; 
	var GoodChars = "@."; 
	var posarroba = email.indexOf ('@',0); 
	if(obj.value != ""){
	
	if (email.length < 6) // o email é menor que 6 caracteres 
	{ 
		alert("e-mail inválido"); 
		obj.focus(); 
		return false; 
	} 
	
	for (var i = 0; i < email.length; i++) 
	{ 
	if (BadChars.indexOf(email.charAt(i)) != -1) // Contém caracteres inválidos, badchars 
	{ 
	alert("Seu e-mail contém caracteres inválidos"); 
	obj.value = ''; 
	obj.focus(); 
	return false; 
	} 
	} 
	for (var i = 0; i < GoodChars.length; i++) 
	{ 
	if (email.indexOf(GoodChars.charAt(i)) == -1) // não tem goodchars 
	{ 
	alert("e-mail inválido"); 
	obj.focus(); 
	return false; 
	} 
	if (email.indexOf(GoodChars.charAt(i),0) == 0) // começou com goodchars (. ou @) 
	{ 
	alert("e-mail inválido");
	obj.focus(); 
	return false; 
	} 
	if (email.lastIndexOf(GoodChars.charAt(i)) > email.length-3) //existe menos de 2 caracteres depois do ultimo goodchar 
	{ 
	alert("e-mail inválido. Seu e-mail não deve terminar com @."); 
	obj.focus(); 
	return false; 
	} 
	} 
	if (email.lastIndexOf('@') > email.lastIndexOf('.')) //Não tem ponto depois do arroba 
	{ 
	alert("e-mail inválido");
	obj.focus(); 
	return false; 
	} 
	
	if (email.indexOf ('@.',0) != -1 || email.indexOf ('.@',0) != -1) // . e @ colados 
	{ 
	alert("e-mail inválido");
	obj.focus(); 
	return false; 
	} 
	if (email.indexOf ('@',posarroba+1) != -1) // Contém mais de um " @ " 
	{ 
	alert("e-mail inválido");
	obj.focus(); 
	return false; 
	}
	
	}
return true;
}


	/*/////////////////////////////////////////////////////////////////////////////////
	// VALIDAÇÕES DOS CAMPOS
	/////////////////////////////////////////////////////////////////////////////////*/

	function valida_campos(obj){
		
		validaEmail(obj);
		Testa(obj);
		ValidaCNPJ(obj);
		validaCEP(obj);
		ValidaData(obj);
	
	}
