Submit
jQuery(document).ready(function($) {
var VENUE_TIMEZONE = 'America/Chicago';
function getChicagoParts() {
var formatter = new Intl.DateTimeFormat('en-US', {
timeZone: VENUE_TIMEZONE,
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
hour12: false
});
var parts = {};
formatter.formatToParts(new Date()).forEach(function(part) {
parts[part.type] = part.value;
});
if (parts.hour === '24') {
parts.hour = '00';
}
return {
dateStr: parts.year + '-' + parts.month + '-' + parts.day,
minutes: (parseInt(parts.hour, 10) * 60) + parseInt(parts.minute, 10)
};
}
function parseTimeToMinutes(timeStr) {
var match = timeStr.match(/^(\d{1,2}):(\d{2})(am|pm)$/i);
if (!match) {
return null;
}
var hour = parseInt(match[1], 10);
var minute = parseInt(match[2], 10);
var meridiem = match[3].toLowerCase();
if (meridiem === 'am') {
if (hour === 12) {
hour = 0;
}
} else {
if (hour !== 12) {
hour += 12;
}
}
return (hour * 60) + minute;
}
function updateAvailableTimes() {
var chicagoNow = getChicagoParts();
var selectedDate = $('#event_date').val();
var isToday = (selectedDate === chicagoNow.dateStr);
$('#start_time option').each(function() {
var optionMinutes = parseTimeToMinutes($(this).val());
var shouldDisable = isToday && optionMinutes !== null && optionMinutes <= chicagoNow.minutes;
$(this).prop('disabled', shouldDisable);
});
var selectedOption = $('#start_time option:selected');
if (selectedOption.prop('disabled')) {
$('#start_time').val('');
}
}
var todayChicago = getChicagoParts().dateStr;
$('#event_date').attr('min', todayChicago);
$('#event_date').on('change', updateAvailableTimes);
updateAvailableTimes();
$('#guest_count').on('input', function() {
var value = parseInt($(this).val(), 10);
if (!isNaN(value) && value < 1) {
$(this).val('');
}
});
$('#private-event-form').submit(function(event) {
event.preventDefault();
var guestCount = parseInt($('#guest_count').val(), 10);
if (isNaN(guestCount) || guestCount < 1) {
$('#event-form-message').html('Please enter a valid number of guests (minimum 1).');
return;
}
var chicagoNow = getChicagoParts();
var selectedDate = $('#event_date').val();
var selectedTimeMinutes = parseTimeToMinutes($('#start_time').val());
if (!selectedDate || selectedDate < chicagoNow.dateStr) {
$('#event-form-message').html('Please select a valid future date.');
return;
}
if (selectedDate === chicagoNow.dateStr && selectedTimeMinutes !== null && selectedTimeMinutes <= chicagoNow.minutes) {
$('#event-form-message').html('Please select a time later than the current time.');
return;
}
var formData = {
lead: {
first_name: $('#first_name').val(),
last_name: $('#last_name').val(),
company: $('#company').val(),
phone_number: $('#phone_number').val(),
email_address: $('#email_address').val(),
event_date: selectedDate,
start_time: $('#start_time').val(),
guest_count: guestCount,
event_description: $('#event_description').val(),
additional_information: $('#additional_information').val(),
email_opt_in: $('#email_opt_in').is(':checked') ? 1 : 0,
gdpr_consent_granted: 1
},
lead_form_id: $('#lead_form_id').val()
};
var crmEndpoint = 'https://api.tripleseat.com/v1/leads/create.js?public_key=bb69d8980de28fbc639ffa71aef1c88f1bc11615';
$.ajax(crmEndpoint,
{data: formData,
dataType: 'JSONP',
crossDomain: true,
success: function(response) {
if (response.errors) {
$('#event-form-message').html('Something wrong occured. Please retry later or contact us via email.');
$('#private-event-form').hide();
} else {
$('#event-form-message').html('Thank you for your interest in Freehand Chicago! We\'ve recorded your request and we will get back to you.');
$('#private-event-form').hide();
}
},
error: function(jqXHR, textStatus, errorThrown) {
$('#event-form-message').html('GeneralError: ' + textStatus + ' - ' + errorThrown);
}
});
});
});