<!--
// @VERSAO 1.0 2009-05-25
// @AUTOR  DAC 
// @DESC   Mapeamento e cálculo de pensões 1º e 2º regime


function checkRegime (ed){
	var o_nome = ed.name
	var o_valor= ed.value
	
	
	if (o_valor == "0"){document.getElementById("f1").action = "simuladorAp_Inicio.asp"}
	if (o_valor == "1"){document.getElementById("f1").action = "simuladorAp_RAntigo.asp"}
	if (o_valor == "2"){document.getElementById("f1").action = "simuladorAp_RNovo.asp"}
	if (o_valor == "3"){document.getElementById("f1").action = "simuladorAp_RNovo.asp"}
	document.getElementById("f1").submit();
	
}


function executarCalculo(){
	var riCGA = document.getElementById("cga_Inscr").value
	var dt_nasc = document.getElementById("cga_dataNasc").value
	var FS = document.getElementById("hFS").value
	var IAS = document.getElementById("hIAS").value
	var incapaz ="n"
	if(document.getElementById("incapaz").checked){incapaz = "s"}
	
	var ts_ap		= getTempoServico_NR('0','0','am')
	var ts_2001		= getTempoServico_NR('0','1','am')
	var ts_2005		= getTempoServico_NR('0','3','am')
	var ts_2007		= getTempoServico_NR('0','7','am')
	
	ts_ap	= ts_ap.replace(",", ".")
	ts_2001 = ts_2001.replace(",", ".")
	ts_2005 = ts_2005.replace(",", ".")
	ts_2007 = ts_2007.replace(",", ".")
	
	var ts_cga_ap		= getTempoServico_NR('1','0','am')
	var ts_cga_ate2001	= getTempoServico_NR('1','1','am')
	var ts_cga_apos2001	= getTempoServico_NR('1','2','am')
	var ts_cga_ate2005  = getTempoServico_NR('1','3','am')
	var ts_cga_apos2005 = getTempoServico_NR('1','4','am')
	var ts_cga_ate2006	= getTempoServico_NR('1','5','am')
	var ts_cga_apos2006 = getTempoServico_NR('1','6','am')
	
	ts_cga_ap		= ts_cga_ap.replace(",", ".")
	ts_cga_ate2001	= ts_cga_ate2001.replace(",", ".")
	ts_cga_ate2005	= ts_cga_ate2005.replace(",", ".")
	ts_cga_ate2006	= ts_cga_ate2006.replace(",", ".")
	ts_cga_apos2001	= ts_cga_apos2001.replace(",", ".")
	ts_cga_apos2005	= ts_cga_apos2005.replace(",", ".")
	ts_cga_apos2006	= ts_cga_apos2006.replace(",", ".")
	
	var id_2005 = getIdade(dt_nasc, "2005-12-31")
	var id_2007 = getIdade(dt_nasc, "2007-12-31")
	
	var dt_ap	=	getDataAposentacao_NR()
	var ano_ap	=	dt_ap.substr(0,4)
	var mes_ap	=	dt_ap.substr(5,2)
	if (parseInt(mes_ap,10)==0){
		ano_ap = ano_ap-1
		dt_ap = ano_ap +"-12"
	}
	var id_ap   =	getIdadeAquApos(dt_nasc, dt_ap,"")
			
	
	var lookforErrors=""
	lookforErrors = checkAllInputs_NR(riCGA, id_ap, ts_cga_ate2005, ts_ap)
	if (lookforErrors != ""){
		a_lookforErrors = lookforErrors.split(";")
		o_erro=a_lookforErrors
		if (a_lookforErrors.length > 1){
			o_name = a_lookforErrors[0]
			o_erro = a_lookforErrors[1]
		}
		manageErrorMsg(o_name,o_erro);
		return 0;
	}
	
	
	var pCNP =0
	var pIdeal_a= 0
	var pIdeal = 0
	var ts_AD =ts_cga_ap
	var tipoPensao = getTipoPensao()
	
	if ((tipoPensao == "unificada")||(tipoPensao == "eee")){ts_AD = ts_ap}
	
	////// Verificar enquadramento de incapacidade ///////////////////////////
	var idTC = get_pTC_ADC(ano_ap,'1')
	var tsTC = get_pTC_ADC(ano_ap,'2')
	var tcTC = get_pTC_ADC(ano_ap,'3')
	str_return = selectRegime(riCGA, ts_2005, id_2005, ts_2007, id_2007, ts_AD, id_ap, ano_ap, incapaz, dt_nasc, dt_ap)
	str_qmr = str_return.split(";")
	q = str_qmr[0]
	m = str_qmr[1]
	f = str_qmr[2]
	r = str_qmr[3]
	if (f=="vna"){
		checkIncapacidade("lock")
		incapaz="n"
	}
	if (f=="i"){//se fundamento em incapacidade
		if (id_ap < idTC){
			q_penalizacao(q, ts_2005, ts_ap, id_ap, tcTC, idTC, ano_ap, dt_nasc, dt_ap);
			if (gPenalizacao == ""){
				checkIncapacidade("lock")
				incapaz="n"
			}
			gRunPenalizacao=""
			gPenalizacao=""
		}
	}
	
	////// Fim de verificação do enquadramento de incapacidade ///////////////////////////
	
	str_return = selectRegime(riCGA, ts_2005, id_2005, ts_2007, id_2007, ts_AD, id_ap, ano_ap, incapaz, dt_nasc, dt_ap)
	str_qmr = str_return.split(";")
	
	q = str_qmr[0]
	m = str_qmr[1]
	f = str_qmr[2]
	r = str_qmr[3]
	if (id_ap == 70){//-1m_ts no limite de idade
		if ((ts_AD >= 5)||(ts_AD < 15)){ts_ap = preparaTSparaLimiteIdade(ts_ap, dt_nasc, dt_ap)}
	}
	
	var fAposentacao = f
	var ap1vez_html = ""
	
	if (ts_2005 < 36){
		if (id_ap < 70){
			ap1vez_html = ""
			var apACP = "» Aposentar-se"
			var apASP = "» Uma pensão sem penalizações"
			var apVCC = "» Uma pensão completa sem penalizações"
			
			gDataAp1vez1 = getDataQuando1vez(ts_2005, id_ap, ts_ap, dt_nasc, dt_ap, "1")
			gDataAp1vez2 = getDataQuando1vez(ts_2005, id_ap, ts_ap, dt_nasc, dt_ap, "2")
			gDataAp1vez3 = getDataQuando1vez(ts_2005, id_ap, ts_ap, dt_nasc, dt_ap, "3")
			
			ap1vez_html = "<TABLE WIDTH='100%' cellspacing=0 ALIGN=CENTER STYLE=border-collapse:collapse;border:1px>"
			if (ts_AD >= 15){gLimiteIdade = ""}
			if (gLimiteIdade == "ok"){
				ap1vez_html+=	"<TR><TH COLSPAN=2> O subscritor aposenta-se obrigatoriamente</TH><TH> em </TH></TR>"
				if (gDataAp1vez1 != "0"){ap1vez_html+=	"<TR><TD COLSPAN=2>&nbsp</TD><TD ALIGN=CENTER>" + gDataAp1vez1 +"</TD></TR>"}
			}else{			
				ap1vez_html+=	"<TR><TH COLSPAN=2> O subscritor tem direito a </TH><TH>A partir de</TH></TR>"
				if (gDataAp1vez1 != "0"){ap1vez_html+=	"<TR><TD COLSPAN=2>" + apACP +"</TD><TD ALIGN=CENTER>" + gDataAp1vez1 +"</TD></TR>"}
				if (gDataAp1vez2 != "0"){ap1vez_html+=	"<TR><TD COLSPAN=2>" + apASP +"</TD><TD ALIGN=CENTER>" + gDataAp1vez2 +"</TD></TR>"}
				if (gDataAp1vez3 != "0"){ap1vez_html+=	"<TR><TD COLSPAN=2>" + apVCC +"</TD><TD ALIGN=CENTER>" + gDataAp1vez3 +"</TD></TR>"}
			}
			ap1vez_html+="</TABLE>"
			
			gDataAp1vez1	=""
			gDataAp1vez2	=""
			gDataAp1vez3	=""
			gLimiteIdade	=""
		}
	}
	
	if ((q == 0)&&(r == "0")){
		if (gIdadeMsg5530!=""){
			id_ap = gIdadeMsg5530
			gIdadeMsg5530=""
		}
		
		if (gTserv55anos!=""){
			id_ap = 55
			ts_AD = gTserv55anos
			gTserv55anos=""
		}
		document.getElementById("ap1vez").innerHTML = ap1vez_html;
		ret_msg = writeMsg(ano_ap, q, m, f, r, ts_AD, id_ap)
		document.getElementById("tx2").innerHTML =  ret_msg
		return 0;
	}
	
	if (f=="vna"){f="Aposentação voluntária não antecipada"}
	var sFundamento=""
	if (f == "a"){
		sFundamento = f
		f="Aposentação antecipada"
	}
	if (f == "i"){f="Aposentação por incapacidade"}
	if (f =="li"){f="Aposentação por limite de idade"}
	
	
	var R = document.getElementById("cga_venc_ult_mes").value; //última remuneração mensal
	var RR = "" //remuneração de referência
	var RRvIAS = ""
	var P=0, Pa=0, N=0, P1=0, P2=0, C=0, C1=0, C2=0;
	var T1=0, T2=0
	if (id_ap == 70){//-1m_ts no limite de idade
		if ((ts_AD >= 5)||(ts_AD < 15)){ts_cga_ap = preparaTSparaLimiteIdade(ts_cga_ap, dt_nasc, dt_ap)}
	}
	
	C = ts_cga_ap;
	N = C;
	R = R.replace(",", ".")
	R = R.replace(" ", "")
	
	if ((r == 8)||(r == 9)){
		C1 = ts_cga_ate2001
		C2 = ts_cga_apos2001
	}
	
	if ((r == 10)||(r == 11)){
		C1 = ts_cga_ate2006
		C2 = ts_cga_apos2006
	}
		
	/////////////////////// Q U A D R O S ///////////////////////////
	var anoTC= ano_ap
		
	var idTC = get_pTC_ADC(ano_ap,'1')
	var tsTC = get_pTC_ADC(ano_ap,'2')
	var tcTC = get_pTC_ADC(ano_ap,'3')
	
	var q_sd ="", q_pe ="", q_ma ="", q_rc ="", q_bo =""
		
	var nBonificacoes=0
	nB_dt1vez = getNBonificacoes(q, dt_nasc, ts_2005, id_2005, ano_ap, dt_ap)
		
		
	///////////////////////// Aplicação (versão antiga) inscrições até 1993-08-31 ///////////////////////////////
	if (riCGA == "1"){
		
		var T2 = 0;					//tempo de servico necessário para P2 (após 2005-12-31)
		var T1U = 0
		var v12IAS = 0
		var ts_CNP_nd = getTemposCNP_NR()/12
		var ts_CNP_am = parseInt(getTemposCNP_NR()/12,10)+ "." +(getTemposCNP_NR()%12)
		var ts_cga_ate2005_nd  = getTempoServico_NR('1','3','m')/12
		var ts_cga_apos2005_nd = getTempoServico_NR('1','4','m')/12
		//if (fAposentacao == "li"){ts_cga_apos2005_nd = ts_cga_apos2005_nd}
		var tsTC_am = tcTC
		
		T1_nd = ts_cga_ate2005_nd
		T2_nd = ts_cga_apos2005_nd // não necess...
		
		T1_am = ts_cga_ate2005
		T2_am = ts_cga_apos2005 // não necess...
		T1_amPa = ts_cga_ate2005
	
		T1 = T1_nd
		T1U= T1_nd
		T1U_am = T1_am
		C2 = ts_cga_apos2005;	//tempo de servico total (após 2005-12-31)
		C = tcTC				//tempo de servico Legal(tabela de convergência)
				
		if (tcTC > parseInt(tcTC,10)){tsTC_am = parseInt(tcTC,10)+".6"}
		T2 = get_T2(T1_am, tsTC_am)
		
		if ((tipoPensao == "unificada")||(tipoPensao == "eee")){// verificar quando "eee"
			T1U = T1_nd + ts_CNP_nd
			T1U_am = soma2_tsAM(T1_am, ts_CNP_am)
			if (ts_2005 >=36){
				if (ts_CNP_nd >= ts_cga_apos2005_nd){//muito importante (adiciona o tempo ts_cga_apos2005 ao ts_ate_2005 )
					T1_nd = parseFloat(T1_nd) + parseFloat(ts_cga_apos2005_nd)
					T1_amPa = soma2_tsAM(T1_am, ts_cga_apos2005)
				}else{ 
					if (ts_cga_apos2005_nd > 0){
						T1_nd = parseFloat(T1_nd) + parseFloat(ts_CNP_nd)
						T1_amPa = soma2_tsAM(T1_am, ts_CNP_am)
					}
				}
			}
		}
		
		if (tipoPensao == "eee"){
			if (ts_CNP_nd < 1){
				T1 = ts_2005	
				T1_nd = parseInt(T1,10) + (get_tsSoMeses(T1)/12)//transforma em numero decimal
				T2 = get_T2(ts_2005, tsTC_am)
			}
		}
		//if (parseFloat(T2) > parseFloat(C2)){T2 = C2}
		
		var xT2 = (parseInt(T2,10)*12) + parseInt(get_tsSoMeses(T2),10)
		var xC2 = (parseInt(C2,10)*12) + parseInt(get_tsSoMeses(C2),10)
		
		if (parseInt(xT2,10) > parseInt(xC2,10)){T2 = C2}	
		//alert(T2 +"  "+ C2)
		
		
		if ((r == "1")||(r == "4")){
			
			if (parseFloat(T1_nd) > 36){T1_nd = 36}
			Pa = ((parseFloat(R) * 0.9) * T1_nd / 36);
			pIdeal_a = ((parseFloat(R) * 0.9) * 36 / 36);
			if (r == "4"){
				RR = get_RR(ano_ap, T2, C2, r, RRvIAS, "2")
				if (parseFloat(T1) > C){T1 = C}				
				P1 = ((parseFloat(R) * 0.9) * T1 / C);
				
				P2 = calculaParcela_AR(RR, T2, ano_ap, r);
				P = P1 + P2	
			}
		}	
						
		if (r == "2"){
			if (parseFloat(T1) > parseFloat(C)){T1 = C} 
			RR = get_RR(ano_ap, T2, C2, r, RRvIAS, "2")
			P1 = ((parseFloat(R) * 0.9) * T1 / C);
			
			P2 = calculaParcela_AR(RR, T2, ano_ap, r);
			P = P1 + P2	
		}
				
		gLim12IAS = ""	
		if (r == "3"){//tem FS
			RRvIAS = "ok"
			v12IAS = 12 * IAS
			var R1 = R * 0.9	
			var T2_IAS = parseFloat(C2) + 13 // 13 são os anos de RR desde 1993 até 2005
			var C2_IAS = parseFloat(C2) + 13 // 13 são os anos de RR desde 1993 até 2005
			var RR_IAS = get_RR(ano_ap, T2_IAS, C2_IAS, r, RRvIAS, "2")
			if (RR_IAS < v12IAS){
				if (R1 > v12IAS){
					R1 = v12IAS
					gLim12IAS = "ok"
				}
			}
			//alert(" regime 3 "+ano_ap+", "+T2+", "+C2+", "+r)
			RR = get_RR(ano_ap, T2, C2, r, "", "2")
			P1 = (R1 * T1 / C);
			
			//var tsd_P2 = C - T1 
			//T2 = tempoServicoCalculoP2(tsd_P2, T2)
			P2 = calculaParcela_AR(RR, T2, ano_ap, r);
			P = (P1 + P2) * FS
		}
		
		if (tipoPensao == "unificada"){
			pCNP= getPensaoCNP()
			pCNP= preparNumToCalc(formatNum(pCNP,2))
			T2U = get_T2(T1U_am, tsTC_am)
			if (T1U > tcTC){
				T1U = tcTC
				T2U = 0
			}
			pIdeal = getPensaoIdeal(R, T1U, ts_cga_apos2005, tcTC, T2U, ano_ap, r, "2")
		}
		if (((ts_2005 >= 36)||(ts_2007 >= 37)) ||((ts_2007 >= 36)&&(id_2007 >=61))) {q_sd = q_sDireitos(q, r, ts_2005, ts_2007, ts_ap, id_2005, incapaz );}
		
		
		q_ma = q_mAposentacao(riCGA, f, ano_ap, dt_ap, ts_ap, id_ap, tsTC, idTC, incapaz);
		
		if (incapaz == "n"){
			if (sFundamento== "a"){
				q_pe = q_penalizacao(q, ts_2005, ts_ap, id_ap, tcTC, idTC, ano_ap, dt_nasc, dt_ap);
			}
		}
		q_bo = q_bonificacao(nB_dt1vez, ts_ap, idTC, dt_ap);
		
		if (r == 1){T1 = T1_nd}
		var meses_T2 = get_tsSoMeses(T2)
		T2 = parseInt(T2,10)
		if (meses_T2 >=4){T2 = parseInt(T2,10)+1}
		if (r != 0){q_rc = q_rCalculo_inscAte1993(q, r, R, RR, T1, T2, C, P, P1, P2, Pa, FS, pIdeal, pIdeal_a, pCNP, tipoPensao, ano_ap);}
	}
	
///////////////////////////////////////////////////////////////////////////////////////////////////////
	
	if (riCGA != "1"){
		var rAplic =""
		var RR = 0, RRn= 0, RRa =0
		var P = 0, P1 = 0, P2 = 0
		var P1a = 0, P2n=0, PI1a = 0, PI2n=0
		var pCNP=0
				
		var RRan=0, RRno=0, Pan=0, PIan=0, Pno=0,	PIno=0, P=0, PI=0 
		var NanMin=""
		var NnoMin=""
		var N = ts_cga_ap
		var C1 = ts_cga_ate2006
		var C2 = ts_cga_apos2006
		var C3 = ts_cga_ate2001
		var C4 = ts_cga_apos2001
		var C = N
			
		if (tcTC > parseInt(tcTC,10)){tsTC_am = parseInt(tcTC,10)+".6"}
						
		ts_dNa = N
		ts_iNa = parseInt(N,10)
		ts_dNn = N
		ts_iNn = parseInt(N,10)
		
		// pensão unificada
		ts_dNu = ts_ap
		ts_iNu = parseInt(ts_dNu,10)
		
		//fim
		
		//////////////////////// SS Antigo ////////////////////////////
		if (get_tsSoMeses(ts_dNa) >= 4){ts_iNa+= 1}
		if (N > 10){ts_dNa = 10}
		if (ts_iNa < 15){
			ts_iNa = 15
			NanMin = "ok"
		}
		//RRa = get_RR(ano_ap, ts_dNa, '15', r, "")
		RRa = get_RR(ano_ap, ts_dNa, '15', r, "", "1")
		P1a = calculaPensao_NR(RRa, ts_iNa, ts_iNa, "SSantigo");
		RRan=RRa
		//////////////////////// SS Novo ////////////////////////////
		if (get_tsSoMeses(ts_dNn) >= 4){ts_iNn+= 1}
		if (ts_iNn < 15){
			ts_iNn = 15
			NnoMin="ok"
		}
		//RRn = get_RR(ano_ap, ts_dNn, '40', r, "")
		RRn = get_RR(ano_ap, ts_dNn, '40', r, "", "2")
		P2n = calculaPensao_NR(RRn, ts_iNn, ts_iNn, "SSnovo");
				
		
		
		if (tipoPensao == "unificada"){
			pCNP = getPensaoCNP()
			pCNP = preparNumToCalc(formatNum(pCNP,2))
			
			if (get_tsSoMeses(ts_dNu) >= 4){ts_iNu+= 1}
			//RR = get_RR(ano_ap, ts_dNa, '15', r, "");
			RR = get_RR(ano_ap, ts_dNa, '15', r, "", "1");
			PI1a = calculaPensao_NR(RR, ts_iNu, ts_iNa, "SSantigo");
			
			if (get_tsSoMeses(ts_dNu) >= 4){ts_iNu+= 1}
			//RR = get_RR(ano_ap, ts_dNn, '40', r, "");
			RR = get_RR(ano_ap, ts_dNn, '40', r, "", "2");
			PI2n = calculaPensao_NR(RR, ts_iNu, ts_iNn, "SSnovo");
		}
		
		if (get_tsSoMeses(N)>= 4){
			N = parseInt(N,10)+ 1
		}else{
			N = parseInt(N,10)
		}
		////////////////////////////////////////////////////////////////////////////////////////////////
		var ts_iP1 = parseInt(C1,10)//2006
		var ts_iP2 = parseInt(C2,10)//2006
		var ts_iP3 = parseInt(C3,10)//2001
		var ts_iP4 = parseInt(C4,10)//2001
		if (get_tsSoMeses(C1) >= 4){ts_iP1+= 1}
		if (get_tsSoMeses(C2) >= 4){ts_iP2+= 1}
		if (get_tsSoMeses(C3) >= 4){ts_iP3+= 1}
		if (get_tsSoMeses(C4) >= 4){ts_iP4+= 1}
		var ts_iC  = parseInt(ts_iP1,10) + parseInt(ts_iP2,10)
		var rAplic	= ""
		var tProp	= ""
		v12IAS = 12 * IAS
		
		if (ts_2005 >= 36){// Salvaguarda de Direitos 2005
			rAplic	= "pan"
			tProp	= "20012"
			ts_iC  = parseInt(ts_iP3,10) + parseInt(ts_iP4,10)
			P = ((P1a * ts_iP3) + (P2n * ts_iP4)) / ts_iC
			PI = ((PI1a * ts_iP3) + (PI2n * ts_iP4)) / ts_iC
			
			RRan	= RRa
			Pan		= P1a
			PIan	= PI1a
			
			RRno	= RRn
			Pno		= P2n
			PIno	= PI2n	
			if (ano_ap >= 2017){
				if (ts_cga_ate2001 < 5){//sem  prazo de garantia
					rAplic	= "pn"
					RRan	= 0
					Pan		= 0
					PIan	= 0
				}
			}
		}else{
			if ((ts_2007 >= 36)&&(id_2007 >= 61)||(ts_2007 >= 37)){//Salvaguarda de Direitos 2007
				rAplic	= "p"
				tProp	= "20067"
				ts_iC  = parseInt(ts_iP1,10) + parseInt(ts_iP2,10)//proporcional de 2006/2007
				P	= ((P1a * ts_iP1) + (P2n * ts_iP2)) / ts_iC
				PI	= ((PI1a * ts_iP1) + (PI2n * ts_iP2)) / ts_iC
				
				rAplic	= "pn"				
				RRno	= RRn
				Pno		= P2n
				PIno	= PI2n	
								
				if (ano_ap >= 2017){//proporcional de 2001/2002
					rAplic	= "pn"	//era p
					tProp	= "20012"
					ts_iC  = parseInt(ts_iP3,10) + parseInt(ts_iP4,10)
					P = ((P1a * ts_iP3) + (P2n * ts_iP4)) / ts_iC
					PI = ((PI1a * ts_iP3) + (PI2n * ts_iP4)) / ts_iC
					RRan	= 0
					Pan		= 0
					PIan	= 0
				}
			}
		}
		
		if (ts_2005 < 35){
			if (ano_ap >=2017){// proporcional 2001/2002
				tProp	= "20012"
				rAplic	= "pn" //era p
				r = 9 //regime de cálculo
				ts_iC	= parseInt(ts_iP3,10) + parseInt(ts_iP4,10)
				P		= ((P1a * ts_iP3) + (P2n * ts_iP4)) / ts_iC
				PI		= ((PI1a * ts_iP3) + (PI2n * ts_iP4)) / ts_iC
				if ((P1a > P2n) && (P2n > v12IAS)){P = P2n}	//P1a = P2n,	P = P2n , P1aInicial = P2n ,gLim12IAS = "ok"
				
				if ((P1a > P2n) && (P2n < v12IAS) && (P1a > v12IAS)){
					P1a		= v12IAS
					P		= ((P1a * ts_iP3) + (P2n * ts_iP4)) / ts_iC
					gLim12IAS = "ok"
				}
									
				///////// UNIFICADA ///////////////////		
				if ((PI1a > PI2n) && (PI2n > v12IAS)){PI = PI2n} //PI1a = PI2n,	PI = PI2n, PIaInicial = PI2n
				
				if ((PI1a > PI2n) && (PI2n < v12IAS) && (PI1a > v12IAS)){
					PI1a	= v12IAS
					PI		= ((PI1a * ts_iP3) + (PI2n * ts_iP4)) / ts_iC
				}
				////////////////////////////////////
			}
				
			if (ano_ap < 2017){// proporcional 2006/2007
				tProp	= "20067"
				rAplic	= "pn"
				//r = 11
				//if (ts_ap >= 46){
				rAplic	= "pn"
				r = 13
				//}
				ts_iC	= parseInt(ts_iP1,10) + parseInt(ts_iP2,10)
				P		= ((P1a * ts_iP1) + (P2n * ts_iP2)) / ts_iC
				PI		= ((PI1a * ts_iP1) + (PI2n * ts_iP2)) / ts_iC
						
				if ((P1a > P2n) && (P2n > v12IAS)){P = P2n} //P1a = P2n, P = P2n, P1aInicial = P2n, gLim12IAS = "ok"
				
				if ((P1a > P2n) && (P2n < v12IAS) && (P1a > v12IAS)){
					P1a		= v12IAS
					P		= ((P1a * ts_iP1) + (P2n * ts_iP2)) / ts_iC
					gLim12IAS = "ok"
				}
				
				///////// UNIFICADA ///////////////////		
				if ((PI1a > PI2n) && (PI2n > v12IAS)){PI = PI2n} //PI1a = PI2n,	PI = PI2n, PIaInicial = PI2n
				if ((PI1a > PI2n) && (PI2n < v12IAS) && (PI1a > v12IAS)){
					PI1a	= v12IAS
					PI		= ((PI1a * ts_iP1) + (PI2n * ts_iP2)) / ts_iC
				}
				////////////////////////////////////////////////////
			}
			RRno	= RRn
			Pno		= P2n
			PIno	= PI2n
				
			P	= P * FS
			PI	= PI * FS
			Pno = P2n * FS
			PIno= PI2n * FS
		}
		var ts_iPC1 = ts_iP1, ts_iPC2 = ts_iP2
		if (tProp == "20012"){
			ts_iPC1 = ts_iP3
			ts_iPC2 = ts_iP4
		}
		//////////////////////////////////////////REGIME 3 (De 2002-01-01 a 2005-12-31) //////////
		if (riCGA == "3"){
			rAplic	= "n"
			RRno = RRn
			Pno = P2n * FS
			PIno = PI2n * FS
			
			if ((ts_2005 >= 36)||((ts_2007 >= 36)&&(id_2007 >= 61)||(ts_2007 >= 37))){//Salvaguarda de Direitos 2005 e 2007
				RRno = RRn
				Pno = P2n
				PIno = PI2n			
			}
		}
		//////////////////////////////////////////FIM DE REGIME 3 (De 2002-01-01 a 2005-12-31) //////////
				
		var sd =""
		if ((ts_2005 >= 36)||((ts_2007 >= 36)&&(id_2007 >= 61)||(ts_2007 >= 37))){
			q_sd = q_sDireitos(q, r, ts_2005, ts_2007, ts_ap, id_2005, incapaz);
			sd = "ok"
		}
				
		q_ma = q_mAposentacao(riCGA, f, ano_ap, dt_ap, ts_ap, id_ap, tsTC, idTC, incapaz);
		
		if (incapaz == "n"){
			if (sFundamento== "a"){q_pe = q_penalizacao(q, ts_2005, ts_ap, id_ap, tcTC, idTC, ano_ap, dt_nasc, dt_ap);}
		}
			
		q_bo = q_bonificacao(nB_dt1vez, ts_ap, idTC, dt_ap);
						
		if (r != 0){q_rc = q_regCalculo(q, r, R, N, RRan, Pan, PIan, RRno, Pno, PIno, P, PI, P1a, P2n, ts_iPC1, ts_iPC2, ts_iC, FS,  pCNP, tipoPensao, ano_ap, rAplic, sd, tProp);}
		
	}
	
	document.getElementById("ap1vez").innerHTML = ap1vez_html;
	
	if (q == "g1"){
		/////////////////////////// Proporcional à minima ////////////////////////////////////
		q_rc = getQuadroProporcionalMinima(ts_cga_ap)
		str_html = "<TABLE WIDTH='100%' cellspacing=0 ALIGN=CENTER STYLE=border-collapse:collapse;border:1px>"
		if (q_rc !=""){	str_html+= "<TR><TD><BR>" + q_rc +"</TD></TR>"}
		str_html+="</TABLE>"
		document.getElementById("resposta").innerHTML = str_html;
	}else{
		if (q != "0"){
			if (q_rc !=""){	
				var arr_demo = q_rc.split("|")
			}
		
			str_title = "q=" +q+ ",m=" +m+ ",f=" +f+ ",r=" +r

			str_html = "<TABLE WIDTH='100%' CLASS=b0 STYLE = 'border-width:1px 0px 0px 0px;'>"// solid grey
			str_html+="<TR CLASS=noPrint><TD CLASS=b0><SMALL><SPAN ID=VerDemo><A class=tab1 href='javascript:abreFechaDemo();'>Abrir demonstração</A></SPAN></SMALL></TD></TR>"
			str_html+= "<TR><TD CLASS=b0 ALIGN=CENTER title ='"+ str_title +"'><SPAN class=subtitulo>Aposentação em "+formataAnoMes(dt_ap)+"</SPAN></TD></TR>"
			str_html+= "<TR ID=demo STYLE='display:none'>"
			str_html+= "<TD CLASS=b0>"
			
			str_html+= "<TABLE WIDTH='100%' cellspacing=0 ALIGN=CENTER STYLE=border-collapse:collapse;border:1px>"
			if (q_sd !=""){	str_html+= "<TR><TD><BR>" + q_sd +"</TD></TR>"}
			if (q_ma !=""){	str_html+= "<TR><TD><BR>" + q_ma +"</TD></TR>"}
			if (q_pe !=""){	str_html+= "<TR><TD><BR>" + q_pe +"</TD></TR>"}
			if (q_bo !=""){	str_html+= "<TR><TD><BR>" + q_bo +"</TD></TR>"}
			if (q_rc !=""){	str_html+= "<TR><TD><BR>" + arr_demo[0] +"</TD></TR>"}
			str_html+="</TABLE>"
			
			str_html+="</TD></TR>"
			str_html+="<TR><TD CLASS=b0 ALIGN=CENTER>" + arr_demo[1] +"</TD></TR>"
			str_html+="</TABLE>"
		}
		document.getElementById("resposta").innerHTML = str_html;
	}
	
	ret_msg = writeMsg(ano_ap, q, m, f, r, ts_AD, id_ap)
	document.getElementById("tx2").innerHTML =  ret_msg
	return 1;
}

