//==========================================================================================
//Valida os campos do formulário para PLANO INDIVIDUAL
//==========================================================================================

// *********************** FUNCÕES DE VALIDAÇÃO DO FORM *********************** 

// Alteração de Mensagem para o canal corretor.
var MsgCorretor = "Entre em contato com o Canal de Relacionamento – Corretores : 0800 72 77 108 ou através do e-mail : corretores@brasilprev.com.br."

function validaTXT(sProduto, sSegmento) 
{
	var sCanal = document.Simulador.txtCanal.value	
	
	if (document.Simulador.txtNome_Proponente.value == "")
	{
		alert ("Nome do proponente em branco. Favor preencher.");
		document.Simulador.txtNome_Proponente.focus();
		return 0;
	}
	else
	{
	  	// nome nao pode ter numerico ou caracteres especiais
		// verifica se somente existe o primeiro nome
		nome = document.Simulador.txtNome_Proponente.value;
		if (nome.indexOf(" ") == -1)
		{
			alert("O nome completo do proponente deve ser informado.");
			document.Simulador.txtNome_Proponente.focus();
			return 0;
		}

		// verifica se não são caracteres repetidos
		nome = document.Simulador.txtNome_Proponente.value;
		tamanhoPrimeiroNome = nome.indexOf(" ");
		var char;
		var i;
		var count = 1;
	
		for ( i = 1; i < tamanhoPrimeiroNome; i++) 
		{
			if (nome.substring(0, 1) == nome.substring(i, i + 1) ) 
			{	count++;	}
		}
		if (count == tamanhoPrimeiroNome) 
		{
			alert("O nome do proponente possui muitos caracteres repetidos.");
			document.Simulador.txtNome_Proponente.focus();
			return 0;
		}

		// verifica se são caracteres especiais
		nome = document.Simulador.txtNome_Proponente.value;
		qtde = 0;
		if (nome.indexOf("@") > 0) { qtde += 1 }
		if (nome.indexOf("#") > 0) { qtde += 1 }
		if (nome.indexOf("$") > 0) { qtde += 1 }
		if (nome.indexOf("%") > 0) { qtde += 1 }
		if (nome.indexOf("&") > 0) { qtde += 1 }
		if (nome.indexOf("*") > 0) { qtde += 1 }
		if (qtde > 0) 
		{
			alert("O nome do proponente não pode conter caracteres especiais.");
			document.Simulador.txtNome_Proponente.focus();
			return 0;
		}
		
		nome = document.Simulador.txtNome_Proponente.value; 
		qtde = 0;
		if (nome.indexOf("1") > 0) { qtde += 1 }
		if (nome.indexOf("2") > 0) { qtde += 1 }
		if (nome.indexOf("3") > 0) { qtde += 1 }
		if (nome.indexOf("4") > 0) { qtde += 1 }
		if (nome.indexOf("5") > 0) { qtde += 1 }
		if (nome.indexOf("6") > 0) { qtde += 1 }
		if (nome.indexOf("7") > 0) { qtde += 1 }
		if (nome.indexOf("8") > 0) { qtde += 1 }
		if (nome.indexOf("9") > 0) { qtde += 1 }
		if (nome.indexOf("0") > 0) { qtde += 1 }
		if (qtde > 0) 
		{
			alert("O nome do proponente não pode conter números.");
			document.Simulador.txtNome_Proponente.focus();
			return 0;
		}
	}

	if (document.Simulador.cboSexo.value == "")
	{
		alert ("Sexo do proponente em branco. Favor preencher.");
		document.Simulador.cboSexo.focus();
		return 0;
	}

	if (document.Simulador.cboIdade_Saida.value == "")
	{
		alert ("Idade para início de recebimento da renda mensal vitalícia do proponente em branco. Favor preencher.");
		document.Simulador.cboIdade_Saida.focus();
		return 0;
	}


	if (document.Simulador.cboPeriodicidade.value == "")
	{
		alert ("Periodicidade em branco. Favor preencher.");
		document.Simulador.cboPeriodicidade.focus();
			return 0;
	}


	if (document.Simulador.cboIdade_Saida.value != "")
	{
		if (sSegmento != "Exclusivo")
		{
			//alert('VAREJO');
			// VAREJO
			if ((document.Simulador.cboIdade_Saida.value < fLimitesIdades(21)) || (document.Simulador.cboIdade_Saida.value > fLimitesIdades(22))) 
			{
				alert ("A idade para início de recebimento de sua renda mensal vitalícia deve ser entre " + fLimitesIdades(21) + " e " + fLimitesIdades(22) + " anos.");
				document.Simulador.cboIdade_Saida.focus();
				return 0;
			}
		}
		
		if (sSegmento == "Exclusivo")
		{
			//alert('EXCLUSIVO');
			// EXCLUSIVO
			if ((document.Simulador.cboIdade_Saida.value < fLimitesIdades(23)) || (document.Simulador.cboIdade_Saida.value > fLimitesIdades(24))) 
			{
				alert ("A idade para início de recebimento de sua renda mensal vitalícia deve ser entre " + fLimitesIdades(23) + " e " + fLimitesIdades(24) + " anos.");
				document.Simulador.cboIdade_Saida.focus();
				return 0;
			}
		}
	}

 	return 1;
}


