{"id":1145,"date":"2025-03-02T22:59:38","date_gmt":"2025-03-02T22:59:38","guid":{"rendered":"https:\/\/epiphany.rossperalta.com\/?page_id=1145"},"modified":"2025-03-02T23:06:39","modified_gmt":"2025-03-02T23:06:39","slug":"club-rules","status":"publish","type":"page","link":"https:\/\/epiphanypickleball.com\/?page_id=1145","title":{"rendered":"Club Rules"},"content":{"rendered":"    <form class=\"signature-form\" data-form-id=\"club-rules\">\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\r\n<h3><b>CLUB RULES<\/b><\/h3>\r\n<br>\r\n<b>CLUB RULES &amp; REGULATIONS (\u201cClub Rules\u201d)<\/b>\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 agree to abide by the Club Rules and any other rules posted at Epiphany Pickleball (\u201cEpiphany Pickleball,\u201d \u201cEP\u201d or \u201cClub\u201d). EP may change the Club Rules without notice at any time. EP will post any such changes at the club. The Club Rules and any individual club rules apply to you while in, on or about the club premises. If you violate any terms or provisions of the Club Rules, EP may suspend your right to use the club until such time as you have abided by and fully complied with such terms, provisions or rules. You will not be entitled to any refund, credit for any period during which you were suspended. If you thereafter violate any of the terms and provisions of the Club Rules, EP may terminate your right to use the EP facilities without reimbursement.\r\n<br><br>\r\n    1. Upon entering a club, you are required to sign in at the front desk. Without signing in, EP may prohibit your use of the facilities for that day. You must be at least 13 years old and, if under 16 years old, accompanied by a parent or legal guardian. You must sign a liability waiver prior to using the club\u2019s facilities and follow all rules and regulations.\r\n<br><br>\r\n    2. You are expected to always display good sportsmanship, treat others with respect, show courtesy and exhibit self-control. During club use, you will refrain from engaging in loud, foul or slanderous language or molesting, badgering or harassing other players, club employees, agents and contractors. Threatening or violent conduct is prohibited.\r\n<br><br>\r\n    3. For your safety, EP recommends eye guards and proper shoes during pickleball activities.\r\n<br><br>\r\n    4. You may not coach or train other players (as determined solely by EP). You may not engage in any type of business or enterprise at an EP club.\r\n<br><br>\r\n    5. From time to time, EP may permit independent contractors to offer products or services to members. EP does not stand behind or in any way make any representations or warranties concerning, or guarantee the quality or reliability of, these products or services, including whether or not these independent contractors will remain in business for any period of time.\r\n<br><br>\r\n    6. You should not bring valuables, including money, onto club premises or store valuables parking areas. EP is not liable to members or guests for any lost, damaged or stolen personal property, including but not limited to vehicles and any property left in a vehicle.\r\n<br><br>\r\n    7. You may not bring illegal drugs or alcoholic beverages onto EP premises. There is no smoking or vaping allowed on the premises.\r\n<br><br>\r\n    8. Capturing images of another person without their permission by use of cellular phones, mobile devices, or other equipment with video\/photo capabilities is strictly prohibited. This is an invasion of privacy and may result in the termination of membership and contact with law enforcement.\r\n<br><br>\r\n    9. You will abide by any additional EP rules and regulations posted at clubs.\r\n<br><br>\r\n    10. You are liable to EP for any club damage caused by you.\r\n<br><br>\r\n    11. EP may suspend or terminate your right to use club facilities and services if you engage in other misconduct in or about EP club. You will not be entitled to any refund, credit or abatement if such a violation occurs.\r\n<br><br>\r\n    12. EP reserves the right to terminate a membership for any reason whatsoever. In such an event, a refund of the pre\u2010paid dues, if any, will be issued.<\/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-1145","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/epiphanypickleball.com\/index.php?rest_route=\/wp\/v2\/pages\/1145","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=1145"}],"version-history":[{"count":1,"href":"https:\/\/epiphanypickleball.com\/index.php?rest_route=\/wp\/v2\/pages\/1145\/revisions"}],"predecessor-version":[{"id":1147,"href":"https:\/\/epiphanypickleball.com\/index.php?rest_route=\/wp\/v2\/pages\/1145\/revisions\/1147"}],"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=1145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}