/* Default comment here */
jQuery(document).ready(function() {
var swiper = new Swiper(".hero-banner", {
autoplay: {
delay: 3000, // Set delay in milliseconds (adjust as needed)
disableOnInteraction: false, // Autoplay will continue after user interaction
},
loop: true,
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
});
jQuery('.toggle-category-button').click(function() {
jQuery('.food-category-con').slideToggle(); // Use slideToggle() for a sliding effect
});
});
jQuery(document).ready(function($) {
$('.food-category-item-box').each(function() {
if ($(this).find('.food-category-sub-items').children().length > 0) {
$(this).find('.category-dropdown-arrow').show();
} else {
$(this).find('.category-dropdown-arrow').hide();
}
});
$('.category-dropdown-arrow').on('click', function() {
var $currentSubItems = $(this).siblings('.food-category-sub-items');
$('.food-category-sub-items').not($currentSubItems).slideUp();
$currentSubItems.slideToggle();
});
});
jQuery(document).ready(function($) {
$('.copy_link_button').on('click', function(event) {
console.log('clicked');
event.preventDefault();
var linkToCopy = $(this).find('a').attr('href');
var jQuerytempInput = $('<input>');
$('body').append(jQuerytempInput);
jQuerytempInput.val(linkToCopy).select();
document.execCommand('copy');
jQuerytempInput.remove();
console.log('Link copied: ' + linkToCopy);
$(this).find('span').text('Copied');
setTimeout(() => {
$(this).find('span').text('Copy Link');
}, 2000);
});
});
jQuery(document).ready(function($) {
function applyBlendMode() {
if ($('.food-menu-products-main.loading').length) {
$('body').css({
'background-color': '#0000005e',
'mix-blend-mode': 'overlay'
});
} else {
$('body').css({
'background-color': '',
'mix-blend-mode': ''
});
}
}
const observer = new MutationObserver(function(mutationsList) {
applyBlendMode();
});
observer.observe(document.body, { attributes: true, childList: true, subtree: true });
applyBlendMode();
});
jQuery(document).ready(function ($) {
// Opening and closing indication JS code start
function isRestaurantOpen(restaurant) {
var timezone = restaurant.data('timezone');
if (!timezone) {
console.error("Invalid timezone: ", timezone);
timezone = 'UTC'; // Fallback to UTC if timezone is invalid
}
var hours = restaurant.data('hours');
var currentDate = new Date();
var options = { timeZone: timezone, hour: '2-digit', minute: '2-digit', hour12: true };
var currentTimeString = new Intl.DateTimeFormat('en-US', options).format(currentDate);
var currentTime = parseTime(currentTimeString);
var currentDayIndex = currentDate.toLocaleDateString('en-US', { timeZone: timezone, weekday: 'long' });
var dayHours = getDayHoursForToday(hours, currentDayIndex);
if (dayHours === "Closed") {
return { open: false, message: "Currently Closed", className: "closed" };
}
var timeRange = dayHours.split("–");
if (timeRange.length < 2) {
console.error(`Invalid time range format: ${dayHours}`);
return { open: false, message: "Invalid Time Format", className: "closed" };
}
var openTime = parseTime(timeRange[0].trim());
var closeTime = parseTime(timeRange[1].trim());
if (isTimeBetween(currentTime, openTime, closeTime)) {
return { open: true, message: "Currently Open", className: "open" };
} else {
return { open: false, message: "Currently Closed", className: "closed" };
}
}
function parseTime(timeString) {
var [hour, minutePart] = timeString.replace(/[^0-9:APM]/gi, '').split(":");
var minute = parseInt(minutePart.match(/\d+/) || "0");
var isPM = timeString.toUpperCase().includes("PM");
hour = parseInt(hour);
if (isPM && hour !== 12) hour += 12;
if (!isPM && hour === 12) hour = 0;
return { hour, minute };
}
function getCurrentTimeInMinutes(time) {
return time.hour * 60 + time.minute;
}
function isTimeBetween(current, open, close) {
var currentMinutes = getCurrentTimeInMinutes(current);
var openMinutes = getCurrentTimeInMinutes(open);
var closeMinutes = getCurrentTimeInMinutes(close);
if (openMinutes > closeMinutes) {
return currentMinutes >= openMinutes || currentMinutes < closeMinutes;
}
return currentMinutes >= openMinutes && currentMinutes < closeMinutes;
}
function getDayHoursForToday(hours, currentDayName) {
var lines = hours.replace(/<br\s*\/?>/g, '\n').split('\n');
for (var line of lines) {
var [day, time] = line.split(": ");
if (day.trim() === currentDayName) {
return time || "Closed";
}
}
return "Closed";
}
// Loop through each restaurant
$('.restaurant-time').each(function () {
var $this = $(this);
var status = isRestaurantOpen($this);
$this.html(status.message);
$this.closest('.restaurant-time').removeClass('open closed').addClass(status.className); // Update the container class
});
function updateRestaurantStatus(container) {
$(container).find('.restaurant-time').each(function () {
var $this = $(this);
var status = isRestaurantOpen($this);
$this.html(status.message);
$this.closest('.restaurant-time').removeClass('open closed').addClass(status.className);
});
}
// Opening and closing indication JS code end
$('#all-restaurants').prop('checked', true).prop('disabled', true);
var previousResponse = '';
var canLoadMore = false; // To track if more posts can be loaded
var paged = 2; // For pagination
var loading = false; // To track if a request is in progress
function getSearchTerm() {
return $('#food-menu-search').val();
}
function getSelectedTaxonomies() {
var selectedTaxonomies = [];
$('.restaurant-filter:checked').each(function () {
selectedTaxonomies.push($(this).data('termid'));
});
return selectedTaxonomies;
}
function filterPosts(searchTerm, selectedTaxonomies, isInitialLoad = false) {
$.ajax({
type: 'POST',
url: '/wp-admin/admin-ajax.php',
data: {
action: 'filter_restaurants',
search_term: searchTerm,
taxonomies: selectedTaxonomies
},
beforeSend: function () {
if (!isInitialLoad) {
$('#food-menu-container').addClass('loading');
}
},
success: function (response) {
if (response.data && response.data.content !== previousResponse) {
$('#food-menu-container').html(response.data.content);
previousResponse = response.data.content;
canLoadMore = response.data.has_more_posts; // Update based on response
updateRestaurantStatus('#food-menu-container');
} else {
canLoadMore = false; // No posts available
}
},
complete: function () {
if (!isInitialLoad) {
$('#food-menu-container').removeClass('loading');
}
loading = false; // Allow new requests
}
});
}
// Initial load with "All Restaurants" selected
filterPosts(getSearchTerm(), getSelectedTaxonomies(), true);
// Handle filter change
$('.restaurant-filter').on('change', function () {
const allRestaurantsCheckbox = $('#all-restaurants');
const selectedCheckbox = $(this);
if (selectedCheckbox.is(allRestaurantsCheckbox)) {
// If "All Restaurants" is checked, uncheck all others and disable them
if (selectedCheckbox.is(':checked')) {
$('.restaurant-filter').not(allRestaurantsCheckbox).prop('checked', false).prop('disabled', true);
} else {
// If unchecked, enable all other filters
$('.restaurant-filter').not(allRestaurantsCheckbox).prop('disabled', false);
}
} else {
// If any other checkbox is checked
if (selectedCheckbox.is(':checked')) {
// Uncheck "All Restaurants" and disable it
allRestaurantsCheckbox.prop('checked', false).prop('disabled', true);
// Uncheck all other checkboxes except the current one
$('.restaurant-filter').not(selectedCheckbox).prop('checked', false);
} else {
// If no other checkboxes are selected, enable "All Restaurants"
if ($('.restaurant-filter:checked').length === 0) {
allRestaurantsCheckbox.prop('checked', true).prop('disabled', true);
}
}
}
paged = 2; // Reset pagination
filterPosts(getSearchTerm(), getSelectedTaxonomies());
});
// Handle search input
$('#food-menu-search').on('input', function () {
paged = 2; // Reset pagination
filterPosts(getSearchTerm(), getSelectedTaxonomies());
});
// Handle "Load More" functionality on scroll
$(window).scroll(function () {
if (canLoadMore && !loading && $(window).scrollTop() + $(window).height() >= $(document).height() - 100) {
loading = true;
const searchTerm = getSearchTerm();
const selectedTaxonomies = getSelectedTaxonomies();
$.ajax({
url: '/wp-admin/admin-ajax.php',
type: 'POST',
data: {
action: 'load_more_restaurants',
paged: paged,
search_term: searchTerm,
taxonomies: selectedTaxonomies,
},
beforeSend: function () {
$('#food-menu-container').append('<div class="loading-text">Loading...</div>');
},
success: function (response) {
if (response.data && response.data.content) {
$('#food-menu-container').append(response.data.content);
paged++;
canLoadMore = response.data.has_more_posts;
updateRestaurantStatus('#food-menu-container');
} else {
canLoadMore = false;
}
},
complete: function () {
$('.loading-text').remove();
loading = false;
},
});
}
});
});
jQuery(document).ready(function($){
var content = $('.rest-list-wrapp .elementor-cta__description');
var maxLength = 150;
content.each(function() {
var fullText = $(this).text();
if(fullText.length > maxLength){
var shortText = fullText.substring(0, maxLength);
$(this).html(
shortText +
'<span class="dots">...</span>' +
'<span class="more-text" style="display:none;">' +
fullText.substring(maxLength) +
'</span>' +
' <a href="#" class="read-more">Read More</a>'
);
}
});
$(document).on('click', '.read-more', function(e){
e.preventDefault();
var parent = $(this).closest('.rest-list-wrapp .elementor-cta__description');
parent.find('.dots, .more-text').toggle();
if($(this).text() === 'Read More'){
$(this).text('Read Less');
} else {
$(this).text('Read More');
}
});
});
jQuery(window).on('load', function() {
if( jQuery('#all-restaurents').length > 0 ) {
jQuery('#all-restaurents').trigger('click');
}
});
jQuery(document).ready(function() {
// Attach a click event handler to the accordion title link
jQuery('.fw-bold.text-decoration-none').on('click', function() {
var accordionID = $(this).attr('href'); // Get the href value of the clicked accordion title
var radioButtons = $(accordionID + ' input[type=radio]'); // Get all radio buttons inside the accordion
if (radioButtons.length === 1) {
radioButtons.prop('checked', true).trigger('click'); // If only one radio button, check it
}
});
});
Be the first to know about local culinary news, events, and more! Stay in the loop with email updates about foodie happenings, restaurant news, and upcoming events. You can unsubscribe anytime. Just enter your email below to sign up.
Become a Patron
Support Santa Fe Foodies and dive into the food scene!
$
19
99 Billed yearly
Full Unlocked Features
Benefits and discounts include-25% off HORNO appetizers, 20% off The Artisan’s Bottega, 10% off Dinner For Two, 10% off Mille crepes, 10% all Fusion Tacos orders, 10% off all Jesushi orders, 10% off all MacSanta Fe orders, and many more!
jQuery(document).ready(function() {
// Show or hide the back-to-top button based on scroll position
jQuery(window).scroll(function() {
if (jQuery(this).scrollTop() > 500) {
jQuery('#backToTop').fadeIn();
} else {
jQuery('#backToTop').fadeOut();
}
});
// Smooth scroll to top when the back-to-top button is clicked
jQuery('#backToTop').click(function(event) {
event.preventDefault();
jQuery('html, body').animate({ scrollTop: 0 }, 300);
});
});
var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnX":"Share on X","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":true},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":true},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":true}},"hasCustomBreakpoints":true},"version":"4.2.2","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"e_panel_promotions":true,"theme_builder_v2":true,"landing-pages":true,"nested-elements":true,"e_atomic_elements":true,"atomic_widgets_should_enforce_capabilities":true,"editor_mcp":true,"e_bc_migrations":true,"e_classes":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"e_variables_manager":true,"e_opt_in_v4_page":true,"e_opt_in_v4":true,"e_components":true,"e_interactions":true,"e_widget_creation":true,"import-export-customization":true,"e_pro_atomic_form":true,"e_pro_collection_loop":true,"mega-menu":true,"e_pro_variables":true,"e_pro_interactions":true},"urls":{"assets":"https:\/\/santafefoodiesnm.com\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/santafefoodiesnm.com\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/santafefoodiesnm.com\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"6c6332074c","atomicFormsSendForm":"ce20f4d876"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_mobile_extra","viewport_tablet","viewport_tablet_extra","viewport_laptop","viewport_widescreen"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description"},"post":{"id":9003241321004354,"title":"Home%20Page%20Test%20version%20-%20Santa%20Fe%20Foodies","excerpt":"","featuredImage":"https:\/\/santafefoodiesnm.com\/wp-content\/uploads\/2025\/04\/NM-Foodies-2560x1440-1-1024x576.jpg"}};
//# sourceURL=elementor-frontend-js-before