<!--
// @VERSAO 1.0 2009-04-13
// @AUTOR  DAC 
// @DESC   Funções comuns

var pattern1 = /^[12](\d{3})-([0][1-9]|[1][012])-([0][1-9]|[12](\d{1})|[3][01])$/;
function limpa()
//---------------------------------------
// --- 
{
  labels();

  document.getElementById("f1").cga_dataNasc.value = "";
  document.getElementById("f1").cga_anos.value = "";
  document.getElementById("f1").cga_meses.value = "";
  document.getElementById("ti2005").innerHTML = "";
  document.getElementById("resposta").innerHTML = "<BR>&nbsp;";
  document.getElementById("tx2").innerHTML = "";
  document.getElementById("ap1vez").innerHTML ="";
  
}

function labels()
//---------------------------------------
// --- 
{

  document.getElementById("lab91").innerHTML = sTitulo;
  document.getElementById("lab92").innerHTML = sVersao2;
  document.getElementById("lab91a").innerHTML = sTitulo;
  document.getElementById("lab92a").innerHTML = sVersao2;
  document.getElementById("lab91b").innerHTML = sTitulo;
  document.getElementById("lab92b").innerHTML = sVersao2;
}

function manageErrorMsg(o_name,erro){
	
	if(o_name!=""){
		document.getElementById(o_name).focus();
	}
	str_html = "<B class=vermelho2>" + erro + "</B>"
	document.getElementById("resposta").innerHTML = str_html;

}

function checkIncapacidade(p){
	document.getElementById("incapaz").disabled = false;
	if (p=="lock"){
		document.getElementById("incapaz").checked = false;
		document.getElementById("incapaz").disabled = true;
	}
}

function formataAnoMes(dt){
	var s_out=""
	var s_ano = dt.substr(0,4)
	var s_mes = dt.substr(5,2)
	if (s_mes.length ==1){s_mes = "0"+s_mes}
	s_out = s_ano+"-"+s_mes
	return s_out
}

function formataTsId_am(valor, tv){
	var str_out		= "00a 00m"
	var anos		= parseInt(valor,10)
	var meses		= get_tsSoMeses(valor)
	var meses_dec	= parseFloat(valor) - anos
	if (tv == "id"){
		anos = preparNumToCalc(valor)
		meses= Math.round(meses_dec * 12)
		str_out = parseInt(anos,10) + "a 0" + meses + "m"
		if (meses > 9){str_out = parseInt(anos,10) + "a " + meses + "m"}
	}
	
	if (tv == "ts"){
		str_out = parseInt(anos,10) + "a 0" + parseInt(meses,10) + "m"
		if (meses > 9){str_out = parseInt(anos,10) + "a " + parseInt(meses,10) + "m"}
	}
	return str_out;
}

function formataIdadeExt(valor, tv){
	var str_out		= "0 anos 0 meses"
	var anos		= parseInt(valor,10)
	var meses		= get_tsSoMeses(valor)
	var meses_dec	= parseFloat(valor) - anos
	if (tv == "id"){
		anos = parseInt(valor,10)
		meses= Math.round((meses_dec%1) * 12)
		str_out = parseInt(anos,10) + " anos"
		if (meses == 1){str_out = parseInt(anos,10) + " anos e " + meses + " mês"}
		if (meses > 1){	str_out = parseInt(anos,10) + " anos e " + meses + " meses"}
	}
	if (tv == "ts"){
		str_out = parseInt(anos,10) + " anos"
		if (meses == 1){str_out = parseInt(anos,10) + " anos e " + parseInt(meses,10) + " mês"}
		if (meses > 1){str_out = parseInt(anos,10) + " anos e " + parseInt(meses,10) + " meses"}
	}
	return str_out;
}

function get_pTC_ADC(ano_ap,p){
	var str_return=""
	for (i=0; i<aTC_ADC.length;i++){
		arrSplit = aTC_ADC[i].split(";")
		anoTC= arrSplit[0];
		idTC = arrSplit[1];	
		tsTC = arrSplit[2];
		tcTC = arrSplit[3];	
		if (anoTC==ano_ap){
			break;
		}
	}
	if (p=="0"){str_return = anoTC + ";" + tidTC + ";" + tsTC + ";" + tcTC}
	if (p=="1"){str_return = idTC}
	if (p=="2"){str_return = tsTC}
	if (p=="3"){str_return = tcTC}
	return str_return;
}

