var onKeyPhone = function (evt)
{
 var charCode = (evt.which) ? evt.which : event.keyCode
 if (charCode > 31 && (charCode < 48 || charCode > 57) &&
 charCode != 45 && charCode != 40 && charCode != 41)
    return false;

 return true;
};

var onKeyBirthDay = function (evt)
{
 var charCode = (evt.which) ? evt.which : event.keyCode
 if (charCode > 31 && (charCode < 48 || charCode > 57) &&
 charCode != 47)
    return false;

 return true;
};

var onKeyNumber = function (evt)
{
 var charCode = (evt.which) ? evt.which : event.keyCode
 if (charCode > 31 && (charCode < 48 || charCode > 57) )
    return false;

 return true;
};

var onKeyCep = function (evt)
{
 var charCode = (evt.which) ? evt.which : event.keyCode
 if (charCode > 31 && (charCode < 48 || charCode > 57) &&
 charCode != 45)
    return false;

 return true;
};

var changeCheckBoxValue = function(field){
	if(field.checked)
		field.value = "on";
	else
		field.value = "off";
};

var doSaveUser = function(url){
	if( !validateData() ) return false;
	document.forms["contato_form"].action=url;
	document.forms["contato_form"].submit();
};


/*var doSearchSchool = function(url){
	if( !validateSearchSchool() ) return false;
	document.forms["contato_form"].action=url;
	document.forms["contato_form"].submit();
};
*/

var validateSearchSchool = function(){

	var msg = "Os campos abaixo são Obrigatórios: \n";
	var validate	= true;

	var msgPersonal = "Dados Pessoais - ";
	var msgSearch 	= "Dados da Instituição - ";
	var msgJob		= "Dados Profissionais - ";

	var jobNetWork	= document.getElementById("data.jobNet").value;
	//var	sSchool 	= document.getElementById("searchSchool").value;
	var jobCity 	= document.getElementById("data.jobCity").value;
	var jobState 	= document.getElementById("data.jobState").value;
	var sCountry 	= document.getElementById("data.jobCountry").value;

	/** Valida dados para a Busca de Instituição **/
	/*if(sSchool == "" || sSchool.length == 0){
	*	msg += msgSearch + "Buscar Escola \n";
	*	validate = false;
	} */
	if(jobCity == "" || jobCity =="0" || jobCity == "Selecione"){
		msg += msgJob + "Cidade \n";
		validate = false;
	}
	if(jobState == "" || jobState == "0" || jobState == "Selecione"){
		msg += msgJob + "Estado \n";
		validate = false;
	}
	if(sCountry == "" || sCountry == "0" || sCountry == "Selecione"){
		msg += msgPersonal + "País \n";
		validate = false;
	}
	if(jobNetWork == "" || jobNetWork == "Selecione"){
		msg += msgJob + "Rede de Ensino \n";
		validate = false;
	}

	if(validate == false){
		alert(msg);
		return false;
	}

	return true;
};