function abreFechaDemo(){
	var sVerDemo = "<A class=tab1 href='javascript:abreFechaDemo();'>Abrir demonstração</A>"
	if (document.getElementById("demo")!=null){
		if (document.getElementById("demo").style.display==""){
			document.getElementById("demo").style.display="none"
			sVerDemo = "<A class=tab1 href='javascript:abreFechaDemo();'>Abrir demonstração</A>"
			document.getElementById("VerDemo").innerHTML = sVerDemo
		}else{
			document.getElementById("demo").style.display=""
			sVerDemo = "<A class=tab1 href='javascript:abreFechaDemo();'>Fechar demonstração</A>"
			document.getElementById("VerDemo").innerHTML = sVerDemo
		}
	}
}


function soma2_tsAM(ts1, ts2){
	var s_return=0
	var m_ts1 = get_tsSoMeses(ts1)
	var m_ts2 = get_tsSoMeses(ts2)
	var m_tot = parseInt(m_ts1,10) + parseInt(m_ts2,10)
	var a_tot = parseInt(ts1,10) + parseInt(ts2,10)
	if (m_tot >= 12){
		s_return = a_tot + parseInt(m_tot/12,10) + "."+ (m_tot%12)
	}else{
		s_return = a_tot + "."+ m_tot
	}
	return s_return;
}