function get_tsSoMeses(numero){
	var s_return=0
	var str = new String(numero)
	if (numero % 1 > 0){
		s_return = str.substr(str.indexOf(".")+1,2);
	}
	return s_return;
}


/////////////////////////////////////////////////////////////////
function chkAD_5530(id_ap, ts_ap, dt_nasc, dt_ap){
	var str_return=""
	var idd_ap = id_ap - parseInt(id_ap,10)
	id_ap = parseInt(id_ap,10)+"."+Math.round (idd_ap*12)
	
	var id_soMeses = get_tsSoMeses(id_ap)
	var ts_soMeses = get_tsSoMeses(ts_ap)
	
	var idm_ap = parseInt(id_ap,10)*12 + parseInt(id_soMeses,10)
	var	tsm_ap = parseInt(ts_ap,10)*12 + parseInt(ts_soMeses,10)
		
	var id_dif = idm_ap - tsm_ap
		
	if (id_dif <= 300){
		str_return="ok"
		if (id_dif == 300){
			str_return=""
			gIdadeMsg5530=parseInt(id_ap,10)//
			var ano_ap	=	dt_ap.substr(4)
			var mes_ap	=	dt_ap.substr(5,2)
			var UDM_ap	=	getUltimoDiaMes(ano_ap, mes_ap, "1")
			
			var mes_nasc=	dt_nasc.substr(5,2)
			var dia_nasc=	dt_nasc.substr(8,2)
			if (parseInt(mes_ap,10) == parseInt(mes_nasc,10)){
				gIdadeMsg5530=(parseInt(id_ap,10)-1) +".9"
				if (parseInt(UDM_ap,10) == parseInt(dia_nasc,10)){
					str_return = "ok"
					gIdadeMsg5530=""
				}
			}
			if (parseInt(mes_nasc,10)==2){
				if (parseInt(mes_ap,10) == parseInt(mes_nasc,10)){
					if (parseInt(dia_nasc,10)== 29){
						str_return = "ok"
					}
					if (parseInt(dia_nasc,10)== 28){
						if (parseInt(UDM_ap,10)==28){str_return = "ok"}
					}
				}
			}
		}
	}
	return str_return;
}

function preparaTSparaLimiteIdade(ts_ap, dt_nasc, dt_ap){
	var ts_ap_limite = ts_ap
	var m_nasc = dt_nasc.substr(5,2)
	var d_nasc = dt_nasc.substr(8,2)
	
	var a_ap = dt_ap.substr(0,4)
	var m_ap = dt_ap.substr(5,2)
	var d_ap = getUltimoDiaMes(a_ap, m_ap, "1")
	
	if (parseInt(d_ap,10) == parseInt(d_nasc,10)){
		ts_ap_limite = ts_ap
	}else{
		if (parseInt(d_nasc,10) < parseInt(d_ap,10)){
			var ts_ap_limite_meses =  parseInt(ts_ap,10)*12 + parseInt(get_tsSoMeses(ts_ap),10)
			ts_ap_limite_meses = ts_ap_limite_meses -1
			ts_ap_limite = parseInt((ts_ap_limite_meses/12),10) +"."+ (ts_ap_limite_meses%12)
		}
	}
	if (parseInt(m_nasc,10)==2){
		if (parseInt(m_ap,10) == parseInt(m_nasc,10)){
			if (parseInt(d_nasc,10)== 29){
				ts_ap_limite = ts_ap
			}
			if (parseInt(d_nasc,10)== 28){
				if (parseInt(d_ap,10)==28){ts_ap_limite = ts_ap}
			}
		}
	}
	return ts_ap_limite;
}

