1 2var avia_cookie_consent_modal_callback = avia_cookie_consent_modal_callback || 3 { 4 init: null, 5 open: null, 6 close: null 7 }; 8 9 10( function($) { 11 12 "use strict"; 13 14 /** 15 * enfold\includes\helper-privacy.php handler_manage_cookies() also checks cookies with php 16 * ========================================================================================= 17 */ 18 19 $(document).ready( function() 20 { 21 // FF throws error when all cookies blocked !! 22 var sessionBlocked = false; 23 try 24 { 25 var test = sessionStorage.getItem( 'aviaCookieRefused' ); 26 } 27 catch(e) 28 { 29 sessionBlocked = true; 30 } 31 32 var $_html = $('html'); 33 var aviaCookieConsentBar = $('.avia-cookie-consent'); 34 var aviaCookieConsentBadge = $('#av-cookie-consent-badge'); 35 var accept_btn = $('.avia-cookie-consent-button.avia-cookie-close-bar'); 36 var newCookieContents = aviaCookieConsentBar.attr('data-contents'); 37 var oldCookieContents = aviaGetCookie( 'aviaCookieConsent' ); 38 var aviaCookieRefused = ! sessionBlocked ? sessionStorage.getItem( 'aviaCookieRefused' ) : null; 39 var forceHideMessageBar = aviaGetCookie('aviaPrivacyRefuseCookiesHideBar'); 40 var cookie_paths = set_cookie_paths(); // object Cookie name: path - filled from custom cookies 41 var reload_tooltip = $_html.find( 'a.avia-privacy-reload-tooltip-link' ).first(); 42 var accept_essential_cookies = $_html.hasClass( 'av-cookies-essential-only' ); 43 44 /** 45 * Set a class to avoid calls to sessionStorage 46 */ 47 if( sessionBlocked || aviaCookieRefused ) 48 { 49 $_html.addClass( 'av-cookies-session-refused' ); 50 } 51 52 /** 53 * Force setting of needed cookies on new pageload 54 */ 55 if( accept_essential_cookies && oldCookieContents == null ) 56 { 57 check_fallback_cookie_setting(); 58 aviaSetCookieToggles( 'set' ); 59 60 aviaSetCookie( 'aviaCookieConsent', 'xxxxx||v1.0', 365 ); 61 aviaSetCookie( 'aviaPrivacyMustOptInSetting', true, 365 ); 62 } 63 64 /** 65 * If user refuses cookies and silent accept of cookies is selected we need to remove this if we are in same session 66 */ 67 if( sessionBlocked || aviaCookieRefused || document.cookie.match(/aviaCookieConsent/) ) 68 { 69 $_html.removeClass( 'av-cookies-user-silent-accept' ); 70 } 71 72 if( reload_tooltip.length > 0 ) 73 { 74 new $.AviaTooltip({"class": 'avia-privacy-reload-tooltip', data: 'avia-privacy-reload-tooltip', event:'click', position:'top', scope: "body", attach:'element', within_screen: true}); 75 } 76 77 if( 'undefined' != typeof $.avia_utilities.av_popup && 'function' != typeof avia_cookie_consent_modal_callback.init ) 78 { 79 avia_cookie_consent_modal_callback.init = avia_magnificPopup_init; 80 avia_cookie_consent_modal_callback.open = null; 81 avia_cookie_consent_modal_callback.close = avia_magnificPopup_close; 82 } 83 84 check_fallback_cookie_setting(); 85 86 if( $_html.hasClass( 'avia-cookie-check-browser-settings' ) ) 87 { 88 check_doNotTrack(); 89 } 90 91 if( newCookieContents != oldCookieContents ) 92 { 93 oldCookieContents = null; 94 } 95 96 var msgbar_changed = oldCookieContents == null; // message bar content changed - we must show message bar again 97 98 if( ! $_html.hasClass( 'av-cookies-consent-message-bar-only' ) ) 99 { 100 if( ! forceHideMessageBar ) 101 { 102 msgbar_changed = true; // user disabled hiding message bar and cookies via toggle - we must show it again. 103 } 104 105 if( aviaCookieRefused ) 106 { 107 msgbar_changed = false; // do not ask again as long as in same session 108 } 109 110 if( ! ( oldCookieContents || aviaCookieRefused ) || msgbar_changed ) 111 { 112 aviaCookieConsentBar.removeClass('cookiebar-hidden'); 113 } 114 } 115 else if( msgbar_changed ) 116 { 117 aviaCookieConsentBar.removeClass('cookiebar-hidden'); 118 } 119 120 accept_btn.on( 'click', function(e) { 121 e.preventDefault(); 122 123 var button = $(this); 124 125 if( button.hasClass( 'avia-cookie-select-all' ) ) 126 { 127 aviaSetCookieToggles( 'select_all' ); 128 } 129 130 aviaSetCookie( 'aviaCookieConsent', newCookieContents, 365 ); 131 aviaCookieConsentBar.addClass('cookiebar-hidden'); 132 aviaCookieConsentBadge.addClass('avia_pop_class'); 133 if( button.hasClass('avia-cookie-consent-modal-button') ) 134 { 135 if( 'function' == typeof avia_cookie_consent_modal_callback.close ) 136 { 137 avia_cookie_consent_modal_callback.close( this ); 138 } 139 } 140
141 if( $_html.hasClass( 'av-cookies-consent-message-bar-only' ) ) 142 { 143 return; 144 } 145 146 if( $_html.hasClass( 'av-cookies-needs-opt-in' ) ) 147 { 148 aviaSetCookie( 'aviaPrivacyMustOptInSetting', true, 365 ); 149 } 150 else 151 { 152 aviaSetCookie( 'aviaPrivacyMustOptInSetting', false, -60 ); 153 } 154 155 aviaSetCookieToggles( 'set' ); 156 157 if( $_html.hasClass( 'avia-cookie-reload-accept' ) ) 158 { 159 if( reload_tooltip.length > 0 ) 160 { 161 reload_tooltip.closest( '.avia-privacy-reload-tooltip-link-container' ).addClass( 'av-display-tooltip' ); 162 reload_tooltip.trigger( 'click' ); 163 } 164 location.reload( true ); 165 } 166 167 button.trigger( 'avia-cookie-settings-changed' ); 168 }); 169 170 // hide and dismiss button 171 $('.avia-cookie-consent-button.avia-cookie-hide-notification').on( 'click', function(e) { 172 e.preventDefault(); 173 174 var button = $(this); 175 176 if( 'undefined' != typeof AviaPrivacyCookieAdditionalData.cookie_refuse_button_alert && '' != AviaPrivacyCookieAdditionalData.cookie_refuse_button_alert.trim() ) 177 { 178 if( ! window.confirm( AviaPrivacyCookieAdditionalData.cookie_refuse_button_alert ) ) 179 { 180 return; 181 } 182 } 183 184 if( button.hasClass( 'avia-cookie-consent-modal-button' ) ) 185 { 186 if( 'function' == typeof avia_cookie_consent_modal_callback.close ) 187 { 188 avia_cookie_consent_modal_callback.close( this ); 189 } 190 } 191 192 aviaSetCookieToggles( 'reset' ); 193 if( ! sessionBlocked ) 194 { 195 sessionStorage.setItem( 'aviaCookieRefused', newCookieContents ); 196 } 197 198 $_html.addClass( 'av-cookies-session-refused' ); 199 $_html.removeClass( 'av-cookies-user-silent-accept' ); 200 201 aviaCookieConsentBar.addClass( 'cookiebar-hidden' ); 202 aviaCookieConsentBadge.addClass( 'avia_pop_class' ); 203 204 if( $_html.hasClass( 'avia-cookie-reload-no-accept' ) ) 205 { 206 if( reload_tooltip.length > 0 ) 207 { 208 reload_tooltip.closest( '.avia-privacy-reload-tooltip-link-container' ).addClass( 'av-display-tooltip' ); 209 reload_tooltip.trigger( 'click' ); 210 } 211 location.reload( true ); 212 } 213 214 button.trigger( 'avia-cookie-settings-changed' ); 215 }); 216 217 // info button 218 if( 'function' == typeof avia_cookie_consent_modal_callback.init ) 219 { 220 var options = { 221 activate: '.avia-cookie-consent-button.avia-cookie-info-btn', 222 source: '#av-consent-extra-info' 223 }; 224 225 avia_cookie_consent_modal_callback.init( options ); 226 227 $( '.avia-cookie-consent-button.avia-cookie-info-btn' ).on( 'click', function(e) { 228 if( 'function' == typeof avia_cookie_consent_modal_callback.open ) 229 { 230 avia_cookie_consent_modal_callback.open( this ); 231 } 232 }); 233 } 234 else 235 { 236 $('.avia-cookie-consent-button.avia-cookie-info-btn').on( 'click', function(e) { 237 e.preventDefault(); 238 239 var def_msg = "We need a lightbox to show the modal popup. Please enable the built in lightbox in Theme Options Tab or include your own modal window plugin.\n\nYou need to connect this plugin in JavaScript with callback wrapper functions - see avia_cookie_consent_modal_callback in file enfold\js\avia-snippet-cookieconsent.js"; 240 var msg = 'string' == typeof AviaPrivacyCookieAdditionalData.no_lightbox ? AviaPrivacyCookieAdditionalData.no_lightbox : def_msg; 241 242 alert( msg ); 243 }); 244 } 245 246 // Badge 247 aviaCookieConsentBadge.on( 'click', function(e) { 248 e.preventDefault(); 249 250 aviaCookieConsentBar.removeClass('cookiebar-hidden'); 251 aviaCookieConsentBadge.removeClass('avia_pop_class'); 252 }); 253 254 function avia_magnificPopup_init( options ) 255 { 256 var new_options = { 257 type:'inline', 258 midClick: true, // Allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source in href. 259 closeOnBgClick: false, 260 enableEscapeKey: false, 261 closeOnContentClick: false, 262 overflowY: scroll, 263 items:{ 264 src: '#av-consent-extra-info', 265 type:'inline' 266 }, 267 callbacks: { 268 open: function() { 269 $('html').css( 270 { overflow: 'hidden', 271 'max-height': '100%' 272 }); 273 }, 274 close: function() { 275 $('html').css( 276 { overflow: '', 277 'max-height': '' 278 }); 279 } 280 } 281 }; 282 283 new_options = $.extend( {}, $.avia_utilities.av_popup, new_options ); 284 $( '.avia-cookie-info-btn' ).magnificPopup( new_options ); 285 } 286 287 function avia_magnificPopup_close() 288 { 289 $.magnificPopup.close();
290 $_html.trigger( 'avia-cookie-settings-changed', 'avia_magnificPopup_close' ); 291 } 292 293 function set_cookie_paths() 294 { 295 var paths = {}; 296 if( 'undefined' != typeof AviaPrivacyCookieAdditionalData.remove_custom_cookies ) 297 { 298 $.each( AviaPrivacyCookieAdditionalData.remove_custom_cookies, function( i, custom_cookie ) { 299 var path = custom_cookie.cookie_path.trim(); 300 paths[ custom_cookie.cookie_name ] = ( '' != path ) ? path : '/'; 301 }); 302 } 303 304 return paths; 305 } 306 307 function aviaSetCookie( CookieName, CookieValue, CookieDays, custom_path ) 308 { 309 var path = '/'; 310 if( 'string' == typeof custom_path ) 311 { 312 if( '' != custom_path ) 313 { 314 path = custom_path; 315 } 316 } 317 else if( 'string' == typeof cookie_paths[ CookieName ] ) 318 { 319 path = cookie_paths[ CookieName ]; 320 } 321 322 if( CookieDays ) 323 { 324 var date = new Date(); 325 date.setTime( date.getTime() + ( CookieDays * 24 * 60 * 60 * 1000 ) ); 326 var expires = "; expires=" + date.toGMTString(); 327 } 328 else 329 { 330 var expires = ""; 331 } 332 333 document.cookie = CookieName + "=" + CookieValue + expires + "; path=" + path; 334 } 335 336 function aviaGetCookieNames( CookieName, check, path ) 337 { 338 check = ( 'undefined' == typeof check ) ? 'equals' : check.trim(); 339 340 var cookiesFound = []; 341 var docCookiesArr = document.cookie.split( ';' ); 342 343 for( var i = 0; i < docCookiesArr.length; i++ ) 344 { 345 var thisCookie = docCookiesArr[i]; 346 var result = thisCookie.split( '=' ); 347 var cookie_name = result[0].trim(); 348 var found = false; 349 350 switch (check) 351 { 352 case 'starts_with': 353 found = cookie_name.startsWith( CookieName ); 354 break; 355 case 'contains': 356 if( ! cookie_name.startsWith( 'aviaPrivacyCustomCookie' ) ) 357 { 358 found = cookie_name.indexOf( CookieName ) != -1; 359 } 360 break; 361 case 'equals': 362 case '': 363 default: 364 found = cookie_name == CookieName; 365 break; 366 } 367 368 if ( found ) 369 { 370 cookiesFound.push( { name: cookie_name, path: path } ); 371 } 372 } 373 374 return cookiesFound; 375 } 376 377 function aviaGetCookie( CookieName ) 378 { 379 var docCookiesArr = document.cookie.split( ';' ); 380 381 for( var i = 0; i < docCookiesArr.length; i++ ) 382 { 383 var thisCookie = docCookiesArr[i]; 384 var result = thisCookie.split( '=' ); 385 var cookie_name = result[0].trim(); 386 387 if ( cookie_name == CookieName ) 388 { 389 cookie_name += '='; 390 var savedContents = thisCookie.replace( cookie_name, '' ); 391 savedContents = savedContents.trim(); 392 return savedContents; 393 } 394 } 395 396 return null; 397 } 398 399 function aviaSetCookieToggles( action ) 400 { 401 var toggles = $( '.av-toggle-switch.av-cookie-disable-external-toggle' ); 402 403 toggles.each( function() { 404 var toggle = $(this); 405 var input = toggle.find( 'input' ); 406 var cookie = input.attr( 'name' ); 407 408 var value = true; 409 var days = 360; 410 411 if( action == 'select_all' ) 412 { 413 if( ! input.prop( 'checked' ) ) 414 { 415 input.trigger( 'click' ); 416 } 417 418 return; 419 } 420 else if( action == 'set' ) 421 { 422 if( input.prop( 'checked' ) && toggle.hasClass( 'av-cookie-save-unchecked' ) || false == input.prop( 'checked' ) && toggle.hasClass( 'av-cookie-save-checked' ) ) 423 { 424 value = false; 425 days = -60; 426 } 427 } 428 else // reset 429 {
430 var hidden = input.closest( '.av-hidden-escential-sc' ); 431 if( 0 == hidden.length ) 432 { 433 input.prop( 'checked', false ); 434 } 435 436 value = false; 437 days = -60; 438 } 439 440 aviaSetCookie( cookie, value, days ); 441 }); 442 443 if( action == 'reset' ) 444 { 445 aviaSetCookie( 'aviaCookieConsent', false, -60 ); 446 aviaSetCookie( 'aviaPrivacyMustOptInSetting', false, -60 ); 447 } 448 else if( action == 'set' ) 449 { 450 if( ! sessionBlocked ) 451 { 452 sessionStorage.removeItem( 'aviaCookieRefused' ); 453 } 454 455 $_html.removeClass( 'av-cookies-session-refused' ); 456 } 457 } 458 459 function monitor_cookies() 460 { 461 if( $_html.hasClass( 'av-cookies-consent-message-bar-only' ) ) 462 { 463 return; 464 } 465 466 var accepted = document.cookie.match(/aviaCookieConsent/) != null; 467 var allow_hide_bar = document.cookie.match(/aviaPrivacyRefuseCookiesHideBar/) != null; 468 var allow_cookies = document.cookie.match(/aviaPrivacyEssentialCookiesEnabled/) != null; 469 var keep_cookies = []; 470 471 if( ! ( accepted && allow_hide_bar && allow_cookies ) ) 472 { 473 if( accepted && allow_hide_bar ) 474 { 475 keep_cookies.push( 'aviaCookieConsent', 'aviaPrivacyRefuseCookiesHideBar', 'aviaPrivacyMustOptInSetting' ); 476 } 477 else if( accepted ) 478 { 479 keep_cookies.push( 'aviaCookieConsent', 'aviaPrivacyMustOptInSetting' ); 480 } 481 482 remove_all_cookies( keep_cookies ); 483 } 484 else 485 { 486 remove_custom_cookies(); 487 } 488 489 update_cookie_info_box(); 490 491 window.setTimeout( monitor_cookies, 300 ); 492 } 493 494 function remove_custom_cookies() 495 { 496 if( 'undefined' == typeof AviaPrivacyCookieAdditionalData.remove_custom_cookies ) 497 { 498 return; 499 } 500 501 $.each( AviaPrivacyCookieAdditionalData.remove_custom_cookies, function( i, custom_cookie ) { 502 var disable = aviaGetCookie( custom_cookie.avia_cookie_name ); 503 if( disable != null ) 504 { 505 var remove_cookies = aviaGetCookieNames( custom_cookie.cookie_name, custom_cookie.cookie_compare_action, custom_cookie.cookie_path ); 506 for( var i = 0; i < remove_cookies.length; i++ ) 507 { 508 aviaSetCookie( remove_cookies[i].name, false, -60, remove_cookies[i].path ); 509 } 510 } 511 }); 512 } 513 514 function remove_all_cookies( keep_cookies ) 515 { 516 if( $_html.hasClass('av-cookies-user-silent-accept') ) 517 { 518 return; 519 } 520 521 if( ! $.isArray( keep_cookies ) ) 522 { 523 keep_cookies = []; 524 } 525 526 if( $('body').hasClass( 'logged-in' ) && 'undefined' != typeof AviaPrivacyCookieAdditionalData.admin_keep_cookies ) 527 { 528 $.merge( keep_cookies, AviaPrivacyCookieAdditionalData.admin_keep_cookies ); 529 } 530 531 keep_cookies = keep_cookies.map( function( item ) { return item.trim().toLowerCase(); } ); 532 var cookie_array = document.cookie.split(';').map( function( item ) { return item.trim(); } ); 533 534 $.each( cookie_array, function( i, cookie ){ 535 536 if( '' == cookie ) 537 { 538 return; 539 } 540 541 var values = cookie.split( '=' ); 542 var name = values[0].trim(); 543 var test_name = name.toLowerCase(); 544 545 if( $.inArray( test_name, keep_cookies ) >= 0 ) 546 { 547 return; 548 } 549 550 var remove = true; 551 $.each( keep_cookies, function( i, keep_cookie ){ 552 if( keep_cookie.indexOf( '*' ) >= 0 ) 553 { 554 var new_val = keep_cookie.replace( '*', '' ); 555 if( test_name.startsWith( new_val ) ) 556 { 557 remove = false; 558 return false; 559 } 560 } 561 }); 562 563 if( remove ) 564 { 565 aviaSetCookie( name, false, -60 ); 566 return; 567 } 568 }); 569 } 570 571 function update_cookie_info_box() 572 { 573 if( 'undefined' == typeof AviaPrivacyCookieConsent ) 574 { 575 return; 576 } 577 578 var infobox = $( '.avia-cookie-privacy-cookie-info' ); 579 if( 0 == infobox.length ) 580 { 581 return; 582 } 583 584 var info_array = []; 585 var html = ''; 586 587 var cookies = document.cookie.split(';'); 588 cookies.sort( function( a, b ){ 589 var a = a.split( '=' ); 590 var b = b.split( '=' ); 591 592 if( a[0] < b[0] ) 593 { 594 return -1; 595 } 596 else if( a[0] > b[0] ) 597 { 598 return 1; 599 } 600 601 return 0; 602 }); 603 604 $.each( cookies, function( i, cookie ){ 605 if( '' == cookie.trim() ) 606 { 607 return; 608 } 609
610 var values = cookie.split( '=' ); 611 var name = values[0].trim(); 612 var value = 'undefined' != typeof values[1] ? values[1].trim() : ''; 613 var info = ''; 614 615 if( name in AviaPrivacyCookieConsent ) 616 { 617 info += AviaPrivacyCookieConsent[name]; 618 } 619 else 620 { 621 if( '?' in AviaPrivacyCookieConsent ) 622 { 623 info += AviaPrivacyCookieConsent['?']; 624 } 625 else 626 { 627 info += 'Usage unknown'; 628 } 629 630 $.each( AviaPrivacyCookieConsent, function( key, content ){ 631 var first = key.indexOf('*'); 632 var last = key.lastIndexOf('*'); 633 634 if( first < 0 && last < 0 ) 635 { 636 return; 637 } 638 639 if( last == ( key.length - 1 ) ) 640 { 641 key = key.substring( 0, key.length - 1 ); 642 } 643 else 644 { 645 last = -1; 646 } 647 648 if( first == 0 ) 649 { 650 key = key.replace( '*', '' ); 651 } 652 else 653 { 654 first = -1; 655 } 656 657 if( first < 0 && last < 0 ) 658 { 659 return; 660 } 661 662 var found = -1; 663 if( first >= 0 && last >= 0 ) 664 { 665 found = name.indexOf( key ); 666 } 667 else if( last >= 0 ) 668 { 669 found = name.indexOf( key ); 670 if( found != 0 ) 671 { 672 found = -1; 673 } 674 } 675 else 676 { 677 found = name.lastIndexOf( key ); 678 if( found < name.length - key.length ) 679 { 680 found = -1; 681 } 682 } 683 684 if( found >= 0 ) 685 { 686 info = content; 687 return false; 688 } 689 }); 690 691 } 692 693 var out = '<strong>' + name + '</strong> ( ' + value + ' ) - ' + info; 694 info_array.push( out ); 695 }); 696 697 if( info_array.length > 0 ) 698 { 699 html += '<ul>'; 700 701 $.each( info_array, function( i, value ){ 702 html += '<li>' + value + '</li>'; 703 }); 704 705 html += '</ul>'; 706 } 707 else 708 { 709 var msg = 'string' == typeof AviaPrivacyCookieAdditionalData.no_cookies_found ? AviaPrivacyCookieAdditionalData.no_cookies_found : 'No accessable cookies found in domain'; 710 html += '<p><strong>' + msg + '</strong></p>'; 711 } 712 713 infobox.html( html ); 714 } 715 716 function check_fallback_cookie_setting() 717 { 718 var hidden = $('#av-consent-extra-info').find('.av-hidden-escential
718-sc'); 719 if( hidden.length == 0 ) 720 { 721 return; 722 } 723 724 if( oldCookieContents == null ) 725 { 726 return; 727 } 728 729 var data = hidden.data('hidden_cookies'); 730 if( 'undefined' == typeof data ) 731 { 732 return; 733 } 734 735 /** 736 * If we have hidden toggles and user accepted cookies already we click the hidden cookies 737 */ 738 var hidden_cookies = data.split( ',' ); 739 740 $.each( hidden_cookies, function( i, value ){ 741 if( null == aviaGetCookie( value ) ) 742 { 743 hidden.find('input.' + value ).trigger( 'click' ); 744 } 745 }); 746 747 } 748 749 function check_doNotTrack() 750 { 751 if( window.doNotTrack || navigator.doNotTrack || navigator.msDoNotTrack || ( 'undefined' != typeof window.external && 'msTrackingProtectionEnabled' in window.external ) ) 752 { 753 // The browser supports Do Not Track! 754 if( window.doNotTrack == "1" || navigator.doNotTrack == "yes" || navigator.doNotTrack == "1" || navigator.msDoNotTrack == "1" || ( 'undefined' != typeof window.external && 'msTrackingProtectionEnabled' in window.external && window.external.msTrackingProtectionEnabled() ) ) 755 { 756 var input = $( 'input.aviaPrivacyGoogleTrackingDisabled' ); 757 if( input.length > 0 ) 758 { 759 if( null == aviaGetCookie( 'aviaPrivacyGoogleTrackingDisabled' ) ) 760 { 761 input.trigger( 'click' ); 762 } 763 764 var container = input.closest( '.av-toggle-switch' ); 765 var message = container.data( 'disabled_by_browser' ).trim(); 766 container.addClass('av-cookie-sc-disabled'); 767 container.append( '<p><strong>' + message + '</strong></p>'); 768 input.attr( 'disabled', 'disabled' ); 769 } 770 } 771 } 772 } 773 774 update_cookie_info_box(); 775 monitor_cookies(); 776 777 if( $_html.hasClass( 'avia-cookie-consent-modal-show-immediately' ) && ! $_html.hasClass( 'av-cookies-consent-message-bar-only' ) ) 778 { 779 if( ! aviaCookieConsentBar.hasClass( 'cookiebar-hidden' ) ) 780 { 781 $('.avia-cookie-info-btn').trigger('click'); 782 } 783 } 784 785 if( aviaCookieConsentBadge.length > 0 ) 786 { 787 if( aviaCookieConsentBar.hasClass( 'cookiebar-hidden' ) ) 788 { 789 aviaCookieConsentBadge.addClass( 'avia_pop_class' ); 790 } 791 else 792 { 793 aviaCookieConsentBadge.removeClass( 'avia_pop_class' ); 794 } 795 } 796 }); 797 798})( jQuery );
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.