<!--
// ************* FUNÇÃO QUE VALIDA CNPJ ***************

function Verifica_CNPJ(field) {

	var cpf='', cgc='', digito='', digitoc='', temp='', k=0; i=0, j=0, soma=0, mt=0, dg='';

	var checkStr = field.value;
	var allValid = true;
	
	// Cria expressões regulares para remover a formatação do campo
	re = /\./g;
	field.value = field.value.replace(re, "");
	re = /\-/g;
	field.value = field.value.replace(re, "");
	re = /\//g;
	field.value = field.value.replace(re, "");
	  
	// Limpa os espacos da variavel
  	if (field.value == ' ' || field.value == '  ' || field.value == '') {
		return false;
  	} else {
		cpf = field.value;
	}
	
w = 1;
for (i = 0;  i < checkStr.length;  i++) {	
	ch = checkStr.charAt(i);
	vverif = false;	
	if(ch == "0"){
		w++;
	}		
	
	if (w >= 15) {
		allValid = false;
	}
}


if (!allValid) {
	alert('O CNPJ informado não é válido! Formato: 99.999.999/9999-99');
	field.value = "";
	field.focus();
	return (false);
}		
  
  	if (cpf.length == 19) {
		cpf = cpf.substring(1, cpf.length)
	}
	
	for (i = 0;i < cpf.length; i++) {
		k = i + 1;
		if (isNaN(cpf.substring(i,k))== false) {
			temp = temp + cpf.substring(i,k);  	
		}
	}

	if (((cpf.length > 13) && (cpf.length < 19)) && (isNaN(cpf.substring(3,4))==false)) { 
		cgc = temp.substring(0,12);
		digito = temp.substring(12,14);
		mult = '543298765432';
		for (j = 1; j <= 2; j++) {
			soma = 0;
			for (i = 0; i <= 11; i++) {
				k = i + 1;
				soma += parseInt((cgc.substring(i,k)) * (mult.substring(i,k)));
			}
    		if (j == 2) {
				soma = soma + (2 * digitoc);
			}
    		digitoc = ((soma * 10) % 11);
    		if (digitoc == 10) {
				digitoc = 0;
    		}
			dg +=digitoc;
			mult = '654329876543';
		}
    	if (dg != digito) {	
			alert('O CNPJ informado não é válido! Formato: 99.999.999/9999-99');
			//field.value = '';
			field.focus();
			return false;
  		} else {
			field.value=temp.substring(0,2)+'.'+temp.substring(2,5)+'.'+temp.substring(5,8)+'/'+temp.substring(8,12)+'-'+temp.substring(12,14);
			return true;
		}
 	} else {
		alert('O CNPJ informado não é válido!  Formato: 99.999.999/9999-99');
		//field.value = '';
		field.focus();
		return false;
	}
}


// ********** FUNCAO QUE REALIZA A VALIDACAO DE UM CPF **********

