1$(document).ready(function(){ 2 var win = $(window); 3 var ww = win.width(); 4 var wh = win.height(); 5 var tablet = 992; 6 var mobile = 767; 7 var isTablet = false; 8 var isMobile = false; 9 var scrollPos = win.scrollTop(); 10 var map; 11 12 13 //$('.modal_feedback').modal('show'); 14 15 $('.modal').on('hidden.bs.modal', function(){ 16 $('body').removeClass('modal-open'); 17 }); 18 19 $('.modal').on('shown.bs.modal', function(){ 20 $('body').addClass('modal-open'); 21 }); 22 23 // Viewport values 24 function win_resize() { 25 ww = win.width(); 26 wh = win.height(); 27 28 if(tablet > ww) { 29 isTablet = true; 30 } else { 31 isTablet = false; 32 } 33 34 if(mobile > ww) { 35 isMobile = true; 36 } else { 37 isMobile = false; 38 } 39 } 40 41 function win_scroll() { 42 scrollPos = win.scrollTop(); 43 } 44 45 win_scroll(); 46 win_resize(); 47 48 win.on('resize', win_resize); 49 win.on('scroll', win_scroll); 50 51 $.fn.isInViewport = function() { 52 if($(this).length >0){ 53 var elementTop = $(this).offset().top; 54 var elementBottom = elementTop + $(this).outerHeight(); 55 56 var viewportTop = scrollPos; 57 var viewportBottom = viewportTop + wh; 58 59 return elementBottom > viewportTop && elementTop < viewportBottom; 60 } 61}; 62 63 64 // Main feedback 65 // var mainFeedback = $('.main__feedback'); 66 // var mainFeedbackBox = mainFeedback.find('.contact_line'); 67 68 // if(mainFeedback.length) { 69 // var nextBox = $('.js-contact_line--next'); 70 // var nextBoxPos = 0; 71 72 // win.on('scroll', function(){ 73 // if(!isTablet) { 74 // if(nextBox.length) { 75 // nextBoxPos = Math.round(nextBox.offset().top); 76 // } 77 78 // if(scrollPos > 80) { 79 // mainFeedbackBox.addClass('is-collapsed'); 80 // } else { 81 // mainFeedbackBox.removeClass('is-collapsed'); 82 // } 83 84 // if(scrollPos + (wh - 160) > nextBoxPos) { 85 // mainFeedbackBox.addClass('is-hidden'); 86 // nextBox.removeClass('is-collapsed'); 87 // } else { 88 // mainFeedbackBox.removeClass('is-hidden'); 89 // nextBox.addClass('is-collapsed'); 90 // } 91 // } 92 // }); 93 //} 94 95 96 // Main 97 var main_page = $('.main'); 98 99 if(main_page.length) { 100 var header = $('.top'); 101 var btnMainHead = $('.js-main-head'); 102 var btnMainPrinciples = $('.js-main-principles'); 103 var btnMainComplex = $('.js-main-complex'); 104 var MainHead = $('.main__head'); 105 var MainPrinciples = $('.main__principles'); 106 var MainComplex = $('.main__complex'); 107 var mainBackdrop = $('.main__backdrop'); 108 var mainBackdropBtn = $('.main__backdrop-close'); 109 var mainFb = $('.main__feedback'); 110 var mainPdf = $('.main__download'); 111 var mainRate = $('.main__rating'); 112 113 function mainBackdropShow(showCloseBtn) { 114 header.stop(true).animate({'opacity': '0.05'}, 300); 115 mainRate.stop(true).animate({'opacity': '0.05'}, 300); 116 mainPdf.stop(true).animate({'opacity': '0.05'}, 300); 117 mainFb.stop(true).animate({'opacity': '0.05'}, 300); 118 mainBackdrop.stop(true).fadeIn(300); 119 120 if(showCloseBtn) { 121 mainBackdropBtn.fadeIn(250); 122 } else { 123 mainBackdropBtn.fadeOut(250); 124 } 125 } 126 127 function mainBackdropHide() { 128 header.animate({'opacity': '1'}, 300); 129 mainRate.stop(true).animate({'opacity': '1'}, 300); 130 mainPdf.stop(true).animate({'opacity': '1'}, 300); 131 mainFb.animate({'opacity': '1'}, 300); 132 133 $('.main__backdrop').fadeOut(300); 134 } 135 136 function mainCloseAll() { 137 mainBackdropHide(); 138 139 prinsiplesPause(); 140 141 if(isMobile && $('.main__principles-wrap-mobile-2').hasClass('flickity-enabled')) { 142 prinsiples2Pause(); 143 prinsiples3Pause(); 144 } 145 146 $('body').removeClass('is-hold'); 147 148 MainHead.removeClass('is-active').animate({'opacity': '0'}, 300); 149 MainPrinciples.removeClass('is-active').animate({'opacity': '0'}, 300); 150 MainComplex.removeClass('is-active').animate({'opacity': '0'}, 300); 151 } 152 153 // Close btn 154 mainBackdropBtn.on('click', function(){ 155 mainCloseAll(); 156 }); 157 158 // Head
159 btnMainHead.on('click', function(){ 160 if(isTablet) { 161 mainCloseAll(); 162 $('body').addClass('is-hold'); 163 mainBackdropShow(true); 164 MainHead.stop(true).addClass('is-active').animate({'opacity': '1'}, 300); 165 } 166 }); 167 168 btnMainHead.on('mouseover', function(){ 169 if(!isTablet) { 170 mainBackdropShow(); 171 MainHead.stop(true).addClass('is-active').animate({'opacity': '1'}, 300); 172 } 173 }); 174 175 btnMainHead.on('mouseleave', function(){ 176 if(!isTablet) { 177 mainBackdropHide(); 178 MainHead.removeClass('is-active').animate({'opacity': '0'}, 300); 179 } 180 }); 181 182 // Principles 183 btnMainPrinciples.on('click', function(){ 184 if(isTablet) { 185 mainCloseAll(); 186 $('body').addClass('is-hold'); 187 mainBackdropShow(true); 188 prinsiplesPlay(); 189 190 if(isMobile && $('.main__principles-wrap-mobile-2').hasClass('flickity-enabled')) { 191 prinsiples2Play(); 192 prinsiples3Play(); 193 } 194 195 MainPrinciples.stop(true).addClass('is-active').animate({'opacity': '1'}, 300); 196 } 197 }); 198 199 btnMainPrinciples.on('mouseover', function(){ 200 if(!isTablet) { 201 mainBackdropShow(); 202 203 MainPrinciples.stop(true).addClass('is-active').animate({'opacity': '1'}, 300); 204 prinsiplesPlay(); 205 } 206 }); 207 208 btnMainPrinciples.on('mouseleave', function(){ 209 if(!isTablet) { 210 mainBackdropHide(); 211 212 MainPrinciples.removeClass('is-active').animate({'opacity': '0'}, 300); 213 prinsiplesPause(); 214 } 215 }); 216 217 // Complex 218 btnMainComplex.on('click', function(){ 219 if(isTablet) { 220 mainCloseAll(); 221 $('body').addClass('is-hold'); 222 mainBackdropShow(true); 223 MainComplex.stop(true).addClass('is-active').animate({'opacity': '1'}, 300); 224 } 225 }); 226 227 btnMainComplex.on('mouseover', function(){ 228 if(!isTablet) { 229 mainBackdropShow(); 230 231 MainComplex.stop(true).addClass('is-active').animate({'opacity': '1'}, 300); 232 } 233 }); 234 235 btnMainComplex.on('mouseleave', function(){ 236 if(!isTablet) { 237 mainBackdropHide(); 238 MainComplex.removeClass('is-active').animate({'opacity': '0'}, 300); 239 } 240 }); 241 242 243 // Services 244 var servicesItem = $('.services__item'); 245 var servicesItemLink = servicesItem.find('a'); 246 var servicesMore = $('.services__more'); 247 var servicesText; 248 var servicesClass; 249 250 servicesItem.on('mouseover', function(){ 251 if(!isTablet) { 252 servicesText = $(this).attr('data-text'); 253 servicesClass = $(this).attr('data-pos') + ' show'; 254 255 servicesMore.removeClass('p-left p-center p-right p-top p-middle p-bottom'); 256 257 servicesItem.not($(this)).addClass('is-hidden'); 258 servicesMore.addClass(servicesClass).find('p').html(servicesText); 259 } 260 }); 261 262 servicesItem.on('mouseleave', function(){ 263 if(!isTablet) { 264 servicesItem.removeClass('is-hidden'); 265 servicesMore.removeClass('show'); 266 } 267 }); 268 269 // servicesItemLink.on('click', function(e){ 270 // if(!isTablet) { 271 // e.preventDefault(); 272 // } 273 // }); 274 275 276 // Prinsiples ticker mobile2 277 var prinsiples2TickerSpeed = 2; 278 var prinsiples2Ticker = null; 279 var isPrinsiples2Paused = true; 280 var prinsiples2TickerBox = document.querySelector('.main__principles-wrap-mobile-2'); 281 282 function prinsiples2TickerUpdate() { 283 if (isPrinsiples2Paused) return; 284 285 if (prinsiples2Ticker.slides) { 286 prinsiples2Ticker.x = (prinsiples2Ticker.x - prinsi
286ples2TickerSpeed) % prinsiples2Ticker.slideableWidth; 287 prinsiples2Ticker.selectedIndex = prinsiples2Ticker.dragEndRestingSelect(); 288 prinsiples2Ticker.updateSelectedSlide(); 289 prinsiples2Ticker.settle(prinsiples2Ticker.x); 290 } 291 window.requestAnimationFrame(prinsiples2TickerUpdate); 292 } 293 294 function prinsiples2Pause() { 295 isPrinsiples2Paused = true; 296 } 297 298 function prinsiples2Play() { 299 if(isPrinsiples2Paused) { 300 isPrinsiples2Paused = false; 301 window.requestAnimationFrame(prinsiples2TickerUpdate); 302 } 303 } 304 305 prinsiples2Ticker = new Flickity(prinsiples2TickerBox, { 306 autoPlay: false, 307 prevNextButtons: false, 308 pageDots: false, 309 draggable: true, 310 wrapAround: true, 311 selectedAttraction: 0.015, 312 friction: 0.25, 313 draggable: false, 314 freeScroll: true, 315 rightToLeft: true, 316 imagesLoaded: true, 317 }); 318 prinsiples2Ticker.x = 0; 319 320 prinsiples2TickerUpdate(); 321 322 323 // Prinsiples ticker mobile3 324 var prinsiples3TickerSpeed = 2; 325 var prinsiples3Ticker = null; 326 var isPrinsiples3Paused = true; 327 var prinsiples3TickerBox = document.querySelector('.main__principles-wrap-mobile-3'); 328 329 function prinsiples3TickerUpdate() { 330 if (isPrinsiples3Paused) return; 331 332 if (prinsiples3Ticker.slides) { 333 prinsiples3Ticker.x = (prinsiples2Ticker.x - prinsi
333ples3TickerSpeed) % prinsiples3Ticker.slideableWidth; 334 prinsiples3Ticker.selectedIndex = prinsiples3Ticker.dragEndRestingSelect(); 335 prinsiples3Ticker.updateSelectedSlide(); 336 prinsiples3Ticker.settle(prinsiples3Ticker.x); 337 } 338 window.requestAnimationFrame(prinsiples3TickerUpdate); 339 } 340 341 function prinsiples3Pause() { 342 isPrinsiples3Paused = true; 343 } 344 345 function prinsiples3Play() { 346 if(isPrinsiples3Paused) { 347 isPrinsiples3Paused = false; 348 window.requestAnimationFrame(prinsiples3TickerUpdate); 349 } 350 } 351 352 prinsiples3Ticker = new Flickity(prinsiples3TickerBox, { 353 autoPlay: false, 354 prevNextButtons: false, 355 pageDots: false, 356 draggable: true, 357 wrapAround: true, 358 selectedAttraction: 0.015, 359 friction: 0.25, 360 draggable: false, 361 freeScroll: true, 362 initialIndex: 3, 363 imagesLoaded: true, 364 }); 365 prinsiples3Ticker.x = 0; 366 367 prinsiples3TickerUpdate(); 368 369 370 371 // Prinsiples ticker 372 var prinsiplesTickerSpeed = 2; 373 var prinsiplesTicker = null; 374 var isPrinsiplesPaused = true; 375 var prinsiplesTickerBox = document.querySelector('.main__principles .main__principles-wrap'); 376 377 function prinsiplesTickerUpdate() { 378 if (isPrinsiplesPaused) return; 379 380 if (prinsiplesTicker.slides) { 381 prinsiplesTicker.x = (prinsiplesTicker.x - prinsi
381plesTickerSpeed) % prinsiplesTicker.slideableWidth; 382 prinsiplesTicker.selectedIndex = prinsiplesTicker.dragEndRestingSelect(); 383 prinsiplesTicker.updateSelectedSlide(); 384 prinsiplesTicker.settle(prinsiplesTicker.x); 385 } 386 window.requestAnimationFrame(prinsiplesTickerUpdate); 387 } 388 389 function prinsiplesPause() { 390 isPrinsiplesPaused = true; 391 } 392 393 function prinsiplesPlay() { 394 if(isPrinsiplesPaused) { 395 isPrinsiplesPaused = false; 396 window.requestAnimationFrame(prinsiplesTickerUpdate); 397 } 398 } 399 400 prinsiplesTicker = new Flickity(prinsiplesTickerBox, { 401 autoPlay: false, 402 prevNextButtons: false, 403 pageDots: false, 404 draggable: true, 405 wrapAround: true, 406 selectedAttraction: 0.015, 407 friction: 0.25, 408 draggable: false, 409 freeScroll: true, 410 imagesLoaded: true, 411 }); 412 prinsiplesTicker.x = 0; 413 414 prinsiplesTickerUpdate(); 415 416 417 // Logos ticker 418 var tickerSpeed = 1; 419 var logosTickers = []; 420 var logosBoxes = document.querySelectorAll('.clients__row'); 421 422 Array.prototype.forEach.call(logosBoxes, function(box, index) { 423 var state = { paused: true, flkty: null }; 424 425 state.flkty = new Flickity(box, { 426 autoPlay: false, 427 prevNextButtons: false, 428 pageDots: false, 429 wrapAround: true, 430 selectedAttraction: 0.015, 431 friction: 0.25, 432 rightToLeft: box.classList.contains('clients__row--right'), 433 draggable: false, 434 imagesLoaded: true, 435 }); 436 437 function tick() { 438 if (state.paused) return; 439 if (state.flkty.slides) { 440 state.flkty.x = (state.flkty.x - tickerSpeed) % state.flkty.slideableWidth; 441 state.flkty.selectedIndex = state.flkty.dragEndRestingSelect(); 442 state.flkty.updateSelectedSlide(); 443 state.flkty.settle(state.flkty.x); 444 } 445 window.requestAnimationFrame(tick); 446 } 447 448 state.play = function() { 449 if (state.paused) { 450 state.paused = false; 451 window.requestAnimationFrame(tick); 452 } 453 }; 454 state.pause = function() { state.paused = true; }; 455 456 tick(); 457 logosTickers.push(state); 458 }); 459 460 function logosPlayAll() { logosTickers.forEach(function(t) { t.play(); }); } 461 function logosPauseAll() { logosTickers.forEach(function(t) { t.pause(); }); } 462 463 if(isTablet || isMobile) { 464 logosPlayAll(); 465 } else { 466 $(window).on('resize scroll', function() { 467 if ($('.clients__list').isInViewport()) { 468 logosPlayAll(); 469 } else { 470 logosPauseAll(); 471 } 472 }); 473 } 474 } 475 476 477 // Cases 478 var cases_item = $('.cases_main__item'); 479 var cases_entry = $('.cases__entry'); 480 var cases_main = $('.cases_main'); 481 482 if(cases_main.length) { 483 var cases_collapse = function() { 484 var case_height = cases_item.height(); 485 var case_margin = parseInt(cases_item.css('margin-bottom')); 486 var case_offset = case_height + case_margin; 487 488 $('.cases_main__item:first').css({marginTop: -case_offset}); 489 $('.cases_main .section__head').css({marginBottom: case_offset}); 490 } 491 492 cases_collapse(); 493 494 $(window).on('resize', function(){ 495 cases_collapse(); 496 }); 497 } 498 499 if(cases_item.length) { 500 var cases_item_thumb = cases_item.find('.cases_main__item-thumb'); 501 502 cases_item_thumb.on('mouseover', function(){ 503 $(this).closest('.cases_main__item').addClass('is-hover'); 504 }); 505 506 cases_item_thumb.on('mouseleave', function(){ 507 $(this).closest('.cases_main__item').removeClass('is-hover'); 508 }); 509 } 510 511 if(cases_entry.length) { 512 var cases_entry_thumb = cases_entry.find('.cases__entry-thumb'); 513 514 cases_entry_thumb.on('mouseover', function(){ 515 $(this).closest('.cases__entry').addClass('is-hover'); 516 }); 517 518 cases_entry_thumb.on('mouseleave', function(){ 519 $(this).closest('.cases__entry').removeClass('is-hover'); 520 }); 521 } 522 523 524 525 // Top lang 526 var top_lang = $('.top__lang-selected'); 527 528 $('body').on('click', function(){ 529 top_lang.parent().removeClass('top__lang--active'); 530 }); 531 532 top_lang.on('click', function(){ 533 $(this).parent().toggleClass('top__lang--active'); 534 535 return false;
536 }); 537 538 539 // Burger menu 540 var burger = $('.top__burger'); 541 542 burger.on('click', function(){ 543 $('body').toggleClass('is-hold'); 544 $('.menu').fadeToggle(300); 545 burger.toggleClass('top__burger--active'); 546 }); 547 548 549 // About us 550 551 var history_list = $('.aboutus__history-list'); 552 553 if(history_list.length) { 554 setTimeout(function(){ 555 history_list.flickity({ 556 percentPosition: true, 557 contain: true, 558 freeScroll: true, 559 pageDots: false, 560 cellAlign: 'left', 561 imagesLoaded: true, 562 }); 563 }, 500); 564 } 565 566 567 // Cases page gallery 568 var cases_gallery = $('.case__gallery-list'); 569 570 if(cases_gallery.length) { 571 var cases_gallery_list = cases_gallery.flickity({ 572 cellAlign: 'left', 573 freeScroll: true, 574 contain: true, 575 wrapAround: true, 576 pageDots: false, 577 prevNextButtons: false, 578 imagesLoaded: true, 579 }); 580 581 var flkty_gallery = cases_gallery_list.data('flickity'); 582 583 function updateStatus() { 584 var cellNumber = flkty_gallery.selectedIndex + 1; 585 586 $('.case__gallery__nav-indexof-index').text(cellNumber); 587 $('.case__gallery__nav-indexof-of').text(flkty_gallery.cells.length); 588 } 589 updateStatus(); 590 591 cases_gallery_list.on('select.flickity', updateStatus); 592 593 $('.case__gallery-nav-prev').on('click', function() { 594 cases_gallery_list.flickity('previous'); 595 }); 596 597 $('.case__gallery-nav-next').on('click', function() { 598 cases_gallery_list.flickity('next'); 599 }); 600 } 601 602 603 // Cases page stats 604 var cases_stats = $('.case__stats-list'); 605 606 if(cases_stats.length) { 607 var cases_stats_list = cases_stats.flickity({ 608 cellAlign: 'left', 609 freeScroll: true, 610 contain: false, 611 wrapAround: true, 612 pageDots: false, 613 prevNextButtons: false, 614 imagesLoaded: true, 615 }); 616 617 var flkty_stats = cases_stats_list.data('flickity'); 618 619 function updateStatus() { 620 var cellNumber = flkty_stats.selectedIndex + 1; 621 622 $('.case__stats__nav-indexof-index').text(cellNumber); 623 $('.case__stats__nav-indexof-of').text(flkty_stats.cells.length); 624 } 625 updateStatus(); 626 627 cases_stats_list.on('select.flickity', updateStatus); 628 629 $('.case__stats-nav-prev').on('click', function() { 630 cases_stats_list.flickity('previous'); 631 }); 632 633 $('.case__stats-nav-next').on('click', function() { 634 cases_stats_list.flickity('next'); 635 }); 636 } 637 638 639 640 // Filter 641 function declOfNum(number, titles) { 642 cases = [2, 0, 1, 1, 1, 2]; 643 return titles[ (number%100>4 && number%100<20)? 2 : cases[(number%10<5)?number%10:5] ]; 644 } 645 646 $('.page_filter__search-toggle').on('click', function(e){ 647 // if(isMobile || isTablet) { 648 // $(this).closest('form').submit(); 649 // } else { 650 e.preventDefault(); 651 652 $(this).toggleClass('page_filter__search-toggle--active'); 653 $(this).parent().find('.page_filter__search-input').fadeToggle(300).focus(); 654 $(this).parent().find('.page_filter__search-toggle .icon').fadeToggle(300); 655 // } 656 }); 657 658 659 // Filter toggle 660 $('.page_filter__option-value').on('click', function(){ 661 $this = $(this); 662 var parent = $this.closest('.page_filter__option'); 663 var type = parent.attr('data-filter-select'); 664 var box = $('[data-filter-name="'+type+'"]'); 665 666 if(box.is(':visible')) { 667 //$('body').removeClass('is-hold'); 668 parent.removeClass('page_filter__option--active'); 669 box.slideUp(300); 670 $('.page_filter__search, .page_filter__option').removeClass('is-disabled'); 671 } else { 672 //$('html, body').animate({scrollTop: 0}, 500, function(){ 673 //$('body').addClass('is-hold'); 674 parent.addClass('page_filter__option--active'); 675 box.slideDown(300); 676 $('.page_filter__search, .page_filter__option').not(parent).addClass('is-disabled'); 677 //}); 678 } 679 }); 680 681 682 // Hide filter btn 683 $('.page_filter_box__ctrl .btn').on('click', function(){ 684 $('body').removeClass('is-hold');
685 $('.page_filter_box').slideUp(300); 686 $('.page_filter__option').removeClass('page_filter__option--active'); 687 $('.page_filter__search, .page_filter__option').removeClass('is-disabled'); 688 }); 689 690 691 // Filter select items 692 $('.page_filter__chkb input').on('change', function(){ 693 var calc = 0; 694 var $this = $(this); 695 var parent = $this.closest('.page_filter_box'); 696 var type = parent.attr('data-filter-name'); 697 var list = parent.find('.page_filter_box__list'); 698 var list_item = list.find('.page_filter__chkb'); 699 var select = $('[data-filter-select="'+type+'"]'); 700 var select_text = select.find('.page_filter__option-value-val'); 701 var select_all = parent.find('.js-filter-all'); 702 var select_all_start = select_all.attr('data-start-text'); 703 704 if($this.hasClass('js-filter-all')) { 705 if(this.checked) { 706 list_item.find('input').prop('checked', true); 707 if(select_all_start) { 708 select_text.text(select_all_start); 709 } else { 710 select_text.text('ÐÑе'); 711 } 712 } else { 713 list_item.find('input').prop('checked', false); 714 select_text.text('ÐÑбеÑиÑе'); 715 } 716 } else { 717 var i = 0; 718 parent.find('.js-filter-all').prop('checked', false); 719 720 list_item.each(function(){ 721 i++; 722 calc = list.find('.page_filter__chkb input:checked').length 723 724 if(calc == 0) { 725 select_text.text('ÐÑбеÑиÑе') 726 } else { 727 if(i == calc) { 728 if(select_all_start) { 729 select_text.text(select_all_start); 730 } else { 731 select_text.text('ÐÑе'); 732 } 733 } else { 734 select_text.text(calc + ' ' + declOfNum(calc, ['вÑбÑана', 'вÑбÑанÑ', 'вÑбÑано'])) 735 } 736 } 737 }); 738 } 739 740 return false; 741 742 }); 743 744 745 // Map 746 // var contacts_map = $('.contacts__map'); 747 748 // if(contacts_map.length) { 749 // var mainPosition = { 750 // lat: 55.745630, 751 // lng: 37.667340 752 // }; 753 754 // var iconMain = { 755 // url: 'assets/images/ico-marker.png', 756 // scaledSize: new google.maps.Size(45, 64), 757 // }; 758 759 // var mapOptions = { 760 // center: mainPosition, 761 // zoom: 16, 762 // mapTypeControl: false, 763 // styles: [ { "featureType": "poi", "elementType": "labels.icon", "stylers": [ { "color": "#000000" }, { "weight": 1.5 } ] }, { "featureType": "poi", "elementType": "labels.text.fill", "stylers": [ { "color": "#000000" }, { "lightness": 50 } ] }, { "featureType": "poi.business", "stylers": [ { "visibility": "off" } ] }, { "featureType": "poi.park", "elementType": "labels.text", "stylers": [ { "visibility": "off" } ] } ], 764 // }; 765 766 // map = new google.maps.Map(document.getElementById('gmap'), mapOptions); 767 768 // var marker = new google.maps.Marker({ 769 // position: mainPosition, 770 // map: map, 771 // icon: iconMain, 772 // title: 'PR Partner', 773 // }); 774 // } 775 776 // Contacts 777 $('.js-show-req').on('click', function(){ 778 $('.js-show-franch').removeClass('contacts__links-btn--active'); 779 $('.contacts__franch').removeClass('contacts__franch--active'); 780 $('.contacts__whattowatch').fadeOut(250); 781 782 $(this).toggleClass('contacts__links-btn--active'); 783 $('.contacts__requisites').toggleClass('contacts__requisites--active'); 784 }); 785 786 $('.js-show-franch').on('click', function(){ 787 $('.js-show-req').removeClass('contacts__links-btn--active'); 788 $('.contacts__requisites').removeClass('contacts__requisites--active'); 789 $('.contacts__whattowatch').fadeOut(250); 790 791 $(this).toggleClass('contacts__links-btn--active'); 792 $('.contacts__franch').toggleClass('contacts__franch--active'); 793 }); 794 795 $('.js-whattowatch-show').on('click', function(){ 796 $('.contacts__whattowatch').fadeIn(250); 797 }); 798 799 $('.js-whattowatch-close').on('click', function(){ 800 $('.contacts__whattowatch').fadeOut(250); 801 }); 802 803 804 // FAQ 805 var faq = $('.faq'); 806 807 if(faq.length) { 808 $('.faq__item').on('click', function(){ 809 $(this).toggleClass('faq__item--active'); 810 $(this).find('.faq__item-body').slideToggle(250); 811 }); 812 } 813 814 815 // Reviews 816 var reviews = $('.reviews'); 817 818 if(reviews.length) { 819 $(document).on('click', '.reviews__item-more', function(){ 820 var $this = $(this); 821 var parent = $this.closest('.reviews__item'); 822 var more = parent.find('.reviews__item-text-more'); 823 var dots = parent.find('.dotdotdot'); 824 825 parent.toggleClass('reviews__item--active'); 826 more.fadeToggle(250); 827 dots.fadeToggle(250); 828 }); 829 } 830 831 832 // Scrollto 833 var anchor = $('.js-scrollto'); 834 835 if(anchor.length) { 836 anchor.each(function(){ 837 $(this).on('click', function(e){ 838 e.preventDefault(); 839 840 var target = $(this.getAttribute('href')); 841 842 $('html, body').stop().animate({ 843 scrollTop: target.offset().top 844 }, 1000); 845 }); 846 }); 847 } 848 849
850 // Inp file 851 $('.inp-file input').on('change', function(){ 852 var $this = $(this); 853 var file_wrap = $this.closest('.inp-file'); 854 var file_list = file_wrap.find('.inp-file-list ul'); 855 856 file_list.find('li').remove(); 857 858 for (var i = 0; i < $(this).get(0).files.length; ++i) { 859 file_name = $(this).get(0).files[i].name; 860 file_list.append('<li>'+file_name+'</li>'); 861 } 862 }); 863 864 865 // Inp selectbox 866 var selectbox = $('.inp-selectbox'); 867 868 if(selectbox.length) { 869 // Toggle 870 $('.inp-selectbox-current').on('click', function(){ 871 $(this).parent().toggleClass('inp-selectbox--active'); 872 $(this).parent().find('.inp-selectbox-list').slideToggle(250); 873 }); 874 } 875 876 // Inp branches 877 var inp_service = $('.inp-service').find('input'); 878 var inp_branches = $('.inp-branches').find('input'); 879 880 if(inp_service.length) { 881 inp_service.on('change', function(){ 882 if(this.checked && this.value == 'PR') { 883 $('.inp-branches').slideDown(250); 884 } else { 885 $('.inp-branches').slideUp(250); 886 887 inp_branches.each(function(){ 888 $(this).prop('checked', false); 889 }); 890 } 891 }); 892 } 893 894 895 // Open modal selected 896 var modal_feedback = $('#modal_feedback'); 897 898 var RECAPTCHA_SITE_KEY = '6Lc9_pEmAAAAACB05Szxd-p1JBHMNRY41VCv1TNI'; 899 900 function formIsEn() { 901 return window.location.href.indexOf('https://prpartner.ru/en/') === 0; 902 } 903 904 function formSuccessUrl(suffix) { 905 var url = window.location.href; 906 if (url.indexOf('https://prpartner.ru/en/') === 0) { 907 return 'https://prpartner.ru/en/success/' + suffix; 908 } 909 if (url.indexOf('https://prpartner.ru/ch/') === 0) { 910 return 'https://prpartner.ru/ch/success/' + suffix; 911 } 912 return 'https://prpartner.ru/success/' + suffix; 913 } 914 915 function formValidate(form) { 916 var valid = true; 917 $('[type="text"]', form).each(function(){ 918 if (!$(this).val()) { 919 valid = false; 920 $(this).addClass('error'); 921 } else { 922 $(this).removeClass('error'); 923 } 924 }); 925 return valid; 926 } 927 928 function formMessage(form, text) { 929 var box = $(form).find('.form-message'); 930 if (!box.length) { 931 box = $('<div class="form-message"></div>'); 932 $(form).append(box); 933 } 934 box.text(text); 935 } 936 937 function formLock(form) { 938 var btn = $(form).find('[type="submit"]'); 939 if (typeof btn.data('label') === 'undefined') { 940 btn.data('label', btn.html()); 941 } 942 btn.attr('disabled', 'disabled').html(formIsEn() ? 'Sending...' : 'ÐÑпÑавлÑем...'); 943 } 944 945 function formUnlock(form) { 946 var btn = $(form).find('[type="submit"]'); 947 btn.removeAttr('disabled').html(btn.data('label')); 948 } 949 950 function formFail(form) { 951 formUnlock(form); 952 formMessage(form, formIsEn() 953 ? 'Failed to send. Please try again or email [email protected]' 954 : 'Ðе ÑдалоÑÑ Ð¾ÑпÑавиÑÑ Ð·Ð°ÑвкÑ. ÐопÑобÑйÑе еÑÑ Ñаз или напиÑиÑе на [email protected]'); 955 } 956 957 function formToken(form) { 958 var d = $.Deferred(); 959 var field = $(form).find('[name="g-recaptcha-response"]'); 960 if (!field.length) { 961 return d.resolve().promise(); 962 } 963 if (typeof grecaptcha === 'undefined' || typeof grecaptcha.execute !== 'function') { 964 return d.reject().promise(); 965 } 966 grecaptcha.ready(function(){ 967 grecaptcha.execute(RECAPTCHA_SITE_KEY, {action: 'submit'}).then(function(token){ 968 field.val(token); 969 d.resolve(); 970 }, function(){ 971 d.reject(); 972 }); 973 }); 974 return d.promise(); 975 } 976 977 function formGoals() { 978 try { 979 if (typeof yaCounter31847876 === 'undefined') { 980 return; 981 } 982 yaCounter31847876.reachGoal('callback'); 983 var href = document.location.href; 984 if (href.indexOf('/services/pr/') != -1 || href.indexOf('/services/smm/') != -1 || href.indexOf('/services/event/') != -1) { 985 yaCounter31847876.reachGoal('zakaz'); 986 } 987 } catch (e) {} 988 } 989 990 function formGoal(name, done) { 991 var called = false; 992 var finish = function(){ 993 if (!called) { 994 called = true; 995 done(); 996 } 997 }; 998 setTimeout(finish, 1000); 999 try { 1000 yaCounter31847876.reachGoal(name, {}, finish); 1001 } catch (e) { 1002 finish(); 1003 } 1004 } 1005 1006 function formSend(form, suffix, goals) { 1007 if (!formValidate(form)) { 1008 return; 1009 } 1010 formMessage(form, ''); 1011 formLock(form); 1012 formToken(form).done(function(){ 1013 $.ajax({ 1014 type: 'POST', 1015 url: '/ajax/', 1016 data: new FormData(form), 1017 processData: false, 1018 contentType: false, 1019 dataType: 'text' 1020 }).done(function(raw){ 1021 var res = null; 1022 try { 1023 res = JSON.parse(raw); 1024 } catch (e) { 1025 res = null; 1026 } 1027 if (res && res.success === false) { 1028 formFail(form); 1029 return; 1030 } 1031 var go = function(){ 1032 window.location.href = formSuccessUrl(suffix); 1033 }; 1034 if (goals === true) { 1035 formGoals(); 1036 } else if (goals) { 1037 formGoal(goals, go); 1038 return; 1039 } 1040 go(); 1041 }).fail(function(){ 1042 formFail(form); 1043 }); 1044 }).fail(function(){ 1045 formFail(form); 1046 }); 1047 } 1048 1049 $('#page_feedback_form').submit(function(){ 1050 formSend(this, '?feedback', true); 1051 return false;
1052 }); 1053 1054 $('#modal_feedback form').submit(function(){ 1055 formSend(this, '?feedback', true); 1056 return false; 1057 }); 1058 1059 $('.hr_entry__form form').submit(function(){ 1060 formSend(this, '', false); 1061 return false; 1062 }); 1063 1064 $('#modal_franch form').submit(function(){ 1065 formSend(this, '?franch', false); 1066 return false; 1067 }); 1068 1069 $('#modal_callback form').submit(function(){ 1070 formSend(this, '?callback', false); 1071 return false; 1072 }); 1073 1074 var widgetForm = $('#modal_widget form'); 1075 1076 function widgetApplyType(type) { 1077 var inp = widgetForm.find('[name="CONTACT"]'); 1078 inp.removeClass('error').val(''); 1079 inp.off('.inputmasks').removeData('inputmasks'); 1080 if ($.fn.inputmask) { 1081 inp.inputmask('remove'); 1082 } 1083 if (type === 'phone') { 1084 inp.attr('placeholder', inp.data('ph-phone')); 1085 if (typeof listCountries !== 'undefined' && typeof maskOpts !== 'undefined' && $.fn.inputmasks) { 1086 inp.inputmasks($.extend(true, {}, maskOpts, {list: listCountries})); 1087 } 1088 } else { 1089 inp.attr('placeholder', inp.data(type === 'email' ? 'ph-email' : 'ph-telegram')); 1090 } 1091 } 1092 1093 if (widgetForm.length) { 1094 widgetForm.find('[name="CONTACT_TYPE"]').on('change', function(){ 1095 widgetApplyType(this.value); 1096 }); 1097 widgetApplyType(widgetForm.find('[name="CONTACT_TYPE"]:checked').val() || 'phone'); 1098 } 1099 1100 widgetForm.submit(function(){ 1101 var type = $(this).find('[name="CONTACT_TYPE"]:checked').val(); 1102 var inp = $(this).find('[name="CONTACT"]'); 1103 var value = $.trim(inp.val()); 1104 var ok = true; 1105 if (type === 'phone') { 1106 ok = $.fn.inputmask ? inp.inputmask('isComplete') : value.replace(/\D/g, '').length >= 7; 1107 } else if (type === 'email') { 1108 ok = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value); 1109 } else { 1110 ok = value.length >= 2; 1111 } 1112 if (!ok) { 1113 formValidate(this); 1114 inp.addClass('error'); 1115 return false; 1116 } 1117 formSend(this, '?callback', 'callback_widget'); 1118 return false; 1119 }); 1120 const currentUrl = window.location.href; 1121 1122 if (currentUrl.includes('?feedback')) { 1123 const linkElement = document.querySelector('.link-sucess-download'); 1124 if (linkElement) { 1125 linkElement.classList.add('d-flex'); 1126 } 1127 } 1128 1129 $('[data-feedback-selected]').on('click', function(e){ 1130 e.preventDefault(); 1131 1132 var selected = $(this).attr('data-feedback-selected'); 1133 1134 modal_feedback.find('input[value="'+selected+'"]').prop('checked', true); 1135 modal_feedback.find('.inp-service .inp-selectbox').addClass('inp-selectbox--active'); 1136 modal_feedback.find('.inp-service .inp-selectbox-list').slideDown(250); 1137 1138 if(selected === 'PR') { 1139 modal_feedback.find('.inp-branches').slideDown(250); 1140 modal_feedback.find('.inp-branches .inp-selectbox').addClass('inp-selectbox--active'); 1141 modal_feedback.find('.inp-branches .inp-selectbox-list').slideDown(250); 1142 } 1143 1144 modal_feedback.modal('show'); 1145 }); 1146 1147 modal_feedback.on('hide.bs.modal', function(){ 1148 modal_feedback.find('.inp-branches').slideUp(250); 1149 modal_feedback.find('.inp-branches .inp-selectbox, .inp-service .inp-selectbox').removeClass('inp-selectbox--active'); 1150 modal_feedback.find('.inp-branches .inp-selectbox-list, .inp-service .inp-selectbox-list').slideUp(250); 1151 }); 1152 1153// setTimeout(function() { 1154// $('#modal_msd').modal('show'); 1155// }, 5000); 1156// $(function () { 1157// if (localStorage.getItem('modal_msd_shown')) return; 1158// 1159// setTimeout(function () { 1160// $('#modal_msd').modal({ 1161// backdrop: false, 1162 // keyboard: true, 1163// show: true 1164// }); 1165// localStorage.setItem('modal_msd_shown', '1'); 1166// }, 20000); 1167 1168// $('#modal_msd').on('shown.bs.modal', function () { 1169// $('body').removeClass('modal-open').css({ 1170// 'overflow': '', 1171// 'padding-right': '' 1172// }); 1173// }); 1174 1175// $('#modal_msd').on('hidden.bs.modal', function () { 1176// $('body').removeClass('modal-open'); 1177// }); 1178// }); 1179 $('.animMainText').marquee({ 1180 duration: 20000, 1181 startVisible: true, 1182 duplicated: true 1183 }); 1184 1185 1186}); 1187 1188 1189// ФÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñений 1190 1191document.addEventListener('DOMContentLoaded', function () { 1192 1193 const breadcrumbs = document.querySelector('.breadcrumbs'); 1194 const defaultBreadcrumbsTop = parseInt(window.getComputedStyle(breadcrumbs).top) + 147; 1195 const defaultBreadcrumbsTop2 = parseInt(window.getComputedStyle(breadcrumbs).top) + 39; 1196 updateStyles(); 1197 function updateStyles() { 1198 const panelBack = document.querySelector('#bx-panel-back'); 1199 const topElement = document.querySelector('.top'); 1200 const mainElement = document.querySelector('.page-main .main'); 1201 1202 if (panelBack && topElement) { 1203 const height = panelBack.offsetHeight; 1204 topElement.style.top = `${height}px`; 1205 1206 // Ðогика Ð´Ð»Ñ .page-main .main 1207 if (mainElement) { 1208 mainElement.style.marginTop = `${height}px`; 1209 } 1210 if (height <= 147 && breadcrumbs) { 1211 breadcrumbs.style.top = `${defaultBreadcrumbsTop}px`; 1212 } 1213 if (height <= 39 && breadcrumbs) { 1214 breadcrumbs.style.top = `${defaultBreadcrumbsTop2}px`;
1215 } 1216 } 1217 } 1218 1219 const observer = new MutationObserver(updateStyles); 1220 const panelBack = document.querySelector('#bx-panel-back'); 1221 if (panelBack) { 1222 observer.observe(panelBack, { 1223 attributes: true, // ÐÑÑлеживаем Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð°ÑÑибÑÑов (вклÑÑÐ°Ñ Ð²ÑÑоÑÑ) 1224 childList: true, // ÐÑÑлеживаем добавление/Ñдаление доÑеÑÐ½Ð¸Ñ ÑлеменÑов 1225 subtree: true // ÐÑÑлеживаем Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² поддеÑеве 1226 }); 1227 } 1228console.log('test'); 1229});
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.