function getUltimoDiaMes(ano, mes, p){
	var str_return=""
	var str_out=""
	var mesUdia = new Array()
	mesUdia[0]= "31;Janeiro"
	mesUdia[1]= "28;Fevereiro"
	if (parseInt(ano,10)%4 == 0){
		mesUdia[1]= "29;Fevereiro"
	}
	mesUdia[2]= "31;Março"
	mesUdia[3]= "30;Abril"
	mesUdia[4]= "31;Maio"
	mesUdia[5]= "30;Junho"
	mesUdia[6]= "31;Julho"
	mesUdia[7]= "31;Agosto"
	mesUdia[8]= "30;Setembro"
	mesUdia[9]= "31;Outubro"
	mesUdia[10]="30;Novembro"
	mesUdia[11]="31;Dezembro"
	
	for (i=0; i<mesUdia.length; i++){
		if (i == (parseInt(mes,10)-1)){
			str_out = mesUdia[i].split(";")
			if (p==1){str_return = str_out[0]}
			if (p==2){str_return = str_out[1]}
			break;
		}
	}
		
	return str_return
}

function getDataTS33anos(id_ap, ts_ap, dt_nasc, dt_ap){
	var str_return="0"
	var id_ap_dec = id_ap
	var ano_ap = dt_ap.substr(0,4)
	var mes_ap = dt_ap.substr(5,2)
	var ts33m  = 396

	var idd_ap = id_ap - parseInt(id_ap,10)
	id_ap = parseInt(id_ap,10)+"."+Math.round (idd_ap*12)
	var id_soMeses = get_tsSoMeses(id_ap)
	var ts_soMeses = get_tsSoMeses(ts_ap)
	
	var idm_ap = parseInt(id_ap,10)*12 + parseInt(id_soMeses,10)
	var	tsm_ap = parseInt(ts_ap,10)*12 + parseInt(ts_soMeses,10)
		
	var tsm_ano2008 = tsm_ap - parseInt(mes_ap,10)
	if (ano_ap >= 2009){
		var dif_meses = ((ano_ap-2008)*12)+ parseInt(mes_ap,10)
		tsm_ano2008 = tsm_ap - dif_meses
	}
	var dt_ts33 = "0"
	
	for(i=1; i<13;i++){
		tsm_ano2008+=1
		if (tsm_ano2008 >= ts33m){ 
			dt_ts33 = "2008-"+i
			if (i<10){dt_ts33 = "2008-0"+i}
			dt_ts33 = dt_ts33+ "-" + getUltimoDiaMes("2008", i, "1")//era ano_ap
			str_return = dt_ts33
			break;
		}
	}
	if (tsm_ano2008 < ts33m){
		str_return = getTSouDT55Idade(id_ap_dec, ts_ap, dt_nasc, dt_ap, "dt")
	} 
	
	return str_return;
		
}
function getCreditosIdade5530(id_ap, ts_ap, dt_ap){
	var dt_nasc = document.getElementById("cga_dataNasc").value
	var str_return="0"
	var tsd_ap = ts_ap - parseInt(ts_ap,10)
	ts_ap = parseInt(ts_ap,10)+"."+Math.round (tsd_ap*12)
	var tsm_5530 = getTSouDT55Idade(id_ap, ts_ap, dt_nasc, dt_ap, "ts")
	var tsm_Amais = parseInt(tsm_5530,10) - 360 //360 meses sifnifica 30 anos
	var tsd_Amais = (tsm_Amais/12)
	var cid_5530 = parseInt(tsd_Amais/3,10)

	if (cid_5530 > 0){str_return = cid_5530}
	return str_return;
}