function validaValorAporte(sProduto, sSegmento, sPeriodicidade)
{
	var sCanal = document.Simulador.txtCanal.value	
	
	if (sCanal == "BNB" || sCanal == "BANIF") {
	   sCanal = "COR"   
	}
		
	if (parseInt(document.Simulador.txtValor_Desejado.value.replace(/\./g,'')) == 0)
	{
		alert ("O preenchimento do campo 'Valor do aporte periódico' é obrigatório.");
		document.Simulador.txtValor_Desejado.focus();
		return 0;
	}

	if (document.Simulador.txtValor_Desejado.value != "")
	{
		if (isNaN(parseInt(document.Simulador.txtValor_Desejado.value.replace(/\./g,''))))
		{
			alert ("Verifique o valor indicado para Aporte Mensal. Deve ser um número.");
			document.Simulador.txtValor_Desejado.focus();
			return 0;
		}

		if (!fValidaValores(document.Simulador.txtValor_Desejado.value.replace(/\./g,''),"Valor de aporte periódico",1))
		{						
			document.Simulador.txtValor_Desejado.focus();
			return 0;
		}

		var valorPeriodic = document.Simulador.txtValor_Desejado.value.replace(/\./g,'');
		valorPeriodic = valorPeriodic.replace(",", ".");


		if (sPeriodicidade != 0)
		{
			valorPeriodic = (valorPeriodic / sPeriodicidade)

			if (parseFloat(valorPeriodic) < fLimites(14,sProduto, sSegmento)) 
			{	
				alert ("O valor mínimo para aporte periódico é de R$ "+ (fLimites(14,sProduto, sSegmento) * sPeriodicidade) +",00 neste plano.");
				document.Simulador.txtValor_Desejado.focus();
				return 0;
			}
		}
		else // periodicidade unica
		{
			if (parseFloat(valorPeriodic) < fLimites(2,sProduto, sSegmento)) 
			{	
				alert ("O valor mínimo contribuição única é de R$ "+ fLimites(2,sProduto, sSegmento) +",00 neste plano.");
				document.Simulador.txtValor_Desejado.focus();
				return 0;
			}
		}


		if (sPeriodicidade != 0)
		{	
			valorPeriodic = (valorPeriodic / sPeriodicidade)
			if (parseFloat(valorPeriodic) > fLimites(19,sProduto, sSegmento)) 
			{

				if (sCanal == "COR")
				{
					//alert ("MsgCorretor" + " IND-01");
					alert ("O valor máximo para aporte periódico é de R$ "+ (fLimites(19,sProduto, sSegmento)*sPeriodicidade) +",00. " + MsgCorretor); //+ " para adquirir um plano com aporte periódico acima de R$ "+ (fLimites(19,sProduto, sSegmento)*sPeriodicidade)+",00.");
				}
				else
				{					
					alert ("O valor máximo para aporte periódico é de R$ "+ (fLimites(19,sProduto, sSegmento)*sPeriodicidade) +",00. Procure uma agência do Banco do Brasil mais próxima de você ou entre em contato com a Central de Atendimento Brasilprev para adquirir um plano com aporte periódico acima de R$ "+ (fLimites(19,sProduto, sSegmento)*sPeriodicidade)+",00.");
				}
				document.Simulador.txtValor_Desejado.focus();
				return 0;	
			}
		}
		else
		{	
			if (parseFloat(valorPeriodic) > fLimites(19,sProduto, sSegmento)) 
			{
				if (sCanal == "COR")
				{
					//alert ("MsgCorretor" + " IND-02");
					alert ("O valor máximo para aporte periódico é de R$ "+ fLimites(19,sProduto, sSegmento) +",00. " + MsgCorretor); //+ " para adquirir um plano com aporte periódico acima de R$ "+ fLimites(19,sProduto, sSegmento)+",00.");
				}
				else
				{
					alert ("O valor máximo para aporte periódico é de R$ "+ fLimites(19,sProduto, sSegmento) +",00. Procure uma agência do Banco do Brasil mais próxima de você ou entre em contato com a Central de Atendimento Brasilprev para adquirir um plano com aporte periódico acima de R$ "+ fLimites(19,sProduto, sSegmento)+",00.");
				}
				document.Simulador.txtValor_Desejado.focus();
				return 0;	
			}
		}


	}

	if (document.Simulador.txtValor_AporteInicial.value != "")
	{
		if (isNaN(parseInt(document.Simulador.txtValor_AporteInicial.value.replace(/\./g,''))))
		{
			alert ("Verifique o valor indicado para aporte extra inicial. Deve ser um número.");
			document.Simulador.txtValor_AporteInicial.focus();
			return 0;
		}

		if (!fValidaValores(document.Simulador.txtValor_AporteInicial.value.replace(/\./g,''),"Valor de aporte inicial",1))
		{						
			document.Simulador.txtValor_AporteInicial.focus();
			return 0;
		}

		var valorExtra = document.Simulador.txtValor_AporteInicial.value.replace(/\./g,'');
		valorExtra = valorExtra.replace(",", ".");
		
		if ( parseFloat(valorExtra) != 0 && (parseFloat(valorExtra) < fLimites(16,sProduto, sSegmento) ) ) 
		{	
			alert ("O valor mínimo para o aporte extra inicial é de R$ "+fLimites(16,sProduto, sSegmento)+",00 neste plano.");
			document.Simulador.txtValor_AporteInicial.focus();
			return 0;
		}

		if (parseInt(valorExtra) > fLimites(22,sProduto, sSegmento)) 
		{
			if (sCanal == "COR")
				{
					//alert ("MsgCorretor" + " IND-03");
					alert ("O valor máximo para aporte extra inicial é de R$ "+ fLimites(22,sProduto, sSegmento)+",00. " + MsgCorretor);
				}
				else
				{
					alert ("O valor máximo para aporte extra inicial é de R$ "+ fLimites(22,sProduto, sSegmento)+",00. Procure uma agência Banco do Brasil mais próxima ou entre em contato com a Central de Atendimento Brasilprev para adquirir lá o seu plano.");
				}
			document.Simulador.txtValor_AporteInicial.focus();
			return 0;
		}
	}
	return 1;	
}

