Created
August 28, 2022 13:12
-
-
Save CforED/9f4d85c01a06822c193e34a475586fd5 to your computer and use it in GitHub Desktop.
Front Browser Petition Form
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<style> | |
* { | |
margin: 0; | |
padding: 0; | |
-webkit-box-sizing: border-box; | |
box-sizing: border-box; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
} | |
::-moz-selection { | |
color: #ffffff; | |
background: #2cb9d9; | |
} | |
::selection { | |
color: #ffffff; | |
background: #2cb9d9; | |
} | |
html { | |
font-size: 62.5%; | |
scroll-behavior: smooth; | |
} | |
:focus * { | |
outline: 0; | |
} | |
.form-group { | |
margin-bottom: 0; | |
} | |
figure { | |
margin: 0; | |
} | |
p { | |
margin: 0; | |
padding: 0; | |
} | |
a { | |
text-decoration: none; | |
display: inline-block; | |
color: #fff !important; | |
} | |
a:hover { | |
text-decoration: none; | |
} | |
.h1, | |
.h2, | |
.h3, | |
.h4, | |
.h5, | |
.h6, | |
h1, | |
h2, | |
h3, | |
h4, | |
h5, | |
h6 { | |
margin: 0; | |
padding: 0; | |
text-transform: none; | |
line-height: 1; | |
} | |
ul { | |
margin: 0; | |
} | |
li { | |
list-style-type: none; | |
} | |
img { | |
display: block; | |
width: 100%; | |
max-width: 100%; | |
height: 100%; | |
-o-object-fit: contain; | |
object-fit: contain; | |
} | |
svg { | |
object-fit: contain; | |
width: auto; | |
} | |
button { | |
cursor: pointer; | |
} | |
body { | |
font-family: 'IBM Plex Sans', sans-serif; | |
font-weight: 400; | |
font-size: 17px; | |
line-height: 19px; | |
} | |
.container { | |
max-width: 1240px; | |
width: 100%; | |
margin-left: auto; | |
margin-right: auto; | |
} | |
.text__center { | |
text-align: center; | |
} | |
/* Header Area */ | |
.header__area { | |
position: absolute; | |
top: 0; | |
left: 0; | |
width: 100%; | |
display: flex; | |
justify-content: center; | |
} | |
.header__content { | |
display: flex; | |
padding-top: 30px; | |
} | |
.header__logo svg { | |
height: 40px; | |
margin-top: -10px; | |
} | |
.header__content p { | |
font-weight: 500 !important; | |
font-size: 48px !important; | |
line-height: 53px !important; | |
color: #ffffff !important; | |
margin-left: 10px; | |
} | |
/* Header Area */ | |
/* Landing Banner */ | |
/* .landing__banner { | |
background-image: url(https://user-images.githubusercontent.com/62242483/163563573-11e133fc-f347-4c57-b041-57bc0d6e34b4.jpg); | |
background-repeat: no-repeat; | |
background-size: cover; | |
background-position: center center; | |
height: 760px; | |
} */ | |
.landing__banner-content { | |
max-width: 745px; | |
width: 100%; | |
padding-top: 180px; | |
margin-left: auto; | |
margin-right: auto; | |
} | |
.landing__banner-content h1 { | |
font-weight: 700 !important; | |
font-size: 60px !important; | |
line-height: 90px !important; | |
color: #ffffff !important; | |
} | |
.custom__btn { | |
width: 100%; | |
height: 55px; | |
display: flex; | |
justify-content: center; | |
align-items: center; | |
color: #ffffff; | |
font-weight: 500; | |
font-size: 18px; | |
line-height: 23px; | |
background: #8a0303; | |
text-transform: uppercase; | |
border-radius: 10px; | |
-webkit-border-radius: 10px; | |
-moz-border-radius: 10px; | |
-ms-border-radius: 10px; | |
-o-border-radius: 10px; | |
border: 2px solid #8a0303; | |
transition: all 0.2s ease-out; | |
-webkit-transition: all 0.2s ease-out; | |
-moz-transition: all 0.2s ease-out; | |
-ms-transition: all 0.2s ease-out; | |
-o-transition: all 0.2s ease-out; | |
} | |
.custom__btn:hover { | |
background: transparent; | |
color: #8a0303; | |
} | |
.landing__banner-content a { | |
margin-top: 80px; | |
} | |
.landing__banner-content a:hover { | |
background: #8a0303; | |
color: #ffffff; | |
} | |
/* Landing Banner */ | |
/* Fedarel Students */ | |
.federal__students { | |
padding-top: 50px; | |
padding-bottom: 50px; | |
} | |
.federal__students-heading { | |
max-width: 620px; | |
width: 100%; | |
margin-left: auto; | |
margin-right: auto; | |
font-weight: 700 !important; | |
font-size: 36px !important; | |
line-height: 60px !important; | |
color: #333333 !important; | |
margin-bottom: 30px; | |
} | |
.federal__students-content { | |
display: flex; | |
box-shadow: 0px 0px 14px rgba(0, 0, 0, 0.07); | |
border-radius: 10px; | |
-webkit-border-radius: 10px; | |
-moz-border-radius: 10px; | |
-ms-border-radius: 10px; | |
-o-border-radius: 10px; | |
padding: 23px 18px; | |
} | |
.federal__students-text p { | |
font-weight: 400 !important; | |
font-size: 24px !important; | |
line-height: 40px !important; | |
letter-spacing: 1px !important; | |
color: #5f5f5f !important; | |
} | |
.federal__students-image { | |
flex: 0.4; | |
} | |
.federal__students-image img { | |
object-fit: cover; | |
} | |
.federal__students-text { | |
flex: 0.6; | |
padding-left: 30px; | |
} | |
/* Fedarel Students */ | |
/* Donate Box Area */ | |
.donate__box-area { | |
background: #f7f7f7; | |
padding: 35px 0; | |
} | |
.donate__box-wrapper { | |
display: grid; | |
grid-template-columns: repeat(2, 1fr); | |
gap: 100px; | |
} | |
.single__donate-box { | |
width: 100%; | |
background: #3270a2; | |
border: 1px solid rgba(255, 255, 255, 0.3); | |
border-radius: 10px; | |
-webkit-border-radius: 10px; | |
-moz-border-radius: 10px; | |
-ms-border-radius: 10px; | |
-o-border-radius: 10px; | |
box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); | |
color: #ffffff !important; | |
padding: 40px 25px; | |
display: flex; | |
flex-direction: column; | |
justify-content: space-around; | |
} | |
.single__donate-box h5 { | |
font-weight: 700 !important; | |
font-size: 24px !important; | |
line-height: 38px !important; | |
color: #ffffff !important; | |
text-align: center; | |
max-width: 350px; | |
width: 100%; | |
margin-left: auto; | |
margin-right: auto; | |
margin-bottom: 35px; | |
} | |
.single__donate-box p { | |
font-weight: 400 !important; | |
font-size: 24px !important; | |
line-height: 40px !important; | |
letter-spacing: 1px; | |
color: #ffffff !important; | |
} | |
.single__donate-box a { | |
letter-spacing: 0.1px; | |
text-decoration-line: underline; | |
color: #ffffff; | |
font-weight: 700 !important; | |
font-size: 20px !important; | |
line-height: 24px !important; | |
margin-top: 30px; | |
} | |
.single__donate-box a span { | |
margin-left: 10px; | |
} | |
.full__width-box h5 { | |
max-width: 80%; | |
} | |
/* Donate Box Area */ | |
/* Strategy Area */ | |
.strategy__area { | |
padding: 50px 0; | |
} | |
.single__strategy { | |
display: flex; | |
margin-bottom: 100px; | |
} | |
.single__strategy:last-of-type { | |
margin-bottom: 0; | |
} | |
.reverse__strategy { | |
flex-direction: row-reverse; | |
} | |
.strategy__content { | |
flex: 0.7; | |
padding-right: 50px; | |
} | |
.reverse__strategy .strategy__content { | |
padding-right: 0px; | |
padding-left: 50px; | |
} | |
.strategy__image { | |
flex: 0.3; | |
} | |
.strategy__image img { | |
object-fit: cover; | |
} | |
.strategy__content h5 { | |
font-weight: 700 !important; | |
font-size: 36px !important; | |
line-height: 47px !important; | |
color: #333333 !important; | |
margin-bottom: 30px; | |
} | |
.strategy__content p { | |
font-weight: 400 !important; | |
font-size: 24px !important; | |
line-height: 44px !important; | |
color: #757575 !important; | |
max-width: 100%; | |
width: 100%; | |
} | |
.strategy__items { | |
margin-top: 30px; | |
} | |
.strategy__items li { | |
font-weight: 400; | |
font-size: 24px; | |
line-height: 24px; | |
display: flex; | |
align-items: center; | |
letter-spacing: 0.1px; | |
color: #333333; | |
margin-bottom: 20px; | |
} | |
.strategy__items li span { | |
margin-right: 15px; | |
} | |
/* Strategy Area */ | |
/* Contact Section */ | |
.contact__form { | |
background: #f7f7f7; | |
padding: 50px 0; | |
} | |
.contact__form-area { | |
display: flex; | |
} | |
.contact__form-left, | |
.contact__form-right { | |
flex: 1; | |
} | |
.contact__form-left { | |
padding-right: 50px; | |
} | |
.contact__form-left h3 { | |
font-weight: 700 !important; | |
font-size: 36px !important; | |
line-height: 47px !important; | |
color: #000000 !important; | |
margin-bottom: 30px; | |
} | |
.contact__form-left p { | |
font-weight: 400 !important; | |
font-size: 24px !important; | |
line-height: 35px !important; | |
color: #757575 !important; | |
max-width: 100%; | |
width: 100%; | |
} | |
.contact__input-style { | |
width: 100%; | |
height: 55px; | |
border: 1px solid #000; | |
border-radius: 3px; | |
background: transparent; | |
font-weight: 400; | |
font-size: 16px; | |
line-height: 21px; | |
color: #000000; | |
padding: 15px; | |
} | |
::-webkit-input-placeholder { | |
color: #000000; | |
font-weight: 500; | |
font-size: 16px; | |
line-height: 21px; | |
font-weight: 700; | |
} | |
::-moz-placeholder { | |
color: #000000; | |
font-weight: 500; | |
font-size: 16px; | |
line-height: 21px; | |
font-weight: 700; | |
} | |
:-ms-input-placeholder { | |
color: #000000; | |
font-weight: 500; | |
font-size: 16px; | |
line-height: 21px; | |
font-weight: 700; | |
} | |
:-moz-placeholder { | |
color: #000000; | |
font-weight: 500; | |
font-size: 16px; | |
line-height: 21px; | |
font-weight: 700; | |
} | |
.contact__field-wrap { | |
display: grid; | |
grid-template-columns: repeat(2, 1fr); | |
column-gap: 20px; | |
row-gap: 25px; | |
} | |
.contact__email-field { | |
grid-column: 1 / 3; | |
} | |
.comment__field { | |
height: 153px; | |
grid-column: 1 / 3; | |
} | |
.comment__btn { | |
width: 100%; | |
height: 43px; | |
display: flex; | |
justify-content: center; | |
align-items: center; | |
background: #8a0303; | |
border: 2px solid #8a0303; | |
border-radius: 5px; | |
font-weight: 500; | |
font-size: 18px; | |
line-height: 23px; | |
color: #ffffff; | |
margin-top: 30px; | |
transition: all 0.2s ease-out; | |
-webkit-transition: all 0.2s ease-out; | |
-moz-transition: all 0.2s ease-out; | |
-ms-transition: all 0.2s ease-out; | |
-o-transition: all 0.2s ease-out; | |
} | |
.comment__btn:hover { | |
color: #8a0303; | |
background: #ffffff; | |
} | |
/* Contact Section */ | |
/* Footer Petition */ | |
.footer__box { | |
padding: 45px 0; | |
display: flex; | |
margin-bottom: 0; | |
} | |
.footer__left { | |
flex: 1; | |
} | |
.footer__right { | |
flex: 1; | |
text-align: right; | |
} | |
.footer__social-icons { | |
display: flex; | |
margin-top: 15px; | |
} | |
.footer__social-icons li { | |
margin-right: 10px; | |
} | |
.footer__logo-info { | |
margin-top: 30px; | |
display: flex; | |
flex-direction: column; | |
} | |
.footer__logo-info img, | |
.footer__logo-info svg { | |
height: 40px; | |
width: auto; | |
margin-bottom: -5px; | |
margin-left: -5px; | |
width: fit-content; | |
} | |
.footer__left p { | |
max-width: 463px; | |
width: 100%; | |
font-weight: 500 !important; | |
font-size: 16px !important; | |
line-height: 32px !important; | |
color: #333333 !important; | |
} | |
.footer__logo-info p { | |
font-weight: 600 !important; | |
font-size: 18px !important; | |
line-height: 28px !important; | |
} | |
.footer__right p { | |
font-weight: 400 !important; | |
font-size: 16px !important; | |
line-height: 33px !important; | |
color: #333333 !important; | |
} | |
/* Footer Petition */ | |
/* Responsive Code */ | |
@media (max-width: 1199.98px) { | |
.header__content p { | |
font-size: 40px !important; | |
line-height: 48px !important; | |
} | |
.landing__banner-content h1 { | |
font-size: 50px !important; | |
line-height: 70px !important; | |
} | |
.landing__banner-content { | |
max-width: 650px; | |
} | |
.federal__students-image { | |
flex: 1; | |
} | |
.federal__students-text { | |
flex: 1; | |
padding-left: 0; | |
} | |
.federal__students-content { | |
flex-direction: column; | |
padding: 30px; | |
} | |
.federal__students-image img { | |
height: 600px; | |
} | |
.federal__students-image { | |
margin-bottom: 30px; | |
} | |
.federal__students-heading { | |
font-size: 36px !important; | |
line-height: 50px !important; | |
} | |
.donate__box-wrapper { | |
gap: 30px; | |
} | |
.single__strategy { | |
flex-direction: column; | |
margin-bottom: 60px; | |
} | |
.strategy__image { | |
margin-top: 30px; | |
} | |
.reverse__strategy .strategy__content { | |
padding-left: 0; | |
} | |
.strategy__content h5 { | |
margin-bottom: 20px; | |
} | |
.contact__form-left { | |
padding-right: 80px; | |
} | |
.strategy__content { | |
padding-right: 0; | |
} | |
.strategy__content p { | |
max-width: 100%; | |
} | |
section, | |
footer { | |
padding-left: 30px !important; | |
padding-right: 30px !important; | |
} | |
} | |
@media (max-width: 991.98px) { | |
.contact__form-area { | |
flex-direction: column; | |
} | |
.contact__form-right { | |
margin-top: 50px; | |
} | |
.area__wrapper { | |
padding: 0 50px; | |
} | |
.landing__banner-content { | |
max-width: 100%; | |
padding-top: 250px; | |
} | |
.landing__banner-content h1 { | |
font-size: 36px !important; | |
line-height: 50px !important; | |
} | |
.landing__banner-content a { | |
margin-top: 50px; | |
} | |
.donate__box-wrapper { | |
grid-template-columns: repeat(1, 1fr); | |
} | |
section, | |
footer { | |
padding-left: 30px !important; | |
padding-right: 30px !important; | |
} | |
.contact__form-left { | |
padding-right: 0; | |
} | |
.contact__form-left p { | |
max-width: 100%; | |
} | |
} | |
@media (max-width: 575.98px) { | |
.contact__form-left h3 { | |
font-size: 22px !important; | |
line-height: 30px !important; | |
margin-bottom: 10px; | |
} | |
.contact__form-left p { | |
font-size: 18px !important; | |
line-height: 32px !important; | |
} | |
.contact__field-wrap { | |
grid-template-columns: repeat(1, 1fr); | |
row-gap: 20px; | |
} | |
.contact__email-field { | |
grid-column: initial; | |
} | |
.contact__input-style { | |
height: 48px; | |
} | |
.comment__field { | |
height: 100px; | |
grid-column: initial; | |
} | |
.contact__form-right { | |
margin-top: 30px; | |
} | |
.footer__right { | |
text-align: left; | |
margin-top: 30px; | |
} | |
.footer__logo-info p { | |
font-size: 16px !important; | |
line-height: 26px !important; | |
} | |
.footer__box { | |
padding-top: 30px; | |
padding-bottom: 30px; | |
flex-direction: column; | |
} | |
.header__content { | |
flex-direction: column; | |
} | |
.header__logo svg { | |
width: auto; | |
margin-bottom: 5px; | |
} | |
.header__content p { | |
font-size: 24px !important; | |
line-height: 28px !important; | |
margin-top: -5px; | |
} | |
.landing__banner-content h1 { | |
font-size: 26px !important; | |
line-height: 36px !important; | |
} | |
.landing__banner { | |
height: 650px; | |
} | |
.federal__students-heading { | |
font-size: 26px !important; | |
line-height: 36px !important; | |
} | |
.federal__students-content { | |
padding: 0; | |
} | |
.federal__students-text { | |
padding: 25px; | |
padding-top: 0; | |
} | |
.federal__students-text p { | |
font-size: 20px !important; | |
line-height: 36px !important; | |
} | |
.federal__students-image img { | |
height: 285px; | |
} | |
.federal__students { | |
padding-top: 50px; | |
padding-bottom: 50px; | |
} | |
.single__donate-box h5 { | |
font-size: 22px !important; | |
line-height: 30px !important; | |
margin-bottom: 20px; | |
} | |
.single__donate-box p { | |
font-size: 20px !important; | |
line-height: 36px !important; | |
} | |
.single__donate-box a { | |
font-size: 18px !important; | |
line-height: 22px !important; | |
margin-top: 30px; | |
} | |
.full__width-box h5 { | |
max-width: 100%; | |
} | |
.strategy__area { | |
padding: 50px 0; | |
} | |
.strategy__content h5 { | |
font-size: 26px !important; | |
line-height: 36px !important; | |
margin-bottom: 20px; | |
} | |
.strategy__content p { | |
font-size: 20px !important; | |
line-height: 36px !important; | |
} | |
.strategy__content { | |
padding-right: 0; | |
} | |
.strategy__items li { | |
font-size: 20px; | |
line-height: 24px; | |
margin-bottom: 15px; | |
align-items: initial; | |
} | |
.strategy__items li span { | |
margin-right: 10px; | |
} | |
.federal__students-image { | |
margin-bottom: 20px; | |
} | |
#page-theme [data-bach-id='DED80AC7-CB93-5FA4-464A-8F0BCD72A316'] { | |
padding: 0px !important; | |
} | |
section, | |
footer { | |
padding-left: 20px !important; | |
padding-right: 20px !important; | |
} | |
} | |
/* Responsive Code */ | |
</style> | |
<!-- Contact Section --> | |
<section class="contact__form"> | |
<div class="container"> | |
<div class="contact__form-area"> | |
<div class="contact__form-left"> | |
<h3>Will You Consider Signing the Petition?</h3> | |
<p> | |
If you have concerns, questions, or suggestions, | |
we would like to hear from you. Please complete | |
and submit your comments. | |
</p> | |
</div> | |
<link rel="preconnect" href="https://fonts.googleapis.com"> | |
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | |
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@500&display=swap" | |
rel="stylesheet"> | |
<!-- <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@100&family=Open+Sans:wght@300&display=swap" rel="stylesheet"> --> | |
<div class="contact__form-right"> | |
<form method="POST" action="https://cfored.activehosted.com/proc.php" id="_form_16_" novalidate> | |
<div class="contact__field-wrap"> | |
<input type="hidden" name="u" value="16" /> | |
<input type="hidden" name="f" value="16" /> | |
<input type="hidden" name="s" /> | |
<input type="hidden" name="c" value="0" /> | |
<input type="hidden" name="m" value="0" /> | |
<input type="hidden" name="act" value="sub" /> | |
<input type="hidden" name="v" value="2" /> | |
<input class="contact__input-style" type="text" id="firstname" name="firstname" | |
placeholder="First Name" required /> | |
<input class="contact__input-style" type="text" id="lastname" name="lastname" | |
placeholder="Last Name" required /> | |
<input class="contact__input-style contact__email-field" type="text" id="email" name="email" | |
placeholder="Email" required /> | |
<input class="contact__input-style comment__field" type="textarea" rows="0" id="field[8]" | |
name="field[8]" value="" placeholder="Comments" /> | |
<input type="hidden" data-callback="recaptchaTest" class="g-recaptcha-response" | |
name="g-recaptcha-response"> | |
</div> | |
<div class="_button-wrapper _full_width"> | |
<button id="_form_16_submit" class="comment__btn" type="submit"> | |
Comments | |
</button> | |
</div> | |
<div class="_clear-element"> | |
</div> | |
</div> | |
<div class="_form-thank-you" style="display:none;"> | |
</div> | |
</form> | |
</div> | |
</div> | |
</div> | |
</section> | |
<script type="text/javascript"> | |
let check_recaptcha = false; | |
function recaptchaTest() { | |
check_recaptcha = true; | |
} | |
function thankYou() { | |
const fname = document.getElementById("firstname").value; | |
const lname = document.getElementById("lastname").value; | |
const mail = document.getElementById("email").value; | |
if (fname === "" || lname === "" || mail === "") { } | |
else { | |
window.location.href = "https://cfored.ac-page.com/thank-you"; | |
} | |
} | |
window.cfields = { "8": "comments" }; | |
window._show_thank_you = function (id, message, trackcmp_url, email) { | |
var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you'); | |
form.querySelector('._form-content').style.display = 'none'; | |
thank_you.innerHTML = message; | |
thank_you.style.display = 'block'; | |
const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; | |
var visitorObject = window[vgoAlias]; | |
if (email && typeof visitorObject !== 'undefined') { | |
visitorObject('setEmail', email); | |
visitorObject('update'); | |
} else if (typeof (trackcmp_url) != 'undefined' && trackcmp_url) { | |
// Site tracking URL to use after inline form submission. | |
_load_script(trackcmp_url); | |
} | |
if (typeof window._form_callback !== 'undefined') window._form_callback(id); | |
}; | |
window._show_error = function (id, message, html) { | |
var form = document.getElementById('_form_' + id + '_'), err = document.createElement('div'), button = form.querySelector('button'), old_error = form.querySelector('._form_error'); | |
if (old_error) old_error.parentNode.removeChild(old_error); | |
err.innerHTML = ""; | |
err.className = '_error-inner _form_error _no_arrow'; | |
var wrapper = document.createElement('div'); | |
wrapper.className = '_form-inner'; | |
wrapper.appendChild(err); | |
button.parentNode.insertBefore(wrapper, button); | |
document.querySelector('[id^="_form"][id$="_submit"]').disabled = false; | |
if (html) { | |
var div = document.createElement('div'); | |
div.className = '_error-html'; | |
div.innerHTML = html; | |
err.appendChild(div); | |
} | |
}; | |
window._load_script = function (url, callback) { | |
var head = document.querySelector('head'), script = document.createElement('script'), r = false; | |
script.type = 'text/javascript'; | |
script.charset = 'utf-8'; | |
script.src = url; | |
if (callback) { | |
script.onload = script.onreadystatechange = function () { | |
if (!r && (!this.readyState || this.readyState == 'complete')) { | |
r = true; | |
callback(); | |
} | |
}; | |
} | |
head.appendChild(script); | |
}; | |
(function () { | |
if (window.location.search.search("excludeform") !== -1) return false; | |
var getCookie = function (name) { | |
var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)')); | |
return match ? match[2] : null; | |
} | |
var setCookie = function (name, value) { | |
var now = new Date(); | |
var time = now.getTime(); | |
var expireTime = time + 1000 * 60 * 60 * 24 * 365; | |
now.setTime(expireTime); | |
document.cookie = name + '=' + value + '; expires=' + now + ';path=/'; | |
} | |
var addEvent = function (element, event, func) { | |
if (element.addEventListener) { | |
element.addEventListener(event, func); | |
} else { | |
var oldFunc = element['on' + event]; | |
element['on' + event] = function () { | |
oldFunc.apply(this, arguments); | |
func.apply(this, arguments); | |
}; | |
} | |
} | |
var _removed = false; | |
var form_to_submit = document.getElementById('_form_16_'); | |
var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false; | |
var getUrlParam = function (name) { | |
var regexStr = '[\?&]' + name + '=([^&#]*)'; | |
var results = new RegExp(regexStr, 'i').exec(window.location.href); | |
return results != undefined ? decodeURIComponent(results[1]) : false; | |
}; | |
for (var i = 0; i < allInputs.length; i++) { | |
var regexStr = "field\\[(\\d+)\\]"; | |
var results = new RegExp(regexStr).exec(allInputs[i].name); | |
if (results != undefined) { | |
allInputs[i].dataset.name = window.cfields[results[1]]; | |
} else { | |
allInputs[i].dataset.name = allInputs[i].name; | |
} | |
var fieldVal = getUrlParam(allInputs[i].dataset.name); | |
if (fieldVal) { | |
if (allInputs[i].dataset.autofill === "false") { | |
continue; | |
} | |
if (allInputs[i].type == "radio" || allInputs[i].type == "checkbox") { | |
if (allInputs[i].value == fieldVal) { | |
allInputs[i].checked = true; | |
} | |
} else { | |
allInputs[i].value = fieldVal; | |
} | |
} | |
} | |
var remove_tooltips = function () { | |
for (var i = 0; i < tooltips.length; i++) { | |
tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); | |
} | |
tooltips = []; | |
}; | |
var remove_tooltip = function (elem) { | |
for (var i = 0; i < tooltips.length; i++) { | |
if (tooltips[i].elem === elem) { | |
tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); | |
tooltips.splice(i, 1); | |
return; | |
} | |
} | |
}; | |
var create_tooltip = function (elem, text) { | |
var tooltip = document.createElement('div'), arrow = document.createElement('div'), inner = document.createElement('div'), new_tooltip = {}; | |
if (elem.type != 'radio' && elem.type != 'checkbox') { | |
tooltip.className = '_error'; | |
arrow.className = '_error-arrow'; | |
inner.className = '_error-inner'; | |
tooltip.style.color = "red"; | |
inner.innerHTML = text; | |
tooltip.appendChild(arrow); | |
tooltip.appendChild(inner); | |
elem.parentNode.appendChild(tooltip); | |
} else { | |
tooltip.className = '_error-inner _no_arrow'; | |
tooltip.innerHTML = text; | |
elem.parentNode.insertBefore(tooltip, elem); | |
new_tooltip.no_arrow = true; | |
} | |
new_tooltip.tip = tooltip; | |
new_tooltip.elem = elem; | |
tooltips.push(new_tooltip); | |
return new_tooltip; | |
}; | |
var resize_tooltip = function (tooltip) { | |
var rect = tooltip.elem.getBoundingClientRect(); | |
var doc = document.documentElement, scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)); | |
if (scrollPosition < 40) { | |
tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _below'; | |
} else { | |
tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _above'; | |
} | |
}; | |
var resize_tooltips = function () { | |
if (_removed) return; | |
for (var i = 0; i < tooltips.length; i++) { | |
if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]); | |
} | |
}; | |
var validate_field = function (elem, remove) { | |
var tooltip = null, value = elem.value, no_error = true; | |
remove ? remove_tooltip(elem) : false; | |
if (elem.type != 'checkbox') elem.className = elem.className.replace(/ ?_has_error ?/g, ''); | |
if (elem.getAttribute('required') !== null) { | |
if (elem.type == 'radio' || (elem.type == 'checkbox' && /any/.test(elem.className))) { | |
var elems = form_to_submit.elements[elem.name]; | |
if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) { | |
no_error = elem.checked; | |
} | |
else { | |
no_error = false; | |
for (var i = 0; i < elems.length; i++) { | |
if (elems[i].checked) no_error = true; | |
} | |
} | |
if (!no_error) { | |
tooltip = create_tooltip(elem, "Please select an option."); | |
} | |
} | |
else if (elem.type == 'checkbox') { | |
var elems = form_to_submit.elements[elem.name], found = false, err = []; | |
no_error = true; | |
for (var i = 0; i < elems.length; i++) { | |
if (elems[i].getAttribute('required') === null) continue; | |
if (!found && elems[i] !== elem) return true; | |
found = true; | |
elems[i].className = elems[i].className.replace(/ ?_has_error ?/g, ''); | |
if (!elems[i].checked) { | |
no_error = false; | |
elems[i].className = elems[i].className + ' _has_error'; | |
err.push("Checking %s is required".replace("%s", elems[i].value)); | |
} | |
} | |
if (!no_error) { | |
tooltip = create_tooltip(elem, err.join('<br/>')); | |
} | |
} | |
else if (elem.tagName == 'SELECT') { | |
var selected = true; | |
if (elem.multiple) { | |
selected = false; | |
for (var i = 0; i < elem.options.length; i++) { | |
if (elem.options[i].selected) { | |
selected = true; | |
break; | |
} | |
} | |
} else { | |
for (var i = 0; i < elem.options.length; i++) { | |
if (elem.options[i].selected && !elem.options[i].value) { | |
selected = false; | |
} | |
} | |
} | |
if (!selected) { | |
elem.className = elem.className + ' _has_error'; | |
no_error = false; | |
tooltip = create_tooltip(elem, "Please select an option."); | |
} | |
} | |
else if (value === undefined || value === null || value === '') { | |
elem.className = elem.className + ' _has_error'; | |
no_error = false; | |
if (elem === document.getElementById("email")) | |
tooltip = create_tooltip(elem, "Missing Email Address"); | |
if (elem === document.getElementById("firstname")) | |
tooltip = create_tooltip(elem, "Missing First Name"); | |
if (elem === document.getElementById("lastname")) | |
tooltip = create_tooltip(elem, "Missing Last Name"); | |
} | |
} | |
if (no_error && elem.name == 'email') { | |
if (!value.match(/^[\+_a-z0-9-'&=]+(\.[\+_a-z0-9-']+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i)) { | |
elem.className = elem.className + ' _has_error'; | |
no_error = false; | |
tooltip = create_tooltip(elem, "Enter a valid email address."); | |
} | |
} | |
if (no_error && /date_field/.test(elem.className)) { | |
if (!value.match(/^\d\d\d\d-\d\d-\d\d$/)) { | |
elem.className = elem.className + ' _has_error'; | |
no_error = false; | |
tooltip = create_tooltip(elem, "Enter a valid date."); | |
} | |
} | |
tooltip ? resize_tooltip(tooltip) : false; | |
return no_error; | |
}; | |
var needs_validate = function (el) { | |
if (el.getAttribute('required') !== null) { | |
return true | |
} | |
if (el.name === 'email' && el.value !== "") { | |
return true | |
} | |
return false | |
}; | |
var validate_form = function (e) { | |
var err = form_to_submit.querySelector('._form_error'), no_error = true; | |
if (!submitted) { | |
submitted = true; | |
for (var i = 0, len = allInputs.length; i < len; i++) { | |
var input = allInputs[i]; | |
if (needs_validate(input)) { | |
if (input.type == 'text') { | |
addEvent(input, 'blur', function () { | |
this.value = this.value.trim(); | |
validate_field(this, true); | |
}); | |
addEvent(input, 'input', function () { | |
validate_field(this, true); | |
}); | |
} else if (input.type == 'radio' || input.type == 'checkbox') { | |
(function (el) { | |
var radios = form_to_submit.elements[el.name]; | |
for (var i = 0; i < radios.length; i++) { | |
addEvent(radios[i], 'click', function () { | |
validate_field(el, true); | |
}); | |
} | |
})(input); | |
} else if (input.tagName == 'SELECT') { | |
addEvent(input, 'change', function () { | |
validate_field(this, true); | |
}); | |
} else if (input.type == 'textarea') { | |
addEvent(input, 'input', function () { | |
validate_field(this, true); | |
}); | |
} | |
} | |
} | |
} | |
remove_tooltips(); | |
for (var i = 0, len = allInputs.length; i < len; i++) { | |
var elem = allInputs[i]; | |
if (needs_validate(elem)) { | |
if (elem.tagName.toLowerCase() !== "select") { | |
elem.value = elem.value.trim(); | |
} | |
validate_field(elem) ? true : no_error = false; | |
} | |
} | |
if (!no_error && e) { | |
e.preventDefault(); | |
} | |
resize_tooltips(); | |
return no_error; | |
}; | |
addEvent(window, 'resize', resize_tooltips); | |
addEvent(window, 'scroll', resize_tooltips); | |
window['recaptcha_callback'] = function () { | |
} | |
// Get all recaptchas in the DOM (there may be more than one form on the page). | |
var siteKey = '6LcwIw8TAAAAACP1ysM08EhCgzd6q5JAOUR1a0Go'; | |
_load_script("//www.google.com/recaptcha/api.js?render=" + siteKey); | |
var forms = document.getElementsByTagName('form'); | |
for (var i = 0; i < forms.length; i++) { | |
var cForm = forms[i]; | |
var recaptchaResponseInput = cForm.querySelectorAll('input.g-recaptcha-response'); | |
if (recaptchaResponseInput.length > 0) { | |
cForm.addEventListener("submit", function (e) { | |
grecaptcha.ready(function () { | |
grecaptcha.execute(siteKey, { action: 'subscribe_newsletter' }).then(function (token) { | |
for (var j = 0; j < recaptchaResponseInput.length; j++) { | |
recaptchaResponseInput[j].value = token; | |
} | |
}); | |
}); | |
}); | |
} | |
} | |
window._old_serialize = null; | |
if (typeof serialize !== 'undefined') window._old_serialize = window.serialize; | |
_load_script("//d3rxaij56vjege.cloudfront.net/form-serialize/0.3/serialize.min.js", function () { | |
window._form_serialize = window.serialize; | |
if (window._old_serialize) window.serialize = window._old_serialize; | |
}); | |
var form_submit = function (e) { | |
e.preventDefault(); | |
if (validate_form()) { | |
// use this trick to get the submit button & disable it using plain javascript | |
document.querySelector('#_form_16_submit').disabled = true; | |
var serialized = _form_serialize(document.getElementById('_form_16_')).replaceAll('%0A', '\\n'); | |
var err = form_to_submit.querySelector('._form_error'); | |
err ? err.parentNode.removeChild(err) : false; | |
_load_script('https://cfored.activehosted.com/proc.php?' + serialized + '&jsonp=true'); | |
} | |
return false; | |
}; | |
addEvent(form_to_submit, 'submit', form_submit); | |
})(); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment