PageSourceSearch

https://www.officeton.by/local/components/newsite/catalogProducts/init.js?169219308710689

js officeton.by collected 2026-10-07 15:55:09 UTC 10,689 bytes, 341 lines download raw bytes

1$("document").ready(function () {
2
3	$("body").on("onAjaxReload.TagsSliderInit", TagsInit).triggerHandler("onAjaxReload.TagsSliderInit");
4	$("body").on("onAjaxReload.BilletsScrollerInit", BilletsInit).triggerHandler("onAjaxReload.BilletsScrollerInit");
5	$("body").on("onAjaxReload.FilterReinit", FilterInit).triggerHandler("onAjaxReload.FilterReinit", [$(".js_catalog_filter")]);
6	$("body").on("onAjaxReload.initAccordion", initAccordion);
7	$("body").on("onAjaxReload.checkRocketBlock", checkRocketBlock);
8	$("body").on("onAjaxReload.jsLinkCheck", jsLinkCheck).triggerHandler("onAjaxReload.jsLinkCheck", [$(".js_catalog-list")]);
9
10	$("body").on("change", ".js_catalog_sort", function () {
11		if ($(".form-sort").is('.replaceFormBitixAjax')) {
12			$(".form-sort").triggerHandler("submit");
13		} else {
14			$(".form-sort").trigger("submit");
15		}
16	});
17
18	$('#prod-popup').on('hidden.bs.modal', function (e) {
19		$('.popup-body__video iframe, .video iframe').each(function () {
20			this.contentWindow.postMessage('{"event":"command","func":"stopVideo","args":""}', '*');
21		});
22	});
23
24	$('#prod-popup').on('shown.bs.modal', function (e) {
25		$('.popup-body__video iframe, .video iframe').each(function () {
26			this.contentWindow.postMessage('{"event":"command","func":"stopVideo","args":""}', '*');
27		});
28	});
29
30	$(".js-click-trigger").on("click", function () {
31
32		var trigger = $('#' + $(this).data("clicktrigger"))
33		var mobTrigger = $('#' + $(this).data("clicktrigger-mob"))
34
35
36		if ($(window).width() < 1024 && mobTrigger.length) {
37			mobTrigger.trigger("click");
38			$([document.documentElement, document.body]).animate({scrollTop: mobTrigger.offset().top - 100}, 300)
39		} else {
40			trigger.trigger("click");
41			$([document.documentElement, document.body]).animate({scrollTop: trigger.offset().top - 150}, 300)
42		}
43
44
45		return false;
46	})
47
48	$('.js_orderButton').on('click', function () {
49
50	});
51
52	$(".youtube").each(function () {
53		var id = this.id;
54		var parent = $(this).parent();
55		$(this).css('background-image', 'url(http://i.ytimg.com/vi/' + id + '/sddefault.jpg)');
56
57		$(this).on('click', function () {
58			parent.html('<iframe width="560" height="282" src="https://www.youtube.com/embed/' + id + '?autoplay=1" title="YouTube video player" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>');
59		});
60	});
61
62
63	if ($('.js-event-click').length) {
64		$('.js-event-click').each(function(){
65			var el = $(this);
66			el.removeClass('js-event-click');
67			el.triggerHandler('click');
68		})
69
70	}
71
72});
73
74function jsLinkCheck(event, bxobj) {
75	$('.js-link', bxobj).on('click', function () {
76
77		event.preventDefault();
78		if ($(this).data('href')) {
79			window.location = $(this).data('href');
80		}
81		return false;
82	});
83}
84
85function TagsInit(event, bxobj) {
86	var tagsSlider = new TagsSlider('tags-slider');
87	tagsSlider.init();
88}
89
90function BilletsInit(event, bxobj) {
91	const billetsWrap = $('.billets-wrap');
92	billetsWrap.each(function () {
93		const billetsWrapWidth = $(this).width();
94		const billetsScroll = $(this).find('.billets-scroll');
95		const billetsScrollWidth = billetsScroll.width();
96		const speed = 500;
97		if (billetsScrollWidth > billetsWrapWidth) {
98			$(this).find('.billets-scroll-wrap').append('<div class="whiteness"></div>');
99			$(this).mouseenter(function () {
100				billetsScroll.stop().animate({"left": (billetsWrapWidth - billetsScrollWidth) + "px"}, speed);
101				$('.whiteness').hide();
102			}).mouseleave(function () {
103				$('.whiteness').show();
104				billetsScroll.stop().animate({"left": "0px"}, speed);
105			});
106		}
107	});
108}
109
110function checkRocketBlock() {
111	if (window.retailrocket) {
112		retailrocket.markup.render();
113	}
114}
115
116function FilterInit(event, bxobj) {
117	mobileSlider.init();
118	bxobj = bxobj.is(".js_catalog_filter") ? bxobj.parent() : bxobj;
119	$(".js_catalog_filter", bxobj).data("timer", 0);
120	$(".js_catalog_filter", bxobj).data("filterset", 0);
121	//$(".js_catalog_filter", bxobj).on("filtersubmit", FormFilterAjaxSubmit);
122	$("body").on("change.FilterChangeCheck", ".js-ch-box-area", OnFilterChange);
123	$(".js-filter-select", bxobj).on("change.FilterChangeCheck", OnFilterChange);
124	$(".js_filter_block", bxobj).on("mouseenter.FilterChangeCheck", ChangeFilterCategory);
125
126	$('.js-close-filter', bxobj).on('click', function () {
127		$('body').removeClass('ms-open');
128	})
129
130	$(".js-ch-box-area").styler();
131	$(".js_catalog_sort").styler();
132	try {
133		$refresher.resetStateOfPreviewCards();
134	} catch (e) {
135	}
136	var sliders = $(".slider-range");
137	sliders.each(function () {
138		var self = $(this);
139		var handler = self.find(".range-handler");
140		var inputMin = self.find(".price-min");
141		var inputMax = self.find(".price-max");
142		if (handler.length && inputMin.length && inputMax.length) {
143			var minDefault = parseFloat(inputMin.data("min"));
144			var maxDefault = parseFloat(inputMax.data("max"));
145			var min = parseFloat(inputMin.val() ? inputMin.val() : minDefault);
146			var max = parseFloat(inputMax.val() ? inputMax.val() : maxDefault);
147			handler.slider({
148				range: true,
149				min: minDefault,
150				max: maxDefault,
151				values: [min, max],
152				slide: function (event, ui) {
153					var min = ui.values[0];
154					var max = ui.values[1];
155					inputMin.val(min).change();
156					inputMax.val(max).change();
157					var oFilter = $(".js_catalog_filter");
158					oFilter.data("filterset", $(".js_filter_block").data("propertyid"));
159					clearTimeout(oFilter.data("timer"));
160					oFilter.data("timer", setTimeout(function () {
161						oFilter.trigger("filtersubmit");
162					}, 300));
163				}
164			});
165		}
166	});
167
168	var $filterArr = $('.js_catalog_filter');
169
170	$filterArr.each(function (i, el) {
171		var $filter = $(el);
172		var $inpitArr = $filter.find('input')
173		var $btnFilterFixed = $filter.find('.btn-filter-fixed');
174		var $btnFilterFixedText = $filter.find('.btn-filter-fixed-text');
175		var $btnFilterFixedSubmit = $btnFilterFixed.find('.btn-filter-fixed-submit');
176		var $btnFilterFixedClose = $btnFilterFixed.find('.btn-filter-fixed-close');
177		var $btnSubmit = $filter.find('button[type="submit"]');
178		var $submitFilterButton = $filter.find('.submit-filter');
179		var handlerHidden = function () {
180			$btnFilterFixed.appendTo($filter)
181		}
182		$btnFilterFixedText.on('click', function () {
183			$btnSubmit.trigger('click')
184		})
185
186		$btnFilterFixedClose.on('click', handlerHidden)
187		$inpitArr.bind('change paste keyup input', function (e) {
188			var $this = $(this);
189			var $checkboxContainer = $this.closest('.checkbox');
190			var $sliderRangeContainer = $this.closest('.slider-range');
191
192			if ($checkboxContainer.length > 0) {
193				var top = $checkboxContainer[0].getBoundingClientRect().top - 5;
194				var left = $checkboxContainer[0].getBoundingClientRect().right - 80;
195				$btnFilterFixed.css('top', top);
196				$btnFilterFixed.css('left', left);
197				$btnFilterFixed.appendTo($this.closest('.checkbox'));
198				$submitFilterButton.attr('disabled', false);
199
200				$(window).on('scroll', handlerHidden)
201			} else if ($sliderRangeContainer.length > 0) {
202				var top = $sliderRangeContainer[0].getBoundingClientRect().top;
203				var left = $sliderRangeContainer[0].getBoundingClientRect().right;
204				$btnFilterFixed.css('top', top);
205				$btnFilterFixed.css('left', left);
206				$btnFilterFixed.appendTo($this.closest('.slider-range'));
207				$submitFilterButton.attr('disabled', false);
208				$(window).on('scroll', handlerHidden)
209			}
210		})
211	})
212
213	$filterArr.each(function (i, el) {
214		var $filter = $(el);
215		var $inpitArr = $filter.find('input')
216		var $btnFilterFixed = $filter.find('.btn-filter-fixed-mobile');
217		var $btnSubmit = $filter.find('button[type="submit"]');
218
219		$btnFilterFixed.on('click', function () {
220			$btnSubmit.trigger('click')
221		})
222
223		$inpitArr.bind('change paste keyup input', function (e) {
224			var $this = $(this);
225			var $thisPanel = $this.closest('.panel')
226			var $thisPanelHeading = $thisPanel.find('.acc-heading')
227			$btnFilterFixed.appendTo($thisPanelHeading)
228		})
229	})
230
231	inputFilterItems()
232}
233
234function OnFilterChange() {
235	var currentObj = $(this);
236	if (currentObj.is(".disabled") || currentObj.is(".clicked")) {
237		return;
238	}
239	if ($("a", currentObj).length) {
240		currentObj.addClass("clicked");
241		$("a", currentObj).triggerHandler("click");
242		return;
243	}
244	var oFilter = currentObj.closest(".js_catalog_filter");
245	oFilter.data("filterset", currentObj.closest(".js_filter_block").data("propertyid"));
246	clearTimeout(oFilter.data("timer"));
247	oFilter.data("timer", setTimeout(function () {
248		oFilter.trigger("filtersubmit");
249	}, 300));
250}
251
252function ChangeFilterCategory() {
253	var oFilter = $(this).closest(".js_catalog_filter");
254	if (oFilter.data("filterset") && oFilter.data("filterset") != $(this).closest(".js_filter_block").data("propertyid")) {
255		oFilter.trigger("filtersubmit");
256	}
257}
258
259function FormFilterAjaxSubmit() {
260	var oFilter = $(this);
261	clearTimeout(oFilter.data("timer"));
262	if (!oFilter.data("filterset")) {
263		return;
264	}
265	var form = oFilter.is("form") ? oFilter : $("form", oFilter);
266	$("input[type=text]", form).each(function () {
267		var t = $(this);
268		var curValue = t.closest(".js_range_box").length ? parseInt($(this).val().replace(/[^\d\.]/g, "")) : t.val();
269		if (t.data("value") && t.data("value") == curValue) {
270			t.attr("disabled", "disabled");
271		}
272	});
273
274	form.triggerHandler("submit");
275
276
277}
278
279
280class TagsSlider {
281	constructor(id) {
282		this.id = id;
283	}
284
285	init() {
286		this.sliderWrap = $(`#${this.id}`);
287		this.tagsContainer = this.sliderWrap.find('.tags-list');
288		this.tagsContainerWidth = this.tagsContainer.width();
289		this.tags = this.tagsContainer.find('.tag');
290		this.more = this.tagsContainer.find('.more');
291		this.moreWidth = this.more.outerWidth(true);
292		this.sumTagsWidth = 0;
293		this.lastShowed;
294
295		this.getLastShowed();
296		if (this.lastShowed && (this.lastShowed + 1) !== (this.tags.length - 1)) {
297			this.clickEvent();
298			this.excess();
299		}
300	}
301
302	getLastShowed() {
303		var _self = this;
304		this.tags.each(function (i) {
305			_self.sumTagsWidth += $(this).outerWidth(true);
306			if (_self.sumTagsWidth > (_self.tagsContainerWidth - _self.moreWidth)) {
307				if (!_self.lastShowed) {
308					_self.lastShowed = i - 1;
309				}
310			}
311		});
312	}
313
314	clickEvent() {
315		var _self = this;
316		this.more.on('click', function () {
317			if ($(this).hasClass('open')) {
318				$(this).text('Показать все').removeClass('open');
319				$('.tag.excess').hide();
320				_self.tagsContainer.removeClass('open');
321			} else {
322				$(this).text('Свернуть').addClass('open');
323				$('.tag.excess').show();
324				_self.tagsContainer.addClass('open');
325			}
326		});
327	}
328
329	excess() {
330		var _self = this;
331		this.tags.each(function (i) {
332			if (i == _self.lastShowed) {
333				_self.more.removeClass('more-hide');
334			}
335			if (i > _self.lastShowed) {
336				$(this).addClass('excess').hide();
337			}
338		});
339	}
340}
341

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.