function get_T2(ts1, ts2){
	var t1m = 0
	var t2m = 0
	var s_out=0
	t1m = get_tsSoMeses(ts1)
	t2m = get_tsSoMeses(ts2)
	t1m = parseInt(t1m,10) + (parseInt(ts1,10)*12)
	t2m = parseInt(t2m,10) + (parseInt(ts2,10)*12)
	s_out = t2m - t1m
	if (s_out < 0){s_out = 0}
	if (s_out > 0){s_out = parseInt(s_out/12,10)+"."+(s_out%12)}
	
	return s_out;
}

function tempoServicoCalculoP2(tsd_P2, T2){
	if (tsd_P2 < 0){return 0;}
	var tsi_P2 = parseInt(tsd_P2, 10)
	var tst_T2 = parseInt(T2, 10)
	var tsc_P2 = 0
	
	if (tsd_P2 - parseInt(tsd_P2,10) > 0.25){tsi_P2+=1}
	tst_T2 = parseInt(T2,10)
	if (get_tsSoMeses(T2) > 3){tst_T2+=1}
	ts_cP2 = tst_T2
	if (tst_T2 > tsi_P2){ts_cP2=tsi_P2}
	return ts_cP2;
}


function calculaParcela_AR(RR, tServ, ano_ap, r){
	//alert(RR+ ", "+tServ+ ", "+ano_ap+ ", "+r)
	var ts_pCalc = parseInt(tServ,10)
	var MUAC = get_tsSoMeses(tServ)
	var P=0
	if (tServ >= 0.4){
		if (parseInt(MUAC,10) >=4){ts_pCalc = parseInt(ts_pCalc,10)+1}
		P = (RR * 0.02 * parseInt(ts_pCalc,10))
		if (ano_ap > 2015){P = calculaParcela2TxVariavel(RR, ts_pCalc)}
	}
	return P;
}

function calculaPensao_NR(RR, ts_calc, ts_cga, regime){
	var P=0
	if (parseInt(ts_calc,10)> 40){ts_calc = 40}
	P = (RR * 0.02 * ts_calc)
	if (regime == "SSnovo"){
		if (ts_cga > ts_TAFP){P = calculaParcela2TxVariavel(RR, ts_calc)}
	}
	return P;
}


