<!--
// @VERSAO 1.0 2009-03-18
// @AUTOR  DAC 
// @DESC   Mapeamento e cálculo de pensões 1º regime

//=======================================

function disableRmouse()
//---------------------------------------
//---
{
  document.onmousedown = rightMouseClick;
  if (document.layers) window.captureEvents(Event.MOUSEDOWN);
  window.onmousedown = rightMouseClick;
  window.onBlur = self.focus();
}

function rightMouseClick(e)
//---------------------------------------
// Mostra janela com informação sobre o progama
{
  if (isNS && (e.which == 3 || e.which == 2)) 
    return false;
  else if (isIE && (event.button == 2 || event.button == 3)) 
  {
    alert(sAssinatura);
    return false;
  }
  return true;
}

function getIEver()
//---------------------------------------
// Obtem versão do browser IE 
{
  var ua = window.navigator.userAgent;
  var msie = ua.indexOf ("MSIE ");
	
  if (msie <= 0) 
    return (-1);
  else
    return (parseInt( ua.substring(msie+5, ua.indexOf(".", msie) ) ) );
}

function chamaIE4()
//---------------------------------------
// Alerta de browser IE inferior a 4.0
{
  alert ("Versão do Internet Explorer inferior a 4.0!");
}

function chamaNetscape()
//---------------------------------------
// Mensagem para browser Netscape 
{
  alert ("Simulador não disponível para Netscape");
}


function formatNum(str, decimais) 
//---------------------------------------
// decimais - 0 .. 10
{

  var auxStr;
  var dotPos;
  var decStr;
  var newStr;

  if ((decimais < 0) || (decimais > 10)) decimais = 0;

  if (str == "") str = 0;
  str = ("" + str);
  auxStr = unformatNum(str);
	
  dotPos = auxStr.indexOf(".")
  decStr = "";
	
  if (dotPos >= 0) {		
    if (auxStr!="0") {
      auxStr = "" + Math.round(parseFloat(auxStr) * (Math.pow(10, decimais))) / (Math.pow(10, decimais)) ;
    }
    dotPos = auxStr.indexOf(".");
  }
	
  if (dotPos > 0) {		
    if (dotPos<(auxStr.length-1)) {
      decStr = auxStr.substr(dotPos+1,3);
    }
    auxStr = reverseStr(auxStr.substr(0, dotPos));
  } else {
    auxStr = reverseStr(auxStr);
  }
	
  newStr = '';
  for (var i=0; i<auxStr.length; i++) {
    if (i>0 && (i%3)==0) {
      newStr += ' ';
    }
    newStr += auxStr.charAt(i);
  }
  newStr = reverseStr(newStr)
	
  decStr += "00";
  decStr = decStr.substr(0, decimais);

  newStr += "," + decStr;

  return newStr;

}

function reverseStr(str) 
{
  if (!str) return str; // nothing to do
  var rstr = '';
  for (var i=str.length-1; i>=0; i--) rstr += str.charAt(i);
  return rstr;
}

function unformatNum(str) 
{
  if (!str) return str; // nothing to do
  str = ("" + str);
  var nstr = '';
  var code;
  var hasDot=false;
	
  for (var i=0; i<str.length; i++) {	
    code=str.charCodeAt(i);

    if (code>=48 && code<=57) {
      nstr += str.charAt(i);
    } else {
      if ((code==44 || code==46) && !hasDot) {
	// transforma virgula em ponto
	nstr += '.';
	hasDot=true;
      } else {
        if (code==45 && i==0) {
          // minus sign
	  nstr += str.charAt(i);
        }
      }
    }
  }
  return nstr;
}



function ValidaMeses(anos, meses)
//---------------------------------------
// Acrescenta 1 ano por cada multiplo de 12 meses
// Meses fica entre 0 e 11
{
  if (anos.value == "" || anos.value == null) anos.value = 0;
  if (meses.value == "" || meses.value == null) meses.value = 0;
  if (meses.value >= 12)
  {
    anos.value = eval(anos.value) + parseInt(eval(meses.value) / 12);
    meses.value = meses.value % 12;
  }
}

function reducao(idade, tempoServico)
//---------------------------------------
{
  var anosAnt = 60 - idade;
  var anosRedu = 0;
  var dr = 0; 
  var cr = 0;

  if (tempoServico > 36)
    dr = Math.floor((tempoServico - 36) / 3);

  if (dr < 1)
    dr = 0;

  anosRedu = anosAnt - dr;

  if (anosAnt > 0)
    cr = anosRedu * 0.045;

  return cr;
}



function calcula()
//---------------------------------------
// efectua os calculos
{
  var ai = 33; //document.f1.cga_dataNasc.value; //data nascimento
  var as = document.f1.cga_anos.value;  //anos serviço
  var ms = document.f1.cga_meses.value; //meses serviço

  if (ai == "") ai = 0;
  if (as == "") as = 0;
  if (ms == "") ms = 0;


  var ts="", pen="", ntd="", msg="";

  anNR = 2015;
  idNR = 56;
  tsNR = 34;

  msg = "Aposentação, com pensão completa, em " + "<B class=azul>" + anNR + "</B>" 
  msg = msg + ", aos " + idNR + " anos de idade e " + tsNR + " anos de tempo de serviço.";

}

function checkNum(e)
//---------------------------------------
// Só aceita teclas 0-9 e BackSpace
{
	var codTecla	= [e.which || e.keyCode]
	//alert("codTecla "+codTecla)
	if (codTecla == 8) {return true;}//BS
	if (codTecla == 9) {return true;}//TAB
	if (codTecla == 46) {return true;}//DELETE
	// <> 0-9 	
	if (codTecla < 48 || codTecla > 57) {
		return false;
	}else{
		return true; // Mostra
	}
}




function checkNumDot(e, nInt, nDec)
//---------------------------------------
// Aceita teclas 0-9, BackSpace, virgula e ponto
{
	var codTecla	= [e.which || e.keyCode]
	var campo = e.target? e.target : e.srcElement;
  
	var my_name =campo.name	
	var posVirg;

  
	posVirg = campo.value.indexOf(",");
	if (posVirg < 0) 
		posVirg = campo.value.indexOf(".");
	posVirg += 1;
	
  if (codTecla == 8) {return true;}//BS
	if (codTecla == 9) {return true;}//TAB
	//if (codTecla == 46) {return true;}//DELETE
	if (codTecla == 44) {return true;}//virgula
	if (codTecla == 46) {//Ponto
		if (campo.value == ''){ 
			campo.value = '0,';
			return false; 
		}
		return (posVirg <= 0 && campo.value.length > 0);
	}
	// <> 0-9 	
	if (codTecla < 48 || codTecla > 57) {
		return false;
	}else{
		return true; // Mostra
	}
	
 


  if ((posVirg > 0) && ((campo.value.length-posVirg) == nDec)){
     if (document.getElementById("hele_select")!=null){
	var o_name = document.getElementById("hele_select").value;
	if (o_name == my_name){
		document.getElementById("hele_select").value="";
		return true;
	}else{
		return false;
     	}
     }
  }

  if (posVirg == 0 && (campo.value.length) == nInt){
     if (document.getElementById("hele_select")!=null){
	var o_name = document.getElementById("hele_select").value;
	if (o_name == my_name){
		document.getElementById("hele_select").value="";
		return true;
	}else{
		return false;
	}
     }
  }

  return true;
}


function chkEleSelect(ed){
	o_name=ed.name
	if (document.getElementById("hele_select")!=null){
		document.getElementById("hele_select").value=o_name
	}
	
}

function validaNumDot(obj)
//---------------------------------------
// Troca virgula por ponto
{
  return obj.value = obj.value.replace(/,/g,".");
}


