/* 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
}
});
});
Walking-Tour is committed to protecting your privacy. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use the Walking-Tour application.
By using the app, you agree to the collection and use of information in accordance with this policy.
Information We Collect
We collect information that you provide directly to us, including:
Email address and account credentials
Payment information (processed securely via Stripe)
Location data when you use walking tours
We only collect information that is necessary to provide and improve our services.
How We Use Your Information
We use the collected information to:
Provide and maintain our walking tour services
Process payments and transactions
Deliver tour content and navigation features
Improve app performance and user experience
Communicate with you regarding your account or services
Comply with legal and regulatory obligations
Location Information
Provide location-based walking tour content
Offer navigation and route guidance
Enhance your tour experience with relevant nearby information
You can control location permissions through your device settings. Please note that disabling location services may limit certain app features.
Payment Information
All payments are processed securely by Stripe, our third-party payment processor.
We do not store your complete payment card information on our servers. Stripe’s use of your information is governed by their own privacy policy.
Data Storage and Security
We implement appropriate technical and organizational measures to protect your personal information. Sensitive data is encrypted and stored securely.
However, no method of transmission over the internet or electronic storage is completely secure, and we cannot guarantee absolute security.
Third-Party Services
We use the following third-party services to operate our app:
Stripe – payment processing
OpenRouteService – navigation and route data
These third-party services have their own privacy policies governing how they collect and use information.
Data Retention
We retain your personal information only for as long as necessary to provide our services and fulfill the purposes outlined in this Privacy Policy, unless a longer retention period is required by law.
Your Rights
You have the right to:
Access your personal information
Request deletion of your account and associated data
Control app permissions, including location access
If you wish to exercise any of these rights, please contact us using the information below.
Children’s Privacy
We retain your personal information only for as long as necessary to provide our services and fulfill the purposes outlined in this Privacy Policy, unless a longer retention period is required by law.
If we become aware that such information has been collected, we will take steps to delete it.
Changes to This Privacy Policy
We retain your personal information only for as long as necessary to provide our services and fulfill the purposes outlined in this Privacy Policy, unless a longer retention period is required by law.
Contact Us
If you have any questions or concerns about this Privacy Policy or our data practices, please contact us:
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":9003241321006875,"title":"Privacy%20Policy%20-%20Santa%20Fe%20Foodies","excerpt":"","featuredImage":false}};
//# sourceURL=elementor-frontend-js-before