Free Estimate – Austin
60 Mins
Free onsite estimate with one of Southern Turf Co.’s expert Turf Advisors.
Free Estimate – Austin
Appointment Confirmed!
Appointment Details
Duration: 60 minutes
Please select a date first
‘; } function selectTime(time) { selectedTime = time; updateTimeSlots(); goToStep(2); } function changeMonth(delta) { currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + delta); updateCalendar(); } function populateInterests() { const interestsContainer = document.getElementById(‘interests’); interestsContainer.innerHTML = interests.map(interest => ` `).join(”); } function goToStep(step) { [‘bookingStep’, ‘formStep’, ‘confirmationStep’].forEach(id => { document.getElementById(id).classList.add(‘hidden’); }); const stepElement = document.getElementById( step === 1 ? ‘bookingStep’ : step === 2 ? ‘formStep’ : ‘confirmationStep’ ); setTimeout(() => { stepElement.classList.remove(‘hidden’); stepElement.classList.add(‘ visible show’); document.getElementById(‘container’).style.height = ‘initial’; }, 500); // Match the transition duration if (step === 2) { document.getElementById(‘appointmentDetails’).textContent = `${selectedDate.toLocaleDateString(‘en-US’, { weekday: ‘short’, month: ‘short’, day: ‘numeric’, year: ‘numeric’ })} | ${selectedTime}`; } } function handleSubmit(event) { event.preventDefault(); const form = event.target; const formData = { fullName: form.querySelector(‘input[placeholder=”Full Name”]’).value, email: form.querySelector(‘input[placeholder=”Email”]’).value, phone: form.querySelector(‘input[placeholder=”Phone”]’).value, address: form.querySelector(‘input[placeholder=”Street Address”]’).value, city: form.querySelector(‘input[placeholder=”City”]’).value, state: form.querySelector(‘input[placeholder=”State”]’).value, zipCode: form.querySelector(‘input[placeholder=”Zip Code”]’).value, squareFootage: form.querySelector(‘input[type=”number”]’).value, referralSource: form.querySelector(‘input[type=”text”]:last-of-type’).value, interests: Array.from(form.querySelectorAll(‘#interests input[type=”checkbox”]:checked’)) .map(checkbox => checkbox.value) }; // Display confirmation document.getElementById(‘confirmedDateTime’).innerHTML = `Date: ${selectedDate.toLocaleDateString(‘en-US’, { weekday: ‘short’, month: ‘short’, day: ‘numeric’, year: ‘numeric’ })}
Time: ${selectedTime}
`; document.getElementById(‘confirmedDetails’).innerHTML = `Contact Information
${formData.fullName}
${formData.email}
${formData.phone}
Property Details
${formData.address}
${formData.city}, ${formData.state} ${formData.zipCode}
Square Footage: ${formData.squareFootage}
Areas of Interest
-
${formData.interests.map(interest => `
- • ${interest} `).join(”)}
Referral Source
${formData.referralSource}
-
Residential
The Ultimate Guide to Residential Artificial Grass Installation (2025) A comprehensive resource for homeowners considering synthetic turf installation Introduction Artificial grass installation has revolutionized residential landscaping, offering a sustainable, low-maintenance alternative to natural lawns. This comprehensive guide covers everything you need to know about installing synthetic turf at your home, from initial planning to long-term…
-
Commercial
-
Playgrounds
-
Sports Fields
-
Balconies
-
Swimming Pools
Artificial Grass for swimming pool deck
-
Rooftops
Exclusive installation on rooftops to make it elegant
-
Putting Green
-
Pavers
- Balconies
- Pavers
- Putting Green
- Rooftops
- Swimming Pools
- Sports Fields
- Playgrounds
- Commercial
- Residential
Free Estimate – Austin
60 Mins
Free onsite estimate with one of Southern Turf Co.’s expert Turf Advisors.
Free Estimate – Austin
Appointment Confirmed!
Appointment Details
Duration: 60 minutes
Please select a date first
‘; } function selectTime(time) { selectedTime = time; updateTimeSlots(); goToStep(2); } function changeMonth(delta) { currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + delta); updateCalendar(); } function populateInterests() { const interestsContainer = document.getElementById(‘interests’); interestsContainer.innerHTML = interests.map(interest => ` `).join(”); } function goToStep(step) { [‘bookingStep’, ‘formStep’, ‘confirmationStep’].forEach(id => { document.getElementById(id).classList.add(‘hidden’); }); const stepElement = document.getElementById( step === 1 ? ‘bookingStep’ : step === 2 ? ‘formStep’ : ‘confirmationStep’ ); setTimeout(() => { stepElement.classList.remove(‘hidden’); stepElement.classList.add(‘ visible show’); document.getElementById(‘container’).style.height = ‘initial’; }, 500); // Match the transition duration if (step === 2) { document.getElementById(‘appointmentDetails’).textContent = `${selectedDate.toLocaleDateString(‘en-US’, { weekday: ‘short’, month: ‘short’, day: ‘numeric’, year: ‘numeric’ })} | ${selectedTime}`; } } function handleSubmit(event) { event.preventDefault(); const form = event.target; const formData = { fullName: form.querySelector(‘input[placeholder=”Full Name”]’).value, email: form.querySelector(‘input[placeholder=”Email”]’).value, phone: form.querySelector(‘input[placeholder=”Phone”]’).value, address: form.querySelector(‘input[placeholder=”Street Address”]’).value, city: form.querySelector(‘input[placeholder=”City”]’).value, state: form.querySelector(‘input[placeholder=”State”]’).value, zipCode: form.querySelector(‘input[placeholder=”Zip Code”]’).value, squareFootage: form.querySelector(‘input[type=”number”]’).value, referralSource: form.querySelector(‘input[type=”text”]:last-of-type’).value, interests: Array.from(form.querySelectorAll(‘#interests input[type=”checkbox”]:checked’)) .map(checkbox => checkbox.value) }; // Display confirmation document.getElementById(‘confirmedDateTime’).innerHTML = `Date: ${selectedDate.toLocaleDateString(‘en-US’, { weekday: ‘short’, month: ‘short’, day: ‘numeric’, year: ‘numeric’ })}
Time: ${selectedTime}
`; document.getElementById(‘confirmedDetails’).innerHTML = `Contact Information
${formData.fullName}
${formData.email}
${formData.phone}
Property Details
${formData.address}
${formData.city}, ${formData.state} ${formData.zipCode}
Square Footage: ${formData.squareFootage}
Areas of Interest
-
${formData.interests.map(interest => `
- • ${interest} `).join(”)}
Referral Source
${formData.referralSource}