{"id":7,"date":"2025-12-18T16:27:55","date_gmt":"2025-12-18T16:27:55","guid":{"rendered":"https:\/\/cavopoulton.co.uk\/?page_id=7"},"modified":"2025-12-19T14:34:36","modified_gmt":"2025-12-19T14:34:36","slug":"cavo-poulton","status":"publish","type":"page","link":"https:\/\/cavopoulton.co.uk\/","title":{"rendered":"Cavo | Poulton"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#000000&#8243; background_image=&#8221;https:\/\/cavopoulton.co.uk\/wp-content\/uploads\/2025\/12\/cavo-wine-bar-poulton.jpg&#8221; parallax=&#8221;on&#8221; min_height=&#8221;100vh&#8221; custom_margin=&#8221;auto||auto||true|false&#8221; custom_padding=&#8221;250px||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; width=&#8221;40%&#8221; width_tablet=&#8221;70%&#8221; width_phone=&#8221;90%&#8221; width_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][de_fb_form title=&#8221;Book with Cavo&#8221; form_id=&#8221;Booking&#8221; submit_button_text=&#8221;SUBMIT&#8221; message_position=&#8221;before_button&#8221; success_message=&#8221;Thanks for requesting a booking, Please be aware that until we confirm your booking, we cannot guarantee it. Please call 01253 882244 if you have any issues.&#8221; use_custom_email=&#8221;off&#8221; custom_contact_email=&#8221;info@cardwellhospitality.co.uk&#8221; from_email=&#8221;sender&#8221; from_email_field=&#8221;Email&#8221; replyto_name=&#8221;Name&#8221; replyto_email=&#8221;Email&#8221; email_title=&#8221;Cavo Online Booking&#8221; email_template_html=&#8221;on&#8221; email_template=&#8221;This email was generated from CavoPoulton.co.uk<\/p>\n<p>Name of sender: %%Name%%<\/p>\n<p>Email Address: %%Email%%<\/p>\n<p>Telephone Number: %%Number%% <\/p>\n<p>Date &#038; Time requested: %%Date%%<\/p>\n<p>Number of guests: %%Guests%%<\/p>\n<p>Additional Information: <\/p>\n<p>%%Message%%<\/p>\n<p>If you click &#8216;reply&#8217; to respond to this message, make sure the email address in the &#8216;To&#8217; field is correct. It can sometimes default to the website&#8217;s default address. &#8221; save_to_database=&#8221;on&#8221; google_recaptcha=&#8221;on&#8221; recaptcha_sitekey_type=&#8221;recaptcha_3&#8243; recaptcha_sitekey_v3=&#8221;6LfnnTAsAAAAAJYr6oGMc97m8DsqtO39ECiiO6F_&#8221; recaptcha_seckey_v3=&#8221;6LfnnTAsAAAAABXXIz_I5zOKF7qht0A86whaJavY&#8221; use_honeypot_captcha=&#8221;off&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; _unique_id=&#8221;1200f5a4-5f00-48ae-bf98-c7abaf7d3316&#8243; form_field_background_color=&#8221;rgba(255,255,255,0.6)&#8221; form_title_font=&#8221;||||||||&#8221; form_title_text_align=&#8221;center&#8221; form_title_text_color=&#8221;#FFFFFF&#8221; form_title_font_size=&#8221;32px&#8221; label_text_font=&#8221;|300|||||||&#8221; label_text_text_color=&#8221;#e5e5e5&#8243; label_text_font_size=&#8221;1.5em&#8221; placeholder_text_text_color=&#8221;#000000&#8243; success_notice_text_font=&#8221;|700|||||||&#8221; success_notice_text_text_color=&#8221;#FFFFFF&#8221; success_notice_text_font_size=&#8221;19px&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#FFFFFF&#8221; button_border_color=&#8221;#FFFFFF&#8221; hover_enabled=&#8221;0&#8243; form_title_text_shadow_style=&#8221;preset1&#8243; border_width_bottom=&#8221;1px&#8221; border_color_bottom=&#8221;#FFFFFF&#8221; border_width_left=&#8221;2px&#8221; border_color_left=&#8221;#FFFFFF&#8221; global_colors_info=&#8221;{}&#8221; button_border_color__hover_enabled=&#8221;on|hover&#8221; button_border_color__hover=&#8221;#aaaaaa&#8221; sticky_enabled=&#8221;0&#8243; field_description_text_color=&#8221;#000000&#8243; content_text_text_color=&#8221;#000000&#8243; date_text_active=&#8221;#000000&#8243; form_field_text_color=&#8221;#000000&#8243;][de_fb_form_field field_title=&#8221;Text&#8221; field_id=&#8221;Field_6&#8243; field_type=&#8221;html_content&#8221; html_content_editor=&#8221;<\/p>\n<p>To book a table, please complete the form below. By clicking submit, does not guarantee your booking. We will confirm your booking ASAP.<\/p>\n<p>&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; content_text_text_color=&#8221;#FFFFFF&#8221; content_text_font_size=&#8221;16px&#8221; global_colors_info=&#8221;{}&#8221; form_step=&#8221;0&#8243; current_step=&#8221;0&#8243;][\/de_fb_form_field][de_fb_form_field field_title=&#8221;Name&#8221; admin_title=&#8221;Name&#8221; field_id=&#8221;Name&#8221; field_label_position=&#8221;top&#8221; enable_placeholder=&#8221;off&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; form_step=&#8221;0&#8243; current_step=&#8221;0&#8243;][\/de_fb_form_field][de_fb_form_field field_title=&#8221;Email&#8221; admin_title=&#8221;Email&#8221; field_id=&#8221;Email&#8221; field_type=&#8221;email&#8221; field_label_position=&#8221;top&#8221; enable_placeholder=&#8221;off&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; form_step=&#8221;0&#8243; current_step=&#8221;0&#8243;][\/de_fb_form_field][de_fb_form_field field_title=&#8221;Contact Number&#8221; admin_title=&#8221;Number&#8221; field_id=&#8221;Number&#8221; field_label_position=&#8221;top&#8221; enable_placeholder=&#8221;off&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; form_step=&#8221;0&#8243; current_step=&#8221;0&#8243;][\/de_fb_form_field][de_fb_form_field field_title=&#8221;Date &#038; Time required&#8221; admin_title=&#8221;Date&#8221; field_id=&#8221;Date&#8221; field_type=&#8221;datetimepicker&#8221; date_time_format=&#8221;H:mm&#8221; field_label_position=&#8221;top&#8221; enable_placeholder=&#8221;off&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; form_step=&#8221;0&#8243; current_step=&#8221;0&#8243;][\/de_fb_form_field][de_fb_form_field field_title=&#8221;Number of guests&#8221; admin_title=&#8221;Guests&#8221; field_id=&#8221;Guests&#8221; field_label_position=&#8221;top&#8221; enable_placeholder=&#8221;off&#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; form_step=&#8221;0&#8243; current_step=&#8221;0&#8243;][\/de_fb_form_field][de_fb_form_field field_title=&#8221;Additional Information&#8221; admin_title=&#8221;Message&#8221; field_id=&#8221;Message&#8221; field_type=&#8221;text&#8221; field_label_position=&#8221;top&#8221; field_placeholder=&#8221;Celebrating or just a good night out? We&#8217;d love to know! &#8221; _builder_version=&#8221;4.27.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; form_step=&#8221;0&#8243; current_step=&#8221;0&#8243;][\/de_fb_form_field][\/de_fb_form][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"et_pb_module de_fb_form de_fb_form_0 clearfix  align-button_right align-module_left\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_module_inner\">\n\t\t\t\t\t\t\t<form\n                method=\"POST\"\n                enctype=\"multipart\/form-data\"\n                action=\"\"\n                id=\"fb_form_null-0\"\n                class=\"et_pb_contact fb_form   hide_until_loaded \"\n                data-ajax-btn=\"Processing\"\n                data-ajax-hide-sub=\"off\"\n                data-reset-form-on-submit=\"true\"\n                style=\"display: none;\">\n\t\t\t\t<div class=\"preloader form_loading divi\">\n\t\t\t\t\t<div class=\"ajax-loading\">\n\t\t\t\t\t\t<div class=\"divi-style\">\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"lines\">\n\t\t\t\t\t\t\t<div class=\"line\"><\/div>\n\t\t\t\t\t\t\t<div class=\"line\"><\/div>\n\t\t\t\t\t\t\t<div class=\"line\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"spinner donut-cont\">\n\t\t\t\t\t\t\t<div class=\"donut\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"spinner donutmulti-cont\">\n\t\t\t\t\t\t\t<div class=\"donut multi\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"spinner ripple-cont\">\n\t\t\t\t\t\t\t<div class=\"ripple\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<h3 class=\"form-title\">&#8221;Book<\/h3>\n\t\t\t\t\t\t<div class=\"divi-form-wrapper\">\n                \t\t\t<\/div>\n<input type=\"hidden\" value=\"null-0\" name=\"form_key\"><input type=\"hidden\" value=\"null-0\" name=\"unique_id\"><input type=\"hidden\" value=\"off\" name=\"enable_payment\">\t\t<div class=\"et_contact_bottom_container\">\n\t\t\t<div class=\"submit-container\">\n\t\t\t<script>\n\t\t\tjQuery(document).ready(function($){\n\t\t\t\tjQuery(\"#fb_form_null-0\").submit(function(e){\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\n\t\t\t\t\t$(this).find('.divi-form-submit').prop('disabled', true);\n\t\t\t\t\tvar required_check = true;\n\t\t\t\t\tvar form = jQuery(this);\n                    let required_fields = $('.required',form);\n\t\t\t\t\tvar stripeEnabled = $(this).hasClass('de_fb_gateway_stripe_form');\n\t\t\t\t\tlet paymentField = $(this).find('input[name=\"de_fb_payment_amount\"]');\n\t\t\t\t\tlet paymentInput = $(this).find('input[name=\"custom_price\"]');\n\t\t\t\t\tlet paymentErrors = $(this).find('.payment-errors').length > 0;\n\t\t\t\t\tvar paymentEnabled = $(this).find('input[name=\"enable_payment\"]').val();\n\t\t\t\t\tvar showTc = $(this).find('input[name=\"show_tc\"]').val();\n\t\t\t\t\tlet stripeErrorMessages = {};\n\n\t\t\t\t\t\/\/ set acf date field format as per ACF standards\n\t\t\t\t\t$(this).find('.datepicker-field').each(function() {\n\t\t\t\t\t\tvar $field = $(this);\n\t\t\t\t\t\tvar isAcfField = $field.attr(\"acf-date\");\n\t\t\t\t\t\tvar selectedDate = $field.datepicker('getDate');\n\t\t\t\t\t\tif (selectedDate && isAcfField == true) {\n\t\t\t\t\t\t\tvar formatted = $.datepicker.formatDate('yymmdd', selectedDate);\n\t\t\t\t\t\t\t$field.val(formatted);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\t\n\n                    if ( required_fields.length > 0 ) {\n\t\t\t\t\t\t\n                        $.each(required_fields, function (index, element) {\n                            $(this).closest('.et_pb_contact_field').parent().find('.error').remove();\n                            if ( !$(this).closest('.de_fb_form_field').hasClass('condition-hide') ) {\n                                var field_type = $(this).closest('.et_pb_contact_field').data('type');\n\t\t\t\t\t\t\t\t\n                                if ( field_type == 'checkbox' || field_type == 'radio' ) {\n                                    if ( jQuery(this).find('input:checked').length == 0 ) {\n                                        required_check = false;\n                                    }\n                                } else if ( field_type == 'file' || field_type == 'image' ) {\n                                    var value_field_id = jQuery(this).find('input.upload_field').attr('id') + '_value';\n                                    if ( jQuery(this).find('.files .template-upload').length == 0 && jQuery(this).find('#' + value_field_id).val() == \"\") {\n                                        required_check = false;\n                                    }\n                                } else {\n                                    if ( jQuery(this).val() == '' ) {\n                                        required_check = false;\n                                    }\n                                }\n                                if ( !required_check ) {\n                                    var required_message = $(this).attr('data-required_message');\n                                    var required_message_pos = $(this).attr('data-required_position');\n\n                                    if ( required_message_pos == 'top' ) {\n                                        $(this).closest('.et_pb_contact_field').before('<p class=\"error\">' + required_message + '<\/p>');\n                                    } else {\n                                        $(this).closest('.et_pb_contact_field').after('<p class=\"error\">' + required_message + '<\/p>');\n                                    }\n                                }\n                            }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n                        });\n                    }\n\t\t\t\t\t\n                    if ( form.find('.bloom_subscribe').find('input[required]').length > 0 ) {\n                \t\tform.find('.bloom_subscribe').find('.error').remove();\n                \t\tif ( !form.find('.bloom_subscribe').find('input[required]').is(\":checked\") ) {\n                \t\t\trequired_check = false;\n                \t\t\tvar required_message = \"This field is required.\";\n                            var required_message_pos = \"bottom\";\n\n                            if ( required_message_pos == 'top' ) {\n                                form.find('.bloom_subscribe').prepend('<p class=\"error\">' + required_message + '<\/p>');\n                            } else {\n                                form.find('.bloom_subscribe').append('<p class=\"error\">' + required_message + '<\/p>');\n                            }\n                \t\t}\n                \t}\n\t\t\t\t\t\n                \tif ( !required_check ) {\n                        $('html, body').animate({\n                            scrollTop: form.offset().top - 10\n                        }, 300);\n\n                        form.find('.divi-form-submit').removeProp('disabled');\n                        form.find('.divi-form-submit').removeAttr('disabled');\n                    }\n\n\t\t\t\t    var validation_result = form.valid();\n\n\t\t\t\t    if ( !validation_result ) {\n\t\t\t\t    \te.preventDefault();\n                        \/\/Here we check for an icon related to this input and we retrieve it to move it to correct place\n                        \/\/since validate function places the label before the icon -\n                        let inputs_error= $('.input-field.error',form);\n                        inputs_error.each(function (){\n                            let input=$(this);\n                            let parent=input.parent();\n                            let label = $('label.error',parent).first();\n                            let icon = $('.dfb_input_icon',parent).first();\n                            if(icon.length){\n                                if(input.next().is(label)){\n                                    label.detach().appendTo(parent.parent());\n                                }\n                            }\n                        });\n\t\t\t\t    \t$(this).find('.divi-form-submit').removeProp('disabled');\n\t\t\t\t    \t$(this).find('.divi-form-submit').removeAttr('disabled');\n\t\t\t\t    \treturn false;\n\t\t\t\t    }\n\n\t\t\t\t\tif (paymentField.hasClass('error')) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\t\t\t\t\t\n\n\t\t\t\t\tif(parseFloat(paymentField.val()) <= 0){\n\t\t\t\t\t\tform.find('.plan-price').find('.payment-error').remove();\n\t\t\t\t\t\tif(form.find('.plan-price .payment-error').length === 0){\n\t\t\t\t\t\t\tform.find('.plan-price').append('<div class=\"payment-error et_pb_contact_error_text\">Please add a valid value for payment<\/div>');\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequired_check = false;\n\t\t\t\t\t\tpaymentField.addClass('input-error');\n\t\t\t\t\t\tform.find('.divi-form-submit').removeProp('disabled');\n\t\t\t\t\t\tform.find('.divi-form-submit').removeAttr('disabled');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\/\/ paymentField.removeClass('input-error'); \/\/ \u2705 Remove error class when valid\n\t\t\t\t\t\t\/\/ form.find('.plan-price').find('.payment-error').remove(); \/\/ \u2705 Remove error message\n\t\t\t\t\t}\n\n\t\t\t\t\tif(showTc){\t\n\t\t\t\t\t\tlet activeTab = form.find(\".gateway-form:visible\"); \/\/ Finds the visible payment gateway tab\n\t\t\t\t\t\tlet tcCheck = activeTab.find(\"input[type='checkbox']\");\n\n\t\t\t\t\t\tform.find('.tcerror').remove();\n\t\t\t\t\t\tif (!tcCheck.is(\":checked\")) {\n\t\t\t\t\t\t\ttcCheck.closest(\".tc_wrap\").after('<p class=\"tcerror\">You must accept the Terms & Conditions.<\/p>');\n\t\t\t\t\t\t\tform.find('.divi-form-submit').prop('disabled', false);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\tif (stripeEnabled) {\n\t\t\t\t\t\tform.find('.divi-form-submit').prop('disabled', true);\n\n\t\t\t\t\t\tlet stripeKey = $('#card-element').data('consumer-key');\n\t\t\t\t\t\tif (stripeKey) {\n\t\t\t\t\t\t\tStripe.setPublishableKey(stripeKey);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet cvcField = $(this).find('.card-cvc');\n\t\t\t\t\t\tcvcField.on('input', function () {\n\t\t\t\t\t\t\tform.find('.cvcerror').remove();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tlet cvcValid = cvcField.val().trim() !== \"\";\n\t\t\t\t\t\tform.find('.cvcerror').remove();\n\t\t\t\t\t\tif (!cvcValid) {\n\t\t\t\t\t\t\tcvcField.after('<p class=\"cvcerror\">CVC is required.<\/p>');\n\t\t\t\t\t\t\tform.find('.divi-form-submit').prop('disabled', false);\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$.ajax({\n\t\t\t\t\t\t\turl: 'https:\/\/cavopoulton.co.uk\/wp-admin\/admin-ajax.php', \/\/ WordPress AJAX URL\n\t\t\t\t\t\t\ttype: \"POST\",\n\t\t\t\t\t\t\tdata: { action: \"get_stripe_error_messages\" },\n\t\t\t\t\t\t\tsuccess: function (response) {\n\t\t\t\t\t\t\t\tstripeErrorMessages = response; \/\/ Store messages globally\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\terror: function () {\n\t\t\t\t\t\t\t\tconsole.error(\"Failed to load Stripe error messages.\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tStripe.createToken({\n\t\t\t\t\t\t\tnumber: $(this).find('.card-number').val(),\n\t\t\t\t\t\t\tcvc: $(this).find('.card-cvc').val(),\n\t\t\t\t\t\t\texp_month: $(this).find('.card-expiry-month').val(),\n\t\t\t\t\t\t\texp_year: $(this).find('.card-expiry-year').val(),\n\t\t\t\t\t\t}, function (status, response) {\n\t\t\t\t\t\t\tif (response.error) {\n\t\t\t\t\t\t\t\tlet errorType = response.error.code;\n\t\t\t\t\t\t\t\tlet errorMessage = stripeErrorMessages[errorType] || response.error.message;\n\t\t\t\t\t\t\t\tform.find(\".payment-errors\").html(errorMessage);\n\t\t\t\t\t\t\t\tform.find('.divi-form-submit').prop('disabled', false);\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tform.append(\"<input type='hidden' name='stripeToken' value='\" + response['id'] + \"'\/>\");\n\t\t\t\t\t\t\t\tif ( ( ! paymentInput.length || ! paymentInput.hasClass('input-error') ) ) {\n\t\t\t\t\t\t\t\t\t\/\/ Final Submission After Stripe Token is Generated\n\t\t\t\t\t\t\t\t\tif (form.find('.divi-form-submit').hasClass('de_fb_ajax_submit')) {\n\t\t\t\t\t\t\t\t\t\t\/\/ Ensure the token is in the serialized form data\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\tlet formElement = form[0];  \n\t\t\t\t\t\t\t\t\t\tif (formElement instanceof HTMLFormElement) {\n\t\t\t\t\t\t\t\t\t\t\tde_fb_ajax_form_submit(formElement);  \/\/ Pass the actual form element\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tconsole.error(\"Form is not a valid HTMLFormElement\");\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tjQuery(\"#fb_form_null-0\").find('.fb_nonce').remove();\n\t\t\t\t\t\t\t\t\t\tjQuery(\"#fb_form_null-0\").append('<input type=\"hidden\" name=\"fb_nonce\" class=\"fb_nonce\" value=\"c7e4a73aa5\">');\n\t\t\t\t\t\t\t\t\t\tform.unbind('submit').submit();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tform.find('.divi-form-submit').prop('disabled', false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\/\/ return false; \/\/ Prevent default submission while Stripe processes\n\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t    if ( $(this).find('.signature-field').length > 0 ) {\n\t\t\t\t    \t$.each( $(this).find('.signature-field'), function(i) {\n\t\t\t\t    \t\tvar field_id = $(this).find('input').attr('id');\n\t\t\t\t    \t\t$(\"#\" + field_id).val( fb_signature.signature_objs['signaturePad_' + field_id].toDataURL() );\n\t\t\t\t    \t});\n\t\t\t\t    }\n\t\t\t\t    if ( required_check ) {\n\t\t\t\t    \tif ( form.find('.file_preview_container .template-upload').length > 0 ) {\n\t\t\t\t    \t\te.preventDefault();\n\t\t\t\t\t\t\t$(this).addClass('submitting');\n\t\t                \tde_fb_ajax_files_upload( form );\n\t\t                } else {\n\t\t\t\t\t\t\tif ( form.find('.calculate_field').length > 0 ) {\n\t\t\t\t\t\t\t\t$('.calculation').hide();\n\t\t\t\t\t\t\t\t$.each(form.find('.calculate_field'), function() {\n\t\t\t\t\t\t\t\t\tvar calc_field_wrapper = $(this);\n\t\t\t\t\t\t\t\t\tvar field_id = calc_field_wrapper.attr('id');\n\t\t\t\t\t\t\t\t\t\/\/ replace de_fb_ and _wrapper with empty string\n\t\t\t\t\t\t\t\t\tfield_id = field_id.replace('de_fb_', '').replace('_wrapper', '');\n\t\t\t\t\t\t\t\t\tvar field_type = calc_field_wrapper.find('.et_pb_contact_field').attr('data-type');\n\t\t\t\t\t\t\t\t\tvar check_values = 0;\n\t\t\t\t\t\t\t\t\tif ( field_type == 'checkbox' || field_type == 'radio' ) {\n\t\t\t\t\t\t\t\t\t\t$.each( calc_field_wrapper.find('input:checked'), function() {\n\t\t\t\t\t\t\t\t\t\t\tcheck_values =  check_values + parseFloat( $(this).attr('data-calc_value') );\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tcalc_field_wrapper.append('<input type=\"hidden\" name=\"' + field_id + '_calc_value\" value=\"' + check_values + '\">');\n\t\t\t\t\t\t\t\t\t} else if ( field_type == 'select' ) {\n\t\t\t\t\t\t\t\t\t\tif ( calc_field_wrapper.find('select option:selected').length > 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tcheck_values = parseFloat(calc_field_wrapper.find('select option:selected').attr('data-calc_value'));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcalc_field_wrapper.append('<input type=\"hidden\" name=\"' + field_id + '_calc_value\" value=\"' + check_values + '\">');\n\t\t\t\t\t\t\t\t\t}  else {\n\t\t\t\t\t\t\t\t\t\tif ( calc_field_wrapper.find('input:not([type=\"hidden\"])').val() == '' ) {\n\t\t\t\t\t\t\t\t\t\t\tvar calc_default_value = calc_field_wrapper.find('input:not([type=\"hidden\"])').attr('data-calc_default');\n\t\t\t\t\t\t\t\t\t\t\tcalc_field_wrapper.append('<input type=\"hidden\" name=\"' + field_id + '_calc_value\" value=\"' + calc_default_value + '\">');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif ( form.find('.divi-form-submit').hasClass('de_fb_ajax_submit') && paymentEnabled !== 'on' ) {\n\t\t\t\t\t\t\t\t$(this).addClass('submitting');\n\t\t\t\t\t\t\t\tde_fb_ajax_form_submit( form[0] );\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( paymentEnabled == 'off' || (paymentEnabled == 'on' && !stripeEnabled)){\n\t\t\t\t\t\t\t\t\t$(this).addClass('submitting');\n\t\t\t\t\t\t\t\t\tjQuery(\"#fb_form_null-0\").find('.fb_nonce').remove();\n\t\t\t\t\t\t\t\t\tjQuery(\"#fb_form_null-0\").append('<input type=\"hidden\" name=\"fb_nonce\" class=\"fb_nonce\" value=\"c7e4a73aa5\">');\n\t\t\t\t\t\t\t\t\tif ( ( ! paymentInput.length || ! paymentInput.hasClass('input-error') ) ) {\n\t\t\t\t\t\t\t\t\t\tjQuery(\"#fb_form_null-0\").unbind('submit').submit();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tform.find('.divi-form-submit').prop('disabled', false);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t                }\n\t\t\t\t    } else {\n\t\t\t\t    \te.preventDefault();\n\t\t\t\t    }\n\t\t\t\t    \/\/$(this).find('.divi-form-submit').removeProp('disabled');\n\t\t\t\t    \/\/$(this).find('.divi-form-submit').removeAttr('disabled');\n\t\t\t\t});\n\t\t\t});\n\t\t\t<\/script>\n\t\t\t\t\t\t<div class=\"de_fb_submit_container\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"divi-form-submit-container\">\n\t\t\t\t\t\t\t<button class=\"divi-form-submit et_pb_button \" type=\"submit\">&#8221;SUBMIT&#8221;<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"form_type\" value=\"contact\">\n\t\t\t\t\t<input type=\"hidden\" name=\"divi-form-submit\" value=\"yes\">\n\t\t\t\t\t<input type=\"hidden\" name=\"form_id\" value=\"&#8221;Booking&#8221;\">\n\t\t\t\t\t<input type=\"hidden\" name=\"form_display_type\" value=\"\">\n\t\t\t\t\t\t\t\t\t<\/div>\n<input type=\"text\" name=\"form_type_confirm\" style=\"display:none!important;\" tabindex=\"-1\" autocomplete=\"off\">\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/form>\n\n<script>\n\tjQuery(document).ready(function($) {\n    \t\/\/ Store the original URL validation method\n    \tlet old_url = jQuery.validator.methods.url;\n    \n    \t\/\/ Overwrite the 'url' method of the validator\n    \tjQuery.validator.addMethod('url', function(value, element) {\n        \t\/\/ Try the original validator\n        \tif (old_url.call(this, value, element)) {\n            \treturn true;\n        \t}\n        \n        \t\/\/ Try with 'http:\/\/' prepended, if the original value does not pass\n        \tif (value && !value.startsWith('http:\/\/') && !value.startsWith('https:\/\/')) {\n            \treturn old_url.call(this, 'http:\/\/' + value, element);\n        \t}\n        \n        \t\/\/ Fallback to false if neither check passes\n        \treturn false;\n    \t}, 'Please enter a valid URL.');\n\n\t\t\/\/ Make email validation stricter (require at least one dot in the domain)\n\t\t(function($){\n\t\tvar trim = function(s){ return (s || '').trim(); };\n\t\t$.validator.methods.email = function (value, element) {\n\t\t\tif (this.optional(element)) return true;\n\t\t\tvar v = trim(value);\n\t\t\t\/\/ Require: name@domain.com (at least one dot after the @ and at least two chars after the last dot)\n\t\t\treturn \/^[^\\s@]+@([^\\s@]+\\.)+[^\\s@]{2,}$\/.test(v);\n\t\t};\n\t\t})(jQuery);\n\n\t\t\/\/ add class to the parent .et_pb_contact_field if field has validate error\n\t\t$.validator.setDefaults({\n\t\t\thighlight: function(element) {\n\t\t\t\t$(element).addClass('input-error');\n\t\t\t\t$(element).closest('.et_pb_contact_field').addClass('input-field-error');\n\t\t\t},\n\t\t\tunhighlight: function(element) {\n\t\t\t\t$(element).removeClass('input-error');\n\t\t\t\t$(element).closest('.et_pb_contact_field').removeClass('input-field-error');\n\t\t\t\t$(element).closest('.et_pb_contact_field').find('label.error').remove();\n\t\t\t}\n\t\t});\n\n    \t$('#fb_form_null-0').validate({\n        \tnormalizer: function(value) {\n            \t\/\/ Trim the value of every element\n            \treturn $.trim(value);\n        \t},\n        \terrorPlacement: function(error, element) {\n\t\t\t\tvar message_position = element.attr('data-required_position');\n\t\t\t\tif ( message_position == 'top' ) {\n\t\t\t\t\telement.before(error);\n\t\t\t\t} else {\n\t\t\t\t\telement.after(error);\n\t\t\t\t}\n            \t\/\/ element.parent().append(error); \/\/ default error placement\n        \t}\n    \t});\n\n    \tif ($('.de_fb_autocomplete').length > 0 && typeof init_autocomplete_fields == 'function') {\n        \tinit_autocomplete_fields();\n    \t}\n\t});\n\t\n\tif ( window.history.replaceState ) {\n\t  window.history.replaceState( null, null, window.location.href );\n\t}\n\n\tif ( typeof form_grid_columns === 'function' ) {\n\t\tform_grid_columns();\n\t}\n<\/script>\n\n\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-7","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cavopoulton.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cavopoulton.co.uk\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cavopoulton.co.uk\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cavopoulton.co.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cavopoulton.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7"}],"version-history":[{"count":19,"href":"https:\/\/cavopoulton.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":55,"href":"https:\/\/cavopoulton.co.uk\/index.php?rest_route=\/wp\/v2\/pages\/7\/revisions\/55"}],"wp:attachment":[{"href":"https:\/\/cavopoulton.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}