function reducaoIdade(idadeTab, tempoServicoTab, idadeSub, tempoServicoSub, refReducao)
//---------------------------------------
{
  var anosDifer = idadeTab - idadeSub;
  var tempoServicoDif = tempoServicoSub - tempoServicoTab
  
  var anosPenal = 0;
  var anosReduc = 0; 
  var txPenalz  = 0;
  var txPenalz0	= 0;
 
  if (tempoServicoSub > tempoServicoTab){
	anosReduc = Math.floor(tempoServicoDif / refReducao);
	if (refReducao == 1){
		anosReduc = anosReduc * 0.5;
		if (anosReduc < 0.5){ anosReduc = 0;}
	}else{
		if (anosReduc < 1){ anosReduc = 0;}
	}
  }

  if (anosDifer > 0){ 
	
	anosPenal = anosDifer - anosReduc
	anosPenal = Math.ceil(anosPenal)
	txPenalz = anosPenal * 0.045
  }else{
	anosDifer="NA";
  }	
 
txPenalz0 = txPenalz
if (txPenalz < 0){txPenalz0 = 0}

str_out = tempoServicoTab  
str_out+=";" + tempoServicoSub 
str_out+=";" + preparNumToCalc(formatNum(tempoServicoDif,2))
str_out+=";" + idadeTab
str_out+=";" + idadeSub
str_out+=";" + anosDifer
str_out+=";" + anosReduc 
str_out+=";" + anosPenal 
str_out+=";" + txPenalz
str_out+=";" + txPenalz0
return str_out;


}

//------ Novas funcões para novo sistema ("antigo")---------
//------ Variaveis globais "muito importante não mexer"---------
//var s_max_lines = 35;
var s_max_lines = 57;
//var s_max_lines = document.getElementById("hmax_rows").value
var s_ano1apos = 2006;

var s_ele_prefix="r";
var s_anosServApos2005="";
var s_idadeNoFim2005="";
var g_tmpTabela="";

var s_limiteIdade=70;
var s_tempoSerMin=5;
var s_idadeSubMin=14;

var acronimoCNP ="<acronym title='Centro Nacional de Pensões'>CNP</acronym>"
var acronimoEEE ="<acronym title='Espaço Económico Europeu'>EEE</acronym>+<acronym title='Suíça'>CH</acronym>"

function getAllTimes(){
	
	var s_dt_nasc=document.getElementById("cga_dataNasc").value
		
	var s_cga_anos = document.getElementById("cga_anos").value;
	var s_cga_meses = document.getElementById("cga_meses").value;
	var s_cga_anos_apos2005 = document.getElementById("cga_anos_apos2005").value;
	var s_cga_meses_apos2005 = document.getElementById("cga_meses_apos2005").value;
	
	s_cga_anos = parseInt(s_cga_anos);
	if (isNaN(s_cga_anos)){s_cga_anos = 0}

	s_cga_anos_apos2005 = parseInt(s_cga_anos_apos2005);
	if (isNaN(s_cga_anos_apos2005)){s_cga_anos_apos2005 = 0;}

	s_cga_meses = parseInt(s_cga_meses);
	if (isNaN(s_cga_meses)){s_cga_meses = 0;}
	s_cga_meses_calen = s_cga_meses
	if (s_cga_meses > 0){
		s_cga_meses_calen = s_cga_meses
		s_cga_meses = (s_cga_meses / 12)
		s_cga_meses = preparNumToCalc(formatNum(s_cga_meses,2))
	}
	
	s_cga_meses_apos2005 = parseInt(s_cga_meses_apos2005);
	if (isNaN(s_cga_meses_apos2005)){s_cga_meses_apos2005 = 0}
		
	s_cga_Tmeses=s_cga_meses_calen + s_cga_meses_apos2005
	s_cga_Tmeses_nDec = (s_cga_Tmeses / 12)
	s_cga_mesApo = parseFloat(s_cga_Tmeses_nDec) - s_cga_meses
	s_cga_mesApo = preparNumToCalc(formatNum(s_cga_mesApo ,2))

	var s_tempoAte2005 = parseInt(s_cga_anos) + parseFloat(s_cga_meses)
	var s_tempoApos2005= parseInt(s_cga_anos_apos2005) + parseFloat(s_cga_mesApo)
	var s_tempoTotal = s_tempoAte2005 + s_tempoApos2005;
	var s_out ="";

	s_out = s_tempoAte2005 + ";" + s_tempoApos2005 + ";" + s_cga_meses_apos2005

	return s_out;
}



//até 2007-12-31 esta!


function checkAberturaDireito(s_ano_aposentacao, s_tempoTotal, s_idadeAnoApos, s_incapaz, s_tmpAte2005, s_iddAte2005){
	var cod_msg="";
	var cod_qdr="";
	var cod_q_m="";

	var anoAposentacao = parseInt(s_ano_aposentacao)
    var tempoTotServico = parseFloat(s_tempoTotal)
    var idadeSubAnoApos = parseFloat(s_idadeAnoApos)
	
	var tempoSrvAte2005 = parseFloat(s_tmpAte2005)
	var idadeSubAno2005 = parseFloat(s_iddAte2005)

			
	for (i=0; i<a_correspAnoTServ.length;i++){
		
		a_anoTServTab = a_correspAnoTServ[i].split(";")
		s_anoTabela = parseInt(a_anoTServTab[0])
		s_idadeTabela = a_anoTServTab[1]
		s_tempoTabela = a_anoTServTab[2]
		
		if ((s_anoTabela == anoAposentacao)&&(s_anoTabela < 2015)){
			if (tempoSrvAte2005 >= 36){
				if (idadeSubAno2005 < 60){
					if (idadeSubAnoApos >= s_idadeTabela){
						cod_q_m = "a2;11;a;1"
					}else{
						if(s_incapaz == "nao"){cod_q_m = "a4;11;a;4";}
						if(s_incapaz == "sim"){cod_q_m = "a5;3;i;2";}
					}
				}
			}
			if (tempoSrvAte2005 < 36){
				if (tempoSrvAte2005 >= 35){//significa que em 2007 >=37
					if(idadeSubAno2005 >= 59){cod_q_m = "a5;6;vna;2"}//significa que em 2007 >= 61
					if(idadeSubAno2005 < 59){//significa que em 2007 <61
						if (idadeSubAnoApos >= s_idadeTabela){
							cod_q_m = "a5;6;vna;2"
						}else{
							if(s_incapaz == "nao"){cod_q_m = "a6;13;a;2";}
							if(s_incapaz == "sim"){cod_q_m = "a5;3;i;2";}
						}
					}
				}else{
					if(tempoTotServico >= s_tempoTabela){// era tempoTotServico >= 36
						if (idadeSubAnoApos >= s_idadeTabela){
							cod_q_m = "a8;9;vna;3"
						}else{
							if(s_incapaz == "sim"){cod_q_m = "a8;3;i;3";}
							if(s_incapaz == "nao"){cod_q_m = "0;2;0;0";}
								//if(tempoTotServico >= s_tempoTabela){cod_q_m = "a9;19;a;3";}
						}
					}else{
						if (tempoTotServico >=5){
							if(idadeSubAnoApos >= 70){
								cod_q_m = "a8;4;li;3";
							}else{
								if(s_incapaz == "nao"){cod_q_m = "0;2;0;0";}
								if(s_incapaz == "sim"){cod_q_m = "a8;3;i;3";}
							}
						}else{
							cod_q_m = "0;1;0;0";
						}
					}
				}
			}
			break;
		}
	}
	
	//////////////////////////////// após 2014 /////////////////////////////////////////
	
	if (anoAposentacao >= 2015){
		if(tempoSrvAte2005 >= 36){
			if(idadeSubAno2005 < 60){
				if(idadeSubAnoApos >= 65){
					cod_q_m = "a2;12;a;1";//10
				}else{
					if(s_incapaz == "nao"){cod_q_m = "a3;12;a;1";}
					if(s_incapaz == "sim"){cod_q_m = "a5;3;i;2";}
				}
			}
		}	
					
		if(tempoSrvAte2005 < 36){
			if(tempoSrvAte2005 >= 35){//significa que em 2007 >=37 "salvaguarda de direitos 2007"
				if(idadeSubAno2005 < 59){//significa que em 2007 <61
					if(idadeSubAnoApos >= 65){
						cod_q_m = "a5;6;vna;2";
					}else{
						if(s_incapaz == "nao"){cod_q_m = "a7;14;a;2";}
						if(s_incapaz == "sim"){cod_q_m = "a5;3;i;2";}
					}
				}				
			}else{
				if(tempoSrvAte2005 >= 34){//significa que em 2007 >=36 " com salvaguarda de direitos"
					if(idadeSubAnoApos >= 65){
						if(idadeSubAno2005 >= 59){//significa que em 2007 >= 61
							cod_q_m = "a5;6;vna;2";
						}else{
							cod_q_m = "a8;9;vna;3";
						}
					}else{
						if(s_incapaz == "sim"){cod_q_m = "a8;3;i;3";}																															
						if(s_incapaz == "nao"){
							cod_q_m = "0;2;0;0";
							if(tempoTotServico >=40){cod_q_m = "a10;20;a;3";}
						}
					}
				}else{ //significa  que tempo de serviço em 2007 < 36 " sem salvaguarda de direitos"
					if (tempoTotServico >=15){
						if(idadeSubAnoApos >= 65){
							cod_q_m = "a8;9;vna;3";
						}else{
							if(s_incapaz == "sim"){cod_q_m = "a8;3;i;3";}																															
							if(s_incapaz == "nao"){
								cod_q_m = "0;2;0;0";
								if(tempoTotServico >=40){cod_q_m = "a10;20;a;3";}
							}
						}
					}else{
						if (tempoTotServico >=5){
							if(idadeSubAnoApos >= 70){
								cod_q_m = "a8;4;li;3";
							}else{
								if(s_incapaz == "nao"){cod_q_m = "0;2;0;0";}
								if(s_incapaz == "sim"){cod_q_m = "a8;3;i;3";}
							}
						}else{
							cod_q_m = "0;1;0;0";
						}
					}
				}
			}
		}
	}
	
	
	if ((tempoSrvAte2005 >= 34)&&(tempoSrvAte2005 < 36)&&(idadeSubAno2005 >= 59)){cod_q_m = "a5;6;vna;2"}//significa >=36 anos de serviço e >=61 anos de idade em 2007
	if ((tempoSrvAte2005 >= 36)&&(idadeSubAno2005 >= 60)){cod_q_m = "a1;5;vna;1"}
	if (tempoTotServico < 5){cod_q_m = "0;1;0;0";}
			
	//fim de alterações
	
		
	var s_tipoPensao = getTipoPensao() 
	var s_tmpCNP = getTempoCNP()
	var s_tmpCGA = checkTempoCGA5anos()
	var tmpTotal = parseFloat(s_tmpCNP) + parseFloat(s_tmpCGA)
		
	tmpTotal= preparNumToCalc(formatNum(tmpTotal,2))
	
	if (s_tipoPensao == "unificada"){
		if (s_tmpCNP >=5){
			if (s_tmpCGA < 5){//menor que 5 anos
				cod_qdr = 9;
				cod_msg = 10;
				cod_q_m = "g1;21;x;x"
			}
		}else{
			if (s_tmpCGA < 5){//menor que 5 anos
				cod_qdr = 0;
				cod_msg = 11;
				cod_q_m = "0;22;0;0"
			}
		}
	}
	
	if (s_tipoPensao == "eee"){
		if (s_tmpCNP < 1){
			if (tmpTotal < 5){
				cod_qdr = 0;
				cod_msg = 1;
				cod_q_m = "0;1;0;0"
			}
		}else{
			if (s_tmpCNP >= 1){
				if (s_tmpCGA < 5){
					if (tmpTotal >= 5){
						if (aberturaDireito_eee=="ok"){
							cod_qdr = 9;
							cod_msg = 12;
							cod_q_m = "g1;23;x;x"
						}
						if (aberturaDireito_eee==""){
							if((s_idadeAnoApos >= 70)||(s_incapaz == "sim")){
								cod_qdr = 9;
								cod_msg = 12;
								cod_q_m = "g1;23;x;x"
							}else{
								cod_qdr = 0;
								cod_msg = 3;
								cod_q_m = "0;2;0;0"
							}
						}
					}
				}	
			}
		}
	}
	return cod_q_m;

}

