<!-- ============================================================
     MODAL DE BUSCA AUTOMÁTICA VIA NÚMERO CNJ
     Incluir em: application/modules/admin/views/case/add.php
     
     Adicionar antes do fechamento do </body> da view add.php:
     <?php $this->load->view('case/cnj_modal_busca'); ?>
     
     E adicionar o botão de ativação no topo do formulário:
     <button type="button" id="btn-buscar-cnj" class="btn btn-info btn-lg">
         <i class="fa fa-search"></i> Buscar processo pelo número CNJ
     </button>
     ============================================================ -->

<!-- Botão de atalho (colar onde preferir no formulário) -->
<div class="alert alert-info" style="margin-bottom:20px;">
    <i class="fa fa-magic"></i>
    <strong>Novo!</strong> Preencha automaticamente os dados do processo informando apenas o número CNJ.
    <button type="button" class="btn btn-primary btn-sm pull-right" id="btn-abrir-cnj" style="margin-top:-4px;">
        <i class="fa fa-search"></i> Buscar por número CNJ
    </button>
</div>

<!-- MODAL -->
<div class="modal fade" id="modal-cnj" tabindex="-1" role="dialog" aria-labelledby="modalCnjLabel">
    <div class="modal-dialog modal-lg" role="document">
        <div class="modal-content">

            <div class="modal-header" style="background:#00539B; color:#fff; border-radius:4px 4px 0 0;">
                <button type="button" class="close" data-dismiss="modal" aria-label="Fechar" style="color:#fff; opacity:1;">
                    <span aria-hidden="true">&times;</span>
                </button>
                <h4 class="modal-title" id="modalCnjLabel">
                    <i class="fa fa-search"></i> Busca Automática de Processo
                </h4>
                <small>Consulta nas bases do CNJ (DataJud) e PJe</small>
            </div>

            <div class="modal-body">

                <!-- Campo de busca -->
                <div class="row">
                    <div class="col-md-9">
                        <div class="form-group">
                            <label for="cnj-input">Número do processo (CNJ)</label>
                            <input type="text"
                                   id="cnj-input"
                                   class="form-control input-lg"
                                   placeholder="0000000-00.0000.0.00.0000"
                                   maxlength="25"
                                   autocomplete="off">
                            <span class="help-block">
                                Formato padrão CNJ: <code>NNNNNNN-DD.AAAA.J.TT.OOOO</code>
                                &nbsp;|&nbsp; Ex: <code>0029368-51.2017.8.17.8201</code>
                            </span>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <label>&nbsp;</label>
                        <button type="button" id="btn-cnj-buscar" class="btn btn-primary btn-lg btn-block">
                            <i class="fa fa-search"></i> Buscar
                        </button>
                    </div>
                </div>

                <!-- Spinner de carregamento -->
                <div id="cnj-loading" style="display:none; text-align:center; padding:30px 0;">
                    <i class="fa fa-spinner fa-spin fa-3x" style="color:#00539B;"></i>
                    <p class="text-muted" style="margin-top:10px;">Consultando bases do CNJ...</p>
                </div>

                <!-- Área de resultado -->
                <div id="cnj-resultado" style="display:none;">
                    <hr>

                    <!-- Badge da fonte -->
                    <div style="margin-bottom:12px;">
                        <span class="label label-success" id="cnj-badge-fonte" style="font-size:13px; padding:5px 10px;"></span>
                    </div>

                    <!-- Dados encontrados -->
                    <div class="row">
                        <div class="col-md-8">
                            <div class="form-group">
                                <label>Classe / Título do processo</label>
                                <input type="text" id="cnj-titulo" class="form-control" readonly>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>Data de ajuizamento</label>
                                <input type="text" id="cnj-data" class="form-control" readonly>
                            </div>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-6">
                            <div class="form-group">
                                <label>Tribunal</label>
                                <input type="text" id="cnj-tribunal" class="form-control" readonly>
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="form-group">
                                <label>Órgão julgador / Vara</label>
                                <input type="text" id="cnj-orgao" class="form-control" readonly>
                            </div>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-6">
                            <div class="form-group">
                                <label><i class="fa fa-user text-success"></i> Polo Ativo</label>
                                <input type="text" id="cnj-polo-ativo" class="form-control" readonly>
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="form-group">
                                <label><i class="fa fa-user text-danger"></i> Polo Passivo</label>
                                <input type="text" id="cnj-polo-passivo" class="form-control" readonly>
                            </div>
                        </div>
                    </div>

                    <div class="row" id="cnj-row-assunto" style="display:none;">
                        <div class="col-md-12">
                            <div class="form-group">
                                <label>Assunto(s) processual(is)</label>
                                <input type="text" id="cnj-assunto" class="form-control" readonly>
                            </div>
                        </div>
                    </div>

                    <div class="row" id="cnj-row-movimento" style="display:none;">
                        <div class="col-md-12">
                            <div class="form-group">
                                <label>Último movimento</label>
                                <input type="text" id="cnj-movimento" class="form-control" readonly>
                            </div>
                        </div>
                    </div>

                    <!-- Seleção do cliente (obrigatório) -->
                    <hr>
                    <div class="alert alert-warning">
                        <i class="fa fa-info-circle"></i>
                        Selecione o <strong>cliente</strong> vinculado a este processo para continuar:
                    </div>
                    <div class="row">
                        <div class="col-md-6">
                            <div class="form-group">
                                <label>Cliente <span class="text-danger">*</span></label>
                                <select id="cnj-client-id" class="form-control select2">
                                    <option value="">— Selecione o cliente —</option>
                                    <?php if (!empty($clients)): ?>
                                        <?php foreach ($clients as $c): ?>
                                            <option value="<?php echo $c->id; ?>"><?php echo htmlspecialchars($c->name); ?></option>
                                        <?php endforeach; ?>
                                    <?php endif; ?>
                                </select>
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="form-group">
                                <label>Etapa do processo</label>
                                <select id="cnj-stage-id" class="form-control">
                                    <?php if (!empty($stages)): ?>
                                        <?php foreach ($stages as $s): ?>
                                            <option value="<?php echo $s->id; ?>"><?php echo htmlspecialchars($s->name); ?></option>
                                        <?php endforeach; ?>
                                    <?php endif; ?>
                                </select>
                            </div>
                        </div>
                    </div>
                </div>

                <!-- Área de erro -->
                <div id="cnj-erro" style="display:none;" class="alert alert-danger">
                    <i class="fa fa-exclamation-triangle"></i>
                    <span id="cnj-erro-msg"></span>
                    <hr>
                    <small>
                        O processo não foi encontrado nas bases consultadas. Você pode:
                        <ul>
                            <li>Verificar se o número está correto</li>
                            <li>Cadastrar o processo manualmente no formulário abaixo</li>
                        </ul>
                    </small>
                </div>

            </div><!-- /modal-body -->

            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">
                    <i class="fa fa-times"></i> Cancelar
                </button>
                <button type="button" id="btn-cnj-importar" class="btn btn-success btn-lg" style="display:none;">
                    <i class="fa fa-check"></i> Usar estes dados e preencher formulário
                </button>
            </div>

        </div><!-- /modal-content -->
    </div>