function getTSouDT55Idade(id_ap, ts_ap, dt_nasc, dt_ap, p){
	var str_return	= "0"
	var id_ap_dec	= id_ap
	var ano_ap = dt_ap.substr(0,4)
	var idd_ap = id_ap - parseInt(id_ap,10)
	id_ap = parseInt(id_ap,10)+"."+Math.round (idd_ap*12)
	var id_soMeses = get_tsSoMeses(id_ap)
	var ts_soMeses = get_tsSoMeses(ts_ap)
	
	var idm_ap = parseInt(id_ap,10)*12 + parseInt(id_soMeses,10)
	var	tsm_ap = parseInt(ts_ap,10)*12 + parseInt(ts_soMeses,10)
	var id55m = 660
	var ts30m = 360
	var dif_id_ap55 = idm_ap - id55m
	var ts55m = tsm_ap - dif_id_ap55
	var dt_id55 = "0"

	if (p=="ts"){str_return = ts55m}
	if (p=="dt"){
		if (ts55m >= ts30m){
			var ano_nasc	= dt_nasc.substr(0,4)
			var mes_nasc	= dt_nasc.substr(5,2)
			var dia_nasc	= dt_nasc.substr(8,2)
			var ano_id55	= parseInt(ano_nasc,10)+ 55
			var isOk5530	= "ok"
			if (ts55m == ts30m){
				isOk5530 = chkAD_5530(id_ap_dec, ts_ap, dt_nasc, ano_id55+"-"+mes_nasc)
			}
			if (isOk5530 == "ok"){
				dt_id55	= ano_id55 +"-"+ mes_nasc +"-"+ getUltimoDiaMes(ano_id55, parseInt(mes_nasc,10), "1")
				if (ano_id55 < 2009){dt_id55 = "2009-01-31"}
			}
		}
		str_return = dt_id55;
	}
	return str_return;
}

/////////////////////////////////////// Q U A N D O (1.ª vez) ////////////////////////////////////