function getPensaoIdeal(R, ts_2005, C2, tcTC, T2, ano_ap, r, anexoDLp){
	var PI1 = 0
	var PI2 = 0
	var PIdeal=0
	if (r == "1"){PI1 = ((parseFloat(R) * 0.9) * 36 / 36)}
	if ((r == "2")||(r == "3")||(r == "4")){
		if (parseFloat(ts_2005) > tcTC){ts_2005 = tcTC}
		PI1 = ((parseFloat(R) * 0.9) * parseFloat(ts_2005) / tcTC)
		if (T2 >= 0.4){
			RR = get_RR(ano_ap, T2, C2, r, "", anexoDLp);
			PI2 = calculaParcela_AR(RR, T2, ano_ap, r);
		}
	}
	PIdeal = parseFloat(PI1) + parseFloat(PI2)
	return PIdeal; 		
}


function getTemposCNP_NR(){
	var v_cnpAnos = document.getElementById("cnp_anos").value
	var v_cnpMeses= document.getElementById("cnp_meses").value
	
	if (v_cnpAnos ==""){v_cnpAnos = 0}
	if (v_cnpMeses ==""){v_cnpMeses = 0}
	var t_cnpTotal = (v_cnpAnos*12) + (v_cnpMeses*1)
	return t_cnpTotal 
}

function getTemposCGA_NR(p){
	
	var v_anosAte2005 = document.getElementById("cga_anos").value
	var v_mesesAte2005 = document.getElementById("cga_meses").value
	
	var v_anosApos2005 = document.getElementById("cga_anos_apos2005").value
	var v_mesesApos2005 = document.getElementById("cga_meses_apos2005").value
	
	if (v_anosAte2005 ==""){v_anosAte2005 = 0}
	if (v_mesesAte2005 ==""){v_mesesAte2005 = 0}
	if (v_mesesApos2005 ==""){v_mesesApos2005 = 0}
	if (v_anosApos2005 ==""){v_anosApos2005 = 0}
	
	var t_totalMeses=0
	t_mesesAte2005	= ((v_anosAte2005*12) + v_mesesAte2005*1)
	t_mesesApos2005 = ((v_anosApos2005*12)+ v_mesesApos2005*1)
	t_mesesTotal	= parseInt(t_mesesAte2005,10) + parseInt(t_mesesApos2005,10)
	t_mesesAte2001	= t_mesesAte2005 - (12*4)
	t_mesesApos2001	= t_mesesTotal - t_mesesAte2001
	t_mesesAte2006	= parseInt(t_mesesAte2005,10) + 12
	t_mesesApos2006	= t_mesesTotal - t_mesesAte2006
	t_mesesAte2007	= parseInt(t_mesesAte2005,10) + 24
	t_mesesApos2007	= t_mesesTotal - t_mesesAte2007
	
	if (p==0){t_totalMeses = t_mesesTotal}
	if (p==1){t_totalMeses = t_mesesAte2001}//ts_2001=ts_2005-4
	if (p==2){t_totalMeses = t_mesesApos2001}
	if (p==3){t_totalMeses = t_mesesAte2005}
	if (p==4){t_totalMeses = t_mesesApos2005}
	if (p==5){t_totalMeses = t_mesesAte2006}
	if (p==6){t_totalMeses = t_mesesApos2006}
	if (p==7){t_totalMeses = t_mesesAte2007}
	if (p==8){t_totalMeses = t_mesesApos2007}
		
	return t_totalMeses;
}

function getTempoServico_NR(tip, ref, ret){
	var tempoCNP = 0
	if (tip == "0"){tempoCNP = getTemposCNP_NR()}
		 
	var tempoCGA = getTemposCGA_NR(ref)
	
	var tempoTotal = (tempoCNP*1) + (tempoCGA*1)
	var t_totalAnos = parseInt(tempoTotal/12,10)
	var t_totalMeses= parseInt(tempoTotal%12,10)
	
	var tempoTotal_a = t_totalAnos 
	var tempoTotal_m = tempoTotal
	var tempoTotal_am= t_totalAnos +"," +t_totalMeses
	
	
	if (ret=="a"){str_return = tempoTotal_a}
	if (ret=="m"){str_return = tempoTotal_m}
	if (ret=="am"){str_return = tempoTotal_am}
	return str_return;
	
}


function get_RR(ano_ap, ts_T, ts_C, regime, RRvIAS, anexoDLp){
	// anoDeAposentação,tempoDeServiço,tempoDeServiço,regimeDeCalculo, remuneraçãoDeReferenciaParaValidar12IAS,anexo I ou II da Portaria n.º 554/2008			
	//if (RRvIAS == ""){alert("get_RR "+ano_ap+", "+ts_T+", "+ts_C+", "+regime+", "+RRvIAS)}
	var str_return =0
	var MUAS = parseInt(get_tsSoMeses(ts_C),10) //meses último ano de serviço se existirem
	var MUAC = parseInt(get_tsSoMeses(ts_T),10) //meses para cálculo se existirem
	var ts_pCalc = parseInt(ts_T,10)
	var ts_anos = parseInt(ts_C,10)
	
	var ts_necP2m = ts_pCalc * 12 + MUAC
	var ts_totP2m = ts_anos * 12 + MUAS
	var URAnual = 0 //2009-04-21
	var URAIsOn = "no" //2009-04-21
	
	if (MUAS >= 4){
		ts_anos = parseInt(ts_anos,10)+1
	}else{
		MUAS=0
	}
	if (MUAC >= 4){
		ts_pCalc= parseInt(ts_pCalc,10)+1
	}else{
		MUAC=0
	}
	
	var el_prefix = "cga_venc_"
	var ano_ini =1993
	var currVal = 0
	var rAnuais = ""
	var sum_of_rAnuais = 0
	var str_return = 0
	var rr=0
	var pv=""
	if (RRvIAS == "ok"){
		for (i=0; i < 13;i++){
			el_sufix = 1993+i;
			el_name = el_prefix + el_sufix;
			if (document.getElementById("ra"+el_sufix)!= null){
				if (document.getElementById("ra"+el_sufix).style.display==""){
					if (document.getElementById("td_coeficiente2_"+el_sufix)!= null){
						currVal = document.getElementById("td_valorizacao2_"+el_sufix).innerHTML
					}
					currVal = preparNumToCalc(currVal)
					rAnuais+=pv + currVal
					pv=";"
				}
			}
		}
	}
	
	for (i=0; i < s_max_lines;i++){
		el_sufix = parseInt(ano_ini,10)+i;
		el_name = el_prefix + el_sufix;
		if (document.getElementById("r"+el_sufix)!= null){
			if (document.getElementById("r"+el_sufix).style.display==""){
				if (anexoDLp == "2"){//Anexo II da Portaria n.º 554/2008 (n.º 2 do artigo 27 do DL n.º 187/2007)
					if (document.getElementById("td_coeficiente2_"+el_sufix)!= null){
						currVal = document.getElementById("td_valorizacao2_"+el_sufix).innerHTML
					}else{
						currVal = document.getElementById(el_name).value;
						currVal = formatNum(currVal,2)
					}
				}else{
					if (document.getElementById("td_coeficiente_"+el_sufix)!= null){
						currVal = document.getElementById("td_valorizacao_"+el_sufix).innerHTML
					}else{
						currVal = document.getElementById(el_name).value;
						currVal = formatNum(currVal,2)
					}
				}
				currVal = preparNumToCalc(currVal)
				rAnuais+=pv + currVal
				pv=";"
				if (MUAS > 0){URAnual = currVal} //2009-04-20
			}
		}
	}
		
	if (rAnuais != ""){ // "ts_pCalc" é o X numero de anos de remuneracoes que o regime determina, "ts_anos os melhores Y a considerar" .
		arr_rAnuais_spl = rAnuais.split(";")
		arr_rAnuais_rev = arr_rAnuais_spl.reverse()
		if ((regime == "5")||(regime == "9")||(regime == "11")||(regime == "13")){//SS Antigo
			arr_rAnuais_sli = arr_rAnuais_rev.slice(0, ts_anos)
			arr_rAnuais_sor = arr_rAnuais_sli.sort(function(a,b){
				return b - a;
			});
		}else{
			arr_rAnuais_sor = arr_rAnuais_rev.sort(function(a,b){
					return b - a;
			});
		}
		
		arr_rAnuais = arr_rAnuais_sor.slice(0, ts_pCalc)
		for (i=0; i<arr_rAnuais.length;i++){
			if (arr_rAnuais[i] == URAnual){
				URAIsOn = "ok"
				break;
			}
		}
							
		var arr_alerta = new Array()//só para testes
		
		var m_uas=1, m_uac=1
		for (i=0; i<arr_rAnuais.length;i++){
			//if ((regime == "2")||(regime == "4")){//alteração em 2008-06-19
			if ((regime == "2")||(regime == "3")||(regime == "4")){
				if (i == arr_rAnuais.length-1){
					if (ts_totP2m > ts_necP2m){//alteração em 2008-06-19
						if (MUAC > 0){
							m_uac = MUAC
							m_uas = 12
							if (URAIsOn == "ok"){
								if (MUAS > 0){
									if (MUAS > MUAC){
										m_uas=MUAS
									}else{
										m_uac=1
										m_uas=1
									}
								}
							}
						}
					}
				}
			}
			sum_of_rAnuais+= parseFloat(arr_rAnuais[i])*(m_uac/m_uas)/14
			//arr_alerta[i]= parseFloat(arr_rAnuais[i]) +";"+m_uac+"/"+m_uas+"/14"
			//alert(arr_alerta[i])
		}
		rr = sum_of_rAnuais / ts_pCalc
		str_return = rr
	}
	return str_return;
}



function getDataAposentacao_NR(){
	var data_aposentacao =""
	var s_tempo_apos = getTempoServico_NR('1','4','am')//tempo_após
	var a_tempo_apos = s_tempo_apos.split(",")
	
	data_aposentacao = 2005 + (parseInt(a_tempo_apos[0],10)+1)
	data_aposentacao+= "-"+parseInt(a_tempo_apos[1],10)
	return data_aposentacao;
}