function checkPensaoMinima(tmpServico){
	var maxLoop=0;
	var pMinima=0;
	var anoPM ="";
	var s_prmts="";
	var t1; var t2

	if(document.getElementById("hpm_idx")!=null){maxLoop = document.getElementById("hpm_idx").value;}

	maxLoop=maxLoop+1
	for(i=0; i<parseInt(maxLoop); i++){
		if(document.getElementById("hpm"+i)!=null){
			s_prmts = document.getElementById("hpm"+i).value;
			a_prmts = s_prmts.split(";");
			
			anoPM = a_prmts[0]
			pMinima = a_prmts[3]
			t1=parseInt(a_prmts[1])
			t2=parseInt(a_prmts[2])

			if(parseFloat(tmpServico) > 12){
				if((tmpServico > t1) && (tmpServico <= t2)){break;}
			}else{
				if(parseFloat(tmpServico) >= 5){break;}
			
			}
		}
	}
	pMinima = preparNumToCalc(pMinima)
	ppMinima = projectaPManoApos(anoPM, pMinima)
	return ppMinima

}

function projectaPManoApos(anoPM, pMinima){
	var na_apos2005 = document.getElementById("cga_anos_apos2005").value
	var nm_apos2005 = document.getElementById("cga_meses_apos2005").value
	
	na_apos2005 = parseInt(na_apos2005)
	if(isNaN(na_apos2005)){na_apos2005=0}

	nm_apos2005 = parseInt(nm_apos2005)
	if(isNaN(nm_apos2005)){nm_apos2005=0}

	var incr_anual = 0;
	if (document.getElementById("perc_incr")!=null){
		if (document.getElementById("perc_incr").style.display==""){
			var incr_anual = document.getElementById("perc_incr").value;
			incr_anual = parseFloat(preparNumToCalc(incr_anual))
		}
	}	
	
	var s_dif = 0;
	var s_ppM = parseFloat(pMinima);	
	s_dif = (parseInt(anoPM) - s_ano1apos)
	anos = na_apos2005 - s_dif
	if (anos < 0) {anos = 0;}

	incr_anual = parseFloat((incr_anual/100))
	
	for (i=0; i<anos; i++){
		s_ppM+= (s_ppM * incr_anual)		
	}
	
	return s_ppM;

}


function checkAllInputs(p_idade, p_tmpAte2005, p_tmpTotal){
	
	var s_return="";
	var o_dt_value = document.getElementById("cga_dataNasc").value;
	
	if (o_dt_value == ""){s_return="cga_dataNasc;"+erro1}	
	
	if (s_return ==""){s_return = checkInputsCNP();}

	if (s_return == ""){
		if (parseFloat(p_idade) < s_idadeSubMin){s_return="cga_dataNasc;"+erro4}
	}
	if (s_return == ""){
		if (parseFloat(p_idade) < parseFloat(p_tmpTotal)){s_return="cga_anos_apos2005;"+erro5}
	}
	if (s_return == ""){
		if (parseFloat(p_tmpAte2005) <= 0){s_return="cga_anos;"+erro2}
	}
	if (s_return == ""){
		if (parseFloat(p_tmpTotal) < s_tempoSerMin){s_return="cga_anos_apos2005;"+erro7}
	}
	
	var s_continuar = "ok"
	if (s_return == ""){
		var s_tipoPensao = getTipoPensao()   
		var tmpServicoCNP = getTempoCNP()
		var tmpServicoCGA = checkTempoCGA5anos()	
		var tmp_srvCNPCGA = parseFloat(tmpServicoCNP) + parseFloat(tmpServicoCGA)
		tmp_srvCNPCGA = preparNumToCalc(formatNum(tmp_srvCNPCGA,2))
		
		if (s_tipoPensao == "unificada"){
			if (tmpServicoCGA < 5){s_continuar = "no";}
		}
		if (s_tipoPensao == "eee"){
			if (tmp_srvCNPCGA < 5){s_continuar = "no";}
		}
	}
	
	if (s_continuar == "ok"){
		if (s_return == ""){
			var obj="";
			coll= document.all.tags("INPUT").length;
			for (i=0; i<coll; i++){
				obj = document.all.tags("INPUT").item(i);
				o_name = obj.name;
				o_value= obj.value;
				o_type = obj.type;
				s_prfx_name=o_name.substr(0,9);
				s_sfx_name =o_name.substr(9);
				if(o_type=="text"){
					if(s_prfx_name == "cga_venc_"){
						if (document.getElementById("r"+s_sfx_name)!=null){
							if (document.getElementById("r"+s_sfx_name).style.display==""){
								s_ret = preparNumToCalc(o_value)
								s_ret = parseFloat(s_ret)
								if ((s_ret <= 0)||(isNaN(s_ret))){
									if (s_return == ""){
										s_return=s_prfx_name + s_sfx_name+";"+erro3;
										break;
									}
								}
							}
						}
					}else{
						if (o_name == "perc_incr"){
							s_ret = preparNumToCalc(o_value)
							s_ret = parseFloat(s_ret)
							if (s_ret < 0){
								if (s_return == ""){
									s_return=s_prfx_name + s_sfx_name+";"+erro3;
									break;
								}
							}
						}
					}
					
					if (o_name == "cga_venc_ult_mes"){
						s_ret = preparNumToCalc(o_value)
						s_ret = parseFloat(s_ret)
						if ((s_ret <= 0)||(isNaN(s_ret))){
							if (s_return == ""){
								s_return=s_prfx_name + s_sfx_name+";"+erro3;
								break;
							}
						}
					}
				}
			}
		}
	}
	return s_return;

}






