PageSourceSearch

https://admtmo.ru/bitrix/templates/gos_modern_blue_s1/js/special_version.js?15665500796688

js admtmo.ru collected 2026-09-29 13:10:28 UTC 6,688 bytes, 122 lines download raw bytes

1(function () {
2
3	$(document)
4		.on('click', '.special-settings a', function (event) {
5			event.preventDefault();
6			setSpecialVersion($(this).data());
7		})
8		.on('click', '[data-aa-off]', function (event) {
9			event.preventDefault();
10			unsetSpecialVersion();
11		})
12		.on('click', '[data-aa-on]', function (event) {
13			event.preventDefault();
14			setDefaultsSpecialVersion();
15		});
16
17	// Запускаем функцию спецверсии
18	jQuery(document).ready(function($) {
19		setSpecialVersion();
20	});
21
22	/**
23	 * Установка параметров отображения спецверсии
24	 * @param {object} data Объект с данными для формирования параметров
25	 */
26	function setSpecialVersion(data) {
27		var
28			// получаем и сохраняем текущее значение нужной куки;
29			$html = $('html'),
30			// Получаем текущее значение атрибута class и html.
31			htmlCurrentClass = $html.prop('class'),
32			// Удаляем старые классы у html, оставляем только чужие классы, это важно, 
33			// т.к. классы добавляем не только мы.
34			clearSpecialClasses = htmlCurrentClass.replace(/special-([a-z,A-Z,-]+)/g, ''),
35			// Признак включенной спецверсии, он же специальный класс, который добавится к html
36			$aaVersion = {
37				'aaVersion': 'on'
38			},
39			// Переменная под новые классы.
40			htmlClass = '';
41
42		// Если переданы данные
43		if (data) {
44			// Объединяем существующие куки с новыми данными из ссылки.
45			var $newCookies = $.extend(Cookies.getJSON('aaSet'), data, $aaVersion);
46			// Записываем новую куку
47			Cookies.set('aaSet', $newCookies, {
48				expires: 365,
49				path: '/',
50				secure: false
51			});
52		}
53
54		// Удаляем ненужные классы a-current.
55		$('.a-current').removeClass('a-current');
56		// Если есть кука — работаем.
57		if (Cookies.getJSON('aaSet')) {
58			// Пробегаем по массыву из нашей куки
59			$.each(Cookies.getJSON('aaSet'), function (key, val) {
60				// Формируем строку с классами, добавляемыми к html
61				htmlClass += ' special-' + key + '-' + val;
62				if (key) {
63					var selector = ('.' + key + '-' + val + '');
64					// Добавляем нужные классы a-current в панель.
65					$(selector).addClass('a-current');
66				};
67			});
68
69			$html
70			// Заменяем текущий атрибут на очищенный от лишних классов.
71				.prop('class', clearSpecialClasses)
72				// Добавляем вновь сформированные классы.
73				.addClass(htmlClass);
74
75			// Пересчитаем высоту блоков (для корректности отображения)
76			$.fn.matchHeight._update();
77		}
78
79
80		return false;
81	}
82
83	/**
84	 * Отключение специальной версии сайта.
85	 */
86	function unsetSpecialVersion() {
87		var
88			// Получаем значение класса тега html.
89			htmlCurrentClass = $('html').prop('class'),
90			// Очищаем от классов спецверсии
91			clearSpecialClasses = htmlCurrentClass.replace(/special-([a-z,A-Z,-]+)/g, '');
92		// Заменяем текущий атрибут на очищенный от лишних классов.
93		$('html').prop('class', clearSpecialClasses);
94		// Удаляем куки
95		Cookies.remove('aaSet', {
96			path: '/'
97		});
98	}
99
100	/**
101	 * Установка дефолтных значений для спецверсии.
102	 * @param {object} params Объект с данными для формирования параметров.
103	 */
104	function setDefaultsSpecialVersion(params) {
105		// Задаём значения по умолчанию
106		var $specialDefaults = {
107			'aaVersion': 'on',
108			'aaColor': 'black',
109			'aaFontsize': 'small',
110			'aaFont': 'tahoma',
111			'aaKerning': 'normal',
112			'aaImage': 'on'
113		};
114
115		// Объединяем значения по умолчанию с переданными данными.
116		var $setDefaulParams = $.extend($specialDefaults, params);
117
118		// Вызываем setSpecialVersion, где и происходит весь процесс.
119		setSpecialVersion($setDefaulParams);
120	}
121
122})();

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.