/////////////////////////////// FUNCÕES EXCLUSIVAS PARA AFERIR Nº DE BONIFICACÕES ////////////////
function getNBonificacoes(q, dt_nasc, ts_2005, id_2005, ano_ap, dt_ap){
	var str_return = ";0;0;"+dt_ap
	var ap_sp1vezA = ""
	var dt_1vezVNA = ""
	var dt_1vezA = ""
	var tsA_mesPos = parseInt(ts_2005,10)
	var tsD_mesPos = 0
	var tsM_mesPos = 0
	var ano_pos = 2006
	var maxLoop = 0
	
	tsM_mesPos = get_tsSoMeses(ts_2005)
	tsD_mesPos = tsA_mesPos
	if (tsM_mesPos >= 6){
		tsD_mesPos+=.5
		tsM_mesPos = tsM_mesPos-6
	}
	
	maxLoop = ano_ap - (2006-1)
	for (i=0; i<maxLoop;i++){
		ano_pos = 2006+i
		for (j=0 ;j<12;j++){
			tsM_mesPos= parseInt(tsM_mesPos,10) + 1
			if (tsM_mesPos ==6){
				tsD_mesPos+=.5 
				tsM_mesPos = 0
			}
			mes_pos = j+1
			if (mes_pos < 10){mes_pos = "0"+mes_pos}//
			dt_pos = ano_pos + "-" + mes_pos
			id_mesPos = getIdade1vRCASP(dt_nasc, dt_pos)
			
			var idV_legal = getIdadeTempoRBAnAA(ano_pos,"iv")
			var tsV_legal = getIdadeTempoRBAnAA(ano_pos,"tv")
			var tsA_legal = getIdadeTempoRBAnAA(ano_pos,"ta")
			
			if (dt_pos < "2007-12"){dt_pos = "2007-12"}
			if (dt_1vezA == ""){
				ap_sp1vezA = get1vezAntecipada(q, ts_2005, tsD_mesPos, id_mesPos, tsA_legal, idV_legal, ano_ap, ano_pos)
				if (ap_sp1vezA == "ok"){
					dt_1vezA = dt_pos
				}
			}
			if (dt_1vezVNA == ""){
				if ((tsD_mesPos >= tsV_legal)&& (id_mesPos >= idV_legal)){
					dt_1vezVNA = dt_pos
				}
			}
			if ((dt_1vezVNA != "") && (dt_1vezA == "")||((dt_1vezVNA != "") && (dt_1vezA != ""))){break;}
		}
	}
	//alert("getNBonificacoes " + tsV_legal+", "+tsD_mesPos+ ", " + idV_legal+", "+id_mesPos+", "+dt_pos)
	//alert("getNBonificacoes " + dt_1vezA+", "+dt_1vezVNA+", "+dt_ap)
	var ano_ap = dt_ap.substr(0,4)
	var mes_ap = dt_ap.substr(5,2)
	if (mes_ap < 10){mes_ap = "0" + mes_ap}
	dt_ap = ano_ap +"-"+ mes_ap
		
	if (dt_1vezVNA > dt_ap){dt_1vezVNA = ""}
	gDataAp1vezVNA = dt_1vezVNA
	gDataAp1vezASP = dt_1vezA
	if (dt_1vezA == ""){dt_1vezA = dt_ap}
	if (dt_1vezVNA == ""){dt_1vezVNA = dt_ap}
	str_return = getNMesesBonificacao(dt_1vezA, dt_1vezVNA, dt_ap)
	//alert("str_return "+str_return)	
	////////////////////// logica de recurso para obter 1ª vez sem regras de 55/30 /////////////////
	/*
	if (ano_ap >= 2015){
		var ano1vezA = dt_1vezA.substr(0,4)
		if (ano1vezA < 2015){
			str_return = getNBonificacoes_ap2015(q, dt_nasc, ts_2005, id_2005, ano_ap, dt_ap)
		}
	}
	*/
	return str_return;
}

function get1vezAntecipada(q, ts_2005, tsPosicao, idPosicao, tsA_legal, idA_legal, ano_ap, ano_pos){//reg. cond. acesso aposent. sem penaliza
	var str_return=""
	
	if ((ano_ap < 2015)||(ano_pos < 2015)){
		if (tsPosicao >= tsA_legal){
			cid_36 = Math.floor((tsPosicao - 36)/3)
			if (ts_2005 < 36){cid_36 = Math.floor((tsPosicao - tsA_legal)/3)}
			cid_mn = Math.floor(tsPosicao - tsA_legal)
			cid_mn = cid_mn/2 
			id_limite = 60-cid_36
			id_con_36 = idA_legal - cid_36
			id_con_mn = idA_legal - cid_mn
			id_con_ap = id_con_mn
			id_falta = id_con_mn - idPosicao
			if (id_con_mn < id_limite){
				id_con_ap = id_con_36
				id_falta = id_con_36 - idPosicao
			}
			if (id_falta <= 0){str_return="ok"}
		}
	}
		
	if (ano_ap >= 2015){
		if (ts_2005 >= 36){//sd
			if (ano_pos >= 2015){
				if (tsPosicao >= tsA_legal){
					cid_36 = Math.floor((tsPosicao - 36)/3)
					id_con_36 = idA_legal - cid_36
					if (id_con_36 <= idPosicao){str_return = "ok"}
				}
			}
		}else{
			var id_credit = getCreditosIdade5530(idPosicao, tsPosicao, dt_pos)
			var id_consid = idA_legal - parseInt(id_credit,10)
			if (id_consid <= idPosicao){str_return="ok"}
		}
	}
	return str_return;
}


function getNBonificacoes_ap2015(q, dt_nasc, ts_2005, id_2005, ano_ap, dt_ap){
	var str_return = ";0;0;"+dt_ap
	var ap_sp1vezA = ""
	var dt_1vezVNA = ""
	var dt_1vezA = ""
	var tsA_mesPos = parseInt(ts_2005,10)
	var tsD_mesPos = 0
	var tsM_mesPos = 0
	var ano_pos = 2006
	var maxLoop = 0
	
	tsM_mesPos = get_tsSoMeses(ts_2005)
	tsD_mesPos = tsA_mesPos
	if (tsM_mesPos >= 6){
		tsD_mesPos+=.5
		tsM_mesPos = tsM_mesPos-6
	}
	
	maxLoop = ano_ap - (2006-1)
	for (i=0; i<maxLoop;i++){
		ano_pos = 2006+i
		for (j=0 ;j<12;j++){
			tsM_mesPos= parseInt(tsM_mesPos,10) + 1
			if (tsM_mesPos ==6){
				tsD_mesPos+=.5 
				tsM_mesPos =0
			}
			mes_pos = j+1
			dt_pos = ano_pos + "-" + mes_pos
			id_mesPos = getIdade1vRCASP(dt_nasc, dt_pos)
			var idV_legal = getIdadeTempoRBAnAA(ano_pos,"iv")
			var tsV_legal = getIdadeTempoRBAnAA(ano_pos,"tv")
			var tsA_legal = getIdadeTempoRBAnAA(ano_pos,"ta")
	
			if (ano_ap >= 2015){
				if (ano_pos < 2015){
					ap_sp1vezA = get1vezAntecipada_recurso(q, ts_2005, tsD_mesPos, id_mesPos, tsA_legal, idV_legal, ano_ap)
					if (ap_sp1vezA == "ok"){							
						dt_1vezA = dt_pos
						break;
					}
				}
				if (dt_1vezVNA == ""){
					if ((tsD_mesPos >= tsV_legal)&& (id_mesPos >= idV_legal)){
						dt_1vezVNA = dt_pos
					}
				}
			}
		}
	}
		
	if (dt_1vezA == ""){dt_1vezA = dt_ap}
	if (dt_1vezVNA == ""){dt_1vezVNA = dt_ap}
	str_return = getNMesesBonificacao(dt_1vezA, dt_1vezVNA, dt_ap)
	return str_return;
}
function get1vezAntecipada_recurso(q, ts_2005, tsPosicao, idPosicao, tsA_legal, idA_legal, ano_ap){
	var str_return=""
	if (tsPosicao >= tsA_legal){
		cid_36 = Math.floor((tsPosicao - 36)/3)
		if (ts_2005 < 36){cid_36 = Math.floor((tsPosicao - tsA_legal)/3)}
		cid_mn = Math.floor(tsPosicao - tsA_legal)
		cid_mn = cid_mn/2 
		id_limite = 60-cid_36
		id_con_36 = idA_legal - cid_36
		id_con_mn = idA_legal - cid_mn
		id_con_ap = id_con_mn
		id_falta = id_con_mn - idPosicao
		if (id_con_mn < id_limite){
			id_con_ap = id_con_36
			id_falta = id_con_36 - idPosicao
		}
		if (id_falta <= 0){str_return="ok"}
	}
	return str_return;
}

function getNMesesBonificacao(dt_1vezA, dt_1vezVNA, dt_ap){
	//alert("getNMesesBonificacao " + dt_1vezA+", "+dt_1vezVNA+", "+dt_ap)
	var nMb_A = 0
	var nMb_VNA=0
	var dt_1vezSP = dt_1vezVNA
	
	var str_return =0
	var ano1bonifica = 2008*12
	
	var ano_ap		= dt_ap.substr(0,4)
	var mes_ap		= dt_ap.substr(5,2)
	var ano_1vezA	= dt_1vezA.substr(0,4)
	var mes_1vezA	= dt_1vezA.substr(5,2)
	var ano_1vezVNA = dt_1vezVNA.substr(0,4)
	var mes_1vezVNA = dt_1vezVNA.substr(5,2)
		
	var dt_apMeses =(ano_ap*12) + parseInt(mes_ap,10)
	var dt_1vezAMeses =(ano_1vezA*12) + parseInt(mes_1vezA,10)
	var dt_1vezVNAMeses =(ano_1vezVNA*12) + parseInt(mes_1vezVNA,10)
	
	
	if (dt_1vezAMeses < dt_1vezVNAMeses){dt_1vezSP = dt_1vezA}
	
	if (dt_1vezAMeses < ano1bonifica){dt_1vezAMeses = ano1bonifica}
	if (dt_1vezVNAMeses < ano1bonifica){dt_1vezVNAMeses = ano1bonifica}
	
	if (dt_1vezVNAMeses > dt_apMeses){dt_1vezVNAMeses = dt_apMeses}
	
	if (dt_apMeses > dt_1vezVNAMeses){
		if (dt_1vezVNAMeses > dt_1vezAMeses){
			nMb_VNA	= dt_apMeses - dt_1vezVNAMeses
			nMb_A	= dt_1vezVNAMeses - dt_1vezAMeses
		}else{
			nMb_VNA	= dt_apMeses - dt_1vezVNAMeses
		}
	}else{
		if (dt_apMeses > dt_1vezAMeses){
			nMb_A = dt_apMeses - dt_1vezAMeses
		}
	}
		
	if (nMb_A < 0){nMb_A = 0}
	if (nMb_VNA < 0){nMb_VNA = 0}
	str_return = nMb_A+";"+nMb_VNA+";"+dt_1vezSP
	//alert("str_return"+str_return)
	return str_return;
}

function getTxBonificacao(ts_ap, ano_ap){
	var txBonif_VNA = 0
	for (i=0; i<aTxBonif.length; i++){
		arrSplit = aTxBonif[i].split(";")
		var anTB = arrSplit[0];
		var tsTB = arrSplit[1];
		var txTB = arrSplit[2];
		if (ano_ap >= anTB) {
			if (ts_ap >= tsTB){
				txBonif_VNA = txTB
				break;
			}
		}else{
			if (ts_ap >= tsTB){
				txBonif_VNA = txTB
				break;
			}
		}
	}
	return txBonif_VNA;
}
///////////////////////////// FIM DE BONIFICAÇÕES ///////////////////////////////////////

function getIdadeTempoRBAnAA(ano,p){// só é usada para verificar aposentaçao sem penalizacões  pela 1ª vez (Bonificação)
	var i=0
	var str_return = ""
	
	for (i=0; i<aRBAnAA.length; i++){
		arrSplit = aRBAnAA[i].split(";")
		var anoRB= arrSplit[0];
		var ivRB = arrSplit[1];
		var tvRB = arrSplit[2];
		var taRB = arrSplit[3];
		if (p=="iv"){str_return = ivRB}
		if (p=="tv"){str_return = tvRB}
		if (p=="ta"){str_return = taRB}
		if (anoRB==ano){break;}
	}
	if (parseInt(ano,10) < 2008){
		if (p=="iv"){str_return = 61}
		if (p=="tv"){str_return = 36}
		if (p=="ta"){str_return = 37}
	}
	
	if (parseInt(ano,10) >= 2015){
		if (p=="iv"){str_return = 65}
		if (p=="tv"){str_return = 15}
		if (p=="ta"){str_return = 40}
	}
	return str_return;
}