//------------- funções de eventos de objectos ----------

function checkValue(obj,numType){
	si_validChar="01234567891"
	sd_validChar="01234567891,."
	
	o_name=obj.name
	o_value=obj.value		
	s_itsValueOk="ok"
	for (i=0; i<o_value.length;i++){
		curr_char=o_value.charAt(i)
		if(numType=="int"){
			if (o_value.length >1){//introduzido para corrigir erro nos inputs de tempo "08,09"
				if (o_value.substr(0,1)=="0"){
					o_value=o_value.replace(/0/i,"")
					document.getElementById(o_name).value=o_value
				}
			}
			// fim de correção 
			if (si_validChar.indexOf(curr_char)==-1){
				s_itsValueOk="no"
				break;
			}
		}

		if(numType=="dec"){
			if (sd_validChar.indexOf(curr_char)==-1){
				s_itsValueOk="no"
				break;
			}
		}
	}
	
	if (s_itsValueOk=="no"){
		document.getElementById(o_name).value="";
		checkDataToS1();
	}
}

function write_ti2005(){
	var s_dt_nasc=document.getElementById("cga_dataNasc").value
	var s_idade = getIdadeAquApos(s_dt_nasc,'2005-12-31',"")
	var str_idade = formataIdadeExt(s_idade,"id")
	document.getElementById("ti2005").innerHTML = "<SMALL>&nbsp;&nbsp;("+ str_idade +" de idade em 2005-12-31)</SMALL>"
	document.getElementById("hdt_nascimento").value=s_dt_nasc;
	checkDataToS1();
	s_idadeNoFim2005 = getIdade(s_dt_nasc,'2005-12-31')
}

function waitSameTime(){
	displayTimerID=setInterval("batDisplayAge()", 200);
}

function batDisplayAge(){
	
	var s_hdt_nasc=document.getElementById("hdt_nascimento").value
	var s_dt_nasc=document.getElementById("cga_dataNasc").value
	
	if (s_dt_nasc != ""){
		if (s_hdt_nasc != s_dt_nasc ){
			write_ti2005();
			clearInterval(displayTimerID);
			displayTimerID=null;
		}
	}

	if (s_dt_nasc == ""){
		if (s_hdt_nasc != ""){
			document.getElementById("ti2005").innerHTML= ""
			//clearInterval(displayTimerID);
			//displayTimerID=null;
			document.getElementById("hdt_nascimento").value=s_dt_nasc;
			//checkDataToS1();
		}

	}
	//s_idadeNoFim2005=getIdade(s_dt_nasc,'2005-12-31')
}

function checkDataToS1(){
	clearObjQuadroeMsg();
	if (document.getElementById("cmdCalcula")!=null){
		document.getElementById("cmdCalcula").disabled = false;
	}
	
	if (document.getElementById("cga_dataNasc")!=null){
	var o_name = document.getElementById("cga_dataNasc").name
	var s_dt_nasc = document.getElementById("cga_dataNasc").value
	}
	var s_cga_anos = document.getElementById("cga_anos").value
	
	var s_idade = "0" 
	if (s_dt_nasc != ""){ 
		s_idade = getIdade(s_dt_nasc,'2005-12-31')
		s_idadeNoFim2005=s_idade

		s_cga_anos = parseInt(s_cga_anos)
			
		if ((s_idade > 70)&& (s_idade < 70.1)){s_idadeApos = 70}//limite de idade
		if (s_idade <= 70){
			if ((s_cga_anos >= 36) && (s_idade >= 60)){
				document.getElementById("incapaz").checked = false;
				document.getElementById("incapaz").disabled = true;
			}else{
				document.getElementById("incapaz").disabled = false;
			}
			var tipoPensao = getTipoPensao()
			if (tipoPensao!=""){
				s_allTimes = getAllTimes();
				a_allTimes = s_allTimes.split(";")
				tempoCGA = (a_allTimes[0]*1)+(a_allTimes[1]*1)
				var tmpCNP = getTempoCNP()
				var tmpCNP_CGA2005 = parseFloat(tmpCNP)+ parseFloat(tempoCGA)
				tmpCNP_CGA2005 = preparNumToCalc(formatNum(tmpCNP_CGA2005,2))
				if ((parseFloat(tmpCNP_CGA2005) >= 36) && (s_idade >= 60)){
					document.getElementById("incapaz").checked = false;
					document.getElementById("incapaz").disabled = true;
				}else{
					document.getElementById("incapaz").disabled = false;
				}
			}
		}else{
			document.getElementById("cmdCalcula").disabled = true;
			manageErrorMsg("",erro6);
		}

		var obj=document.getElementById("cga_meses_apos2005")
		if (document.getElementById("cga_anos_apos2005").value!=""){obj=document.getElementById("cga_anos_apos2005")}
		if (obj.value != ""){openCloseLRAA2005(obj);}
		s_idadeNoFim2005=getIdade(s_dt_nasc,'2005-12-31')
	}else{ 
		document.getElementById("cnp").checked = false;// IE e FF
		document.getElementById("eee").checked = false;// IE e FF
		document.getElementById("sp_cnp").innerHTML = "";
		document.getElementById("lbl_cnp").innerHTML = acronimoCNP;
		document.getElementById("lbl_eee").innerHTML = acronimoEEE +":";
		document.getElementById("cnp_anos").value="";
		document.getElementById("cnp_meses").value="";
		
		document.getElementById("cga_anos").value="";
		document.getElementById("cga_meses").value="";
		openCloseLRAA2005("cga_anos_apos2005"); //
		manageErrorMsg(o_name,erro1); 
	}

}

// ----------------fução que controla a abertura das remunerações anuais ------------------------------------

