// source --> https://lmnpinvest.com/wp-content/plugins/calculateur-estimation/js/ajax-script.js?v=1.2&#038;ver=7.0.2 
var swiper;
jQuery(document).ready(function ($) {
    $("#gestionnaire-select").select2({
        ajax: {
            url: my_ajax_object.ajax_url,
            dataType: "json",
            delay: 250,
            data: function (params) {
                return {
                    action: "get_gestionnaires",
                    term: params.term, // search term
                };
            },
            processResults: function (data) {
                return {
                    results: data,
                };
            },
            cache: true,
        },
        minimumInputLength: 0,
        placeholder: "Veuillez sélectionner",
        allowClear: true,
        language: {
            inputTooShort: function () {
                return "Saisissez votre recherche...";
            },
            noResults: function () {
                return "Aucun résultat"; // Custom message for no results
            },
            searching: function () {
                return "Chargement...";
            },
        },
    });

    $("#ville-select").select2({
        ajax: {
            url: my_ajax_object.ajax_url,
            dataType: "json",
            delay: 250,
            data: (params) => ({
                action: "get_villes",
                term: params.term, // search term
            }),
            processResults: (data) => ({
                results: data,
            }),
            cache: true,
        },
        minimumInputLength: 1,
        placeholder: "Veuillez sélectionner",
        allowClear: true,
        language: {
            inputTooShort: function () {
                return "Saisissez votre recherche...";
            },
            noResults: function () {
                return "Aucun résultat"; // Custom message for no results
            },
            searching: function () {
                return "Chargement...";
            },
        },
    });

    $("#calculateur-estimation-form").on("submit", function (e) {
        e.preventDefault(); // Prevent the default form submission

        var formData = {
            action: "process_calculateur_estimation_form",
            gestionnaire: $("#gestionnaire-select").val(),
            ville: $("#ville-select").val(),
            secteur_activite: $('input[name="secteurs_variables"]:checked').val(), // Get the value of the selected secteur activite radio button
            loyer_hors_taxe: $('#calculateur-estimation-form input[name="loyer_hors_taxe"]').val(),
            // duree_du_bail: $("#duree_du_bail").val(),
            // date_fin_bail: $('input[name="date_fin_bail"]').val(),
            // taxes_foncieres: $('input[name="taxes_foncieres"]').val(),
            // charges_non_recuperables: $('input[name="charges_non_recuperables"]').val(),
        };

            if (!$('head > script[src="https://www.google.com/recaptcha/api.js"]').length) {
              $('head').append($('<script />').attr('src', 'https://www.google.com/recaptcha/api.js'));
            }

        let activity_name = JSON.parse(formData.secteur_activite).name;

        $('#calculator-box').css({'z-index':'auto'})
        $('.popup-bg-est-form, .popup-main-content').removeClass('est-hidden')

        $('.residence_type > span').html(activity_name)
        $('#secteur_activite').val($('input[name="secteurs_variables"]:checked').val())

        $('.loyer_ht > span').html(formData.loyer_hors_taxe + '&euro;')
        $('#loyer_hors_taxe').val(formData.loyer_hors_taxe)

        $('.city > span').html($('#ville-select option[value="'+formData.ville+'"]').text())
        $('#ville').val($('#ville-select option[value="'+formData.ville+'"]').val())

        $('.gestionnaire > span').html($('#gestionnaire-select option[value="'+formData.gestionnaire+'"]').text())
        $('#gestionnaire').val($('#gestionnaire-select option[value="'+formData.gestionnaire+'"]').val())

        // $.ajax({
        //     type: "POST",
        //     url: my_ajax_object.ajax_url,
        //     data: formData,
        //     success: function (response) {
        //
        //         // $('#calculateur-estimation-form').addClass('response-append');
        //         // $("#calculateur-estimation-form").html(response.data.table);
        //         // $(response.data.popup).insertAfter("#calculateur-estimation-form");
        //
        //         // if (!$('head > script[src="https://www.google.com/recaptcha/api.js"]').length) {
        //         //     $('head').append($('<script />').attr('src', 'https://www.google.com/recaptcha/api.js'));
        //         // }
        //         //const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
        //         //const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
        //
        //     },
        //     error: function () {
        //         $("form").html("An error occurred.");
        //     },
        // });

//   $.ajax({
//   type: "POST",
//   url: my_ajax_object.ajax_url,
//   data: formData,
//   success: function (response) {
//
//     $('#calculateur-estimation-form').addClass('response-append');
//     $("#calculateur-estimation-form").html(response.data.table);
//     $(response.data.popup).insertAfter("#calculateur-estimation-form");
//
//     if (!$('head > script[src="https://www.google.com/recaptcha/api.js"]').length) {
//       $('head').append($('<script />').attr('src', 'https://www.google.com/recaptcha/api.js'));
//     }
//     swiper = new Swiper('.swiper', {
//       slidesPerView: 1.2,
//       initialSlide: 1,
//       spaceBetween: 10,
//       centeredSlides: true,
//       speed: 1000,
//       dots: false,
//       on: {
//         init: function () {
//           setSlideHeight();
//         },
//         resize: function () {
//           setSlideHeight();
//         },
//         slideChange: function () {
//           if (jQuery(window).width() <= 768) {
//             var elm = this;
//             setTimeout(function () {
//               var currentSlide = jQuery(elm.slides[elm.activeIndex]).find('price-card ');
//               jQuery('.swiper').animate({ 'height': (jQuery('.swiper-slide-active').find('.price-card').height() + 100) + 'px' }, 500);
//             }, 200)
//           } else {
//             jQuery('.swiper').css({ 'height': 'inherit' })
//           }
//         },
//       },
//       breakpoints: {
//         768: {
//           slidesPerView: 2,
//           centeredSlides: false,
//         },
//         1024: {
//           slidesPerView: 3,
//           centeredSlides: false,
//         },
//       },
//       pagination: {
//         clickable: true,
//         el: '.swiper-pagination',
//       },
//       navigation: false,
//       scrollbar: false,
//     });
//     //const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
//     //const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
//   },
//   error: function () {
//     $("form").html("An error occurred.");
//   },
// });
    });

    $(document).on('click', '.est-pop-up', function (event) {
        event.preventDefault();
        $('.popup-bg-est-form').removeClass('est-hidden');
        $('.popup-main-content').removeClass('est-hidden');
        let estimation_result = $(this).data('price');
        let selected_offer = $(this).data('offer');
        $('#est-offer-view').text(selected_offer);
        $('#est-offer-view_two').text(selected_offer);

        $('.estimation_price').text(estimation_result);
        $('#selected_offer').val(selected_offer);
        $('#estimation_result').val(estimation_result);
    });

    $(document).on('click', '.est-close-popup', function (event) {
        event.preventDefault();
        $('#est-offer-view').text('');
        $('#est-offer-view_two').text('');
        $('.estimation_price').text('');
        $('#selected_offer').val('');
        $('#estimation_result').val('');
        $('.popup-bg-est-form').addClass('est-hidden');
        $('.popup-main-content').addClass('est-hidden');
        $('#calculator-box').css({'z-index':'500'})
    });

    $(document).on('click', '.toggle-link', function () {
        jQuery('.est-toggle').slideToggle();
        jQuery(this).toggleClass('visible');
    });

    $(document).on('submit', '#est_request_form', function (e) {
        e.preventDefault();

        $('.est-error').html('');
        $('.est-success').html('');
        let name = $(this).find('#name');
        let first_name = $(this).find('#first_name');
        let email = $(this).find('#emmail');
        let telephone = $(this).find('#telephone');
        let term_condition = $(this).find('#term_condition');
        let gcap = $(this).find('#g-recaptcha-response');


        $error_flag = false;
        if (name.val().trim() == '') {
            $error_flag = true;
            name.addClass('error');
        } else {
            name.removeClass('error');
        }

        if (first_name.val().trim() == '') {
          $error_flag = true;
          first_name.addClass('error');
        } else {
          first_name.removeClass('error');
        }


        if (email.val().trim() == '') {
            $error_flag = true;
            email.addClass('error');
        } else {
            email.removeClass('error');
        }

        if (telephone.val().trim() == '') {
            $error_flag = true;
            telephone.addClass('error');
        } else {
            telephone.removeClass('error');
        }
        if (gcap.val().trim() == '') {
            $error_flag = true;
            gcap.prev().addClass('error');
        } else {
            gcap.prev().removeClass('error');
        }

        if (!$(term_condition).is(':checked')) {
            $error_flag = true;
            term_condition.parent().addClass('error');
        } else {
            term_condition.parent().removeClass('error');
        }

        if ($error_flag === false) {
            let ajax_data = {
                name: $(this).find('#name').val(),
                // first_name: $(this).find('#first_name').val(),
                email: $(this).find('#emmail').val(),
                telephone: $(this).find('#telephone').val(),
                cap: $(this).find('#g-recaptcha-response').val(),

                selected_offer: $(this).find('#selected_offer').val(),
                estimation_result: $(this).find('#estimation_result').val(),
                secteur_activite: $(this).find('#secteur_activite').val(),
                loyer_hors_taxe: $(this).find('#loyer_hors_taxe').val(),
                // duree_du_bail: $(this).find('#duree_du_bail').val(),
                // date_fin_bail: $(this).find('#date_fin_bail').val(),
                gestionnaire: $(this).find('#gestionnaire').val(),
                // taxes_foncieres: $(this).find('#taxes_foncieres').val(),
                // charges_non_recuperables: $(this).find('#charges_non_recuperables').val(),
                ville: $(this).find('#ville').val(),
                // action: "process_calculateur_estimation_form_contact",
                action: "process_calculateur_estimation_form",
            }

            let ajax_form_data = {
                ajax_data,
                action: "process_calculateur_estimation_form_contact"
            }

            $.ajax({
                type: "POST",
                url: my_ajax_object.ajax_url,
                data: ajax_data,
                success: function (response) {
                    $('.popup-bg-est-form, .popup-main-content').addClass('est-hidden')
                    $('#calculateur-estimation-form').addClass('response-append');
                    $("#calculateur-estimation-form").html(response.data.table);
                    swiper = new Swiper('.swiper', {
                        slidesPerView: 1.2,
                        initialSlide: 1,
                        spaceBetween: 10,
                        centeredSlides: true,
                        speed: 1000,
                        dots: false,
                        on: {
                            init: function () {
                                setSlideHeight();
                            },
                            resize: function () {
                                setSlideHeight();
                            },
                            slideChange: function () {
                                if (jQuery(window).width() <= 768) {
                                    var elm = this;
                                    setTimeout(function () {
                                        var currentSlide = jQuery(elm.slides[elm.activeIndex]).find('price-card ');
                                        jQuery('.swiper').animate({ 'height': (jQuery('.swiper-slide-active').find('.price-card').height() + 100) + 'px' }, 500);
                                    }, 200)
                                } else {
                                    jQuery('.swiper').css({ 'height': 'inherit' })
                                }
                            },
                        },
                        breakpoints: {
                            768: {
                                slidesPerView: 2,
                                centeredSlides: false,
                            },
                            1024: {
                                slidesPerView: 3,
                                centeredSlides: false,
                            },
                        },
                        pagination: {
                            clickable: true,
                            el: '.swiper-pagination',
                        },
                        navigation: false,
                        scrollbar: false,
                    });
                },
                error: function () {
                    $("form").html("An error occurred.");
                },
            });

            // $.ajax({
            //     type: "POST",
            //     url: my_ajax_object.ajax_url,
            //     data: ajax_form_data,
            //     success: function (response) {
            //         if (response.success) {
            //             $('</p>').text(response.data.message).appendTo('.est-success');
            //             $('#est_request_form')[0].reset();
            //         } else {
            //             for (error in response.data) {
            //                 $('</p>').text(response.data[error]).appendTo('.est-error');
            //             }
            //         }
            //     },
            //     error: function () {
            //         $("form").html("An error occurred.");
            //     },
            // });


        }




    });

    function setContainerHeight() {

    }
});


function setSlideHeight() {
    var tallestSlideHeight = 0;
    var slides = document.querySelectorAll('.swiper-slide');

    slides.forEach(function (slide) {
        slide.style.height = 'auto';
        var slideHeight = slide.clientHeight;
        if (slideHeight > tallestSlideHeight) {
            tallestSlideHeight = slideHeight;
        }
    });

    if (jQuery(window).width() >= 768) {
        slides.forEach(function (slide) {
            slide.style.height = tallestSlideHeight + 'px';
        });
    }
};