function Verifica_CPF(field) {

	var cpf='', cgc='', digito='', digitoc='', temp='', k=0; i=0, j=0, soma=0, mt=0, dg='';


	var checkstr = field.value;
	var allValid = true;

	// Cria expressões regulares para remover a formatação do campo
	re = /\./g;
	field.value = field.value.replace(re, "");
	re = /\-/g;
	field.value = field.value.replace(re, "");
	re = /\//g;
	field.value = field.value.replace(re, "");
	  
	// Limpa os espacos da variavel

  	if (field.value == ' ' || field.value == '  ' || field.value == '') {
		return false;
  	} else {
		cpf = field.value;
	}

  
  	if (cpf.length == 14) {
		cpf = cpf.substring(1, cpf.length)
	}

	for (i = 0;i < cpf.length; i++) {
		k = i + 1;
		if (isNaN(cpf.substring(i,k)) == false) {
			temp = temp + cpf.substring(i,k);  	
		}
	}
	
	if(temp == "") {
		alert('O CPF informado não é válido! Formato: 999.999.999-99');
		//field.value = '';
		field.focus();
		return false;
	}
	 
	if (cpf.length < 11) {
		alert('O CPF informado não é válido! Formato: 999.999.999-99');
		//field.value = '';
		field.focus();
		return false;
	}

  	if (cpf.length >= 11) {
		cpf = temp.substring(0,9);
		digito = temp.substring(9,11);
		for (j = 1; j <= 2; j++) {
			soma = 0;
			mt = 2;
			for (i = 8 + j; i >= 1; i--) {
				soma += parseInt(cpf.charAt(i-1),10) * mt;
				mt++;
			}
			dg = 11 - (soma % 11);
			if (dg > 9) {dg = 0};
				cpf += dg;
		}
	/**********************************************************/

//VERIFICA SE ESTA TUDO REPETIDO
w = 1; A = 1; B = 1; C = 1; D = 1; E = 1; F = 1; 
G = 1; H = 1; I = 1; J = 1;

for (i = 0;  i < checkstr.length;  i++) {	
	ch = checkstr.charAt(i);
	vverif = false;	
	if(ch == "0"){ A++; } if(ch == "1"){ B++; }
	if(ch == "2"){ C++; } if(ch == "3"){ D++; }
	if(ch == "4"){ E++; } if(ch == "5"){ F++; }
	if(ch == "6"){ G++; } if(ch == "7"){ H++; }
	if(ch == "8"){ I++; } if(ch == "9"){ J++; }
	if (A >= 12) { allValid = false; }
	if (B >= 12) { allValid = false; }
	if (C >= 12) { allValid = false; }
	if (D >= 12) { allValid = false; }
	if (E >= 12) { allValid = false; }
	if (F >= 12) { allValid = false; }
	if (G >= 12) { allValid = false; }
	if (H >= 12) { allValid = false; }
	if (I >= 12) { allValid = false; }
	if (J >= 12) { allValid = false; }
}


if (!allValid) {
	alert('O CPF informado não é válido! Formato: 999.999.999-99');
	field.focus();
	return (false);
}	
	/**************************************************/		
		if (digito != cpf.substring(9,11))  {
			alert('O CPF informado não é válido! Formato: 999.999.999-99');
			//field.value = '';
			field.focus();
			return false;
		} else {
			field.value=cpf.substring(0,3)+'.'+cpf.substring(3,6)+'.'+cpf.substring(6,9)+'-'+cpf.substring(9,11);
			return true;
		}
    }
}


// ********** FUNCAO QUE REALIZA A VALIDACAO TANTO DE CPF COMO DE CNPJ **********

function Verifica_CNPJ_CPF(field) {

  var cpf='', cgc='', digito='', digitoc='', temp='', k=0; i=0, j=0, soma=0, mt=0, dg='';

  field.value = Trim(field.value);

	// Cria expressões regulares para remover a formatação do campo
	re = /\./g;
	field.value = field.value.replace(re, "");
	re = /\-/g;
	field.value = field.value.replace(re, "");
	re = /\//g;
	field.value = field.value.replace(re, "");

  // Limpa os espacos da variavel
  if (field.value == ' ' || field.value == '  ' || field.value == ''){
	return false;
  } 
  else {
       cpf = field.value;
  }
  if (cpf.length == 19) {
     cpf = cpf.substring(1, cpf.length)
  }
  
  for (i = 0;i < cpf.length; i++) {
	k = i + 1;
	if (isNaN(cpf.substring(i,k))== false){
          temp = temp + cpf.substring(i,k);  	
	}
  }

 if (((cpf.length > 13) && (cpf.length < 19)) && (isNaN(cpf.substring(3,4))==false)){ 
  cgc = temp.substring(0,12);
  digito = temp.substring(12,14);
  mult = '543298765432';
  for (j = 1; j <= 2; j++) {
    soma = 0;
    for (i = 0; i <= 11; i++) {
      k = i + 1;
      soma += parseInt((cgc.substring(i,k)) * (mult.substring(i,k)));
    }
    if (j == 2){
	soma = soma + (2 * digitoc);
    }
    digitoc = ((soma * 10) % 11);
    if (digitoc == 10){
	digitoc = 0;
    }
    dg +=digitoc;
    mult = '654329876543';
  }
  if (dg != digito || TudoIgual(field)) {
    alert('Esse número de documento não é válido.');
    //field.value = '';
    field.focus();
    return false;
  } 
  else {
    field.value=temp.substring(0,2)+'.'+temp.substring(2,5)+'.'+temp.substring(5,8)+'/'+temp.substring(8,12)+'-'+temp.substring(12,14);
    return true;
  }
 }
 else {
  if (cpf.length < 11) {
	alert('Esse número de documento não é válido.');
	//field.value = '';
	field.focus();
	return false;
  }
  if (cpf.length >= 11) {
      cpf = temp.substring(0,9);
	digito = temp.substring(9,11);
	for (j = 1; j <= 2; j++) {
	  soma = 0;
	  mt = 2;
	  for (i = 8 + j; i >= 1; i--) {
	    soma += parseInt(cpf.charAt(i-1),10) * mt;
	    mt++;
	  }
	  dg = 11 - (soma % 11);
	  if (dg > 9) {dg = 0};
	  cpf += dg;
	}

	if (digito != cpf.substring(9,11) || TudoIgual(field)) {
	  alert('Esse número de documento não é válido!');
	  //field.value = '';
	  field.focus();
	  return false;
	  } 
	else {
	  field.value=cpf.substring(0,3)+'.'+cpf.substring(3,6)+'.'+cpf.substring(6,9)+'-'+cpf.substring(9,11);
	  return true;
	}
    }
 
  } // fim if (cpf.length < 15)
}