function getIdade1vRCASP(d1,d2){
	var s_out=""
	var s_ano1 = d1.substr(0,4)
	var s_mes1 = d1.substr(5,2)
	var s_ano2 = d2.substr(0,4)
	var s_mes2 = d2.substr(5,2)
	
	var s_ano = (s_ano2 - s_ano1)-1
	var s_mes = parseInt(s_mes2,10) + parseInt(12-s_mes1,10)
	var t_meses = (s_ano*12)+s_mes
	s_out = parseInt(t_meses/12, 10)
	var resto = t_meses%12
	if (resto >= 6){s_out+=0.5}
	return s_out;
}

///////////////////////////////  FIM DE FUNCÕES EXCLUSIVAS PARA AFERIR Nº DE BONIFICACÕES ////////////////




function msg_alert(p){
	//alert(p)
	a = p.split(";")
	var s =""
	for (xi=0; xi<a.length; xi++){
		s+= "\r"+ xi +" :" + a[xi]
	}
	alert(s)
}

///////////////////////////////

function validaTempoCGAate2005(e){
	var riCGA = document.getElementById("cga_Inscr").value
	writeErrorMsg('','');
	//var o_event = event.srcElement;
	var o_event = e.target? e.target : e.srcElement;
	var o_eventID = o_event.id
	var tCGAtm= getTemposCGA_NR(3)//ts até 2005
	var tCGA = parseInt(tCGAtm/12,10)+"."+(tCGAtm%12)
	var lim_ts2005 ="12.4"
	var str_msg ="Não pode contar tempo até 2005 superior a 12 anos e 4 meses"
				
	if (riCGA == 2){//148 meses
		lim_ts2005 = 12.4
		str_msg = "Não pode contar tempo até 2005 superior a 12 anos e 4 meses"
	}
	if (riCGA == 3){//48 meses
		lim_ts2005 = 4
		str_msg = "Não pode contar tempo até 2005 superior a 4 anos"
	}

}

function openCloseLRAnuais_NR(){
	checkIncapacidade("");
	closeAllLRA_NR();
		
	var t_totalCGA = getTemposCGA_NR('0')
	var t_cga_ate2005 = getTemposCGA_NR('3')
	var t_cga_apos2005 = getTemposCGA_NR('4')
	
	var anos_cga_ate2005 = parseInt(t_cga_ate2005/12,10)
	var meses_cga_ate2005 = t_cga_ate2005%12
	var maxLoop1 = anos_cga_ate2005
	if (meses_cga_ate2005 >=4){maxLoop1+=1}
	
	var anos_cga_apos2005 = parseInt(t_cga_apos2005/12,10)
	var meses_cga_apos2005 = t_cga_apos2005%12
	var maxLoop2 = anos_cga_apos2005
	if (meses_cga_apos2005 >=4){maxLoop2+=1}
	
	var ano_mark = 2005 
	var ano_iLoop1 = ano_mark - (maxLoop1-1)
	
	
	if (t_totalCGA >= 4){ 
		document.getElementById("rTabTitle").style.display=""
		document.getElementById("rTabFields").style.display=""
	}else{
		document.getElementById("rTabTitle").style.display="none"
		document.getElementById("rTabFields").style.display="none"
	}
	
	for(i=0; i < maxLoop1;i++){
		el_name="r"+ (ano_iLoop1 + i)
		if (document.getElementById(el_name)!=null){
			document.getElementById(el_name).style.display=""
		}
	}
	var ano_iLoop2 = ano_mark +1
	for(i=0; i < maxLoop2;i++){
		el_name="r"+ (ano_iLoop2 + i)
		if (document.getElementById(el_name)!=null){
			document.getElementById(el_name).style.display=""
		}
	}
}

function closeAllLRA_NR(){
	var maxRows = document.getElementById("hmax_rows").value
	var anoIni = 1993
	for(i=0; i < parseInt(maxRows,10);i++){//número de linhas
		el_name="r"+ (parseInt(anoIni,10) + i) //ano inicial
		if (document.getElementById(el_name)!=null){
			document.getElementById(el_name).style.display="none"
		}
	}
}

function getIdade_NR(dt_ini,dt_fim){
	var ano_ini = parseInt(dt_ini.substr(0,4),10)
	var mes_ini = parseInt(dt_ini.substr(5,2),10)

	var ano_fim = parseInt(dt_fim.substr(0,4),10)
	var mes_fim = parseInt(dt_fim.substr(5,2),10)
	
	var idade = 0
	var anos = ano_fim - ano_ini
	var meses = (12 - mes_ini) + mes_fim
	var resto = 0
	if (parseInt(meses,10) >= 12){
		anos+=1
		resto = meses%12
		meses = resto
	}
	idade = anos +","+meses
	return idade;
}

function getTC_Idade_TempoServico(ano){
	var tServico_Idade="40;65"
	for (i=0; i<a_correspAnoTServ.length;i++){
		 arr_ati = a_correspAnoTServ[i].split(";")
		 if (parseInt(arr_ati[0],10)== parseInt(ano,10)){
			tServico_Idade = arr_ati[1] + ";" + arr_ati[2]
		 }
	}
	return tServico_Idade;
}




