{"id":1153,"date":"2025-03-02T23:07:47","date_gmt":"2025-03-02T23:07:47","guid":{"rendered":"https:\/\/epiphany.rossperalta.com\/?page_id=1153"},"modified":"2025-03-02T23:08:10","modified_gmt":"2025-03-02T23:08:10","slug":"waiver","status":"publish","type":"page","link":"https:\/\/epiphanypickleball.com\/?page_id=1153","title":{"rendered":"Waiver"},"content":{"rendered":"    <form class=\"signature-form\" data-form-id=\"waiver\">\n        <input type=\"hidden\" class=\"spf_nonce\" value=\"2f018df9a0\">\n        <div><h4>\r\n<p style=\"text-align: center\">\r\n<b>Epiphany Pickleball<\/b>\r\n<br>\r\n555 S. Highland St.\r\n<br>\r\nMt. Dora, FL 32757\r\n<br>\r\n352-849-0620\r\n<br>\r\nwww.EphiphanyPickleball.com\r\n<\/p>\r\n<\/h4>\r\n<br>\r\n\r\n<h3><b>RELEASE, WAIVER OF LIABILITY &amp; INDEMNITY<\/b><\/h3>\r\n\r\n<br>\r\nYou, the undersigned (individually, if you are the player, and\/or as agent or guardian of the player or responsible party, \u201cyou,\u201d \u201cMember,\u201d \u201cNon-member\u201d or \u201cPlayer\u201d) hereby acknowledge and agree that use by you and\/or your minor children of the facilities, services, equipment or premises offered by Epiphany Pickleball (\u201cus,\u201d \u201cEpiphany Pickleball\u201d  \u201cEP\u201d or \u201cClub\u201d its affiliates, and their respective officers, directors, employees and agents) involves risks of injury to persons and property. You understand, voluntarily accept and assume full responsibility for such risks, which include (but are not limited to) injuries arising from use of equipment and machines; injuries arising from participation in supervised or unsupervised activities or programs; injuries and medical disorders arising from playing pickleball such as heart attacks, strokes, heat stress, sprains, broken bones, and torn muscles and ligaments, among others; accidental injuries occurring in pickleball courts, pro shop, restrooms, and other facilities; and injuries so severe they result in permanent disability, head injury, paralysis, and even death.\r\n<br><br>\r\nFurther, in consideration of you and your minor children being permitted to enter any facility of EP (a \"Club\") for any purpose including, but not limited to, observation, use of facilities, services or equipment, or participation in any way, you agree that EP will not be liable for any injury to the person or property of you and\/or your minor children, and you hereby release and hold harmless EP from all liability to you, your children and your personal representatives, assigns, heirs, and next of kin for any loss or damage, and forever gives up any claim or demands therefor, on account of injury to person or property, including injury leading to death, whether caused by the active or passive negligence of EP or otherwise, and whether related to playing pickleball or not, to the fullest extent permitted by law, while you and\/or your minor children are in, on, or about Club premises or using any EP facilities, services or equipment.\r\n<br><br>\r\nYou also hereby agree to indemnify EP from any loss, liability, damage or cost EP may incur due to the presence of you and\/or your children in, on or about Club premises or in any way observing or using any facilities or equipment of EP, whether caused by your negligence or otherwise. You also represent that you and your minor children are in good physical condition and have no disability, illness, or condition that could prevent you or your children from playing pickleball without injury or impairment of health. You further expressly agree that this release and waiver of liability and indemnity is intended to be as broad and inclusive as permitted by the law of this state and that if any portion is held invalid, the balance will continue in full force and effect. You have read this release and waiver of liability and indemnity and agree that no oral representations, statements or inducement apart from this Agreement have been made.\r\n<br><br><\/div>\n        <br>\n        <label>Full Name:<\/label>\n        <input type=\"text\" class=\"full-name\" required>\n        <br><br>\n        <label>Signature:<\/label>\n        <canvas class=\"signature-pad\" width=\"400\" height=\"200\" style=\"border:1px solid #000;\"><\/canvas>\n        <br><br>\n        <button type=\"button\" class=\"clear-signature\">Clear<\/button>\n        <button type=\"button\" class=\"preview-pdf\">Preview PDF<\/button>\n        <button type=\"button\" class=\"save-signature\">Submit<\/button>\n        <br>\n    <\/form>\n    <div id=\"pdf-preview\" style=\"display:none;\">\n        <h3>PDF Preview<\/h3>\n        <iframe id=\"pdf-frame\" width=\"100%\" height=\"500px\"><\/iframe>\n    <\/div>\n    <script>\n        document.addEventListener('DOMContentLoaded', function () {\n            document.querySelectorAll('.signature-form').forEach(form => {\n                const canvas = form.querySelector('.signature-pad');\n                if (!canvas) return;\n\n                const ctx = canvas.getContext('2d');\n                let drawing = false;\n                \n                function getPos(event) {\n                    const rect = canvas.getBoundingClientRect();\n                    if (event.touches) {\n                        return {\n                            x: event.touches[0].clientX - rect.left,\n                            y: event.touches[0].clientY - rect.top\n                        };\n                    }\n                    return { x: event.offsetX, y: event.offsetY };\n                }\n                \n                function startDrawing(event) {\n                    drawing = true;\n                    ctx.beginPath();\n                    let pos = getPos(event);\n                    ctx.moveTo(pos.x, pos.y);\n                }\n                function draw(event) {\n                    if (!drawing) return;\n                    let pos = getPos(event);\n                    ctx.lineTo(pos.x, pos.y);\n                    ctx.stroke();\n                    event.preventDefault(); \/\/ Prevent scrolling on mobile\n                }\n                function stopDrawing() {\n                    drawing = false;\n                }\n\n                canvas.addEventListener('mousedown', startDrawing);\n                canvas.addEventListener('mousemove', draw);\n                canvas.addEventListener('mouseup', stopDrawing);\n                canvas.addEventListener('mouseleave', stopDrawing);\n                canvas.addEventListener('touchstart', startDrawing, { passive: false });\n                canvas.addEventListener('touchmove', draw, { passive: false });\n                canvas.addEventListener('touchend', stopDrawing);\n\n                const saveButton = form.querySelector('.save-signature');\n                if (saveButton) {\n                    saveButton.addEventListener('click', () => {\n                        const signatureData = canvas.toDataURL('image\/png');\n                        if (!signatureData.includes('data:image\/png;base64')) {\n                            alert('Error capturing signature. Please try again.');\n                            return;\n                        }\n                        form.querySelector('input[name=\"signature\"]').value = signatureData;\n                        console.log(\"Captured Signature Data:\", signatureData);\n                    });\n                }\n\n                const clearButton = form.querySelector('.clear-signature');\n                if (clearButton) {\n                    clearButton.addEventListener('click', function () {\n                        ctx.clearRect(0, 0, canvas.width, canvas.height);\n                    });\n                }\n\n                const previewButton = form.querySelector('.preview-pdf');\n                if (previewButton) {\n                    previewButton.addEventListener('click', function () {\n                        const pdfPreview = document.getElementById('pdf-preview');\n                        const pdfFrame = document.getElementById('pdf-frame');\n\n                        const nameInput     = form.querySelector('.full-name');\n                        const signatureData = canvas.toDataURL('image\/png');\n                        const fullName      = nameInput.value.trim(); \/\/ Ensure no empty spaces\n                        const formId        = form.getAttribute('data-form-id'); \/\/ \u2705 Get form ID dynamically\n                        \/\/console.log(\"Form ID Retrieved:\", formId);\n                        \/\/console.log(\"Full Name:\", fullName);\n                        \/\/console.log(\"Signature Data:\", signatureData.substring(0, 50) + \"...\"); \/\/ Only show part for debugging\n\n                        if (!fullName) {\n                            alert(\"Error: Missing full name.\");\n                            return;\n                        }\n\n                        fetch('https:\/\/epiphanypickleball.com\/wp-admin\/admin-ajax.php', {\n                            method: 'POST',\n                            headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\n                            body: new URLSearchParams({\n                                action: 'spf_generate_pdf',\n                                security: '2f018df9a0', \/\/ \u2705 Add this line\n                                signature: signatureData,\n                                full_name: fullName,\n                                form_id: formId,\n                                preview: true\n                            })\n                        }).then(response => response.json()).then(data => {\n                            console.log(\"AJAX Response:\", data); \/\/ Debugging\n                            const pdfUrl = data.pdf_url || (data.data && data.data.pdf_url); \/\/ Check both possible locations\n                            \n                            if (pdfUrl) {\n                                fetch(pdfUrl, { method: 'HEAD' })\n                                    .then(response => {\n                                        if (response.ok) {\n                                            pdfFrame.src = pdfUrl;\n                                            pdfPreview.style.display = 'block';\n                                        } else {\n                                            alert('PDF file not accessible.');\n                                        }\n                                    })\n                                    .catch(() => alert('Failed to load PDF preview.'));\n                            } else {\n                                alert(data.message || 'Error generating PDF preview.');\n                            }\n                        }).catch(error => console.error(\"AJAX Error:\", error));\n                    });\n                }\n            });\n        });\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":1142,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-no-title","meta":{"footnotes":""},"class_list":["post-1153","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/epiphanypickleball.com\/index.php?rest_route=\/wp\/v2\/pages\/1153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/epiphanypickleball.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/epiphanypickleball.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/epiphanypickleball.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/epiphanypickleball.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1153"}],"version-history":[{"count":1,"href":"https:\/\/epiphanypickleball.com\/index.php?rest_route=\/wp\/v2\/pages\/1153\/revisions"}],"predecessor-version":[{"id":1155,"href":"https:\/\/epiphanypickleball.com\/index.php?rest_route=\/wp\/v2\/pages\/1153\/revisions\/1155"}],"up":[{"embeddable":true,"href":"https:\/\/epiphanypickleball.com\/index.php?rest_route=\/wp\/v2\/pages\/1142"}],"wp:attachment":[{"href":"https:\/\/epiphanypickleball.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}