PageSourceSearch

https://sanatoriibelarus.ru/bitrix/templates/gotravel_default/comp…/bitrix/news.list/map_pointers/script.js

js sanatoriibelarus.ru collected 2026-10-05 00:19:18 UTC 3,860 bytes, 114 lines download raw bytes

1function RSMonopolyDrawPlacemark(arShopsItem,rsPlacemark) {
2	arShopsItem.each(function(){
3		if($(this).hasClass('cityempty') || $(this).hasClass('typeempty')){
4			rsPlacemark[$(this).data('id')].options.set('visible', false);
5		} else {
6			rsPlacemark[$(this).data('id')].options.set('visible', true);
7		}
8	});
9}
10
11$(document).ready(function(){
12
13	var arShopsItem = $('.shops_list').find('.item'),
14		arMapCoord = [0, 0],
15		rsPlacemark = {},
16		rsYMapShops;
17
18	arShopsItem.each(function(){
19		var arCoords = $(this).data('coords').split(',');
20		arMapCoord[0] = arMapCoord[0] + parseFloat(arCoords[0]);
21		arMapCoord[1] = arMapCoord[1] + parseFloat(arCoords[1]);
22	});
23	arMapCoord[0] = arMapCoord[0] / arShopsItem.length;
24	arMapCoord[1] = arMapCoord[1] / arShopsItem.length;
25	var rsPlacemark = {}, rsYMapShops;
26	ymaps.ready(function(){
27		rsYMapShops = new ymaps.Map('rsYMapShops', {
28			center: arMapCoord,
29			zoom: 16,
30			type:'yandex#publicMap',
31			behaviors: ['default', 'scrollZoom']
32		});
33		arShopsItem.each(function(){
34			var arCoords = $(this).data('coords').split(','),
35				id = $(this).data('id');
36			arCoords[0] = parseFloat(arCoords[0]);
37			arCoords[1] = parseFloat(arCoords[1]);
38			rsPlacemark[id] = new ymaps.Placemark(
39				arCoords, {
40					balloonContentHeader: $(this).find('name').html(),
41					balloonContentBody: $(this).find('.descr').html()
42				}
43			);
44			rsYMapShops.geoObjects.add(rsPlacemark[id]);
45		});
46		rsYMapShops.setBounds(rsYMapShops.geoObjects.getBounds(), {checkZoomRange: true}).controls.add('mapTools').add('zoomControl').add('typeSelector');
47	});
48
49	arShopsItem.on('mouseenter', function(){
50		rsPlacemark[$(this).data('id')].options.set('preset', 'twirl#redDotIcon');
51	}).on('mouseleave', function(){
52		rsPlacemark[$(this).data('id')].options.set('preset', 'twirl#blueIcon');
53	});
54
55	// city search
56	$(document).on('keyup','.search_city input',function(){
57		var $inputObj = $(this);
58		var $citiesList = $inputObj.parents('.search_city').find('.cities_list');
59		var value = $inputObj.val();
60		var len = 0;
61		
62		if(value.length<1) {
63			$citiesList.css('display','none');
64		} else {
65			$citiesList.css('display','block');
66			len = 0;
67			$citiesList.find('a').each(function(){
68				var a_value = $(this).html().substr(0,value.length);
69				if( value.toLowerCase()==a_value.toLowerCase() ) {
70					$(this).parent().css('display','block');
71					len++;
72				} else {
73					$(this).parent().css('display','none');
74				}
75			});
76			if( len<1 ) {
77				$citiesList.css('display','none');
78			}
79		}
80	});
81	$(document).on('blur','.search_city input',function(){
82		var value = $(this).val();
83		if(value.length<1) {
84			$('.shops_list').find('li').removeClass('cityempty');
85		} else {
86			$('.search_city input').trigger('keyup');
87		}
88		RSMonopolyDrawPlacemark(arShopsItem,rsPlacemark);
89	});
90	$(document).on('click','.cities_list a',function(){
91		var cityFilter = $(this).data('filter');
92		$('.search_city input').val( $(this).html() );
93		$('.cities_list').css('display','none');
94		$('.shops_list').find('li').addClass('cityempty');
95		$('.shops_list').find('li[data-city="'+cityFilter+'"]').removeClass('cityempty');
96		RSMonopolyDrawPlacemark(arShopsItem,rsPlacemark);
97		return false;
98	});
99
100	// filter
101	$(document).on('click','.shops .filter .btn',function(){
102		$('.shops .filter').find('.btn').removeClass('btn-primary').addClass('btn-default');
103		$(this).addClass('btn-primary').removeClass('btn-default');
104		var typeFilter = $(this).data('filter');
105		if(typeFilter.length>0) {
106			$('.shops_list').find('li').addClass('typeempty');
107			$('.shops_list').find('li[data-type="'+typeFilter+'"]').removeClass('typeempty');
108		} else {
109			$('.shops_list').find('li').removeClass('typeempty');
110		}
111		RSMonopolyDrawPlacemark(arShopsItem,rsPlacemark);
112	});
113
114});

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.