

function formatar(src, mask) {
	var i = src.value.length;
	var saida = mask.substring(i,i+1);
	var ascii = event.keyCode;
	if (saida == "C") { //Somente caracteres C ou D
	   if ((ascii==67)||(ascii==68)) {return;} else {  
	   if ((ascii==99)||(ascii==100)) {event.keyCode=event.keyCode-32;return;} else {event.keyCode=0}}
	} else if (saida == "A") { //Letras do alfabeto ou Espaço ou Ponto
		if ((ascii >=97) && (ascii <= 122) || ((ascii>=224) && (ascii<=246))) { event.keyCode -= 32; }
		else if (((ascii >=65) && (ascii <= 90)) || (ascii==32) || (ascii==46) || ((ascii>=192) && (ascii<=214))) { return; }
		else { event.keyCode = 0; };
	} else if (saida == "0") {  //Números de 0 a 9
		if ((ascii >= 48) && (ascii <= 57)) { return; }
		else { event.keyCode = 0 }
	} else if (saida == "M") { //Caracteres alfa-numéricos
		if ((ascii >=97) && (ascii <= 122)) { event.keyCode -= 32; }
		else if (((ascii >=65) && (ascii <= 90)) || ((ascii >= 48) && (ascii <= 57))) { return; }
		else { event.keyCode = 0 }
	} else if (saida == "$") {
		if ((ascii >= 48) && (ascii <= 57)) {
			vr = src.value
			vr = vr.replace( ".", "" );
			vr = vr.replace( ",", "" );
			tam = vr.length;
			if ( tam >= 1 && tam <= 10 ){
				vr = vr.substring( 0, tam-1 ) + "," + vr.substring( tam-1, tam );}
			if ( tam >= 5 && tam <= 10 ){
				tam = tam+1;
				vr = vr.substring( 0, tam-5 ) + "." + vr.substring( tam-5, tam );}
			src.value = vr;
			} else { event.keyCode = 0 }
	} else if (saida == "#") { //Letras do alfabeto ou Espaço ou - ou . ou /
		if ((ascii >=97) && (ascii <= 122) || ((ascii>=224) && (ascii<=246))) { event.keyCode -= 32; }
		else if (((ascii >=65) && (ascii <= 90)) || (ascii==32) || ((ascii >=45) && (ascii <= 47)) || ((ascii>=192) && (ascii<=214))) { return; }
			else { event.keyCode = 0; }
	} else if (saida == "9") {
		if ((ascii >= 48) && (ascii <= 57) || ((ascii >=45) && (ascii <= 47))) { return; }
		else { event.keyCode = 0 }
	} else if (saida == "") {
		if ((ascii >=97) && (ascii <= 122) || ((ascii>=224) && (ascii<=246))) { event.keyCode -= 32; }
		else { return; }
	} else {
		while ((saida != "A") && (saida != "0") && (saida != "M")){
			src.value += saida;
			i += 1
			saida = mask.substring(i,i+1);
		}
		if (saida == "A") {
			if ((ascii >=97) && (ascii <= 122) || ((ascii>=224) && (ascii<=246))) { event.keyCode -= 32; }
			else if (((ascii >=65) && (ascii <= 90)) || (ascii==32) || (ascii==46) || ((ascii>=192) && (ascii<=214))) { return; }
				else { event.keyCode = 0; };
		} else if (saida == "0") {
			if ((ascii >= 48) && (ascii <= 57)) { return; }
			else { event.keyCode = 0 }
		} else if (saida == "M") { //Caracteres alfa-numéricos
			if ((ascii >=97) && (ascii <= 122)) { event.keyCode -= 32; }
			else if (((ascii >=65) && (ascii <= 90)) || ((ascii >= 48) && (ascii <= 57))) { return; }
			else { event.keyCode = 0 }
		} else { return; }
	}
}

