PageSourceSearch

https://aomeduslugi.ru/local/components/coweb/visually_impaired/templates/.default/script.js?17570687529890

js aomeduslugi.ru collected 2026-09-24 09:38:50 UTC 9,890 bytes, 263 lines download raw bytes

1window.addEventListener("DOMContentLoaded", function() {
2	
3	let altlabel = document.querySelector('[href="#access"]');
4	if (altlabel) altlabel.classList.add("access");
5	const accessibility_toggle = document.querySelector(".accessibility-toggle");
6	if(custom_button != "Y" && document.querySelector(".access")) {
7		accessibility_toggle.style.display = "none";
8	}
9	else {
10		accessibility_toggle.style.setProperty('visibility', 'visible', 'important');
11		accessibility_toggle.style.setProperty('opacity', '1', 'important');
12	}
13
14	const toggles = document.querySelectorAll(".accessibility-toggle, .access");
15	toggles.forEach(button => {
16		button.addEventListener("click", function(e) {
17			e.stopPropagation();
18			const isExpanded = this.getAttribute("aria-expanded") === "true";
19			this.setAttribute("aria-expanded", !isExpanded);
20			document.querySelector(".accessibility-panel").classList.toggle("open");
21			return false;
22		});
23	});
24
25	document.addEventListener("click", function(event) {
26		const panel = document.querySelector(".accessibility-panel");
27		if (
28			panel.classList.contains("open") &&
29			!panel.contains(event.target) &&
30			!Array.from(toggles).some(btn => btn.contains(event.target))
31		) {
32			panel.classList.remove("open");
33			toggles.forEach(btn => btn.setAttribute("aria-expanded", "false"));
34		}
35		return false;
36	});
37
38	let currentFontSizePercent = 100;
39
40	const colorSchemeButtons = document.querySelectorAll(".color-scheme-btn");
41	colorSchemeButtons.forEach(button => {
42		button.addEventListener("click", function() {
43			if (this.classList.contains("active")) {
44				this.classList.remove("active");
45				const schemeId = this.id;
46				document.body.classList.remove("accessibility-" + schemeId);
47				localStorage.removeItem("accessibilityColorScheme");
48				return;
49			}
50			
51			document.body.classList.remove(
52				"accessibility-black-on-white",
53				"accessibility-white-on-black",
54				"accessibility-brown-on-beige",
55				"accessibility-dark-blue-on-blue"
56			);
57			
58			colorSchemeButtons.forEach(btn => btn.classList.remove("active"));
59			
60			const schemeId = this.id;
61			document.body.classList.add("accessibility-" + schemeId);
62			this.classList.add("active");
63			localStorage.setItem("accessibilityColorScheme", schemeId);
64		});
65	});
66
67	document.getElementById("decrease-font").addEventListener("click", function() {
68		currentFontSizePercent = Math.max(currentFontSizePercent - 10, 70);
69		updatePageFontSize(currentFontSizePercent, main_selector);
70	});
71
72	document.getElementById("normal-font").addEventListener("click", function() {
73		currentFontSizePercent = 100;
74		updatePageFontSize(currentFontSizePercent, main_selector);
75	});
76
77	document.getElementById("increase-font").addEventListener("click", function() {
78		currentFontSizePercent = Math.min(currentFontSizePercent + 10, 200);
79		updatePageFontSize(currentFontSizePercent, main_selector);
80	});
81
82	document.getElementById("large-cursor").addEventListener("click", function() {
83		const isActive = this.getAttribute("aria-pressed") === "true";
84		this.setAttribute("aria-pressed", !isActive);
85		this.classList.toggle("active");
86		document.body.classList.toggle("large-cursor");
87		localStorage.setItem("accessibilityLargeCursor", !isActive);
88		if(isActive) {
89			document.querySelector('.filter-icon .second-filter-icon').style.display = 'none';
90		}
91		else {
92			document.querySelector('.filter-icon .second-filter-icon').style.display = 'block';
93		}
94	});
95
96	document.getElementById("hide-images").addEventListener("click", function() {
97		document.body.classList.add("accessibility-hide-images");
98		document.getElementById("show-images").classList.remove("active");
99		this.classList.add("active");
100		localStorage.setItem("accessibilityHideImages", "true");
101		if(custom_button == "Y") {
102			accessibility_toggle.style.setProperty('visibility', 'visible', 'important');
103			accessibility_toggle.style.setProperty('opacity', '1', 'important');
104		}
105	});
106
107	document.getElementById("show-images").addEventListener("click", function() {
108		document.body.classList.remove("accessibility-hide-images");
109		document.getElementById("hide-images").classList.remove("active");
110		this.classList.add("active");
111		localStorage.setItem("accessibilityHideImages", "false");
112		if(custom_button == "Y") {
113			accessibility_toggle.style.setProperty('visibility', 'visible', 'important');
114			accessibility_toggle.style.setProperty('opacity', '1', 'important');
115		}
116	});
117
118	let speechSynthesis = window.speechSynthesis;
119	let speechUtterance = null;
120	let currentHighlightedElement = null;
121
122	document.getElementById("read-aloud").addEventListener("click", function() {
123		if (speechSynthesis.speaking) {
124			speechSynthesis.cancel();
125		}
126		if (currentHighlightedElement) {
127			currentHighlightedElement.classList.remove("accessibility-highlight-text");
128			currentHighlightedElement = null;
129		}
130		let textContent = '';
131		if(main_selector === '') {
132			textContent = document.body.innerText;
133		}
134		else {
135			textContent = document.querySelector(main_selector).innerText;
136		}
137		if (!textContent || textContent.trim() === "") {
138			alert("Не найден текст для чтения");
139			return;
140		}
141		speechUtterance = new SpeechSynthesisUtterance(textContent);
142		let voices = speechSynthesis.getVoices();
143		let russianVoice = voices.find(voice => voice.lang.includes('ru'));
144		if (russianVoice) {
145			speechUtterance.voice = russianVoice;
146		}
147		speechUtterance.rate = 1;
148		speechUtterance.pitch = 1;
149		speechUtterance.volume = 1;
150		speechUtterance.onend = function() {
151			document.getElementById("stop-reading").classList.remove("active");
152			document.getElementById("read-aloud").classList.remove("active");
153		};
154		speechSynthesis.speak(speechUtterance);
155		document.getElementById("read-aloud").classList.add("active");
156		document.getElementById("stop-reading").classList.remove("active");
157	});
158
159	document.getElementById("stop-reading").addEventListener("click", function() {
160		if (speechSynthesis.speaking) {
161			speechSynthesis.cancel();
162			if (currentHighlightedElement) {
163				currentHighlightedElement.classList.remove("accessibility-highlight-text");
164				currentHighlightedElement = null;
165			}
166			document.getElementById("read-aloud").classList.remove("active");
167			this.classList.add("active");
168		}
169	});
170
171	document.getElementById("reset-accessibility").addEventListener("click", function() {
172		document.body.classList.remove(
173			"accessibility-black-on-white",
174			"accessibility-white-on-black",
175			"accessibility-brown-on-beige",
176			"accessibility-dark-blue-on-blue",
177			"accessibility-grayscale",
178			"accessibility-invert",
179			"large-cursor",
180			"accessibility-hide-images"
181		);
182		document.querySelector('.filter-icon .second-filter-icon').style.display = 'none';
183		document.querySelectorAll('[data-elem-type="text"], .t-text, [field="text"], [field="title"], [field="subtitle"], [field="descr"]').forEach(el => {
184			el.style.transform = "";
185		});
186		Array.from(document.body.children).forEach(el => {
187			if (!el.classList.contains("accessibility-panel")) {
188				el.style.transformOrigin = "";
189			}
190		});
191		document.querySelectorAll(".color-scheme-btn, .filter-btn, .font-size-btn").forEach(btn => {
192			btn.classList.remove("active");
193			if (btn.hasAttribute("aria-pressed")) {
194				btn.setAttribute("aria-pressed", "false");
195			}
196		});
197		currentFontSizePercent = 100;
198		if (speechSynthesis.speaking) {
199			speechSynthesis.cancel();
200			if (currentHighlightedElement) {
201				currentHighlightedElement.classList.remove("accessibility-highlight-text");
202				currentHighlightedElement = null;
203			}
204		}
205		localStorage.removeItem("accessibilityColorScheme");
206		localStorage.removeItem("accessibilityFontSizePercent");
207		localStorage.removeItem("accessibilityGrayscale");
208		localStorage.removeItem("accessibilityInvert");
209		localStorage.removeItem("accessibilityLargeCursor");
210		localStorage.removeItem("accessibilityHideImages");
211	});
212
213	const savedFontSize = localStorage.getItem("accessibilityFontSizePercent");
214	if (savedFontSize) {
215		currentFontSizePercent = parseInt(savedFontSize);
216	}
217	loadSettings();
218});
219
220function loadSettings() {
221	const colorScheme = localStorage.getItem("accessibilityColorScheme");
222	if (colorScheme) {
223		document.body.classList.add("accessibility-" + colorScheme);
224		document.getElementById(colorScheme).classList.add("active");
225	}
226
227	const fontSizePercent = localStorage.getItem("accessibilityFontSizePercent") || "100";
228	if (fontSizePercent !== "100") {
229		updatePageFontSize(parseInt(fontSizePercent), main_selector);
230	}
231
232	if (localStorage.getItem("accessibilityGrayscale") === "true") {
233		document.body.classList.add("accessibility-grayscale");
234		document.getElementById("grayscale").setAttribute("aria-pressed", "true");
235		document.getElementById("grayscale").classList.add("active");
236	}
237
238	if (localStorage.getItem("accessibilityInvert") === "true") {
239		document.body.classList.add("accessibility-invert");
240		document.getElementById("invert-colors").setAttribute("aria-pressed", "true");
241		document.getElementById("invert-colors").classList.add("active");
242	}
243
244	if (localStorage.getItem("accessibilityLargeCursor") === "true") {
245		document.querySelector('.filter-icon .second-filter-icon').style.display = 'block';
246		document.body.classList.add("large-cursor");
247		document.getElementById("large-cursor").setAttribute("aria-pressed", "true");
248		document.getElementById("large-cursor").classList.add("active");
249	}
250	
251	if (localStorage.getItem("accessibilityHideImages") === "true") {
252		document.body.classList.add("accessibility-hide-images");
253		document.getElementById("hide-images").classList.add("active");
254	} else {
255		document.getElementById("show-images").classList.add("active");
256	}
257}
258
259function updatePageFontSize(percentSize, selector, overflow='auto') {
260	document.querySelector(selector).style.zoom = `${percentSize}%`;
261	document.body.style.overflow = overflow;
262	localStorage.setItem("accessibilityFontSizePercent", percentSize);
263}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.