(function (){
'use strict';
var STORAGE_KEY='sf_consent_v1';
var COOKIE_NAME='sf_consent';
var COOKIE_DAYS=180;
function cfg(){
return window.susaninCookieConfig||{};}
function consentVersion(){
return cfg().version||'1.1';
}
function privacyUrl(){
return cfg().privacyUrl||'/confident_p/';
}
function personalUrl(){
return cfg().personalUrl||'/personal/';
}
function readConsent(){
try {
var raw=window.localStorage.getItem(STORAGE_KEY);
return raw ? JSON.parse(raw):null;
} catch (e){
return null;
}}
function consentIsCurrent(consent){
if(!consent) return false;
return (consent.version||'')===consentVersion();
}
function uuid(){
if(window.crypto&&typeof window.crypto.randomUUID==='function'){
return window.crypto.randomUUID();
}
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c){
var r=(Math.random() * 16) | 0;
var v=c==='x' ? r:(r & 0x3) | 0x8;
return v.toString(16);
});
}
function getYmClientId(){
try {
var m=document.cookie.match(/(?:^|;\s*)_ym_uid=([^;]*)/);
if(m&&m[1]) return decodeURIComponent(m[1]);
} catch (e){  }
return '';
}
function logConsent(action, categories){
var c=cfg();
if(!c.ajaxUrl||!c.nonce) return;
var fd=new FormData();
fd.append('action', c.action||'susanin_cookie_consent');
fd.append('nonce', c.nonce);
fd.append('consent_action', action||'accept');
fd.append('consent_id', uuid());
fd.append('page_url', window.location.href);
fd.append('page_title', document.title||'');
fd.append('referrer', document.referrer||'');
fd.append('language', navigator.language||'');
fd.append('ym_client_id', getYmClientId());
fd.append('categories', JSON.stringify({
necessary: true,
analytics: !!categories.analytics,
marketing: !!categories.marketing
}));
function postOnce(){
return fetch(c.ajaxUrl, {
method: 'POST',
body: fd,
credentials: 'same-origin',
keepalive: true
}).then(function (res){
if(!res.ok) throw new Error('HTTP ' + res.status);
return res.json().catch(function (){ return null; });
}).then(function (json){
if(json&&json.success===false) throw new Error('consent_log_failed');
return json;
});
}
try {
postOnce().catch(function (){
return postOnce().catch(function (){});
});
} catch (err){  }}
function saveConsent(action){
var consent={
necessary: true,
analytics: true,
marketing: true,
ts: new Date().toISOString(),
version: consentVersion()
};
try {
window.localStorage.setItem(STORAGE_KEY, JSON.stringify(consent));
} catch (e){  }
document.cookie=COOKIE_NAME + '=necessary.analytics.marketing'
+ ';path=/;max-age=' + (COOKIE_DAYS * 86400) + ';SameSite=Lax';
window.sfConsent=consent;
try {
document.dispatchEvent(new CustomEvent('sfConsentChanged', { detail: consent }));
} catch (e){  }
logConsent(action||'accept', consent);
}
function el(tag, className, html){
var node=document.createElement(tag);
if(className) node.className=className;
if(html) node.innerHTML=html;
return node;
}
function buildBanner(){
var root=el('div', 'sfcc');
root.setAttribute('role', 'dialog');
root.setAttribute('aria-live', 'polite');
root.setAttribute('aria-label', 'Согласие на использование cookie');
root.appendChild(el('p', 'sfcc__title', 'Мы используем файлы cookie'));
root.appendChild(el('p', 'sfcc__text',
'Файлы cookie запоминают ваши действия и предпочтения для более удобной работы с сайтом. ' +
'Продолжая пользоваться сайтом, вы соглашаетесь с ' +
'<a href="' + privacyUrl() + '" target="_blank" rel="noopener">политикой конфиденциальности</a> и ' +
'<a href="' + personalUrl() + '" target="_blank" rel="noopener">согласием на обработку персональных данных</a>.'));
var actions=el('div', 'sfcc__actions');
var btnAccept=el('button', 'sfcc__btn sfcc__btn--accept', 'Согласен');
btnAccept.type='button';
actions.appendChild(btnAccept);
root.appendChild(actions);
btnAccept.addEventListener('click', function (){
saveConsent('accept');
root.classList.remove('is-visible');
});
root.show=function (){
root.classList.add('is-visible');
};
return root;
}
function init(){
var banner=buildBanner();
document.body.appendChild(banner);
var saved=readConsent();
window.sfConsent=consentIsCurrent(saved) ? saved:null;
window.sfCookieSettings=function (){  };
if(!window.sfConsent){
banner.show();
}}
if(document.readyState==='loading'){
document.addEventListener('DOMContentLoaded', init);
}else{
init();
}})();