function openCloseLRAA2005(ed){

	clearObjQuadroeMsg();

	var this_ele_name = ed.name;
	var this_ele_value= ed.value;	

	var s_cga_anos = document.getElementById("cga_anos").value
	var s_cga_meses= document.getElementById("cga_meses").value

	var na_ate2005 = parseInt(s_cga_anos);
	var nm_ate2005 = parseInt(s_cga_meses);	
	if (isNaN(na_ate2005)){na_ate2005=0;}
	if (isNaN(nm_ate2005)){nm_ate2005=0;}
	if (nm_ate2005 > 0){nm_ate2005=(nm_ate2005/12)}
	var tmpServicoAte2005 = 0;
	tmpServicoAte2005 = na_ate2005 + nm_ate2005
	// pensao unificada: adicionar tempo CNP para efeito de abertura de anos após 2005
	var tmpServicoCNP = getTempoCNP()
	var tmpServicoAte2005AD = tmpServicoAte2005 + parseFloat(tmpServicoCNP)
	// pensao unificada: fim
	
	if(isNaN(tmpServicoAte2005)){tmpServicoAte2005=0;}
	
	var edTitle="rTabTitle"
	var edLines="rTabFields"
	var s_hperc_incr = ""

//--- regras para a abertura de remunerações anuais (tempo até 2005 seja maior ou igual ao tempo da tabela no ano de aposentação)	

	dt_ano_aposentacao = defineAnoAposentacao();
	g_tmpTabela = 36
	
	for (i=0; i<a_correspAnoTServ.length;i++){
		a_anoTServTab = a_correspAnoTServ[i].split(";")
		s_anoTabela = a_anoTServTab[0]
		g_tmpTabela = parseFloat(a_anoTServTab[3])
		if (dt_ano_aposentacao == parseInt(s_anoTabela)){break;}
	}

	//exepção, para corrigir um erro de comportamento do elemento "cga_meses_apos2005" quando o tempo até 2005 é superior a 36 anos
	if (this_ele_name == "cga_meses_apos2005"){
			if (parseInt(this_ele_value) > 11){document.getElementById(this_ele_name).value="";}
	}
	//exepção, fim
//-------- fim de regras---------------
	
	var run_ThisCode = "ok";
	var s_tipoPensao = getTipoPensao()
		
	if (tmpServicoAte2005 == 0){run_ThisCode=""}// correção da abertura apos 2005, em 2006-06-27
	if (tmpServicoAte2005 >= g_tmpTabela){run_ThisCode=""}
	if ((tmpServicoAte2005 >= 36)&&(s_idadeNoFim2005 >=60)){run_ThisCode=""}
	
	// pensao unificada: abertura de remuneções anuais
	
	var tmpServicoCGA = checkTempoCGA5anos()
	var tmp_srvCNPCGA = parseFloat(tmpServicoCNP) + parseFloat(tmpServicoCGA)
	tmp_srvCNPCGA = preparNumToCalc(formatNum(tmp_srvCNPCGA,2))
	if (s_tipoPensao == "unificada"){
		if (tmpServicoCNP >= 1){
			if (tmpServicoCGA < 5){
					run_ThisCode=""
			}
		}
	}else{
		if (tmpServicoCGA < 5){run_ThisCode=""}//se tempo cga for menor que 5 anos
	}
	
	if (s_tipoPensao == "eee"){
		if (tmpServicoCNP < 1){
			if (tmp_srvCNPCGA < 5){
				run_ThisCode="";
			}else{
				run_ThisCode="ok";
			}
		}
	}
	// pensao unificada: fim
	if (run_ThisCode =="ok"){
		if (document.getElementById("hperc_incr")!=null){
			s_hperc_incr = document.getElementById("hperc_incr").value
			if(s_hperc_incr!=""){s_hperc_incr=formatNum(s_hperc_incr,2)}
		}
		var s_tab_idx=""
		if (document.getElementById("htab_incr")!=null){
			s_tab_idx = document.getElementById("htab_incr").value
			if(s_tab_idx!=""){s_tab_idx="tabindex="+s_tab_idx}
		}
		
		var span_inputAA = "&nbsp;&nbsp;<INPUT ALIGN=left class=button type='button' value='Aumento anual' id='cmdAplicar' name='cmdAplicar'"
		span_inputAA+=" onMouseOut=this.className='button'"
		span_inputAA+=" onMouseOver=this.className='buttonover'"
		span_inputAA+=" onClick='writeIntoLines()'>";

		var span_inputPAA="<INPUT "+s_tab_idx+" ALIGN=right TYPE=text STYLE=WIDTH:40px ID=perc_incr NAME=perc_incr MAXLENGTH=5 VALUE='"+s_hperc_incr+"'"
		span_inputPAA+=	" onKeyPress='return checkNumDot(event,2,2);'"
		span_inputPAA+=	" onkeyup=writeIntoLines()"
		span_inputPAA+=	" onFocus=this.className='InData1_focus'"
		span_inputPAA+=	" onSelect=chkEleSelect(this)"
		span_inputPAA+=	" onBlur=this.className='InData1';formatValorRMAA2005(this,2)>%";

		
		var s_go_on = "ok"

		var s = document.getElementById("dt_servidor").value
		var s_ano_curr = s.substr(0,4)
	
		var s_ele_name = "";
		var s_ele_prefix="r";
		var s_ele_ano = s_ano1apos;
        	var s_ele_control="a";
	
		var linhas = document.getElementById("cga_anos_apos2005").value
		var meses = document.getElementById("cga_meses_apos2005").value

		
		if (linhas==""){linhas=0;}
		if (meses == ""){meses=0;}		

		if (this_ele_name == "cga_meses_apos2005"){
			s_ele_control="m"
			if (parseInt(this_ele_value) > 11){
				document.getElementById(this_ele_name).value="";
				s_go_on="no"
			}
			
			if (parseInt(this_ele_value) < 4){meses=0;}
		}
		
	
		if (s_go_on=="ok") {
			if (meses > 3){
				linhas=parseInt(linhas)+1
			}else{
				var s_meses=0;
				s_ele_name = parseInt(s_ele_ano) + parseInt(linhas)
				s_ele_name = s_ele_prefix + s_ele_name
				if (s_ele_control=="m"){
					if(document.getElementById(s_ele_name)!=null){
						document.getElementById(s_ele_name).style.display="none"
					}
				}
			}	

			s_anosServApos2005 = parseInt(linhas);	
	
			closeAllLines(edTitle,edLines);
			s_ele_markFirst="";
			
			if (linhas > 0){
		   		if (document.getElementById(edTitle).style.display=="none"){
	       				document.getElementById(edTitle).style.display=""
	   			}

				if (document.getElementById(edLines).style.display=="none"){
		       			document.getElementById(edLines).style.display=""
	   			}
				
	   			for (i=0; i < parseInt(linhas);i++){
					s_ele_sufi = parseInt(s_ele_ano)+i
					s_ele_name = s_ele_prefix + s_ele_sufi
					if (document.getElementById(s_ele_name)!=null){
						if (document.getElementById(s_ele_name).style.display=="none"){
							document.getElementById(s_ele_name).style.display="";
							
							if ((document.getElementById("td_coeficiente_"+s_ele_sufi) == null) && (document.getElementById("td_coeficiente2_"+s_ele_sufi) == null)){
								if(s_ele_markFirst==""){s_ele_markFirst= parseInt(s_ele_ano)+i}
								s_ele_markLast = parseInt(s_ele_ano)+i;
							}
							
						}
					}
				}
				if(s_ele_markFirst != ""){
					obj_span ="inputAA"+s_ele_markFirst;
					obj_span2="inputPAA"+s_ele_markFirst;
					if(s_ele_markFirst == s_ele_markLast){
						document.getElementById(obj_span).innerHTML = "";
						document.getElementById(obj_span2).innerHTML = "";
					}else{
						document.getElementById(obj_span).innerHTML = span_inputAA;
						document.getElementById(obj_span2).innerHTML = span_inputPAA;
					}
				}
			}
		}
		
	}else{
	   closeAllLines(edTitle,edLines);
	}
	
	var obj_dt = document.getElementById("cga_dataNasc")
	var odt_name = obj_dt.name
	var s_dt_nasc = document.getElementById("cga_dataNasc").value

	var anos_apos2005  = document.getElementById("cga_anos_apos2005").value
	var meses_apos2005 = document.getElementById("cga_meses_apos2005").value

	if (anos_apos2005 == ""){anos_apos2005=0;}
	if (meses_apos2005 == ""){meses_apos2005=0;}
	var mes_aposentacao= parseInt(meses_apos2005)

	s_ano_aposentacao = defineAnoAposentacao();
	s_dt_aposentac = s_ano_aposentacao +"-"+ (mes_aposentacao+1)

	s_idadeAnoApos = getIdadeAquApos(s_dt_nasc,s_dt_aposentac,"")
	s_idadeApos = s_idadeAnoApos


	var str_html =""
	
	document.getElementById("cmdCalcula").disabled = false;
		
	checkRecalculaValores();
	if (s_dt_nasc!=""){
		if ((s_idadeApos >70)&& (s_idadeApos < 70.1)){s_idadeApos = 70}//limite de idade
		if (s_idadeApos > s_limiteIdade){
			if((anos_apos2005 >0)||(meses_apos2005>0)){
				closeAllLines(edTitle,edLines);
				document.getElementById("cmdCalcula").disabled = true;
				manageErrorMsg(this_ele_name,erro6);
			}else{
				if(tmpServicoAte2005 <5){
					document.getElementById("cmdCalcula").disabled = true;
				}
			}
		}
	}else{
	   document.getElementById("cga_anos_apos2005").value="";
	   document.getElementById("cga_meses_apos2005").value="";	
	   manageErrorMsg(odt_name,erro1)
	}
	putSMNcurrApos();
}


function closeAllLines(ed_T,ed_F){ 
	var s_ele_name="";
	var s_ele_prefix=ed_T.charAt(0);
	
	if (document.getElementById("ra2005")!=null){//alteração para respeitar accão função "openRAnuais1993 e Regimes novos"
		if (document.getElementById("ra2005").style.display=="none"){
			if (document.getElementById(ed_T)!=null){document.getElementById(ed_T).style.display="none"}
			if (document.getElementById(ed_F)!=null){document.getElementById(ed_F).style.display="none"}
		}
	}else{
		if (document.getElementById(ed_T)!=null){document.getElementById(ed_T).style.display="none"}
		if (document.getElementById(ed_F)!=null){document.getElementById(ed_F).style.display="none"}
	}
	
	for (i=0; i < 100;i++){// onde está 100 era s_max_lines (correção em 2009-03-17)
		s_ele_name = s_ano1apos+i
		s_ele_name = s_ele_prefix + s_ele_name 
		if (document.getElementById(s_ele_name)!=null){
			document.getElementById(s_ele_name).style.display="none"
		}
	}
}


