jQuery(document).ready(function($){function debounce(func,wait){let timeout;return function(){const context=this;const args=arguments;clearTimeout(timeout);timeout=setTimeout(()=>func.apply(context,args),wait)}}
const guidesMenu=$(".sf-menu .guides-title > .sub-menu");if(!guidesMenu.length)return;const topLevelItems=guidesMenu.children(".menu-item-has-children");const megaMenu=$(`
        <ul class="sub-menu-guides">
          <li class="td_block_wrap td_block_mega_menu tdi_1 td_with_ajax_pagination td-pb-border-top td_block_template_1 sub-menu-guides-inner">
            <div class="guide-menu-left"><div class="block-mega-child-cats"></div></div>
            
          </li>
        </ul>
    `);$(".sf-menu .guides-title").append(megaMenu);topLevelItems.each(function(i){const $link=$(this).children("a");const title=$link.text().trim();const href=$link.attr("href");const isActive=i===0?"cur-sub-cat":"";megaMenu.find(".block-mega-child-cats").append(`
            <div class="parent-item ${isActive}" data-index="${i}">
                <a href="${href}">${title}</a>
            </div>
        `);megaMenu.find(".block-mega-child-cats").closest("li").append(`<div class="guide-menu-right td_block_inner td-mega-row" data-index="${i}"></div>`)});const loadedIndices={};const cachedResponses={};$(".guide-menu-right").hide();function fetchAndDisplayContent(index){$(".guide-menu-right").hide();var responseBox=megaMenu.find(`.guide-menu-right[data-index="${index}"]`);responseBox.show();if(loadedIndices[index]){responseBox.html(cachedResponses[index]);return}
const $originalLi=topLevelItems.eq(index);const $childLinks=$originalLi.find(".sub-menu > li > a");if(!$childLinks.length){responseBox.html("<div>No content found.</div>");return}
const titles=[];$childLinks.each(function(){titles.push({title:$(this).text().trim(),url:$(this).attr("href"),})});responseBox.html('<div class="loading-img"><img src="'+my_ajax_object.theme_url+'/img/loading.gif" alt="" /></div>');$.ajax({url:my_ajax_object.ajax_url,method:"POST",data:{action:"get_page_images",titles:titles,},timeout:5000,success:function(res){if(!res.success){responseBox.html("<div>Failed to load data.</div>");return}
let html="";const items=res.data;items.forEach((item,i)=>{html+=`
                        <div class="td-mega-span" data-page="${Math.floor(
                            i / 4
                        )}" style="${i >= 4 ? "display:none;" : ""}">
                            <div class="td_module_mega_menu td-animation-stack td_mod_mega_menu">
                                <a href="${
                                    item.url
                                }" class="td-image-wrap" title="${item.title}">
                                    <img src="${item.image}" alt="${
                        item.title
                    }" width="218" height="150" style="display:block;">
                                </a>
                            </div>
                            <div class="item-details">
                                <span class="entry-title td-module-title">
                                    <a href="${
                                        item.url
                                    }" rel="bookmark" title="${item.title}">${
                        item.title
                    }</a>
                                </span>
                            </div>
                        </div>`});if(items.length>4){html+=`
                        <div class="pagination-controls">
                            <a href="#" class="page-prev td-ajax-prev-page ajax-page-disabled" aria-label="prev-page" data-td_block_id="tdi_1"><i class="td-next-prev-icon td-icon-font td-icon-menu-left"></i></a>
                            <a href="#" class="td-ajax-next-page page-next" aria-label="next-page" data-td_block_id="tdi_1"><i class="td-next-prev-icon td-icon-font td-icon-menu-right"></i></a>
                        </div>`}
loadedIndices[index]=!0;cachedResponses[index]=html;responseBox.html(html);if(items.length>4){initPagination(items.length)}},error:function(){responseBox.html("<div>Error loading data.</div>")},})}
function initPagination(itemsCount){let currentPage=0;const totalPages=Math.ceil(itemsCount/4);megaMenu.find(".page-prev").on("click",function(e){e.preventDefault();if(currentPage>0){currentPage--;showPage(currentPage)}});megaMenu.find(".page-next").on("click",function(e){e.preventDefault();if(currentPage<totalPages-1){currentPage++;showPage(currentPage)}})}
function showPage(page){const $items=megaMenu.find(".td-mega-span");$items.filter(":visible").fadeOut(200,function(){$items.hide();const $newItems=$items.filter(`[data-page="${page}"]`);$newItems.css({opacity:0,position:"relative",left:"30px",}).show().animate({opacity:1,left:"0"},300)})}
function preloadAllMenuContent(){fetchAndDisplayContent(0);$(".parent-item").removeClass("cur-sub-cat");$('.parent-item[data-index="0"]').addClass("cur-sub-cat");setTimeout(function(){const batchSize=3;const totalItems=topLevelItems.length;function loadBatch(startIndex){if(startIndex>=totalItems)return;const endIndex=Math.min(startIndex+batchSize,totalItems);let batchCompleted=0;for(let i=startIndex;i<endIndex;i++){if(i===0||loadedIndices[i]){batchCompleted++;continue}
const $originalLi=topLevelItems.eq(i);const $childLinks=$originalLi.find(".sub-menu > li > a");if(!$childLinks.length){batchCompleted++;continue}
const titles=[];$childLinks.each(function(){titles.push({title:$(this).text().trim(),url:$(this).attr("href"),})});$.ajax({url:my_ajax_object.ajax_url,method:"POST",data:{action:"get_page_images",titles:titles,},timeout:5000,success:function(res){if(!res.success){console.log("Failed to preload menu content for index: "+i);batchCompleted++;if(batchCompleted===endIndex-startIndex){loadBatch(endIndex)}
return}
let html="";const items=res.data;items.forEach((item,j)=>{html+=`
                                    <div class="td-mega-span" data-page="${Math.floor(
                                        j / 4
                                    )}" style="${
                                    j >= 4 ? "display:none;" : ""
                                }">
                                        <div class="td_module_mega_menu td-animation-stack td_mod_mega_menu">
                                            <a href="${
                                                item.url
                                            }" class="td-image-wrap" title="${
                                    item.title
                                }">
                                                <img src="${item.image}" alt="${
                                    item.title
                                }" width="218" height="150" style="display:block;">
                                            </a>
                                        </div>
                                        <div class="item-details">
                                            <span class="entry-title td-module-title">
                                                <a href="${
                                                    item.url
                                                }" rel="bookmark" title="${
                                    item.title
                                }">${item.title}</a>
                                            </span>
                                        </div>
                                    </div>`});if(items.length>4){html+=`
                                    <div class="pagination-controls">
                                        <a href="#" class="page-prev td-ajax-prev-page ajax-page-disabled" aria-label="prev-page" data-td_block_id="tdi_1"><i class="td-next-prev-icon td-icon-font td-icon-menu-left"></i></a>
                                        <a href="#" class="td-ajax-next-page page-next" aria-label="next-page" data-td_block_id="tdi_1"><i class="td-next-prev-icon td-icon-font td-icon-menu-right"></i></a>
                                    </div>`}
loadedIndices[i]=!0;cachedResponses[i]=html;batchCompleted++;if(batchCompleted===endIndex-startIndex){loadBatch(endIndex)}},error:function(){console.log("Error preloading menu content for index: "+i);batchCompleted++;if(batchCompleted===endIndex-startIndex){loadBatch(endIndex)}},})}
if(batchCompleted===endIndex-startIndex){loadBatch(endIndex)}}
loadBatch(1)},1000)}
preloadAllMenuContent();var prevIndex=null;const debouncedHoverHandler=debounce(function(e){const index=$(this).data("index");if(prevIndex==index)return;prevIndex=index;$(".parent-item").removeClass("cur-sub-cat");$(this).addClass("cur-sub-cat");fetchAndDisplayContent(index)},50);$(document).on("mouseover","div.parent-item",debouncedHoverHandler)})