1"use strict"; 2 3var isPlayerPlaying = false; 4var radio; 5var src; 6 7 8 9function showRandomBlocks(quantity, max){ 10 const set = new Set(); 11 while(set.size < quantity) { 12 //set.add(Math.floor(Math.random() * max) + 1); 13 set.add(Math.floor(Math.random() * max)); 14 } 15 return set; 16} 17 18$(document).ready(function () { 19 20 // Show menu 21 if ($(window).width() < 1200) { 22 $('.navbar-toggle').click(function() { 23 $(this).toggleClass('active'); 24 $('.nav').slideToggle(200); 25 }); 26 27 28 // закÑÑÑие пÑи клике вне Ð¼ÐµÐ½Ñ 29 $(document).click(function(event) { 30 var $target = $(event.target); 31 32 // ÐÑли клик бÑл ÐРпо Ð¼ÐµÐ½Ñ Ð ÐРпо кнопке "гамбÑÑгеÑа" 33 if(!$target.closest('.nav').length && !$target.closest('.navbar-toggle').length) { 34 35 // ÐÑовеÑÑем, оÑкÑÑÑо ли Ð¼ÐµÐ½Ñ ÑейÑÐ°Ñ (ÑÑÐ¾Ð±Ñ Ð½Ðµ деÑгаÑÑ Ð°Ð½Ð¸Ð¼Ð°ÑÐ¸Ñ Ð·ÑÑ) 36 if($('.nav').is(':visible')) { 37 $('.nav').slideUp(200); 38 $('.navbar-toggle').removeClass('active'); 39 } 40 } 41 }); 42 } 43 44 // Nav drop mobile 45 if ($(window).width() < 576) { 46 $('.nav__item_drop .nav__link').on('click', function(e) { 47 e.preventDefault(); 48 e.stopPropagation(); 49 50 const $currentMenu = $(this).next('.nav__drop__box_single, .nav__drop__box'); 51 52 // ÐакÑÑваем вÑе, кÑоме ÑекÑÑего 53 $('.nav__drop__box_single, .nav__drop__box') 54 .not($currentMenu) 55 .slideUp(300); 56 57 $currentMenu.slideToggle(300); 58 }); 59 60 $(document).on('click', function(e) { 61 if (!$(e.target).closest('.nav__item_drop').length) { 62 $('.nav__drop__box_single, .nav__drop__box').slideUp(300); 63 } 64 }); 65 } 66 67 // Header add class 68 $(window).scroll(function() { 69 var top = $(document).scrollTop(); 70 if (top > 0) { 71 $('.header').addClass('scroll-page'); 72 } 73 else { 74 $('.header').removeClass('scroll-page'); 75 } 76 }); 77 78 $(document).ready(function(){ 79 function animateSlider($el) { 80 const container = $('#tmpSliderContainer'); 81 container.html($el.html()); 82 const length = container.width() - $el.width() + 15; 83 84 if (length > 0) { 85 $el.find('.running__item-wrapper').css({ 'right': '0px', 'left': '' }).animate({ 86 'right': length + 'px' 87 }, 3000); 88 } 89 } 90 91 var $mainSlider; 92 var $marqueeSlider; 93 94 function configureMainSlider() { 95 var config = { 96 autoControls: false, 97 controls: false, 98 pager: false, 99 auto: true, 100 touchable: false, 101 onSlideAfter: function ($el) { 102 animateSlider($el); 103 }, 104 onSliderLoad: function () { 105 var $el = $(this).find('li[aria-hidden="false"]'); 106 animateSlider($el); 107 }, 108 }; 109 110 if ($mainSlider && $mainSlider.reloadSlider) { 111 $mainSlider.reloadSlider(config); 112 } else { 113 $mainSlider = $(".bxslider").bxSlider(config); 114 } 115 } 116 117 function configureMarqueeSlider() { 118 var width = $(window).width(); 119 var config = { 120 autoControls: false, 121 controls: width > 1200, 122 pager: false, 123 auto: true, 124 touchable: false, 125 slideWidth: width, 126 }; 127 128 if ($marqueeSlider && $marqueeSlider.reloadSlider) { 129 $marqueeSlider.reloadSlider(config); 130 } else { 131 $marqueeSlider = $(".marquee-bxslider").bxSlider(config); 132 } 133 } 134 135 var $bannerSlider; 136 137 function configureBannerSlider() { 138 var container = $("#test__block"); 139 var totalCount = container.data("count"); 140 var width = $(document).width(); 141 var count = 142 width <= 768 ? 1 143 : width <= 1200 ? Math.min(totalCount, 2) 144 : Math.min(totalCount, 3); 145 var percent = 100 / count; 146 147 var bannerWidth = Math.round( 148 container.parent().innerWidth() * (percent / 100), 149 ); 150 151 var controls = width > 1200; 152 153 var config = { 154 pause: 6000, 155 autoControls: false, 156 controls, 157 pager: false, 158 auto: true, 159 maxSlides: count, 160 minSlides: count, 161 autoHeight: true, 162 //responsive: false, 163 moveSlides: 1, 164 slideWidth: bannerWidth, 165 slideMargin: "10px", 166 }; 167 168 if ($bannerSlider && $bannerSlider.reloadSlider) { 169 $bannerSlider.reloadSlider(config); 170 } else { 171 $bannerSlider = container.bxSlider(config); 172 } 173 } 174 175 let sliderResizeTimer; 176 177 $(window).on("orientationchange resize", function () { 178 clearTimeout(sliderResizeTimer); 179 sliderResizeTimer = setTimeout(function () { 180 configureMainSlider(); 181 configureMarqueeSlider(); 182 configureBannerSlider(); 183 }, 200); 184 }); 185 186 configureMainSlider(); 187 configureMarqueeSlider(); 188 configureBannerSlider(); 189 }); 190 191 // Footer 192 var mywindow = $(window); 193 var mypos = mywindow.scrollTop(); 194 var scrollHeight = $(document).height(); 195 var scrollPosition = $(window).height() + $(window).scrollTop(); 196 mywindow.scroll(function() { 197 if(mywindow.scrollTop() > mypos) { 198 $('.footer').removeClass('footer-show'); 199 } else { 200 $('.footer').addClass('footer-show'); 201 } 202 mypos = mywindow.scrollTop(); 203 204 if ($(window).height() + $(window).scrollTop() > $(document).height() - 200) { 205 $('.footer').addClass('footer-show'); 206 } 207 }); 208 209 $(window).scroll(function() { 210 if ($(window).scrollTop() == $(document).height() - $(window).height()) { 211 $('.footer').addClass('footer-show'); 212 } 213 }); 214 215 $('.footer__menu').click(function() { 216 $('.footer__top').slideToggle(); 217 $('.footer').toggleClass('open'); 218 }); 219 220 // Comments hide 221 $('.comments__title').on('click', function() { 222 $(this).toggleClass('active'); 223 $('.comments__list').slideToggle(); 224 }); 225 226 // Video 227 $('.p-video__btn').click(function() { 228 229 var publicationId = $(this).data('publication-id'); 230 231 var xhr = new XMLHttpRequest(); 232 233 xhr.open('GET', '/ajax/getGalleryVideos.php?publicationId='+ publicationId, true); 234 235 xhr.onreadystatechange = function() 236 { 237 if(xhr.status == 200 && xhr.readyState == 4) 238 { 239 var parsedResponse = JSON.parse(xhr.responseText); 240 241 var videos = ''; 242 243 for(var i = 0;i < parsedResponse.length;i++) 244 { 245 var videoDesc = parsedResponse[i].media_desc == null ? '' : '<br />' + parsedResponse[i].media_desc + '<br /><br />'; 246 videos += '<div class="modal__video video-js"><figure><video controls=""> <source src="'+ parsedResponse[i].media_url +'" type="video/mp4"> </video> <figcaption>'+ videoDesc +'</figcaption></figure></div>'; 247 } 248 249 document.querySelector('.modal__box').innerHTML = videos; 250 251 if ($('.modal__box').hasClass('slick-initialized')) 252 { 253 $('.modal__box').slick('slickRemove', null, null, true); 254 $('.modal__box').slick('destroy'); 255 } 256 257 $('.modal__box').slick({ 258 arrows: true, 259 autoplay: false, 260 slidesToShow: 1, 261 autoplaySpeed: 5000, 262 dots: false, 263 responsive: [{ 264 breakpoint: 480, 265 settings: {
266 arrows: false, 267 } 268 }] 269 }); 270 271 $('.modal__gallery').fadeIn(); 272 } 273 } 274 275 xhr.send(); 276 277 278 279 // var dataYoutube = $(this).parents('.p-video__item').attr('data-youtube'); 280 // $('.video-js').html('<iframe src="https://www.youtube.com/embed/'+ dataYoutube +'?autoplay=1" frameborder="0" allowfullscreen></iframe>'); 281 // $('.modal_video').fadeIn(); 282 }); 283 284 // Modal 285 $('.open-modal-login').on('click', function(e) { 286 $('.modal_login').fadeIn(); 287 }); 288 $('.gallery__item').on('click', function(e) { 289 e.preventDefault(); 290 291 var publicationId = $(this).data('publication-id'); 292 293 var xhr = new XMLHttpRequest(); 294 295 xhr.open('GET', '/ajax/getGalleryImages.php?publicationId='+ publicationId, true); 296 297 xhr.onreadystatechange = function() 298 { 299 if(xhr.status == 200 && xhr.readyState == 4) 300 { 301 var parsedResponse = JSON.parse(xhr.responseText); 302 303 var photos = ''; 304 305 for(var i = 0;i < parsedResponse.length;i++) 306 { 307 var mediaAuthor = ''; 308 309 if(parsedResponse[i].media_desc != null) 310 { 311 mediaAuthor = '<p>ФоÑо '+ parsedResponse[i].media_desc +'</p>'; 312 } 313 314 photos += '<div class="modal__gallery__item"> <img src="'+ parsedResponse[i].media_url +'" alt="ФоÑо"> <div class="modal__gallery__desc"> <span class="modal__gallery__title">'+ parsedResponse[i].name +'</span> <div class="modal__gallery__info"> '+ mediaAuthor +' <p>'+ parsedResponse[i].upload_date +'</p> </div> </div> </div>' 315 } 316 317 document.querySelector('.modal__gallery__sl').innerHTML = photos; 318 319 if ($('.modal__gallery__sl').hasClass('slick-initialized')) 320 { 321 $('.modal__gallery__sl').slick('slickRemove', null, null, true); 322 $('.modal__gallery__sl').slick('destroy'); 323 } 324 325 $('.modal__gallery__sl').slick({ 326 arrows: true, 327 autoplay: false, 328 slidesToShow: 1, 329 autoplaySpeed: 5000, 330 dots: false, 331 responsive: [{ 332 breakpoint: 480, 333 settings: { 334 arrows: false, 335 } 336 }] 337 }); 338 339 $('.modal__gallery').fadeIn(); 340 } 341 } 342 343 xhr.send(); 344 345 }); 346 347 // Hidden modal 348 $('.modal__close').on('click', function() { 349 $('.modal').fadeOut(); 350 $('.video-js').html(''); 351 }); 352 $(document).click(function(event) { 353 if ($(event.target).closest('.gallery__item').length 354 || $(event.target).closest('.modal__gallery__box').length 355 || $(event.target).closest('.open-modal-login').length 356 || $(event.target).closest('.p-video__btn').length 357 || $(event.target).closest('.modal__box').length ) return; 358 $('.modal').fadeOut(); 359 $('.video-js').html(''); 360 event.stopPropagation(); 361 }); 362 363 // Maskedinput 364 // $(function($){ 365 // $('.phone-mask').mask(('+7 ') + '(999) 999-99-99'); 366 // }); 367 368 // Num slider gallery 369 var pages = $('.pagingInfo'); 370 var slider = $('.modal__gallery__sl'); 371 slider.on('init reInit afterChange', function(event, slick, currentSlide, nextSlide){ 372 var i = (currentSlide ? currentSlide : 0) + 1; 373 pages.text(i + '/' + slick.slideCount); 374 }); 375 376 // Article sl 377 $('.article__sl').slick({ 378 arrows: true, 379 autoplay: true, 380 slidesToShow: 1, 381 autoplaySpeed: 5000, 382 dots: false 383 }); 384 385 // News sl mob 386 if( $(window).width() < 767) { 387 $('.news__sl__mob').slick({ 388 arrows: false, 389 autoplay: true, 390 slidesToShow: 2, 391 autoplaySpeed: 5000, 392 dots: true, 393 responsive: [ 394 { 395 breakpoint: 350, 396 settings: { 397 slidesToShow: 1, 398 } 399 } 400 ] 401 }); 402 } 403 404 radio = document.querySelector("#music source"); 405 src = document.querySelector("#music source").getAttribute("src"); 406 //console.log(isPlayerPlaying, radio, src); 407 408 $('.yiiLog').hide(0); 409 410}); 411 412function doAuth(e) 413{ 414 var email = document.getElementById('authEmail'); 415 var pass = document.getElementById('authPass'); 416 417 if(email.value == '') 418 { 419 return email.focus(); 420 } 421 422 if(pass.value == '') 423 { 424 return pass.focus(); 425 } 426 427 var xhr = new XMLHttpRequest(); 428 429 xhr.open('POST', '/ajax/auth.php', true); 430 431 xhr.onreadystatechange = function() 432 { 433 if(xhr.status == 200 && xhr.readyState == 4) 434 { 435 if(xhr.responseText == '0') 436 { 437 email.value = ''; 438 pass.value = ''; 439 email.focus(); 440 441 return alert('ÐевеÑнÑй E-mail или паÑолÑ.'); 442 } 443 else 444 {
445 window.location.reload(); 446 } 447 } 448 } 449 450 var data = new FormData(); 451 data.append('email', email.value); 452 data.append('password', pass.value); 453 454 xhr.send(data); 455 456 return false; 457} 458 459function doReg() 460{ 461 var email = document.getElementById('regEmail'); 462 var pass = document.getElementById('regPassword'); 463 var passRep = document.getElementById('regPasswordConfirm'); 464 var recaptchaResponse = grecaptcha.getResponse(); 465 466 if(email.value == '') 467 { 468 return email.focus(); 469 } 470 471 if(pass.value == '') 472 { 473 return pass.focus(); 474 } 475 476 if(passRep.value == '') 477 { 478 return passRep.focus(); 479 } 480 481 if(passRep.value != pass.value) 482 { 483 return alert('ÐведенÑе паÑоли не ÑовпадаÑÑ.'); 484 } 485 486 if(pass.value.length < 6) 487 { 488 alert('ÐаÑÐ¾Ð»Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÐºÐ¾ÑоÑе 6 Ñимволов.'); 489 return pass.focus(); 490 } 491 492 if(recaptchaResponse == '') 493 { 494 return alert('ÐодÑвеÑдиÑе ÑÑо Ð²Ñ - Ñеловек.'); 495 } 496 497 var data = new FormData(); 498 data.append('email', email.value); 499 data.append('password', pass.value); 500 data.append('passwordConfirm', passRep.value); 501 data.append('recaptchaResponse', recaptchaResponse); 502 503 var xhr = new XMLHttpRequest(); 504 505 xhr.open('POST', '/ajax/register.php', true); 506 507 xhr.onreadystatechange = function() 508 { 509 if(xhr.status == 200 && xhr.readyState == 4) 510 { 511 if(xhr.responseText == '1') 512 { 513 grecaptcha.reset(); 514 return alert('ÐолÑзоваÑÐµÐ»Ñ Ñ Ñаким E-mail Ñже заÑегиÑÑÑиÑован.'); 515 } 516 else if(xhr.responseText == '2') 517 { 518 window.location.reload(); 519 } 520 else 521 { 522 grecaptcha.reset(); 523 return alert('ÐÑоизоÑла неизвеÑÑÐ½Ð°Ñ Ð¾Ñибка.'); 524 } 525 } 526 } 527 528 xhr.send(data); 529} 530 531function showLogin() 532{ 533 return $('.modal_login').fadeIn(); 534} 535 536var commentToResponseId = null; 537 538function setCommentToResponse(commentId) 539{ 540 commentToResponseId = commentId; 541 document.querySelector('.comments__input input').focus(); 542} 543 544function addComment(DOM, publicationId) 545{ 546 var commentText = DOM.querySelector('input'); 547 548 if(commentText.value == '') 549 { 550 return commentText.focus(); 551 } 552 553 var data = new FormData(); 554 data.append('publicationId', publicationId); 555 data.append('text', commentText.value); 556 557 if(commentToResponseId != null) 558 { 559 data.append('responseTo', commentToResponseId); 560 } 561 562 var xhr = new XMLHttpRequest(); 563 564 xhr.open('POST', '/ajax/addComment.php', true); 565 566 xhr.onreadystatechange = function() 567 { 568 if(xhr.status == 200 && xhr.readyState == 4) 569 { 570 window.location.reload(); 571 } 572 } 573 574 xhr.send(data); 575} 576 577//var isPlayerPlaying = false; 578//var radio = document.querySelector("#music source"); 579//var src = document.querySelector("#music source").getAttribute("src"); 580//console.log(isPlayerPlaying, radio, src); 581 582function toggleRadio() 583{ 584 let player = document.getElementById('music'); 585 let playerIcon = document.querySelector('.radio i'); 586 587 if(!isPlayerPlaying) 588 { 589 if(!radio.getAttribute('src')) 590 { 591 radio.setAttribute('src', src); 592 player.load(); 593 } 594 595 player.play(); 596 597 playerIcon.setAttribute('class', 'radio__pause'); 598 599 isPlayerPlaying = true; 600 } 601 else 602 { 603 radio.getAttribute('src', ''); 604 radio.getAttribute('src'); 605 player.pause(); 606 607 setTimeout(function() 608 { 609 player.load(); 610 }); 611 612 playerIcon.setAttribute('class', 'radio__play'); 613 614 isPlayerPlaying = false; 615 } 616} 617 618/* function addPollVote(pollId, pollChoice) 619{ 620 var data = new FormData(); 621 data.append('pollId', pollId); 622 data.append('pollChoice', pollChoice); 623 624 var xhr = new XMLHttpRequest(); 625 626 xhr.open('POST', '/ajax/addPollVote.php', true); 627 628 xhr.onreadystatechange = function() 629 { 630 if(xhr.status == 200 && xhr.readyState == 4) 631 { 632 var stats = JSON.parse(xhr.responseText); 633 document.querySelector('.interview__box').remove(); 634 635 var container = document.querySelector('.interview__result'); 636 637 container.removeAttribute('style'); 638 639 var totalVotes = 0; 640 641 for(var i = 0;i < stats.length;i++) 642 { 643 totalVotes = parseInt(totalVotes) + parseInt(stats[i].votes); 644 } 645 646 for(var i = 0;i < stats.length;i++) 647 { 648 var percentage = stats[i].votes / totalVotes * 100; 649 650 container.innerHTML += '<div class="interview__result__item d-flex align-items-center"> <span class="interview__result__name">'+ stats[i].label +'</span> <span class="interview__result__progressbar" style="width: '+ percentage +'%"></span> <span class="interview__result__sum">
650'+ stats[i].votes +' голоÑа</span> </div>'; 651 } 652 } 653 } 654 655 xhr.send(data); 656} */ 657 658/* function subscribe() 659{ 660 const messaging = firebase.messaging(); 661 662 messaging.getToken().then((currentToken) => 663 { 664 if(currentToken) 665 { 666 var data = new FormData(); 667 data.append('token', currentToken); 668 669 var xhr = new XMLHttpRequest(); 670 671 xhr.open('POST', '/ajax/saveFirebasePushToken.php', true); 672 673 xhr.send(data); 674 } 675 }).catch((err) => { }); 676} */ 677/* 678function loadMoreNews(dom) 679{ 680 var id = dom.getAttribute('last-id'); 681 682 var xhr = new XMLHttpRequest(), 683 data = new FormData(); 684 data.append('id', id); 685 686 xhr.open('POST', '/ajax/loadMoreNews.php', true); 687 688 xhr.onreadystatechange = function() 689 { 690 if(xhr.status == 200 && xhr.readyState == 4) 691 { 692 var publications = JSON.parse(xhr.responseText), 693 container = document.querySelector('.latest-news'); 694 695 for(var i = 0;i < publications.publications.length;i++) 696 { 697 var el = document.createElement('li'); 698 el.className = 'latest-news__item'; 699 el.innerHTML = '<span class="latest-news__time">'+ publications.publications[i].create_time +'</span> <span class="latest-news__name"><a href="https://cuba-web.ru/news/'+ publications.publications[i].id +'.html">'+ publications.publications[i].name +'</a></span>'; 700 701 container.appendChild(el); 702 703 var lastId = publications.publications[i].id; 704 } 705 706 dom.setAttribute("last-id", lastId); 707 } 708 } 709 710 xhr.send(data); 711} */
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.