function getDataQuando1vez(ts_2005, id_ap, ts_ap, dt_nasc, dt_ap, p){
	var dt_servidor = document.getElementById("dt_servidor").value;
	var str_return = "0"
	var str_ok1vez = ""
	var str_recurso= "imediatamente" // vadidar quando dtServior em 2009
	var gDataAp1vez1_string2008 = ""
	
	var gDataAp1vez1_quando = "0"
	var gDataAp1vez2_quando = "0"
	var gDataAp1vez3_quando = "0"
	var dtApLimiteId_quando = "0"
	
	if (p == "1"){
		dtApLimiteId_quando = getDataApLimiteIdade(id_ap, ts_ap, dt_ap, dt_nasc)
		if (dtApLimiteId_quando !="0"){
			gLimiteIdade="ok"
			gDataAp1vez1_quando = dtApLimiteId_quando
		}
		
		if (dtApLimiteId_quando =="0"){
			if (dt_servidor.substr(0,4) == "2008"){
				gDataAp1vezACP1 = getDataTS33anos(id_ap, ts_ap, dt_nasc, dt_ap)
			}
			gDataAp1vezACP2 = getTSouDT55Idade(id_ap, ts_ap, dt_nasc, dt_ap, "dt")
			gDataAp1vezVNA	= getData1vezVNA(id_ap, ts_ap, dt_ap, dt_nasc, "")
			/*
			alert("gDataAp1vezACP1 "+gDataAp1vezACP1
			+"\r gDataAp1vezACP2 "+gDataAp1vezACP2
			+"\r gDataAp1vezVNA "+gDataAp1vezVNA)
			*/	
			var aDatas = new Array()
			aDatas[0] = gDataAp1vezACP1
			aDatas[1] = gDataAp1vezACP2
			aDatas[2] = gDataAp1vezVNA
			aDatas_sort = aDatas.sort()//(function(a,b){return b - a;});
							
			
			for (i=0; i<aDatas_sort.length; i++){
				if (aDatas_sort[i] != "0"){
					gDataAp1vez1_quando = aDatas_sort[i]
					break;
				}
			}
			// so para 2008
			if (dt_servidor.substr(0,4) == "2008"){
				if ((gDataAp1vezACP1 <= "2008-12-31") && (gDataAp1vezACP1 > "0")){
					if ((gDataAp1vezACP2 > "2009-01-31") || (gDataAp1vezACP2 == "0")){
						gDataAp1vez1_string2008 = gDataAp1vezACP1 +" (desde que requerida em 2008)"
					}
				}
				
				if (gDataAp1vez1_string2008 != ""){
					if (gDataAp1vez1_quando == gDataAp1vezVNA){str_ok1vez ="ok"}
					if (gDataAp1vez1_quando == gDataAp1vezACP2){str_ok1vez="ok"}
					if (str_ok1vez != "ok"){
						if (gDataAp1vez1_quando == gDataAp1vezACP1){gDataAp1vez1_quando = gDataAp1vez1_string2008}
					}
				}
			}
			// Fim // so para 2008
		}
		
		
		//alert("gDataAp1vez1_quando "+gDataAp1vez1_quando)
		if (gDataAp1vez1_quando != "0"){
			if (gDataAp1vez1_quando.search("desde que requerida em 2008")< 0){
				if (gDataAp1vez1_quando <= dt_servidor){gDataAp1vez1_quando = str_recurso}
			}
		}
		// A partir de 2009 inclusivé
		if (dtApLimiteId_quando =="0"){
			if (parseInt(dt_servidor.substr(0,4),10) >= 2009){
				var dtServidor	= dt_servidor.substr(0,4) + dt_servidor.substr(5,2);
				var dtAp1vez	= dtServidor;
				
				if (gDataAp1vezACP2 == "0" ){
					if (gDataAp1vezVNA != "0"){
						dtAp1vez	= gDataAp1vezVNA.substr(0,4) + gDataAp1vezVNA.substr(5,2);
						gDataAp1vez1_quando = gDataAp1vezVNA;
					}
				}
				if (gDataAp1vezACP2 != 0){
					dtAp1vez	= gDataAp1vezACP2.substr(0,4) + gDataAp1vezACP2.substr(5,2);
					gDataAp1vez1_quando = gDataAp1vezACP2;
				}			
				
				if (dtAp1vez < dtServidor){gDataAp1vez1_quando = str_recurso}
			}
		}
		
		str_return = gDataAp1vez1_quando
		
	}
		
	if (p == "2"){
		gDataAp1vezASP = getDataAp1vezASP(ts_2005, id_ap, ts_ap, dt_ap)
		gDataAp1vezVNA = getData1vezVNA(id_ap, ts_ap, dt_ap, dt_nasc, "")
		
		gDataAp1vez2_quando = gDataAp1vezASP
		if (gDataAp1vezVNA < gDataAp1vezASP){gDataAp1vez2_quando = gDataAp1vezVNA}
		if ((gDataAp1vez2_quando !="0")&&(gDataAp1vez2_quando <= dt_servidor)){gDataAp1vez2_quando = str_recurso}
		str_return = gDataAp1vez2_quando
	}
		
	if (p == "3"){
		gDataAp1vezASP = getDataAp1vezASP(ts_2005, id_ap, ts_ap, dt_ap)
		gDataAp1vezVCC = getData1vezVNA(id_ap, ts_ap, dt_ap, dt_nasc, "CC")
		gDataAp1vez3_quando = gDataAp1vezASP
		if (gDataAp1vezVCC < gDataAp1vezASP){gDataAp1vez3_quando = gDataAp1vezVCC}
		if ((gDataAp1vez3_quando != "0") && (gDataAp1vez3_quando <= dt_servidor)){gDataAp1vez3_quando = str_recurso}
		str_return = gDataAp1vez3_quando
	}
	
	gDataAp1vezACP	= ""
	gDataAp1vezACP1 = ""
	gDataAp1vezACP2	= ""
	gDataAp1vezVNA	= ""
	gDataAp1vezVCC	= ""
	
	if (str_return.length == 10){str_return = str_return.substr(0,7)}
	return str_return;
}

