document.addEventListener('DOMContentLoaded', function() { feather.replace(); const scannerForm = document.querySelector('#scanner form'); const scanButton = scannerForm.querySelector('button[type="submit"]'); const resultsTableBody = document.querySelector('#scanner .table-responsive tbody'); if (scannerForm) { scannerForm.addEventListener('submit', function(e) { e.preventDefault(); // Show loading state scanButton.disabled = true; scanButton.innerHTML = ' Scanning...'; resultsTableBody.innerHTML = 'Scanning for moonshots...'; const formData = new FormData(scannerForm); fetch('scanner.php', { method: 'POST', body: formData }) .then(response => response.json()) .then(data => { // Restore button scanButton.disabled = false; scanButton.innerHTML = 'Scan'; let tableContent = ''; if (data.length > 0) { data.forEach(stock => { tableContent += ` ${stock.symbol} ${stock.company_name} ${parseFloat(stock.price).toFixed(2)} ${formatMarketCap(stock.market_cap)}
`; }); } else { tableContent = 'No stocks matched your criteria.'; } resultsTableBody.innerHTML = tableContent; feather.replace(); // Re-run feather icons }) .catch(error => { console.error('Error during scan:', error); // Restore button scanButton.disabled = false; scanButton.innerHTML = 'Scan'; resultsTableBody.innerHTML = 'An error occurred during the scan.'; }); }); } }); function formatMarketCap(num) { if (num >= 1000000000) { return ' + (num / 1000000000).toFixed(2) + 'B'; } if (num >= 1000000) { return ' + (num / 1000000).toFixed(2) + 'M'; } return ' + num; } // Handle adding from scan results to watchlist document.addEventListener('click', function(e) { if (e.target && e.target.matches('#scanner .btn-outline-primary')) { const form = e.target.closest('form'); if (form) { e.preventDefault(); const formData = new FormData(form); fetch(form.action, { method: 'POST', body: formData }) .then(response => { // Redirect or update UI as needed. For now, we'll just reload. window.location.hash = 'watchlist'; window.location.reload(); }) .catch(error => console.error('Error adding to watchlist:', error)); } } });