var erro = "";

function ValidaData(data, campo) 
{
    var bissexto = 0;
    var data = data; 
    var tam = data.length;
 
	if (tam == 10) 
    {
        var dia = data.substr(0,2)
        var mes = data.substr(3,2)
        var ano = data.substr(6,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                        
            }
        }
    }    

    if(data == "")
    {
        erro += "O campo " + campo + " deve ser preenchido!";
        return false;
    }
    else
    {
        erro += "O Campo " + campo + " com a Data " + data + " é inválida!";
        return false;
    }
}

function ValidaCampoVazio(campo, nomeCampo)
{
	if (campo == "")
	{
		erro += "Campo " + nomeCampo + " deve ser preenchido!";
		return false;
	}
	else if (campo == "0")
	{
		erro += "Campo " + nomeCampo + " deve ser selecionado ou preenchido!";
		return false;
	}
	else if (campo == "Selecione" || campo == "NENHUMA")
	{
		erro += "Campo " + nomeCampo + " deve ser informado!";
		return false;
	}
	else
	{
		return true;
	}
}

function ValidaCampoNumerico(campo, nomeCampo)
{
	var nonNumbers = /\D/;   
	
	if  (nonNumbers.test(campo))  
	{   
		erro += "Campo " + nomeCampo + " deve conter apenas valores numéricos!";
		return false;  
	} 
	else					
	{
		return true;
	}     
}

function ValidaCPF(cpfInformado) 
{
	var cpf;
	var checkErro = 0;
	cpf = cpfInformado; 
	
	// verifica se o campo é nulo
	if (cpf == "") 
	{
		erro += "o CPF deve ser preenchido!";
		checkErro = 1;
		return false;
	}
	
	cpf = cpf.replace (".","");
	cpf = cpf.replace (".","");
	cpf = cpf.replace ("-","");
	cpf = cpf; 

	// aqui começa a checagem do cpf
	var posicao;
	var i;
	var soma;
	var dv;
	var dv_informado;
	var digito = new Array(10);
	
	// retira os dois últimos dígitos do número informado
	dv_informado = cpf.substr(9, 2); 
	
	// desemembra o número do cpf na array digito
	for (i=0; i<=8; i++) 
	{
		digito[i] = cpf.substr( i, 1);
	}

	// calcula o valor do 10º dígito da verificação
	posicao = 10;
	soma = 0;
	
	for (i=0; i<=8; i++) 
	{
		soma = soma + digito[i] * posicao;
		posicao = posicao - 1;
	}
	
	digito[9] = soma % 11;
	
	if (digito[9] < 2) 
	{
		digito[9] = 0;
	}
	else
	{
		digito[9] = 11 - digito[9];
	}

	// calcula o valor do 11º dígito da verificação
	posicao = 11;
	soma = 0;
	
	for (i=0; i<=9; i++) 
	{
		soma = soma + digito[i] * posicao;
		posicao = posicao - 1;
	}
	
	digito[10] = soma % 11;
	
	if (digito[10] < 2) 
	{
		digito[10] = 0;
	}
	else 
	{
		digito[10] = 11 - digito[10];
	}

	// Verifica se os valores dos dígitos verificadores conferem
	dv = digito[9] * 10 + digito[10];
	
	if (dv != dv_informado) 
	{
		erro += "Número do CPF inválido";
		checkErro = 1;
		return false;
	} 
	
	if (checkErro == 0)
	{
		return true;
	}
}

function validaCNPJ(cnpjDigitado) 
{
	CNPJ = cnpjDigitado;
    var checkErro = 0;
	
	if (CNPJ.length < 18)
	{ 
		erro += "Preencha corretamente o número do CNPJ! \n\n"; 
		checkErro = 1;
		return false;
	}
	
	if (checkErro == 0)
	{
		if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-"))
		{
	        if (erro.length == 0)
			{
				erro += "Preencha corretamente o número do CNPJ! \n\n"; 
				checkErro = 1;
				return false;
			}
		}
    }
	
	//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 (checkErro == 0)
	{
		if (nonNumbers.test(CNPJ))
		{
			erro += "O CNPJ informado deve conter apenas números! \n\n"; 
			checkErro = 1;
			return false;
		}
	}
	
	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 (checkErro == 0)
	{
		if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13]))
		{
			erro +="CNPJ informado está incorreto!";
			checkErro = 1;
			return false;
		}
	}
	
	if (erro.length > 0 && checkErro == 0)
	{
		alert(erro);
		return false;
	} 
	
	return true;

}

function checkcomentarios(form, nomeCampo, tamanhoCampo) 
{ 
	var max = tamanhoCampo; 
	
	if (form.elements[nomeCampo].value.length > max) 
	{ 
		alert("O máximo de caracteres é " + max + " !"); 
		
		return false; 
	} 
	else 
	{
		return true; 
	}
}


