//campoPreenchido.js

function campoPreenchido(campo) {
    if(campo.type=="text" || campo.type=="hidden" || campo.type=="password" || campo.type=="file") {

      var textoDoCampo = campo.value;

      for (i=0; i<textoDoCampo.length; i++) {

        if (textoDoCampo.charAt(i) != ' ')

          return true;

      }

      if (campo.value == null) {

         return false;

      }

    }

    if(campo.type=="select-one" || campo.type=="select"){

      if(campo.selectedIndex > 0) {

        return true;

      }

    }

    return false;

}



// validarData.js

function validarData(campoDiaData, campoMesData, campoAnoData) {

    if (campoAnoData.value != "" && campoMesData.value != "" && campoDiaData.value != "") {

        if (validarAno(campoAnoData)) {

            if (validarMes(campoMesData)) {

                return validarDia(campoDiaData, campoMesData);

            }

        }

        return false;

    }

    else {

        alert('Por favor, preencha todos os campos da data.');

        return false;

    }

}



function validarDia(campoDia, campoMes) {

    var dia = campoDia.value;

    var mes = campoMes.value;

    var erro = false;

    if (dia.length > 1) {

        if (ehNumero(campoDia, "Dia") == false)

            return false;

        if ((mes == 1) || (mes == 3) || (mes == 5)

                || (mes == 7) || (mes == 8)

                || (mes == 10) || (mes == 12)) {



            erro = ((dia < 1) || (dia > 31));



        } else if ((mes == 4) || (mes == 6)

                || (mes == 9) || (mes == 11)) {



            erro = ((dia < 1) || (dia > 30));



        } else

            erro = (( dia < 1 ) || ( dia > 29 )); // Fevereiro



        if (erro) {

            alert("Erro: dia inexistente no mês informado.");

            campoDia.focus();

            campoDia.select();

            return false;

        }

    } else {

        alert("Erro: dia inválido.\n O dia deve estar na forma DD, com 2 algarismos.");

        campoDia.focus();

        campoDia.select();

        return false;

    }

    return true;

}



function validarMes(campo) {

    var valor = campo.value;

    if (valor.length > 1) {

        if (ehNumero(campo, "Mês") == false)

            return false;

        if (valor < 1 || valor > 12) {

            alert("Erro: mês inválido.");

            campo.focus();

            campo.select();

            return false

        }

    } else {

        alert("Erro: mes inválido.\n O mes deve estar na forma MM, com 2 algarismos.");

        campoDia.focus();

        campoDia.select();

        return false;

    }

    return true;

}



function validarAno(campo) {

    var valor = campo.value;

    if (valor.length > 0) {

        if (ehNumero(campo, "Ano") == false)

            return false;

        if (valor < 1900) {

            alert("Erro: ano inválido.\n O ano deve ser maior que 1900.");

            campo.focus();

            campo.select();

            return false

        }

    }

    return true;

}



// ehNumero.js

function ehNumero(campo, texto) {

    for (var i = 0; i < campo.value.length; i++) {

        caracter = campo.value.charAt( i );

        if ((escape(caracter) < "0" ) || (escape(caracter) > "9" )) {

            alert("Erro: o campo <" + texto + "> deve ser numérico.");

            campo.focus();

            campo.select();

            return false;

        }

    }

    return true;

}



// ehEmailValido.js

function ehEmailValido(email) {

    posArroba = email.indexOf("@");

    primeiroPonto = email.indexOf(".",posArroba+1);

    tamanhoDominio = email.substring(posArroba+1,primeiroPonto).length;

    if (email != "") {

        if ((posArroba == -1 && email != "")

                || email.indexOf("@",posArroba+1) != -1

                || email.indexOf("@") == email.length-1

                || email.indexOf(".") == email.length-1

                || email.indexOf("@@") != -1

                || email.indexOf("..") != -1

                || email.indexOf(".@") != -1

                || email.indexOf("@.") != -1

                || email.substring(posArroba+1,email.length).indexOf(".") == -1

                || email.charAt(0) == '@'

                || email.charAt(0) == '.'

                || posArroba < 2

                || tamanhoDominio < 2

                || tamanhoDominio > 26

                || soNumeros(email)) {

            return false;

        } else {

            return true;

        }

    } else {

        return true;

    }

    return true;

}



