var doc = $(document);
doc.ready(inicializarEventos);
var minGracia = 0;

function inicializarEventos() {
    $('#frmSimulador').attr('autocomplete','off');

	// Se modifica estilo.
    $("#simula").css("cursor", "pointer");
    $("#solicita").css("cursor", "pointer");
    $("#imprime").css("cursor", "pointer");
    $("#limpiar").css("cursor", "pointer");
        
	// Se asignan eventos.
    $("#simula").click(simular);
    $("#solicita").click(solicita);
    $("#imprime").click(reporte);
    $("#limpiar").click(limpiar);
    $("#limpiar").click(cambiaProducto);
    $("#antiguedad").change(setDFL2);
    $("#propiedad").change(limpiaResultado);
    $("#antiguedad").change(limpiaResultado);
    $("#dfl2").click(limpiaResultado);
    $("#plazo").change(limpiaResultado);
    $("#plazo").change(asignadividendos);

    $("#afiliado").change(limpiaResultado);
    $("#afiliado").change(cambiaSeguroCesantia);
    $("#gracia").change(limpiaResultado);
    $("#gracia").change(validaGracia);

    $("#graciaReal").change(cambiavencimiento);

    $("#segIncencio").click(limpiaResultado);
    $("#segDesgravamen").click(limpiaResultado);
    $("#seguroDsInv").click(limpiaResultado);
    $("#segCesantia").click(limpiaResultado);

    $("#valor_propiedad_aux").blur(formatoPropNumero);
    $("#valor_propiedad_aux").blur(calculaFinanciamiento);

    $("#valor_propiedad_pes").blur(calcula_uf);
    $("#monto_ctdo_pes").blur(calcula_uf);
    $("#monto_uf_pes").blur(calcula_uf);

    $("#valor_propiedad_pes").blur(calcula_prop);
    $("#monto_ctdo_pes").blur(calcula_cont);
    $("#monto_uf_pes").blur(calcula_cred);

    $("#monto_uf_aux").blur(formatoCreditoNumero);
    $("#monto_uf_aux").blur(calculaCredito);
    $("#monto_uf_aux").blur(calculaFinanciamiento);

    $("#monto_ctdo_aux").blur(formatoContadoNumero);
    $("#monto_ctdo_aux").blur(calculaContado);
    $("#monto_ctdo_aux").blur(calculaFinanciamiento);

    $("#financiamiento").blur(formatoPorcentaje);
    $("#financiamiento").blur(calculaPorcentaje);

    $("#valor_propiedad_aux").keypress(validaDigito);
    $("#valor_propiedad_aux").keypress(limpiaMontosPropiedad);
    $("#monto_uf_aux").keypress(validaDigito);
    $("#monto_ctdo_aux").keypress(validaDigito);
    $("#financiamiento").keypress(validaDigito);
    $("#valor_propiedad_pes").keypress(validaDigito);
    $("#valor_propiedad_pes").keypress(limpiaMontosPropiedad);
    $("#monto_ctdo_pes").keypress(validaDigito);
    $("#monto_uf_pes").keypress(validaDigito);
    
    $('#imprime').css("visibility", "hidden");
    $("#gracia").val(minGracia);
    $('#producto').change(cambiaProducto);
    $('#producto').change(cambiaSeguroCesantia);
}

function setParametros(action, Rut, Dv) {
     return {
        method: action, 
        mtoPropiedad:$('#mtoPropiedad').val(),
        mtoCredito: $('#mtoCredito').val(),
        mtoContado: $('#mtoContado').val(),
        propiedad: $('#propiedad').val(),
        antiguedad: $('#antiguedad').val(),
        dfl2: $('#dfl2').attr('checked'),
        plazo: $('#plazo').val(),
        gracia: $('#gracia').val(),
        seguroInc: $('#segIncencio').attr('checked'),
        seguroDs: $('#segDesgravamen').attr('checked'),
        seguroDsInv: $('#seguroDsInv').attr('checked'),
        seguroCs: $('#segCesantia').attr('checked'),
        producto: $('#producto').val()
    }
}

function solicita() {
      
        $("form:first").attr("action","/lheroes/simulacion.do?method=solicita");
        $("form:first").attr("target","");
        $("form:first").submit();
        return true;
}

function showSolicita(data, textStatus) {
   switch(textStatus) {
      case "success": 
         $('#solicita').html(data);
         break;
     default:
         $('#solicita').html("Error: " + txtStatus);
   }
   $("#pagina").css("visibility", "hidden");
   $("#solicita").css("visibility", "visible");
}


function showResult(data, textStatus) {
   switch(textStatus) {
      case "success": 
         $('#resultado').html(data);
         if (data.length > 0) {
             $('#imprime').css("visibility", "visible");
         }
         break;
     default:
         $('#resultado').html("Error: " + txtStatus);
   }
}

function setDFL2() {
    
    if ($("#antiguedad").val() == '2') {
        $('#dfl2').attr('checked', false);
        $('#dfl2').attr('disabled', true);
    } else {
        $('#dfl2').attr('disabled', false);
    }
    
}

function limpiaResultado() {
    $('#resultado').html('');
    $('#imprime').css("visibility", "hidden");
    asignadividendos();
}

function cambiavencimiento(){

$("#gracia").val(eval($("#graciaReal").val()));
limpiaResultado();

}

function validaGracia() {

    $("#graciaReal").val(eval($("#gracia").val()));
    if (eval($("#gracia").val()) < minGracia) {
        alert("La gracia minima es de " + minGracia + " mes")
        $("#gracia").val(minGracia);
    }
}

function cambiaSeguroCesantia() {
    if ($("#producto").val() != 20) {
        if ($("#afiliado").val() == 0) {
            $('#segCesantia').attr('checked', true);
            minGracia = 0;
        } else {
            $('#segCesantia').attr('checked', false);
            minGracia = 1;
        }
        if (eval($("#gracia").val()) < minGracia) {
            $("#gracia").val(minGracia);
        }
    }
}

function limpiar() {
    $('form')[0].reset();
    limpiaResultado();
}

function reporte() {
      
        $("form:first").attr("action","/lheroes/simulacion.do?method=print");
        $("form:first").attr("target","_blank");
        $("form:first").submit();
        return true;
}

function asignadividendos(){


    $("#numerodividendos").val(eval($("#plazo").val()*12));

}

function simular() {

        if (!valNumero("valor_propiedad_aux")) {
            alert("Debe indicar el valor de la propiedad");
            return false;
        }
        if (!valNumero("monto_uf_aux")) {
            alert("Debe indicar el valor del crédito");
            return false;
        }
        if (eval(contenido("mtoCredito")) < eval(contenido("minimoCredito"))) {
            alert("El monto del credito debe ser mayor a U.F " + contenido("minimoCredito"));
            return false;
        }
        if (eval(contenido("mtoCredito")) > 5000 && $("#producto").val() == 20) {
            alert("El monto de la propiedad no debe ser mayor a U.F 5.000 ");
            return false;
        }
        if (eval(contenido("mtoPropiedad")) < eval(contenido("minimoPropiedad"))) {
            alert("El monto de la propiedad debe ser mayor a U.F " + contenido("minimoPropiedad"));
            return false;
        }
        
        if (eval(toNumber(contenido("financiamiento"))) > eval(contenido("maximoPorcentajeVivienda"))) {
                alert("El % de financiamiento no puede superar el " + contenido("maximoPorcentajeVivienda") + "%");
                return false;
        }

        $.get('/lheroes/simulacion.do' , setParametros('calculo'), showResult);
        return true;
}
