<?php
require '../../conexao/conexao.php';
require '../../conexao/acesso.php';
require '../../configuacoes.php';

if (isset($_GET['id']) && $_GET['id'] == '0') {
    $pageTitle = "Incluir Novo banco";
} else {
    $pageTitle = "Alterar banco";
}

$url = http_build_query([
    'banco_select' => $_GET['banco_select'] ?? null,
    'form_submitted' => isset($_GET['form_submitted']) ? $_GET['form_submitted'] : null,
]);
$banco = array(
    'id_banco' => '0',
    'banco' => '',
    'agencia' => '',
    'conta' => '',
);

// Garantir que $bancos exista mesmo quando não houver query (evita Notice)
$bancos = $banco;

if (isset($_GET['id']) && $_GET['id'] == '1') {
    $id_banco = isset($_GET['id_banco']) ? trim($_GET['id_banco']) : null;

    $sql_base = "SELECT * FROM bancos WHERE 1=1";
    $params = [];
    $types = "";

    if (!empty($id_banco) && $id_banco !== "0") {
        $sql_base .= " AND id_banco = ?";
        $params[] = $id_banco;
        $types .= "i"; // 'i' indica que é um inteiro
    }

    $stmt = $connectionmysql->prepare($sql_base);

    if ($stmt) {
        // Se houver parâmetros, vinculamos
        if (!empty($params)) {
            $stmt->bind_param($types, ...$params);
        }

        $stmt->execute();
        $result = $stmt->get_result();

        if ($result->num_rows > 0) {
            $bancos = $result->fetch_assoc(); // Preenchendo as variáveis com o retorno da query
        } else {
            echo "Nenhum banco encontrado com o ID especificado.";
        }

        $stmt->close();
    } else {
        echo "Erro ao preparar a declaração: " . $connectionmysql->error;
    }
}

include('../header.php');
include('../menu.php');

?>

<!DOCTYPE html>
<html lang="pt-br">

<head>
    <link rel="icon" href="\KPI\pages/configuracoes/logo-sm.png">
    <link rel="shortcut icon" href="\KPI\pages/configuracoes/logo-sm.png">

</head>

