/* 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
}
});
});
New Rule Announcement For the ABQ & New Mexico Foodies Facebook Groups
Important Announcement for Our Foodie Community
Greetings, foodies! New Rule Effective Immediately: No food carts or home-based cook sales posts or reviews allowed, whether licensed or not. Food trucks, brick-and-mortar, and licensed catering companies only.
First of all, we want to say that we’re not happy about this decision — it’s one we’ve wrestled with for months, trying to find the right solution. We truly want everyone to succeed and have a space to share their products and businesses. However, the sheer volume of home-based business posts has become overwhelming, turning into a full-time job to manage. It simply takes up too much time. We genuinely believe a dedicated group focused on this area could be very successful.
As our three foodie pages continue to grow rapidly, we’ve reached a point where we need to refocus on our core mission — supporting local restaurants and food trucks, while maintaining a positive, balanced space for food lovers to connect, share, and celebrate the joy of great food, whether dining out or cooking at home.
To stay true to that mission, effective immediately, only brick-and-mortar restaurants, food trucks, and professional caterers will be allowed to advertise in the group.
Unfortunately, home-based businesses (licensed or not), roadside stands, and food carts will no longer be permitted to post or be reviewed. These posts have grown to make up the majority of what our team has to moderate, and it’s simply become too much to manage effectively. We truly value and appreciate these entrepreneurs and wish them great success — we just believe they deserve a dedicated space of their own to thrive. (In fact, a group focused specifically on this niche could be very successful!)
Good news: You can still participate! Home-based vendors may comment on relevant posts where someone is asking for a product or recommendation. For example:
Post: “Hi, I’m looking for a chocolate cake for my husband’s birthday. Any suggestions?” Comment: “Hi! I make great custom cakes — feel free to contact me! [photo/info/etc.]”
This approach helps keep the main feed balanced while still giving small producers a chance to connect with potential customers.
As always, home cooks sharing personal meals are warmly encouraged to continue posting — that’s part of what makes this community special.
To help home-based vendors transition, we’ve also included links to other New Mexico groups that are better suited to your needs.
Our moderators and admins reserve the right to manage posts and comments as needed to maintain fairness and balance in the group.
Thank you all for understanding and for being part of this vibrant community that celebrates food in every form!
Anuncio Importante para Nuestra Comunidad de Amantes de la Comida Nueva Regla Efectiva Inmediatamente: No se permitirán publicaciones o reseñas de carritos de comida ni de cocineros, panaderos o vendedores caseros, tengan o no licencia. Solo se permiten camiones de comida, restaurantes con local físico y empresas de catering con licencia.
Enlace aquí al documento oficial y la traducción al español.
¡Saludos, amantes de la comida! En primer lugar, queremos decir que no estamos contentos con esta decisión; hemos estado luchando durante meses para encontrar la mejor solución. Realmente queremos que todos tengan éxito y cuenten con un espacio donde puedan compartir sus productos y negocios. Sin embargo, la gran cantidad de publicaciones de negocios caseros se ha vuelto abrumadora, convirtiéndose prácticamente en un trabajo de tiempo completo. Simplemente es demasiado para manejar. Creemos sinceramente que un grupo dedicado exclusivamente a este tipo de emprendimientos podría tener mucho éxito.
A medida que nuestras tres páginas de comida siguen creciendo rápidamente, hemos llegado a un punto en el que necesitamos reenfocarnos en nuestra misión principal: apoyar a los restaurantes locales y camiones de comida, y mantener un espacio positivo y equilibrado donde los amantes de la comida puedan conectarse, compartir y celebrar el placer de la buena comida, ya sea comiendo fuera o cocinando en casa.
Para mantenernos fieles a esa misión, a partir de ahora solo se permitirá la publicidad de restaurantes con local físico, camiones de comida y servicios de catering profesionales.
Lamentablemente, los negocios caseros (con o sin licencia), los puestos en la carretera y los carritos de comida ya no podrán publicar ni recibir reseñas. Estas publicaciones se han convertido en la mayor parte de lo que nuestro equipo debe moderar, y simplemente es demasiado para administrarlo eficazmente. Valoramos y apreciamos sinceramente a estos emprendedores y les deseamos mucho éxito; solo creemos que merecen un espacio propio donde puedan crecer. (¡De hecho, un grupo enfocado en este tipo de negocios podría ser muy exitoso!)
Buenas noticias: ¡Aún pueden participar! Los vendedores caseros pueden comentar en publicaciones relevantes cuando alguien esté buscando un producto o recomendación.
Por ejemplo: Publicación: “Hola, estoy buscando un pastel de chocolate para el cumpleaños de mi esposo. ¿Alguna recomendación?” Comentario: “¡Hola! Yo hago pasteles personalizados — contáctame si te interesa. [foto/información/etc.]”
Este enfoque ayuda a mantener el equilibrio del grupo principal mientras permite que los pequeños productores se conecten con posibles clientes.
Como siempre, los cocineros que comparten comidas caseras personales están más que bienvenidos a seguir publicando — eso es parte de lo que hace especial a esta comunidad.
Para ayudar a los vendedores caseros en su transición, también hemos incluido enlaces a otros grupos de Nuevo México que se adaptan mejor a sus necesidades.
Nuestros moderadores y administradores se reservan el derecho de gestionar publicaciones y comentarios según sea necesario para mantener la equidad y el equilibrio en el grupo.
¡Gracias a todos por su comprensión y por ser parte de esta vibrante comunidad que celebra la comida en todas sus formas!
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":9003241321006178,"title":"Announcements%20-%20Santa%20Fe%20Foodies","excerpt":"","featuredImage":"https:\/\/santafefoodiesnm.com\/wp-content\/uploads\/2025\/10\/Facebook-Group-Announcement.jpeg"}};
//# sourceURL=elementor-frontend-js-before