function getData1vezVNA(id_ap, ts_ap, dt_ap, dt_nasc, p){
	var str_return="0"
	var ano_nasc = dt_nasc.substr(0,4)
	var mes_nasc = dt_nasc.substr(5,2)
	var dia_nasc = dt_nasc.substr(8,2)
	
	var ano_ap = dt_ap.substr(0,4)
	var mes_ap = dt_ap.substr(5,2)
	var idd_ap = id_ap - parseInt(id_ap,10)
	id_ap = parseInt(id_ap,10)+"."+Math.round (idd_ap*12)
	var id_soMeses = get_tsSoMeses(id_ap)
	var ts_soMeses = get_tsSoMeses(ts_ap)
	var idm_ap = parseInt(id_ap,10)*12 + parseInt(id_soMeses,10)
	var	tsm_ap = parseInt(ts_ap,10)*12 + parseInt(ts_soMeses,10)
	var dif_ap_2008 = ((ano_ap - 2008)*12)+ parseInt(mes_ap,10)
	
	var idm_2008 = idm_ap - dif_ap_2008
	var tsm_2008 = tsm_ap - dif_ap_2008
	var idm_pos = idm_2008
	var tsm_pos = tsm_2008
	var id_pos = idm_pos/12
	var ts_pos = tsm_pos/12
	
	var id_TC = get_pTC_ADC(ano_ap,"1")
	var ts_TC = get_pTC_ADC(ano_ap,"2")
	var ano_pos = 2008
	var mes_pos = 0
	var dia_pos = 0
	for (i=0; i<50; i++){
		var id_TC = get_pTC_ADC(ano_pos,"1")
		var ts_TC = get_pTC_ADC(ano_pos,"2")
		var tc_TC = get_pTC_ADC(ano_pos,"3")
		for (j=1; j<13; j++){
			mes_pos+=1
			idm_pos+=1  
			tsm_pos+=1
			id_pos = idm_pos/12
			ts_pos = tsm_pos/12
			if (id_pos <= 70){
				if (p == "CC"){
					if ((id_pos >= id_TC) && (ts_pos >= tc_TC)){
						dia_pos = getUltimoDiaMes(ano_pos, parseInt(mes_pos,10), "1")
						if (mes_pos < 10){mes_pos = "0"+mes_pos}
						str_return = ano_pos +"-"+ mes_pos +"-"+ dia_pos
					}
				}else{	
					if (((id_pos >= id_TC) && (ts_pos >= ts_TC))||((id_pos >= 65) && (ts_pos >= 15))){
						dia_pos = getUltimoDiaMes(ano_pos, parseInt(mes_pos,10), "1")
						if (mes_pos < 10){mes_pos = "0"+mes_pos}
						str_return = ano_pos +"-"+ mes_pos +"-"+ dia_pos
					}
				}
				if (str_return != "0"){
					i=50;
					break;
				}
			}else{
				i=50;
				break;
			
			}
			if (mes_pos == 12){
				ano_pos+=1 
				mes_pos =0
			}
		}
	}
	return str_return;
}

function getDataAp1vezASP(ts_2005, id_ap, ts_ap, dt_ap){
	var str_return="0"
	var ano_ap = dt_ap.substr(0,4)
	var mes_ap = dt_ap.substr(5,2)
	var idd_ap = id_ap - parseInt(id_ap,10)
	id_ap = parseInt(id_ap,10)+"."+Math.round (idd_ap*12)
	var id_soMeses = get_tsSoMeses(id_ap)
	var ts_soMeses = get_tsSoMeses(ts_ap)
	var idm_ap = parseInt(id_ap,10)*12 + parseInt(id_soMeses,10)
	var	tsm_ap = parseInt(ts_ap,10)*12 + parseInt(ts_soMeses,10)
	var dif_ap_2008 = ((ano_ap - 2008)*12)+ parseInt(mes_ap,10)
	
	var idm_2008 = idm_ap - dif_ap_2008
	var tsm_2008 = tsm_ap - dif_ap_2008
	var idm_pos = idm_2008
	var tsm_pos = tsm_2008
	var id_pos = idm_pos/12
	var ts_pos = tsm_pos/12
	
	var ano_pos = 2008
	var mes_pos = 0
	for (i=0; i<50; i++){
		var idV_legal = getIdadeTempoRBAnAA(ano_pos,"iv")
		var tsV_legal = getIdadeTempoRBAnAA(ano_pos,"tv")
		var tsA_legal = getIdadeTempoRBAnAA(ano_pos,"ta")
		for (j=1; j<13; j++){
			mes_pos+=1
			idm_pos+=1  
			tsm_pos+=1
			id_pos = idm_pos/12
			ts_pos = tsm_pos/12
			dt_pos = ano_pos+"-"+mes_pos
			if (str_return == "0"){
				if (id_pos < 70){
					ap_sp1vezA = getDataPASP(ts_2005, ts_pos, id_pos, tsA_legal, idV_legal, ano_pos, dt_pos)
					if (ap_sp1vezA == "ok"){
						dia_pos = getUltimoDiaMes(ano_pos, parseInt(mes_pos,10), "1")
						if (mes_pos < 10){mes_pos = "0"+mes_pos}
						str_return = ano_pos +"-"+ mes_pos +"-"+ dia_pos
						i=50;
						break;
					}
				}else{
					i=50;
					break;
				}
			}
			if (mes_pos == 12){
				ano_pos+=1 
				mes_pos =0
			}
		}
		
	}
	return str_return;
}



