PageSourceSearch

https://www.reki-poselok.ru/bitrix/cache/js/s1/2025/page_20508fcc5…efd9961dbf82e10414e33_v1.js?178566857314450

js reki-poselok.ru collected 2026-10-06 00:04:25 UTC 14,450 bytes, 295 lines download raw bytes

1
2; /* Start:"a:4:{s:4:"full";s:83:"/local/components/rivers/genplan.frame/templates/.default/script.js?175256052311483";s:6:"source";s:67:"/local/components/rivers/genplan.frame/templates/.default/script.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
3document.addEventListener("DOMContentLoaded", function()
4{
5    let plotsBoxContract = document.querySelector('.plots.contract'),
6        plotsBoxNoContract = document.querySelector('.plots.no-contract'),
7        plotsSaleContract = document.querySelectorAll('.plots.contract .plot.sale'),
8        plotsSaleNoContract = document.querySelectorAll('.plots.no-contract .plot.sale'),
9
10        genplanMap = document.getElementById('genplanMap'),
11        titleMap = genplanMap.querySelector('h2'),
12        genplanMenu = genplanMap.querySelector('.genplan-menu'),
13        borderBeach = genplanMenu.querySelector('.border-beach'),
14        borderContract = genplanMenu.querySelector('.border-contract'),
15        borderNoContract = genplanMenu.querySelector('.border-no-contract'),
16        btnContract = document.getElementById('btnContract'),
17        btnNoContract = document.getElementById('btnNoContract'),
18        btnBack = genplanMap.querySelector('.btn-back');
19
20        // Кнопки "Закрыть попап"
21        let btnClosePopup = document.querySelectorAll('.btn-close-popup');
22
23        btnBack.addEventListener('click', () => {
24            plotsBoxContract.classList.add('hide');
25            plotsBoxNoContract.classList.add('hide');
26            genplanMenu.classList.remove('hide');
27            setTimeout(() => genplanMap.classList.remove('contract'),200);
28            setTimeout(() => genplanMap.classList.remove('no-contract'),200);
29            setTimeout(() => genplanMap.classList.remove('beach'),200);
30            setTimeout(() => genplanMenu.classList.remove('hide-menu'),700);
31            setTimeout(() => btnBack.classList.add('hide'),1000);
32            setTimeout(() => titleMap.classList.remove('hide-title'),1000);
33            btnNoContract.classList.remove('active');
34            btnContract.classList.remove('active');
35            for (let close of btnClosePopup) close.click(); // закрыть все попап-окна
36        });
37
38        borderContract.addEventListener('click', () => activeContract());
39        borderNoContract.addEventListener('click', () => activeNoContract());
40        borderBeach.addEventListener('click', () => activeBeach());
41
42        btnContract.addEventListener('click', () => activeContract());
43        btnNoContract.addEventListener('click', () => activeNoContract());
44
45        let activeContract = function () {
46            plotsBoxNoContract.classList.add('hide');
47            genplanMap.classList.remove('no-contract');
48            genplanMap.classList.remove('beach');
49            genplanMenu.classList.add('hide-menu');
50            titleMap.classList.add('hide-title');
51            setTimeout(() => genplanMap.classList.add('contract'),300);
52            setTimeout(() => plotsBoxContract.classList.remove('hide'),900);
53            setTimeout(() => genplanMenu.classList.add('hide'),1000);
54            setTimeout(() => btnBack.classList.remove('hide'),1000);
55            btnContract.classList.add('active');
56            btnNoContract.classList.remove('active');
57        }
58
59        let activeNoContract = function () {
60            plotsBoxContract.classList.add('hide');
61            genplanMap.classList.remove('contract');
62            genplanMap.classList.remove('beach');
63            genplanMenu.classList.add('hide-menu');
64            titleMap.classList.add('hide-title');
65            setTimeout(() => genplanMap.classList.add('no-contract'), 300);
66            setTimeout(() => plotsBoxNoContract.classList.remove('hide'), 900);
67            setTimeout(() => genplanMenu.classList.add('hide'),1000);
68            setTimeout(() => btnBack.classList.remove('hide'),1000);
69            btnNoContract.classList.add('active');
70            btnContract.classList.remove('active');
71        };
72
73        let activeBeach = function () {
74            plotsBoxContract.classList.add('hide');
75            plotsBoxNoContract.classList.add('hide');
76            genplanMap.classList.remove('contract');
77            genplanMap.classList.remove('no-contract');
78            genplanMenu.classList.add('hide-menu');
79            titleMap.classList.add('hide-title');
80            setTimeout(() => genplanMap.classList.add('beach'), 300);
81            setTimeout(() => genplanMenu.classList.add('hide'),1000);
82            setTimeout(() => btnBack.classList.remove('hide'),1000);
83            btnNoContract.classList.remove('active');
84            btnContract.classList.remove('active');
85        };
86
87        //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
88        // Показ попап-окна
89        //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
90
91        // for (let plotSale of plotsSaleContract) plotSale.addEventListener('click', showPopupSale);
92
93        function showPopupSale(e)
94        {
95            let numsCollect = document.querySelectorAll('.plot-number-visual');
96            for (let num of numsCollect) num.classList.remove('clicked');
97            this.classList.add('active', 'clicked');
98
99            if (this.parentElement.classList.contains('contract')) {
100                popupInfoPlot = plotsBoxContract.querySelector('.popup-info-plot');
101                if (this.dataset.project !== 'Y') {
102                    linkName = '<a href="/gotovye-doma/' + this.dataset.number + '/" ><b>Участок ' + this.dataset.number + '</b> <span>(с подрядом)</span></a>';
103                } else {
104                    linkName = '<a href="/gotovye-doma/' + this.dataset.number + '/" ><b>Участок ' + this.dataset.number + '</b> <span>(готовый дом)</span></a>';
105                }
106                linkMore = '<a href="/gotovye-doma/' + this.dataset.number + '/" >Подробнее</a>';
107            } else {
108                popupInfoPlot = plotsBoxNoContract.querySelector('.popup-info-plot');
109                linkName = '<a href="/zemelnye-uchastki/' + this.dataset.number + '/" ><b>Участок ' + this.dataset.number + '</b></a>';
110                linkMore  = '<a href="/zemelnye-uchastki/' + this.dataset.number + '/" >Подробнее</a>';
111            }
112
113            let plotNameValue = popupInfoPlot.querySelector('.name'),
114                plotAreaValue = popupInfoPlot.querySelector('.area .value'),
115                plotPriceValue = popupInfoPlot.querySelector('.price .value'),
116                plotMoreLink = popupInfoPlot.querySelector('.more-link');
117
118            plotAreaValue.innerText = this.dataset.area;
119            plotNameValue.innerHTML = linkName;
120            plotMoreLink.innerHTML = linkMore;
121
122            if (this.dataset.price_new !== 'undefined') {
123                plotPriceValue.innerHTML = "<b class='price-old'>" + this.dataset.price + "</b><br>" + this.dataset.price_new;
124                plotPriceValue.classList.add('red');
125            } else {
126                plotPriceValue.innerText = this.dataset.price;
127                plotPriceValue.classList.remove('red');
128            }
129
130            localStorage.setItem('plotNumber', this.dataset.number); // Добавляем номер участка в localStorage
131
132            popupInfoPlot.classList.add('show');
133
134            let x = Number.parseInt(this.dataset.x);
135            let y = Number.parseInt(this.dataset.y);
136
137            popupInfoPlot.style.top = (y - 15) + 'px';
138            popupInfoPlot.style.left = (x + 85) + 'px';
139
140        };
141
142        // Закрыть попап-окна
143        for (let close of btnClosePopup) close.addEventListener('click', hidePopupInfoPlot);
144
145        function hidePopupInfoPlot(e)
146        {
147            let popupInfoPlot = this.parentElement;
148            console.log(popupInfoPlot);
149            if (popupInfoPlot.classList.contains('show') && !e.target.classList.contains('popup-info-plot')) {
150                popupInfoPlot.classList.remove('show');
151                document.querySelector('.plot-number-visual.clicked').classList.remove('clicked');
152            };
153        }
154
155    //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
156    // Показ участков
157    //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
158
159    // "Готовые дома"
160    let showPlotsSaleContract = function () {
161        for (let plot of plotsSaleContract) {
162            // Номера участков
163            let x = Number.parseInt(plot.getAttribute('x'));
164            let y = Number.parseInt(plot.getAttribute('y'));
165
166            let numberHTML = document.createElement('a');
167            // numberHTML.setAttribute('href', `/gotovye-doma/${plot.dataset.number}/`);
168            // numberHTML.setAttribute('target', '_blank');
169            numberHTML.classList.add('plot-number-visual');
170            numberHTML.classList.add(`num-${plot.dataset.number}`);
171            if (plot.dataset.project === 'Y') {
172                numberHTML.classList.add('with-project');
173            }
174
175            numberHTML.dataset.number = plot.dataset.number;
176            numberHTML.dataset.area = plot.dataset.area;
177            numberHTML.dataset.price = plot.dataset.price;
178            numberHTML.dataset.price_new = plot.dataset.price_new;
179            numberHTML.dataset.project = plot.dataset.project;
180            numberHTML.dataset.x = x;
181            numberHTML.dataset.y = y;
182
183            numberHTML.classList.add('active');
184            numberHTML.innerHTML = plot.dataset.number;
185            numberHTML.addEventListener('click', showPopupSale);
186            plotsBoxContract.append(numberHTML);
187
188            numberHTML.style.top = (y - 15) + 'px';
189            numberHTML.style.left = (x + 35) + 'px';
190
191            // plot.classList.add('show-sale');
192            // plotsBoxContract.querySelector(`.num-${plot.dataset.number}`).classList.add('active');
193        }
194    };
195
196    // "Участки"
197    let showPlotsSaleNoContract = function () {
198        for (let plot of plotsSaleNoContract) {
199            // Номера участков
200            let x = Number.parseInt(plot.getAttribute('x'));
201            let y = Number.parseInt(plot.getAttribute('y'));
202
203            let numberHTML = document.createElement('a');
204            // numberHTML.setAttribute('href', `/zemelnye-uchastki/${plot.dataset.number}/`);
205            // numberHTML.setAttribute('target', '_blank');
206            numberHTML.classList.add('plot-number-visual');
207            numberHTML.classList.add(`num-${plot.dataset.number}`);
208
209            numberHTML.dataset.number = plot.dataset.number;
210            numberHTML.dataset.area = plot.dataset.area;
211            numberHTML.dataset.price = plot.dataset.price;
212            numberHTML.dataset.price_new = plot.dataset.price_new;
213            numberHTML.dataset.x = x;
214            numberHTML.dataset.y = y;
215
216            numberHTML.classList.add('active');
217            numberHTML.innerHTML = plot.dataset.number;
218            numberHTML.addEventListener('click', showPopupSale);
219            plotsBoxNoContract.append(numberHTML);
220
221            numberHTML.style.top = (y - 15) + 'px';
222            numberHTML.style.left = (x + 25) + 'px';
223        }
224    };
225
226    showPlotsSaleContract();
227    showPlotsSaleNoContract();
228});
229/* End */
230;
231; /* Start:"a:4:{s:4:"full";s:76:"/local/components/rivers/projects.list/templates/2025/script.
231js?163064012065";s:6:"source";s:63:"/local/components/rivers/projects.list/templates/2025/script.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
232document.addEventListener("DOMContentLoaded", function() {
233
234});
235/* End */
236;
237; /* Start:"a:4:{s:4:"full";s:85:"/local/components/rivers/main.carousel.slider/templates/2025/script.js?17513423241478";s:6:"source";s:70:"/local/components/rivers/main.carousel.slider/templates/2025/script.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
238// To control a number of slider per page
239// You can use number or object
240
241// Use number if you want a same layout for all viewports
242// If you want a controll number dependable of viewport
243// Use object notation as on example below
244
245
246// If the window is wider than 768px
247// Show 2 slider per page
248
249// If the window is wider than 1024px
250// Show 3 slider per page
251
252// Otherwise show 1 slide per page
253
254document.addEventListener('DOMContentLoaded', function(){
255    let numSlide = document.querySelector('.slider-documents .num-slide');
256    let sliderDocuments = new Siema({
257        selector: '#sliderDocuments',
258        perPage: {
259            768: 1,
260            1024: 1,
261            1280: 1,
262            1360: 1,
263        },
264        duration: 1000,
265        loop: true,
266    });
267    document.querySelector('.slider-documents .prev').addEventListener('click', () => {
268        sliderDocuments.prev();
269        numSlide.textContent = (sliderDocuments.currentSlide + 1);
270    });
271    document.querySelector('.slider-documents .next').addEventListener('click', () => {
272        sliderDocuments.next();
273        numSlide.textContent = (sliderDocuments.currentSlide + 1);
274        // console.log(sliderDocuments);
275    });
276
277    // listen for keydown event
278    setInterval(() => {
279        sliderDocuments.next();
280        numSlide.textContent = (sliderDocuments.currentSlide + 1);
281        // console.log(sliderDocuments.currentSlide);
282    }, 5000);
283});
284
285/* End */
286;
287; /* Start:"a:4:{s:4:"full";
287s:72:"/local/components/rivers/news.list/templates/2025/script.js?163064012065";s:6:"source";s:59:"/local/components/rivers/news.list/templates/2025/script.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
288document.addEventListener("DOMContentLoaded", function() {
289
290});
291/* End */
292;; /* /local/components/rivers/genplan.frame/templates/.default/script.js?175256052311483*/
293; /* /local/components/rivers/projects.list/templates/2025/script.js?163064012065*/
294; /* /local/components/rivers/main.carousel.slider/templates/2025/script.js?17513423241478*/
295; /* /local/components/rivers/news.list/templates/2025/script.js?163064012065*/

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.