{"id":15486,"date":"2026-04-29T11:57:10","date_gmt":"2026-04-29T11:57:10","guid":{"rendered":"https:\/\/redsquaredentalcare.com\/?page_id=15486"},"modified":"2026-04-29T15:54:00","modified_gmt":"2026-04-29T15:54:00","slug":"schedule-online","status":"publish","type":"page","link":"https:\/\/redsquaredentalcare.com\/index.php\/schedule-online\/","title":{"rendered":"Schedule Online"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15486\" class=\"elementor elementor-15486\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c2daf9a e-con-full e-flex e-con e-parent\" data-id=\"c2daf9a\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a50a293 elementor-invisible elementor-widget elementor-widget-shortcode\" data-id=\"a50a293\" data-element_type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\r\n    <div class=\"appointment-step-form\">\r\n        <form id=\"appointmentForm\" style=\"display:block;\">\r\n            <div id=\"formStepArea\"><\/div>\r\n            <button type=\"button\" id=\"nextStepButton\">Next<\/button>\r\n            <button type=\"submit\" id=\"submitStepButton\" style=\"display:none;\">Submit Request<\/button>\r\n        <\/form>\r\n\r\n        <div id=\"appointmentSuccess\" style=\"display:none;\">\r\n            Thank you for your request to schedule an appointment. Someone from our office will contact you soon to confirm your appointment or provide other available options.\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <style>\r\n    .appointment-step-form {\r\n        max-width: 620px;\r\n        margin: 40px auto;\r\n        padding: 34px;\r\n        border-radius: 24px;\r\n        background:\r\n            linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,250,250,0.96)),\r\n            radial-gradient(circle at top left, rgba(198,40,40,0.12), transparent 35%);\r\n        box-shadow: 0 18px 45px rgba(0,0,0,0.12);\r\n        font-family: Arial, sans-serif;\r\n        text-align: center;\r\n        border: 1px solid rgba(198,40,40,0.12);\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .appointment-step-form::before {\r\n        content: \"\";\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 6px;\r\n        background: linear-gradient(90deg, #c62828, #ef5350, #c62828);\r\n    }\r\n\r\n    #appointmentForm {\r\n        position: relative;\r\n        z-index: 2;\r\n    }\r\n\r\n    #formStepArea {\r\n        animation: fadeSlideIn 0.35s ease;\r\n    }\r\n\r\n    @keyframes fadeSlideIn {\r\n        from {\r\n            opacity: 0;\r\n            transform: translateY(14px);\r\n        }\r\n\r\n        to {\r\n            opacity: 1;\r\n            transform: translateY(0);\r\n        }\r\n    }\r\n\r\n    .appointment-step-form label {\r\n        display: block;\r\n        font-weight: 700;\r\n        margin-bottom: 22px;\r\n        font-size: 25px;\r\n        line-height: 1.3;\r\n        color: #222222;\r\n        text-align: center;\r\n        letter-spacing: -0.3px;\r\n    }\r\n\r\n    .appointment-step-form input,\r\n    .appointment-step-form textarea {\r\n        width: 100%;\r\n        padding: 16px 18px;\r\n        border: 1px solid #e4dada;\r\n        border-radius: 14px;\r\n        font-size: 16px;\r\n        box-sizing: border-box;\r\n        text-align: center;\r\n        color: #222222;\r\n        background: #ffffff;\r\n        box-shadow: 0 5px 14px rgba(0,0,0,0.04);\r\n        transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;\r\n        outline: none;\r\n    }\r\n\r\n    .appointment-step-form input:focus,\r\n    .appointment-step-form textarea:focus {\r\n        border-color: #c62828;\r\n        box-shadow: 0 0 0 4px rgba(198,40,40,0.12);\r\n        transform: translateY(-1px);\r\n    }\r\n\r\n    .appointment-step-form textarea {\r\n        min-height: 130px;\r\n        resize: vertical;\r\n        line-height: 1.5;\r\n    }\r\n\r\n    .appointment-step-form button {\r\n        width: 100%;\r\n        margin-top: 18px;\r\n        padding: 16px 20px;\r\n        border: none;\r\n        background: linear-gradient(135deg, #FF0000, #a91f1f);\r\n\t\tborder-radius: 999px;\r\n        color: #ffffff;\r\n        font-size: 16px;\r\n        font-weight: 700;\r\n        cursor: pointer;\r\n        letter-spacing: 0.2px;\r\n        box-shadow: 0 10px 24px rgba(198,40,40,0.28);\r\n        transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;\r\n    }\r\n\r\n    .appointment-step-form button:hover {\r\n        background: linear-gradient(135deg, #b71c1c, #8e1919);\r\n        transform: translateY(-2px);\r\n        box-shadow: 0 14px 28px rgba(198,40,40,0.34);\r\n    }\r\n\r\n    .appointment-step-form button:active {\r\n        transform: translateY(0);\r\n        box-shadow: 0 7px 16px rgba(198,40,40,0.24);\r\n    }\r\n\r\n    .location-option {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        text-align: center;\r\n        padding: 16px 18px;\r\n        margin-top: 12px;\r\n        border: 1px solid #eadede;\r\n        border-radius: 16px;\r\n        cursor: pointer;\r\n        background: #ffffff;\r\n        box-shadow: 0 6px 16px rgba(0,0,0,0.045);\r\n        transition: border-color 0.25s ease, background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;\r\n    }\r\n\r\n    .location-option:hover {\r\n        border-color: #c62828;\r\n        background: #fff7f7;\r\n        transform: translateY(-2px);\r\n        box-shadow: 0 10px 22px rgba(198,40,40,0.12);\r\n    }\r\n\r\n    .location-option span {\r\n        font-size: 15px;\r\n        line-height: 1.45;\r\n        color: #333333;\r\n        font-weight: 500;\r\n    }\r\n\r\n    .selected-location {\r\n        border-color: #c62828;\r\n        background: linear-gradient(135deg, #fff5f5, #ffffff);\r\n        box-shadow: 0 10px 24px rgba(198,40,40,0.18);\r\n        position: relative;\r\n    }\r\n\r\n    .selected-location::after {\r\n        content: \"\u2713\";\r\n        position: absolute;\r\n        right: 16px;\r\n        top: 50%;\r\n        transform: translateY(-50%);\r\n        width: 24px;\r\n        height: 24px;\r\n        border-radius: 50%;\r\n        background: #c62828;\r\n        color: #ffffff;\r\n        font-size: 14px;\r\n        font-weight: 700;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n    }\r\n\r\n    #appointmentSuccess {\r\n        font-size: 19px;\r\n        line-height: 1.6;\r\n        color: #222222;\r\n        font-weight: 600;\r\n        text-align: center;\r\n        animation: fadeSlideIn 0.35s ease;\r\n        background: #fff7f7;\r\n        border: 1px solid rgba(198,40,40,0.18);\r\n        border-radius: 18px;\r\n        padding: 24px;\r\n        box-shadow: 0 8px 20px rgba(0,0,0,0.06);\r\n    }\r\n\r\n    #appointmentSuccess::before {\r\n        content: \"\u2713\";\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        width: 46px;\r\n        height: 46px;\r\n        margin: 0 auto 14px auto;\r\n        border-radius: 50%;\r\n        background: #FF0000;\r\n        color: #ffffff;\r\n        font-size: 24px;\r\n        font-weight: 700;\r\n    }\r\n\r\n    @media (max-width: 600px) {\r\n        .appointment-step-form {\r\n            margin: 22px 14px;\r\n            padding: 26px 20px;\r\n            border-radius: 20px;\r\n        }\r\n\r\n        .appointment-step-form label {\r\n            font-size: 21px;\r\n        }\r\n\r\n        .appointment-step-form input,\r\n        .appointment-step-form textarea {\r\n            font-size: 15px;\r\n            padding: 15px;\r\n        }\r\n\r\n        .location-option {\r\n            padding: 15px 42px 15px 15px;\r\n        }\r\n\r\n        .location-option span {\r\n            font-size: 14px;\r\n        }\r\n    }\r\n\t\t\r\n\t\t.button-spinner {\r\n    display: inline-block;\r\n    width: 16px;\r\n    height: 16px;\r\n    border: 2px solid rgba(255,255,255,0.45);\r\n    border-top-color: #ffffff;\r\n    border-radius: 50%;\r\n    animation: buttonSpin 0.8s linear infinite;\r\n    vertical-align: middle;\r\n    margin-right: 8px;\r\n}\r\n\r\n@keyframes buttonSpin {\r\n    from {\r\n        transform: rotate(0deg);\r\n    }\r\n\r\n    to {\r\n        transform: rotate(360deg);\r\n    }\r\n}\r\n\r\n.appointment-step-form button:disabled {\r\n    opacity: 0.75;\r\n    cursor: not-allowed;\r\n    transform: none;\r\n}\r\n    <\/style>\r\n\r\n    <script>\r\n        document.addEventListener(\"DOMContentLoaded\", function () {\r\n            var form = document.getElementById(\"appointmentForm\");\r\n            var formStepArea = document.getElementById(\"formStepArea\");\r\n            var nextStepButton = document.getElementById(\"nextStepButton\");\r\n            var submitStepButton = document.getElementById(\"submitStepButton\");\r\n            var successMessage = document.getElementById(\"appointmentSuccess\");\r\n\r\n            var currentStep = 0;\r\n\r\n            var formData = {\r\n                name: \"\",\r\n                phone: \"\",\r\n                email: \"\",\r\n                preferredDate: \"\",\r\n                preferredTime: \"\",\r\n                location: \"\",\r\n                reason: \"\"\r\n            };\r\n\r\n            var steps = [\r\n                {\r\n                    label: \"What is your full name?\",\r\n                    name: \"name\",\r\n                    type: \"text\"\r\n                },\r\n                {\r\n                    label: \"What is your phone number?\",\r\n                    name: \"phone\",\r\n                    type: \"tel\"\r\n                },\r\n                {\r\n                    label: \"What is your email address?\",\r\n                    name: \"email\",\r\n                    type: \"email\"\r\n                },\r\n                {\r\n                    label: \"What date would you prefer for your appointment?\",\r\n                    name: \"preferredDate\",\r\n                    type: \"date\"\r\n                },\r\n                {\r\n                    label: \"What time would you prefer?\",\r\n                    name: \"preferredTime\",\r\n                    type: \"time\"\r\n                },\r\n                {\r\n                    label: \"Which location would you like to visit?\",\r\n                    name: \"location\",\r\n                    type: \"choice\",\r\n                    choices: [\r\n                        \"2702 Cornerstone Blvd, Edinburg, TX 78539\",\r\n                        \"1615 S. Closner Edinburg, Texas 78539\",\r\n                        \"4909 West Pecan Blvd Mcallen, TX 78572\"\r\n                    ]\r\n                },\r\n                {\r\n                    label: \"What is the reason for your visit?\",\r\n                    name: \"reason\",\r\n                    type: \"textarea\"\r\n                }\r\n            ];\r\n\r\n            nextStepButton.addEventListener(\"click\", function () {\r\n                saveCurrentStep();\r\n\r\n                if (formData[steps[currentStep].name] === \"\") {\r\n                    alert(\"Please complete this field before continuing.\");\r\n                    return;\r\n                }\r\n\r\n                if (steps[currentStep].name === \"phone\") {\r\n                    if (isValidPhoneNumber(formData.phone) === false) {\r\n                        alert(\"Please enter a valid phone number.\");\r\n                        return;\r\n                    }\r\n                }\r\n\r\n                if (steps[currentStep].name === \"email\") {\r\n                    if (isValidEmailAddress(formData.email) === false) {\r\n                        alert(\"Please enter a valid email address.\");\r\n                        return;\r\n                    }\r\n                }\r\n\r\n                currentStep = currentStep + 1;\r\n                showStep();\r\n            });\r\n\r\n            form.addEventListener(\"submit\", function (event) {\r\n    event.preventDefault();\r\n    saveCurrentStep();\r\n\r\n    if (formData[steps[currentStep].name] === \"\") {\r\n        alert(\"Please complete this field before submitting.\");\r\n        return;\r\n    }\r\n\r\n    if (isValidPhoneNumber(formData.phone) === false) {\r\n        alert(\"Please enter a valid phone number.\");\r\n        return;\r\n    }\r\n\r\n    if (isValidEmailAddress(formData.email) === false) {\r\n        alert(\"Please enter a valid email address.\");\r\n        return;\r\n    }\r\n\r\n    submitStepButton.disabled = true;\r\n    submitStepButton.innerHTML = '<span class=\"button-spinner\"><\/span> Submitting...';\r\n\r\n    var request = new XMLHttpRequest();\r\n    request.open(\"POST\", \"https:\/\/redsquaredentalcare.com\/wp-admin\/admin-ajax.php\", true);\r\n    request.setRequestHeader(\"Content-Type\", \"application\/x-www-form-urlencoded\");\r\n\r\n    var data = \"\";\r\n    data = data + \"action=submit_appointment_step_form\";\r\n    data = data + \"&name=\" + encodeURIComponent(formData.name);\r\n    data = data + \"&phone=\" + encodeURIComponent(formData.phone);\r\n    data = data + \"&email=\" + encodeURIComponent(formData.email);\r\n    data = data + \"&preferredDate=\" + encodeURIComponent(formData.preferredDate);\r\n    data = data + \"&preferredTime=\" + encodeURIComponent(formData.preferredTime);\r\n    data = data + \"&location=\" + encodeURIComponent(formData.location);\r\n    data = data + \"&reason=\" + encodeURIComponent(formData.reason);\r\n\r\n    request.onload = function () {\r\n        if (request.status === 200) {\r\n            form.style.display = \"none\";\r\n            successMessage.style.display = \"block\";\r\n        } else {\r\n            submitStepButton.disabled = false;\r\n            submitStepButton.innerHTML = \"Submit Request\";\r\n            alert(\"There was an issue submitting the form. Please try again.\");\r\n        }\r\n    };\r\n\r\n    request.onerror = function () {\r\n        submitStepButton.disabled = false;\r\n        submitStepButton.innerHTML = \"Submit Request\";\r\n        alert(\"There was an issue submitting the form. Please try again.\");\r\n    };\r\n\r\n    request.send(data);\r\n});\r\n\r\n            function showStep() {\r\n                var step = steps[currentStep];\r\n                formStepArea.innerHTML = \"\";\r\n\r\n                var label = document.createElement(\"label\");\r\n                label.textContent = step.label;\r\n                formStepArea.appendChild(label);\r\n\r\n                if (step.type === \"choice\") {\r\n                    var i = 0;\r\n\r\n                    while (i < step.choices.length) {\r\n                        var optionBox = document.createElement(\"div\");\r\n                        optionBox.className = \"location-option\";\r\n\r\n                        if (formData[step.name] === step.choices[i]) {\r\n                            optionBox.classList.add(\"selected-location\");\r\n                        }\r\n\r\n                        optionBox.setAttribute(\"data-value\", step.choices[i]);\r\n\r\n                        var optionText = document.createElement(\"span\");\r\n                        optionText.textContent = step.choices[i];\r\n\r\n                        optionBox.appendChild(optionText);\r\n\r\n                        optionBox.addEventListener(\"click\", function () {\r\n                            formData[step.name] = this.getAttribute(\"data-value\");\r\n\r\n                            var allOptions = document.querySelectorAll(\".location-option\");\r\n                            var x = 0;\r\n\r\n                            while (x < allOptions.length) {\r\n                                allOptions[x].classList.remove(\"selected-location\");\r\n                                x = x + 1;\r\n                            }\r\n\r\n                            this.classList.add(\"selected-location\");\r\n                        });\r\n\r\n                        formStepArea.appendChild(optionBox);\r\n\r\n                        i = i + 1;\r\n                    }\r\n                } else if (step.type === \"textarea\") {\r\n                    var textarea = document.createElement(\"textarea\");\r\n                    textarea.id = \"currentInput\";\r\n                    textarea.value = formData[step.name];\r\n                    formStepArea.appendChild(textarea);\r\n                } else {\r\n                    var input = document.createElement(\"input\");\r\n                    input.id = \"currentInput\";\r\n                    input.type = step.type;\r\n                    input.value = formData[step.name];\r\n\r\n                    if (step.name === \"phone\") {\r\n                        input.placeholder = \"Example: (956) 123-4567\";\r\n                    }\r\n\r\n                    if (step.name === \"email\") {\r\n                        input.placeholder = \"Example: name@email.com\";\r\n                    }\r\n\r\n                    formStepArea.appendChild(input);\r\n                }\r\n\r\n                if (currentStep === steps.length - 1) {\r\n                    nextStepButton.style.display = \"none\";\r\n                    submitStepButton.style.display = \"block\";\r\n                } else {\r\n                    nextStepButton.style.display = \"block\";\r\n                    submitStepButton.style.display = \"none\";\r\n                }\r\n            }\r\n\r\n            function saveCurrentStep() {\r\n                var step = steps[currentStep];\r\n\r\n                if (step.type !== \"choice\") {\r\n                    var input = document.getElementById(\"currentInput\");\r\n                    formData[step.name] = input.value.trim();\r\n                }\r\n            }\r\n\r\n            function isValidEmailAddress(email) {\r\n                var emailPattern = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\r\n\r\n                if (emailPattern.test(email) === true) {\r\n                    return true;\r\n                }\r\n\r\n                return false;\r\n            }\r\n\r\n            function isValidPhoneNumber(phone) {\r\n                var cleanedPhone = phone.replace(\/\\D\/g, \"\");\r\n\r\n                if (cleanedPhone.length === 10) {\r\n                    return true;\r\n                }\r\n\r\n                if (cleanedPhone.length === 11 && cleanedPhone.charAt(0) === \"1\") {\r\n                    return true;\r\n                }\r\n\r\n                return false;\r\n            }\r\n\r\n            showStep();\r\n        });\r\n    <\/script>\r\n\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-15486","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/redsquaredentalcare.com\/index.php\/wp-json\/wp\/v2\/pages\/15486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redsquaredentalcare.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/redsquaredentalcare.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/redsquaredentalcare.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/redsquaredentalcare.com\/index.php\/wp-json\/wp\/v2\/comments?post=15486"}],"version-history":[{"count":19,"href":"https:\/\/redsquaredentalcare.com\/index.php\/wp-json\/wp\/v2\/pages\/15486\/revisions"}],"predecessor-version":[{"id":15512,"href":"https:\/\/redsquaredentalcare.com\/index.php\/wp-json\/wp\/v2\/pages\/15486\/revisions\/15512"}],"wp:attachment":[{"href":"https:\/\/redsquaredentalcare.com\/index.php\/wp-json\/wp\/v2\/media?parent=15486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}