function validaEmail()
{
	if(document.forms[0].cliente_email.value == "") {
		alert("Preecha o campo email.");
		document.forms[0].cliente_email.focus();
		return false;
	}
		
	// Criar outras rotinas de validacao
	if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.forms[0].cliente_email.value)))
    {
        alert("Favor informar um email válido.")
        document.forms[0].cliente_email.focus();
        return false;
    } 
	
	return true;
}



function validaCep()
{
	if(document.forms[0].cliente_cep.value == "") {
		alert("Preecha o campo Cep.");
		document.forms[0].cliente_cep.focus();
		return false;
	}
	
	str = document.forms[0].cliente_cep.value;
	com = s = limpa_string(str);

	var validos = "0123456789";
	var digitos = com;
	var pais;
	  
	digito = '';
	memoria = '';

	for (i=0;i<digitos.length;i++)
	{
		digito = digitos.charAt(i);
		if (validos.indexOf(digito) != -1)
		{
			memoria += digito;
		}
		else
		{}
	}
	
	if (memoria.length > 8 || memoria.length < 8 )
		{
			alert('O CEP informado é inválido');
			//document.forms[0].cep.value = '';
			document.forms[0].cep.focus();
			return false;
		}
		else { 
			return true; 
		}
	
	document.forms[0].cliente_cep.value.value = memoria;
	return true;
}


/* function validaData(name_form, field, data)
/*  Modo de usar: 

<form name="form1">
	<input type="text" name="data1" value=""  onBlur="return validaData(document.form1,'data1', this)">
	<input type="text" name="data2" value="" onBlur="return validaData(document.form1,'data2', this)">
</form>  

*/
function validaData(name_form, field, data)
{	// name_form[field].value
	// validar data 
    hoje = new Date();
    anoAtual = hoje.getFullYear();
    barras   = data.value.split("/");

	if (barras.length == 3)
	{
    	dia = barras[0];
        mes = barras[1];
        ano = barras[2];
        
		resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) 
		&& (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) 
		&& (ano <= anoAtual && ano >= 1900));
		
        if (!resultado) 
		{
        	alert("Formato de data inválido!");
			name_form[field].focus();
            return false;
         }
     } 
	 
	 else 
	 {
          alert("Formato de data inválido!");
          name_form[field].focus();
          return false;
     }
	 
	
	 return true;
}


function defineCpfOuCNPJ(cpf_cnpj)
{
	var num = cpf_cnpj.value.length;
	
	if(num <= 14)
	{
		return validaCPF(cpf_cnpj);
	}
	else if(num > 14)
	{
		return validaCNPJ(cpf_cnpj); 
	}
}

/*
	validaCPF(document.forms[0].cpf.value);
*/
function validaCPF(cpf_cnpj) 
{
	cpf = limpa_string(cpf_cnpj.value);
	
	var  valida  = 1;
	erro = new String;
    
	if(cpf_cnpj.value == '')
	{
		alert("Preecha o campo CPF.");	
		cpf_cnpj.focus();
		return false;
	}
	
	if (cpf.length < 11) 
		erro += "Sao necessários 11 digitos para verificação do CPF! \n\n";
		
        var nonNumbers = /\D/;
    
	if (nonNumbers.test(cpf)) 
		erro += "A verificacao de CPF suporta apenas numeros! \n\n";
    
	if (cpf == "00000000000" || cpf == "11111111111" || 
		cpf == "22222222222" || cpf == "33333333333" || 
		cpf == "44444444444" || cpf == "55555555555" || 
		cpf == "66666666666" || cpf == "77777777777" || 
		cpf == "88888888888" || cpf == "99999999999")
	{
    	erro += "Numero de CPF invalido!";
		
    }
    
	var a = [];
    var b = new Number;
    var c = 11;
    
	for (i = 0; i < 11; i++)
	{
    	a[i] = cpf.charAt(i);
   
        if (i < 9) 
			b += (a[i] * --c);
   }
   
   if ((x = b % 11) < 2) 
   { 
   		a[9] = 0; 
   } 
   else 
   { 
   		a[9] = 11-x; 
	}
               
	b = 0;
    c = 11;
    
	for (y = 0; y < 10; y++) b += (a[y] * c--);
    
	if ((x = b % 11) < 2) 
	{ 
		a[10] = 0; 
	} 
	else 
	{ 
		a[10] = 11-x; 
	}
    
	if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10]))
	{
    	erro +="CPF inválido!";
    }

    if (erro.length > 0) {
    	alert(erro);
		cpf_cnpj.focus();
        return false;
    }
	
	return true;
}

