// JavaScript Document V1.0 CAT

function calculaCat(ArrPagos, Pctinicial, saldoIni){
	var difCal=100;
	var itera=0;
	var checkSum=0;
	var pctTempPos=Pctinicial/2;
	var pctTempNeg=Pctinicial*2;
	var difTmp=0;
	var changeIt="N";
	while(itera<5000){
		checkSum=0;
		for (i=0; i<ArrPagos.length;i++){
			checkSum=checkSum+(ArrPagos[i]/( Math.pow(1+Pctinicial,i+1)));
		}
		difCal=checkSum+saldoIni;
		if (Math.abs(difCal)<1){
			break;
			}
			else{
				if (difCal>0){
					pctTempPos=Pctinicial;
					pctTmp=Pctinicial;
					Pctinicial=(Pctinicial+(Pctinicial/4)+Pctinicial)/2;
					if (pctTempNeg<Pctinicial&&changeIt=="Y"){
						Pctinicial=(pctTempNeg+pctTmp)/2
					}
				}else{
						pctTempNeg=Pctinicial;
						pctTmp=Pctinicial;
						Pctinicial=(Pctinicial-(Pctinicial/4)+Pctinicial)/2;
						if (pctTempPos>Pctinicial&&changeIt=="Y"){
							Pctinicial=(pctTempPos+pctTmp)/2
						}
				}
			}
			changeIt="N";
			if (difTmp>0 && difCal<0){
				changeIt="Y";
			}
			if (difTmp<0 && difCal>0){
				changeIt="Y";
			}
			itera=itera+1;
			checksum=0;
			difTmp=difCal;
		if (Pctinicial<0.0000001){
			break;
		}
			
	}
	Pctinicial=(Math.pow(1+Pctinicial,12)-1)*100;
	return Pctinicial;
}