</div>

<!-- ============================================================
     JavaScript do modal
     ============================================================ -->
<script>
(function($) {

    // Dados buscados ficam aqui para uso no botão importar
    var dadosCNJ = null;

    // Abre o modal
    $('#btn-abrir-cnj').on('click', function() {
        $('#modal-cnj').modal('show');
    });

    // Máscara automática enquanto o usuário digita
    $('#cnj-input').on('input', function() {
        var v = $(this).val().replace(/[^0-9]/g, '');
        var f = '';
        if (v.length > 0) f += v.substr(0, 7);
        if (v.length > 7) f += '-' + v.substr(7, 2);
        if (v.length > 9) f += '.' + v.substr(9, 4);
        if (v.length > 13) f += '.' + v.substr(13, 1);
        if (v.length > 14) f += '.' + v.substr(14, 2);
        if (v.length > 16) f += '.' + v.substr(16, 4);
        $(this).val(f);
    });

    // Enter no campo dispara busca
    $('#cnj-input').on('keypress', function(e) {
        if (e.which === 13) $('#btn-cnj-buscar').trigger('click');
    });

    // Botão de busca
    $('#btn-cnj-buscar').on('click', function() {
        var numero = $.trim($('#cnj-input').val());
        if (!numero) {
            alert('Informe o número do processo.');
            return;
        }

        // Reset UI
        dadosCNJ = null;
        $('#cnj-resultado, #cnj-erro, #btn-cnj-importar').hide();
        $('#cnj-loading').show();

        $.ajax({
            url: '<?php echo site_url("admin/cases/buscar_processo_cnj"); ?>',
            type: 'POST',
            data: { numero_cnj: numero },
            dataType: 'json',
            timeout: 20000,
            success: function(r) {
                $('#cnj-loading').hide();

                if (!r.success) {
                    $('#cnj-erro-msg').text(r.msg || 'Processo não encontrado.');
                    $('#cnj-erro').show();
                    return;
                }

                dadosCNJ = r;

                // Preenche campos do resultado
                var fonteLabel = { datajud: 'DataJud (CNJ)', pje_worker: 'PJe Comunica' };
                $('#cnj-badge-fonte').text('Fonte: ' + (fonteLabel[r.fonte] || r.fonte));

                $('#cnj-titulo').val(r.titulo || '');
                $('#cnj-data').val(r.data_inicio ? formatarData(r.data_inicio) : '');
                $('#cnj-tribunal').val(r.tribunal || '');
                $('#cnj-orgao').val(r.orgao_julgador || '');
                $('#cnj-polo-ativo').val(r.polo_ativo || '');
                $('#cnj-polo-passivo').val(r.polo_passivo || '');

                if (r.descricao) {
                    $('#cnj-assunto').val(r.descricao);
                    $('#cnj-row-assunto').show();
                }
                if (r.ultimo_movimento) {
                    $('#cnj-movimento').val(r.ultimo_movimento);
                    $('#cnj-row-movimento').show();
                }

                $('#cnj-resultado').show();
                $('#btn-cnj-importar').show();
            },
            error: function(xhr) {
                $('#cnj-loading').hide();
                $('#cnj-erro-msg').text('Erro de comunicação com o servidor. Tente novamente.');
                $('#cnj-erro').show();
            }
        });
    });

    // Botão "Usar estes dados" — preenche o formulário principal
    $('#btn-cnj-importar').on('click', function() {
        var clientId = $('#cnj-client-id').val();
        if (!clientId) {
            alert('Selecione o cliente antes de continuar.');
            $('#cnj-client-id').focus();
            return;
        }

        if (!dadosCNJ) return;

        // Preenche o formulário principal de cadastro de caso
        $('[name="title"]').val(dadosCNJ.titulo || '');
        $('[name="case_no"]').val(dadosCNJ.numero || '');
        $('[name="client_id"]').val(clientId).trigger('change'); // trigger para select2
        $('[name="o_lawyer"]').val(dadosCNJ.polo_passivo || '');
        $('[name="description"]').val(dadosCNJ.descricao || '');

        // Data no formato DD/MM/AAAA (padrão do formulário do sistema)
        if (dadosCNJ.data_inicio) {
            $('[name="start_date"]').val(formatarDataBR(dadosCNJ.data_inicio));
        }

        // Stage
        var stageId = $('#cnj-stage-id').val();
        if (stageId) $('[name="case_stage_id"]').val(stageId).trigger('change');

        // Fecha modal
        $('#modal-cnj').modal('hide');

        // Scroll para o formulário
        $('html, body').animate({ scrollTop: $('[name="title"]').offset().top - 80 }, 500);

        // Destaque visual no formulário
        $('[name="title"]').addClass('input-cnj-preenchido');
        setTimeout(function() {
            $('[name="title"]').removeClass('input-cnj-preenchido');
        }, 3000);
    });

    function formatarData(ymd) {
        if (!ymd) return '';
        var p = ymd.split('-');
        return p.length === 3 ? p[2] + '/' + p[1] + '/' + p[0] : ymd;
    }

    function formatarDataBR(ymd) {
        return formatarData(ymd);
    }

})(jQuery);
</script>

<style>
.input-cnj-preenchido {
    border-color: #5cb85c !important;
    box-shadow: 0 0 8px rgba(92, 184, 92, 0.6) !important;
    transition: all 0.3s ease;
}
#modal-cnj .modal-header small {
    display: block;
    opacity: 0.8;
    margin-top: 2px;
}
</style>
