Sports Court

The Sports Court Finish is a modified version of the All Deck Coating System’s regular Textured Basecoat and works for a wide array of outdoor sports courts, including pickleball and tennis courts. The Sports Court Finish is specifically formulated to provide a perfect profile for playing tennis, or any other court game. The application technique coupled with the special texture creates a winning playing surface every time.

Need further assistance? Don’t hesitate to contact us for personalized advice. We’re here to help.

'; var win = window.open('', '_blank'); if (win) { win.document.write(html); win.document.close(); setTimeout(function(){ win.print(); }, 600); } } // ── Email ────────────────────────────────────────────────────────────────── emailBtn.addEventListener('click', function(){ // Reset email modal emailForm.style.display = 'block'; emailResult.style.display = 'none'; emailName.value = ''; emailAddr.value = ''; document.querySelector('input[name="ad-email-type"][value="full_conversation"]').checked = true; emailModal.style.display = 'flex'; }); emailSendBtn.addEventListener('click', function(){ var addr = emailAddr.value.trim(); if (!addr || !addr.includes('@')) { emailAddr.style.borderColor = '#ef4444'; emailAddr.focus(); return; } emailAddr.style.borderColor = '#e2e8f0'; var exportType = document.querySelector('input[name="ad-email-type"]:checked').value; emailSendBtn.disabled = true; emailSendBtn.textContent = 'Sending…'; fetch(AJAX + '?action=alldeck_email_chat', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ messages: messages, recipientEmail: addr, recipientName: emailName.value.trim() || null, exportType: exportType }) }) .then(function(r){ return r.json(); }) .then(function(resp){ emailSendBtn.disabled = false; emailSendBtn.innerHTML = ' Send Email'; emailForm.style.display = 'none'; emailResult.style.display = 'block'; if (resp.success && resp.data && resp.data.success) { emailResultIcon.textContent = '✅'; emailResultMsg.textContent = resp.data.message || 'Email sent successfully!'; } else { emailResultIcon.textContent = '❌'; emailResultMsg.textContent = (resp.data && resp.data.message) || 'Failed to send. Please try again.'; } }) .catch(function(){ emailSendBtn.disabled = false; emailSendBtn.innerHTML = ' Send Email'; emailForm.style.display = 'none'; emailResult.style.display = 'block'; emailResultIcon.textContent = '❌'; emailResultMsg.textContent = 'Connection error. Please call 800-ALL-DECK (255-3325).'; }); }); // ── Modal controls ───────────────────────────────────────────────────────── modalClose.addEventListener('click', function(){ exportModal.style.display='none'; }); optFull.addEventListener('click', function(){ exportModal.style.display = 'none'; if (pendingExportAction === 'pdf') doPdfExport('full_conversation'); }); optInstr.addEventListener('click', function(){ exportModal.style.display = 'none'; if (pendingExportAction === 'pdf') doPdfExport('instructions_only'); }); emailModalClose.addEventListener('click', function(){ emailModal.style.display='none'; }); // Close modals on backdrop click [exportModal, emailModal].forEach(function(modal){ modal.addEventListener('click', function(e){ if(e.target===modal) modal.style.display='none'; }); }); })();