/** Valida dados do Cadastro **/
var validateData = function(){
	var name = document.getElementById("data.name").value;
	var cpf = document.getElementById("data.cpf").value;
	var residencialPhone = document.getElementById("data.residencialPhone").value;
	var dataBirthDay = document.getElementById("data.birthDay").value;
	var country = document.getElementById("data.country").value;
	var state = document.getElementById("data.state").value;
	var city = document.getElementById("data.city").value;
	var personalTel = document.getElementById("data.residencialPhone").value;
	//var foundSchool;
	var sex;
	/*
	for (var i=0; i < document.getElementsByName('foundSchool').length; i++){
		if (document.getElementsByName('foundSchool')[i].checked){
	    	foundSchool = document.getElementsByName('foundSchool')[i].value;
	    }
	}
	*/
	for (var i=0; i < document.getElementsByName('data.sex').length; i++){
		if (document.getElementsByName('data.sex')[i].checked){
	    	sex = document.getElementsByName('data.sex')[i].value;
	    }
	}

	var email = document.getElementById("data.email");
	if (email != null)
		email = document.getElementById("data.email").value;

	var checkemail = document.getElementById("checkemail");
	if (checkemail != null)
		checkemail = document.getElementById("checkemail").value;

	var password = document.getElementById("data.password").value;
	var checkpassword = document.getElementById("checkpassword").value;

	var jobRole = document.getElementById("data.jobRole");
	if(jobRole != null && jobRole != undefined)
		jobRole = document.getElementById("data.jobRole");

	var jobState = document.getElementById("data.jobState").value;
	var jobCity = document.getElementById("data.jobCity").value;
	var jobNetWork = document.getElementById("data.jobNet").value;
	var jobSchool = document.getElementById("data.jobSchool").value;
	var confirmation = document.getElementById("data.confirmation").value;

	var msgPersonal = "Dados Pessoais - ";
	var msgJob = "Dados Profissionais - ";
	var msgLogin = "Dados de Login - ";

	var msg = "Erro no preenchimento dos campos: \n";
	var required = " - Campo Obrigatório. \n";

	var validate = true;

	/** Valida dados Pessoais **/
	if (name == "" || name.length == 0) {
		msg += msgPersonal + "Nome" + required;
		validate = false;
	}
	if (sex == "" || sex == "0" || sex == undefined) {
		msg += msgPersonal + "Sexo" + required;;
		validate = false;
	}
	if (dataBirthDay == "" || dataBirthDay.length == 0) {
		msg += msgPersonal + "Data Nascimento" + required;;
		validate = false;
	}
	else if ( !validaDataDDMMAAAA(dataBirthDay) ) {
		msg += msgPersonal + "Data Nascimento Incorreta. Formato DD/MM/AAAA \n"
	}
/*	if (cpf == "" || cpf.length == 0) {
*		msg += msgPersonal + "CPF" + required;
*		validate = false;
*	}
*	else{
*		var a  = validaCpf( document.getElementById("data.cpf") );
*		if(  a.length > 0 ){
*			msg += msgPersonal + a + "\n";
*			validate = false;
*		}
	}
*/
	if (residencialPhone == "" || residencialPhone.length == 0) {
		msg += msgPersonal + "Telefone"  + required;;
		validate = false;
	}
	else{
		if (residencialPhone.length != 14) {
			msg += msgPersonal +
			"O campo Telefone precisa ser preenchido corretamente! \n O formato deve ser (XX) XXXX-XXXX" + "\n";
			validate =  false;
		}
	}
	if (country == "" || country == "0" || country == "Selecione") {
		msg += msgPersonal + "País" + required;;
		validate = false;
	}
	if (state == "" || state == "0" || state == "Selecione") {
		msg += msgPersonal + "Estado" + required;;
		validate = false;
	}
	if (city == "" || city == "0" || city == "Selecione") {
		msg += msgPersonal + "Cidade" + required;;
		validate = false;
	}

	/** Valida dados Profissionais **/
	if (jobRole != undefined && jobRole != null && jobRole == "") {
		msg += msgJob + "Cargo" + required;;
		validate = false;
	}

	/** Valida dados de Login **/
	if (email != null) {
		if (email == "" || email.length == 0) {
			msg += msgLogin + "E-mail" + required;;
			validate = false;
		}
		//validar email(verificao de endereco eletr?nico)
		else {
			var str = email;
			var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
			if ( !filter.test(str) ) {
				msg += msgLogin + "Endereço de e-mail não é válido! \n";
				validate = false;
			}
		}

		if (checkemail == "" || checkemail.length == 0) {
			msg += msgLogin + "Confirmar e-mail" + required;;
			validate = false;
		}
		if (email.length != email.length && checkemail != email) {
			msg += msgLogin + "E-mail e Confirma e-mail estão diferentes. \n";
			validate = false;
		}

		if (password == "" || password.length == 0) {
			msg += msgLogin + "Senha" + required;;
			validate = false;
		}
		if (checkpassword == "" || checkpassword.length == 0) {
			msg += msgLogin + "Confirmar Senha" + required;;
			validate = false;
		}
	}

	if (password != "" || checkpassword != "") {
		if (checkpassword.length != password.length || checkpassword != password) {
			msg += msgLogin + "Senha e Confirma senha estão diferentes. \n";
			validate = false;
		}
	}


	/**Valida Dados Profissionais **/

	if (jobState == "" || jobState == "0" || jobState == "Selecione") {
		msg += msgJob + "Estado" + required;;
		validate = false;
	}
	if (jobCity == "" || jobCity == "0" || jobCity == "Selecione") {
		msg += msgJob + "Cidade" + required;;
		validate = false;
	}
	if (jobNetWork == "" || jobNetWork == "0" || jobNetWork == "Selecione") {
		msg += msgJob + "Rede de Ensino" + required;;
		validate = false;
	}

	if (jobSchool == "" || jobSchool == "" || jobNetWork == "Selecione") {
		msg += msgJob + "Instituição de ensino no qual você atua" + required;;
		validate = false;
	}

	/** valida termo **/
	if (confirmation != "on") {
		msg += "Termos -" + "É preciso concordar com os termos para efetuar o cadastro. \n";
		validate = false;
	}

	if(validate == false){
		alert(msg);
		return false;
	}

	//if(foundSchool == '0')
		//validate = validateSchool();

	return validate;
};