// ********** FUNÇÃO QUE VERIFICA SEMELHANÇA ENTRE STRINGS *************

function TudoIgual(field) {
  var str = field.value, primeiro='';
  for(i = 0; i < str.length; i++)
    if (str.charAt(i)>='0' && str.charAt(i)<='9')
      if (primeiro=='') primeiro = str.charAt(i);
      else if (str.charAt(i) != primeiro) return 0;
  return 1;
}


// ************ FUNÇÃO QUE REMOVE ESPAÇOS A DIREITA E A ESQUERDA DE STRINGS **************

function Trim(s) {
	if (s.length == 0)
		return s;
	if (s.length == 1 && s.value == ' ')
		return '';
	var i=0;
	while ( i < s.length && s.substring(i,i+1) == ' ') i++;
	var f = s.length - 1;
	while ( f >= 0 && s.substr(f,f+1) == ' ') f--;
	s = s.substr(i,f+1);
	return s;
}

// ***************** FUNÇÃO PARA A VALIDAÇÃO DE NÚMEROS ********************

/* Funções auxiliares para validação de dados */

function Verifica_Numero(field) {

  var checkOK = "0123456789-,.";
  var checkStr = field.value;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++) {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length) {
      allValid = false;
      break;
    }
    if (ch == "," || ch == ".") {
      allNum += ".";
      decPoints++;
    }
    else if (ch != ".")
      allNum += ch;
  }
  if (!allValid) {
	alert('Número inválido! (Formato: 9.999,99)');
	field.value = "";
	field.focus();
    return (false);
  }
  if (decPoints > 1) {
	alert('Número Inválido! (Formato: 9.999,99)');
	field.value = "";
	field.focus();
    return (false);
  }
  return (true);
}


/* Funções auxiliares para validação de dados */

function Verifica_NumeroSimbolos(field) {

  var checkOK = "0123456789-() ";
  var checkStr = field.value;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++) {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length) {
      allValid = false;
      break;
    }
    if (ch == "," || ch == ".") {
      allNum += ".";
      decPoints++;
    }
    else if (ch != ".")
      allNum += ch;
  }
  if (!allValid) {
	alert('Número inválido! (Formato: 9.999,99)');
	field.value = "";
	field.focus();
    return (false);
  }
  if (decPoints > 1) {
	alert('Número Inválido! (Formato: 9.999,99)');
	field.value = "";
	field.focus();
    return (false);
  }
  return (true);
}



// ************ FUNÇÃO AUXILIAR PARA A VERIFICAÇÃO DA DATA ***************

function Str2Int(str) {

  var value=0, i=0, digit=0;
  for(i=0; i < str.length; i++) {
    if (str.charAt(i)=='0') digit=0;
    if (str.charAt(i)=='1') digit=1;
    if (str.charAt(i)=='2') digit=2;
    if (str.charAt(i)=='3') digit=3;
    if (str.charAt(i)=='4') digit=4;
    if (str.charAt(i)=='5') digit=5;
    if (str.charAt(i)=='6') digit=6;
    if (str.charAt(i)=='7') digit=7;
    if (str.charAt(i)=='8') digit=8;
    if (str.charAt(i)=='9') digit=9;
    value=value+digit*Math.pow(10,str.length-i-1);
  }
  return value;
}