function writeIntoLines(){
	
	clearObjQuadroeMsg();

	var s = document.getElementById("ano_currente").value;
	var s_ano_curr = s.substr(0,4)
	var s_ele_pname = parseInt(s_ano_curr);
	var s_ele_valor = document.getElementById("cga_venc_"+s_ano_curr).value;
		
	var s_subTotal = s_ele_valor;

	var percentagem = document.getElementById("perc_incr").value;
	document.getElementById("hperc_incr").value = percentagem

	var s_ele_curr = s_ele_pname;
	var s_ele_ant = s_ele_pname ;
	var s_percent = ""
	var s_valor = ""

	var s_anoApos = getAnoAposentacao()
	var S_mesesAp = document.getElementById("cga_meses_apos2005").value;
	if (S_mesesAp == ""){S_mesesAp=0}

	checkEmpty(s_ano_curr);

	if (percentagem!=""){
		if(s_ele_valor!=""){
			for (i=1;i<s_max_lines;i++){
				s_ele_curr = s_ele_pname + i
				if (document.getElementById("r"+s_ele_curr) != null){
					s_valor = document.getElementById("cga_venc_"+s_ele_ant).value;
					s_valor = preparNumToCalc(s_valor)
					s_percent = preparNumToCalc(percentagem)
					s_subTotal = parseFloat(s_valor);
					s_subTotal = s_subTotal + (s_subTotal * (s_percent/100));
					if ((s_anoApos==s_ele_curr)&&(S_mesesAp > 3)){
						s_subTotal=((s_subTotal * S_mesesAp)/14)
					}

					s_subTotal = formatNum(s_subTotal,2)
					document.getElementById("cga_venc_"+s_ele_curr).value = s_subTotal;
					s_ele_ant = s_ele_curr;
				}
			}
		}	
	}
	putSMNcurrApos();
}


function calculaRevalor(ed){
	clearObjQuadroeMsg();
	
	if (document.getElementById("td_coeficiente_"+ed)!=null){
		var s_valor = document.getElementById("cga_venc_"+ed).value
		var s_coef = document.getElementById("td_coeficiente_"+ed).innerHTML
		var s_out = "";
		s_valor= preparNumToCalc(s_valor)
		s_coef = preparNumToCalc(s_coef)
		s_out = s_valor * s_coef
		s_out = formatNum(s_out,2)
		document.getElementById("td_valorizacao_"+ed).innerHTML = s_out
	}
	
	if (document.getElementById("td_coeficiente2_"+ed)!=null){
		var s_valor = document.getElementById("cga_venc_"+ed).value
		var s_coef = document.getElementById("td_coeficiente2_"+ed).innerHTML
		var s_out = "";
		s_valor= preparNumToCalc(s_valor)
		s_coef = preparNumToCalc(s_coef)
		s_out = s_valor * s_coef
		s_out = formatNum(s_out,2)
		document.getElementById("td_valorizacao2_"+ed).innerHTML = s_out
	}
}

function formatValorRMAA2005(obj,nDec){
	var o_name = obj.name;
	var o_valor= obj.value;
	var s1 = o_valor.replace(/ /g, "");
	var s_trt = s1
	while (s_trt.substr(0,1)=="0"){
		if (s_trt.length>1){
			s_trt=s_trt.replace(/0/i,"")
		}else{
			break;
		}
	}
	var s_out = formatNum(s_trt,nDec);
	document.getElementById(o_name).value=s_out;
}

function checkPercent(obj){

	clearObjQuadroeMsg();
	
	if (document.getElementById("perc_incr")!=null){
		o_name = obj.name
		o_valor= obj.value;
		if ((o_valor=="") || (o_valor=="0")){
			document.getElementById("perc_incr").value="";
		}
	}
	putSMNcurrApos();
}

function checkNumMax(obj)
{
  var o_name=obj.name	
  var o_value=obj.value

  if (o_value > 11){document.getElementById(o_name).value="";}		
   
}

//--------------- funções auxiliares ---------------------------------------------

function clearObjQuadroeMsg(){
	checkIncapacidade("");
	if (document.getElementById("tx2") != null){document.getElementById("tx2").innerHTML="";}
	if (document.getElementById("resposta") != null){document.getElementById("resposta").innerHTML="";}
	if (document.getElementById("ap1vez") != null){document.getElementById("ap1vez").innerHTML ="";}
}

function defineAnoAposentacao(){
	var na_apos2005 = document.getElementById("cga_anos_apos2005").value
	na_apos2005 = parseInt(na_apos2005)
	
	if (isNaN(na_apos2005)){na_apos2005=0;}
	var dt_ano_aposentacao = 2005;
	dt_ano_aposentacao+=(parseInt(na_apos2005) + 1)

	return dt_ano_aposentacao;
}


function getAnoAposentacao(){
	var s_ano_aposentacao = 2005; 
	for (j=0; j < s_max_lines;j++){
		s_ele_sufi = parseInt(s_ano1apos)+j;
		s_ele_name = s_ele_prefix + s_ele_sufi;
		if (document.getElementById(s_ele_name).style.display==""){
			s_ano_aposentacao = s_ele_sufi
			
		}
	}
	return s_ano_aposentacao;
}

function getTempoServiçoApos2005(){
	var na_apos2005 = document.getElementById("cga_anos_apos2005").value
	var nm_apos2005 = document.getElementById("cga_meses_apos2005").value
	var na_apos2005 = parseInt(na_apos2005);
	var nm_apos2005 = parseInt(nm_apos2005);	
	if (isNaN(na_apos2005)){na_apos2005=0;}
	if (isNaN(nm_apos2005)){nm_apos2005=0;}
	if (nm_apos2005 > 0){nm_apos2005=(nm_apos2005/12)}
	var tmpServicoApos2005=0;
	tmpServicoApos2005 = na_apos2005 + nm_apos2005
	if(isNaN(tmpServicoApos2005)){tmpServicoApos2005=0;}

	return tmpServicoApos2005;
}

function checkEmpty(e_anoCorrente){

	var percentagem = document.getElementById("perc_incr").value;
	var s_partial_name=e_anoCorrente;
	var startLoop=1;
	
	if (percentagem == ""){
		for (i=startLoop;i<s_max_lines;i++){
			s_ele_part_name = parseInt(s_partial_name) + i
			if (document.getElementById("r"+s_ele_part_name)!=null){
				if (document.getElementById("cga_venc_"+s_ele_part_name)!=null){
					document.getElementById("cga_venc_"+s_ele_part_name).value="";
				}
			}
		}
	}
}


function checkRecalculaValores(){
	if(document.getElementById("perc_incr")!=null){
		var o_valor = document.getElementById("perc_incr").value
		if (o_valor == ""){o_valor=0}
			if (parseInt(o_valor) > 0 ){
			writeIntoLines();
		}
	}

}


function preparNumToCalc(str){
  var r, re;
  var s = str+"";
  re = /,/i;
  s1 = s.replace(re, ".");
  s=s1;
  re = / /g;
  r = s.replace(re, "");
  	
  return(r);
}

function getIdade(d1,d2){
	var s_yd1 = d1.substr(0,4)

	var s_mes = d1.substr(5,2)

	var s_yd2 = d2.substr(0,4)
	
	var s_ano = s_yd2 - s_yd1
	
	var s_out=s_ano

	if (s_mes < 7) {s_out = s_ano + 0.5}
	
	return s_out;
}

function getIdadeAquApos(d1,d2,mod){
	var s_anoPens = d2.substr(0,4)
	var s_anoNasc = d1.substr(0,4)
		
	var s_mesPens = d2.substr(5,2)
	var s_mesNasc = d1.substr(5,2)
	
	var zeroPos = s_mesNasc.indexOf("0")
	if (zeroPos == 0){s_mesNasc=s_mesNasc.substr(1)}
	
	var s_mesesAnoNasc = (12 - parseInt(s_mesNasc))
		
	var s_anoNascSeg = parseInt(s_anoNasc) 
	var s_anoPens = parseInt(s_anoPens)
	
	s_mesPens = parseInt(s_mesPens)
		
	var s_mesesAnoPens = s_mesPens
	var s_mesesTotais = parseInt(s_mesesAnoNasc) + parseInt(s_mesesAnoPens)

	var s_anosInteiros = s_anoPens - (s_anoNascSeg+1)

	var s_anoDecimal = s_mesesTotais / 12
		
	var s_idadeFloat = s_anosInteiros + parseFloat(s_anoDecimal)
	var s_idadeDif05 = s_idadeFloat - parseInt(s_idadeFloat)
	var s_idade = parseInt(s_idadeFloat)

	if (s_idadeDif05 >= 0.5){ s_idade+=0.5}
	
	if (mod == "0"){s_idade = parseInt(s_idadeFloat)}
	if (mod == ""){s_idade = s_idadeFloat}

	var s_out=s_idade
	return s_out;
}


