jQuery(document).ready(function ($) {

    //'use strict';

    //jQuery.migrateMute = true;


    console.log("Search Loaded!");

    /*

    function updateSlider() {
        // Obtém o valor do campo 'meta_price_max'
        var maxPrice = $('#meta_price_max').val();
        //console.log("Max Price:", maxPrice);
        // Verifica se o valor existe e é um número válido
        if (!isNaN(maxPrice) && maxPrice > 0) {
            // Destrói o slider anterior, se existir
            $("#multidealer_meta_price").slider("destroy");
            // Inicializa o slider com o valor máximo e mínimo definidos
            $("#multidealer_meta_price").slider({
                range: true, // Permite seleção de um intervalo
                min: 0, // Valor mínimo do slider
                max: parseInt(maxPrice, 10), // Valor máximo do slider
                values: [0, parseInt(maxPrice, 10)], // Define os valores iniciais dos dois handles
                slide: function (event, ui) {
                    // Atualiza o campo 'meta_price' conforme o slider é movido
                    $('#meta_price').val(ui.values[0] + " - " + ui.values[1]);
                }
            });
            // Define o valor inicial do campo 'meta_price' como '0 - maxPrice'
            $('#meta_price').val("0 - " + maxPrice);
        } else {
            console.error('Invalid Value for Max Price');
        }
    }
    updateSlider();
    */

    /*
    // >>>>> Close Modal
    $('.close-modal').on('click', function () {
        //alert('2');
        // Hide the modal and overlay
        $('.modal-container').css('display', 'none');
        $('.modal-overlay').css('display', 'none');
        $('.multidealer-search-box').css('filter', 'none');
    });
    $(document).on('click', '.close-modal', function (event) {
        $('.modal-overlay').toggle();
        $('.modal-container').toggle();
        $('.multidealer-search-box').css('filter', 'none');
    });

    */
    // >>>>>>   single car
    // $(document).on('click', '.open-modal', function (e) {
    // $(document).on('click', '.multidealer_btn_view', function (e) {
    // $(document).on('click', '[id*="multidealer_btn_view"]', function (e) {
    //$ (document).on('click', '[id*="multidealer_btn_view"], .multidealer_btn_view', function (e) {
    // $(document).on('click', '[href*="multidealer_btn_view"]', '[id^="multidealer_btn_view-"]', function (e) {
    $(document).on('click', '[href*="multidealer_btn_view"], [id^="multidealer_btn_view-"]', function (e) {
        // Código que será executado ao clicar no elemento


        e.preventDefault();
        console.log("clicou... open-single-modal");

        // alert('cm');

        $(document).on('ajaxStart', function () {
            // $('.multiGallery').css('filter', 'brightness(0.7) opacity(0.7)');
            // $('.multidealer-search-box').css('filter', 'brightness(0.7) opacity(0.7)');
            //$('.RealEstateGallery').css('filter', 'brightness(0.7) opacity(0.7)');
            $('body').css('filter', 'brightness(0.9) opacity(0.7)');
            /*
            if ($('.loading-spinner').length === 0) {
                $('body').append('<div class="loading-spinner"></div>');
            }
            $('.loading-spinner').css('display', 'block'); // Mostra o spinner
            $('.loading-spinner').css({
                'position': 'fixed',           // Fixar o spinner na tela
                'top': '50%',                  // Centraliza verticalmente
                'left': '50%',                 // Centraliza horizontalmente
                'transform': 'translate(-50%, -50%)',  // Ajuste para centralizar exatamente
                'z-index': '9999',             // Garante que o spinner fique acima de outros elementos
                'width': '100px',               // Ajuste do tamanho, caso necessário
                'height': '100px',              // Ajuste do tamanho, caso necessário
                'border': '4px solid #f3f3f3', // Cor do spinner
                'border-top': '4px solid #3498db', // Cor da parte superior do spinner
                'border-radius': '50%',        // Torna o spinner redondo
                'animation': 'spin 1s linear infinite',  // Animação do spinner
                'filter': 'none'
            });
            */
        });
        // Remove o spinner ao finalizar o AJAX
        $(document).on('ajaxStop', function () {
            // $('.multiGallery').css('filter', 'none');
            /* $('.multidealer-search-box').css('filter', 'none'); */
            $('.loading-spinner').css('display', 'none');
            $('body').css('filter', 'none');
        });

        if ($(this).is('a')) {
            //var href = $(this).attr('href'); // Exemplo: "#multidealer_btn_view-635"
            //console.log('Href: ' + href);
            // Extrai o ID do post a partir do fragmento da URL (tudo após o "#")
            //var postId = href.match(/-(\d+)$/)[1]; // Extrai o número após o hífen



            // Extrai o número após o hífen
            //var postId = elementId.match(/-(\d+)$/)[1]; // Extrai o número após o hífen
            //
            //
            //
            //
            //


            // Captura o ID do elemento clicado
            var elementId = $(this).attr('id'); // Exemplo: "multidealer_btn_view-515"

            // Extrai o número após o hífen
            var postId = elementId.match(/-(\d+)$/)[1]; // Extrai o número após o hífen

            // Exibe o postId no console

            console.log('Post ID: ' + postId);
        } else if ($(this).is('input')) {
            modalId = '#myModal-' + $(this).attr('id').replace('modal-submit-', ''); // Se for botão, cria o ID do modal
            var id = $(this).attr('id');
            // Extrai o número após o hífen usando regex
            var postId = id.match(/-(\d+)$/)[1];


            console.log(postId); // Exibe o número no console
            //alert();
        }
        $('body').addClass('modal-open22');


        // Close Modal >>>>>>>>>>>>>>>>>>>>>>


        // Fecha o modal ao clicar no botão de fechar
        $(document).on('click', '.close-modal22', function (event) {
            //console.log('Clicou Close Modal');
            closeModal();
        });


        $(document).on('click', 'body', function (event) {
            const clickedInsideModal = $(event.target).closest('.modal-container22').length > 0;
            const isCloseButton = $(event.target).hasClass('close-modal22');

            //console.log('Clicou no body');
            //console.log('Está dentro do modal:', clickedInsideModal);
            //console.log('O alvo é o botão de fechar:', isCloseButton);

            // Fecha o modal somente se o clique for fora do modal e não no botão de fechar
            if (!clickedInsideModal && !isCloseButton) {
                // console.log('Clicou fora do modal, fechando...');
                closeModal();
            }
        });



        function closeModal() {
            //console.log('Fechando modal...');
            //alert('f');
            $('body').removeClass('modal-open22');
            $('.modal-overlay22').hide(); // Esconde o overlay
            $('.modal-container22').toggle(); // Esconde o modal
            $('.modal-container22').hide(); // Esconde o modal
            // console.log('Fechar');
            $('.multidealer-search-box').css('filter', 'none');
        }




        // });
        //
        //
        //
        //
        //
        //
        //





        $.ajax({
            url: ajaxurl,
            type: 'POST',
            data: {
                action: 'multidealer_single_property_ajax', // Nome da ação definida no PHP
                post_id: postId // Envia os dados do formulário serializados
            },
            beforeSend: function () {
                // Aqui você já exibiu a mensagem antes da chamada AJAX
                console.log('Preparing to send request...');
                // $(".modal-container22").html("Please, wait...");
            },
            success: function (response) {
                //if ($(".modal-content").html() !== response) {
                console.log('modal content...');
                /* $('.modal-overlay22').toggle(); // Mostra o overlay */
                $('.modal-container22').toggle(); // Mostra o modal
                // alert('5');
                if ($(".modal-container22").length && $(".modal-container22").is(":visible")) {
                    //console.log("O elemento existe e está visível.");
                } else {
                    //console.log("O elemento não existe ou não está visível.");
                }
                //response = 'OK!!!';
                $(".modal-container22").html(response);  // Só atualiza se o conteúdo for diferente
                //}
                // alert(response);
                function initFlexSlider() {
                    if (typeof jQuery().flexslider === 'function') {
                        jQuery('.flexslider').flexslider();
                        // Previne o comportamento do link na imagem
                        jQuery('.flexslider .slides a').on('click', function (event) {
                            event.preventDefault();  // Impede que o link abra a imagem em uma nova página
                        });
                        console.log('FlexSlider está carregado.');
                    } else {
                        console.log('FlexSlider não está carregado.');
                    }
                }
                setTimeout(function () {
                    initFlexSlider(); // Chama a função após 5 segundos
                }, 100);
            },
            error: function (jqXHR, textStatus, errorThrown) {
                console.error('Error consult 22!!');
                console.error('Status:', textStatus); // Exibe o status do erro (ex.: timeout, error, abort)
                console.error('Error:', errorThrown); // Exibe o texto do erro (ex.: Internal Server Error)
                console.error('Complete ResponseResposta completa:', jqXHR.responseText); // Exibe a resposta detalhada do servidor, se disponível
                // Exibe uma mensagem mais detalhada ao usuário
                //alert('Erro na consulta: ' + textStatus + ' - ' + errorThrown);
            },
            complete: function () {
                // Esta função será chamada após o AJAX, independentemente do sucesso ou erro
                console.log('Requisição AJAX finalizada.');
                $('.multidealer-search-box').css('filter', 'none');
            }
        });
    });
    // Função para fechar o modal
    function closeModal(modal, overlay) {
        modal.fadeOut(function () {
            modal.remove();
        });
        overlay.fadeOut(function () {
            overlay.remove();
        });
    }
    // >>>>>>>>>>>>>  Ao clicar no botão de submit
    $(document).on('click', '#MultiDealer-submitBtn', function (event) {
        console.log('multidealer-submitBtn');
        // Adiciona o spinner ao iniciar o AJAX
        $(document).on('ajaxStart', function () {
            //$('.multiGallery').css('filter', 'brightness(0.7) opacity(0.7)');
            $('body').css('filter', 'brightness(0.9) opacity(0.7)');
            //$('.RealEstateGallery').css('filter', 'brightness(0.7) opacity(0.7)');
            /*
            if ($('.loading-spinner').length === 0) {
                $('body').append('<div class="loading-spinner"></div>');
            }
            $('.loading-spinner').css('display', 'block'); // Mostra o spinner
            $('.loading-spinner').css({
                'position': 'fixed',           // Fixar o spinner na tela
                'top': '50%',                  // Centraliza verticalmente
                'left': '50%',                 // Centraliza horizontalmente
                'transform': 'translate(-50%, -50%)',  // Ajuste para centralizar exatamente
                'z-index': '9999',             // Garante que o spinner fique acima de outros elementos
                'width': '100px',               // Ajuste do tamanho, caso necessário
                'height': '100px',              // Ajuste do tamanho, caso necessário
                'border': '4px solid #f3f3f3', // Cor do spinner
                'border-top': '4px solid #3498db', // Cor da parte superior do spinner
                'border-radius': '50%',        // Torna o spinner redondo
                'animation': 'spin 1s linear infinite',  // Animação do spinner
                'filter': 'none'
            });
            */
        });
        // Remove o spinner ao finalizar o AJAX
        $(document).on('ajaxStop', function () {
            // $('.multiGallery').css('filter', 'none');
            /* $('.multidealer-search-box').css('filter', 'none'); */
            $('.loading-spinner').css('display', 'none');
            $('body').css('filter', 'none');
        });
        event.preventDefault(); // Evita o recarregamento da página
        var formData = $('#searchform3').serialize(); // 'searchform3' é o ID do formulário
        // console.log(formData);
        var sliderValue = $('#meta_price').val(); // Captura o valor atual do slider (campo 'meta_price')
        // var sliderValue = $('#meta_price').attr('value'); // Captura o valor d
        //formData += '&meta_price_value=' + sliderValue;
        // console.log(sliderValue);
        // alert(formData);
        $.ajax({
            url: ajaxurl,
            type: 'POST',
            data: {
                action: 'multidealer_search_ajax', // Nome da ação definida no PHP
                form_data: formData, // Envia os dados do formulário serializados
                meta_price_value: sliderValue // Envia o valor do slider separadamente
            },
            success: function (response) {
                // response = 'oooook';

                console.log(response);
                var sidebar = $(".sidebar"); // ou $(".sidebar") dependendo da classe ou ID
                if (sidebar.length > 0 && sidebar.css("display") !== "none") {
                    // sidebar.css("display", "none"); // Torna o sidebar invisível e não ocupa espaço
                    sidebar.css("visibility", "hidden");
                }
                // if ($(".multiGallery").html() !== response) {
                if ($(".multiGallery").length > 0) {
                    // List View
                    $(".multiGallery").html(response);  // Só atualiza se o conteúdo for diferente
                    // $(".multiGallery").html("OK!!!!!!");
                } else if ($(".RealEstateGallery").length > 0) {
                    // Gallery
                    $(".RealEstateGallery").html(response);
                    //$(".RealEstateGallery").html("OK");
                }
                // Verificar se existe um elemento com ID 'main'
                var mainElement = $('#main');
                // Se o elemento com ID 'main' existir e tiver 'position: absolute'
                if (mainElement.length > 0 && mainElement.css('position') === 'absolute') {
                    // Desativar o 'position: absolute' definindo como 'static' ou outro valor
                    mainElement.css('position', 'static');
                    //console.log('Position alterado para static');
                }
            },
            error: function () {
                console.error('Ajax Error (10)');
            },
            complete: function () {
                // Esta função será chamada após o AJAX, independentemente do sucesso ou erro
                //console.log('Requisição AJAX finalizada.');
                $('.multidealer-search-box').css('filter', 'none');
                console.error('tem response');
            }
        });
    });
    // >>>>>>>>>>>  Ao clicar nos links de navegação (paginção)
    // search content
    $(document).on('click', '.page-link', function (event) {
        event.preventDefault(); // Impede o comportamento padrão do link

        console.log('click link');



        var page = $(this).attr('href').split('=')[1]; // Pega o número após "page="
        var formData = $('#searchform3').serialize();
        formData += '&paged=' + page;
        $.ajax({
            url: ajaxurl,
            type: 'POST',
            data: {
                action: 'multidealer_search_ajax', // Nome da ação definida no PHP
                form_data: formData, // Envia os dados do formulário com o número da página
                paged: page,
            },
            success: function (response) {
                console.log(response);
                var sidebar = $(".sidebar"); // ou $(".sidebar") dependendo da classe ou ID
                if (sidebar.length > 0 && sidebar.css("display") !== "none") {
                    // sidebar.css("display", "none"); // Torna o sidebar invisível e não ocupa espaço
                    sidebar.css("visibility", "hidden");
                }
                // if ($(".multiGallery").html() !== response) {
                if ($(".multiGallery").length > 0) {
                    // List View
                    $(".multiGallery").html(response);  // Só atualiza se o conteúdo for diferente
                    // $(".multiGallery").html("OK!!!!!!");
                } else if ($(".RealEstateGallery").length > 0) {
                    // Gallery
                    $(".RealEstateGallery").html(response);
                    //$(".RealEstateGallery").html("OK");
                }
                // Verificar se existe um elemento com ID 'main'
                var mainElement = $('#main');
                // Se o elemento com ID 'main' existir e tiver 'position: absolute'
                if (mainElement.length > 0 && mainElement.css('position') === 'absolute') {
                    // Desativar o 'position: absolute' definindo como 'static' ou outro valor
                    mainElement.css('position', 'static');
                    //console.log('Position alterado para static');
                }
            },
            error: function () {
                // console.error('Erro na consulta');
            },
            complete: function () {
                // Esta função será chamada após o AJAX, independentemente do sucesso ou erro
                //console.log('Requisição AJAX finalizada.');
                $('.multidealer-search-box').css('filter', 'none');
            }
        });
    });
});
