<!-- Modal Generar Certificado -->
<div class="modal fade" id="modalCertificado" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
    aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header bg-blue">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title"><i class="fa fa-file-text-o"></i> Emitir Certificado Médico</h4>
            </div>
            <div class="modal-body">
                <form id="formCertificado">
                    <input type="hidden" name="idatencion" id="cert_idatencion">

                    <div class="row">
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>Tipo de Certificado</label>
                                <select class="form-control selectpicker" name="tipo" id="cert_tipo"
                                    onchange="cambiarTipoCert()">
                                    <option value="MEDICO">Certificado Médico (General)</option>
                                    <option value="REPOSO">Certificado de Reposo (IESS)</option>
                                    <option value="PERSONALIZADO">Texto Libre (Personalizado)</option>
                                </select>
                            </div>
                        </div>
                    </div>
                    <hr>

                    <!-- BLOQUE REPOSO -->
                    <div id="bloque_reposo"
                        style="display:none; background: #fff8e1; padding: 15px; border-radius: 5px;">
                        <h5 class="text-orange"><i class="fa fa-bed"></i> Detalles del Reposo</h5>
                        <div class="row">
                            <div class="col-md-3">
                                <label>Contingencia</label>
                                <select class="form-control" id="cert_contingencia">
                                    <option value="ENFERMEDAD GENERAL">Enfermedad General</option>
                                    <option value="MATERNIDAD">Maternidad</option>
                                    <option value="ACCIDENTE TRABAJO">Accidente de Trabajo</option>
                                </select>
                            </div>
                            <div class="col-md-2">
                                <label>Días</label>
                                <input type="number" class="form-control" id="cert_dias" value="1" min="1"
                                    onchange="calcularFechaFin()">
                            </div>
                            <div class="col-md-3">
                                <label>Desde</label>
                                <input type="date" class="form-control" id="cert_inicio"
                                    value="<?php echo date('Y-m-d'); ?>" onchange="calcularFechaFin()">
                            </div>
                            <div class="col-md-3">
                                <label>Hasta (Inclusive)</label>
                                <input type="date" class="form-control" id="cert_fin" readonly>
                            </div>
                        </div>
                    </div>

                    <!-- BLOQUE MEDICO / PERSONALIZADO -->
                    <div id="bloque_texto">
                        <div class="form-group">
                            <label id="lbl_texto">Observaciones Adicionales</label>
                            <textarea class="form-control" rows="5" id="cert_texto"
                                placeholder="Escriba aquí..."></textarea>
                        </div>
                    </div>

                    <hr>
                    <div class="row">
                        <div class="col-md-6">
                            <div class="alert alert-info">
                                <i class="fa fa-info-circle"></i> El certificado incluirá automáticamente los
                                diagnósticos de esta consulta y su firma electrónica.
                            </div>
                        </div>
                        <div class="col-md-6 text-right">
                            <div class="form-group">
                                <label>Contraseña de Firma Electrónica:</label>
                                <input type="password" class="form-control" id="cert_password"
                                    placeholder="Su clave del .p12" style="width: 200px; display:inline-block;">
                                <button type="button" class="btn btn-primary btn-lg" onclick="generarYFirmarCert()"><i
                                        class="fa fa-certificate"></i> Firmar y Generar</button>
                            </div>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>

<script>
    function cambiarTipoCert() {
        var tipo = $("#cert_tipo").val();
        if (tipo == 'REPOSO') {
            $("#bloque_reposo").show();
            $("#lbl_texto").text("Observaciones (Opcional)");
            $("#cert_texto").val("");
            calcularFechaFin();
        } else if (tipo == 'PERSONALIZADO') {
            $("#bloque_reposo").hide();
            $("#lbl_texto").text("Contenido del Certificado");
            $("#cert_texto").val("Por medio de la presente certifico...");
        } else {
            $("#bloque_reposo").hide();
            $("#lbl_texto").text("Observaciones (Opcional)");
            $("#cert_texto").val("Paciente clinicamente estable.");
        }
    }

    function calcularFechaFin() {
        var dias = parseInt($("#cert_dias").val());
        var inicio = new Date($("#cert_inicio").val());
        // Sumar dias - 1 porque el inicio cuenta como día 1
        inicio.setDate(inicio.getDate() + (dias - 1));

        // Formato YYYY-MM-DD
        var d = inicio.getDate();
        var m = inicio.getMonth() + 1;
        var y = inicio.getFullYear();
        var fechaStr = y + '-' + (m <= 9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);

        $("#cert_fin").val(fechaStr);
    }

    function generarYFirmarCert() {
        var pass = $("#cert_password").val();
        if (pass == '') { alert("Ingrese su contraseña de firma"); return; }

        var tipo = $("#cert_tipo").val();
        var datos = {};

        if (tipo == 'REPOSO') {
            datos.dias = $("#cert_dias").val();
            datos.fecha_inicio = $("#cert_inicio").val();
            datos.fecha_fin = $("#cert_fin").val();
            datos.contingencia = $("#cert_contingencia").val();
        } else if (tipo == 'PERSONALIZADO') {
            datos.texto_libre = $("#cert_texto").val();
        } else {
            datos.observaciones = $("#cert_texto").val();
        }

        var formData = new FormData();
        formData.append("idatencion", $("#cert_idatencion").val());
        formData.append("tipo", tipo);
        formData.append("password", pass);
        formData.append("contenido", JSON.stringify(datos));

        $.ajax({
            url: "../ajax/certificado.php?op=guardar_y_firmar",
            type: "POST",
            data: formData,
            contentType: false,
            processData: false,
            success: function (datos) {
                try {
                    // Limpiar respuesta si hay basura antes del JSON
                    var jsonStr = datos.trim();
                    if (jsonStr.indexOf("{") > 0) jsonStr = jsonStr.substring(jsonStr.indexOf("{"));

                    var data = JSON.parse(jsonStr);
                    if (data.success) {
                        alert(data.message);
                        window.open(data.url, '_blank');
                        $("#modalCertificado").modal('hide');
                    } else {
                        alert("Error: " + data.message);
                    }
                } catch (e) {
                    alert("Error resp server: " + datos);
                }
            }
        });
    }
</script>