<body>
    <!-- ============================================================== -->
    <!-- Start Page Content here -->
    <!-- ============================================================== -->
    <div class="wrapper">
        <div class="container-fluid">

            <div class="card-box mt-3">

                <div class="row">
                    <div class="col-6 text-left">
                        <h4 class="page-title"><?php echo $pageTitle ?></h4>
                    </div>

                    <div class="col-6 text-right">
                        <button onclick="goBack()" class="btn btn-light"><i class="mdi mdi-keyboard-backspace"></i> Voltar</button>
                    </div>

                    <div class="col-12">
                        <hr>
                    </div>

                    <div class="col-12">
                        <form id="from_inclusao_erro" method="post" action="../bancos/processa_cadastro_alteracao_bancos.php" onsubmit="return validarFormulario();">
                            <div class="form-row mb-4">

                                <div class="form-group col-12 col-md-4 col-lg-2">
                                    <label for="banco" class="col-form-label">Nome do banco<span class="text-danger">*</span></label>
                                    <p><input type="text" name="banco" id="banco" class="form-control money" maxlength="50" placeholder="Informe o nome do Banco" value="<?php echo isset($bancos) ? htmlspecialchars($bancos['banco']) : ''; ?>" oninput="validarCampo('banco', this.value)"></p>
                                </div>

                                <div class="form-group col-12 col-md-4 col-lg-2">
                                    <label for="agencia" class="col-form-label">Agência<span class="text-danger">*</span></label>
                                    <p><input type="text" name="agencia" id="agencia" class="form-control agencia" placeholder="Informe a Agência" value="<?php echo isset($bancos) ? htmlspecialchars($bancos['agencia']) : ''; ?>" oninput="validarCampo('agencia', this.value)"></p>
                                </div>

                                <div class="form-group col-12 col-md-4 col-lg-2">
                                    <label for="conta" class="col-form-label">Conta<span class="text-danger">*</span></label>
                                    <p><input type="text" name="conta" id="conta" class="form-control conta" placeholder="Informe o numero da conta" value="<?php echo isset($bancos) ? htmlspecialchars($bancos['conta']) : ''; ?>" oninput="validarCampo('conta', this.value)"></p>
                                </div>

                                <input type="hidden" name="id_banco" id="id_banco" value="<?php echo htmlspecialchars($bancos['id_banco']); ?>">
                                <input type="hidden" name="url" id="url" value="<?= $url ?>">

                                <div class="col-12 col-md-12 col-lg-6 text-right">
                                    <button type="submit" class="btn btn-primary"><i class="mdi mdi-magnify"></i> Salvar</button>
                                </div>
                        </form>
                    </div>
                </div>
            </div>

        </div>

    </div> <!-- end container -->
    <!-- ============================================================== -->
    <!-- End Page content -->
    <!-- ============================================================== -->

    <?php include('../footer.php'); ?>
    <?php include('../mensagens_modais.php'); ?>

    <!-- Vendor js -->
    <script src="../../../assets/js/vendor.min.js"></script>

    <!-- Init js-->
    <script src="../../../assets/js/pages/form-advanced.init.js"></script>

    <!-- knob plugin -->
    <script src="../../../assets/libs/jquery-knob/jquery.knob.min.js"></script>
    <!-- App js-->
    <script src="../../../assets/js/app.min.js"></script>
    <script src="../../geral/javascript.js"></script>
    <!-- Mask -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.16/jquery.mask.min.js"></script>

    <script>
        $(document).ready(function() {
            // Máscara para Agência: 4 ou 5 dígitos com hífen opcional
            $(".agencia").mask("00000", {
                // placeholder: "____-_"
            });

            // Máscara para Conta Bancária: 6 a 9 dígitos com dígito verificador
            $(".conta").mask("0000000000", {
                //placeholder: "________-_"
            });
        });


        function showModal(modalId, title, message) {
            const modalElement = document.getElementById(modalId);
            const modal = new bootstrap.Modal(modalElement);
            modalElement.querySelector('.modal-title').textContent = title;
            modalElement.querySelector('.modal-body p').textContent = message;
            modal.show();
        }

        function verificarErroNaURL() {
            const urlParams = new URLSearchParams(window.location.search);
            const errorMessage = urlParams.get('error');
            if (errorMessage) {
                showModal('exampleModal', 'Informação', errorMessage);
            }
        }

        window.onload = verificarErroNaURL;

        function exibirMensagemErro(mensagem, id) {
            let errorDiv;
            var existingError = document.querySelector('#' + id + ' + .error-message');
            if (existingError) {
                existingError.parentNode.removeChild(existingError);
            }
            // Cria uma nova div de banco e a adiciona à div alvo
            errorDiv = document.createElement('div');
            errorDiv.textContent = mensagem;
            errorDiv.classList.add('error-message');
            document.getElementById(id).parentNode.appendChild(errorDiv);
        }


        function removerMensagemErro(id) {
            var existingError = document.querySelector('#' + id + ' + .error-message');
            if (existingError) {
                existingError.parentNode.removeChild(existingError);
            }
        }



        function validarCampo(id) {
            let campo = document.getElementById(id);
            let valor = campo.value.trim();
            let camposValidos = true;

            if (!valor) {
                camposValidos = false;
                campo.classList.add('is-invalid');
                exibirMensagemErro('Por favor, preencha este campo.', id);
            } else {
                campo.classList.remove('is-invalid');
                removerMensagemErro(id);
            }
            return camposValidos;
        }

        function validarFormulario() {
            let bancoValido = validarCampo("banco");
            let agencia = validarCampo("agencia");
            let conta = validarCampo("conta");

            return bancoValido && agencia && conta;
        }

        function goBack() {
            window.history.back();
        }
    </script>
    <style>
        .is-invalid {
            border: 1px solid red;
        }

        .error-message {
            color: red;
            font-size: 1em;
        }
    </style>
</body>

</html>