/** Valida dados da Escola **/
var validateSchool = function (){
	var schoolState 		= document.getElementById("data.jobState").value;
	var schoolCity 			= document.getElementById("data.jobCity").value;

	var schoolName 			= document.getElementById("schoolName").value;
	var schoolZipCode 		= document.getElementById("schoolZipCode").value;
	var schoolCountry 		= document.getElementById("data.jobCountry").value;
	var schoolStreet 		= document.getElementById("schoolStreet").value;
	var schoolStreetNumber 	= document.getElementById("schoolStreetNumber").value;

	//var msg = "Os campos abaixo são Obrigatórios: \n";
	var validate = true;

	var msg = "Erro no preenchimento dos campos: \n";
	var required = " - Campo Obrigatório. \n";
	var msgSchool = "Nova Instituição - ";

	if(schoolName == "" || schoolName.length == 0 ){
		msg += msgSchool + "Nome" + required;
		validate = false;
	}
	if(schoolZipCode == "" || schoolZipCode.length == 0 ){
		msg += msgSchool + "Cep" + required;
		validate = false;
	}
	else if( !validaCep(gf('schoolZipCode')) ){
		msg += msgSchool + "Cep inválido. Formato XXXXX-XXX  \n";
	}
	if(schoolCountry == "" || schoolCountry == "0" || schoolCountry =="Selecione"){
		msg += msgSchool + "Pais" + required;
		validate = false;
	}
	if(schoolStreet == "" || schoolStreet.length == 0 ){
		msg += msgSchool + "Logradouro" + required;
		validate = false;
	}
	if(schoolStreetNumber == "" || schoolStreetNumber.length == 0 ){
		msg += msgSchool + "Número" + required;
		validate = false;
	}
	if(schoolState == "" || schoolState == "0" || schoolState =="Selecione"){
		msg += msgSchool + "Estado" + required;
		validate = false;
	}
	if(schoolCity == "" || schoolCity == "0" || schoolCity =="Selecione"){
		msg += msgSchool + "Cidade" + required;
		validate = false;
	}

	if(validate == false){
		alert(msg);
		return false;
	}

	return true;

};

var validaCpf = function(field){
	//validar campo CPF vazio e consistente
	if (field !=null)  {
		cpf = field.value;

		cpf = cpf.replace(/\./g, "").replace(/-/g, "");

		erro = new String;
		if (cpf.length < 11) {
			erro = "São necessários 11 dígitos para verificação do CPF!";
		}
		else if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") {
			erro = "CPF inválido!"
		}
		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!  Por favor, verifique o valor inserido!";
		}

		return erro;
	}
};

// Valida data no formato dd/mm/aaaa
var validaDataDDMMAAAA = function (dataValidar) {
    var dataAux;
    try {
        if(dataValidar) {
            dataAux = dataValidar.split("/");

            //valida se ? numerico
            if( isNaN(dataAux[0]) && isNaN(dataAux[1]) &&
                isNaN(dataAux[2]) ) {
                return false;
            }

            //valido que deve ter 8 caracteres
            if( dataValidar.length != 10 ) {
                return false;
            }

            dia = dataAux[0];
            mes = dataAux[1];
            ano = dataAux[2];

            if((dia < 1 || dia > 31) || (mes < 1 || mes > 12) || (ano < 1000)) {
                return false;
            }
            if(mes == 2 && dia > 29) {
                return false;
            }
            if((mes == 4 || mes == 6 || mes == 9 || mes == 11) && dia > 30) {
                return false;
            }
            return true;
        }
    } catch(ex) {
        alert('Erro na execução da função javascript validaDataDDMMAAAA(dataValidar)!' + ex);
    }
    return false;
}


var validaCep = function (cepValidar) {
    var cepAux;
    try {
        if(cepValidar) {
            cepAux = cepValidar.value.split("-");

            //valida se é numerico
            if( isNaN(cepAux[0]) && isNaN(cepAux[1]) ) {
                return false;
            }

            //valido que deve ter 8 caracteres
            if( cepValidar.value.length != 9 ) {
                return false;
            }

            cep1 = cepAux[0];
            cep2 = cepAux[1];

            if(cep1.length !=5) {
                return false;
            }
            if(cep2.length !=3) {
                return false;
            }
            return true;
        }
    } catch(ex) {
        //alert('Erro na execução da funçãoo javascript validaCep(cepValidar)!' + ex);
    }
    return false;
}
