PageSourceSearch

https://www.newswire.ca/etc.clientlibs/prncom/clientlibs/component-clientlibs.min.js

js newswire.ca collected 2026-09-24 07:18:23 UTC 27,233 bytes, 698 lines download raw bytes

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.