PageSourceSearch

https://fleet-cards.ru/js/main.js

js fleet-cards.ru collected 2026-10-02 00:40:39 UTC 33,805 bytes, 995 lines download raw bytes

1var changeSlideTimeout = false;
2
3$.fancybox.defaults.i18n = {
4	en: {
5		CLOSE: "Закрыть",
6		NEXT: "Следующий",
7		PREV: "Предыдущий",
8		ERROR: "The requested content cannot be loaded. <br/> Please try again later.",
9		PLAY_START: "Начать слайдшоу",
10		PLAY_STOP: "Остановить слайдшоу",
11		FULL_SCREEN: "Полный экран",
12		THUMBS: "Эскизы",
13		DOWNLOAD: "Скачать",
14		SHARE: "Поделиться",
15		ZOOM: "Зум" 
16	}
17};
18$.fancybox.defaults.touch = false;
19$.fancybox.defaults.afterShow = function(instance, current){
20    if ('slick' in $('.window .list')) {
21        $('.window .list').slick('setPosition'); 
22        $('.window .list').slick('slickGoTo', 0);
23        if (changeSlideTimeout) {
24            clearTimeout(changeSlideTimeout);
25        }
26        changeSlideTimeout = setTimeout("$('.window .list').slick('slickNext');", 5000);
27    }
28    if ('slick' in $('.logos .items')) {
29        $('.logos .items').slick('setPosition'); 
30    }
31    if(current.$content.attr('data-iframe-src')) {
32        current.$content.html('<iframe width="100%" height="100%" frameborder="0" scrolling="no" allowfullscreen="allowfullscreen" allow="geolocation" src="'+current.$content.attr('data-iframe-src')+'"></iframe>');
33    }
34};
35
36function randomInteger(min, max) {
37  let rand = min - 0.5 + Math.random() * (max - min + 1);
38  return Math.round(rand);
39}
40
41$('form input:not([type="radio"]):not([type="checkbox"])').on('focus', function (event) {
42    if ($(this).attr('name')) {
43        $(this).attr('data-name', $(this).attr('name'));
44        $(this).attr('name', $(this).attr('name') + randomInteger(999, 9999));
45    }
46});
47
48$('form input:not([type="radio"]):not([type="checkbox"])').on('focusout', function (event) {
49    if ($(this).attr('data-name')) {
50        $(this).attr('name', $(this).attr('data-name'));
51    }
52});
53
54$('form').prepend('<input type="hidden" name="nobot" value="1">');
55
56$(document).on("keypress", "[data-number]", function (event) {
57  var regex = /^[\d]*$/;
58  var key = String.fromCharCode(event.which);
59
60  if (regex.test(key)) {
61    return true;
62  }
63
64  return false;
65});
66
67$('.get_certificate_form a').click(function(e){
68    e.preventDefault(); 
69    $(this).closest('form').submit();
70})
71
72$('.get_invoice_form a').click(function(e){
73    e.preventDefault(); 
74    $(this).closest('form').submit();
75})
76
77/* Popup slider */
78
79$('.window .list').slick({
80    infinite: false,
81    slidesToShow: 1,
82    slidesToScroll: 1,
83    arrows: true,
84    dots: true,
85    pauseOnHover: false,
86    pauseOnFocus: false,
87    prevArrow: '<a class="slick-prev arrow"><img src="img/arrow_prev.svg"></a>',
88    nextArrow: '<a class="slick-next arrow"><img src="img/arrow_next.svg"></a>',
89});
90
91$('.logos .items').slick({
92    infinite: false,
93    slidesToShow: 2,
94    slidesToScroll: 1,
95    arrows: true,
96    dots: false,
97    prevArrow: '<a class="slick-prev control"><img src="img/popup_arrow_left.svg"></a>',
98    nextArrow: '<a class="slick-next control"><img src="img/popup_arrow_right.svg"></a>',
99    responsive: [
100    {
101      breakpoint: 600,
102      settings: {
103        slidesToShow: 1,
104      }
105    },
106  ]
107});
108
109$('.window .list').on('afterChange', function(event, slick, currentSlide){
110    if ((currentSlide + 1) !== $('.window .list .popup-item').length) {
111        if (changeSlideTimeout) {
112            clearTimeout(changeSlideTimeout);
113        }
114        changeSlideTimeout = setTimeout("$('.window .list').slick('slickNext');", 5000);
115    }
116});
117
118
119//var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ? true : false;
120
121var isMobile = $(window).width() < 768 ? true : false;
122$(window).resize(function(){
123    isMobile = $(window).width() < 768 ? true : false;
124});
125
126/* Сеть АЗС Desktop */
127if(isMobile){
128    $('.set-azs-map').remove();
129}
130
131function setRegionCookies(region) {
132    document.cookie = "region_selected=1; path=/; max-age=31536000";
133    document.cookie = "user_region="+ region +"; path=/; max-age=31536000";
134}
135
136$('[data-confirm-region').click(function(e){
137    e.preventDefault();  
138    var region = $(this).attr('data-confirm-region');
139    setRegionCookies(region);
140});
141
142$('[data-popup-close]').click(function(e){
143    e.preventDefault();  
144    $(this).closest('[data-popup]').hide();
145});
146
147$('[data-popup-show]').click(function(e){
148    e.preventDefault();  
149    $('[data-popup]').hide();
150    $('#' + $(this).attr('data-popup-show')).show();
151});
152
153
154function setRegionPrices(selected_region) {  
155    
156    setRegionCookies(selected_region);
157    
158    $(".header .prices").addClass('inactive');
159    $.post('', { action: 'get_region_prices', region: selected_region }).done(function(data){
160        $('.current_region').html(selected_region);
161        $('.popup').hide();
162        $(".header .prices").html(data);
163        $(".header .prices").removeClass('inactive');
164    });
165}
166
167
168$('#regions-names').change(function(){
169    var selected_region = $(this).find('option:selected').html();
170    var card = $(this).attr('data-card');
171    
172    $(".gas-price").addClass('inactive');
173    $.post('', { action: 'get_region_prices', region: selected_region, card: card }).done(function(data){
174        $(".gas-price").html(data);
175        $(".gas-price").removeClass('inactive');
176    });
177});
178
179var tima = document.getElementById("time");
180var date = document.getElementById("date");
181
182function time() {
183    var today = new Date();
184    var day_of_week = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"];
185    var month_of_year = ["Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря"];
186    var day_ = day_of_week[today.getDay()];
187    var date_ = today.getDate();
188    var month_ = month_of_year[today.getMonth()];
189    var year_ = today.getFullYear();
190    var hours_ = today.getHours();
191    var min_ = today.getMinutes();
192    var sec_ = today.getSeconds();
193    var zerom = zeros = '';
194    if(min_ < 10) zerom = '0';
195    if(sec_ < 10) zeros = '0';
196    tima.innerHTML = hours_+':'+zerom+min_+':'+zeros+sec_;
197    date.innerHTML = date_+' '+month_+' '+year_;
198}
199setInterval(time, 1);
200
201
202function suggest(query) {
203    var serviceUrl = "https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party",
204        token = "a554a3117b51669f8517709f5bd9c863d2a92b88";
205    var request = {
206        "query": query
207    };
208    var params = {
209        type: "POST",
210        contentType: "application/json",
211        headers: {
212            "Authorization": "Token " + token
213        },
214        data: JSON.stringify(request)
215    }
216
217    return $.ajax(serviceUrl, params);
218}
219
220function clearParty() {
221    $("[name='usersmallname']").val("");
222    $("[name='userorganization']").val("");
223    $("[name='userkpp ']").val("");
224    $("[name='useruradress']").val("");
225    $("[name='address_unrestricted_value']").val("");
226    $("[name='userogrh']").val("");
227}
228
229function showParty(suggestions) {
230    clearParty();
231    if (suggestions.length === 0) return;
232    var party = suggestions[0].data;
233    $("[name='usersmallname']").val(party.name.short_with_opf);
234    $("[name='userorganization']").val(party.name.full_with_opf);
235    $("[name='userkpp']").val(party.kpp);
236    $("[name='userogrh']").val(party.ogrn);
237    $("[name='useruradress']").val(party.address.value);
238    $("[name='address_unrestricted_value']").val(party.address.unrestricted_value);
239    
240    $("[name='userinn'], [name='usersmallname'], [name='userorganization'], [name='userkpp'], [name='userogrh'], [name='useruradress'], [name='address_unrestricted_value']").closest('.error').removeClass('error');
241}
242
243$("[name='userinn']").change(function(e) {
244    var promise = suggest(e.target.value);
245    promise
246        .done(function(response) {
247            showParty(response.suggestions)
248            console.log(response);
249        })
250        .fail(function(jqXHR, textStatus, errorThrown) {
251            console.log(textStatus);
252            console.log(errorThrown);
253        });
254});
255
256
257
258$("[name='userbik']").change(function(e) {
259    var promise = suggest_bank(e.target.value);
260    promise
261        .done(function(response) {
262            showBank(response.suggestions)
263            console.log(response);
264        })
265        .fail(function(jqXHR, textStatus, errorThrown) {
266            console.log(textStatus);
267            console.log(errorThrown);
268        });
269});
270
271function suggest_bank(query) {
272    var serviceUrl = "https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/bank",
273        token = "a554a3117b51669f8517709f5bd9c863d2a92b88";
274    var request = {
275        "query": query
276    };
277    var params = {
278        type: "POST",
279        contentType: "application/json",
280        headers: {
281            "Authorization": "Token " + token
282        },
283        data: JSON.stringify(request)
284    }
285    return $.ajax(serviceUrl, params);
286}
287
288function clearBank() {
289    $('[name="userbank"]').val("");
290    $('[name="userschet"]').val("");
291}
292
293function showBank(suggestions) {
294    clearBank();
295    if (suggestions.length === 0) return;
296    var bank = suggestions[0].data;
297    $('[name="userbank"]').val(bank.name && bank.name.payment || "");
298    $('[name="userschet"]').val(bank.correspondent_account);
299    
300    $('[name="userbik"], [name="userschet"], [name="userbank"]').closest('.error').removeClass('error');
301}
302
303
304
305/* Карты АЗС */
306function setAzsMap() {
307    var control = $('.set-azs-top .controls .map-control.active');
308
309    var name = control.html();
310    var dataMap = control.attr('data-map');
311    var azsMap = $('.set-azs-map');
312    var dataLink = control.attr('data-link');
313
314    $('.set-azs-top h1').html(name);
315
316    if (isMobile) {
317        $('.set-azs-top .action a').attr('href',dataLink);
318    } else {
319        if ((dataMap == 'gazprom') || (dataMap == 'all')) {
320            azsMap.html('<iframe width="100%" height="100%" frameborder="0" scrolling="no" allowfullscreen="allowfullscreen" allow="geolocation" src="'+ dataLink +'"></iframe>');
321        }
322        if ((dataMap == 'gazprom_ges')) {
323            azsMap.html('<iframe width="100%" height="100%" frameborder="0" scrolling="no" allowfullscreen="allowfullscreen" allow="geolocation" src="'+ dataLink +'"></iframe>');
324        }
325        if (dataMap == 'optima') {
326            azsMap.html('<iframe width="100%" height="100%" frameborder="0" scrolling="no" allowfullscreen="allowfullscreen" allow="geolocation" src="'+ dataLink +'"></iframe>');
327        }
328        if (dataMap == 'shell') {
329            azsMap.html('<iframe width="100%" height="100%" frameborder="0" scrolling="no" allowfullscreen="allowfullscreen" allow="geolocation" src="'+ dataLink +'"></iframe>');
330        }
331    }
332}
333
334$('.set-azs-top .controls .map-control').click(function(){
335    $('.set-azs-top .controls .map-control').removeClass('active');
336    $(this).addClass('active');
337    setAzsMap();
338});
339
340setAzsMap();
341
342/* Шаг 4. Заказ топливных карт. Выбор карты и количество. */
343$('.stage-description .card-options .items .item a').click(function(){
344    var cardName = $(this).attr('data-card');
345    var cardValue = $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName +' .count').html();
346    $('.stage-description .card-options .items .item a').removeClass('active');
347    $(this).addClass('active');
348    $('#card-counter').attr('data-card', cardName);
349    $('#card-counter').val(cardValue);
350});
351$(document).ready(function(){
352    $('#card-counter').change(function() { 
353        var cardCount = $(this).val();
354        var cardName = $(this).attr('data-card');
355        if (cardCount > 0) {
356            $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName).removeClass('hidden');
357        } else {
358            $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName).addClass('hidden');
359        }
360        $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName +' .count').html(cardCount);
361    });
362});
363
364$('.stage-description .card-request .form-request.zakaz .form-group .card-counts .plus').click(function(){
365    this.parentNode.querySelector('input[type=number]').stepUp();
366    var cardCount = $('#card-counter').val();
367    var cardName = $('#card-counter').attr('data-card');
368    if (cardCount > 0) {
369        $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName).removeClass('hidden');
370    } else {
371        $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName).addClass('hidden');
372    }
373    $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName +' .count').html(cardCount);
374    
375    var card_val = Number( $('[name="card_count_' + cardName + '"]').val() );
376    $('[name="card_count_' + cardName + '"]').val(card_val + 1);
377});
378
379$('.stage-description .card-request .form-request.zakaz .form-group .card-counts .minus').click(function(){
380    this.parentNode.querySelector('input[type=number]').stepDown();
381    var cardCount = $('#card-counter').val();
382    var cardName = $('#card-counter').attr('data-card');
383    if (cardCount > 0) {
384        $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName).removeClass('hidden');
385    } else {
386        $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName).addClass('hidden');
387    }
388    $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName +' .count').html(cardCount);
389    
390    var card_val = Number($('[name="card_count_' + cardName + '"]').val());
391    if (card_val) {
392        $('[name="card_count_' + cardName + '"]').val(card_val - 1);
393    }
394    
395});
396$('.stage-description .card-request .form-request.zakaz .cards-counters .card-block .right .delete').click(function(e){
397    e.preventDefault();    
398    var selectedCard = $('#card-counter').attr('data-card');
399    var cardName = $(this).attr('data-card');
400    var cardCount = $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName +' .count').html(0);
401    if (cardCount > 0) {
402        $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName).removeClass('hidden');
403    } else {
404        $('.stage-description .card-request .form-request.zakaz .cards-counters .card-block.' + cardName).addClass('hidden');
405    }
406    if(cardName == selectedCard) {
407        $('#card-counter').val('0');
408    }
409    
410    $('[name="card_count_' + cardName + '"]').val(0);
411});
412
413// $('.card-request .form-request .form-group input').change(function(){
414
415// });
416
417/* Выбор способа доставки */
418$('.form-request.zakaz .radio-block.dostavka .radio-group>label').click(function() { 
419    var subContent = $(this).closest('.radio-group').find('.sub-content');
420    var radio = $(this).closest('.radio-group').find('> label input:radio');
421    radio.attr('checked', true);
422    radio.trigger('change');
423    $('.form-request.zakaz .radio-group .sub-content').removeClass('show');
424    subContent.addClass('show');
425});
426$('.card-request .form-request .radio-group .sub-content .controls button').click(function(e){
427    
428    if ($(this).siblings('input[type="radio"]').length) {
429        $(this).siblings('input[type="radio"]').prop('checked', true).trigger('change');
430    }
431    
432    var dataShow = $(this).attr('data-show');
433    var operator = $(this).closest('.sub-content').find('.o-operator');
434    operator.removeClass('show');
435    $('.card-request .form-request .radio-group .sub-content .controls button').removeClass('active');
436    $(this).addClass('active');
437    if(dataShow == 'o-operator') {
438        operator.addClass('show');
439    }
440});
441
442
443/* Telephone Mask Input */
444if($('#your-phone-corporate').length > 0) {
445    $('#your-phone-corporate').mask("+7(999) 999-9999");
446}
447if($('#your-phone').length > 0) {
448    $('#your-phone').mask("+7(999) 999-9999");
449}
450if($('#dostavka_phone').length > 0) {
451    $('#dostavka_phone').mask("+7(999) 999-9999");
452}
453if($('#edo_person_phone').length > 0) {
454    $('#edo_person_phone').mask("+7(999) 999-9999");
455}
456
457
458
459
460
461/* Заполнение реквизитов */
462$('.card-request .form-request.additional .form-group .edit').click(function(e){
463    e.preventDefault();
464    var input = $(this).closest('.form-group').find('input');
465    if($(this).hasClass('enable')) {
466        $(this).removeClass('enable');
467        $(input).unbind('focus');
468    } else {
469        $(this).addClass('enable');
470        input.focus();
471    }
472});
473$('.card-request .form-request.additional .form-group input').focus(function(){
474    var button = $(this).closest('.form-group').find('.edit');
475    button.addClass('enable');
476});
477$('.card-request .form-request.additional .form-group input').focusout(function(){
478    var button = $(this).closest('.form-group').find('.edit');
479    button.removeClass('enable');
480});
481/* Main Page stories popup */
482var timer;
483$('#exampleModal').on('shown.bs.modal', function (e) {
484    var start = new Date();
485    var maxTime = 4000;
486    var timeoutVal = Math.floor(maxTime/100);
487    animateUpdate();
488    function animateUpdate() {
489        var now = new Date();
490        var timeDiff = now.getTime() - start.getTime();
491        perc = Math.round((timeDiff/maxTime)*100);
492        console.log(perc);
493        if (perc <= 100) {
494            updateProgress(perc);
495            timer = setTimeout(animateUpdate, timeoutVal);
496            timer;
497        }
498        if (perc == 100) {
499            $('#exampleModal').modal('hide');
500        }
501    }
502    function updateProgress(percentage) {
503        $('#exampleModal .modal-header .progress-bar').css("width", percentage + "%");
504    }
505});
506$('#exampleModal').on('hide.bs.modal', function (e) {
507    clearTimeout(timer);
508});
509
510$(document).on('focus', '.error', function(){
511    if ($(this).attr('type') == 'radio') {
512        $('input[name="'+ $(this).attr('name') +'"]').removeClass('error');
513        $('input[name="'+ $(this).attr('name') +'"]').parent().removeClass('error');
514    }
515    else {
516        $(this).removeClass('error');
517        $(this).parent().removeClass('error');
518    }
519});
520
521$(document).on('change', '.error', function(){
522    if ($(this).attr('type') == 'radio') {
523        $('input[name="'+ $(this).attr('name') +'"]').removeClass('error');
524    }
525});
526
527/* Main Page corporate request */
528$('.main-page-for-corporate .form-request .action button[type="button"]').click(function(){
529    var input = $(this).closest('.form-group').find('input[type="text"]');
530    var val = input.val();
531    if (!val) {
532        input.addClass('error');
533    }
534    else {
535        var currentParent = $(this).closest('.form-group');
536        currentParent.removeClass('active');
537        currentParent.next().addClass('active');
538    }
539});
540
541/* Scroll to element */
542$("[data-scroll").click(function (e){
543    e.preventDefault();
544    var el = $(this);
545    $('html, body').animate({
546        scrollTop: $(el.attr('href')).offset().top
547    }, 1000);
548});
549
550$(document).on('change', '[name="userinn"], [data-name="userinn"]', function(e){
551    var name = $(this).attr('data-name') || $(this).attr('name');
552    $('[name="'+ name +'"]').val($(this).val());
553});
554
555$(document).on('change', '[name="userbik"], [data-name="userbik"]', function(e){
556    var name = $(this).attr('data-name') || $(this).attr('name');
557    $('[name="'+ name +'"]').val($(this).val());
558});
559
560$(document).on('change', '[name="dostavka"]', function(e){
561    
562    var name = $(this).attr('data-name') || $(this).attr('name');
563    
564    if($('[name="'+ name +'"]:checked').val() == 'Самовывоз') {
565        $('.form-request.additional input').removeAttr('data-required');
566    }
567    else {
568        $('.form-request.additional input').attr('data-required');
569    }
570});
571
572$(document).on('submit', '.form-card', function(e){
573
574    var form = $(this);
575    var step = form.find('[name="step"]').val();
576    var valid = true;
577    
578    if (step == 4) {
579        var card_valid = false;
580        
581        $(this).find('[data-card-required]').each(function(){
582            if (Number($(this).val())) {
583                card_valid = true;
584            }
585        })
586        
587        if (!card_valid) {
588            $('.card-counts').closest('.form-group').addClass('error');
589            valid = false;
590        }
591    }
592
593    $(this).find('[data-required]').each(function(){
594        
595        var input = $(this);
596        
597        if ($(this).attr('type') == 'checkbox') {
598            if (!$(this).prop('checked')) {
599                $(this).addClass('error');
600                valid = false;
601            }
602        }
603        else if ($(this).attr('type') == 'radio') {
604            var checked = $('input[name="'+ $(this).attr('name') +'"]:checked');
605
606            if (!checked.length) {
607                $(this).addClass('error');
608                valid = false;
609            }
610            
611            if ($(this).prop('checked') ) {
612                
613                if ($(this).attr('data-required-text-group')) {
614                    $('#' + input.attr('data-required-text-group') + ' input').each(function(){
615                        if (!$(this).val()) {
616                            $(this).addClass('error');
617                            valid = false;
618                        }
619                    })
620                }
621                if ($(this).attr('data-required-radio-group')) {
622                    $('#' + $(this).attr('data-required-radio-group') + ' input').each(function(){
623                        var checked = $('input[name="'+ $(this).attr('name') +'"]:checked');
624                        if (!checked.length) {
625                            $(this).addClass('error');
626                            valid = false;
627                        }
628                    })
629                }
630            }
631            
632            
633        }
634        else {
635            if (!$(this).val()) {
636                if (form.find('[name="step"]').val() == 3 && $(this).parent().is('.form-group')) {
637                    $(this).parent().addClass('error');
638                }
639                else {
640                    $(this).addClass('error');
641                }
642                valid = false;
643            }
644        }
645    });
646    
647    
648    
649    if (!valid) {
650        if (step == 3) {
651            if (!$(this).find('.personal .error').length && $(this).find('.additional .error').length && $(this).find('.personal.show').length) {
652                $(this).find('.additional .error').removeClass('error');
653                $(this).parent().find('[data-menu="additional"]').trigger('click');
654                $('.form-card button[type="submit"]').html('Подтвердить');
655            }
656            else {
657                if ($(this).find('.personal .error').length && !$(this).find('.additional .error').length) {
658                    $(this).parent().find('[data-menu="personal"]').trigger('click');
659                    $('.form-card button[type="submit"]').html('Продолжить');
660                }
661                if (!$(this).find('.personal .error').length && $(this).find('.additional .error').length) {
662                    $(this).parent().find('[data-menu="additional"]').trigger('click');
663                    $('.form-card button[type="submit"]').html('Подтвердить');
664                }
665            }
666        }
667        if (step == 4) {
668            if (!$(this).find('.personal .error').length && $(this).find('.additional .error').length && $(this).find('.personal.show').length) {
669                $(this).find('.additional .error').removeClass('error');
670                $(this).parent().find('[data-menu="additional"]').trigger('click');
671                $('.form-card button[type="submit"]').html('Подтвердить');
672            }
673            else {
674                if ($(this).find('.personal .error').length && !$(this).find('.additional .error').length) {
675                    $(this).parent().find('[data-menu="personal"]').trigger('click');
676                    $('.form-card button[type="submit"]').html('Продолжить');
677                }
678                if (!$(this).find('.personal .error').length && $(this).find('.additional .error').length) {
679                    $(this).parent().find('[data-menu="additional"]').trigger('click');
680                    $('.form-card button[type="submit"]').html('Подтвердить');
681                }
682            }
683            
684        }
685        
686        return false;
687    }
688
689    if (form.find('.loader').length) {
690        form.find('> *:not(.loader)').css('opacity', 0);
691        form.find('> *:not(.loader)').css('pointer-events', 'none');
692        form.find('.loader').show();
693    }
694    
695    return true
696});
697
698
699$(document).on('input', '.avans input', function () {
700    var $item = $(this);
701    
702    if ($item.val() !== "") {
703        var rub = $item.closest('.avans').find('.rub');
704        rub.html('<span>' + $item.val() + '</span>руб');
705        rub.show();
706    }
707    else {
708        $item.closest('.avans').find('.rub').hide();
709    }
710});
711
712/* Sending forms */
713$(document).on('submit', '.form-request', function(e){
714    e.preventDefault();
715
716    var form = $(this);
717    var data = $(this).serialize();
718    var valid = true;
719    
720    if (!form.find('[name="nobot"]').length) {
721        return;
722    }
723
724    $(this).find('[data-required]').each(function(){
725        if ($(this).attr('type') == 'checkbox') {
726            if (!$(this).prop('checked')) {
727                $(this).addClass('error');
728                valid = false;
729            }
730        }
731        else {
732            if (!$(this).val()) {
733                $(this).addClass('error');
734                valid = false;
735            }
736        }
737        
738    });
739
740    if (!valid) return;
741    
742    if (form.find('.loader').length) {
743        form.find('> *:not(.loader)').css('opacity', 0);
744        form.find('.loader').show();
745    }
746
747    $.ajax({
748        type: 'POST',
749        url: '',
750        data: data,
751        success: function(data) {
752            if (form.closest('.main-page-for-corporate').length) {
753                form.find('.form-group.active').removeClass('active');
754                form.find('.form-group:first').addClass('active');
755            }
756
757            form.find('input[type="text"]').val('');
758            form.find('input[type="checkbox"]').prop('checked', false);
759            
760            
761            if (form.find('.success').length) {
762                form.find('.success').css('opacity', 1);
763                form.find('.success').css('display', 'flex');
764                form.find('> *:not(.success)').hide();
765            }
766            else {
767                form.find('.loader').hide();
768                form.find('> *:not(.loader)').css('opacity', 1);
769                
770                $.fancybox.open({
771                    src  : '#notice',
772                    type : 'inline',
773                    opts : {
774                        touch: false,
775                    }
776                });
777            }
778        },
779        error: function(xhr, str){
780            alert('Возникла ошибка: ' + xhr.responseCode);
781        }
782    });
783});
784
785/* Main Page Top slider */
786var swiper = new Swiper('.main-page-top-slider .swiper-container', {
787    spaceBetween: 100,
788    speed: 600,
789    loop: true,
790    autoplay: {
791        delay: 5000,
792        disableOnInteraction: false,
793    },
794    pagination: {
795        el: '.main-page-top-slider .swiper-pagination',
796        clickable: true,
797        renderBullet: function (index, className) {
798            if(!isMobile) {
799                return '<span class="dot swiper-pagination-bullet"><svg><circle r="11" cx="20" cy="20" fill-opacity="0"></circle></svg></span>';
800            } else {
801                return '<span class="dot swiper-pagination-bullet"><svg><circle r="9" cx="10" cy="10" fill-opacity="0"></circle></svg></span>';
802            }
803            
804        },
805    },
806    // navigation: {
807    //     nextEl: '.main-page-top-slider .swiper-button-next',
808    //     prevEl: '.main-page-top-slider .swiper-button-prev',
809    // },
810});
811
812 $(window).resize(function(){
813    if(!isMobile) {
814        $('.swiper-pagination-bullet').html('<svg><circle r="11" cx="20" cy="20" fill-opacity="0"></circle></svg>')
815    } else {
816        $('.swiper-pagination-bullet').html('<svg><circle r="9" cx="10" cy="10" fill-opacity="0"></circle></svg>')
817    }
818 });
819
820/* Main Page Stories slider */
821var swiperStories = new Swiper('.main-page-stories .swiper-container', {
822    spaceBetween: 10,
823    slidesPerView: 'auto',
824    // slidesPerView: 'auto',
825    loop: false,
826    navigation: {
827        nextEl: '.main-page-stories .swiper-button-next',
828        prevEl: '.main-page-stories .swiper-button-prev',
829    },
830    // pagination: {
831    //     el: '.main-page-stories .swiper-pagination',
832    //     clickable: true,
833    // },
834    breakpoints: {
835        // when window width is <= 499px
836        769: {
837            slidesPerView: 2,
838            spaceBetween: 20
839        },
840        990: {
841            // slidesPerView: 4,
842            slidesPerView: 'auto',
843            spaceBetween: 20
844        },
845    },
846});
847
848
849
850
851/* Main Page Dostijenia slider */
852var swiper = new Swiper('.main-page-nashi-dostijenia .swiper-container', {
853    spaceBetween: 20,
854    slidesPerView: 1,
855    loop: true,
856    navigation: {
857        nextEl: '.main-page-nashi-dostijenia .swiper-button-next',
858        prevEl: '.main-page-nashi-dostijenia .swiper-button-prev',
859    },
860    // pagination: {
861    //     el: '.main-page-nashi-dostijenia .swiper-pagination',
862    //     clickable: true,
863    // },
864    breakpoints: {
865        // when window width is <= 499px
866        769: {
867            // slidesPerView: 3,
868            slidesPerView: 'auto',
869            spaceBetween: 20,
870        },
871    },
872});
873
874$(window).scroll(function(){
875    if ($(window).scrollTop() >= 330) {
876      $('.header .bottom').addClass('fixed');
877    }
878    else {
879      $('.header .bottom').removeClass('fixed');
880    }
881});
882
883
884// $('.header .navigation .login a').click(function(){
885//     $(this).toggleClass('active');
886// });
887
888$('.header .navigation .top-cards button').click(function(){
889    $(this).toggleClass('active');
890    $(".header .card-sub-panel").slideToggle(100);
891});
892
893$('.navbar-offcanvas .navbar-nav .t-cards').click(function(){
894    $(this).toggleClass('active');
895    $(".navbar-offcanvas .navbar-nav .c-sub-panel").slideToggle(100);
896});
897
898$('.stage-description .card-request .content .form-controls button').click(function(){
899    var menuClass = $(this).attr('data-menu');
900    $('.stage-description .card-request .content .form-controls button').removeClass('active');
901    $(this).addClass('active');
902    $('.card-request .form-request').removeClass('show')
903    $('.card-request .content').find('.' + menuClass).addClass('show');
904    
905    if ($(this).index() > 0) {
906        $('.form-card button[type="submit"]').html('Подтвердить')
907    }
908    else {
909        $('.form-card button[type="submit"]').html('Продолжить')
910    }
911});
912
913if($('.partners-optima .partners-slider .swiper-container').length > 0) {
914var swiper = new Swiper('.partners-optima .partners-slider .swiper-container', {
915    slidesPerView: 1,
916    navigation: {
917      nextEl: '.partners-optima .partners-slider .swiper-button-next',
918      prevEl: '.partners-optima .partners-slider .swiper-button-prev',
919    },
920    breakpoints: {
921        // when window width is <= 499px
922        600: {
923            slidesPerView: 5,
924            spaceBetweenSlides: 30
925        },
926    },
927    loop: true,
928});
929}
930
931/* Regions Map */
932if($('#regions-names').length > 0) {
933let dropdown = $('#regions-names');
934dropdown.empty();
935dropdown.prop('selectedIndex', 0);
936const url = 'js/with-regions.json';
937
938$.getJSON(url, function (data) {
939
940    new RussianMap({
941        viewPort: data.viewPort,
942        mapId: 'region-map',
943        width: 548,
944        height: 297,
945        // дефолтовые атрибуты для контуров регионов
946        defaultAttr: {
947            fill: '#fff', // цвет которым закрашивать
948            stroke: '#F3F3F3', // цвет границы
949            'stroke-width': 1, // ширина границы
950            'stroke-linejoin': 'round' // скруглять углы
951        },
952        mouseMoveAttr: {
953            fill: '#FFF'
954        },
955        onMouseMove: function(event) {
956            //console.log(this.region.polygons[0]);
957            //this.region.attr({"fill":"#FFCC00"});
958            //console.log('mouse on ' + this.region.name + ' (ident: ' + this.region.ident + ')');
959        },
960        onMouseOut: function(event) {
961           // console.log('out on ' + this.region.name + ' (ident: ' + this.region.ident + ')');
962        },
963        onMouseClick: function(event) {
964            //console.log('clicked on ' + this.region.name);
965        }
966    }, data.regions);
967
968    $.each(data.regions, function (key, entry) {
969        dropdown.append($('<option></option>').attr('value', entry.ident).text(entry.name));
970    });
971
972    var options = $('#regions-names option');
973    var arr = options.map(function(_, o) { return { t: $(o).text(), v: o.value }; }).get();
974    arr.sort(function(o1, o2) { return o1.t > o2.t ? 1 : o1.t < o2.t ? -1 : 0; });
975    options.each(function(i, o) {
976        o.value = arr[i].v;
977        $(o).text(arr[i].t);
978    });
979
980    dropdown.prepend('<option disabled>Выбрать регион</option>');
981
982    var current_region = $('.current_region').text();
983    if (current_region) {
984        $('#regions-names option').each(function(el) {
985            if (current_region == $(this).text()) {
986                $(this).attr('selected', true);
987                $(this).trigger('change');
988            }
989        });
990    }
991    
992    
993
994});
995}

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.