// ********** FUNÇÃO PARA A VALIDAÇÃO DE DATAS *************

function Verifica_Data(field) {

var strData = '';
var dia='', mes='', ano='',str='';
var Meses = "X Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
str = field.value
var checkOK = "0123456789/";
var checkStr = field.value;
var allValid = true;

//verifica a formatação da data
// Expressão regular
expressao1 = "^[0-9]{2}/[0-9]{2}/[0-9]{4}$";

//Aceita o número se estiver nos seguintes formatos: "dd/mm/aaaa"
var pattern = new RegExp(expressao1);

if(!pattern.exec(field.value)) {
	alert('Data inválida! (Formato: dd/mm/aaaa)');
	field.value = "";
	//field.focus();
	return (false);	
}

w=1;
for (i = 0;  i < checkStr.length;  i++) {
	ch = checkStr.charAt(i);
	vverif = false;
	
	if(ch == "1"){
		w++;
	}
	
	for (j = 0;  j < checkOK.length;  j++) {
		
  		if ((ch == checkOK.charAt(j)) && (w < "9")) {

  			vverif = true;
    		break;
    	}	
	}

	
	if (!vverif) {
		allValid = false;
	}
}

if (!allValid) {
	alert('Data inválida! (Formato: dd/mm/aaaa)');
	field.value = "";
	field.focus();
	return (false);
}
//*****************************************
//verifica se a data é maior que a data do servidor
            Data = field.value
            var DiaPesq;
            var MesPesq;
            var AnoPesq;
            
            // Data a ser pesquisada
            DiaPesq = Data.substr(0,2);
            MesPesq = Data.substr(3,2);
            AnoPesq = Data.substr(6,4);
            
            // Data Maxima
    DataMax = new Date();
    DiaMax = DataMax.getDate();

    MesMax = DataMax.getMonth() + 1;

    AnoMax = DataMax.getYear();            

    if ( (MesPesq>MesMax && AnoPesq>=AnoMax) || (AnoPesq>AnoMax) || (MesPesq==MesMax && AnoPesq==AnoMax && DiaPesq>DiaMax) )

    {

                alert("A Data é Superior a Data Atual");
                field.value="";
                field.focus();
                return (false);
    }
//***********************************

if(Trim(str) == "") { return (true) } 
//Separa o dia, o mês e o ano
dia=str.substring(0,2);
mes=str.substring(3,5);
ano=str.substring(6,10);
//transforma a variável Meses em um array
var myMesarray = Meses.split( ' ' );
var i = Str2Int(mes);
mes = myMesarray[i];
strData = dia + " " + mes + " " + ano
//Coneverte a string em data
var myDate = new Date( strData );
//Se a data não for válida (NaN) mostra alert e retorna falso
if ( myDate == "NaN" )  {
	alert("Data inválida! Formato: dd/mm/aaaa");
	field.value = "";
	field.focus();
    return(false);
} else {
	//Converte a data gerada em uma data com o format do GMT 
	var myDate_string = myDate.toGMTString();
	var myDate_array = myDate_string.split( ' ' );
	//Testa se o mês digitado e o calcudado são iguais
	if ( myDate_array[2] != mes ) {
		alert("Data inválida! Formato: dd/mm/aaaa");
		field.value = "";
		field.focus();
		return(false)
	} 
}
return (true)
}

// ********** FUNÇÃO PARA A VALIDAÇÃO DE E-MAILS *************

/**verifica email**/

