// JavaScript Document
// DEPENDENCIAS (ficheros js a incluir antes):
// simulador_camposNum.js
// simulador_matFin.js

function doCalcular(){
        // Comprobaciones de datos.
		if (document.miForm.dat_capital.value == '') {
			document.miForm.dat_capital.value = '0,00';
		}
		if (document.miForm.dat_comisiones.value == '') {
			document.miForm.dat_comisiones.value = '0,00';
		}
		if (document.miForm.dat_primas.value == '') {
			document.miForm.dat_primas.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';
		}

        var l_sigo = true;
        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 dat_comisiones = getNumeroCampo(document.miForm.dat_comisiones);
		var dat_primas = getNumeroCampo(document.miForm.dat_primas);
		if (isNaN(dat_comisiones)) {
			dat_comisiones = 0;
		}
		if (isNaN(dat_primas)) {
			dat_primas = 0;
		}
        var comisiones = dat_comisiones + dat_primas;
        
        if (isNaN(comisiones)){
                comisiones= 0;
        }
        
        if(! isNaN(capIni) && (comisiones >= capIni)) {
                alert("La suma de comisiones más primas debe ser inferior al Capital Inicial");
                document.miForm.dat_comisiones.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;
        } 
        // PENDIENTE COMPROBACIONES ACERCA DE INTERESES ILEGALES.
        
        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;
        }
        // PENDIENTE COMPROBACIONES ACERCA DE PLAZOS ILEGALES.

        var l_numCuotas = tAmortizacion * document.miForm.sel_plazo.value;

        // Realizo el calculo si y sólo si los datos de entra da eran válidos.
        var l_cuota = 0;
        var l_tae = 0;
    if (l_sigo) {
		var l_intMes = tInteres/1200
		var l_capitalNeto = capIni - comisiones;

		// C = V0 / [V0/C]
		l_cuota = capIni / rufFactorValorInicial(l_numCuotas, l_intMes);
		var l_intReal = rufInteresPeriodo(l_capitalNeto/l_cuota, l_numCuotas);
		l_tae = 100.0 * convPerATae(l_intReal, 12.0);

		if (l_tae < 100) {
			setNumeroCampo(document.miForm.res_tae, l_tae);
		} else {
			document.miForm.res_tae.value = 'ERROR';
		}
		window.location='#topForm1';
    }
    
    // Reformateo los campos de entrada.
    setNumeroCampo(document.miForm.dat_capital, capIni);
    setNumeroCampo(document.miForm.dat_comisiones, dat_comisiones);
	setNumeroCampo(document.miForm.dat_primas, dat_primas);
    setNumeroCampo(document.miForm.dat_interes, tInteres);
	
}