function validaDiaNasc()
 {
	if (isNaN(parseInt(document.Simulador.DT_NASCdd.value)))
	{
		   alert ("Dia do nascimento incorreto!");
		   document.Simulador.DT_NASCdd.focus();
		   return 0;
	}	

	dia = new String(document.Simulador.DT_NASCdd.value);
	if (dia.length != 2) 
	{
		   alert ("O dia do nascimento deve conter 2 dígitos. Por favor digite novamente.");
		   document.Simulador.DT_NASCdd.focus();
		   return 0;
	}

	if ((document.Simulador.DT_NASCdd.value < 1) || (document.Simulador.DT_NASCdd.value > 31)) 
	{
		alert ("Dia do nascimento inválido!");
		document.Simulador.DT_NASCdd.focus();
		return 0;
	}

	return 1;
};

function validaMesNasc() 
{
	if (isNaN(parseInt(document.Simulador.DT_NASCmm.value)))
	{
		   alert ("Mês do nascimento incorreto!");
		   document.Simulador.DT_NASCmm.focus();
		   return 0;
	}

	mes = new String(document.Simulador.DT_NASCmm.value);
	if (mes.length != 2) 
	{
		   alert ("O mês do nascimento deve conter 2 dígitos. Por favor digite novamente.");
		   document.Simulador.DT_NASCmm.focus();
		   return 0;
	}

	if ((document.Simulador.DT_NASCmm.value < 1) || (document.Simulador.DT_NASCmm.value > 12)) 
	{
		alert ("Mês do nascimento inválido.");
		document.Simulador.DT_NASCmm.focus();
		return 0;
	}

	return 1;
};