function getDataPASP(ts_2005, tsPosicao, idPosicao, tsA_legal, idA_legal, ano_pos, dt_pos){//reg. cond. acesso aposent. sem penaliza
	var str_return=""
		
	if ((ts_2005 >= 36)||(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 (ts_2005 < 36){
		if (ano_pos >= 2015){
			if (tsPosicao >= tsA_legal){
				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 getIdadeTServicoEmMeses(valor, tv){
	var str_out = 0
	if (tv == "td"){str_out = parseInt(valor,10)*12 + Math.round ((valor - parseInt(valor,10))*12)}
	if (tv == "tc"){str_out = (valor*12) + get_tsSoMeses(valor)}
	return str_out;
}

function getIdadeTServicoEmAnosMeses(valor){
	var str_out = 0
	str_out = parseInt(valor/12,10) + parseInt(valor%12,10)
	return str_out;
}

function getDataApLimiteIdade(id_ap, ts_ap, dt_ap, dt_nasc){
	var str_return="0"
	var ano_nasc = dt_nasc.substr(0,4)
	var mes_nasc = dt_nasc.substr(5,2)
	var dia_nasc = dt_nasc.substr(8,2)
	
	var ano_ap = dt_ap.substr(0,4)
	var mes_ap = dt_ap.substr(5,2)
	var idd_ap = id_ap - parseInt(id_ap,10)
	id_ap = parseInt(id_ap,10)+"."+Math.round (idd_ap*12)
	var id_soMeses = get_tsSoMeses(id_ap)
	var ts_soMeses = get_tsSoMeses(ts_ap)
	var idm_ap = parseInt(id_ap,10)*12 + parseInt(id_soMeses,10)
	var	tsm_ap = parseInt(ts_ap,10)*12 + parseInt(ts_soMeses,10)
	var dif_ap_2008 = ((ano_ap - 2008)*12)+ parseInt(mes_ap,10)
	
	var idm_2008 = idm_ap - dif_ap_2008
	var tsm_2008 = tsm_ap - dif_ap_2008
	var idm_pos = idm_2008
	var tsm_pos = tsm_2008
	var id_pos = idm_pos/12
	var ts_pos = tsm_pos/12
	
	var id_TC = get_pTC_ADC(ano_ap,"1")
	var ts_TC = get_pTC_ADC(ano_ap,"2")
	var ano_pos = 2008
	var mes_pos = 0
	var dia_pos = 0
	for (i=0; i<50; i++){
		var id_TC = get_pTC_ADC(ano_pos,"1")
		var ts_TC = get_pTC_ADC(ano_pos,"2")
		var tc_TC = get_pTC_ADC(ano_pos,"3")
		for (j=1; j<13; j++){
			mes_pos+=1
			idm_pos+=1  
			tsm_pos+=1
			id_pos = idm_pos/12
			ts_pos = tsm_pos/12
					
			if (parseInt(id_pos,10) >= 70){
				if ((ts_pos >= 5) && (ts_pos < 15)){
					dia_pos = getUltimoDiaMes(ano_pos, parseInt(mes_pos,10), "1")
					if (mes_pos < 10){mes_pos = "0"+mes_pos}
					str_return = ano_pos +"-"+ mes_pos +"-"+ dia_nasc
				}
				i=50;
				break;
			}
			if (mes_pos == 12){
				ano_pos+=1 
				mes_pos =0
			}
		}
	}
	return str_return;
}


function checkIfIsValidDate(obj){
	
	var noNum	="ok";
	var dt		=obj.value;
	var dt1		=parseInt(dt);
	var strNum	="0123456789";
	var dtValid =""
	var str_return = ""
	var str_output = ""
	var dtIniValid = "1937-12-31" 
	var dtFimValid = "1992-12-31"
		
	//var pattern1 = /^[12](\d{3})-([0][1-9]|[1][012])-([0][1-9]|[12](\d{1})|[3][01])$/;
	//var pattern2 = /^[12](\d{3})([0][1-9]|[1][012])([0][1-9]|[12](\d{1})|[3][01])$/;
	
	if (!pattern1.test(dt)){	
		obj.value="";
		return false;
	}
		
	if (isNaN(dt)){
		noNum="ok";
	}else{
		if (dt.length > 8){
			dt=dt.substr(0,8);
		}
		var ano=dt.substr(0,4);
		var mes=dt.substr(4,2);
		var dia=dt.substr(6,2);
		noNum=""
	}
		
	if (noNum=="ok"){
		if (isNaN(dt.substr(4,1))){
			var sepChar=dt.substr(4,1);
			var ano=dt.substr(0,4);
			var mes=dt.substring(5,dt.lastIndexOf(sepChar));
			var dia=dt.substring(dt.lastIndexOf(sepChar)+1,dt.length);
		}
		for(var i=0; i<ano.length;i++) { 
			myChar=ano.substr(i,1);
			if (strNum.indexOf(myChar)==-1){ano=0}
		}
	
		for(var i=0;i<mes.length;i++){
			myChar=mes.substr(i,1);
			if (strNum.indexOf(myChar)==-1){mes=0}
		}

		for(i=0;i<dia.length;i++){
			myChar=dia.substr(i,1);
			if (strNum.indexOf(myChar)==-1){dia=0}
		}
	}
	ano=parseInt(ano,10);
	mes=parseInt(mes,10);
	dia=parseInt(dia,10);
	mes="0"+mes
	dia="0"+dia
	m=mes.substr(mes.length-2,2)
	d=dia.substr(dia.length-2,2)
	str_output = ano+"-"+m+"-"+d;
	
	if (!isValidDate(ano, mes, dia)){obj.value = ""}
	if (isValidDate(ano, mes, dia)){
		if ((str_output >= dtIniValid) && (str_output <= dtFimValid)){
			obj.value = str_output
			write_ti2005();//escreve no Span "ti2005" a idade do subscritor em 2005-12-31
		}else{
			obj.value = ""
			/*
			if (document.getElementById("cga_dataNasc")!=null){document.getElementById("cga_dataNasc").focus()}
			if (document.getElementById("resposta")!=null){manageErrorMsg("cga_dataNasc", "Data inválida");}
			*/
		}
	}
}

function isValidDate(ano, mes, dia){
	var valid="";
	
	var mesMaxDias =new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	
	if ((isNaN(ano)==false) && (ano > 0)){
		if (mes==2){
			if (((ano % 4==0) && (ano % 100 != 0)) || (ano % 400==0)){
				if ((dia > 0) && (dia < 30)){valid="ok"}
			}else{
				if ((dia > 0) && (dia <= mesMaxDias[mes-1])){valid="ok"}
			}
		}
		if ((mes!=2)&& (mes > 0) && (mes < 13)){
			if ((dia > 0) && (dia <= mesMaxDias[mes-1])){valid="ok"}
		}
	}
	if (valid=="ok"){return true;}
	if (valid==""){return false;}
}


function checkIfClean(me){
	var dt = me.value
	if (!pattern1.test(dt)){	
		if (document.getElementById("ti2005")!=null){document.getElementById("ti2005").innerHTML = "";}
		if (document.getElementById("resposta")!=null){document.getElementById("resposta").innerHTML = "";}
	}
}

//-->