function validaCNPJ(cpf_cnpj) 
{
	CNPJ = cpf_cnpj.value;
    
	erro = new String;
    
	if(cpf_cnpj.value == '')
	{
		alert("Preecha o campo CNPJ.");	
		cpf_cnpj.focus();
		return false;
	}
	
	if (CNPJ.length < 18) erro += "É necessário preencher corretamente o número do CNPJ! \n\n";
    if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
    if (erro.length == 0) erro += "É necessário preencher corretamente o número do CNPJ! \n\n";
    }
    //substituir os caracteres que não são números
    if(document.layers && parseInt(navigator.appVersion) == 4)
	{
    	x  = CNPJ.substring(0,2);
        x += CNPJ.substring (3,6);
        x += CNPJ.substring (7,10);
        x += CNPJ.substring (11,15);
        x += CNPJ.substring (16,18);
        CNPJ = x;
        } else {
        CNPJ = CNPJ. replace (".","");
        CNPJ = CNPJ. replace (".","");
        CNPJ = CNPJ. replace ("-","");
        CNPJ = CNPJ. replace ("/","");
        }
      
		var nonNumbers = /\D/;
        if (nonNumbers.test(CNPJ)) erro += "A verificação de CNPJ suporta apenas números! \n\n";
        var a = [];
        var b = new Number;
               var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
               for (i=0; i<12; i++){
                       a[i] = CNPJ.charAt(i);
                       b += a[i] * c[i+1];
 				}
              
			  if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
               b = 0;
               for (y=0; y<13; y++) {
                       b += (a[y] * c[y]);
               }
               if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
    
	if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
    	erro +="CNPJ inválido!";
    }
               
	if (erro.length > 0)
	{
		cpf_cnpj.focus();
        alert(erro);
    	return false;
    }

	return true;
}


function isCPFCNPJ(campo,pType)
{
   if( isEmpty( campo ) ){return false;}

   var campo_filtrado = "", valor_1 = " ", valor_2 = " ", ch = "";
   var valido = false;
        
   for (i = 0; i < campo.length; i++){
      ch = campo.substring(i, i + 1);
      if (ch >= "0" && ch <= "9"){
         campo_filtrado = campo_filtrado.toString() + ch.toString()
         valor_1 = valor_2;
         valor_2 = ch;
      }
      if ((valor_1 != " ") && (!valido)) valido = !(valor_1 == valor_2);
   }
   if (!valido) campo_filtrado = "12345678912";

   if (campo_filtrado.length < 11){
      for (i = 1; i <= (11 - campo_filtrado.length); i++){campo_filtrado = "0" + campo_filtrado;}
   }

	if(pType <= 1){
		if ( ( campo_filtrado.substring(9,11) == checkCPF( campo_filtrado.substring(0,9) ) ) && ( campo_filtrado.substring(11,12)=="") ){return true;}
	}

	if((pType == 2) || (pType == 0)){
		if (campo_filtrado.length >= 14){
			if ( campo_filtrado.substring(12,14) == checkCNPJ( campo_filtrado.substring(0,12) ) ){ return true;}
		}
	}
	
	return false;
}

function checkCNPJ(vCNPJ){
   var mControle = "";
   var aTabCNPJ = new Array(5,4,3,2,9,8,7,6,5,4,3,2);
   for (i = 1 ; i <= 2 ; i++){
      mSoma = 0;
      for (j = 0 ; j < vCNPJ.length ; j++)
         mSoma = mSoma + (vCNPJ.substring(j,j+1) * aTabCNPJ[j]);
      if (i == 2 ) mSoma = mSoma + ( 2 * mDigito );
      mDigito = ( mSoma * 10 ) % 11;
      if (mDigito == 10 ) mDigito = 0;
      mControle1 = mControle ;
      mControle = mDigito;
      aTabCNPJ = new Array(6,5,4,3,2,9,8,7,6,5,4,3);
   }
   return( (mControle1 * 10) + mControle );
}

function checkCPF(vCPF){
   var mControle = ""
   var mContIni = 2, mContFim = 10, mDigito = 0;
   for (j = 1 ; j <= 2 ; j++){
      mSoma = 0;
      for (i = mContIni ; i <= mContFim ; i++)
         mSoma = mSoma + (vCPF.substring((i-j-1),(i-j)) * (mContFim + 1 + j - i));
      if (j == 2 ) mSoma = mSoma + ( 2 * mDigito );
      mDigito = ( mSoma * 10 ) % 11;
      if (mDigito == 10) mDigito = 0;
      mControle1 = mControle;
      mControle = mDigito;
      mContIni = 3;
      mContFim = 11;
   }
   return( (mControle1 * 10) + mControle );
}


/*
www.moinho.net
Verify empty state of an string. Including spaces
Verifica se uma variável está vazia. Incluindo espaços em branco
Fucntion: isEmpty
Return  : true if the string is empty
Retorno : true se a string estiver vaiz
e-mail  : celso.goya@moinho.net
Author  : Celso Goya

Instructions
If you have any questions about the functionality or sugestions please send us a report.

Instruções
Se você tiver qualquer dúvida ou sugestão sobre a funcionalidade desta função por favor envie-nos um e-mail
*/
function isEmpty(pStrText){
	var	len = pStrText.length;
	var pos;
	var vStrnewtext = "";

	for (pos=0; pos<len; pos++){
		if (pStrText.substring(pos, (pos+1)) != " "){
			vStrnewtext = vStrnewtext + pStrText.substring(pos, (pos+1));
		}
	}

	if (vStrnewtext.length > 0)
		return false;
	else
		return true;
}
