// Funções utilitárias e de apoio (sem lógica de login/cadastro/redefinição de senha) function create_pedido() { $("#btn_mp").prop('disabled', true).html('Aguarde...'); $.post('/control/create_pedido.php', { create: true }) .done(function(data) { var obj = JSON.parse(data); if (obj.erro) { showAlert('danger', obj.msg); $("#btn_mp").prop('disabled', false).html('Mercado Pago'); } else if (obj.msg === "Sucesso") { location.href = obj.link; } }) .fail(function() { showAlert('danger', 'Erro de conexão.'); $("#btn_mp").prop('disabled', false).html('Mercado Pago'); }); } function validateEmail(email) { return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email); } function showAlert(type, message) { const alert = $('#feedback-alert'); const messageSpan = $('#feedback-message'); if (alert.length && messageSpan.length) { // Remover classes antigas alert.removeClass('alert-success alert-danger alert-warning'); alert.addClass('alert alert-dismissible fade show alert-' + type); messageSpan.text(message); alert.show(); // Auto-hide após alguns segundos para alertas de sucesso if (type === 'success') { setTimeout(hideAlert, type === 'success' ? 10000 : 8000); } } else { // Fallback para alert básico se elementos não existirem window.alert(message); } } function hideAlert() { $('#feedback-alert').hide(); }