function selectRegime(riCGA, ts_2005, id_2005, ts_2007, id_2007, ts_ap, id_ap, ano_ap, incapaz, dt_nasc, dt_ap){
	ts_2005 = parseFloat(ts_2005)
	id_2005 = parseFloat(id_2005)
	ts_2007 = parseFloat(ts_2007)
	id_2007 = parseFloat(id_2007)
	id_ap = parseFloat(id_ap)
	ano_ap = parseInt(ano_ap,10)
	
	var ts_apAnosMeses = ts_ap
	if (get_tsSoMeses(ts_ap)>=6){ts_ap = parseInt(ts_ap,10)+".5"}
	
	anoTC = ano_ap
	idTC = get_pTC_ADC(ano_ap,'1')
	tsTC = get_pTC_ADC(ano_ap,'2')
	tcTC = get_pTC_ADC(ano_ap,'3')
	var qmr="0;0;0;0"
	
	/////////////////////// TIPO INSCRIÇÃO 1 (até 1993-08-31)/////////////////////////////////////////////
	aberturaDireito_eee=""
	tsTC = parseFloat(tsTC)//Alerado em 2008-03-03
	if ((ts_ap >= tsTC)||((id_ap >= idTC)&&(ts_ap>=36))){
		aberturaDireito_eee = "ok"
	}
	//aplicação antiga
	if (riCGA == "1"){
		incapacidade="nao"
		if (incapaz=="s"){incapacidade="sim"}
		qmr = checkAberturaDireito(ano_ap, ts_ap, id_ap, incapacidade, ts_2005, id_2005)
	}
	/////////////////////// TIPO INSCRIÇÃO 2 (1993-09-01 até 2001-12-31)//////////////////////////////////
	
	if (riCGA == "2"){
		if ((ts_2005 >= 36) && (id_2005 >= 60)){qmr="b12;5;vna;5"}
		if ((ts_2005 >= 36) && (id_2005 < 60)){
			if (ano_ap == anoTC){
				if (id_ap >= idTC){qmr="b13;11;a;5"}
				if (id_ap < idTC){
					if (incapaz =="s"){qmr="b15;3;i;5"}
					if (incapaz =="n"){qmr="b15;11;a;5"}
				}
			}
			if (ano_ap >= 2015){
				if (id_ap >= 65){qmr="b13;12;a;5"}
				if (id_ap < 65){qmr="b14;12;a;5"}
			}
		}
		
		if (ts_2005 < 36){
			if ((ts_2007 >= 36) && (id_2007 >=61) && (ano_ap >= 2017) && (ts_ap >=46)){qmr="b6;7;vna;8"}//impossivel tem 71 anos de idade
			if ((ts_2007 >= 36) && (id_2007 >=61) && (ano_ap >= anoTC) && (ts_ap >=46)){qmr="b10;7;vna;12"}// fiquei aqui 2007-12-13
			if ((ts_2007 >= 36) && (id_2007 >=61) && (ano_ap >= anoTC) && (ts_ap < 46)){qmr="b8;7;vna;10"}
			
			if ((ts_2007 >= 37) && (id_2007 < 61)){
				if (ano_ap >=2017){
					if (id_ap >= 65){qmr="b6;7;vna;8"}
					if (id_ap < 65){
						if (incapaz =="s"){qmr="b2;3;i;8"}
						if (incapaz =="n"){qmr="b2;15;a;8"}
					}
				}
				if (ano_ap ==anoTC){
					if (id_ap >= idTC){
						if (ts_ap >=46){
							qmr="b10;7;vna;12"
						}else{
							qmr="b8;7;vna;10"
						}
					}else{
						if (ts_ap >=46){
							if (incapaz =="s"){qmr="b11;3;i;12"}
							if (incapaz =="n"){qmr="b5;15;a;12"}
						}else{
							if (ts_ap >=37){
								if (incapaz =="s"){qmr="b9;3;i;10"}
								if (incapaz =="n"){qmr="0;2;0;0"}
							}
							if (ts_ap >=tsTC){
								if (incapaz =="n"){qmr="b1;15;a;10"}
							}
						}
					}
					
					if ((ano_ap >=2015) && (ano_ap <2017)){
						if (id_ap < 65){
							if ((ts_ap >=40)&&(ts_ap < 46)){
								if (incapaz =="n"){qmr="b3;16;a;10"}
							}
						}
					}
				}	
			}		
			
			if ((ts_2007 >= 36) && (ts_2007 < 37)){
				if (id_2007 < 61){
					if (ano_ap >=2017){
						if (id_ap >= 65){
							if (ts_ap >=36){qmr="b6;9;vna;9"}
						}else{
							if (ts_ap >=40){
								if (incapaz =="n"){qmr="b2;20;a;9"}
							}else{
								if (incapaz =="n"){qmr="0;2;0;0"}
							}
							if (ts_ap >=36){
								if (incapaz =="s"){qmr="b7;3;i;9"}
							}
						}
					}
								
					if (ano_ap ==anoTC){
						if (id_ap >= idTC){
							if (ts_ap >=46){
								qmr="b10;9;vna;13"//imp
							}else{
								if (ts_ap >=36){qmr="b8;9;vna;11"}
							}
						}else{
							if (ts_ap >=46){
								if (incapaz =="s"){qmr="b11;3;i;13"}//imp
								if (incapaz =="n"){qmr="b5;19;a;13"}//imp
							}else{
								if (ts_ap >=36){
									if (incapaz =="s"){qmr="b9;3;i;11"}
									if (incapaz =="n"){qmr="0;2;0;0"}
								}
								if (ts_ap >=tsTC){
									if (incapaz =="n"){qmr="b1;19;a;11"}
								}
							}
						}
						if ((ano_ap >=2015) && (ano_ap <2017)){
							if (id_ap < 65){
								if (ts_ap >=46){
									if (incapaz =="n"){qmr="b4;20;a;13"}//imp
								}else{
									if (ts_ap >=40){
										if (incapaz =="n"){qmr="b3;20;a;11"}
									}
								}
							}
						}	
					}
				}	
			}
		}	
		
		if (ts_2007 < 36) {
			if (ano_ap >=2017){
				if (id_ap >= 70){
					if (ts_ap >=5){qmr="b7;4;li;9"}
				}else{
					if (ts_ap >=5){
						if (incapaz =="s"){qmr="b7;3;i;9"}
						if (incapaz =="n"){qmr="0;2;0;0"}
					}
					if (id_ap >= 65){
						if (ts_ap >=15){qmr="b6;9;vna;9"}
					}else{
						if (ts_ap >=40){
							if (incapaz =="n"){qmr="b2;20;a;9"}
						}else{
							if (ts_ap >=15){
								if (incapaz =="s"){qmr="b7;3;i;9"}
								if (incapaz =="n"){qmr="0;2;0;0"}
							}
						}
					}
				}
			}
									
			if (ano_ap ==anoTC){
				if (ts_ap >= 5){
					if (id_ap >= 70){
						qmr="b9;4;li;11"
					}else{
						if (incapaz =="s"){qmr="b9;3;i;11"}
						if (incapaz =="n"){qmr="0;2;0;0"}
					}
				}
				
				if (id_ap >= idTC){
					if (ts_ap >= 46){
						qmr="b10;9;vna;13"//imp
					}else{
						if (ts_ap >= 36){qmr="b8;9;vna;11"}
					}
				}else{
					if (ts_ap >= 46){
						if (incapaz =="s"){qmr="b11;3;i;13"}//imp
						if (incapaz =="n"){qmr="b5;20;a;13"}//imp
					}else{
						if (ts_ap >= 36){
							if (incapaz =="s"){qmr="b9;3;i;11"}
							if (incapaz =="n"){qmr="0;2;0;0"}
						}
						if (ts_ap >= tsTC){
							if (incapaz =="n"){qmr="b1;20;a;11"}
						}
					}
				}
			}
			if ((ano_ap >=2015)&& (ano_ap <2017)){
				if (id_ap >= 65){
					if (ts_ap >= 15){qmr="b8;9;vna;11"}
				}else{
					if (ts_ap >= 46){
						if (incapaz =="n"){qmr="b4;20;a;13"}//imp
						if (ts_ap >= 40){
							if (incapaz =="n"){qmr="b3;20;a;11"}
						}else{
							if (ts_ap >= 15){
								if (incapaz =="s"){qmr="b9;3;i;11"}
								if (incapaz =="n"){qmr="0;2;0;0"}
							}
						}
					}
				}
			}
			
			if ((ano_ap >=2008)&& (ano_ap <2015)){	
				if (id_ap >= 70){
					if (ts_ap >= 15){
						qmr="b9;4;li;11"
					}else{
						if (ts_ap >= 5){qmr="b9;4;li;11"}
					}
				}else{
					if (ts_ap >= 5){
						if (incapaz =="s"){qmr="b9;3;i;11"}
						if (incapaz =="n"){qmr="0;2;0;0"}
					}
				}
			}
		}
	}
	/////////////////////// TIPO INSCRIÇÃO 3 (a partir de 2002-01-01)//////////////////////////////////
	if (riCGA == "3"){
		if ((ts_2005 >= 36) && (id_2005 >= 60)){qmr="c4;5;vna;6"}
	
		if ((ts_2005 >= 36) && (id_2005 < 60)){
			if (ano_ap == anoTC){
				if (id_ap >= idTC){qmr="c5;11;a;6"}
				if (id_ap < idTC){
					if (incapaz == "s"){qmr="c7;3;i;6"}
					if (incapaz == "n"){qmr="c7;11;a;6"}
				}
			}
			if (ano_ap >= 2015){
				if (id_ap >= 65){qmr="c5;12;a;6"}
				if (id_ap < 65){
					if (incapaz == "s"){qmr="c6;3;i;6"}
					if (incapaz == "n"){qmr="c6;12;a;6"}
				}
			}
		}
		
		if (ts_2005 < 36){
			if ((ts_2007 >= 36) && (id_2007 >= 61)){qmr="c3;8;vna;6"}
			
			if ((ts_2007 >= 37) && (id_2007 < 61)){
				if (ano_ap == anoTC){
					if (id_ap >= idTC){qmr="c3;8;vna;6"}
					if (id_ap < idTC){
						if (incapaz == "s")	{qmr="c3;3;i;6"}
						if (incapaz == "n")	{qmr="c2;17;a;6"}
					}
				}
				if (ano_ap >= 2015){
					if (id_ap >= 65){qmr="c3;8;vna;6"}
					if (id_ap < 65){
						if (incapaz == "s")	{qmr="c3;3;i;6"}
						if (incapaz == "n")	{qmr="c1;18;a;6"}
					}
				}
			}
			
			
			if ((ts_2007 >= 36) && (ts_2007 < 37) && (id_2007 < 61)){
				if (ano_ap == anoTC){
					if (id_ap >= idTC){
						qmr="c3;9;vna;7"
					}else{
						if (incapaz == "s")	{qmr="c3;3;i;7"}
						if (ts_ap >= tsTC){
							if (incapaz == "n")	{qmr="c2;19;a;7"}
						}else{
							if (incapaz == "n")	{qmr="0;2;0;0"}
						}
					}
				}
				if (ano_ap >= 2015){
					if (id_ap >= 65){
						if (ts_ap >= 40){qmr="c3;9;vna;7"}
					}else{
						if (incapaz == "s")	{qmr="c3;3;i;7"}
						if (incapaz == "n")	{qmr="c1;20;a;7"}
					}
				}
			}
		}
			
		if (ts_2007 < 36){
			if (ano_ap == anoTC){
				if (id_ap >= idTC){
					if (ts_ap >= 36){qmr="c3;9;vna;7"}
				}else{
					if (ts_ap >= 36){
						if (incapaz == "s"){qmr="c3;3;i;7"}
					}
					if (ts_ap >= tsTC){
						if (incapaz == "n")	{qmr="c2;19;a;7"}
					}else{
						if (incapaz == "n")	{qmr="0;2;0;0"}
					}
				}
				if (id_ap >= 70){
					if (ts_ap >= 5){qmr="c3;4;li;7"}
				}else{
					if (ts_ap >= 5){
						if (incapaz == "s"){qmr="c3;3;i;7"}
						if (incapaz == "n"){qmr="0;2;0;0"}
					}
				}
			}	
			if (ano_ap >= 2015){
				if (id_ap >= 70){
					if (ts_ap >= 5){qmr="c3;4;li;7"}
				}else{
					if (ts_ap >= 5){
						if (incapaz == "s"){qmr="c3;3;i;7"}
						if (incapaz == "n"){qmr="0;2;0;0"}
					}
					if (id_ap >= 65){
						if (ts_ap >= 15){qmr="c3;9;vna;7"}
					}else{
						if (ts_ap >= 40){
							if (incapaz == "n"){qmr="c1;20;a;7"}
						}else{
							if (ts_ap >= 15){
								if (incapaz == "s"){qmr="c3;3;i;7"}
								if (incapaz == "n"){qmr="0;2;0;0"}
							}
						}
					}
				}
			}
		}	
	}
	/////////////////////////////////////////////////////////////////////////////////////////
	//ts_ap = ts_apAnosMeses//Alterado em 2008-03-03
	
	//alert(ts_2005 +"  "+ id_2005 +"  "+ts_2007 +" "+ id_2007)
	
	//INICIO alteração para corrigir mapeamento da salvaguada de direitos de 2007
	
	arr_qmr = qmr.split(";")
	quadro = arr_qmr[0]
	fLegal = arr_qmr[2]
	
	var mapRegAD_5530 =""
	var AD_5530 =""
	
	if ((id_ap >= 55)&&(ts_ap >= 30)){AD_5530 = chkAD_5530(id_ap, ts_apAnosMeses, dt_nasc, dt_ap)}
				
	if (fLegal == "a"){ //se (fundamento legal é antecipada (a) e não é SD de 2005) 
		if ((ts_2005 >= 35)&&(ts_2005 < 36)){//se é uma salvaguarda de direitos de 2007
			if (AD_5530 == "ok"){ //se ocorreu a abertura do direito à pensão antecipada então processa o mapeamento já selecionado
				mapRegAD_5530 = ""
			}else{
				qmr="0;2;0;0"
			}
		}
	}
	
	if ((quadro == "0")&&(AD_5530 == "ok")){mapRegAD_5530 = "ok"}//se nao abriu o direito a qualquer pensão
	//FIM alteração para corrigir mapeamento da salvaguada de direitos de 2007
	
	//if (qmr.substr(0,1) == "0"){//se abertura do direito não ocorreu
		
	if (mapRegAD_5530 == "ok"){
		//AD_5530 = chkAD_5530(id_ap, ts_apAnosMeses, dt_nasc, dt_ap)
		if ((id_ap >= 55) && (ts_ap >= 30)){
			if (AD_5530 == "ok"){
				if (ano_ap >= 2015){
					if (ts_2007 >= 37){
						if (riCGA == "1"){qmr="a9;14;a;2"}//rc2 sem IAS e sem FS era 3
						if (riCGA == "2"){qmr="b1;16;a;11"}
						if (riCGA == "3"){qmr="c2;18;a;7"}
					}else{
						if (riCGA == "1"){qmr="a9;20;a;3"}
						if (riCGA == "2"){qmr="b1;20;a;11"}
						if (riCGA == "3"){qmr="c2;20;a;7"}
					}
					if (ts_2005 >= 36){
						if (riCGA == "1"){qmr="a9;12;a;3"}
						if (riCGA == "2"){qmr="b1;12;a;11"}
						if (riCGA == "3"){qmr="c2;12;a;7"}
					}
				}else{
					if (ano_ap >= 2009){
						if (ts_2007 >= 37){
							if (riCGA == "1"){qmr="a9;13;a;3"}
							if (riCGA == "2"){qmr="b1;15;a;11"}
							if (riCGA == "3"){qmr="c2;17;a;7"}
						}else{
							if (riCGA == "1"){qmr="a9;19;a;3"}
							if (riCGA == "2"){qmr="b1;19;a;11"}
							if (riCGA == "3"){qmr="c2;19;a;7"}
						}
						if (ts_2005 >= 36){
							if (riCGA == "1"){qmr="a9;11;a;3"}
							if (riCGA == "2"){qmr="b1;11;a;11"}
							if (riCGA == "3"){qmr="c2;11;a;7"}
						}
					}
				}
			}
		}
	}
	if (qmr.substr(0,1) == "0"){
		if (ano_ap == 2008){ // (ANTECIPADA)
			if (ts_ap >= 33){
				if (ts_2007 >= 37){
					if (riCGA == "1"){qmr="a9;13;a;3"}
					if (riCGA == "2"){qmr="b1;15;a;11"}
					if (riCGA == "3"){qmr="c2;17;a;7"}
				}else{
					if (riCGA == "1"){qmr="a9;19;a;3"}
					if (riCGA == "2"){qmr="b1;19;a;11"}
					if (riCGA == "3"){qmr="c2;19;a;7"}
				
				}
				if (ts_2005 >= 36){
					if (riCGA == "1"){qmr="a9;11;a;3"}
					if (riCGA == "2"){qmr="b1;11;a;11"}
					if (riCGA == "3"){qmr="c2;11;a;7"}
				}
			}
		}
		if (((id_ap >= 65)&&(ts_ap >= 15)) || ((id_ap >= idTC)&&(ts_ap >= tsTC))){
			if (riCGA == "1"){qmr="a8;9;vna;3"}
			if (riCGA == "2"){qmr="b8;9;vna;11"}
			if (riCGA == "3"){qmr="c3;9;vna;7"}
		}
	}
	// fim de alterações
	/////////////////////////////////////////////////////////////////////////////////////////
	
	
	if (ts_ap < 5){qmr="0;1;0;0"}
	
	ts_ap = ts_apAnosMeses //reposicionamento em 2008-03-03
		
	// pensão unificada e eee
	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){qmr = "g1;21;x;0"}
		}else{
			if (s_tmpCGA < 5){qmr = "0;22;x;0"}
		}
	}
		
	if (s_tipoPensao == "eee"){
		if (s_tmpCNP < 1){
			if (tmpTotal < 5){qmr = "0;1;x;0"}
		}else{
			if (s_tmpCNP >= 1){
				if (s_tmpCGA < 5){
					if (tmpTotal >= 5){
						if (aberturaDireito_eee=="ok"){qmr = "g1;23;x;0"}
						if (aberturaDireito_eee==""){
							if((s_idadeAnoApos >= 70)||(incapaz == "s")){
								qmr = "g1;23;x;0"
							}else{
								qmr = "0;2;x;0"
							}
						}
					}
				}	
			}
		}
	}
	return qmr;
}