function getIdadeAnoApos(d1,d2,mod){
	var s_anoPens = d2.substr(0,4)
	var s_anoNasc = d1.substr(0,4)
		
	var s_mesPens = d2.substr(5,2)
	var s_mesNasc = d1.substr(5,2)
	
	var zeroPos = s_mesNasc.indexOf("0")
	if (zeroPos == 0){s_mesNasc=s_mesNasc.substr(1)}
	
	var s_mesesAnoNasc = (12 - parseInt(s_mesNasc))
		
	var s_anoNascSeg = parseInt(s_anoNasc) 
	var s_anoPens = parseInt(s_anoPens)
	
	s_mesPens = parseInt(s_mesPens)
	
	var s_mesesAnoPens = s_mesPens
	var s_anosInteiros = s_anoPens - s_anoNascSeg
	var s_mesesTotais = parseInt(s_mesesAnoNasc) + parseInt(s_mesesAnoPens)

	s_anoDecimal = s_mesesTotais / 12
	s_anoDecimal = preparNumToCalc(formatNum(s_anoDecimal,2))
		
	s_anosInteiros = s_anosInteiros + parseFloat(s_anoDecimal)

	s_idadeAnosInt = parseInt(s_anosInteiros)
	s_idadeAnosDec = s_anosInteiros - s_idadeAnosInt
	s_idade = s_idadeAnosInt
	if (s_idadeAnosDec >= 0.5){ s_idade = (s_idade + 0.5)}
	if (mod == ""){s_idade = s_anosInteiros}

	var s_out=s_idade
	return s_out;
}


function CheckIFPageReload(){
	timerID=setInterval("batDisplayAgeOnReload()", 300);
}


function batDisplayAgeOnReload(){
	check12IASvURM();//implementado em 2008-04-14 'Back vs Forward' abertura remunerções anuais
	if (document.getElementById("cga_dataNasc")!=null){
		var s_dt_nasc = document.getElementById("cga_dataNasc").value
		if (s_dt_nasc != ""){
			var s_idade = getIdadeAquApos(s_dt_nasc,'2005-12-31',"")
			var str_idade = formataIdadeExt(s_idade,"id")
			document.getElementById("ti2005").innerHTML= "<SMALL>&nbsp;&nbsp;("+ str_idade +" de idade em 2005-12-31)</SMALL>"
			document.getElementById("hdt_nascimento").value=s_dt_nasc;
			checkDataToS1();
			s_idadeNoFim2005 = getIdade(s_dt_nasc,'2005-12-31')
		}
		clearInterval(timerID);
		timerID=null;
	}
	
}


function mngCheckBoxs(o){
	
	var o_name = o.name
	var s_html_cnp = "<STRIKE>"+ acronimoCNP +"</STRIKE>"
	var s_html_eee = "<STRIKE>"+ acronimoEEE +"</STRIKE>:"
	
	var s_html_pcnp1="<LABEL for='pensao_cnp'>Pensão&nbsp;"+ acronimoCNP +"&nbsp;(&euro;):</LABEL><INPUT TYPE=text ID=pensao_cnp NAME=pensao_cnp"
	var s_html_pcnp2="tabindex=7 STYLE='width:6em;text-align:right' MAXLENGTH=8 VALUE=''"
		s_html_pcnp2+=" onKeyPress='return checkNumDot(event,5,2);'"
		s_html_pcnp2+=" onkeyup=clearObjQuadroeMsg();"
		s_html_pcnp2+=" onFocus=this.className='onFocus'"
		s_html_pcnp2+=" onSelect=chkEleSelect(this);"
		s_html_pcnp2+=" onBlur=this.className='onBlur';formatValorRMAA2005(this,2)>"
	var s_disabled=" "

	document.getElementById("sp_cnp").innerHTML = s_html_pcnp1 + s_disabled + s_html_pcnp2;
		
	if (o_name == "cnp"){
		document.getElementById("eee").checked = false;
		document.getElementById("lbl_eee").innerHTML = s_html_eee;
		if(document.getElementById(o_name).checked){document.getElementById("lbl_cnp").innerHTML = acronimoCNP;}
		if(!document.getElementById(o_name).checked){document.getElementById("lbl_cnp").innerHTML = s_html_cnp;}
	}else{
		document.getElementById("cnp").checked = false;
		document.getElementById("lbl_cnp").innerHTML = s_html_cnp;
		if(document.getElementById(o_name).checked){
			document.getElementById("lbl_eee").innerHTML = acronimoEEE+":";
			//document.getElementById("lbl_eee").innerHTML = "EEE+CH:";
			document.getElementById("sp_cnp").innerHTML = "&nbsp;";
		}
		if(!document.getElementById(o_name).checked){document.getElementById("lbl_eee").innerHTML = s_html_eee;}
	}

	if(!document.getElementById("cnp").checked && !document.getElementById("eee").checked){
		document.getElementById("sp_cnp").innerHTML = "";
		
	}

}

function getTempoCNP(){
	var s_cnp_anos = document.getElementById("cnp_anos").value;
	var s_cnp_meses= document.getElementById("cnp_meses").value;
	if (s_cnp_anos==""){s_cnp_anos=0;}
	if (s_cnp_meses==""){s_cnp_meses=0;}
	var cnp_tempo = parseInt(s_cnp_anos) + parseFloat(s_cnp_meses/12)
	if (cnp_tempo > 0){
		if (document.getElementById("cnp").checked){
			if (cnp_tempo < 1){cnp_tempo = 0;}
		}else{
			if (!document.getElementById("eee").checked){cnp_tempo = 0;}
		}
	}
	return cnp_tempo;
}

function getTipoPensao(){
	var o_name = "";
	var o_tempo_cnp = getTempoCNP()
	if (document.getElementById("cnp").checked){
		if (parseFloat(o_tempo_cnp) >= 1){o_name="unificada"} //um ano
	}
	if (document.getElementById("eee").checked){
		if (parseFloat(o_tempo_cnp) > 0) {o_name="eee"}
	}
	return o_name;
}

function getPensaoCNP(){
	var s_pensao_cnp = 0;
	if (document.getElementById("pensao_cnp")!= null){
		s_pensao_cnp = document.getElementById("pensao_cnp").value;
		if (s_pensao_cnp == ""){s_pensao_cnp = 0}
	}
	return s_pensao_cnp;
}

function checkInputsCNP(){
	var s_return ="";
	var s_tipoPensao= "";
	var s_tempoCNP = "";
	var s_pensaoCNP = getPensaoCNP();
	
	var s_cnp_anos = document.getElementById("cnp_anos").value;
	var s_cnp_meses= document.getElementById("cnp_meses").value;
	if (s_cnp_anos==""){s_cnp_anos=0;}
	if (s_cnp_meses==""){s_cnp_meses=0;}
	s_tempoCNP = parseInt(s_cnp_anos) + parseFloat(s_cnp_meses/12)
	
	if (document.getElementById("cnp").checked){s_tipoPensao = "unificada"}
	if (document.getElementById("eee").checked){s_tipoPensao = "eee"}
	
	s_pensaoCNP = parseFloat(preparNumToCalc(s_pensaoCNP));
	
	if (s_tipoPensao == "unificada"){
		if (parseFloat(s_tempoCNP)>=1){
			if (s_pensaoCNP == 0){
				if (checkTempoCGA5anos()>= 5){s_return="pensao_cnp;"+erro8;}
			}
		}else{
			if (parseFloat(s_tempoCNP)==0){
				s_return="cnp_anos;"+erro12;
			}else{
				s_return="cnp_anos;"+erro9;
			}
		}
	}
	
	if (s_tipoPensao == "eee"){
		if (parseFloat(s_tempoCNP)==0){s_return="cnp_anos;"+erro11;}
	}
	
	if (s_tipoPensao == ""){
		
		if(parseFloat(s_tempoCNP)>=1){
			if(s_pensaoCNP > 0){
				s_return="cnp;"+erro10;
			}else{
				s_return="cnp;"+erro10;
			}
		}else{
			if(parseFloat(s_tempoCNP)>0){s_return="eee;"+erro10;}
		}
	}
	return s_return;
}

