function validaCep(cep, obrigatorio){
	if ((obrigatorio == 1) || (obrigatorio == 0 && cep.value != "")) {
		var objER = /^[0-9]{5}\-[0-9]{3}$/;
		if(objER.test(cep.value)){
			return true;
		} else{
			cep.focus();
			return false;
		}
	}
	return true;
}

function validaData(data, obrigatorio){
    //Se o parâmetro obrigatório for igual à zero, significa que elepode estar vazio, caso contrário, não

    var strdata = data.value;
    if ((obrigatorio == 1) || (obrigatorio == 0 && strdata != "")) {
        //Verifica a quantidade de digitos informada esta correta.
        if (strdata.length != 10) {
            alert("Formato da data não é válido.  Formato correto: - dd/mm/aaaa.");
            data.focus();
            return false
        }
        //Verifica máscara da data
        if ("/" != strdata.substr(2, 1) || "/" != strdata.substr(5, 1)) {
            alert("Formato da data não é válido. Formato correto: - dd/mm/aaaa.");
            data.focus();
            return false
        }
        dia = strdata.substr(0, 2)
        mes = strdata.substr(3, 2);
        ano = strdata.substr(6, 4);
        //Verifica o dia
        if (isNaN(dia) || dia > 31 || dia < 1) {
            alert("Formato do dia não é válido.");
            data.focus();
            return false
        }
        if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
            if (dia == "31") {
                alert("O mês informado não possui 31 dias.");
                data.focus();
                return false
            }
        }
        if (mes == "02") {
            bissexto = ano % 4;
            if (bissexto == 0) {
                if (dia > 29) {
                    alert("O mês informado possui somente 29 dias.");
                    data.focus();
                    return false
                }
            }
            else {
                if (dia > 28) {
                    alert("O mês informado possui somente 28 dias.");
                    data.focus();
                    return false
                }
            }
        }
        //Verifica o mês
        if (isNaN(mes) || mes > 12 || mes < 1) {
            alert("Formato do mês não é válido.");
            data.focus();
            return false
        }
        //Verifica o ano
        if (isNaN(ano)) {
            alert("Formato do ano não é válido.");
            data.focus();
            return false
        }
    }
    return true;
}

function validaEmail(mail, obrigatorio){
    if ((obrigatorio == 1) || (obrigatorio == 0 && mail.value != "")) {
        var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
        if (typeof(mail) == "string") {
            if (er.test(mail)) {
                return true;
            }
        }
        else
            if (typeof(mail) == "object") {
                if (er.test(mail.value)) {
                    return true;
                }
            }
            else {
                return false;
            }
    }
    else {
        return true;
    }
}

function validaCpf(valorCPF){
	var cpf = valorCPF.replace(/[^0-9]/g, '');

    if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") {
        return false;
    }

    soma = 0;
    for (i = 0; i < 9; i++)
        soma += parseInt(cpf.charAt(i)) * (10 - i);
    resto = 11 - (soma % 11);
    if (resto == 10 || resto == 11)
        resto = 0;
    if (resto != parseInt(cpf.charAt(9))) {
        return false;
    }
    soma = 0;
    for (i = 0; i < 10; i++)
        soma += parseInt(cpf.charAt(i)) * (11 - i);
    resto = 11 - (soma % 11);
    if (resto == 10 || resto == 11)
        resto = 0;
    if (resto != parseInt(cpf.charAt(10))) {
        return false;
    }
    return true;
}

function validaCnpj(cnpj) {
	cnpj = cnpj.replace(/[^0-9]/g, '');
	var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
	digitos_iguais = 1;
	if (cnpj.length < 14 && cnpj.length < 15)
		return false;
	for (i = 0; i < cnpj.length - 1; i++)
		if (cnpj.charAt(i) != cnpj.charAt(i + 1)) {
			digitos_iguais = 0;
			break;
		}
	if (!digitos_iguais) {
		tamanho = cnpj.length - 2
		numeros = cnpj.substring(0,tamanho);
		digitos = cnpj.substring(tamanho);
		soma = 0;
		pos = tamanho - 7;
		for (i = tamanho; i >= 1; i--) {
			soma += numeros.charAt(tamanho - i) * pos--;
			if (pos < 2)
				pos = 9;
		}
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if (resultado != digitos.charAt(0))
			return false;
		tamanho = tamanho + 1;
		numeros = cnpj.substring(0,tamanho);
		soma = 0;
		pos = tamanho - 7;
		for (i = tamanho; i >= 1; i--) {
			soma += numeros.charAt(tamanho - i) * pos--;
			if (pos < 2)
				pos = 9;
		}
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if (resultado != digitos.charAt(1))
			return false;
		return true;
	}
	else
		return false;
}
