1(function( $ ) { 2 'use strict'; 3 4 // Create the defaults once 5 var pluginName = "gdpr", 6 defaults = { 7 bla: "", 8 }; 9 10 // The actual plugin constructor 11 function Plugin ( element, options ) { 12 this.element = element; 13 this.settings = $.extend( {}, defaults, options ); 14 this._defaults = defaults; 15 16 this._name = pluginName; 17 this.init(); 18 } 19 20 // Avoid Plugin.prototype conflicts 21 $.extend( Plugin.prototype, { 22 init: function() { 23 var that = this; 24 this.window = $(window); 25 this.documentHeight = $( document ).height(); 26 this.windowHeight = this.window.height(); 27 this.privacySettingsCheckPerformed = false; 28 29 this.elements = {}; 30 this.elements.popUp = $('.wordpress-gdpr-popup-container'); 31 this.elements.popUpAgreeLink = $('.wordpress-gdpr-popup-agree'); 32 this.elements.popUpDeclineLink = $('.wordpress-gdpr-popup-decline'); 33 this.elements.popUpCloseLink = $('.wordpress-gdpr-popup-close'); 34 this.elements.popUpBackdrop = $('.wordpress-gdpr-popup-overlay-backdrop'); 35 36 this.privacySettingsLoaded = {}; 37 this.elements.privacySettingsPopupTrigger = $('.wordpress-gdpr-privacy-settings-trigger-container'); 38 this.elements.privacySettingsPopup = $('.wordpress-gdpr-privacy-settings-popup'); 39 this.elements.privacySettingsPopupPrivacySettings = $('.wordpress-gdpr-privacy-settings-popup-privacy-settings-modal'); 40 this.elements.privacySettingsPopupAgreeLink = $('.wordpress-gdpr-privacy-settings-popup-agree'); 41 this.elements.privacySettingsPopupDeclineLink = $('.wordpress-gdpr-privacy-settings-popup-decline'); 42 this.elements.privacySettingsPopupCloseLink = $('.wordpress-gdpr-privacy-settings-popup-close'); 43 this.elements.privacySettingsPopupSaveLink = $('.wordpress-gdpr-privacy-settings-popup-services-save'); 44 45 this.elements.privacySettingsPopupBackdrop = $('.wordpress-gdpr-privacy-settings-popup-backdrop'); 46 47 if(this.settings.geoIP == "1") { 48 this.getUsersCountry(function(country) { 49 50 var euCountries = ['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', '
50SE', 'GB']; 51 var isEU = that.isInArray(country, euCountries); 52 if(isEU) { 53 that.popUp(); 54 } else { 55 $('.wordpress-gdpr-popup-actions-buttons .wordpress-gdpr-popup-agree').trigger('click'); 56 that.elements.privacySettingsPopupTrigger.remove(); 57 } 58 }); 59 60 } else { 61 this.popUp(); 62 } 63 64 this.popUpAgree(); 65 this.popUpClose(); 66 this.popUpDecline(); 67 68 this.popUpPrivacySettings(); 69 this.popUpPrivacySettingsOpen(); 70 this.popUpPrivacySettingsClose(); 71 72 this.privacyPolicyTermsAcceptance(); 73 this.commentFormprivacyPolicyTermsAcceptance(); 74 }, 75 popUp : function() { 76 77 var botPattern = "(craw|googlebot\/|bot|Googlebot-Mobile|Googlebot-Image|Google favicon|Mediapartners-Google|bingbot|Slurp|Java|wget|curl|Commons-HttpClient|Python-urllib|libwww|httpunit|nutch|phpcrawl|msnbot|jyxobot|FAST-WebCrawler|FAST Enterprise Crawler|biglotron|teoma|convera|seekbot|gigablast|exabot|ngbot|ia_archiver|GingerCrawler|webmon |httrack|webcrawler|grub.org|UsineNouvelleCrawler|antibot|netresearchserver|speedy|fluffy|bibnum.bnf|findlink|msrbot|panscient|yacybot|AISearchBot|IOI|ips-agent|tagoobot|MJ12bot|dotbot|woriobot|yanga|buzzbot|mlbot|yandexbot|purebot|Linguee Bot|Voyager|CyberPatrol|voilabot|baiduspider|citeseerxbot|spbot|twengabot|postrank|turnitinbot|scribdbot|page2rss|sitebot|linkdex|Adidxbot|blekkobot|ezooms|dotbot|Mail.RU_Bot|discobot|heritrix|findthatfile|europarchive.org|NerdByNature.Bot|sistrix crawler|ahrefsbot|Aboundex|domaincrawler|wbsearchbot|summify|ccbot|edisterbot|seznambot|ec2linkfinder|gslfbot|aihitbot|intelium_bot|facebookexternalhit|yeti|RetrevoPageAnalyzer|lb-spider|sogou|lssbot|careerbot|wotbox|wocbot|ichiro|DuckDuckBot|lssrocketcrawler|drupact|webcompanycrawler|acoonbot|openindexspider|gnam gnam spider|web-archive-net.com.bot|backlinkcrawler|coccoc|integromedb|content crawler spider|toplistbot|seokicks-robot|it2media-domain-crawler|ip-web-crawler.com|lighthouse|siteexplorer.info|elisabot|proximic|changedetection|blexbot|arabot|WeSEE:Search|niki-bot|CrystalSemanticsBot|rogerbot|360Spider|psbot|InterfaxScanBot|Lipperhey SEO Service|CC Metadata Scaper|g00g1e.net|GrapeshotCrawler|urlappendbot|brainobot|fr-crawler|binlar|SimpleCrawler|Livelapbot|Twitterbot|cXensebot|smtbot|bnf.fr_bot|A6-Indexer|ADmantX|Facebot|Twitterbot|OrangeBot|memorybot|AdvBot|MegaIndex|SemanticScholarBot|ltx71|nerdybot|xovibot|BUbiNG|Qwantify|archive.org_bot|Applebot|TweetmemeBot|crawler4j|findxbot|SemrushBot|yoozBot|lipperhey|y!j-asr|Domain Re-Animator Bot|AddThis|bot|googlebot|crawler|spider|robot|crawling)"; 78 var re = new RegExp(botPattern, 'i'); 79 if (re.test(navigator.userAgent)) { 80 return false; 81 } 82 83 var that = this; 84 var cookiesAllowed = false; 85 86 87 if(localStorage && that.getParameterByName('gdpr') !== "debug" && ( that.getCookie('wordpress_gdpr_cookies_allowed') || that.getCookie('wordpress_gdpr_cookies_declined') ) ) { 88 89 var retrievedObject = localStorage.getItem('wordpress_gdpr_services_allowed_temp'); 90 if(retrievedObject) { 91 var services = JSON.parse(retrievedObject); 92 if(services.version == that.settings.version) { 93 that.executeServices(services); 94 return; 95 } else { 96 97 if(that.elements.popUpBackdrop.length > 0) { 98 that.elements.popUpBackdrop.show(); 99 } 100 that.elements.popUp.show(); 101 that.checkPrivacySettings(); 102 return; 103 } 104 } 105 } 106 107 $.ajax({ 108 type : 'post', 109 url : that.settings.ajaxURL, 110 dataType : 'json', 111 data : { 112 action : 'check_privacy_setting',
113 setting : 'wordpress_gdpr_cookies_allowed', 114 current_page_id : that.get_current_page_id() 115 }, 116 success : function( response ) { 117 118 var popupExcludePages = that.settings.popupExcludePages; 119 var exclude = false; 120 if(!that.isEmpty(popupExcludePages)) { 121 var currentPage, matches = document.body.className.match(/(^|\s)post-id-(\d+)(\s|$)/); 122 if (matches) { 123 currentPage = matches[2]; 124 } else { 125 matches = document.body.className.match(/(^|\s)page-id-(\d+)(\s|$)/); 126 if (matches) { 127 currentPage = matches[2]; 128 } 129 } 130 if(currentPage !== "" && that.isInArray(currentPage, popupExcludePages)) { 131 exclude = true; 132 } 133 } 134 135 if(!exclude) { 136 if(response.firstTime) { 137 if(that.elements.popUpBackdrop.length > 0) { 138 that.elements.popUpBackdrop.show(); 139 } 140 $.each($('.gdpr-service-switch:not(:disabled)'), function(i, index) { 141 $(this).prop('checked', true); 142 }); 143 that.elements.popUp.show(); 144 } 145 else if((!response.allowed && !response.declined) || that.getParameterByName('gdpr') === "debug") { 146 if(that.elements.popUpBackdrop.length > 0) { 147 that.elements.popUpBackdrop.show(); 148 } 149 that.elements.popUp.show(); 150 } else { 151 if(that.elements.popUpBackdrop.length > 0) { 152 that.elements.popUpBackdrop.hide(); 153 } 154 that.elements.popUp.hide(); 155 } 156 } 157 158 //if(response.declined == true) { 159 // return; 160 //} 161 that.checkPrivacySettings(); 162 }, 163 error: function (xhr, ajaxOptions, thrownError) { 164 console.log(xhr); 165 console.log(ajaxOptions); 166 console.log(thrownError); 167 } 168 }); 169 }, 170 popUpClose : function() { 171 172 var that = this; 173 174 $(that.elements.popUpCloseLink).on('click', function(e) { 175 e.preventDefault(); 176 if(that.elements.popUpBackdrop.length > 0) { 177 that.elements.popUpBackdrop.fadeOut(); 178 } 179 that.elements.popUp.fadeOut(); 180 }); 181 }, 182 popUpDecline : function() { 183 184 var that = this; 185 186 that.elements.popUpDeclineLink.on('click', function(e) { 187 188 e.preventDefault(); 189 190 var $this = $(this); 191 var text = $this.text(); 192 $this.html('<i class="fa fa-spinner fa-spin"></i>'); 193 194 $.ajax({ 195 type : 'post', 196 url : that.settings.ajaxURL, 197 dataType : 'json', 198 data : { 199 action : 'wordpress_gdpr_decline_cookies' 200 }, 201 success : function( response ) { 202 203 if(localStorage) { 204 localStorage.removeItem('wordpress_gdpr_services_allowed_temp'); 205 } 206 207 if(that.elements.popUpBackdrop.length > 0) { 208 that.elements.popUpBackdrop.fadeOut(); 209 } 210 $('.wordpress-gdpr-privacy-settings-popup, .wordpress-gdpr-privacy-settings-popup-backdrop').fadeOut(); 211 that.elements.popUp.fadeOut(); 212 $.each($('.gdpr-service-switch:not(:disabled)'), function(i, index) { 213 $(this).prop('checked', false); 214 }); 215 $this.text(text); 216 217 }, 218 error: function (xhr, ajaxOptions, thrownError) { 219 console.log(xhr); 220 console.log(ajaxOptions); 221 console.log(thrownError); 222 } 223 }); 224 }); 225 }, 226 popUpAgree : function() { 227 228 var that = this; 229 230 that.elements.popUpAgreeLink.on('click', function(e) { 231 e.preventDefault(); 232 233 var $this = $(this); 234 var text = $this.text(); 235 $this.html('<i class="fa fa-spinner fa-spin"></i>'); 236 237 $.ajax({ 238 type : 'post', 239 url : that.settings.ajaxURL, 240 dataType : 'json', 241 data : {
242 action : 'wordpress_gdpr_allow_cookies' 243 }, 244 success : function( response ) { 245 246 if(localStorage) { 247 localStorage.removeItem('wordpress_gdpr_services_allowed_temp'); 248 } 249 250 if(that.elements.popUpBackdrop.length > 0) { 251 that.elements.popUpBackdrop.fadeOut(); 252 } 253 $('.wordpress-gdpr-privacy-settings-popup, .wordpress-gdpr-privacy-settings-popup-backdrop').fadeOut(); 254 that.elements.popUp.fadeOut(); 255 $.each($('.gdpr-service-switch:not(:disabled)'), function(i, index) { 256 $(this).prop('checked', true); 257 }); 258 259 that.checkPrivacySettings(); 260 $this.text(text); 261 }, 262 error: function (xhr, ajaxOptions, thrownError) { 263 console.log(xhr); 264 console.log(ajaxOptions); 265 console.log(thrownError); 266 } 267 }); 268 }); 269 }, 270 popUpPrivacySettingsOpen : function () { 271 272 var that = this; 273 274 $('.wordpress-gdpr-open-privacy-settings-modal').on('click', function(e) { 275 e.preventDefault(); 276 277 if(($('.wordpress-gdpr-privacy-settings-popup-services-container').length < 1)) { 278 alert('No GDPR Service Categories / Services created yet. Remove the trigger or create services and attach them to service categories first.'); 279 return false; 280 } 281 282 if($('.wordpress-gdpr-popup').length > 0) { 283 $('.wordpress-gdpr-popup').hide(0, function() { 284 $('.wordpress-gdpr-privacy-settings-popup, .wordpress-gdpr-privacy-settings-popup-backdrop').fadeIn(); 285 }); 286 } else { 287 $('.wordpress-gdpr-privacy-settings-popup, .wordpress-gdpr-privacy-settings-popup-backdrop').fadeIn(); 288 } 289 }); 290 }, 291 popUpPrivacySettingsClose : function () { 292 293 var that = this; 294 295 $(that.elements.privacySettingsPopupCloseLink).on('click', function(e) { 296 e.preventDefault(); 297 if(that.elements.privacySettingsPopupBackdrop.length > 0) { 298 that.elements.privacySettingsPopupBackdrop.fadeOut(); 299 } 300 that.elements.privacySettingsPopup.fadeOut(); 301 }); 302 303 $(that.elements.privacySettingsPopupSaveLink).on('click', function(e) { 304 e.preventDefault(); 305 if(that.elements.privacySettingsPopupBackdrop.length > 0) { 306 that.elements.privacySettingsPopupBackdrop.fadeOut(); 307 } 308 that.elements.privacySettingsPopup.fadeOut(); 309 }); 310 311 if(that.settings.privacySettingsPopupBackdropDisableClick == "0") { 312 $(that.elements.privacySettingsPopupBackdrop).on('click', function(e) { 313 e.preventDefault(); 314 if(that.elements.privacySettingsPopupBackdrop.length > 0) { 315 that.elements.privacySettingsPopupBackdrop.fadeOut(); 316 } 317 that.elements.privacySettingsPopup.fadeOut(); 318 }); 319 } 320 }, 321 popUpPrivacySettings : function() { 322 323 $('.wordpress-gdpr-popup-privacy-settings-open-service-category').on('click', function(e) { 324 e.preventDefault(); 325 326 $('.wordpress-gdpr-popup-privacy-settings-open-service-category').removeClass('wordpress-gdpr-popup-privacy-settings-service-category-active'); 327 328 $(this).addClass('wordpress-gdpr-popup-privacy-settings-service-category-active'); 329 330 var id = $(this).data('id'); 331 $('.wordpress-gdpr-popup-privacy-settings-services-content:not(#wordpress-gdpr-popup-privacy-settings-services-content-' + id + ')').hide(0, function() { 332 $('#wordpress-gdpr-popup-privacy-settings-services-content-' + id).show(); 333 }); 334 }); 335 336 $('.wordpress-gdpr-popup-privacy-settings-services-content-title').on('click', function(e) { 337 e.preventDefault(); 338 339 var $this = $(this); 340 var id= $(this).data('id'); 341 var fa = $this.find('.fa'); 342 343 var description = $('#wordpress-gdpr-popup-privacy-settings-services-content-description-' + id); 344 if (description.css('display') == 'none') { 345 description.slideDown(); 346 fa.removeClass('fa-caret-right').addClass('fa-caret-down'); 347 } else {
348 description.slideUp(); 349 fa.removeClass('fa-caret-down').addClass('fa-caret-right'); 350 } 351 }); 352 }, 353 checkPrivacySettings : function() { 354 355 var that = this; 356 var settings = {}; 357 var switches = $('.gdpr-service-switch'); 358 359 $.each(switches, function() { 360 var serviceID = $(this).data('id'); 361 settings[serviceID] = serviceID; 362 }); 363 364 $.ajax({ 365 type : 'post', 366 url : that.settings.ajaxURL, 367 dataType : 'json', 368 data : { 369 action : 'check_privacy_settings', 370 settings : settings, 371 }, 372 success : function( response ) { 373 374 if(localStorage) { 375 response.version = that.settings.version; 376 localStorage.setItem('wordpress_gdpr_services_allowed_temp', JSON.stringify(response)); 377 } 378 379 that.executeServices(response); 380 }, 381 error: function (xhr, ajaxOptions, thrownError) { 382 console.log(xhr); 383 console.log(ajaxOptions); 384 console.log(thrownError); 385 } 386 }); 387 }, 388 executeServices : function(services) { 389 390 var that = this; 391 392 if(!services) { 393 return; 394 } 395 396 window.dataLayer = window.dataLayer || []; 397 398 if(that.settings.consentModeV2 == "1") { 399 window.gtag = function() { dataLayer.push(arguments); } 400 window.gtag('consent', 'default', { 401 ad_storage: 'denied', 402 analytics_storage: 'denied', 403 ad_user_data: 'denied', 404 ad_personalization: 'denied', 405 wait_for_update: 500 406 }); 407 } 408 409 var that = this; 410 var obj = {'event' : 'consent_status'}; 411 $.each(services, function(i, index) { 412 413 if(index.allowed && !that.privacySettingsLoaded[i]) { 414 415 if(index.head !== "") { 416 $("head").append(index.head); 417 } 418 419 if(index.body !== "") { 420 $(index.body).prependTo($('body')); 421 } 422 } 423 424 if(index.adsense == "1" && !index.allowed && that.privacySettingsLoaded[i]) { 425 426 var adsExists = $(".adsbygoogle"); 427 if(adsExists.length > 0 && that.getCookie('wordpress_gdpr_adsense_allowed') !== "true") { 428 adsExists.remove(); 429 } 430 } 431 432 if(index.adwords == "1" && index.allowed && that.settings.consentModeV2 == "1") { 433 window.gtag('consent', 'update', { 434 'ad_storage': 'granted', 435 'ad_user_data': 'granted', 436 'ad_personalization': 'granted', 437 }); 438 } 439 440 if(index.analytics == "1" && index.allowed && that.settings.consentModeV2 == "1") { 441 window.gtag('consent', 'update', { 442 'analytics_storage': 'granted', 443 }); 444 } 445 446 var checkbox_exists = $('input[name="' + i + '"]') ; 447 if(checkbox_exists.length > 0) { 448 if(index.allowed) { 449 checkbox_exists.prop('checked', true); 450 that.privacySettingsLoaded[i] = true; 451 } else { 452 checkbox_exists.prop('checked', false); 453 that.privacySettingsLoaded[i] = false; 454 } 455 } 456 457 obj[index.name] = index.allowed; 458 459 if(checkbox_exists.length > 0 && !that.privacySettingsCheckPerformed) { 460 461 checkbox_exists.on('change', function(e) { 462 463 var checked = $(this).prop('checked'); 464 var name = $(this).prop('name'); 465 466 $('.wordpress-gdpr-privacy-settings-popup-message').fadeIn(); 467 468 $.ajax({ 469 type : 'post', 470 url : that.settings.ajaxURL, 471 dataType : 'json', 472 data : { 473 action : 'update_privacy_setting', 474 setting : name, 475 checked : checked, 476 }, 477 success : function( response ) { 478 479 if(localStorage) { 480 localStorage.removeItem('wordpress_gd
480pr_services_allowed_temp'); 481 } 482 483 setTimeout(function(){ $('.wordpress-gdpr-privacy-settings-popup-message').fadeOut(); }, 1500); 484 485 var index = response[name]; 486 if(index.head !== "" && index.allowed && !that.privacySettingsLoaded[name]) { 487 $("head").append(index.head); 488 } 489 if(index.body !== "" && index.allowed && !that.privacySettingsLoaded[name]) { 490 $(index.body).prependTo($('body')); 491 } 492 493 if(index.adsense == "1" && !index.allowed && !that.privacySettingsLoaded[name]) { 494 var adsExists = $(".adsbygoogle"); 495 496 if(adsExists.length > 0 && that.getCookie('wordpress_gdpr_adsense_allowed') !== "true") { 497 adsExists.remove(); 498 } 499 } 500 501 var obj = {}; 502 obj[index.name] = index.allowed; 503 window.dataLayer.push( { 'event' : 'consent_status', 'consents': obj } ); 504 505 if(index.analytics == "1" && index.allowed && that.settings.consentModeV2 == "1") { 506 window.gtag('consent', 'update', { 507 'analytics_storage': 'granted', 508 }); 509 } 510 511 if(index.adwords == "1" && index.allowed && that.settings.consentModeV2 == "1") { 512 window.gtag('consent', 'update', { 513 'ad_storage': 'granted', 514 'ad_user_data': 'granted', 515 'ad_personalization': 'granted', 516 }); 517 } 518 519 var checkbox_exists = $('input[name="' + name + '"]') ; 520 if(checkbox_exists.length > 0) { 521 if(index.allowed) { 522 checkbox_exists.prop('checked', true); 523 that.privacySettingsLoaded[name] = true; 524 } else { 525 checkbox_exists.prop('checked', false); 526 } 527 } 528 } 529 }); 530 }); 531 } 532 }); 533 534 that.privacySettingsCheckPerformed = true; 535 536 if(that.settings.consentModeV2 == "1") { 537 window.dataLayer.push( { 'event' : 'consent_status', 'consents': obj } ); 538 } 539 }, 540 get_current_page_id : function() { 541 var page_body = $('body.page'); 542 543 var id = 0; 544 545 if(page_body) { 546 var page_body_class = page_body.attr('class') 547 548 if(page_body_class || page_body_class != null) { 549 if(page_body_class.length > 1) { 550 var page_body_class_list = page_body_class.split(/\s+/); 551 552 $.each(page_body_class_list, function(index, item) { 553 if (item.indexOf('page-id') >= 0) { 554 var item_arr = item.split('-'); 555 id = item_arr[item_arr.length -1]; 556 return false; 557 } 558 }); 559 } 560 } 561 } 562 return id; 563 }, 564 getUsersCountry : function(callback) { 565 var that = this; 566 567 $.ajax({ 568 url: "https://get.geojs.io/v1/ip/geo.json", 569 type: 'get', 570 dataType: 'json', 571 success : function( response ) { 572 callback(response.country_code); 573 }, 574 error: function(jqXHR, textStatus, errorThrown) { 575 console.log(jqXHR); 576 console.log(textStatus); 577 console.log(errorThrown); 578 } 579 }); 580 }, 581 commentFormprivacyPolicyTermsAcceptance : function() { 582 var that = this; 583 584 var submit = $('#commentform input[type="submit"]'); 585 if(submit.length < 1) { 586 return false;
587 } 588 589 var checkbox = $('#commentform #privacy_policy'); 590 if(checkbox.length < 1) { 591 return false; 592 } 593 594 submit.on('click', function(e) { 595 var checkboxChecked = checkbox.is(':checked'); 596 if(!checkboxChecked) { 597 e.preventDefault(); 598 alert(that.settings.acceptanceText); 599 return false; 600 } 601 602 $.ajax({ 603 type : 'post', 604 url : that.settings.ajaxURL, 605 dataType : 'json', 606 data : { 607 action : 'wordpress_gdpr_update_privacy_policy_terms', 608 setting : 'wordpress_gdpr_privacy_policy_accepted', 609 checked : checkboxChecked, 610 } 611 }); 612 return true; 613 }); 614 }, 615 privacyPolicyTermsAcceptance : function() { 616 var that = this; 617 618 if($('#accept-privacy-policy-checkbox').length < 1 && $('#accept-terms-conditions-checkbox').length < 1) { 619 return false; 620 } 621 622 $('#accept-privacy-policy-checkbox').on('click', function(e) { 623 var name = $(this).prop('name'); 624 var checked = $(this).prop('checked'); 625 626 if(!checked) { 627 alert(that.settings.acceptanceText); 628 return false; 629 } 630 631 $.ajax({ 632 type : 'post', 633 url : that.settings.ajaxURL, 634 dataType : 'json', 635 data : { 636 action : 'wordpress_gdpr_update_privacy_policy_terms', 637 setting : name, 638 checked : checked, 639 }, 640 }); 641 }); 642 643 $('#accept-terms-conditions-checkbox').on('click', function(e) { 644 var name = $(this).prop('name'); 645 var checked = $(this).prop('checked'); 646 647 // if(!checked) { 648 // alert(that.settings.termsAcceptanceText); 649 // return false; 650 // } 651 652 $.ajax({ 653 type : 'post', 654 url : that.settings.ajaxURL, 655 dataType : 'json', 656 data : { 657 action : 'wordpress_gdpr_update_privacy_policy_terms', 658 setting : name, 659 checked : checked, 660 }, 661 }); 662 }); 663 },
664 ////////////////////// 665 ///Helper Functions/// 666 ////////////////////// 667 deleteAllCookies : function() { 668 var cookies = document.cookie.split(";"); 669 for (var i = 0; i < cookies.length; i++) { 670 var cookie = cookies[i]; 671 var eqPos = cookie.indexOf("="); 672 var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; 673 document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"; 674 } 675 676 }, 677 isEmpty: function(obj) { 678 679 if (obj == null) return true; 680 if (obj.length > 0) return false; 681 if (obj.length === 0) return true; 682 683 for (var key in obj) { 684 if (hasOwnProperty.call(obj, key)) return false; 685 } 686 687 return true; 688 }, 689 sprintf: function parse(str) { 690 var args = [].slice.call(arguments, 1), 691 i = 0; 692 693 return str.replace(/%s/g, function() { 694 return args[i++]; 695 696 }); 697 }, 698 getCookie: function(cname) { 699 var name = cname + "="; 700 var ca = document.cookie.split(';'); 701 for(var i=0; i<ca.length; i++) { 702 var c = ca[i]; 703 while (c.charAt(0)==' ') c = c.substring(1); 704 if (c.indexOf(name) === 0) return c.substring(name.length, c.length); 705 } 706 return ""; 707 }, 708 createCookie: function(name, value, days) { 709 var expires = ""; 710 711 if (days) { 712 var date = new Date(); 713 date.setTime(date.getTime() + (days*24*60*60*1000)); 714 var expires = "; expires="+date.toGMTString(); 715 } 716 717 document.cookie = name + "=" + value+expires + "; path=/"; 718 }, 719 deleteCookie: function(name) { 720 this.createCookie(name, '', -10); 721 }, 722 getParameterByName: function(name, url) { 723 if (!url) url = window.location.href; 724 name = name.replace(/[\[\]]/g, "\\$&"); 725 var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)", "i"), 726 results = regex.exec(url); 727 if (!results) return null; 728 if (!results[2]) return ''; 729 return decodeURIComponent(results[2].replace(/\+/g, " ")); 730 }, 731 isInArray : function (value, array) { 732 return array.indexOf(value) > -1; 733 } 734 } ); 735 736 // Constructor wrapper 737 $.fn[ pluginName ] = function( options ) { 738 return this.each( function() { 739 if ( !$.data( this, "plugin_" + pluginName ) ) { 740 $.data( this, "plugin_" + 741 pluginName, new Plugin( this, options ) ); 742 } 743 } ); 744 }; 745 746 $(document).ready(function() { 747 748 $( "body" ).gdpr( 749 gdpr_options 750 ); 751 752 } ); 753 754})( 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.