// JavaScript Document
// DEPENDENCIAS (ficheros js a incluir antes):
// simulador_camposNum.js
// simulador_matFin.js
// tablas.js


// Para tomar el valor de los botones de radio y saber si se pagan o no intereses durante la carencia
function TomarValorInteresesCarencia(){
	var iIndice=-1
	for(i=0;i<document.miForm.carencia_intereses.length;i++){
		if(document.miForm.carencia_intereses[i].checked==true){
			iIndice=i
			break;
		}
	}
	return iIndice;                                                                                                                                                                                                                                                                                      
}


function doCalcular(tipoCalculo){
	// Comprobaciones de datos.
	var l_sigo = true;
	if (document.miForm.dat_capital.value == '') {
		document.miForm.dat_capital.value = '0,00';
	}
	if (document.miForm.dat_interes.value == '') {
		document.miForm.dat_interes.value = '0,000';
	}
	if (document.miForm.dat_plazo.value == '') {
		document.miForm.dat_plazo.value = '0';
	}
	if (document.miForm.dat_carencia.value == '') {
		document.miForm.dat_carencia.value = '0';
	}
	
	var capIni = getNumeroCampo(document.miForm.dat_capital);
	if(isNaN(capIni) || (capIni == 0)){
		alert("Debe introducir el importe del Capital Inicial");
		document.miForm.dat_capital.focus();
		l_sigo = false;
	}
	
	var tInteres = getNumeroCampo(document.miForm.dat_interes);
	if (isNaN(tInteres)) {
		alert("Debe introducir el Tipo de Interés");
		document.miForm.dat_interes.focus();
		l_sigo = false;
	} 
	
	var tAmortizacion = getNumeroCampo(document.miForm.dat_plazo);
	if(isNaN(tAmortizacion) || (tAmortizacion == 0)){
		alert("Debe introducir el Plazo de Amortización");
		document.miForm.dat_plazo.focus();
		l_sigo = false;
	}
	var l_numCuotas = tAmortizacion * document.miForm.sel_plazo.value;

	var tCarencia = getNumeroCampo(document.miForm.dat_carencia);
	if(isNaN(tCarencia) || (tCarencia == 0)){
		alert("Debe introducir el Periodo de carencia");
		document.miForm.dat_carencia.focus();
		l_sigo = false;
	} else if (tCarencia >= l_numCuotas) {
		window.alert('El final del periodo de carencia debe ser anterior al final del préstamo');
		document.miForm.dat_carencia.focus();
		l_sigo = false;
	}

	// PENDIENTE COMPROBACIONES ACERCA DE PLAZOS ILEGALES.

    // Realizo el calculo si y sólo si los datos de entra da eran válidos.
	var l_cuota = 0;
	var l_capitalPte = 0;
    if (l_sigo) {
		var l_intMes0 = tInteres/1200;
	   
		var l_interesesPorMes = new Array();
		var l_capitalesPtesPorMes = new Array();
		var l_cuotasPorMes = new Array();
		
		var l_datcarencia = getNumeroCampo(document.miForm.dat_carencia);
		var indice = TomarValorInteresesCarencia();
		var l_carencia_intereses = document.miForm.carencia_intereses[indice].value;

		var l_carencia = 0;
		var l_periodo_carencia = 0;
		var l_cuota_carencia= 0;
		var l_cuota_resto = 0;
		
		if (l_carencia_intereses == 'Con') {
			l_carencia = capIni*tInteres/1200;
		} else {
			l_carencia = 0;
		}
		carencia_tabla = calculaTablaRufmCarencia(l_numCuotas, tInteres, capIni, l_datcarencia, l_carencia);
		l_restoperiodo = carencia_tabla[TA_CUOTA][l_datcarencia + 1];

		setNumeroCampo(document.miForm.res_periodo_carencia, l_restoperiodo);
		setNumeroCampo(document.miForm.res_carencia, l_carencia);
		
		document.miForm.btn_tabla.disabled=false;
		window.location='#topForm1';
	}

	// Reformatear los campos de entrada.
	setNumeroCampo(document.miForm.dat_capital, getNumeroCampo(document.miForm.dat_capital));
    setNumeroCampo(document.miForm.dat_interes, getNumeroCampo(document.miForm.dat_interes));
}

var carencia_tabla;

function mostrarTabla(tipoCalculo) {
        doCalcular(tipoCalculo);
		escribeDocumentoTabla(carencia_tabla);
}
