PageSourceSearch

https://alphomes.ru/wp-content/themes/template/js/script2025.js?ver=1761644472

js alphomes.ru collected 2026-10-06 16:49:50 UTC 29,014 bytes, 621 lines download raw bytes

1/*form contact type*/
2$('.contactTypeBox .type').click(function(){
3    $(this).closest('.contactTypeBox').find('.type').removeClass('active');
4    $(this).closest('.formBox').find('.clientTime').val('Связаться по ' + $(this).find('.typeText').text());
5    $(this).addClass('active');
6});
7
8/*fixHeader*/
9$(document).ready(function(){
10  var fixHeader = $('.header2025Box');
11  $(window).scroll(function() {
12      let scrollPos = $(window).scrollTop();
13    let windowHeight = $(window).height();
14    if(scrollPos>windowHeight && !$(fixHeader).hasClass('fixed')){
15      if($(fixHeader).hasClass('nofixed')){
16        $(fixHeader).removeClass('nofixed');
17      }
18      $(fixHeader).addClass('fixed');
19    }else if(scrollPos<=windowHeight && $(fixHeader).hasClass('fixed')){
20      if($(fixHeader).hasClass('fixed')){
21        $(fixHeader).removeClass('fixed');
22        $(fixHeader).addClass('nofixed');
23        setTimeout(function(){$(fixHeader).removeClass('nofixed');},300); 
24      }
25    }else if(scrollPos<=$(fixHeader).outerHeight() && $(fixHeader).hasClass('nofixed')){
26      $(fixHeader).removeClass('nofixed');
27    }
28  });
29});
30
31
32/*piece_key*/
33$('.piece_key .close').click(function(){
34    $(this).parent().toggleClass('closed');
35});
36
37
38/*блок горизонтальный слайдер runningLineSlider*/
39if ($('div').is('.horizontalCustomSlider')) {
40    SetUphorizontalSlider();
41}
42
43function SetUphorizontalSlider() {
44    var oldDirection = '';
45    var startPosition = 0;
46    var newPosition = 0;
47    let sliderContainer = $('.horizontalCustomSlider .sliderContainer');
48    let autoplayIntervals = {}; // Хранение интервалов для каждого слайдера
49
50    for (let i = 0; i < sliderContainer.length; i++) {
51        let horizontalSliderContainerItem = $(sliderContainer[i]);
52        horizontalSliderContainerItem.attr('data-id', i);
53        let child = horizontalSliderContainerItem.children(':not(.copy)');
54        $(child[0]).addClass('active');
55
56        // Проверка, помещается ли весь контент в родительский контейнер
57        let isContentFits = isHorizontalSliderCompletelyInParent(horizontalSliderContainerItem);
58
59        // Если контент не помещается, создаем копию и включаем автовоспроизведение
60        if (!isContentFits && horizontalSliderContainerItem.attr('data-infinite') != undefined && horizontalSliderContainerItem.attr('data-infinite') == 1) {
61            let copyItem = horizontalSliderContainerItem.find('.copy');
62            let copyHtml = '';
63            for (let i = 0; i < child.length; i++) {
64                let copyItem = child[i];
65                copyHtml += copyItem.outerHTML;
66            }
67            horizontalSliderContainerItem.children('.copy').html(copyHtml);
68            let copies = horizontalSliderContainerItem.children('.copy').children();
69            copies.removeAttr('data-fancybox');
70        }
71        if (isContentFits) {
72            sethorizontalSliderBtns(horizontalSliderContainerItem, 0, 0);
73        } else {
74            sethorizontalSliderBtns(horizontalSliderContainerItem, 0, 1);
75        }
76
77        // Инициализация автовоспроизведения только если контент не помещается
78        if (!isContentFits && horizontalSliderContainerItem.attr('data-autoplay') == 1 && horizontalSliderContainerItem.attr('data-infinite') == 1) {
79            let speed = parseInt(horizontalSliderContainerItem.attr('data-speed')) || 20; // Скорость по умолчанию (в мс)
80
81            // Создаем Intersection Observer для слайдера
82            let observer = new IntersectionObserver(
83                (entries) => {
84                    entries.forEach((entry) => {
85                        if (entry.isIntersecting) {
86                            // Слайдер в зоне видимости, запускаем автовоспроизведение
87                            startAutoplay(horizontalSliderContainerItem, speed);
88                        } else {
89                            // Слайдер вне зоны видимости, останавливаем автовоспроизведение
90                            stopAutoplay(horizontalSliderContainerItem);
91                        }
92                    });
93                },
94                {
95                    threshold: 0, // Порог видимости (50% элемента должно быть видно)
96                    rootMargin: '200px 0px 200px 0px',
97                }
98            );
99
100            // Наблюдаем за слайдером
101            observer.observe(horizontalSliderContainerItem[0]);
102        }
103    }
104
105    // Функция для проверки видимости элемента
106function isElementVisible(element) {
107    const rect = element[0].getBoundingClientRect();
108    return (
109        rect.top < window.innerHeight && 
110        rect.bottom > 0 &&
111        rect.left < window.innerWidth &&
112        rect.right > 0
113    );
114}
115
116// Функция для запуска автовоспроизведения
117function startAutoplay(sliderContainer, speed) {
118    if($(sliderContainer).attr('data-css-play') == 1) {
119        sliderContainer.addClass('play');
120    } else {
121        const sliderId = sliderContainer.attr('id');
122        if (autoplayIntervals[sliderId]) return;
123
124        // Кешируем элементы и размеры
125        const parent = sliderContainer.parent();
126        let containerWidth = sliderContainer.outerWidth();
127        let parentWidth = parent.outerWidth();
128        let maxPosition = -(containerWidth * 2 - parentWidth);
129
130        const checkAndAnimate = () => {
131            if (!isElementVisible(sliderContainer)) {
132                stopAutoplay(sliderContainer);
133                return;
134            }
135
136            if (!parent.hasClass('hovered')) {
137                let currentPosition = parseInt(sliderContainer.attr('data-pos')) || 0;
138                
139                if (currentPosition <= maxPosition) {
140                    currentPosition = 0;
141                } else {
142                    currentPosition -= 2;
143                }
144
145                sliderContainer.css('left', currentPosition + 'px');
146                sliderContainer.attr('data-pos', currentPosition);
147
148                sethorizontalSliderActiveItem(sliderContainer);
149                sethorizontalSliderBtns(sliderContainer, currentPosition, maxPosition, 0);
150            }
151        };
152
153        // Сначала проверим видимость
154        if (!isElementVisible(sliderContainer)) return;
155
156        let intervalId = setInterval(checkAndAnimate, speed);
157        autoplayIntervals[sliderId] = intervalId;
158
159        // Добавляем обработчик скролла
160        $(window).on(`scroll.${sliderId}`, _.throttle(() => {
161            if (isElementVisible(sliderContainer) && !autoplayIntervals[sliderId]) {
162                startAutoplay(sliderContainer, speed);
163            }
164        }, 200));
165    }
166}
167
168// Функция для остановки автовоспроизведения
169function stopAutoplay(sliderContainer) {
170    if ($(sliderContainer).attr('data-css-play') == 1) {
171        sliderContainer.removeClass('play');
172    } else {
173        const sliderId = sliderContainer.attr('id');
174        let intervalId = autoplayIntervals[sliderId];
175        if (intervalId) {
176            clearInterval(intervalId);
177            delete autoplayIntervals[sliderId];
178            $(window).off(`scroll.${sliderId}`);
179        }
180    }
181}
182
183    // Остановка автовоспроизведения при наведении курсора
184    $('.horizontalCustomSlider .sliderOverflow').hover(
185        function () {
186            let sliderContainer = $(this).find('.sliderContainer');
187            // Проверяем, помещается ли контент в контейнер
188            if (!isHorizontalSliderCompletelyInParent(sliderContainer) && sliderContainer.attr('data-autoplay') == 1 && sliderContainer.attr('data-infinite') == 1) {
189                sliderContainer.parent().addClass('hovered');
190                stopAutoplay(sliderContainer); // Останавливаем автовоспроизведение при наведении
191            }
192        },
193        function () {
194            let sliderContainer = $(this).find('.sliderContainer');
195            // Проверяем, помещается ли контент в контейнер
196            if (!isHorizontalSliderCompletelyInParent(sliderContainer) && sliderContainer.attr('data-autoplay') == 1 && sliderContainer.attr('data-infinite') == 1) {
197                sliderContainer.parent().removeClass('hovered');
198                let speed = parseInt(sliderContainer.attr('data-speed')) || 20;
199                startAutoplay(sliderContainer, speed); // Возобновляем автовоспроизведение при уходе курсора
200            }
201        }
202    );
203
204    // Остановка автовоспроизведения при наведении на кнопки "вперед" и "назад"
205    $('.horizontalCustomSlider .sliderBtn').hover(
206        function () {
207            let sliderContainer = $(this).closest('.horizontalCustomSlider').find('.sliderContainer');
208            // Проверяем, помещается ли контент в контейнер
209            if (!isHorizontalSliderCompletelyInParent(sliderContainer) && sliderContainer.attr('data-autoplay') == 1 && sliderContainer.attr('data-infinite') == 1) {
210                sliderContainer.parent().addClass('hovered');
211                stopAutoplay(sliderContainer); // Останавливаем автовоспроизведение при наведении на кнопку
212            }
213        },
214        function () {
215            let sliderContainer = $(this).closest('.horizontalCustomSlider').find('.sliderContainer');
216            // Проверяем, помещается ли контент в контейнер
217            if (!isHorizontalSliderCompletelyInParent(sliderContainer) && sliderContainer.attr('data-autoplay') == 1 && sliderContainer.attr('data-infinite') == 1) {
218                sliderContainer.parent().removeClass('hovered');
219                let speed = parseInt(sliderContainer.attr('data-speed')) || 20;
220                startAutoplay(sliderContainer, speed); // Возобновляем автовоспроизведение при уходе курсора с кнопки
221            }
222        }
223    );
224
225    // Остальной код слайдера (остается без изменений)
226    $('.horizontalCustomSlider .sliderOverflow').mousemove(function (e) {
227        let position = e.pageX - $(this).offset().left;
228        let horizontalSliderContainer = $(this).find('.sliderContainer');
229        let containerOffset = +horizontalSliderContainer.attr('data-pos');
230        let sliderContainerChilds = horizontalSliderContainer.children(':not(.copy)');
231        let isCursorOnChild = false;
232        for (let i = 0; i < sliderContainerChilds.length; i++) {
233            let childStart = $(sliderContainerChilds[i]).position().left + containerOffset;
234            let childEnd = $(sliderContainerChilds[i]).position().left + $(sliderContainerChilds[i]).outerWidth() + containerOffset;
235            if (position >= childStart && position <= childEnd) {
236                isCursorOnChild = true;
237                break;
238            }
239        }
240        sliderContainerChilds = horizontalSliderContainer.find('.copy').children();
241        for (let i = 0; i < sliderContainerChilds.length; i++) {
242            let childStart = $(sliderContainerChilds[i]).position().left + containerOffset + $(sliderContainerChilds[i]).parent().position().left;
243            let childEnd = $(sliderContainerChilds[i]).position().left + $(sliderContainerChilds[i]).outerWidth() + containerOffset + $(sliderContainerChilds[i]).parent().position().left;
244            let itemOffset = $(sliderContainerChilds[i]).css('margin-right');
245            if (position >= childStart && position <= childEnd) {
246                isCursorOnChild = true;
247                break;
248            }
249        }
250        if (isCursorOnChild && !$(this).hasClass('cursor')) {
251            $(this).addClass('cursor');
252        } else if (!isCursorOnChild && $(this).hasClass('cursor')) {
253            $(this).removeClass('cursor');
254        }
255    });
256
257    $('.horizontalCustomSlider .sliderOverflow').swipe({
258        swipeStatus: function (event, phase, direction, distance, duration, fingers, fingerData, currentDirection) {
259            let currentTarget = $(event.target);
260            let sliderContainer = currentTarget.parent().find('.sliderContainer');
261            if (phase == 'cancel') {
262                if (event.button != undefined && event.button > 0) {
263                    return;
264                }
265                let clickPos = 0;
266                if (event.offsetX != undefined) {
267                    clickPos = event.offsetX;
268                } else if (event.changedTouches != undefined && event.changedTouches[0].pageX != undefined) {
269                    clickPos = event.changedTouches[0].pageX - $(this).offset().left;
270                }
271                let currentPos = +sliderContainer.attr('data-pos');
272                let items = sliderContainer.children(':not(.copy)');
273                let clickOffsetParentPosition = clickPos - currentPos;
274                for (let i = 0; i < items.length; i++) {
275                    let itemPosMin = +$(items[i]).position().left;
276                    let itemPosMax = +$(items[i]).position().left + $(items[i]).outerWidth();
277                    if (clickOffsetParentPosition >= itemPosMin && clickOffsetParentPosition <= itemPosMax) {
278                        let clickItem = $(items[i]);
279                        if (clickItem.parent().hasClass('copy')) {
280                            let itemIndex = clickItem.index();
281                            clickItem = items[itemIndex];
282                        }
283                        setTimeout(function () { clickItem.click(); }, 20);
284                    }
285                }
286                itemsCopy = sliderContainer.find('.copy').children();
287                for (let i = 0; i < itemsCopy.length; i++) {
288                    let itemPosMin = +$(itemsCopy[i]).position().left + +$(itemsCopy[i]).parent().position().left;
289                    let itemPosMax = +$(itemsCopy[i]).position().left + $(itemsCopy[i]).outerWidth() + +$(itemsCopy[i]).parent().position().left;
290                    if (clickOffsetParentPosition >= itemPosMin && clickOffsetParentPosition <= itemPosMax) {
291                        let clickItem = $(itemsCopy[i]);
292                        if (clickItem.parent().hasClass('copy')) {
293                            let itemIndex = $(itemsCopy[i]).index();
294                            clickItem = items[itemIndex];
295                            console.log(itemIndex);
296                            setTimeout(function () { clickItem.click(); }, 20);
297                        }
298                    }
299                }
300            }
301            if (isHorizontalSliderCompletelyInParent(sliderContainer)) {
302                return;
303            }
304            if (phase == 'start' || oldDirection == null || oldDirection == 'none') { oldDirection = currentDirection; startPosition = +sliderContainer.attr('data-pos'); }
305            let currentTargetWidth = currentTarget.outerWidth();
306            let minPositon = -(sliderContainer.outerWidth() - currentTargetWidth);
307            let maxPositioin = 0;
308            if ((oldDirection == 'left' || oldDirection == 'right')) {
309                if (direction == 'left') {
310                    newPosition = startPosition - distance;
311                } else if (oldDirection == 'right') {
312                    newPosition = startPosition + distance;
313                }
314                if (sliderContainer.attr('data-infinite') != undefined && sliderContainer.attr('data-infinite') == 1) {
315                    maxPositioin = +sliderContainer.outerWidth();
316                    minPositon -= +sliderContainer.outerWidth();
317                }
318                if (newPosition > maxPositioin) { newPosition = maxPositioin; }
319                if (newPosition < minPositon) { newPosition = minPositon; }
320                sliderContainer.css('left', newPosition + 'px');
321                sliderContainer.attr('data-pos', newPosition);
322                sethorizontalSliderActiveItem(sliderContainer);
323                sethorizontalSliderBtns(sliderContainer, newPosition, minPositon, maxPositioin);
324            }
325        },
326        threshold: 10,
327        fingers: 'all',
328        allowPageScroll: 'vertical'
329    });
330
331    $('.horizontalCustomSlider .sliderBtn').click(function () {
332        let addPosition = Math.min(150, $(window).width()/3);
333        let sliderContainer = $(this).parent().parent().find('.sliderContainer');
334        if (isHorizontalSliderCompletelyInParent(sliderContainer)) {
335            return;
336        }
337        let items = sliderContainer.children(':not(.copy)');
338        let activeItem = sliderContainer.find('.active');
339        let infinite = sliderContainer.attr('data-infinite') == 1;
340        let autoplay = sliderContainer.attr('data-autoplay') == 1;
341        if(autoplay && infinite){
342            let currentTargetWidth = sliderContainer.parent().outerWidth();
343            let minPositon = -(+sliderContainer.outerWidth()*2 - currentTargetWidth);
344            let maxPositioin = +sliderContainer.outerWidth();
345            let newPosition = +sliderContainer.attr('data-pos');
346            if($(this).hasClass('prev')){
347                newPosition += addPosition;
348            }else if($(this).hasClass('next')){
349                newPosition -= addPosition;
350            }
351            if (newPosition > maxPositioin) { newPosition = maxPositioin; }
352            if (newPosition < minPositon) { newPosition = minPositon; }
353            sliderContainer.css('left', newPosition + 'px');
354            sliderContainer.attr('data-pos', newPosition);
355            sethorizontalSliderActiveItem(sliderContainer);
356            sethorizontalSliderBtns(sliderContainer, newPosition, minPositon, maxPositioin);
357        }else{
358            if ($(this).hasClass('prev')) {
359                if (infinite && $(activeItem).index() == 0) {
360                    items.removeClass('active');
361                    $(items[items.length - 1]).addClass('active');
362                } else if ($(activeItem).index() > 0) {
363                    items.removeClass('active');
364                    $(items[+$(activeItem).index() - 1]).addClass('active');
365                }
366                sethorizontalSliderActivePosition(sliderContainer);
367            } else if ($(this).hasClass('next')) {
368                if (infinite && $(activeItem).index() == items.length - 2) {
369                    items.removeClass('active');
370                    $(items[0]).addClass('active');
371                } else if ($(activeItem).index() < items.length - 1) {
372                    items.removeClass('active');
373                    $(items[+$(activeItem).index() + 1]).addClass('active');
374                }
375                sethorizontalSliderActivePosition(sliderContainer);
376            }
377        }
378        
379    });
380}
381function isHorizontalSliderCompletelyInParent(sliderContainer) {
382    let cont = $(sliderContainer);
383    if (cont.outerWidth() <= cont.parent().outerWidth()) {
384        cont.addClass('blockedSlider');
385        return true; // Контент полностью помещается
386    }
387    cont.removeClass('blockedSlider');
388    return false; // Контент не помещается
389}
390function sethorizontalSliderActiveItem(sliderContainer){
391  let position = +sliderContainer.attr('data-pos');
392  let realPosition = position;
393  if(sliderContainer.attr('data-infinite')!=undefined && sliderContainer.attr('data-infinite')==1){
394    let currentTargetWidth = sliderContainer.parent().outerWidth();
395    let sliderContainerWidth = +sliderContainer.outerWidth();
396    let minPositon = -(sliderContainerWidth - currentTargetWidth);
397
398    //let videoPlaying = sliderContainer.children('.playing').find('video');
399    let videoPlaying = sliderContainer.children('.hasVideo');
400
401    if(position<minPositon){
402      let tmpPosition = sliderContainerWidth + position;
403      if(videoPlaying.length>0){
404        //let videoCopyPlaying = sliderContainer.find('.copy2 video');
405        let videoCopyPlaying = sliderContainer.find('.copy2 .hasVideo');
406        if(videoCopyPlaying.length>0){
407          for(let i=0;i<videoPlaying.length;i++){
408            if($(videoCopyPlaying[i]).length>0){
409              let video1 = $(videoPlaying[i]).find('video');
410              let video2 = $(videoCopyPlaying[i]).find('video');
411              if(video1.length>0 && video2.length>0){
412                $(video1).get(0).currentTime = $(video2).get(0).currentTime;
413              }
414            }
415          }
416        }
417      }
418      if(tmpPosition<0){
419        sliderContainer.css('left',tmpPosition+'px');
420        sliderContainer.attr('data-pos',tmpPosition);
421      }
422    }else if(position>0){
423      let tmpPosition = (realPosition-currentTargetWidth - sliderContainerWidth) + position;
424      if(videoPlaying.length>0){
425        //let videoCopyPlaying = sliderContainer.find('.copy1 video');
426        let videoCopyPlaying = sliderContainer.find('.copy1 .hasVideo');
427        if(videoCopyPlaying.length>0){
428          for(let i=0;i<videoPlaying.length;i++){
429            if($(videoCopyPlaying[i]).length>0){
430              let video1 = $(videoPlaying[i]).find('video');
431              let video2 = $(videoCopyPlaying[i]).find('video');
432              if(video1.length>0 && video2.length>0){
433                $(video1).get(0).currentTime = $(video2).get(0).currentTime;
434              }
435            }
436          }
437        }
438      }
439      if(realPosition>=currentTargetWidth){
440        sliderContainer.css('left',tmpPosition+'px');
441        sliderContainer.attr('data-pos',tmpPosition);
442      }
443    }else{
444      /*console.log('center'+ realPosition)*/
445    }
446  }
447
448  let items = sliderContainer.children(':not(.copy)');
449  items.removeClass('active');
450  for(let i=0;i<items.length;i++){
451    let itemPos = +$(items[i]).position().left+realPosition;
452    if(itemPos>=0){
453      $(items[i]).addClass('active');
454      break;
455    }
456  }
457}
458function sethorizontalSliderActivePosition(sliderContainer){
459  let activeItem = sliderContainer.find('.active');
460  let activeItemPosition = activeItem.position().left;
461  let newPosition = 0;
462  if(activeItemPosition>0){
463    newPosition = -activeItemPosition;
464  }
465  let maxPositioin = 0;
466  let currentTargetWidth = sliderContainer.parent().outerWidth();
467  let minPositon = -(sliderContainer.outerWidth() - currentTargetWidth);
468  if(newPosition>maxPositioin){newPosition=maxPositioin;}
469  if(newPosition<minPositon){newPosition=minPositon;}
470  if(sliderContainer.attr('data-infinite')!=undefined && sliderContainer.attr('data-infinite')==1){
471    maxPositioin=+sliderContainer.outerWidth();
472    minPositon-=+sliderContainer.outerWidth();
473  }
474  sliderContainer.parent().parent().addClass('animate');
475  sliderContainer.css('left',newPosition+'px');
476  sliderContainer.attr('data-pos',newPosition);
477  setTimeout(function(){sliderContainer.parent().parent().removeClass('animate');},320);
478  sethorizontalSliderActiveItem(sliderContainer);
479  sethorizontalSliderBtns(sliderContainer,newPosition,minPositon,maxPositioin);
480}
481function sethorizontalSliderBtns(sliderContainer, newPosition, minPositon, maxPositioin = 0){
482    let btns = sliderContainer.parent().parent().find('.sliderBtn');
483    btns.removeClass('disabled');
484    
485    // Если включен бесконечный режим, не блокируем кнопки
486    if(!(sliderContainer.attr('data-infinite') != undefined && sliderContainer.attr('data-infinite') == 1)){
487        if(newPosition == maxPositioin){
488            sliderContainer.parent().parent().find('.sliderBtn.prev').addClass('disabled');
489        }
490        if(newPosition == minPositon){
491            sliderContainer.parent().parent().find('.sliderBtn.next').addClass('disabled');
492        }
493    }
494}
495
496
497
498
499new customCssStyleSliderActivator('.catalogInterlayerBuiltHouses2025Slider', false, true);
500new customCssStyleSliderActivator('.interlayerBox2025', false, true, false, true, true);
501
502
503/*constructionStages2025Tabs*/
504let constructionStages2025TabsBoxes = $('.constructionStages2025TabsBox');
505for(let i=0;i<constructionStages2025TabsBoxes.length;i++){
506    let constructionStages2025Tab = $(constructionStages2025TabsBoxes[i]).find('.constructionStages2025Tab');
507    let constructionStages2025Data = $(constructionStages2025TabsBoxes[i]).find('.constructionStages2025Data');
508    for(let j=0;j<constructionStages2025Tab.length;j++){
509        $(constructionStages2025Data[j]).find('.tabBtn').text($(constructionStages2025Tab[j]).text());
510    }
511}
512$('.constructionStages2025Tab:first-child').addClass('selected');
513$('.constructionStages2025Data:first-child').addClass('selected');
514$('.constructionStages2025Tab').click(function(){
515    let newActiveIndex = $(this).index();
516    $(this).parent().children().removeClass('selected');
517    $(this).addClass('selected');
518    let dataBox = $(this).closest('.constructionStages2025TabsBox').find('.constructionStages2025DataBox');
519    let dataItems = $(dataBox).children();
520    dataItems.removeClass('selected');
521    $(dataItems[newActiveIndex]).addClass('selected');
522    dataBox.css('height', $(dataItems[newActiveIndex]).outerHeight()+'px');
523});
524$('.tabBtn').click(function(){
525    let newActiveIndex = $(this).parent().index();
526    $(this).parent().parent().children().removeClass('selected');
527    $(this).parent().addClass('selected');
528    let tabs = $(this).closest('.constructionStages2025TabsBox').find('.constructionStages2025Tabs .constructionStages2025Tab');
529    tabs.removeClass('selected');
530    $(tabs[newActiveIndex]).addClass('selected');
531    let dataBox = $(this).closest('.constructionStages2025TabsBox').find('.constructionStages2025DataBox');
532    dataBox.css('height', 'auto');
533    /*TODO: показать активный блок и проскроллить к нему*/
534});
535
536
537
538/*questionsBlock2025*/
539if($('div').is('.questionDerevo2025')){
540  $('.questionDerevo2025').click(function(){
541    let item=$(this).parent();
542    item.toggleClass('active');
543    let answerOld =  item.find('.answerDerevo2025');
544    if(item.hasClass('active')){
545      /*answerOld.css('height', answerOld.find('.text').outerHeight()+'px');*/
546    }else{
547      /*answerOld.css('height', '0px');*/
548    }
549  });
550}
551$('.faqDerevo2025Box:first-child').addClass('active');
552
553
554
555$('.fixMenu2025_2 .close').click(function(){
556    $('.fixMenu2025_2').removeClass('opened');
557    $('.menuBtn2025').removeClass('active');
558});
559$('.menuBtn2025').click(function(){
560    if($(this).hasClass('active')){
561        $('.fixMenu2025_2').removeClass('opened');
562        $(this).removeClass('active');
563    }else{
564        $('.fixMenu2025_2').addClass('opened');
565        $(this).addClass('active');
566        $('.searchHeader2025').removeClass('active');
567        $('.mobSearchBtn2025').removeClass('active');
568    }
569});
570
571
572$('.mobSearchBtn2025').click(function(){
573    if($(this).hasClass('active')){
574        $('.searchHeader2025').removeClass('active');
575        $(this).removeClass('active');
576    }else{
577        $(this).addClass('active');
578        $('.searchHeader2025 input').focus();
579        $('.searchHeader2025').addClass('active');
580        $('.fixMenu2025_2').removeClass('opened');
581        $('.menuBtn2025').removeClass('active');
582    }
583});
584
585$('.searchHeader2025 input').focusout(function(){
586    setTimeout(function(){$('.mobSearchBtn2025').removeClass('active');$('.searchHeader2025').removeClass('active');}, 200);
587    
588});
589
590/*Удалить тестовый год*/
591/*$('.excursionDerevo2025Title').click(testExcursionVideo);
592var excursData=['v','h','vv','hv','hh','vvv','hvv','hhv','hhh','vvvv','hvvv','hhvv','hhhv','hhhh'];
593var activeExcursData = excursData.length-1;
594function testExcursionVideo(){
595    if(activeExcursData==excursData.length-1){
596        activeExcursData=0;
597    }else{
598        activeExcursData++;
599    }
600    let htmlData='';
601    for(let i=0;i<excursData[activeExcursData].length;++i){
602        let classItem = '';
603        if(excursData[activeExcursData][i]=='v'){
604            classItem = 'clip';
605        }
606        htmlData+='<div class="excursionDerevo2025Video '+classItem+'" style="background:#467b1f;"></div>';
607    }
608    for(let i=0;i<excursData.length;++i){
609        $('.excursionDerevo2025Content').removeClass('videocount_'+excursData[i]);
610    }
611    $('.excursionDerevo2025Content').addClass('videocount_'+excursData[activeExcursData]);
612    $('.excursionDerevo2025VideoBox').html(htmlData);
613    //setTimeout(testExcursionVideo,1000);
614}*/
615/**/
616
617
618
619if(isMobile != undefined && isMobile.iOS()){
620    $('body').addClass('ios');
621}

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.