1var isFirst; //for All products 2 3function getParam(param) { 4 var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 5 for (var i = 0; i < url.length; i++) { 6 var params = url[i].split("="); 7 if (params[0] == param) 8 return params[1]; 9 } 10 return false; 11} 12 13 14// Explicitly save/update a url parameter using HTML5's replaceState(). 15function updateQueryStringParam(key, value) { 16 var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''); 17 urlQueryString = document.location.search; 18 var newParam = key + '=' + value, 19 params = '?' + newParam; 20 21 // If the "search" string exists, then build params from it 22 if (urlQueryString) { 23 //keyRegex = new RegExp('([\?&])' + key + '[^&]*'); 24 keyRegex = new RegExp('([\\?&])' + key + '=([^&]*)', 'g'); 25 // If param exists already, update it 26 if (urlQueryString.match(keyRegex) !== null) { 27 params = urlQueryString.replace(keyRegex, "$1" + newParam); 28 } else { // Otherwise, add it to end of query string 29 params = urlQueryString + '&' + newParam; 30 } 31 } 32 window.history.replaceState({}, "", baseUrl + params); 33 34 return baseUrl + params; 35} 36 37$(window).on('load', function () { 38 39 // PRNJ Site Only 40 if ($('body').hasClass('prnj_my-prnewswire')) { 41 var toolbarSection = $('.toolbar-container').closest('section'); 42 $('.fw-bg.trending-news').after(toolbarSection); 43 } 44 45 document.querySelectorAll('.lightbox-item.video').forEach(el => { 46 const val = el.getAttribute('data-linkedin-share-url'); 47 if (val && val.includes('.mp4')) { 48 let final_url = document.URL; 49 50 let domain = null; 51 52 // find all elements that have onclick 53 document.querySelectorAll('[onclick]').forEach(function (el) { 54 55 const onclickText = el.getAttribute('onclick'); 56 if (!onclickText) return; 57 58 // extract parameters 59 const params = onclickText 60 .match(/\((.*)\)/)[1] 61 .split(',') 62 .map(v => v.trim().replace(/['"]/g, '')); 63 64 // check 1st value is linkedin 65 if (params[0] === 'linkedin') { 66 domain = params[2]; 67 } 68 }); 69 70 if ( 71 window.location.href.includes('/content/prnmedia') || 72 final_url.includes('prnmedia.prnewswire.com') 73 ) { 74 if (domain !== null && domain !== undefined) { 75 76 if (domain === 'www.newswire.ca') { 77 final_url = escapeHTML( 78 final_url.replace( 79 '/content/prnmedia/us/en/', 80 '/content/newswire-ca/ca/en/' 81 ) 82 ); 83 84 final_url = final_url.includes('-prnmedia.prnewswire.com') 85 ? escapeHTML(final_url.replace('-prnmedia.prnewswire.com', '.newswire.ca')) 86 : escapeHTML(final_url.replace('prnmedia.prnewswire.com', 'newswire.ca')); 87 88 } else if (domain === 'www.prnewswire.com') { 89 final_url = final_url.replace('/content/prnmedia/', '/content/prnewswire/'); 90 91 final_url = final_url.includes('-prnmedia.prnewswire.com') 92 ? final_url.replace('-prnmedia.prnewswire.com', '.prnewswire.com') 93 : escapeHTML(final_url.replace('prnmedia.prnewswire.com', 'prnewswire.com')); 94 95 } else { 96 const newsReleaseSite = new Map([ 97 ['www.prnewswire.co.uk', 'www.prnewswire.co.uk/news-releases'], 98 ['www.prnewswire.com/ae', 'www.prnewswire.com/ae/news-releases'], 99 ['www.prnewswire.com/ae/ar', 'www.prnewswire.com/ae/ar/news-releases'], 100 ['www.prnewswire.com/ae/he', 'www.prnewswire.com/ae/he/news-releases'], 101 ['www.prnewswire.com/apac', 'www.prnewswire.com/apac/news-releases'], 102 ['www.prnewswire.com/in', 'www.prnewswire.com/in/news-releases'], 103 ['www.prnewswire.com/il', 'www.prnewswire.com/il/news-releases'], 104 ['www.prnewswire.com/es', 'www.prnewswire.com/es/comunicados-de-prensa'], 105 ['www.prnewswire.com/ru', 'www.prnewswire.com/ru/press-releases'], 106 ['www.prnewswire.com/sk', 'www.prnewswire.com/sk/tlacova-sprava'], 107 ['www.prnewswire.com/nl', 'www.prnewswire.com/nl/persberichten'], 108 ['www.prnewswire.com/da', 'www.prnewswire.com/da/pressemeddelelser'], 109 ['www.prnewswire.com/fi', 'www.prnewswire.com/fi/lehdistotiedotteet'], 110 ['www.prnewswire.com/de', 'www.prnewswire.com/de/pressemitteilungen'], 111 ['www.prnewswire.com/fr', 'www.prnewswire.com/fr/communiques-de-presse'], 112 ['www.prnewswire.com/cs', 'www.prnewswire.com/cs/tiskova-zprava'], 113 ['www.prnewswire.com/sv', 'www.prnewswire.com/sv/pressmeddelanden'], 114 ['www.prnewswire.com/pt', 'www.prnewswire.com/pt/comunicados-de-imprensa'], 115 ['www.prnewswire.com/pl', 'www.prnewswire.com/pl/komunikat-prasowy'], 116 ['www.prnewswire.com/no', 'www.prnewswire.com/no/pressemeldinger'], 117 ['www.prnewswire.com/it', 'www.prnewswire.com/it/comunicati-stampa'], 118 ['www.prnewswire.com/id', 'www.prnewswire.com/id/rilis-berita'], 119 ['www.prnewswire.com/apac/zh', 'www.prnewswire.com/apac/zh/news-releases'], 120 ['www.prnewswire.com/kr', 'www.prnewswire.com/kr/news-releases'], 121 ['www.prnewswire.com/jp', 'www.prnewswire.com/jp/news-releases'], 122 ['www.prnewswire.com/mx', 'www.prnewswire.com/mx/comunicados-de-prensa'], 123 ['www.prnewswire.com/br', 'www.prnewswire.com/br/comunicados-para-a-imprensa'], 124 ['www.prnewswire.com/vn', 'www.prnewswire.com/vn/news-releases'], 125 ['www.prnewswire.com/me', 'www.prnewswire.com/me/news-releases'] 126 ]); 127 128 let mappedDomain = newsReleaseSite.get(domain); 129 if (mappedDomain) { 130 mappedDomain = mappedDomain.replace('www', ''); 131 const split_url = final_url.substring( 132 final_url.indexOf('-prnmedia'), 133 final_url.lastIndexOf('/') 134 ); 135 136 final_url = final_url.includes('-prnmedia.prnewswire.com') 137 ? final_url.replace(split_url, mappedDomain) 138 : escapeHTML(final_url.replace(split_url, mappedDomain)); 139 } 140 } 141 } 142 143 const langValue = document.getElementById('langValue')?.value; 144 145 if ( 146 langValue === 'fr' && 147 domain !== 'www.newswire.ca' && 148 final_url.includes('-prnmedia.prnewswire.com') 149 ) { 150 final_url = final_url.replace('/fr/', '/'); 151 152 } else if ( 153 (langValue === 'de' || langValue === 'es') && 154 final_url.includes('-prnmedia.prnewswire.com') 155 ) { 156 final_url = final_url.replace('/de/', '/').replace('/es/', '/'); 157 } 158 159 } else { 160 final_url = escapeHTML(document.URL); 161 } 162 el.setAttribute('data-linkedin-share-url', final_url); 163 el.setAttribute('data-linkedin-share-url-updated', 'true'); 164 } 165 }); 166 167 $('[data-componenttextcolor]').each(function(){ 168 169 if($(this).attr('data-componenttextcolor') != undefined){ 170 $(this).find('p,h1,h2,h3,h4,h5,h6, span, a:not(.btn, .txtlink), .text-content, label, td,th').css('color', $(this).attr('data-componenttextcolor')); 171 } 172 }) 173 174 if($('.video-container').length){ 175 var dialog = document.querySelector('.video-container'); 176 var firstFocusableElement = dialog.querySelector('.first-focusable-element'); 177 var lastFocusableElement = dialog.querySelector('.last-focusable-element'); 178 179 dialog.addEventListener('keydown', function(e) { 180 if(e.target == firstFocusableElement && e.key == 'Tab' && e.shiftKey) { 181 e.preventDefault(); 182 firstFocusableElement.focus(); 183 } else if(e.target == lastFocusableElement && e.key == 'Tab' && !e.shiftKey) { 184 e.preventDefault(); 185 firstFocusableElement.focus(); 186 } 187 }); 188 } 189 190 if($('.dropdown-togglebtn').length > 0){ 191 if($('.prweb-sidebar ul').find('li a.active').length){ 192 $('.dropdown-togglebtn span').text($('.prweb-sidebar ul').find('li a.active').text()); 193 }else{ 194 $('.dropdown-togglebtn span').text('Menu Sidebar'); 195 } 196 $('.dropdown-togglebtn').click(function(){ 197 $(this).toggleClass('active'); 198 $(this).next().slideToggle(); 199 }); 200 } 201 setTimeout(function(){ 202 // remove unnecessary attr - #156 203 if($('#nav-mobile').length){ 204 $('#nav-mobile .mm-prev, #nav-mobile .mm-fullsubopen').removeAttr('aria-haspopup'); 205 } 206 resizedw(); 207 },1000); 208 setTimeout(function(){ 209 if($('.parent-panel span[data-title]').length){ 210 $('span[data-title]').each(function(){ 211 $(this).prev('a').attr('aria-label',$(this).attr('data-title')); 212 }); 213 } 214 },3000); 215 216 $('a[href="javascript:void(0)"], a[href="#"]:not(.tablogofocus)').each(function () { 217 $(this).attr('href', ''); 218 $(this).removeAttr('href'); 219 if ($(this).attr('onclick') != undefined) { 220 $(this).css('cursor', 'pointer'); 221 } 222 }); 223 $('a:not([href])[data-toggle=dropdown]').keyup(function (event) { 224 if (event.keyCode == 13){ 225 $(this).trigger('click'); 226 } 227 }) 228 229 setTimeout(function () { 230 $('.input-group >.datepicker-button').click(function () { 231 $('.input-daterange').parents('.form-group').removeClass('has-error'); 232 if($(this).prev('input').val() === ""){ 233 $('#date').parents('.ab-date-picker-input').addClass('has-error'); 234 $(this).prev('input').attr('aria-invalid'); 235 $(this).prev('.dateManual').css({'border-color': "#c62300", 'box-shadow' :"inset 0 1px 1px rgba(0, 0, 0, 0.075)"}); 236 }else{ 237 $('#date').parents('.ab-date-picker-input').removeClass('has-error'); 238 $(this).prev('input').removeAttr('aria-invalid'); 239 $(this).prev('.dateManual').css({'border-color': "#9b9b9b", 'box-shadow' :"none"}); 240 } 241 242 if ($('.btn-group.bootstrap-select.open').length > 0) { 243 $('.dropdown-toggle[data-toggle=dropdown]').attr('aria-expanded', 'false'); 244 $('.dropdown-toggle[data-toggle=dropdown]').parents('.bootstrap-select').removeClass('open'); 245 246 } 247 248 }); 249 250 $(document).on('click', '.dropdown-toggle[data-toggle=dropdown]', function () { 251 if ($('.datepicker-calendar.bootstrap3:visible').length > 0) { 252 $('.datepicker-calendar').hide(); 253 $('.datepicker-calendar').attr('aria-hidden', 'true'); 254 } 255 }); 256 }, 2000); 257}) 258$(document).ready(function(obj){ 259 260 if($('main .banner:first-child').length || $('main .banner-500:first-child').length){ 261 $('body').addClass('bannerActive'); 262 } 263 264 Object.keys(obj || {}) 265 if($('.prncom_news-releases_news-template-e').length){ 266 var websiteImages = document.getElementsByClassName("gallery-cell").length; 267 if (websiteImages == 0) { 268 document.getElementById('gallery-inline-carousel').remove(); 269 } else if (websiteImages == 1) { 270 document.getElementById('gallery-carousel-nav').remove(); 271 } 272 } 273 imageSizeadd(); 274 if ($('.nativo-section [data-position]').length > 0) { 275 var storClassName=''; 276 if($('.nativo-section').hasClass('card-list')){ 277 storClassName='newsCards'; 278 } 279 else if($('.nativo-section').hasClass('most-viewed-col')){ 280 281 storClassName='card-stacking'; 282 } 283 var getVal = 0; 284 var getcurrent = 0; 285 $('.nativo-section [data-position]').each(function() { 286 getVal = parseInt($(this).attr('data-position')) > 0 ? (parseInt($(this).attr('data-position')) -1) : 0; 287 getcurrent = $(this).index() - 1; 288 $('.nativo-section .row').eq(getcurrent).addClass(storClassName).insertBefore($('.nativo-section .row').eq(getVal)); 289 290 }); 291 } 292 293 $('.accordion-card .accordion-title').click(function(){ 294 $(this).toggleClass('active').parents('.accordion-card').siblings().find('.accordion-title').removeClass('active'); 295 $(this).next('.accordion-desc').slideToggle().parents('.accordion-card').siblings().find('.accordion-desc').slide
295Up(); 296 }) 297 298 $('#search-nav li').each(function() { 299 if ($(this).hasClass('active')) { 300 $(this).find('a').attr('aria-current', 'true'); 301 } else { 302 $(this).find('a').attr('aria-current', 'false'); 303 } 304 }); 305}) 306function imageSizeadd(){ 307 308 var desktopGetWidthImg = $('input[name=desktopImageWidth]').val(); 309 var tabletGetWidthImg = $('input[name=tabletImageWidth]').val(); 310 var mobileGetWidthImg = $('input[name=mobileImageWidth]').val(); 311 var logoGetWidthImg = $('input[name=logoWidth]').val(); 312 var WidthImg = $('input[name=minCarouselWidth]').val(); 313 $('.image img').each(function(){ 314 315 var desktopSrc = $(this).attr('data-getimg'); 316 var updatedSrc = ""; 317 318 if(typeof $(this).attr('data-getimg') !== 'undefined'){ 319 $(this).removeAttr('src'); 320 var getwidth= $(this).attr('data-getimg'); 321 getwidth = parseInt(getwidth.split('=')[1]); 322 323 if($(this).parents('.image').hasClass('logo')){ 324 updatedSrc = desktopSrc.replace("w="+getwidth+"","w="+logoGetWidthImg+""); 325 326 } 327 else{ 328 if($(window).width() >= 1024){ 329 if($(this).parents('.image').hasClass('gallery-carousel-nav')){ 330 updatedSrc = desktopSrc.replace("w="+getwidth+"","w="+WidthImg+""); 331 }else{ 332 updatedSrc = desktopSrc.replace("w="+getwidth+"","w="+desktopGetWidthImg+""); 333 } 334 }else if($(window).width() > 767){ 335 updatedSrc = desktopSrc.replace("w="+getwidth+"","w="+tabletGetWidthImg+""); 336 337 }else{ 338 updatedSrc = desktopSrc.replace("w="+getwidth+"","w="+mobileGetWidthImg+""); 339 } 340 } 341 var parts = updatedSrc.split('?'); 342 if (parts.length > 2) { 343 updatedSrc = parts[0] + '?' + parts.slice(1).join('&'); 344 } 345 346 if($(this).attr('data-getimg').indexOf('w=') > -1){ 347 $(this).attr('src', updatedSrc); 348 } 349 else{ 350 $(this).attr('src', desktopSrc); 351 } 352 } 353 }); 354 355} 356function resizedw(){ 357 imageSizeadd(); 358 if($('.masonry').length > 0){ 359 require(['prn-masonry'], function(prnMasonry) { 360 prnMasonry(); 361 }); 362 } 363} 364function redirectToUrl(element) { 365 var url = element.getAttribute('data-url'); 366 location.href = url; 367} 368 369var doit; 370window.onresize = function(){ 371 clearTimeout(doit); 372 doit = setTimeout(resizedw, 100); 373}; 374 375;(function () { 376 var isDomReady = document.readyState === 'interactive' || document.readyState === 'complete'; 377 var pendingDomRetry = false; 378 var containerRetryCount = 0; 379 var siteKeyRetryCount = 0; 380 var libRetryCount = 0; 381 var retryWarnedContainer = false; 382 var retryWarnedSiteKey = false; 383 var retryWarnedLib = false; 384 var RETRY_DELAY = 300; 385 var MAX_CONTAINER_RETRIES = 40; 386 var MAX_SITEKEY_RETRIES = 20; 387 var MAX_LIB_RETRIES = 20; 388 var containerObserver = null; 389 390 function ensureRecaptchaContainer() { 391 var existing = document.getElementById('countryRecaptcha'); 392 if (existing) { 393 return existing; 394 } 395 396 function buildRecaptchaRow() { 397 var wrapper = document.createElement('div'); 398 wrapper.className = 'col-sm-12 recaptcha-submit-row'; 399 400 var inner = document.createElement('div'); 401 inner.className = 'recaptcha-submit-row__inner'; 402 403 var captchaCol = document.createElement('div'); 404 captchaCol.className = 'recaptcha-submit-row__captcha'; 405 406 var fallbackContainer = document.createElement('div'); 407 fallbackContainer.id = 'countryRecaptcha'; 408 fallbackContainer.className = 'mb-md'; 409 410 captchaCol.appendChild(fallbackContainer); 411 inner.appendChild(captchaCol); 412 wrapper.appendChild(inner); 413 414 return { wrapper: wrapper, container: fallbackContainer }; 415 } 416 417 var errorBlock = document.getElementById('recaptchaerror'); 418 if (errorBlock && errorBlock.parentNode) { 419 var rowFromError = buildRecaptchaRow(); 420 errorBlock.parentNode.insertBefore(rowFromError.wrapper, errorBlock); 421 //console.warn('reCAPTCHA container was missing; created fallback placeholder before error block.'); 422 return rowFromError.container; 423 } 424 425 var form = document.getElementById('prneloquaForm'); 426 if (form) { 427 var rowFromForm = buildRecaptchaRow(); 428 form.appendChild(rowFromForm.wrapper); 429 //console.warn('reCAPTCHA container was missing; appended fallback placeholder at end of form.'); 430 return rowFromForm.container; 431 } 432 433 return null; 434 } 435 436 function markDomReady() { 437 isDomReady = true; 438 if (pendingDomRetry) { 439 pendingDomRetry = false;
440 reCaptchaCallbackHandler(); 441 } 442 } 443 444 if (!isDomReady) { 445 document.addEventListener('DOMContentLoaded', markDomReady, { once: true }); 446 } 447 448 function findSubmitButton() { 449 return document.getElementById('submitButton') || document.getElementById('contact-modal-submit'); 450 } 451 452 function setSubmitDisabled(disabled) { 453 var submitButton = findSubmitButton(); 454 if (submitButton) { 455 submitButton.disabled = disabled; 456 } 457 } 458 459 function updateTokenValue(value) { 460 var tokenField = document.getElementById('recaptchaToken'); 461 if (tokenField) { 462 tokenField.value = value; 463 } 464 } 465 function resolveLanguageCode() { 466 var languageField = document.getElementById('recaptchaLangValue'); 467 return languageField && languageField.value ? languageField.value : 'en'; 468 } 469 function isRecaptchaRequired() { 470 var flagInput = document.getElementById('recaptchaRequiredFlag'); 471 if (flagInput && typeof flagInput.value === 'string') { 472 var raw = flagInput.value.trim().toLowerCase(); 473 if (raw === 'true') { 474 return true; 475 } 476 if (raw === 'false') { 477 return false; 478 } 479 } 480 if (typeof window.prnRecaptchaRequired !== 'undefined') { 481 return !!window.prnRecaptchaRequired; 482 } 483 return false; 484 } 485 486 function resolveRecaptchaVersion() { 487 var versionField = document.getElementById('recaptchaVersion'); 488 if (versionField && versionField.value) { 489 return versionField.value.toUpperCase(); 490 } 491 if (typeof window.prnRecaptchaVersion === 'string') { 492 return window.prnRecaptchaVersion.toUpperCase(); 493 } 494 return 'V2'; 495 } 496 497 function correctCaptchaHandler(response) { 498 setSubmitDisabled(false); 499 updateTokenValue(response || ''); 500 } 501 502 function expiredCaptchaHandler() { 503 setSubmitDisabled(true); 504 updateTokenValue(''); 505 if (typeof grecaptcha !== 'undefined' && typeof window.prnRecaptchaWidgetId !== 'undefined') { 506 grecaptcha.reset(window.prnRecaptchaWidgetId); 507 } 508 } 509 510 function observeForContainer() { 511 if (containerObserver || typeof MutationObserver === 'undefined') { 512 return; 513 } 514 515 containerObserver = new MutationObserver(function () { 516 var target = document.getElementById('countryRecaptcha'); 517 if (target) { 518 containerObserver.disconnect(); 519 containerObserver = null; 520 containerRetryCount = 0; 521 reCaptchaCallbackHandler(); 522 } 523 }); 524 525 try { 526 containerObserver.observe(document.body, { childList: true, subtree: true }); 527 } catch (observeError) { 528 console.warn('Unable to observe DOM for reCAPTCHA container', observeError); 529 } 530 } 531 532 function reCaptchaCallbackHandler() { 533 if (!isRecaptchaRequired()) { 534 pendingDomRetry = false; 535 containerRetryCount = 0; 536 siteKeyRetryCount = 0; 537 libRetryCount = 0; 538 setSubmitDisabled(false); 539 updateTokenValue(''); 540 if (containerObserver) { 541 containerObserver.disconnect(); 542 containerObserver = null; 543 } 544 if (typeof grecaptcha !== 'undefined' && typeof window.prnRecaptchaWidgetId !== 'undefined') { 545 try { 546 grecaptcha.reset(window.prnRecaptchaWidgetId); 547 } catch (skipResetError) { 548 console.warn('Unable to reset reCAPTCHA widget while disabled', skipResetError); 549 } 550 } 551 if (typeof window.prnRecaptchaWidgetId !== 'undefined') { 552 try { 553 delete window.prnRecaptchaWidgetId; 554 } catch (deleteErr) { 555 window.prnRecaptchaWidgetId = undefined; 556 } 557 } 558 return; 559 } 560 561 if (resolveRecaptchaVersion() !== 'V2') { 562 setSubmitDisabled(false); 563 pendingDomRetry = false;
564 containerRetryCount = 0; 565 siteKeyRetryCount = 0; 566 libRetryCount = 0; 567 if (containerObserver) { 568 containerObserver.disconnect(); 569 containerObserver = null; 570 } 571 return; 572 } 573 574 var container = document.getElementById('countryRecaptcha'); 575 if (!container) { 576 if (!isDomReady) { 577 pendingDomRetry = true; 578 } 579 observeForContainer(); 580 container = ensureRecaptchaContainer(); 581 if (container) { 582 containerRetryCount = 0; 583 } 584 if (containerRetryCount < MAX_CONTAINER_RETRIES) { 585 containerRetryCount += 1; 586 setTimeout(reCaptchaCallbackHandler, RETRY_DELAY); 587 return; 588 } 589 if (!retryWarnedContainer) { 590 retryWarnedContainer = true; 591 console.warn('reCAPTCHA container #countryRecaptcha not found on the page.'); 592 } 593 return; 594 } 595 containerRetryCount = 0; 596 if (containerObserver) { 597 containerObserver.disconnect(); 598 containerObserver = null; 599 } 600 601 var siteKeyField = document.getElementById('recaptchaSiteKey'); 602 var curSiteKey = siteKeyField ? siteKeyField.value : ''; 603 if (!curSiteKey) { 604 if (siteKeyRetryCount < MAX_SITEKEY_RETRIES) { 605 siteKeyRetryCount += 1; 606 setTimeout(reCaptchaCallbackHandler, RETRY_DELAY); 607 return; 608 } 609 if (!retryWarnedSiteKey) { 610 retryWarnedSiteKey = true; 611 console.warn('reCAPTCHA site key is not configured.'); 612 } 613 return; 614 } 615 siteKeyRetryCount = 0; 616 if (typeof grecaptcha === 'undefined' || typeof grecaptcha.render !== 'function') { 617 if (libRetryCount < MAX_LIB_RETRIES) { 618 libRetryCount += 1; 619 setTimeout(reCaptchaCallbackHandler, RETRY_DELAY); 620 return; 621 } 622 if (!retryWarnedLib) { 623 retryWarnedLib = true; 624 console.warn('grecaptcha not available during reCAPTCHA initialisation.'); 625 } 626 return; 627 } 628 629 libRetryCount = 0; 630 631 if (typeof window.prnRecaptchaWidgetId === 'undefined' && 632 container && container.hasAttribute('data-widget-id')) {
633 // Widget was rendered earlier (e.g. via cached JS execution); reuse the existing id. 634 window.prnRecaptchaWidgetId = container.getAttribute('data-widget-id'); 635 } 636 637 if (typeof window.prnRecaptchaWidgetId === 'undefined') { 638 setSubmitDisabled(true); 639 try { 640 window.prnRecaptchaWidgetId = grecaptcha.render('countryRecaptcha', { 641 sitekey: curSiteKey, 642 hl: resolveLanguageCode(), 643 callback: 'correctCaptcha', 644 'expired-callback': 'expiredCaptcha' 645 }); 646 } catch (renderError) { 647 console.warn('reCAPTCHA v2 render failed; attempting to reuse existing widget', renderError); 648 if (container && container.hasAttribute('data-widget-id')) { 649 window.prnRecaptchaWidgetId = container.getAttribute('data-widget-id'); 650 } 651 } 652 //console.log('Rendered reCAPTCHA v2 widget'); 653 } 654 655 if (typeof window.prnRecaptchaWidgetId !== 'undefined') { 656 grecaptcha.reset(window.prnRecaptchaWidgetId); 657 //console.log('Reset existing reCAPTCHA v2 widget'); 658 } 659 } 660 661 window.correctCaptcha = correctCaptchaHandler; 662 window.expiredCaptcha = expiredCaptchaHandler; 663 664 var queuedCallbacks = []; 665 if (Array.isArray(window.prnRecaptchaCallbackQueue)) { 666 queuedCallbacks = window.prnRecaptchaCallbackQueue.slice(); 667 window.prnRecaptchaCallbackQueue.length = 0; 668 } else { 669 window.prnRecaptchaCallbackQueue = []; 670 } 671 672 window.reCaptchaCallback = reCaptchaCallbackHandler; 673 674 if (queuedCallbacks.length) { 675 for (var idx = 0; idx < queuedCallbacks.length; idx++) { 676 var args = queuedCallbacks[idx]; 677 try { 678 if (Array.isArray(args) && args.length) { 679 reCaptchaCallbackHandler.apply(window, args); 680 } else { 681 reCaptchaCallbackHandler(); 682 } 683 } catch (queuedError) { 684 console.warn('Queued reCAPTCHA callback failed', queuedError); 685 } 686 } 687 } 688})(); 689$(window).on('load',function(){ 690 691 692// Banner with Caption half 693 694 if($('.bannerwithcaption').length > 0){ 695 var captionHeight = 'calc(100% - '+$('.bannerwithcaption .jumbotron--minor').outerHeight(true) / 2 + "px"+')'; 696 $('.bannerwithcaption .jumbo-image').css('height', captionHeight) 697 } 698})
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.