function soNumeros(email) {

    for (i=0; i<email.length; i++) {

    	if (ehLetra(email.charAt(i))) {

    	    return false;

    	}

    }

    return true;

}



function ehLetra(caracter) {

    var caracterMaiusculo = caracter.toUpperCase();

    if (caracterMaiusculo == "A"

        || caracterMaiusculo == "B"

        || caracterMaiusculo == "C"

        || caracterMaiusculo == "D"

        || caracterMaiusculo == "E"

        || caracterMaiusculo == "F"

        || caracterMaiusculo == "G"

        || caracterMaiusculo == "H"

        || caracterMaiusculo == "I"

        || caracterMaiusculo == "J"

        || caracterMaiusculo == "K"

        || caracterMaiusculo == "L"

        || caracterMaiusculo == "M"

        || caracterMaiusculo == "N"

        || caracterMaiusculo == "O"

        || caracterMaiusculo == "P"

        || caracterMaiusculo == "Q"

        || caracterMaiusculo == "R"

        || caracterMaiusculo == "S"

        || caracterMaiusculo == "T"

        || caracterMaiusculo == "U"

        || caracterMaiusculo == "V"

        || caracterMaiusculo == "X"

        || caracterMaiusculo == "W"

        || caracterMaiusculo == "Y"

        || caracterMaiusculo == "Z") {



        return true;

    }



    return false;



}



//Tira espacos em branco no fim e comeco dos strings

function trim( texto ) {

	var retorno = "";

	var i = 0;

	while( i < texto.length && texto.charAt(i++) == unescape("%20") );

 	j = texto.length;

 	while( j >= 0 && texto.charAt(--j) == unescape("%20") );

  	retorno = texto.substring( i-1, j+1 );

    	return( retorno );

}



function ehNumeroCPF(valor)

{

	valor = trim(valor);

        for (i=0; i < valor.length; i++) {

                if (isNaN(parseInt(valor.charAt(i)))) {

                        return false;

                }

        }

        return true;

}



//valida o cpf

function testaCPF1(rcpf1) {

        if(ehNumeroCPF(rcpf1)) {

                if(rcpf1.length < 9) {

                        alert("Erro: CPF inválido.");

                        return false;

                }

                else {return true;}

        }

        else {

                alert("Erro: CPF deve ser um valor numérico.");

                return false;

        }

}



function testaCPF2(rcpf2) {

        if(ehNumeroCPF(rcpf2)) {

                if(rcpf2.length < 2) {

                        alert("Erro: CPF inválido.");

                        return false;

                }

                else {return true;}

        }

        else {

                alert("Erro: CPF deve ser um valor numérico.");

                return false;

        }

}



function testaDigito(rcpf1,rcpf2) {

    cpf1 = rcpf1 + rcpf2;

    cpf2 = "";

    controle = rcpf2;

    contini = 10;

    for (j=1; j<=2; j++) {

        soma = 0;

        i = 1;

        while (i < contini) {

            soma = soma + (parseInt(cpf1.substring(i-1,i))*(contini+1-i));

            i++;

        }

        digito=(soma*10)%11;

        if (digito==10) digito = 0;

        cpf2 = cpf2 + digito;

        contini++;

    }
//alert('controle: '   + controle + ' cpf2:'+cpf2);
    if (controle == cpf2) {

        return true;

    }

    else  {

        alert("Erro: Dígito verificador não confere.");

        return false;

    }

}



function validaCPF(cpf) {



	cpf = trim(cpf);

	if(ehNumeroCPF(cpf)) {

	        if (cpf.length != 11) {

		    alert("Este campo deve conter 11 dígitos seguidos.");

	            return false;

		}



	        var cpf1 = cpf.substring(0,9);

		var cpf2 = cpf.substring(9,11);



	        if(testaCPF1(cpf1) && testaCPF2(cpf2))

		    return testaDigito(cpf1,cpf2);

	        else

		    return false;

	}

	else {

		alert("Erro: CPF deve ser um valor numérico.");

		return false;

	}



}
