Files
recipe-importer/kiskegyed-examples/kiskegyed3_files/common.js.download
T
2026-02-24 18:41:11 +01:00

478 lines
17 KiB
Plaintext

function loadFacebookAPI() {
var js = document.createElement('script');
js.src = 'https://connect.facebook.net/hu_HU/sdk.js#xfbml=1&version=v4.0&appId=676805345831827&autoLogAppEvents=1';
document.body.appendChild(js);
}
let set;
function setCookieSettings() {
let cookieSetting = document.getElementById('qc-cmp2-persistent-link');
if (!cookieSetting) {
return;
}
cookieSetting.click();
}
function getCookie(name) {
const d = {};
document.cookie.split('; ').forEach(item => {
d[item.split('=')[0]] = item.split('=')[1];
});
return d[name];
}
function setCookie(name, value, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = 'expires=' + d.toUTCString();
document.cookie = `${name}=${value}; ${expires}; path=/`;
}
function deleteCookie(name, value) {
var expires = 'expires=Thu, 01 Jan 1970 00:00:01 GMT';
document.cookie = `${name}=${value}; ${expires}; path=/`;
}
function documentReady(fn) {
if (document.readyState === 'complete' || document.readyState === 'interactive') {
fn();
} else {
document.addEventListener('DOMContentLoaded', fn);
}
}
const handleMenuClose = e => {
const prevScroll = window.scrollY;
window.location.replace('#');
window.scrollTo(0, prevScroll);
history.replaceState('', document.title, window.location.pathname + window.location.search);
};
document.addEventListener('click', event => {
const isClickInsideHamburgerMenu = document.querySelector('#hamburgerMenu')?.contains(event.target);
const isClickInsideElementHamburgerOpenButton = document.querySelector('#hamburgerOpenButton')?.contains(event.target);
if (!isClickInsideHamburgerMenu && !isClickInsideElementHamburgerOpenButton && window.location.href.endsWith('#mainHeader')) {
handleMenuClose();
}
});
const toggleHamburgerButtons = document.getElementsByClassName('toggleHamburger');
for (const button of Object.values(toggleHamburgerButtons)) {
if (button) {
button.addEventListener('click', e => {
if (window.location.href.endsWith('#mainHeader')) {
e.preventDefault();
handleMenuClose();
} else {
e.preventDefault();
const prevScroll = window.scrollY;
window.location.replace('#mainHeader');
window.scrollTo(0, prevScroll);
}
});
}
}
$(window).ready(() => {
if (!getCookie('isLeavingPopUpReady') && document.querySelector('.leavingPopupLayer')) {
const showPopup = () => {
setCookie('isLeavingPopUpReady', false, 3);
document.querySelector('body').style.overflow = 'hidden';
document.querySelector('.leavingPopupLayer').style.display = 'block';
document.querySelector('.leavingPopupLayer div').classList.add('fade-in');
};
document.documentElement.addEventListener('mouseleave', showPopup);
const checkModalClose = e => {
if ($(e.target).hasClass('leavingPopupLayer')) {
closeModal();
}
};
const closeModal = () => {
document.querySelector('body').style.overflow = 'hidden auto';
document.querySelector('.leavingPopupLayer').classList.add('fade-out');
document.querySelector('html').removeEventListener('click', checkModalClose);
document.querySelector('.leavingPopupLayer .close').removeEventListener('click', closeModal);
document.documentElement.removeEventListener('mouseleave', showPopup);
};
document.querySelector('.leavingPopupLayer .close').addEventListener('click', closeModal);
document.querySelector('html').addEventListener('click', checkModalClose);
}
});
function closePopup() {
$('#articleOfferFlag').remove();
}
documentReady(() => {
window.addEventListener('message', e => {
if (e.data.eventType === 'loginRedirect') {
let sourceParam = '';
if (e.data.case) {
sourceParam += e.data.case;
}
if (window.articleUuid) {
sourceParam += '_' + window.articleUuid;
}
const form = document.createElement('form');
form.method = 'POST';
form.action = `https://www.kiskegyed.hu/login`;
if (sourceParam) {
const input = document.createElement('input');
input.type = 'hidden';
input.name = 'source';
input.value = sourceParam;
form.appendChild(input);
}
document.body.appendChild(form);
form.submit();
}
});
window.onscroll = function () {
if ($('#articleOfferFlag').length && $('#articleOfferFlagPosition').length) {
if (document.querySelector('#articleOfferFlagPosition').getBoundingClientRect().top - 200 < window.innerHeight) {
$('#articleOfferFlag').addClass('slideInRight');
} else {
$('#articleOfferFlag').removeClass('slideInRight');
}
}
if ($('#featuredVideo').length) {
if ($('#featuredVideo').attr('data-ga4event-fired') === 'false' && document.querySelector('#featuredVideo').getBoundingClientRect().bottom - 200 < window.innerHeight) {
$('#featuredVideo').attr('data-ga4event-fired', 'true');
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ 'event': 'scrolled-to-featured-video' });
}
}
};
let lastScroll = window.scrollY;
function handleStickyHeader() {
const header = document.querySelector('#mainHeader');
if (header) {
const currentScroll = window.scrollY;
if (currentScroll <= header.offsetHeight * 0.6) {
header.classList.remove('hideMenu');
} else if (lastScroll - currentScroll > -200 && lastScroll - currentScroll < 0) {
header.classList.add('hideMenu');
} else {
header.classList.remove('hideMenu');
}
lastScroll = currentScroll;
}
}
function toggleMobileSearchBar(searchTogglerSelector, inputContainerSelector) {
document.querySelector('#searchContainer')?.classList.toggle('show');
if (document.querySelector('#searchContainer')?.classList.contains('show')) {
document.querySelector(`${searchTogglerSelector} span`).innerText = 'Kereső bezárása';
document.querySelector(`${searchTogglerSelector} .searchIcon`).style.display = 'none';
document.querySelector(`${searchTogglerSelector} .closeIcon`).style.display = 'block';
document.querySelector(`${inputContainerSelector} input`).focus();
} else {
document.querySelector(`${searchTogglerSelector} span`).innerText = 'Keresés';
document.querySelector(`${searchTogglerSelector} .searchIcon`).style.display = 'block';
document.querySelector(`${searchTogglerSelector} .closeIcon`).style.display = 'none';
}
}
document.querySelector('#openSearchBar')?.addEventListener('click', () => {
document.querySelector('#searchContainer')?.classList.add('show');
document.querySelector(`.inputContainer input`).focus();
});
document.querySelector('.closeSearchField')?.addEventListener('click', () => {
toggleMobileSearchBar('#mobileSearchToggler', '.inputContainer');
});
document.querySelector('#mobileSearchToggler')?.addEventListener('click', () => {
handleMenuClose();
toggleMobileSearchBar('#mobileSearchToggler', '.inputContainer');
});
document.querySelector('.mobileSearchCloseIcon').addEventListener('click', () => {
toggleMobileSearchBar('#mobileSearchToggler');
});
document.addEventListener('scroll', handleStickyHeader);
document.querySelector('#hamburgerCloseButton')?.addEventListener('click', () => {
handleMenuClose();
});
document.querySelectorAll('.shareAPIButton')?.forEach(button => {
button.addEventListener('click', () => {
navigator.share({
title: button?.dataset?.shareTitle,
text: button?.dataset?.shareText,
url: button?.dataset?.shareUrl
});
});
});
document.querySelectorAll('[link-url]')?.forEach(element => {
element.addEventListener('click', () => window.open(element?.attributes[0]?.value, '_blank').focus());
});
$('.applyAdult').click(() => {
$('#adultAlert').fadeOut('fast');
sessionStorage.adultAlert = 1;
});
document.querySelectorAll('#detailPage .image .dropdown-menu a')?.forEach(link => {
link.addEventListener('click', () => {
window.open(link.href, '_blank');
});
});
const newsletterElement = document.querySelector('form.newsletterSubscription');
if (newsletterElement) {
document.querySelectorAll('[data-hidden-input]')?.forEach((input, hiddenIdx) => {
if (!input) {
return;
}
const hiddenInput = document.querySelector(
`[name="${input.dataset.hiddenInput}"]`
);
input.addEventListener('change', e => {
if (e.target.checked) {
hiddenInput.value = 'subscribed';
} else {
hiddenInput.value = 'not subscribed';
}
});
});
newsletterElement.addEventListener('submit', e => {
e.preventDefault();
const formData = new FormData(e.target);
const filteredFormData = {};
for (const [name, value] of formData.entries()) {
if (value !== 'not subscribed') {
filteredFormData[name] = value;
}
}
const purifiedFormData = Object.entries(filteredFormData).reduce((prev, [key, value]) => {
if (!key.includes('_frequency')) {
prev[key] = value;
return prev;
}
if (!filteredFormData.hasOwnProperty(key.replace('frequency', 'subscription'))) {
return prev;
}
prev[key] = value;
return prev;
}, {});
const formProps = Object.fromEntries(formData);
if (formProps?.interest !== 'on') {
document.querySelectorAll('input[name=\'interest\']').forEach((e, index) => {
setTimeout(() => e.classList.add('shakeAnimation'), index * 6);
setTimeout(() => e.classList.remove('shakeAnimation'), 2000);
});
return;
}
const sailthruForm = new FormData();
for (const [name, value] of Object.entries(purifiedFormData)) {
if (name.startsWith('vars') || name === 'name' || name === 'email') {
sailthruForm.append(name, value);
}
}
const edm = formData.get('promotions_subscription');
if (edm.valueOf() === 'subscribed') {
sailthruForm.append('vars[promotions_subscription]', edm.valueOf());
}
sailthruForm.append('vars[nl_subscription]', 'subscribed');
const ga4EventList = [];
for (const [key, value] of sailthruForm.entries()) {
if (value === 'subscribed') {
const newsletterName = key.replace(/^vars\[nl_(.*?)_subscription\]$/, '$1');
if (!newsletterName.includes('vars')) {
ga4EventList.push(newsletterName + '_' + sailthruForm.get('vars[nl_' + newsletterName + '_frequency]'));
}
}
}
sendForm(sailthruForm, ga4EventList);
});
const subscribeCheckbox = document.querySelector('form.newsletterSubscription #subscribe');
if (subscribeCheckbox) {
subscribeCheckbox.addEventListener('change', e => {
if (e.target.checked) {
document
.querySelector('.newsletterSubscription .interests')
.classList.add('open');
} else {
document
.querySelector('.newsletterSubscription .interests')
.classList.remove('open');
}
});
subscribeCheckbox.removeAttribute('disabled');
}
}
async function sendForm(formData, ga4EventList) {
const submitButton = document.querySelector(
'form.newsletterSubscription button[type=\'submit\']'
);
const prevButtonBackgroundColor = submitButton.style.background;
const prevButtonBorderColor = submitButton.style.borderColor;
submitButton.innerHTML = 'Küldés';
submitButton.style.background = '#1e78aa';
submitButton.style.borderColor = '#1e78aa';
let formSuccess = false;
try {
await fetch('https://www.kiskegyed.hu/sailthru', {
method: 'POST',
body: formData
}).then(() => {
submitButton.style.background = '#8fcf8f';
submitButton.style.borderColor = '#8fcf8f';
submitButton.innerHTML = 'Feliratkozva';
const customEvent = new Event('successfulSailthruNewsletterSubscription');
setTimeout(() => {
document
.querySelector('.newsletterSubscription .interests')
.classList.remove('open');
document.querySelector('.newsletterSubscription').reset();
submitButton.style.background = prevButtonBackgroundColor;
submitButton.style.borderColor = prevButtonBorderColor;
submitButton.innerHTML = 'Feliratkozás';
document.dispatchEvent(customEvent);
}, 2000);
formSuccess = true;
});
} catch (e) {
formSuccess = false;
console.error(e);
submitButton.style.background = '#ee5b5b';
submitButton.style.borderColor = '#ee5b5b';
submitButton.innerHTML = 'Sikertelen';
}
window.dataLayer = window.dataLayer || [];
ga4EventList
.map(newsletterName => ({
event: 'subscribe_newsletter',
method: 'newsletter subscription form',
form_state: formSuccess ? 'success' : 'error',
newsletter_list: newsletterName
}))
.forEach(ga4Event => window.dataLayer.push(ga4Event));
}
});
const checkSessionCookiesExists = () => {
const sessionId = getCookie('SessionId');
const isLoggedIn = getCookie('Loggedin');
const loginButton = document.querySelector('#loginButton');
const profileButtonGroup = document.querySelector('#profileButtonGroup');
if (sessionId && isLoggedIn === 'true') {
loginButton.classList.remove('active');
profileButtonGroup.classList.add('active');
} else {
loginButton.classList.add('active');
profileButtonGroup.classList.remove('active');
}
};
function sailThruCookieExchange() {
const sessionId = getCookie('SessionId');
const isLoggedIn = getCookie('Loggedin');
const sailThruContent = getCookie('sailthru_content');
const sailThruHid = getCookie('sailthru_hid');
if (sessionId && isLoggedIn && sailThruContent && !sailThruHid) {
fetch('https://www.kiskegyed.hu/sailthru/cookie-exchange');
}
}
window.addEventListener('load', checkSessionCookiesExists);
window.addEventListener('load', sailThruCookieExchange);
window.addEventListener('load', addDropdownListeners);
function addDropdownListeners() {
const dropdownActivators = document.querySelectorAll('.dropdownLabel, .dropdown');
dropdownActivators.forEach(el => {
el.addEventListener('mouseover', () => {
el.parentElement.classList.add('current');
el.addEventListener('mouseout', () => {
el.parentElement.classList.remove('current');
});
});
});
}
function prevHoroscopePagination() {
if ($('.horoscopeText.active').prev('.horoscopeText').length !== 0) {
$('.nextHoroscopePagination').css('display', 'block');
$('.horoscopeText.active').removeClass('active').prev().addClass('active');
$('.dateHoroscopePagination.active').removeClass('active').prev().addClass('active');
if ($('.horoscopeText.active').prev('.horoscopeText').length === 0) {
$('.prevHoroscopePagination').css('display', 'none');
}
}
}
function nextHoroscopePagination() {
if ($('.horoscopeText.active').next('.horoscopeText').length !== 0) {
$('.prevHoroscopePagination').css('display', 'block');
$('.horoscopeText.active').removeClass('active').next().addClass('active');
$('.dateHoroscopePagination.active').removeClass('active').next().addClass('active');
if ($('.horoscopeText.active').next('.horoscopeText').length === 0) {
$('.nextHoroscopePagination').css('display', 'none');
}
}
}