// Verifica se o CPF é válido
function checkCPF(obj,msg) {
	cpf = obj.value

	// Retira os caracteres que não são números
	var somenteNum = "";
	for( var i = 0; i < cpf.length; i++ ) {
		var x = cpf.charAt(i);
		if( x >= '0' && x <= '9' ) {
			somenteNum += x;
		}
	}
	
	if (somenteNum == ""){
		alert(msg);
    	obj.focus();
		return false;
	}
	
  var rcpf1 = somenteNum.substr(0,9);
  var rcpf2 = somenteNum.substr(9,2);

  d1 = 0;
  for (i=0;i<9;i++) 
    d1 += rcpf1.charAt(i)*(10-i);
  d1 = 11 - (d1 % 11);
  if (d1>9) d1 = 0;

  if (rcpf2.charAt(0) != d1){
    alert(msg)
    obj.focus()
    return false
  }
  d1 *= 2;
  for (i=0;i<9;i++) 
    d1 += rcpf1.charAt(i)*(11-i);
  d1 = 11 - (d1 % 11);
  if (d1>9) d1 = 0;
  
  if (rcpf2.charAt(1) != d1) {
    alert(msg)
    obj.focus()
    return false
  }

  document.form1.enviar.disabled = true;

  return true;
}

// --------------------------------------------
//                  trim
// Trim leading/trailing whitespace off string
// --------------------------------------------
function trim(str)
{
  return str.replace(/^\s+|\s+$/g, '');
}

// --------------------------------------------
//               validateEmail
// Validate if e-mail address
// Returns true if so (and also if could not be executed because of old browser)
// --------------------------------------------
function validateEmail(valfield)
{
  var tfld = trim(valfield.value);  // value of field with whitespace trimmed off
  var email = /^[^@]+@[^@.]+\.[^@]*\w\w$/;
  var email2 = /^[A-Za-z][\w.-]+@\w[\w.-]+\.[\w.-]*[A-Za-z][A-Za-z]$/;
  if ((!email.test(tfld)) || (!email2.test(tfld))) {
    return false;
  }
  else return true;
}

function valida(){
	//Se o campo "nome_sacerdotal" estiver preenchido, todos os campos posteriores tb devem estar
	if (trim(document.form1.nome_sacerdotal.value) != ""){
		document.form1.nome_templo_ordenado.title="Obrigatório";
		document.form1.data_ordenado.title="Obrigatório";
		document.form1.nome_mae_espiritual_ordenou.title="Obrigatório";
		document.form1.nome_templo_dirigido.title="Obrigatório";
		document.form1.tempo_templo_dirigido.title="Obrigatório";
		document.form1.end_templo_dirigido.title="Obrigatório";
		document.form1.tempo_fundacao_templo_dirigido.title="Obrigatório";
		document.form1.nome_federacao.title="Obrigatório";
		document.form1.contribuicao_mensal.title="Obrigatório";
	}

	// Verificando se todos os campos obrigatórios estão preenchidos.
	for (i=0;i<document.form1.elements.length;i++){
		if ( (document.form1.elements[i].title == "Obrigatório") && (trim(document.form1.elements[i].value) == "")){
			alert("Favor preencher todos os campos obrigatórios.");
			document.form1.elements[i].focus();
			return false;
		}
	}
	
	// Verificando se o campo e-mail está preenchido corretamente
	if (!validateEmail(document.form1.email)){
	  	alert("Favor preencher o campo e-mail corretamente.");
		document.form1.email.focus();
		return false;
	}
	
	// Verificando se ao menus um campo de telefone está preenchido.
	if ( (trim(document.form1.tel_residencial.value) == "") && (trim(document.form1.tel_comercial.value) == "") && (trim(document.form1.tel_celular.value) == "")){
	  	alert("Favor preencher ao menos um telefone.");
		document.form1.tel_residencial.focus();
		return false;
	}
	
	// Verificando se o campo "Grau de Escolaridade" está preenchido.
	marcado = 0;
	for (n=0; n<document.form1.escolaridade.length; n++) {
		if (document.form1.escolaridade[n].checked) {
			marcado++;
		}
	}
	if (marcado == 0){
	  	alert("Favor preencher todos os campos obrigatórios.");
		document.form1.escolaridade[0].focus();
		return false;
	}

	// Verificando se o CPF está no formato correto
	return checkCPF(document.form1.cpf,"Favor inserir um CPF válido.");
}

