PageSourceSearch

https://inggu.ru/bitrix/templates/inggu/js/special_version.js?16932282234451

js inggu.ru collected 2026-09-24 23:39:58 UTC 4,451 bytes, 123 lines download raw bytes

1(function () {
2	'use strict';
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	jQuery(document).ready(function ($) {
18		setSpecialVersion();
19	});
20
21	/**
22	 * Установка параметров отображения спецверсии
23	 * @param {object} data Объект с данными для формирования параметров
24	 */
25	function setSpecialVersion(data) {
26		var
27		// получаем текущее значение переменной $.cookie.json;
28			cookieJson = $.cookie.json,
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 = {'aaVersion':'on'},
37			// Переменная под новые классы.
38			htmlClass = '';
39
40		// Работаем с куками в json-формате	
41		$.cookie.json = true;
42
43		// Если переданы данные
44		if (data) {
45			// Объединяем существующие куки с новыми данными из ссылки.
46			var $newCookies = $.extend($.cookie('aaSet'), data, $aaVersion);
47
48			// Записываем новую куку
49			$.cookie('aaSet', $newCookies, {
50				expires: 365,
51				path: '/',
52				secure: false
53			});
54		}
55
56		// Удаляем ненужные классы a-current.
57		$('.a-current').removeClass('a-current');
58
59		// Если есть кука — работаем.
60		if ($.cookie('aaSet')) {		
61			// Пробегаем по массыву из нашей куки
62			$.each($.cookie('aaSet'), function (key, val) {
63				// Формируем строку с добавляемыми классам (использовать тут .addClass — зло!)
64				htmlClass += ' special-' + key + '-' + val;
65				// Добавляем нужные классы a-current.
66				$('.' + key + '-' + val).addClass('a-current');
67
68			});
69			
70			$html
71			// Заменяем текущий атрибут на очищенный от лишних классов.
72				.prop('class', clearSpecialClasses)
73				// Добавляем вновь сформированные классы.
74				.addClass(htmlClass);
75
76			// Возвращаем формат куков как было до нас.
77			$.cookie.json = cookieJson;
78		}
79
80
81		return false;
82	}
83
84	/**
85	 * Отключение специальной версии сайта.
86	 */
87	function unsetSpecialVersion() {
88		var 
89			// Получаем значение класса тега html.
90			htmlCurrentClass = $('html').prop('class'),
91			// Очищаем от классов спецверсии
92			clearSpecialClasses = htmlCurrentClass.replace(/special-([a-z,A-Z,-]+)/g, '');
93		// Заменяем текущий атрибут на очищенный от лишних классов.
94		$('html').prop('class', clearSpecialClasses);
95		// Удаляем куки
96		$.removeCookie('aaSet', { path: '/' });
97	}
98
99	/**
100	 * Установка дефолтных значений для спецверсии.
101	 * @param {object} params Объект с данными для формирования параметров.
102	 */
103	function setDefaultsSpecialVersion(params) {
104		// Задаём значения по умолчанию
105		var $specialDefaults = {
106			'aaVersion':'on',
107			'aaColor': 'black',
108			'aaFontsize': 'small',
109			'aaFont': 'times',
110			'aaKerning': 'normal',
111			'aaImage': 'on'
112		};
113
114		// Объединяем значения по умолчанию с переданными данными.
115		var $setDefaulParams = $.extend($specialDefaults, params);
116
117		// Вызываем setSpecialVersion, где и происходит весь процесс.
118		setSpecialVersion($setDefaulParams);
119	}
120
121})();
122
123

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.