{"id":97,"date":"2018-03-29T15:33:42","date_gmt":"2018-03-29T12:33:42","guid":{"rendered":"http:\/\/divirestaurant.divilife.site\/?page_id=111"},"modified":"2023-10-02T08:24:43","modified_gmt":"2023-10-02T05:24:43","slug":"yhteystiedot","status":"publish","type":"page","link":"https:\/\/xianglong.fi\/en\/yhteystiedot\/","title":{"rendered":"Contact"},"content":{"rendered":"\n[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;4.16&#8243; custom_margin=&#8221;0px||||false|false&#8221; custom_margin_tablet=&#8221;0px||||false|false&#8221; custom_margin_last_edited=&#8221;off|phone&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_fullwidth_header title=&#8221;YHTEYSTIEDOT&#8221; text_orientation=&#8221;center&#8221; _builder_version=&#8221;4.16&#8243; title_font=&#8221;|||on|||||&#8221; title_text_color=&#8221;#FFFFFF&#8221; title_font_size=&#8221;65px&#8221; title_letter_spacing=&#8221;2px&#8221; background_color=&#8221;rgba(255, 255, 255, 0)&#8221; background_image=&#8221;https:\/\/xianglong.fi\/wp-content\/uploads\/2021\/01\/Xiang-Long-tausta-7-scaled.jpg&#8221; parallax=&#8221;on&#8221; parallax_method=&#8221;on&#8221; background_layout=&#8221;light&#8221; custom_padding=&#8221;120px||120px|&#8221; title_font_size_tablet=&#8221;50px&#8221; title_font_size_phone=&#8221;32px&#8221; title_font_size_last_edited=&#8221;on|phone&#8221; title_text_shadow_style=&#8221;preset3&#8243; title_text_shadow_blur_strength=&#8221;0.25em&#8221; title_text_shadow_color=&#8221;rgba(255,255,255,0.52)&#8221; global_colors_info=&#8221;{}&#8221; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221;][\/et_pb_fullwidth_header][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_2,1_2&#8243; _builder_version=&#8221;4.16&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.16&#8243; header_2_font=&#8221;|600|||||||&#8221; header_2_font_size=&#8221;35px&#8221; global_colors_info=&#8221;{}&#8221;]<h2 class=\"redline\">L\u00e4het\u00e4 meille viesti<\/h2>\n<p>Jos sinulla on kysytt\u00e4v\u00e4\u00e4 tai kommentoitavaa, voit t\u00e4ytt\u00e4\u00e4 oheisen lomakkeen ja l\u00e4hett\u00e4\u00e4 viestisi meille. Arvostamme jokaista saamaamme palautetta.<\/p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.16&#8243; header_font=&#8221;|600|||||||&#8221; header_3_font=&#8221;|600|||||||&#8221; header_3_font_size=&#8221;18px&#8221; header_4_font=&#8221;|600|||||||&#8221; custom_margin=&#8221;30px||20px|&#8221; global_colors_info=&#8221;{}&#8221;]<h3>Seuraa meit\u00e4<\/h3>[\/et_pb_text][et_pb_social_media_follow url_new_window=&#8221;off&#8221; _builder_version=&#8221;4.16&#8243; custom_css_social_icon=&#8221;border-radius:50%;&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_social_media_follow_network social_network=&#8221;facebook&#8221; url=&#8221;https:\/\/fi-fi.facebook.com\/xianglong.oy\/&#8221; _builder_version=&#8221;4.16&#8243; background_color=&#8221;#3b5998&#8243; custom_css_social_icon=&#8221;border-radius:50%;&#8221; global_colors_info=&#8221;{}&#8221; follow_button=&#8221;off&#8221; url_new_window=&#8221;off&#8221;]Facebook\r[\/et_pb_social_media_follow_network][\/et_pb_social_media_follow][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][de_fb_form form_id=&#8221;contact&#8221; submit_button_text=&#8221;L\u00e4het\u00e4&#8221; disable_submit_for_required=&#8221;on&#8221; success_message=&#8221;Kiitos viestist\u00e4si. Otamme yhteytt\u00e4 mahdollisimman pian.&#8221; failed_message=&#8221;Virhe viesti\u00e4 l\u00e4hett\u00e4essa. Ole hyv\u00e4 ja yrit\u00e4 uudelleen.&#8221; use_custom_email=&#8221;off&#8221; custom_contact_email=&#8221;xiang_long_oy@hotmail.com&#8221; from_email=&#8221;custom&#8221; custom_from_email=&#8221;xiang_long_oy@hotmail.com&#8221; email_title=&#8221;Uusi viesti&#8221; email_template=&#8221;Uusi viesti\n\n%%nimi%%\n%%email%%\n%%viesti%%&#8221; send_copy_to_sender=&#8221;on&#8221; sender_email_field=&#8221;email&#8221; reply_from_email=&#8221;custom&#8221; reply_custom_from_email=&#8221;xiang_long_oy@hotmail.com&#8221; reply_email_title=&#8221;Olemme vastaanottaneet viestisi&#8221; reply_email_template=&#8221;Kiitos viestist\u00e4si. Alla saamamme tiedot.\n\n%%nimi%%\n%%email%%\n%%viesti%%\n\nOlemme teihin yhteydess\u00e4 mahdollisimman pian.\nt: henkil\u00f6kunta&#8221; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; form_field_background_color=&#8221;rgba(0,0,0,0.05)&#8221; form_field_text_color=&#8221;#000000&#8243; form_field_focus_text_color=&#8221;#000000&#8243; placeholder_text_text_color=&#8221;#6d6d6d&#8221; upload_description_text_color=&#8221;#000000&#8243; custom_button=&#8221;on&#8221; button_text_color=&#8221;#FFFFFF&#8221; button_bg_color=&#8221;#E7272D&#8221; button_font=&#8221;|||on|||||&#8221; custom_padding=&#8221;|25px||25px|false|true&#8221; global_colors_info=&#8221;{}&#8221; button_bg_color__hover_enabled=&#8221;off|desktop&#8221; button_bg_color__hover=&#8221;#66B3E4&#8243; button_bg_enable_color__hover=&#8221;on&#8221;][de_fb_form_field field_title=&#8221;Nimi&#8221; admin_title=&#8221;nimi&#8221; field_id=&#8221;nimi&#8221; required_mark=&#8221;on&#8221; required_message=&#8221;Pakollinen tieto&#8221; field_grid_column=&#8221;et_pb_column_1_2&#8243; field_placeholder=&#8221;Nimi&#8221; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; label_text_letter_spacing=&#8221;2px&#8221; form_field_letter_spacing=&#8221;1px&#8221; border_radii=&#8221;on|2px|2px|2px|2px&#8221; border_color_all=&#8221;#000000&#8243; border_width_bottom=&#8221;1px&#8221; border_color_bottom=&#8221;#e5e5e5&#8243; 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; email_message=&#8221;Ole hyv\u00e4 ja laita hyv\u00e4ksytty s\u00e4hk\u00f6postiosoite&#8221; required_mark=&#8221;on&#8221; required_message=&#8221;Pakollinen tieto&#8221; field_grid_column=&#8221;et_pb_column_1_2&#8243; field_placeholder=&#8221;S\u00e4hk\u00f6postiosoite&#8221; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; label_text_letter_spacing=&#8221;2px&#8221; form_field_letter_spacing=&#8221;1px&#8221; border_radii=&#8221;on|2px|2px|2px|2px&#8221; border_color_all=&#8221;#000000&#8243; border_width_bottom=&#8221;1px&#8221; border_color_bottom=&#8221;#e5e5e5&#8243; 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;Viesti&#8221; admin_title=&#8221;viesti&#8221; field_id=&#8221;viesti&#8221; field_type=&#8221;text&#8221; required_mark=&#8221;on&#8221; required_message=&#8221;Pakollinen tieto&#8221; field_placeholder=&#8221;Viesti&#8221; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; form_field_focus_text_color=&#8221;#000000&#8243; label_text_text_color=&#8221;#000000&#8243; label_text_letter_spacing=&#8221;2px&#8221; field_description_text_color=&#8221;#000000&#8243; form_field_letter_spacing=&#8221;1px&#8221; border_radii=&#8221;on|2px|2px|2px|2px&#8221; border_color_all=&#8221;#000000&#8243; border_width_bottom=&#8221;1px&#8221; border_color_bottom=&#8221;#e5e5e5&#8243; 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;Kuittaus&#8221; admin_title=&#8221;kuittaus&#8221; field_id=&#8221;kuittaus&#8221; field_type=&#8221;checkbox&#8221; checkbox_options=&#8221;%91{%22value%22:%22L\u00e4hett\u00e4m\u00e4ll\u00e4 t\u00e4m\u00e4n lomakkeen, hyv\u00e4ksyt tietosuoja- ja rekisteriselosteemme. Saat meilt\u00e4 vastaanottokuittauksen lomakkeen l\u00e4hett\u00e4misen j\u00e4lkeen. Mik\u00e4li t\u00e4t\u00e4 viesti\u00e4 ei tule antamaasi s\u00e4hk\u00f6postiosoitteeseen, ole meihin yhteydess\u00e4.%22,%22checked%22:0,%22dragID%22:-1}%93&#8243; required_mark=&#8221;on&#8221; required_message=&#8221;Ole hyv\u00e4 ja hyv\u00e4ksy ehdot.&#8221; radio_checkbox_checked_color=&#8221;#E7272D&#8221; _builder_version=&#8221;4.18.0&#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][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.8.1&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#401119&#8243; background_enable_color=&#8221;off&#8221; background_image=&#8221;https:\/\/xianglong.fi\/wp-content\/uploads\/2021\/01\/Xiang-Long-tausta-scaled.jpg&#8221; background_position=&#8221;top_right&#8221; custom_padding=&#8221;0px||0px|||&#8221; global_module=&#8221;335&#8243; saved_tabs=&#8221;all&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/xianglong.fi\/wp-content\/uploads\/2021\/01\/Xiang-Long-png.png&#8221; alt=&#8221;Xiang Long Rovaniemi logo&#8221; title_text=&#8221;Xiang Long png&#8221; align=&#8221;center&#8221; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; width=&#8221;75%&#8221; custom_margin=&#8221;||8px|||&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; header_text_color=&#8221;#ffffff&#8221; header_font_size=&#8221;29px&#8221; header_letter_spacing=&#8221;6px&#8221; header_2_text_color=&#8221;#ffffff&#8221; header_2_font_size=&#8221;30px&#8221; header_2_letter_spacing=&#8221;6px&#8221; global_colors_info=&#8221;{}&#8221;]<h2 style=\"text-align: center;\">XIANG LONG<\/h2>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#ffffff&#8221; custom_margin=&#8221;||31px|||&#8221; global_colors_info=&#8221;{}&#8221;]<p>Koskikatu 21<br \/> 96200 Rovaniemi<\/p>\n<p>puh: +35816 319331<br \/> xiang_long_oy@hotmail.com<\/p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.16&#8243; _module_preset=&#8221;default&#8221; text_text_color=&#8221;#ffffff&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<p>Ma-pe<br \/> 10:30-21:30<\/p>\n<p>La-su<br \/> 11:30-21:30<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"<p>L\u00e4het\u00e4 meille viesti Jos sinulla on kysytt\u00e4v\u00e4\u00e4 tai kommentoitavaa, voit t\u00e4ytt\u00e4\u00e4 oheisen lomakkeen ja l\u00e4hett\u00e4\u00e4 viestisi meille. Arvostamme jokaista saamaamme palautetta.Seuraa meit\u00e4<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\"><\/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:\/\/xianglong.fi\/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=\"bc1e7870a3\">');\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=\"bc1e7870a3\">');\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;L\u00e4het\u00e4&#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;contact&#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><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"Yhteystiedot | Xiang long | kiinalainen ravintola | Rovaniemi","_seopress_titles_desc":"Koskikatu 21, 96200 Rovaniemi | puh: +35816 319331 | xiang_long_oy@hotmail.com | Ma-pe 10.30-21, la-su\r\n11.30-21","_seopress_robots_index":"","_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-97","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/xianglong.fi\/en\/wp-json\/wp\/v2\/pages\/97","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xianglong.fi\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/xianglong.fi\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/xianglong.fi\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/xianglong.fi\/en\/wp-json\/wp\/v2\/comments?post=97"}],"version-history":[{"count":39,"href":"https:\/\/xianglong.fi\/en\/wp-json\/wp\/v2\/pages\/97\/revisions"}],"predecessor-version":[{"id":1347,"href":"https:\/\/xianglong.fi\/en\/wp-json\/wp\/v2\/pages\/97\/revisions\/1347"}],"wp:attachment":[{"href":"https:\/\/xianglong.fi\/en\/wp-json\/wp\/v2\/media?parent=97"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}