(function(){'use strict'; var hover=window.matchMedia('(hover:hover) and (pointer:fine)'); function init(){ document.querySelectorAll('[data-section-navigation]').forEach(function(nav){ var groups=Array.from(nav.querySelectorAll(':scope > .fi-section-group')),active=null,closeTimer=null; function setActive(drop,item){drop.classList.toggle('has-active',!!item);drop.querySelectorAll('a').forEach(function(a){a.classList.toggle('is-active',a===item);});} function close(){clearTimeout(closeTimer);groups.forEach(function(g){g.classList.remove('is-open');g.querySelector('button').setAttribute('aria-expanded','false');g.querySelector('.fi-section-dropdown').hidden=true;});nav.classList.remove('has-open');active=null;} function open(group){clearTimeout(closeTimer);if(active===group)return;close();active=group;group.classList.add('is-open');group.querySelector('button').setAttribute('aria-expanded','true');group.querySelector('.fi-section-dropdown').hidden=false;nav.classList.add('has-open');} groups.forEach(function(group){ var trigger=group.querySelector('button'),drop=group.querySelector('.fi-section-dropdown'); group.addEventListener('pointerenter',function(e){if(hover.matches&&e.pointerType!=='touch')open(group);}); group.addEventListener('pointerleave',function(e){if(hover.matches&&e.pointerType!=='touch')closeTimer=setTimeout(close,150);}); trigger.addEventListener('click',function(e){if(active===group&&!hover.matches)close();else open(group);}); group.querySelector('.fi-section-trigger').addEventListener('keydown',function(e){if(e.key==='ArrowDown'){e.preventDefault();open(group);drop.querySelector('a').focus();}}); drop.addEventListener('pointerover',function(e){var item=e.target.closest('a');if(item)setActive(drop,item);}); drop.addEventListener('pointerleave',function(){setActive(drop,null);}); drop.addEventListener('focusin',function(e){setActive(drop,e.target.closest('a'));}); drop.addEventListener('focusout',function(e){if(!drop.contains(e.relatedTarget))setActive(drop,null);}); drop.addEventListener('pointerdown',function(e){var item=e.target.closest('a');if(item)setActive(drop,item);}); drop.addEventListener('keydown',function(e){var links=Array.from(drop.querySelectorAll('a')),i=links.indexOf(document.activeElement);if(e.key==='ArrowDown'||e.key==='ArrowUp'){e.preventDefault();links[(i+(e.key==='ArrowDown'?1:links.length-1))%links.length].focus();}}); }); document.addEventListener('keydown',function(e){if(e.key==='Escape'&&active){var trigger=active.querySelector('.fi-section-trigger');close();trigger.focus();}}); nav.addEventListener('focusout',function(e){if(!nav.contains(e.relatedTarget))close();}); document.addEventListener('click',function(e){if(!nav.contains(e.target))close();}); }); } // Only single-sentence headings: preserve ellipses, abbreviations and multi-sentence copy. var headingSelector='h1,h2,h3,h4,h5,h6,[role=heading],legend,summary,caption,.main_caption,.main-caption,.section-heading,.section-title,.fi-organizer-heading,.card-title,.panel-title,.modal-title,.home-eyebrow,.home-section-label,.home-feature-title,.z-title'; var sentenceSegmenter=window.Intl&&Intl.Segmenter?new Intl.Segmenter(document.documentElement.lang||'ru',{granularity:'sentence'}):null; function tidyHeading(heading){ if(heading.closest('textarea,pre,code,[contenteditable]:not([contenteditable="false"])'))return; var content=heading.textContent.trim(); if(!content.endsWith('.')||/[.\u2026]{2,}$/.test(content))return; // Numbered titles, domain names and decimals are not extra sentences. var sentence=content.replace(/^\s*\d+[.)]\s+/,''); if(sentenceSegmenter){ if(Array.from(sentenceSegmenter.segment(sentence)).filter(function(s){return s.segment.trim();}).length!==1)return; }else{ var masked=sentence.replace(/\b\d+\.\d+\b/g,'number').replace(/([\p{L}\d-]+\.)+[\p{L}]{2,}/gu,'domain'); if(/[.!?]\s+\S/.test(masked.slice(0,-1)))return; } if(/(?:т\.\s*[дп]|и\s+др|etc|e\.g|i\.e)\.$/iu.test(content))return; var walker=document.createTreeWalker(heading,NodeFilter.SHOW_TEXT),nodes=[],node; while((node=walker.nextNode()))nodes.push(node); for(var i=nodes.length-1;i>=0;i--){if(nodes[i].nodeValue.trim()){nodes[i].nodeValue=nodes[i].nodeValue.replace(/\.(\s*)$/,'$1');break;}} } function headings(root){if(root.nodeType!==1)return;if(root.matches(headingSelector))tidyHeading(root);root.querySelectorAll(headingSelector).forEach(tidyHeading);} function sizeGreetings(){ document.querySelectorAll('.fi-shell-greeting,.home-header-greeting').forEach(function(greeting){ var row=greeting.closest('.fi-shell-top,.home-header-inner');if(!row)return; function measure(){var height=Math.ceil(greeting.getBoundingClientRect().height);if(height>0)row.style.setProperty('--fi-greeting-height',height+'px');} measure();if(window.ResizeObserver)new ResizeObserver(measure).observe(greeting); }); } function ready(){init();sizeGreetings();headings(document.body);new MutationObserver(function(changes){var roots=new Set();changes.forEach(function(c){var parent=c.target.nodeType===1?c.target:c.target.parentElement;if(parent){var h=parent.closest(headingSelector);if(h)roots.add(h);}c.addedNodes.forEach(function(n){if(n.nodeType===1)roots.add(n);});});roots.forEach(headings);}).observe(document.body,{childList:true,subtree:true,characterData:true});} if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',ready);else ready(); // Visitor initialization is jQuery-based and runs after the common header scripts. window.addEventListener('load',function(){var section=new URLSearchParams(location.search).get('section');if(location.pathname.indexOf('/visitor/')===0&&['schedule','search','favorites','information'].indexOf(section)!==-1){var target=document.querySelector('[data-visitor-tab="'+section+'"]');if(target)target.click();}}); })();