function validaAnoNasc() 
{
	if (isNaN(parseInt(document.Simulador.DT_NASCaa.value)))
	{
		   alert ("Ano do nascimento incorreto!");
		   return 0;
	}

	ano = new String(document.Simulador.DT_NASCaa.value);
	if (ano.length != 4) 
	{
		   alert ("O Ano do nascimento deve conter 4 dígitos. Por favor digite novamente.");
		   return 0;
	}

	d = new Date();    //today's date
	ano = d.getFullYear();
	//alert(ano);
	if ((document.Simulador.DT_NASCaa.value < 1900) || (document.Simulador.DT_NASCaa.value > ano))
	{
		alert ("Ano do nascimento inválido.");
		document.Simulador.DT_NASCaa.focus();
		return 0;
	}

	return 1;
};

function validaNasc(sProduto, sSegmento) 
{
	if ((document.Simulador.DT_NASCdd.value == "") &&
		(document.Simulador.DT_NASCmm.value == "") &&
		(document.Simulador.DT_NASCaa.value == ""))
	{
		alert( "O preenchimento da data de nascimento do proponente é obrigatório.");
		document.Simulador.DT_NASCdd.focus();			
		return 0;
	}			

	if ((validaDiaNasc() == 0 ) || (validaMesNasc() == 0 ) || (validaAnoNasc() == 0 ))
	{ return 0; }
		
	dia = document.Simulador.DT_NASCdd.value;
	mes = document.Simulador.DT_NASCmm.value;
	ano = document.Simulador.DT_NASCaa.value;
  
	dNasc = new Date(ano, mes - 1, dia);
  
	if (!ValidaDataCompleta(dia + "/" + mes + "/" + ano))
	{
		alert ("Data de nascimento inválida");
		document.Simulador.DT_NASCdd.focus();
		return 0;
	}

	hoje = document.Simulador.DataSistema.value;
	hoje = new Date();

	idademilisegundos = hoje - dNasc;
        var idade;
	idade = idademilisegundos/(1000.0*60.0*60.0*24.0*365.25)

	// nao pode considerar as casas decimais na verificacao da idade
	//alert(idade);
	var qtde_idade = new String(idade);
	var splitIdade = qtde_idade.split(".");

	if (sSegmento != "Exclusivo")
	{
		//alert('VAREJO');
		// VAREJO
		if ((splitIdade[0] < fLimitesIdades(1)) || (splitIdade[0] > fLimitesIdades(2))) 
		{
			alert ("Para contratação do Brasilprev o proponente deve ter entre " + fLimitesIdades(1) + " e " + fLimitesIdades(2) + " anos.");
			document.Simulador.DT_NASCaa.focus();
			return 0;
		}
	}
		
	if (sSegmento == "Exclusivo")
	{
		//alert('EXCLUSIVO');
		// EXCLUSIVO
		if ((parseInt(splitIdade[0]) < fLimitesIdades(1)) || (parseInt(splitIdade[0]) > fLimitesIdades(20))) 
		{
			alert ("Para contratação do Brasilprev o proponente deve ter entre " + fLimitesIdades(1) + " e " + fLimitesIdades(20) + " anos.");
			document.Simulador.DT_NASCaa.focus();
			return 0;
		}
	}

        var calcIdade = parseInt(document.Simulador.cboIdade_Saida.value) - parseInt(splitIdade[0]);
	//alert(calcIdade);

	if (calcIdade <= 0) 
        {
		//alert(splitIdade[0]);
		//alert(document.Simulador.cboIdade_Saida.value);
		alert ("Idade de saída inválida por ser menor ou igual à idade atual.");
		document.Simulador.cboIdade_Saida.focus();
		return 0;
	}

	return 1;
}

function verificaData(comp, tam, prox)
{
	verificaTam(comp,tam,prox);
	calculaIdadeRe(document.Simulador.DT_NASCdd.value, document.Simulador.DT_NASCmm.value, 
			document.Simulador.DT_NASCaa.value, "txtIdadeAtual");
	return 1;
}


function atualiza() 
{
   parent.menu.menu1.style.visibility = "hidden";
   parent.menu.menu2.style.visibility = "hidden";
   parent.menu.menu3.style.visibility = "hidden";
   parent.menu.menu4.style.visibility = "visible";
   parent.menu.menu5.style.visibility = "hidden";
   parent.menu.menu6.style.visibility = "hidden";
   parent.menu.menu7.style.visibility = "hidden";
}

//==========================================================================================