function checkTempoCGA5anos(){
	var s_return=0;
	s_allTimes = getAllTimes();
	a_allTimes = s_allTimes.split(";")
	tempoCGA = (a_allTimes[0]*1)+(a_allTimes[1]*1)
	tempoCGA = preparNumToCalc(formatNum(tempoCGA,2))
	if (tempoCGA > 0){s_return = tempoCGA}
	return s_return;
}


function calculaParcela2TxVariavel(rr, aCalc){
	//smn significa IAS
	var smn=0; var x_smn1=0; var x_smn2=0;
	var p1=0; var p2=0; var p3=0; var p4=0; var p5=0; var pFinal=0;
	var anos = aCalc
	smn = projectaSMNanoApos();
	
	x_smn1 = (1.1 * smn)	
	if (rr <= x_smn1){p1 = rr * (anos * 0.023)}
	
	x_smn1 = (1.1 * smn)
	x_smn2 = (2 * smn)
	if ((rr > x_smn1) && (rr <= x_smn2)) {
		p1 = (1.1 * smn) * (anos * 0.023)
		p2 = (rr-(1.1 * smn)) * (anos * 0.0225)
	}
	
	x_smn1 = (2 * smn)
	x_smn2 = (4 * smn)
	if ((rr > x_smn1) && (rr <= x_smn2)) {
		p1 = (1.1 * smn) * (anos * 0.023)
		p2 = (0.9 * smn) * (anos * 0.0225)
		p3 = (rr-(2 * smn)) * (anos * 0.022)
	}
	
	x_smn1 = (4 * smn)
	x_smn2 = (8 * smn)
	if ((rr > x_smn1) && (rr <= x_smn2)) {
		p1 = (1.1 * smn) * (anos * 0.023)
		p2 = (0.9 * smn) * (anos * 0.0225)
		p3 = (2 * smn) * (anos * 0.022)
		p4 = (rr-(4 * smn)) * (anos * 0.021)
	}

	x_smn1 = (8 * smn)
	if (rr > x_smn1)  {
		p1 = (1.1 * smn) * (anos * 0.023)
		p2 = (0.9 * smn) * (anos * 0.0225)
		p3 = (2 * smn) * (anos * 0.022)
		p4 = (4 * smn) * (anos * 0.021)
		p5 = (rr-(8 * smn)) * (anos * 0.02)
	}
	pFinal = p1 + p2 + p3 + p4 + p5;
	return pFinal;

}



function projectaSMNanoApos(){
	var na_apos2005 = document.getElementById("cga_anos_apos2005").value
	var nm_apos2005 = document.getElementById("cga_meses_apos2005").value
	var incr_anual = 0;
	if (document.getElementById("perc_incr")!=null){incr_anual = document.getElementById("perc_incr").value;}

	na_apos2005 = parseInt(na_apos2005)
	if(isNaN(na_apos2005)){na_apos2005=0}

	nm_apos2005 = parseInt(nm_apos2005)
	if(isNaN(nm_apos2005)){nm_apos2005=0}

	incr_anual = parseFloat(preparNumToCalc(incr_anual))
	if(isNaN(incr_anual)){incr_anual=0}

	var smn=0;
	var a_anoSMN="";
	var s_anoSMN="";
	var s_dif = 0;
		
	if(document.getElementById("hsmn") != null){
		s_anoSMN = document.getElementById("hsmn").value
		a_anoSMN = s_anoSMN.split(";")
		ano = a_anoSMN[0]
		smn = a_anoSMN[1]
	}

	s_dif = (ano - s_ano1apos)
	anos = na_apos2005 - s_dif
	if (anos < 0) {anos = 0;}

	incr_anual = parseFloat((incr_anual/100))
	smn = parseFloat(preparNumToCalc(smn))
	for (i=0; i<anos; i++){
		smn+= (smn * incr_anual)		
	}

	return smn;

}


function putSMNcurrApos(){
	var class_tdsmn=""
	var obj_smn="<SPAN><TABLE cellspacing=0 ALIGN=center>"
	obj_smn+="<TR><TD BORDER-WIDTH: 1px 1px 1px 1px' COLSPAN=2 TITLE='Indexante dos apoios sociais' ALIGN=center>IAS (&euro;)</TD></TR>"
	//obj_smn+="<TR><TD BORDER-WIDTH: 1px 1px 1px 1px'>Ano</TD><TD ALIGN=CENTER BORDER-WIDTH: 1px 1px 1px 1px'>(&euro;)</TD></TR>"
		
	if(document.getElementById("hsmn") != null){
		s_anoSMN = document.getElementById("hsmn").value
		a_anoSMN = s_anoSMN.split(";")
		anoSMN = a_anoSMN[0]
		valSMN = a_anoSMN[1]
	}

	var o_name="tb_smn"
	var ano_aposentacao = defineAnoAposentacao();
	var anoPSMN = ano_aposentacao

	if(document.getElementById(o_name)!=null){

		if (parseInt(ano_aposentacao) >= document.getElementById("ano_currente").value){
			valpSMN = projectaSMNanoApos();
			valpSMN = formatNum(valpSMN,2)
			obj_smn+="<TR><TD STYLE='BORDER-WIDTH: 0px 1px 1px 1px;' "+class_tdsmn+"><LABEL for="+anoSMN+">"+anoSMN+":</LABEL></TD><TD STYLE='BORDER-WIDTH: 0px 1px 1px 0px;' ALIGN=RIGHT "+class_tdsmn+">"+valSMN+"</TD></TR>"
			obj_smn+="<TR><TD STYLE='BORDER-WIDTH: 0px 1px 1px 1px;' TITLE='Ano Aposentação'"+class_tdsmn+"><LABEL for="+anoPSMN+">"+anoPSMN+":</LABEL></TD><TD STYLE='BORDER-WIDTH: 0px 1px 1px 0px;' ALIGN=RIGHT "+class_tdsmn+" TITLE='Valor estimado com base no aumento anual indicado'>"+valpSMN+"</TD></TR>"
			obj_smn+="</TABLE></SPAN>"
			if(document.getElementById("tb_smn")!=null){document.getElementById("tb_smn").innerHTML=obj_smn;}
		}else{
			if(document.getElementById("tb_smn")!=null){document.getElementById("tb_smn").innerHTML="";}
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////

function calculaParcela2Apos2015(rr, aCalc){
	var smn=0; var x_smn1=0; var x_smn2=0;
	var p1=0; var p2=0; var p3=0; var p4=0; var p5=0; var pFinal=0;
	var anos = aCalc
	smn = projectaSMNanoApos();
	
	x_smn1 = (1.1 * smn)	
	if (rr <= x_smn1){p1 = rr * (anos * 0.023)}
	
	x_smn1 = (1.1 * smn)
	x_smn2 = (2 * smn)
	if ((rr > x_smn1) && (rr <= x_smn2)) {
		p1 = (1.1 * smn) * (anos * 0.023)
		p2 = (rr-(1.1 * smn)) * (anos * 0.0225)
	}
	
	x_smn1 = (2 * smn)
	x_smn2 = (4 * smn)
	if ((rr > x_smn1) && (rr <= x_smn2)) {
		p1 = (1.1 * smn) * (anos * 0.023)
		p2 = (0.9 * smn) * (anos * 0.0225)
		p3 = (rr-(2 * smn)) * (anos * 0.022)
	}
	
	x_smn1 = (4 * smn)
	x_smn2 = (8 * smn)
	if ((rr > x_smn1) && (rr <= x_smn2)) {
		p1 = (1.1 * smn) * (anos * 0.023)
		p2 = (0.9 * smn) * (anos * 0.0225)
		p3 = (2 * smn) * (anos * 0.022)
		p4 = (rr-(4 * smn)) * (anos * 0.021)
	}

	x_smn1 = (8 * smn)
	if (rr > x_smn1)  {
		p1 = (1.1 * smn) * (anos * 0.023)
		p2 = (0.9 * smn) * (anos * 0.0225)
		p3 = (2 * smn) * (anos * 0.022)
		p4 = (4 * smn) * (anos * 0.021)
		p5 = (rr-(8 * smn)) * (anos * 0.02)
	}

	pFinal = p1 + p2 + p3 + p4 + p5;
	return pFinal;

}

//-->
