<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.deadspace14.net/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%3APredestinato%2Fcommon.js</id>
	<title>Участник:Predestinato/common.js - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.deadspace14.net/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%3APredestinato%2Fcommon.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.deadspace14.net/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Predestinato/common.js&amp;action=history"/>
	<updated>2026-04-30T16:46:46Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.deadspace14.net/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Predestinato/common.js&amp;diff=26488&amp;oldid=prev</id>
		<title>Predestinato: Новая страница: «(function () {   function getTargetAnchorFromHref(href) {     if (!href || href.charAt(0) !== &#039;#&#039;) return null;     var id = href.slice(1);     if (!/^a[0-9x]+$/i.test(id)) return null;     return document.getElementById(id);   }    function ensureSectionOpen(anchor) {     var section = anchor.closest(&#039;.law-section.mw-collapsible&#039;);     if (!section) return;     if (!section.classList.contains(&#039;mw-collapsed&#039;)) return;     var toggle = section.querySelector(&#039;...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.deadspace14.net/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Predestinato/common.js&amp;diff=26488&amp;oldid=prev"/>
		<updated>2026-04-07T11:20:23Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «(function () {   function getTargetAnchorFromHref(href) {     if (!href || href.charAt(0) !== &amp;#039;#&amp;#039;) return null;     var id = href.slice(1);     if (!/^a[0-9x]+$/i.test(id)) return null;     return document.getElementById(id);   }    function ensureSectionOpen(anchor) {     var section = anchor.closest(&amp;#039;.law-section.mw-collapsible&amp;#039;);     if (!section) return;     if (!section.classList.contains(&amp;#039;mw-collapsed&amp;#039;)) return;     var toggle = section.querySelector(&amp;#039;...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;(function () {&lt;br /&gt;
  function getTargetAnchorFromHref(href) {&lt;br /&gt;
    if (!href || href.charAt(0) !== &amp;#039;#&amp;#039;) return null;&lt;br /&gt;
    var id = href.slice(1);&lt;br /&gt;
    if (!/^a[0-9x]+$/i.test(id)) return null;&lt;br /&gt;
    return document.getElementById(id);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function ensureSectionOpen(anchor) {&lt;br /&gt;
    var section = anchor.closest(&amp;#039;.law-section.mw-collapsible&amp;#039;);&lt;br /&gt;
    if (!section) return;&lt;br /&gt;
    if (!section.classList.contains(&amp;#039;mw-collapsed&amp;#039;)) return;&lt;br /&gt;
    var toggle = section.querySelector(&amp;#039;.mw-collapsible-toggle a, .mw-collapsible-toggle&amp;#039;);&lt;br /&gt;
    if (toggle) toggle.click();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function headingForAnchor(anchor) {&lt;br /&gt;
    var node = anchor.nextElementSibling;&lt;br /&gt;
    while (node) {&lt;br /&gt;
      if (/^H[1-6]$/.test(node.tagName)) return node;&lt;br /&gt;
      node = node.nextElementSibling;&lt;br /&gt;
    }&lt;br /&gt;
    return null;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function clearHighlights() {&lt;br /&gt;
    document.querySelectorAll(&amp;#039;.law-target-active&amp;#039;).forEach(function (el) {&lt;br /&gt;
      el.classList.remove(&amp;#039;law-target-active&amp;#039;);&lt;br /&gt;
    });&lt;br /&gt;
    document.querySelectorAll(&amp;#039;.law-section-active&amp;#039;).forEach(function (el) {&lt;br /&gt;
      el.classList.remove(&amp;#039;law-section-active&amp;#039;);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function smoothFocus(anchor) {&lt;br /&gt;
    ensureSectionOpen(anchor);&lt;br /&gt;
    var heading = headingForAnchor(anchor);&lt;br /&gt;
    var section = anchor.closest(&amp;#039;.law-section&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
    clearHighlights();&lt;br /&gt;
    if (heading) {&lt;br /&gt;
      heading.classList.add(&amp;#039;law-target-heading&amp;#039;, &amp;#039;law-target-active&amp;#039;);&lt;br /&gt;
    }&lt;br /&gt;
    if (section) {&lt;br /&gt;
      section.classList.add(&amp;#039;law-section-active&amp;#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var targetNode = heading || anchor;&lt;br /&gt;
    targetNode.scrollIntoView({ behavior: &amp;#039;smooth&amp;#039;, block: &amp;#039;center&amp;#039; });&lt;br /&gt;
&lt;br /&gt;
    window.setTimeout(function () {&lt;br /&gt;
      if (heading) heading.classList.remove(&amp;#039;law-target-active&amp;#039;);&lt;br /&gt;
      if (section) section.classList.remove(&amp;#039;law-section-active&amp;#039;);&lt;br /&gt;
    }, 2600);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function handleHashNavigation() {&lt;br /&gt;
    var anchor = getTargetAnchorFromHref(window.location.hash);&lt;br /&gt;
    if (!anchor) return;&lt;br /&gt;
    smoothFocus(anchor);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function bindTableLinks() {&lt;br /&gt;
    document.addEventListener(&amp;#039;click&amp;#039;, function (event) {&lt;br /&gt;
      var link = event.target.closest(&amp;#039;a[href^=&amp;quot;#a&amp;quot;]&amp;#039;);&lt;br /&gt;
      if (!link) return;&lt;br /&gt;
      var anchor = getTargetAnchorFromHref(link.getAttribute(&amp;#039;href&amp;#039;));&lt;br /&gt;
      if (!anchor) return;&lt;br /&gt;
&lt;br /&gt;
      event.preventDefault();&lt;br /&gt;
      if (window.location.hash !== link.getAttribute(&amp;#039;href&amp;#039;)) {&lt;br /&gt;
        history.pushState(null, &amp;#039;&amp;#039;, link.getAttribute(&amp;#039;href&amp;#039;));&lt;br /&gt;
      }&lt;br /&gt;
      smoothFocus(anchor);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function init() {&lt;br /&gt;
    bindTableLinks();&lt;br /&gt;
    handleHashNavigation();&lt;br /&gt;
    window.addEventListener(&amp;#039;hashchange&amp;#039;, handleHashNavigation);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (document.readyState === &amp;#039;loading&amp;#039;) {&lt;br /&gt;
    document.addEventListener(&amp;#039;DOMContentLoaded&amp;#039;, init);&lt;br /&gt;
  } else {&lt;br /&gt;
    init();&lt;br /&gt;
  }&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Predestinato</name></author>
	</entry>
</feed>