Batman #678, NM- DC, 2008

Batman #678, NM- DC, 2008

(Comic Books > DC Comics)

$3.00

In Stock: 1

Product Description

Batman #678 is part of the "Batman R.I.P." storyline, where the Dark Knight faces a psychological and physical breakdown orchestrated by the mysterious villain Dr. Hurt. This issue, written by Grant Morrison with art by Tony Daniel, features intense action and dramatic plot twists. The cover art reflects the gritty and chaotic nature of Batman’s struggle against his own mind and enemies.

Keywords: Batman DC Comics comic book superhero 2008 Batman #678 graphic novel collectible comic series vintage comics

`; } else if (cta.title.toLowerCase().includes('email') || cta.content.toLowerCase().includes('email')) { // Email collection form popupContent = `

${cta.title}


${cta.content}

`; } else { // Standard CTA popupContent = `

${cta.title}


${cta.content}

${cta.button_text} `; } const isSpinWheel = cta.cta_type === 'spin_wheel'; const popupHtml = ` `; document.body.insertAdjacentHTML('beforeend', popupHtml); localStorage.setItem(`popupCta_${cta.id}`, Date.now().toString()); } // Function to handle email collection form submission window.submitEmailCollection = function(event, ctaId) { event.preventDefault(); const emailInput = document.getElementById(`email_${ctaId}`); const responseDiv = document.getElementById(`emailResponse_${ctaId}`); const form = document.getElementById(`emailCollectionForm_${ctaId}`); if (!emailInput.value) { responseDiv.innerHTML = '
Please enter your email address.
'; responseDiv.style.display = 'block'; return; } // Show loading message responseDiv.innerHTML = '
Sending...
'; responseDiv.style.display = 'block'; // Disable form while submitting const submitButton = form.querySelector('button[type="submit"]'); submitButton.disabled = true; // Get the current page URL const currentPageUrl = window.location.href; // Send the email to the server fetch('/handles/guest/submit-email-collection.php', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: `email=${encodeURIComponent(emailInput.value)}&popup_id=${ctaId}&page_url=${encodeURIComponent(currentPageUrl)}` }) .then(response => response.json()) .then(data => { if (data.success) { form.style.display = 'none'; responseDiv.innerHTML = `
${data.message}
`; } else { responseDiv.innerHTML = `
${data.message}
`; submitButton.disabled = false; } responseDiv.style.display = 'block'; }) .catch(error => { console.error('Error:', error); responseDiv.innerHTML = '
An error occurred. Please try again later.
'; responseDiv.style.display = 'block'; submitButton.disabled = false; }); }; // Make closePopup function global so it can be called from the popup HTML window.closePopup = function(ctaId) { const popup = document.getElementById(`popupOverlay_${ctaId}`); if (popup) { popup.remove(); } }; // Global function to load spin wheel in popup window.loadSpinWheelInPopup = function(wheelId, containerId) { const container = document.getElementById(containerId); if (!container) return; // Include the spin wheel widget component fetch(`/components/spin-wheel/spin-wheel-widget.php?wheel_id=${wheelId}&showTitle=false&showDescription=false`) .then(response => response.text()) .then(html => { container.innerHTML = html; // Initialize the spin wheel JavaScript if available if (typeof initSpinWheel === 'function') { initSpinWheel(wheelId); } }) .catch(error => { console.error('Error loading spin wheel:', error); container.innerHTML = `

Unable to load spin wheel. Please refresh the page.

`; }); }; } // Call the function when the DOM is fully loaded document.addEventListener('DOMContentLoaded', initPopupCTA);