Yellow Bike Project Hours and Transaction Database for Community Bike Shops
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
3.8 KiB

$(function(){
"use strict";
var birth_date = $("#birth_date");
var waiver_checkbox = $("#waiver_checkbox"), waiver_error = $("#waiver_error");
var first_name = $("#first_name"), first_name_error = $("#first_name_error");
var last_name = $("#last_name"), last_name_error = $("#last_name_error");
var phone = $("#phone"), phone_error = $("#phone_error");
var email = $("#email"), email_error = $("#email_error");
var zip = $("#zip");
var state_abbreviation = $("#state_abbreviation");
// sensible defaults
first_name.mask('#',{placeholder: "first", translation: {"#": {pattern: /[A-Za-z0-9@.]/, recursive: true} } });
last_name.mask('#',{placeholder: "last", translation: {"#": {pattern: /[A-Za-z0-9@.]/, recursive: true} } });
birth_date.mask("0000-00-00", {placeholder: "yyyy-mm-dd" });
phone.mask('(000) 000-0000', {placeholder: "(000) 000-0000"});
email.mask('#',{placeholder: "_@_", translation: {"#": {pattern: /[A-Za-z0-9@.]/, recursive: true} } });
zip.mask('00000-0000', {placeholder: "00000-0000"});
state_abbreviation.mask('AA',{placeholder: "WV", translation: {"A": {pattern: /[A-Za-z]/, recursive: false} } });
$("#submit_contact").on("click keypress", function(e) {
// check for errors
//error_handler(input,error_span,error,error_text,event);
var err0 = 0, err1 = 0;
// first name & last name input
error_handler(first_name.val(), first_name_error, "","*Required",e);
error_handler(last_name.val(), last_name_error, "","*Required",e);
// email and phone input
if (email.val() === "" && phone.val() === "") {
error_handler(email.val(), email_error, "","*Required - email address and/or phone number",e);
error_handler(phone.val(), phone_error, "","*Required - email address and/or phone number",e);
} else if ( (email.val() === "" && phone.val() !== "") ) {
email_error.hide();
phone_error.hide();
phone_validator(phone.val(),e);
} else if ( (email.val() !== "" && phone.val() === "") ) {
email_error.hide();
phone_error.hide();
email_validator(email.val(),e);
} else if ( email.val() && phone.val() ) {
email_error.hide();
phone_error.hide();
phone_validator(phone.val(),e);
email_validator(email.val(),e);
}
// waiver checkbox
error_handler(waiver_checkbox.prop("checked"),waiver_error,false,"*Required",event);
} );
// waiver slideup/slidedown
$('#waiver').hide();
var c=0;
$('#waiver_button').click(function(e){
e.preventDefault();
if (c == 0) {
$('#waiver').slideDown();
$(this).attr("value","Hide Waiver");
c++;
} else {
$('#waiver').slideUp();
$(this).attr("value","Show Waiver");
c--;
} });
function phone_validator(val, e) {
var re = /^\(\d{3}\)\s?\d{3}-\d{4}$/;
if ( !re.test(val) ) {
console.log("hello");
error_handler(false, phone_error, false,"*Enter a correct phone number",e);
}
}
function email_validator(val, e) {
// https://fightingforalostcause.net/content/misc/2006/compare-email-regex.php
var re = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i;
if ( !re.test(val) ) {
error_handler(false, email_error, false,"*Enter a correct email address",e);
}
}
// error handler for contacts
function error_handler(input,error_span,error,error_text,event) {
var trans_error = 0;
if ( input == error ) {
if ( !error_span.is(":visible") ) {
error_span.show();
}
error_span.html(error_text);
trans_error = 1;
} else {
trans_error = 0;
error_span.hide();
}
if (trans_error) {
event.preventDefault();
}
return trans_error;
} // end error_handling function
});