function chamaValidaCompCPF()
{
	cpf = document.form_comp.c_cpf.value;
	ing = document.form_comp.c_coding.value;
	if(checkCPF(cpf,"form_comp","c_cpf")){
		if(ing.length > 0){
			end = "ca_reimpressao_comprovante.php?tela_comp=1&valcpf=" + cpf + "&valing=" + ing;
			document.location = end;
		}else{
			alert("Você deve informar o código de ingresso do aluno.");
			document.form_comp.c_coding.focus();
		}
	}	
}


function chamaTelaComp(end,lag,alt,nome,op)
{
	if(op == 1){
		if(confirm("Para reimprimir os comprovantes o aluno já deve ter realizado o processo de matrícula "))
			abre_varios_popup(end,lag,alt,nome);
	}else
		abre_varios_popup(end,lag,alt,nome);
}


function chamaValidaCPF()
{
	cpf = document.form_resp.c_cpf.value;
	if(checkCPF(cpf,"form_resp","c_cpf")){
		end = "ca_verresp.php?guarda=1&valcpf=" + cpf;
		document.location = end;
	}
}


function verifica_prox_tela01()
{
	var valCurso = document.form_tela1.cb_cursos.value;
	if(valCurso != "#"){
		var valDados = document.form_tela1.dados;
		escolha=0;
		if (valDados.checked==true)
		{
			escolha=1;
		}else
		{
			for(i=0; i < valDados.length; i++)
			{
				if(valDados[i].checked)
					escolha=1;
			}
		}
	}
	if(valCurso == "#"){
		alert("Para continuar o processo você deve informar um curso");
		return false;
	}else if(escolha==0){
		alert("Para continuar o processo você deve selecionar uma turma");
		return false;
	}else
		document.form_tela1.submit();	
}


function mudou_tipo_resp()
{
	var i; var nome = ""; var tipo;
	
	for (i=0; i < document.frm_framedadcad.tipo_resp.length; i++){
		if (document.frm_framedadcad.tipo_resp[i].checked)
			break;
	}
	tipo = document.frm_framedadcad.tipo_resp[i].value;
	
	if(tipo == 1){
		for(var a = 0; a < CamposListados.length; a++){
			nome = CamposListados[a];
			if(nome != "RF_NROCPF")
				document.frm_framedadcad[nome].disabled = true;
		}	
	}else{
		for(var a = 0; a < CamposListados.length; a++){
			nome = CamposListados[a];
			document.frm_framedadcad[nome].disabled = false;
			document.frm_framedadcad[nome].value = "";
		}	
	}
}

function ver_campos_resp()
{
	for(var a = 0; a < CamposListados.length; a++){
		nome = CamposListados[a];
		document.frm_framedadcad[nome].disabled = false;
	}
}


function mudou_curso()
{
	var val_curso = document.form_tela1.cb_cursos.value;
	if(val_curso != "#"){
		var partes = val_curso.split(";");
		end = "CA_tela01.php?pg_codcur=" + partes[0];
		document.location = end;
	}
}


function prox_pag(end)
{
	document.location = end;
}


function voltar_pag(end)
{
	document.location = end;
}


function desabilita_botao(formulario,botao){
	document[formulario][botao].disabled = true;
}


function Load()
{
	window.resizeTo(985,600);
}


function DateValid(AData)
{
	var temp = AData.split("/");
	    
	if (temp.length < 3)
	   return false;
	
	 if ((temp[0].length < 2) || (temp[1].length < 2) || (temp[2].length < 4))
	    return false;
	    
	 var iday =  temp[0];
	 var imonth = temp[1];
	 var iyear = temp[2];
	
	 if((imonth <1)||(imonth > 12))
	    return false;
	 
	 if(iday < 1)
	    return false;
	 
	 if((imonth == 4)||(imonth == 6)||(imonth == 9)||(imonth == 11))
	 { 
	   if(iday > 30)
	     return false;
	 } 
	 
	 if(imonth == 2)
	 {
	  if((iyear % 4) == 0)
	  {
	  if(iday > 29)
	     return false;
	  }
	  else
	  { 
	    if(iday > 28) 
	      return false;
	  }
	 }
	 
	 if(iday > 31)
	   return false;
	 
	 return true;
}


function valida_responsavel(formulario)
{
	// Utilizado para não validar caso o resp seja o proprio aluno 
	for(i=0; i < document.frm_framedadcad.tipo_resp.length; i++){
		if(document.frm_framedadcad.tipo_resp[i].checked)
			break;
	}
	var tipRespSel = document.frm_framedadcad.tipo_resp[i].value;
	if(tipRespSel == 1){
		for (var i = 0; i < CamposCpfResp.length; i++){
			var indice = CamposCpfResp[i][1];
			var nroCpf = document[formulario][indice].value;
			if(nroCpf.length > 0){
				var cpfValido = checkCPF(nroCpf,formulario,[CamposCpfResp[i][1]]);
				if(!cpfValido){
					document[formulario][CamposCpfResp[i][1]].focus();
					return false;
				}
			}else{
				alert("O campo CPF é obrigatório");
				return false;
			}
		}
		return true;	
		
	}else{
		
		// valida campos CPF	
		for (var i = 0; i < CamposCpfResp.length; i++){
			var indice = CamposCpfResp[i][1];
			var nroCpf = document[formulario][indice].value;
			var cpfValido = checkCPF(nroCpf,formulario,[CamposCpfResp[i][1]]);
			if(!cpfValido){
				document[formulario][CamposCpfResp[i][1]].focus();
				return false;
			}
		}
			
		// verifica campos obrigatorios
		for(var i = 0; i < CamposObrigResp.length; i++){
			if  (document[formulario][CamposObrigResp[i][1]].value.length == 0){
			    alert("Obrigatório o preenchimento do campo " +"<"+CamposObrigResp[i][0]+">");
				document[formulario][CamposObrigResp[i][1]].focus();
				return false;
			}	
		}	
		
		
		// verifica campos somente números
		var ER_sonumeros = /^[0-9]+$/;
		for(var i = 0; i < CamposSoNumerosResp.length; i++){
			var campo_atual = document[formulario][CamposSoNumerosResp[i][1]].value;
			
			if(document[formulario][CamposSoNumerosResp[i][1]].value.length > 0){
				if(!(ER_sonumeros.test(campo_atual))){
					alert("O campo " +"<"+CamposSoNumerosResp[i][0]+">"+ " deve conter somente números");
					document[formulario][CamposSoNumerosResp[i][1]].focus();
					return false;
				}	
			}
		}	
		
		
		// verifica campos de data
		for (var i = 0; i < CamposDataResp.length; i++){
			var indice = CamposDataResp[i][1];
			var data = document[formulario][indice].value;
			if(data.length > 0 ){
				var valido = DateValid(data);
				if(!valido){
					alert("O campo " +"<"+CamposDataResp[i][0]+">"+ " não possui uma data válida");
					document[formulario][CamposDataResp[i][1]].focus();
					return false;
				}
				/*
					//Utilizado para trocar a posicao dos numeros na hora de gravar
					else{
						var data = document[formulario][CamposDataResp[i][1]].value;
						var temp = data.split("/");
							document[formulario][CamposDataResp[i][1]].value=temp[1]+ '/' + temp[0] + '/' + temp[2];
				} */
			}
		}
	}//fim tipRespSel
	return true;	
}