function Verifica_Email(campo) {
  if (Trim(campo.value) != '') {
    var emailok = 0;
    var checkStr = campo.value;
    var priaroba = checkStr.indexOf('@');
    var ultponto = checkStr.lastIndexOf('.');
    
    var checkCerto = "qwertyuiopasdfghjklzxcvbnm0123456789@_.-";
	var allValid = true;

for (i = 0;  i < checkStr.length;  i++) {
	ch = checkStr.charAt(i);
	vverif = false;

	for (j = 0;  j < checkCerto.length;  j++) {	

  		if (ch == checkCerto.charAt(j)) {

  			vverif = true;
    		break;
    	}	
    }	
	
	if (!vverif) {
		allValid = false;
	}
}

if (!allValid) {
	alert('E-mail Inválido.');
	campo.focus();
	return (false);
}    

    if (checkStr.indexOf('@') > 0 ) {
       if (checkStr.lastIndexOf('@') == checkStr.indexOf('@')) {
          if (checkStr.lastIndexOf('.') > 0 ) {
             if ( checkStr.lastIndexOf('.')  !=  checkStr.length - 1) {
	 			if ( ultponto > priaroba ) { 
	 				var emailok = 1; 
	 			}
             }
          }
       }
    }

    if (emailok != 1) {
    	alert('E-mail Inválido.');
		campo.select();
    }
  }
}

// ********** FUNÇÃO PARA A VALIDAÇÃO DE NOMES COM SOBRENOMES *************

function Verifica_NomeSobrenome(campo) {

    var checkStr = Trim(campo.value);
    var VerificaString = "";
    var PrimeiroCaracter = checkStr.substr(0,1);
	var Expressao1 = "^[0-9a-zA-Z]{1}$";
	var Resultado = true;
    
    /* Verifica se a string está vazia */
    if(checkStr.length < 1) {
    	return(true);
    }
    
    /* Verifica se a string está vazia */
    if(checkStr.length == 1) {
    	alert("Você deve digitar no mínimo dois nomes no campo!");
    	//campo.value = "";
    	campo.focus();
    	return(false);
    }
    
    /* Verifica se o primiero caracter é algo diferente de letras */
	var pattern = new RegExp(Expressao1);
	if(!pattern.exec(PrimeiroCaracter)) {
    	alert("O nome deve iniciar com uma letra!");
    	//campo.value = "";
    	campo.focus();
    	return(false);
    }

	/* Verifica a existência do nome e do sobrenome com base nos espaços em branco da string */
	VerificacaoPrimeiroNome = false;
	ExisteEspaco = false;

    for (i = 0;  i < checkStr.length;  i++) {
		
		ch = checkStr.charAt(i);
		
		if(ch != " ") {

			VerificaString = VerificaString + ch;

		} else {
			
			ExisteEspaco = true;
			VerificacaoPrimeiroNome = true;

			// Verifica o tamanho do primeiro nome
			if(VerificaString.length < 2 && VerificacaoPrimeiroNome) {
		    	alert("O primeiro nome deve conter mais de uma letra!");
		    	//campo.value = "";
		    	campo.focus();
		    	return(false);
			} else {
				return (true)
			}
			
			// Verifica se o usuário só digitou 1 nome
			if((i+1) > checkStr.length) {
		    	alert("Você deve digitar no mínimo dois nomes no campo!");
		    	//campo.value = "";
		    	campo.focus();
		    	return(false);
			}

			VerificaString = "";

		}
	}

	// Verifica se o usuário digitou algo diferente de espaço em branco após o primeiro nome
	VerificaSobrenome = Trim(VerificaString);
	if(VerificaSobrenome.length < 1) {
    	alert("Você deve digitar no mínimo dois nomes no campo!");
    	//campo.value = "";
    	campo.focus();
    	return(false);
	}
	
	/* Verifica se existe algum espaço em branco na string */
	if(!ExisteEspaco) {
    	alert("Você deve digitar no mínimo dois nomes no campo!");
    	//campo.value = "";
    	campo.focus();
    	return(false);
	}
	
	return(true);
	
} 



// ***************** FUNÇÃO PARA A VALIDAÇÃO DE NÚMEROS ********************

/* Funções auxiliares para validação de dados */

function Verifica_Letras(field) {

  var checkOK = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890åäáàãâäéèêëíìîïóòõôöúùûüçÅÄÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇ&-  ";
  var checkStr = field.value;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++) {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length) {
      allValid = false;
      break;
    }
    if (ch == "," || ch == ".") {
      allNum += ".";
      decPoints++;
    }
    else if (ch != ".")
      allNum += ch;
  }
  if (!allValid) {
	alert('Caracter Inválido!');
	//field.value = "";
	field.focus();
    return (false);
  }
  if (decPoints > 1) {
	alert('Caracter Inválido!');
	//field.value = "";
	field.focus();
    return (false);
  }
  return (true);
}
//-->