/////Checar 12IAS com 90% da última remuneração mensal para efeito de abertura de remunerações mensais após 1993 ////
function check12IASvURmensal(obj, nDec){// não utilizada
	formatValorRMAA2005(obj,nDec)
	var o_value = obj.value
	var IAS = document.getElementById("hIAS").value
	var valUR = preparNumToCalc(formatNum(o_value,nDec))
	var v90UR = preparNumToCalc(formatNum((0.9 * valUR),2))
	var v12IAS =preparNumToCalc(formatNum((12 * IAS),2))
	if (!isNaN(valUR)){
		if (v90UR > v12IAS){openRAnuais1993()}
	}
}

function check12IASvURM(){
	if (document.getElementById("cga_venc_ult_mes")!= null){
		var obj = document.getElementById("cga_venc_ult_mes")
		var IAS = document.getElementById("hIAS").value

		formatValorRMAA2005(obj,"2")
		
		var valURM = obj.value
		valURM = preparNumToCalc(formatNum(valURM, "2"))
		
		var v90URM = preparNumToCalc(formatNum((0.9 * valURM),2))
		var v12IAS = preparNumToCalc(formatNum((12 * IAS),2))
		if (!isNaN(valURM)){
			if (parseFloat(v90URM) > parseFloat(v12IAS)){
				openRAnuais1993("ok");
			}else{
				openRAnuais1993("no");
			}
		}
	}
}
//função só para aferir RR para parameterização aos (12IAS)no regime "1" seja até 1993
function openRAnuais1993(p){
	
	var dt_nascimento = document.getElementById("cga_dataNasc").value
	var ts_total_ate_2005 = getTempoServico_NR('0','3','am')
	ts_total_ate_2005 = ts_total_ate_2005.replace(",", ".")
	var ts_cga_ate2005m  = getTempoServico_NR('1','3','m')
	var ts_ate_2005PD = preparNumToCalc(formatNum(get_tsSoMeses(ts_total_ate_2005)/12,2))
	var ts_CNPCGA_ate_2005 = parseInt(ts_total_ate_2005,10) + parseFloat(ts_ate_2005PD)
	var e_name=""
	var ano_cur=""
	
	if (dt_nascimento != ""){
		for (i=0; i<13 ;i++){
			ano_cur = 1993+i
			e_name = "ra"+ano_cur
			if (document.getElementById(e_name)!= null){
				if ((ts_CNPCGA_ate_2005 < 35) && (ts_cga_ate2005m > 0)){
					//if (document.getElementById(e_name).style.display=="none"){ // alteração para controlar abertura (remunerações apos 1993 1º regime)
					if (p=="ok"){
						document.getElementById(e_name).style.display=""
						document.getElementById("rTabTitle").style.display=""
						document.getElementById("rTabFields").style.display=""
						document.getElementById("rseparador").style.display=""
					}else{
						document.getElementById(e_name).style.display="none"
						if (document.getElementById("r2006").style.display=="none"){
							document.getElementById("rTabTitle").style.display="none"
							document.getElementById("rTabFields").style.display="none"
							//document.getElementById("rseparador").style.display="none"
						}
					}
				}else{
					if (document.getElementById(e_name).style.display==""){
						document.getElementById(e_name).style.display="none"
						if (document.getElementById("r2006").style.display=="none"){
							document.getElementById("rTabTitle").style.display="none"
							document.getElementById("rTabFields").style.display="none"
							document.getElementById("rseparador").style.display="none"
						}
					}
				}
			}
		}
	}
}

function formatNumEuro(str, decimais,ne) 
//---------------------------------------
// 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;
  if (ne == 2){newStr="&euro;&nbsp;"+newStr}
  return newStr;

}

function checkAllInputs_NR(riCGA, id_ap, ts_cga_ate2005, ts_ap){
	
	var s_return="";
	var o_dt_value = document.getElementById("cga_dataNasc").value;
	var ts_cga_ate2005  = getTempoServico_NR('1','3','am')
	var ts_cga_apos2005 = getTempoServico_NR('1','4','am')
	ts_cga_ate2005 = ts_cga_ate2005.replace(",", ".")
	ts_cga_apos2005 = ts_cga_apos2005.replace(",", ".")
	
	
	if (o_dt_value == ""){s_return="cga_dataNasc;"+erro1}	
	
	if (s_return ==""){s_return = checkInputsCNP();}

	if (s_return == ""){
		if (parseFloat(id_ap) < s_idadeSubMin){s_return="cga_dataNasc;"+erro4}
	}
	if (s_return == ""){
		if (parseFloat(id_ap) < parseFloat(ts_ap)){s_return="cga_anos_apos2005;"+erro5}
	}
	if (s_return == ""){
		if (parseFloat(ts_cga_ate2005) <= 0){s_return="cga_anos;"+erro2}
	}
	
	var ts_cga_ate2005_meses = (parseInt(ts_cga_ate2005,10)*12) + parseInt(get_tsSoMeses(ts_cga_ate2005),10)
	var ts_limite12a_4m = (12*12)+4
	
	if (s_return == ""){
		if (riCGA == 1){
			check12IASvURM();
			if (ts_cga_ate2005_meses < ts_limite12a_4m){s_return="cga_anos;"+erro14}
		}
	}
		
	if (s_return == ""){
		if (riCGA == 2){
			if (ts_cga_ate2005_meses > ts_limite12a_4m){s_return="cga_anos;"+erro15}
			if (ts_cga_ate2005 <=4){s_return="cga_anos;"+erro16}
		}
	}
	if (s_return == ""){
		if (riCGA == 3){
			if (ts_cga_ate2005 > 4){s_return="cga_anos;"+erro17}
		}
	}
	
	if (s_return == ""){
		if (parseFloat(ts_ap) < s_tempoSerMin){s_return="cga_anos_apos2005;"+erro7}
	}
	
	ts_cga_apos2005 = getTempoServico_NR('1','4','am')
	ts_cga_apos2005 = ts_cga_apos2005.replace(",", ".")
	
	if (s_return == ""){
		if (parseFloat(ts_cga_apos2005) < 2.1){s_return="cga_anos_apos2005;"+erro13}
	}
	//////////////////////////////////////////////////////////////////////////////
	
	var collection=0
	if (s_return == ""){
		//collection = document.all.tags("INPUT").length;// funciona no IE e não no FF
		collection = document.getElementsByTagName("INPUT").length; //(alternativa para IE e FF)
		for (i=0; i<collection; i++){
			//obj = document.all.tags("INPUT").item(i);
			obj = document.getElementsByTagName("INPUT")[i]; //(alternativa para IE e FF)
			o_name = obj.name;
			o_value= obj.value;
			o_type = obj.type;
			o_ano  = o_name.substr(10,4);
			s_pfx_name = o_name.substr(0,9);
			s_sfx_name = o_name.substr(9);
			s_valor = parseFloat(preparNumToCalc(o_value))
			coefRev=0
			remRev =0
			anoVal =0
			if(o_type=="text"){
				if (document.getElementById("ra"+s_sfx_name)!=null){
					anoVal = 0, coefRev= 0,	remRev = 0;
					if (document.getElementById("td_coeficiente_"+s_sfx_name)!= null){
						coefRev = document.getElementById("td_coeficiente_"+s_sfx_name).innerHTML
						if (document.getElementById("td_coeficiente_"+s_sfx_name)!= null){
							anoVal = document.getElementById("cga_venc_"+s_sfx_name).value		
							remRev = preparNumToCalc(anoVal) * preparNumToCalc(coefRev)
							document.getElementById("td_valorizacao_"+s_sfx_name).innerHTML=formatNumEuro(remRev,2,1)
						}
					}
					//Anexo II da Portaria n.º 554/2008 (n.º 2 do artigo 27 do DL n.º 187/2007)
					if (riCGA == 2){
						anoVal = 0, coefRev= 0,	remRev = 0;
						if (document.getElementById("td_coeficiente2_"+s_sfx_name)!= null){
							coefRev = document.getElementById("td_coeficiente2_"+s_sfx_name).innerHTML
							if (document.getElementById("td_coeficiente2_"+s_sfx_name)!= null){
								anoVal = document.getElementById("cga_venc_"+s_sfx_name).value		
								remRev = preparNumToCalc(anoVal) * preparNumToCalc(coefRev)
								document.getElementById("td_valorizacao2_"+s_sfx_name).innerHTML=formatNumEuro(remRev,2,1)
							}
						}
					}
				
					if (document.getElementById("ra"+s_sfx_name).style.display==""){
						if ((isNaN(s_valor))||(s_valor <= 0)){
							s_return=s_pfx_name + s_sfx_name+";"+erro3;
							break;
						}
					}
				}
				if (document.getElementById("r"+s_sfx_name)!=null){
					anoVal = 0, coefRev= 0,	remRev = 0
					if (document.getElementById("td_coeficiente_"+s_sfx_name)!= null){
						coefRev = document.getElementById("td_coeficiente_"+s_sfx_name).innerHTML
						if (document.getElementById("td_coeficiente_"+s_sfx_name)!= null){
							anoVal = document.getElementById("cga_venc_"+s_sfx_name).value		
							remRev = preparNumToCalc(anoVal) * preparNumToCalc(coefRev)
							document.getElementById("td_valorizacao_"+s_sfx_name).innerHTML=formatNumEuro(remRev,2,1)
							
						}
					}
					if (riCGA == 2){//Anexo II da Portaria n.º 554/2008 (n.º 2 do artigo 27 do DL n.º 187/2007)
						anoVal = 0, coefRev= 0,	remRev = 0
						if (document.getElementById("td_coeficiente2_"+s_sfx_name)!= null){
							coefRev = document.getElementById("td_coeficiente2_"+s_sfx_name).innerHTML
							if (document.getElementById("td_coeficiente2_"+s_sfx_name)!= null){
								anoVal = document.getElementById("cga_venc_"+s_sfx_name).value		
								remRev = preparNumToCalc(anoVal) * preparNumToCalc(coefRev)
								document.getElementById("td_valorizacao2_"+s_sfx_name).innerHTML=formatNumEuro(remRev,2,1)
							}
						}
					}
					if (document.getElementById("r"+s_sfx_name).style.display==""){
						if ((isNaN(s_valor))||(s_valor <= 0)){
							s_return=s_pfx_name + s_sfx_name+";"+erro3;
							break;
						}
					}
				}
				
				if (document.getElementById("r"+s_sfx_name)!=null){
					if (document.getElementById("r"+s_sfx_name).style.display==""){
						if ((isNaN(s_valor))||(s_valor <= 0)){
							s_return=s_pfx_name + s_sfx_name+";"+erro3;
							break;
						}
					}
				}
				
				if (o_name == "cga_venc_ult_mes"){
					if ((isNaN(s_valor))||(s_valor <= 0)){
						s_return=s_pfx_name + s_sfx_name+";"+erro3;
						break;
					}
				}
			}
		}
	}
	return s_return;
}

function writeErrorMsg(o_name,erroMsg){
	str_html = "<B class=vermelho2>" + erroMsg + "</B>"
	document.getElementById("resposta").innerHTML = str_html;
}

//-->