function valida_aluno(formulario,temResp)
{
	if(confirm("Confirma gravação dos dados cadastrais?")){
		// verifica campos obrigatorios
		for(var i = 0; i < CamposObrig.length; i++){
			if  (document[formulario][CamposObrig[i][1]].value.length == 0){
			    alert("Obrigatório o preenchimento do campo " +"<"+CamposObrig[i][0]+">");
				document[formulario][CamposObrig[i][1]].focus();
				return false;
			}	
		}	
		
		// verifica campos somente números
		var ER_sonumeros = /^[0-9]+$/;
		for(var i = 0; i < CamposSoNumeros.length; i++){
			var campo_atual = document[formulario][CamposSoNumeros[i][1]].value;
			
			if(document[formulario][CamposSoNumeros[i][1]].value.length > 0){
				if(!(ER_sonumeros.test(campo_atual))){
					alert("O campo " +"<"+CamposSoNumeros[i][0]+">"+ " deve conter somente números");
					document[formulario][CamposSoNumeros[i][1]].focus();
					return false;
				}	
			}
		}	
		
		// valida campos CPF	
		for (var i = 0; i < CamposCpf.length; i++){
			var indice = CamposCpf[i][1];
			var nroCpf = document[formulario][indice].value;
			if(nroCpf.length > 0 ){
				var cpfValido = checkCPF(nroCpf,formulario,[CamposCpf[i][1]]);
				if(!cpfValido){
					document[formulario][CamposCpf[i][1]].focus();
					return false;
				}
			}
		}	
		
		
		// verifica campos de data
		for (var i = 0; i < CamposData.length; i++){
			var indice = CamposData[i][1];
			var data = document[formulario][indice].value;
			if(data.length > 0 ){
				var valido = DateValid(data);
				if(!valido){
					alert("O campo " +"<"+CamposData[i][0]+">"+ " não possui uma data válida");
					document[formulario][CamposData[i][1]].focus();
					return false;
				}
			}
		}	
		
		if(temResp == "S"){
			var resultado = valida_responsavel(formulario);
			if(resultado)
				document[formulario].submit();
			else
				return false;
		}else
			document[formulario].submit();
	}//fim da confirmacao
}


/*************** Processo de validacao do CPF do aluno que já possui o responsavel **********************/
function checkCPF(cpf,formulario,campo)
{
	var strNumber = cpf; 
	var digit; 
	var calc; 
	var ER_sonumeros = /^[0-9]+$/;
	
	if(!(ER_sonumeros.test(strNumber))){
		alert("Você deve informar somente valores numéricos para o CPF");
		document[formulario][campo].focus();
		return false;
	}
	
	strNumber = getNumber(strNumber);
	if(strNumber.length < 4){
		alert("CPF inválido");
		document[formulario][campo].focus();
		return false;
	}
	
	//   digit = parseInt(strNumber.substring(strNumber.length-2, strNumber.length));
	digit = strNumber.substring(strNumber.length-2, strNumber.length);
	number = strNumber.substring(0 , strNumber.length - 2);
	calc = parseInt(getCPFDigit(number));
	
	if(digit != calc){
		alert("CPF inválido");
		document[formulario][campo].focus();
		return false;
	}
	
	return true;
}


function getNumber(strNumber)
{
   var number;
   var strRetNumber="";
 
   for (var i=0 ; i < strNumber.length ; i++)
   {
      number = parseInt(strNumber.charAt(i));
      if ( number )
      {
         strRetNumber += strNumber.charAt(i)
      }
      else
      {
         if ( number == 0 )
         {
            strRetNumber += strNumber.charAt(i)
         }
      }
   }
   return strRetNumber;
}
 
function getCPFDigit(strNumber)
{
   var i;
   var digit1;
   var digit2;
   var total;
   var result;
   
   strNumber = '000000000' + getNumber(strNumber)
   strNumber = strNumber.substring(strNumber.length - 9, strNumber.length)
 
   total=0
   for (i = 1 ; i < 10; i++) 
      total = total + strNumber.substring(i - 1 , i) * (11 - i);
 
   digit1 = total * 10 % 11;
   if (digit1 == 10)
   {
      digit1 = 0;
   }
 
   aux = digit1.toString(10);
   strNumber = strNumber + aux.substring(aux.length - 1 , aux.length);
 
   total=0;
 
   for (i = 1 ; i < 11 ; i++) 
      total = total + strNumber.substring(i - 1 , i) * (12 - i);
 
   digit2 = total * 10 % 11;
   if (digit2 == 10)
   {
      digit2 = 0;
   }
 
   aux = digit1 * 10 + digit2;
   caux = aux.toString(10);
   result = caux.substring(caux.length - 2 , caux.length);
   return result;
}



