PageSourceSearch

http://icsbhs.org/js/clientlibs.eloqua.min.js

js icsbhs.org collected 2026-10-01 05:32:08 UTC 74,336 bytes, 2,022 lines download raw bytes

1var phoneInputField, phoneInput, getFlagVal = "";
2function escapeHTML(str){
3	str = str.replace(new RegExp("<\s*script\s*>", "gi"), "");
4	str = str.replace(new RegExp("<\s*script\s*\/>", "gi"), "");
5    return str;
6}
7$(window).on("load", function() {
8
9    if($("#busPhone").length > 0){
10         phoneInputField = document.querySelector("#busPhone");
11         phoneInput = window.intlTelInput(phoneInputField, {
12         utilsScript:
13           "https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.8/js/utils.js",
14         });
15         $('.iti__selected-flag').attr('aria-hidden','true');
16         if($("#dropdownFlag").text()==""){
17              getFlagVal =  $("#configFlag").text();
18         }else{
19             getFlagVal = $("#dropdownFlag").text();
20         }
21         phoneInput.setCountry(getFlagVal);
22    }
23
24
25    // Added condition for PT site
26    if($('#busPhone').length>0){
27        var domain = document.location.hostname
28        if (/\.(pt)\/?$/i.test(domain)) {
29            $('#busPhone').attr('minlength', '8')
30        }
31    }
32
33$(function($) {
34var requiredCheckboxes = $(':checkbox[required]');
35requiredCheckboxes.on('change', function(e) {
36var checkboxGroup = requiredCheckboxes.filter('[data-checkboxgroup="' + $(this).attr('data-checkboxgroup') + '"]');
37var isChecked = checkboxGroup.is(':checked');
38checkboxGroup.prop('required', !isChecked);
39});
40requiredCheckboxes.trigger('change');
41});
42
43
44	var title=$('#myModalLabel').text();
45    var newtitle=title.replace(/-/g, " ");
46	$('#myModalLabel').text(newtitle);
47
48    $('#eloquaPopup #close').on('click', function() {
49		var url = escapeHTML(window.location.href);
50        var current_page = url.substring(url.lastIndexOf('/'));
51        if ( current_page == '/') {
52            var a = url.split('/');
53            url = url.replace(a[a.length-2] + '/', '');
54            var a = url.split('/');
55            url = url.replace(a[a.length-2] + '/', '');
56        }
57        else{
58            url = url + "/";
59			var a = url.split('/');
60            url = url.replace(a[a.length-2] + '/', '');
61            var a = url.split('/');
62            url = url.replace(a[a.length-2] + '/', '');
63        }
64		window.location.href=url;
65    });
66
67    $(document).on('keydown', function(e) {
68            if (e.which == 27) {
69                if($('#eloquaPopup:visible').length){
70                    $('#eloquaPopup #close').trigger('click');
71                }
72            }
73    });
74
75    chk_query_param();
76
77	gdprEmailCheck();
78	if($('#eloquaForm').attr('name') == "USContentISPConvert")
79	{
80		gdprEmailValid();
81	}
82	function setGLIDCookie(name, value, days){
83        var date = new Date();
84        date.setTime(date.getTime() + (days*24*60*60*1000));
85        var expires = "; expires=" + date.toGMTString();
86        document.cookie = name + "=" + value + expires;
87    }
88    function getParam(p){
89		var strURL = document.location.href;
90        var strQStrParamValue = "";
91
92        if (strURL.indexOf('?') != -1) {
93            strQStrParamValue = strURL.substr(strURL.indexOf('?') + 1);
94            if (strQStrParamValue == "") {
95                //window.setTimeout(window.location = "http://us.cision.com/contact_us/demo_request_string.asp",2000);
96                //
97                //window.setTimeout(window.location = "http://us.cision.com/contact_us/demo_request_string.asp",2000);
98            } else if (strQStrParamValue.indexOf(p) != -1) {
99                strQStrParamValue = strQStrParamValue.substr(strQStrParamValue.indexOf(p));
100                strQStrParamValue = strQStrParamValue.substr(strQStrParamValue.indexOf('=') + 1);
101
102                if (strQStrParamValue.indexOf('&') != -1)
103                    strQStrParamValue = strQStrParamValue.substr(0, strQStrParamValue.indexOf('&'));
104                return strQStrParamValue;
105
106            }
107        }
108    }
109    var gclid = getParam('gclid');
110    if(gclid){
111        var gclsrc = getParam('gclsrc');
112        if(!gclsrc || gclsrc.indexOf('aw') !== -1){
113            setGLIDCookie('gclid', gclid, 90);
114        }
115    }
116   //$('#gclid').val(gclid); //moved the functionality to localstorage
117    $('#CLID').val(gclid);
118	  var currenturlVal = window.location.href.split('?')[0];
119    var pageReferrer = getParam('site_refer');
120    $('#url').val(currenturlVal);
121    $('#site_refer').val(pageReferrer);
122
123    // Stop Enter
124    $('input').keypress(
125        function(event){
126          if (event.which == '13') {
127            event.preventDefault();
128          }
129    });
130updateSidebarSticky();
131    $(window).on('scroll resize', updateSidebarSticky);
132});
133
134function modal_show() {
135    if($("#eloquaPopup").length > 0) {
136 	   $("#eloquaPopup").modal('show');
137    if ($(".modal").hasClass("in")) {
138        $("#resource-cision").addClass("mask");
139    }
140    }
141}
142
143
144function modal_hide() {
145    $("#eloquaPopup").modal('hide');
146    $("#resource-cision").removeClass("mask");
147}
148
149function chk_query_param() {
150    var url = window.location.href;
151    var current_page = url.substring(url.lastIndexOf('?'));
152    if (current_page.search("sf=false") != -1) {
153        modal_hide();
154    } else {
155        modal_show();
156    }
157}
158
159//update query paramater
160var modalUpdateQueryStringParam = function(key, value) {
161    var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''),
162        urlQueryString = document.location.search,
163        newParam = key + '=' + value,
164        params = '?' + newParam;
165
166    // If the "search" string exists, then build params from it
167    if (urlQueryString) {
168       var keyRegex = new RegExp('([\?&])' + key + '[^&]*');
169
170        // If param exists already, update it
171        if (urlQueryString.match(keyRegex) !== null) {
172            params = urlQueryString.replace(keyRegex, "$1" + newParam);
173        } else { // Otherwise, add it to end of query string
174            params = urlQueryString + '&' + newParam;
175        }
176    }
177    window.history.replaceState({}, "", baseUrl + params);
178};
179var gdprDomains="";
180 var gdprCountries="";
181  var euCountrys="";
182var gdprflag =false;
183$(document).ready(function() {
184//function added to focus the field on submit for error message - start
185  var navhei = $('header').height();
186   var navheix = navhei + 30;
187   document.addEventListener('invalid', function(e){
188   $(e.target).addClass("invalid");
189   $('html, body').animate({scrollTop: $($(".invalid")[0]).offset().top - navheix }, 0);
190
191   setTimeout(function(){
192   $('.invalid').removeClass('invalid');
193   },300);
194   }, true);
195    //function added to focus the field on submit for error message - End
196
197	var $select_companytype = $('#companytype');
198    $('#companytype').parents('.form-field').addClass('d-none');
199
200	if ($('#eloquaForm').attr('name') == 'UScontentform') {
201        if($('#externalurlset').val() =='true'){
202			var return_URL = $('input[name="retURL"]').val();
203            $('input[name="retURL"]').val(return_URL);
204        }
205        else if($('#eloquaPopup').attr('role') != "dialog"){
206            var return_URL = $('input[name="retURL"]').val();
207    		var return_URL_Full = document.location.origin + return_URL;
208			$('input[name="retURL"]').val(return_URL_Full);
209        }
210        else{
211            var return_URL = $('input[name="retURL"]').val();
212    		var return_URL_Full = document.location.origin + return_URL + '?sf=false';
213			$('input[name="retURL"]').val(return_URL_Full);
214        }
215
216	}
217	else{
218
219        if($('#externalurlset').val() =='true'){
220			var return_URL = $('input[name="retURL"]').val();
221            $('input[name="retURL"]').val(return_URL);
222			}
223        else{
224			var return_URL = $('input[name="retURL"]').val();
225    		var return_URL_Full = document.location.origin + return_URL;
226			$('input[name="retURL"]').val(return_URL_Full);
227        }
228    }
229
230
231//GDPR implementation
232	 $.ajax({
233	        url: '/content/dam/cision-revamp/eloqua/formjson/gdpr.csv',
234	        dataType: 'text',
235	        success: function(data) {
236				gdprDomains=data;
237	        }
238	    });
239//EU Countries
240
241 $.ajax({
242	        url: '/content/dam/cision-revamp/eloqua/formjson/EuConuntry.csv',
243	        dataType: 'text',
244	        success: function(data) {
245				euCountrys=data;
246	        }
247	    });
248		//gdpr Countries
249
250 $.ajax({
251	        url: '/content/dam/cision-revamp/eloqua/formjson/gdprCountry.csv',
252	        dataType: 'text',
253	        success: function(data) {
254				gdprCountries=data;
255	        }
256	    });
257
258	 var emailDomains="";
259		$.ajax({
260		        url: '/content/dam/cision-revamp/eloqua/formjson/email.csv',
261		        dataType: 'text',
262		        success: function(data) {
263					emailDomains=data;
264		        }
265		    });
266
267	$('#emailcheck').css('display', 'none');
268	function emailCheck(){
269	    gdprEmailCheck();
270		var email = $("#emailAddress").val();
271		var array = emailDomains.split(',');
272	            if(email!="" && email != undefined && email != null){
273	                var domain = email.split("@")[1].toLowerCase();
274	                if(domain!=null && array.indexOf(domain)!=-1){
275					 $('#emailcheck').css('display', 'none');
276					 }
277					 else{
278					  $('#emailcheck').css('display', 'block');
279					 }
280		        }
281	            else{
282				    $('#gDPROptIn1').parent().css('display', 'none');
283					$('#optin').parents('.form-field').addClass('d-none');
284					$('#emailcheck').css('display', 'none');
285	            }
286	}
287
288	$("#emailAddress").on("blur change keyup", function(){
289        gdprEmailCheck();
290        validateEmail(this);
291    		//terms_hide_show();
292			gdprEmailCheck();
293			if($('#eloquaForm').attr('name') == "USContentISPConvert")
294			{
295				var flag = gdprEmailValid();
296				if(flag == true){
297				$('#contact-modalsubmit').prop("disabled", true);
298				}
299				else{
300				$('#contact-modal-submit').prop("disabled", false);
301				}
302			}
303            //emailCheck();
304        });
305	$('input[type=checkbox].gdprchk').change(function () {
306
307		if($('#gDPROptIn1').is(':checked'))
308	    {
309		   $('#gDPROptIn1').val("1");
310	    }else{
311			 $('#gDPROptIn1').val("");
312		}
313	});
314	$('input[type=checkbox].chk').change(function () {
315		if($('#optin').is(':checked'))
316	    {
317		   $('#optin').val("1");
318	    }else{
319			 $('#optin').val("");
320
321		}
322
323	});
324    $('.univform_clearbtn').on('click', function() {
325
326        if($("#busPhone").length > 0){
327           phoneInput.setCountry(getFlagVal);
328        }
329
330        $('#eloquaForm').trigger("reset");
331		  $('#newsletter-Form').trigger("reset");
332          $('#journalistoptin').parent().css('display', 'none');
333        setCookie('eloquaForm', '', -1);
334		cookieCountry='';
335		$('#companytype').parents('.form-field').addClass('d-none');
336		$('#companytype').prop('required',false);
337		$('#emailvalid').css('display', 'none');
338		$('.selectWrap select').trigger('change');
339
340		gdprEmailCheck();
341		$('input, select, textarea').each(function(e){
342
343            var $currEl = $(this);
344           if ($currEl.is('select')) {
345
346                if ($currEl.val() === $("option:first", $currEl).val()) {
347                    $currEl.parents('.form-field').removeClass('focused');
348                } else {
349                    $currEl.parents('.form-field').toggleClass('focused', ((e.type === 'focus' || this.value.length > 0) && ($currEl.val() !== $("option:first", $currEl).val())));
350                }
351            } else {
352                $currEl.parents('.form-field').toggleClass('focused', (e.type === 'focus' || this.value.length > 0));
353            }
354        });
355
356        return false;
357    });
358	var demoCampID = $('#demoCampaignID').val();
359    var campaignId = $('#campaignId').val();
360    $('#sFDCLastCampaignID').val(campaignId);
361    $('#campaign_id').val(campaignId);
362    $('#contentDemoRequest').on('change', function () {
363        const selectedValue = $(this).val();
364        if (selectedValue === 'yes' && demoCampID) {
365            $('#sFDCLastCampaignID').val(demoCampID);
366            $('#campaign_id').val(demoCampID);
367        }else{
368            $('#sFDCLastCampaignID').val(campaignId);
369            $('#campaign_id').val(campaignId);
370        }
371    });
372    $('#contentDemoRequest1').on('click', function() {
373        var formName = $('#eloquaForm').attr('name');
374        var optinVal = $('#optin').val();
375
376        if (formName.indexOf('content')!= -1) {
377            if ($('#contentDemoRequest1').is(":checked") && demoCampID) {
378                $('#sFDCLastCampaignID').val(demoCampID);
379                $('#campaign_id').val(demoCampID);
380            }else{
381				$('#sFDCLastCampaignID').val(campaignId);
382                $('#campaign_id').val(campaignId);
383            }
384        }
385        else{
386			$('#sFDCLastCampaignID').val(campaignId);
387            $('#campaign_id').val(campaignId);
388        }
389    });
390
391    var parseJSON = function(data) {
392        if (typeof data === 'string') {
393            data = JSON.parse(data);
394        }
395        return data;
396    }
397    var $select = $('#country');
398
399
400    var eloquaForm_val = getCookie('eloquaForm');
401
402	var pathName = location.pathname;
403	var pageUrl = window.location.href;
404    var cookieCountry = '';
405	var countryPath = '/content/dam/cision-revamp/eloqua/formjson/countrydropdown.json';
406	var poiPath = '/content/dam/cision-revamp/eloqua/formjson/usproductlist.json';
407	var jobrolesrc = '/content/dam/cision-revamp/eloqua/formjson/jobrole.json';
408	var jobtitlesrc = '/content/dam/cision-revamp/eloqua/formjson/jobtitle.json';
409
410	if($('#eloquaFormLang6seze').length > 0){
411	var formLang = $('#eloquaFormLang').val();
412        countryPath = '/content/dam/cision-redesign/eloqua/formjson/'+formLang+'countrydropdown.json';
413        poiPath = '/content/dam/cision-redesign/eloqua/formjson/'+formLang+'productlist.json';
414        jobrolesrc = '/content/dam/cision-redesign/eloqua/formjson/'+formLang+'jobrole.json';
415        jobtitlesrc = '/content/dam/cision-redesign/eloqua/formjson/'+formLang+'jobtitle.json';
416    }
417
418    $.ajax({
419        url: countryPath,
420        dataType: 'json',
421        success: function(data) {
422
423            var d = parseJSON(data);
424            var out = '';
425            $.each(d.country, function(key, val) {
426
427                    out += '<option value="' + val.value + '">' + val.name + '</option>';
428
429            })
430            $('#country').append(out).promise().done(function() {
431                if (eloquaForm_val) {
432                    var obj = JSON.parse(eloquaForm_val);
433                    $(this).val(obj.country).trigger('change');
434                    cookieCountry = obj.country;
435                }
436            });
437        },
438        error: function() {
439            $select.html('<option id="-1">none available</option>');
440        }
441    });
442
443    $('#country').on("change", function() {
444        $('#optin, #gDPROptIn1').prop('checked', false);
445		$select_companytype.empty();
446        var countryID = $('#country option:selected').attr('value');
447		gdprEmailCheck();
448
449        if(countryID=="GBR" || countryID=="IRL"){
450            if(location.hostname.includes('cision.ca') || pathName.includes('cision-ca')){
451			     $('#companytype').parents('.form-field').addClass('d-none');
452			}else{
453				 $('#companytype').parents('.form-field').removeClass('d-none');
454			}
455            $.ajax({
456				url: '/content/dam/cision-revamp/eloqua/formjson/companytype.json',
457				dataType: 'json',
458				success: function(data) {
459					var d = parseJSON(data);
460					var out = '<option value="">Select type of company*</option>';
461					$.each(d.companytype, function(key, val) {
462						out += '<option value="' + val.value + '">' + val.name + '</option>';
463					})
464					$('#companytype').append(out).promise().done(function() {
465						if ($('#country option:selected').val() == cookieCountry) {
466							var obj = JSON.parse(eloquaForm_val);
467							$(this).val(obj.companytype);
468						}
469					});
470				},
471			});
472
473            if(location.hostname.includes('cision.ca') || pathName.includes('cision-ca')){
474				 $('#companytype').prop('required',false);
475			}else{
476				 $('#companytype').prop('required',true);
477			}
478
479
480		}
481		else{
482		 $('#companytype').parents('.form-field').addClass('d-none');
483         $('#companytype').prop('required',false);
484
485        }
486       // terms_hide_show();
487            //  $('#state,#companytype').parents('.selectWrap').removeClass('active');
488              setTimeout(function(){ $('.custom-styling select').each(function () {
489                        if (!$(this).find('option:first-child:selected').length) {
490                             $(this).parents('.selectWrap').addClass('active');
491                        } else {
492                             $(this).parents('.selectWrap').removeClass('active')
493                        }
494                   });
495              	},50);
496              	updateSidebarSticky();
497        if (autoScroll) {
498        const fullyVisibleForm = $(window).outerHeight() > $('.sidebar').outerHeight();
499        if (!fullyVisibleForm) {
500            $('html, body').animate(
501              { scrollTop: $('.section--resource-detail-content-1').offset().top },
502              1
503            );
504            }
505      }
506
507
508  });
509
510    $.ajax({
511        url: jobrolesrc,
512        dataType: 'json',
513        success: function(data) {
514        	//var pageUrl = window.location.href;
515            var d = parseJSON(data);
516            var out = '';
517            $.each(d.jobrole, function(key, val) {
518
519        	         out += '<option value="' + val.value + '">' + val.name + '</option>';
520
521            })
522            $('#jobrole').append(out).promise().done(function() {
523                if (eloquaForm_val) {
524                    var obj = JSON.parse(eloquaForm_val);
525                    $(this).val(obj.jobrole);
526                }
527            });
528        }
529    });
530    $.ajax({
531        url: jobtitlesrc,
532        dataType: 'json',
533        success: function(data) {
534        	//var pageUrl = window.location.href;
535            var d = parseJSON(data);
536            var out = '';
537            $.each(d.jobtitle, function(key, val) {
538
539
540        	         out += '<option value="' + val.value + '">' + val.name + '</option>';
541
542            })
543            $('#jobtitle').append(out).promise().done(function() {
544                if (eloquaForm_val) {
545                    var obj = JSON.parse(eloquaForm_val);
546                    $(this).val(obj.jobtitle);
547                }
548            });
549
550        }
551    });
552
553	var companyRevenuesrc = '/content/dam/cision-revamp/eloqua/formjson/companyRevenue1.json';
554
555    $.ajax({
556        url: companyRevenuesrc,
557        dataType: 'json',
558        success: function(data) {
559        	//var pageUrl = window.location.href;
560            var d = parseJSON(data);
561            var out = '';
562            $.each(d.companyRevenue1, function(key, val) {
563        	         out += '<option value="' + val.value + '">' + val.name + '</option>';
564            })
565            $('#companyRevenue1').append(out).promise().done(function() {
566                if (eloquaForm_val) {
567                    var obj = JSON.parse(eloquaForm_val);
568                    $(this).val(obj.companyRevenue1);
569                }
570            });
571        }
572    });
573
574    var primaryactivitysrc = '/content/dam/cision-revamp/eloqua/formjson/primaryactivity.json';
575    $.ajax({
576        url: primaryactivitysrc,
577        dataType: 'json',
578        success: function(data) {
579            var d = parseJSON(data);
580            var out = '';
581			$.each(d.primaryactivity, function(key, val) {
582        	         out += '<option value="' + val.value + '">' + val.name + '</option>';
583            })
584            $('#primaryactivity').append(out).promise().done(function() {
585                if (eloquaForm_val) {
586                    var obj = JSON.parse(eloquaForm_val);
587                    $(this).val(obj.primaryactivity);
588                }
589            });
590        }
591    });
592
593    var timelsrc = '/content/dam/cision-revamp/eloqua/formjson/time1.json';
594    $.ajax({
595        url: timelsrc,
596        dataType: 'json',
597        success: function(data) {
598            var d = parseJSON(data);
599            var out = '';
600			$.each(d.time1, function(key, val) {
601        	         out += '<option value="' + val.value + '">' + val.name + '</option>';
602            })
603            $('#time1').append(out).promise().done(function() {
604                if (eloquaForm_val) {
605                    var obj = JSON.parse(eloquaForm_val);
606                    $(this).val(obj.time1);
607                }
608            });
609        }
610    });
611
612	var time2src = '/content/dam/cision-revamp/eloqua/formjson/time2.json';
613    $.ajax({
614        url: time2src,
615        dataType: 'json',
616        success: function(data) {
617            var d = parseJSON(data);
618            var out = '';
619			$.each(d.time2, function(key, val) {
620        	         out += '<option value="' + val.value + '">' + val.name + '</option>';
621            })
622            $('#time2').append(out).promise().done(function() {
623                if (eloquaForm_val) {
624                    var obj = JSON.parse(eloquaForm_val);
625                    $(this).val(obj.time2);
626                }
627            });
628        }
629    });
630
631	var contactpreferencesrc = '/content/dam/cision-revamp/eloqua/formjson/contactpreference.json';
632    $.ajax({
633        url: contactpreferencesrc,
634        dataType: 'json',
635        success: function(data) {
636            var d = parseJSON(data);
637            var out = '';
638			$.each(d.contactpreference, function(key, val) {
639        	         out += '<option value="' + val.value + '">' + val.name + '</option>';
640            })
641            $('#contactpreference').append(out).promise().done(function() {
642                if (eloquaForm_val) {
643                    var obj = JSON.parse(eloquaForm_val);
644                    $(this).val(obj.contactpreference);
645                }
646            });
647        }
648    });
649
650    $.ajax({
651
652        url: poiPath,
653        dataType: 'json',
654        success: function(data) {
655		var pageUrl = window.location.href;
656            var d = parseJSON(data);
657            var out = '';
658        $.each(d.productlist, function(key, val) {
659	    if(pageUrl.indexOf('/cision-ca2/ca/fr/') > -1 || pageUrl.indexOf('cision.ca/fr/') > -1){
660            out += '<option value="' + val.value + '">' + val.text + '</option>';
661	    }
662		else{
663			if($("#poidefaultval").val() === val.value && $("#poidefaultvalOption").val() === ''){
664	         out += '<option selected="selected" value="' + val.value + '">' + val.text + '</option>';
665			}
666			else{
667				 out += '<option value="' + val.value + '">' + val.text + '</option>';
668			}
669       }
670	   })
671            $('#poi').append(out).promise().done(function() {
672                if (eloquaForm_val) {
673                    var obj = JSON.parse(eloquaForm_val);
674                    $(this).val(obj.poi);
675                }
676                $('#poi [selected=selected]').prop('selected',true);
677            });
678        }
679    });
680    $('#form_signup_center').hide();
681    $('#form_signup_right').hide();
682	$('#newsletter-error').hide();
683
684
685     $('#dailybrief,#weeklyrecap').on("click", function() {
686        if( $('#dailybrief').is(':checked') || $('#weeklyrecap').is(':checked') ) {
687            $('#newsletter-error').hide();
688        }
689        else{
690		$('#newsletter-error').show();
691        }
692    });
693
694   $('#eloquaForm').on("submit", function(e) {
695       // Validate email
696
697       // Existing prweb logic
698       var formprweb = prweb(true);
699       if($('#eloquaForm').attr('name')!= "USprwebform" && formprweb == true) {
700           var searchInpTxt = $("#eloquaForm").find("#submit");
701           $(searchInpTxt).button('loading');
702       }
703
704       if($('#form_error_box').attr('bool')=='true'){
705           e.preventDefault();
706       } else {
707           console.log("Form submission allowed");
708       }
709   });
710
711    $('#newsletter-Form').on("submit", function(e) {
712            if( $('#dailybrief').is(':checked') || $('#weeklyrecap').prop("checked")==true ) {
713				var res = recaptchaValidate();
714				if(res == true)
715				{
716					var form_name = document.getElementById("newsletter-Form").name;
717					//code snippet
718					if($('#dailybrief').is(':checked'))
719					{
720						$('#dailybrief').val("1");
721					}else{
722						$('#dailybrief').val("");
723
724					}
725					if($('#weeklyrecap').is(':checked'))
726					{
727						$('#weeklyrecap').val("1");
728					}
729					else{
730						$('#weeklyrecap').val("");
731					}
732					var js_field_obj = {};
733					$('#newsletter-Form').find('input[type!="hidden"]').each(function() {
734							js_field_obj[this.name] = $(this).val();
735					});
736					var json_field_str = JSON.stringify(js_field_obj);
737					(window.dataLayer=window.dataLayer||[]).push({
738					  'event' : 'page.formSubmit',
739					  'page.formSubmit' : {
740						'name'    : form_name,  // Human-readable form title.
741						'step'    : '1',  // Start at 1; only neccessary for paginated forms.
742						'type'    : 'ajax',  // "pageload" or "ajax".
743						'valid'   : 'True', // True if passed validation, otherwise false.
744						'message' : 'success',  // The success/error message displayed to the user.
745						'data'    : json_field_str   // All of the submitted form values.
746					}});
747					$('#newsletter-Form').attr('method','post').attr('action',$('#actionURL').val());
748					var searchInpTxt = $("#newsletter-Form").find("#submit")
749					$(searchInpTxt).button('loading');
750				}
751				else{
752					$('#recaptchaerror').css('display', 'block');
753					e.preventDefault(e);
754				}
755            }
756            else {
757				$('#newsletter-error').show();
758                e.preventDefault();
759            }
760
761    });
762    // not visible field removed required
763    $('form button[type=submit]').click(function(){
764        $(this).parents('form').find('input, select, textarea').not(':visible').each(function(){
765			$(this).removeAttr('required');
766		});
767    });
768
769    $('#eloquaForm').on("submit", function(e) {
770        e.preventDefault();
771     var emailInput = document.getElementById("emailAddress");
772           var emailValid = validateEmail(emailInput);
773
774           // Run GDPR logic
775           gdprEmailCheck();
776         if (!emailValid) {
777             e.preventDefault();
778
779             var emailInput = document.getElementById("emailAddress");
780             emailInput.setCustomValidity("Please enter a valid business email.");
781             emailInput.reportValidity(); // Show browser's native tooltip message
782
783             emailInput.focus();
784             return false;
785         } else {
786             // Clear previous error if any
787             document.getElementById("emailAddress").setCustomValidity("");
788         }
789
790        var self = this; // Store form reference
791
792        if($('#eloquaForm').attr('name') == "USContentISPConvert"){
793            gdprEmailValid();
794        }
795        $(this).parents('form').find('input, select, textarea').not(':visible').each(function(){
796            $(this).removeAttr('required');
797        });
798
799        if(location.hostname.includes('uat') || location.hostname.includes('uat2') || location.hostname.includes('staging')){
800            // Skip reCAPTCHA in non-production
801            proceedWithSubmission(self);
802        } else {
803            // Using Promise-based validation instead of direct boolean check
804            recaptchaValidate()
805                .then(function(res) {
806                    if(res == true) {
807                        proceedWithSubmission(self);
808                    } else {
809                        $('#recaptchaerror').css('display', 'block');
810                    }
811                })
812                .catch(function(error) {
813                    console.error("reCAPTCHA validation failed:", error);
814                    $('#recaptchaerror').css('display', 'block');
815                });
816        }
817
818        // Extracted submission logic to separate function
819        function proceedWithSubmission(formElement) {
820            saveVisFieldVals();
821            var form_name = document.getElementById("eloquaForm").name;
822
823            var js_field_obj = {};
824            $('#eloquaForm').find('input[type!="submit"],text,select,tel,email').not(':hidden').each(function() {
825                js_field_obj[this.name] = escapeHTML($(this).val());
826            });
827            if($('#poidefaultval').length){
828                js_field_obj[$('#poi').attr('name')] = escapeHTML($('#poi').val());
829            }
830            var json_field_str = JSON.stringify(js_field_obj);
831
832            (window.dataLayer=window.dataLayer||[]).push({
833                'event' : 'page.formSubmit',
834                'page.formSubmit' : {
835                    'name'    : form_name,
836                    'step'    : '1',
837                    'type'    : 'ajax',
838                    'valid'   : 'True',
839                    'message' : 'success',
840                    'data'    : json_field_str
841                }
842            });
843
844            $('#eloquaForm').attr('method','post').attr('action',$('#actionURL').val());
845            var searchInpTxt = $("#eloquaForm").find("#submit");
846            $(searchInpTxt).button('loading');
847
848            // Temporarily remove the submit handler to prevent recursion
849            $('#eloquaForm').off('submit');
850
851            // Submit the form
852            formElement.submit();
853        }
854    });
855
856    $('#botdailybrief,#botweeklyrecap').on("click", function() {
857        if( $('#botdailybrief').is(':checked') || $('#botweeklyrecap').is(':checked') ) {
858            $('#form_signup_center').hide();
859        }
860        else{
861		$('#form_signup_center').show();
862        }
863    });
864
865    $('#eloquaForm-center').on("submit", function(e) {
866		var res = false;
867		if(location.hostname.includes('uat') || location.hostname.includes('uat2') || location.hostname.includes('staging')){
868                res = true;
869                }else{
870                 res = recaptchaValidate();
871                }
872    	if(res == true)
873            {
874            if( $('#botdailybrief').is(':checked') || $('#botweeklyrecap').prop("checked")==true ) {
875				var form_name = document.getElementById("eloquaForm-center").name;
876				//code snippet
877				var js_field_obj = {};
878				$('#eloquaForm').find('input[type!="submit"],text,select,tel,email').not(':hidden').each(function() {
879						js_field_obj[this.name] = escapeHTML($(this).val());
880				});
881				var json_field_str = JSON.stringify(js_field_obj);
882				(window.dataLayer=window.dataLayer||[]).push({
883				  'event' : 'page.formSubmit',
884				  'page.formSubmit' : {
885					'name'    : form_name,  // Human-readable form title.
886					'step'    : '1',  // Start at 1; only neccessary for paginated forms.
887					'type'    : 'ajax',  // "pageload" or "ajax".
888					'valid'   : 'True', // True if passed validation, otherwise false.
889					'message' : 'success',  // The success/error message displayed to the user.
890					'data'    : json_field_str   // All of the submitted form values.
891				}});
892				$('#eloquaForm').attr('method','post').attr('action',$('#actionURL').val());
893				var searchInpTxt = $("#eloquaForm").find("#submit")
894				$(searchInpTxt).button('loading');
895            }
896            else {
897
898                e.preventDefault();
899            }
900			}
901            else{
902
903                $('#recaptchaerror').css('display', 'block');
904            	e.preventDefault(e);
905            }
906
907    });
908
909    $('#topdailybrief,#topweeklyrecap').on("click", function() {
910        if( $('#topdailybrief').is(':checked') || $('#topweeklyrecap').is(':checked') ) {
911            $('#form_signup_right').hide();
912        }
913        else{
914		$('#form_signup_right').show();
915        }
916    });
917
918    $('#eloquaForm-right').on("submit", function(e) {
919		var res = false;
920		if(location.hostname.includes('uat') || location.hostname.includes('uat2') || location.hostname.includes('staging')){
921                res = true;
922                }else{
923                 res = recaptchaValidate();
924                }
925        if(res == true)
926        {
927
928            if( $('#dailybrief').is(':checked') || $('#weeklyrecap').prop("checked")==true) {
929                var form_name = document.getElementById("eloquaForm-right").name;
930				//code snippet
931				var js_field_obj = {};
932				$('#eloquaForm-right').find('input[type!="submit"],text,select,tel,email').not(':hidden').each(function() {
933						js_field_obj[this.name] = escapeHTML($(this).val());
934				});
935				var json_field_str = JSON.stringify(js_field_obj);
936				(window.dataLayer=window.dataLayer||[]).push({
937				  'event' : 'page.formSubmit',
938				  'page.formSubmit' : {
939					'name'    : form_name,  // Human-readable form title.
940					'step'    : '1',  // Start at 1; only neccessary for paginated forms.
941					'type'    : 'ajax',  // "pageload" or "ajax".
942					'valid'   : 'True', // True if passed validation, otherwise false.
943					'message' : 'success',  // The success/error message displayed to the user.
944					'data'    : json_field_str   // All of the submitted form values.
945				}});
946				$('#eloquaForm-right').attr('method','post').attr('action',$('#actionURL').val());
947				var searchInpTxt = $("#eloquaForm-right").find("#submit")
948				$(searchInpTxt).button('loading');
949				}
950            else {
951                e.preventDefault();
952            }
953		}
954        else{
955
956            $('#recaptchaerror').css('display', 'block');
957            e.preventDefault(e);
958        }
959
960    });
961
962  const header = document.getElementById('main-header');
963  const resourceSection = document.querySelector(
964      'body.resourceDetailPage .section--resource-detail-content-1'
965    );
966
967    if (header && resourceSection) {
968      header.classList.add('is-relative');
969      header.classList.remove('is-sticky');
970      document.body.style.paddingTop = '0px';
971    }
972    prefill();
973	gdprEmailCheck();
974   // terms_hide_show();
975});
976
977function prefill() {
978    var eloquaForm_val = getCookie('eloquaForm');
979    if (eloquaForm_val) {
980        var obj = JSON.parse(eloquaForm_val);
981        $("#firstName").val(obj.firstName);
982        $("#lastName").val(obj.lastName);
983        $("#emailAddress").val(obj.emailAddress);
984        $(".emailAddress").val(obj.emailAddress);
985        $("#company").val(obj.company);
986        $("#professorname").val(obj.professorname);
987		$("#email").val(obj.email);
988        /*$("#country").promise().done(function(){
989				//$(this).val(obj.country);
990                console.log(obj.country)
991            });*/
992
993        //$("#country").val(obj.country);
994        $("#website").val(obj.website);
995        $("#city").val(obj.city);
996        $("#poi").val(obj.poi);
997        $("#companydescription").val(obj.companydescription);
998        $("#partnershipopps").val(obj.partnershipopps);
999        $("#producttype").val(obj.producttype);
1000        $("#busPhone").val(obj.busPhone);
1001        $("#mobilePhone").val(obj.mobilePhone);
1002        if (obj.jobrole != 'undefined' && obj.jobrole != null && obj.jobrole != "") {
1003            $("#jobrole").val(obj.jobrole);
1004        }
1005
1006        $("#jobrole").val(obj.jobrole);
1007        $("#jobtitle").val(obj.jobtitle);
1008		$("#companyRevenue1").val(obj.companyRevenue1);
1009        $("#time1").val(obj.time1);
1010		$("#time2").val(obj.time2);
1011		$("#contactpreference").val(obj.contactpreference);
1012		$("#primaryactivity").val(obj.primaryactivity);
1013
1014
1015        //$("#jobrole").val(obj.jobrole);
1016        //$("#jobtitle").val(obj.jobtitle);
1017    }
1018
1019}
1020
1021function getCookie(name) {
1022    var value = "; " + document.cookie;
1023    var parts = value.split("; " + name + "=");
1024    if (parts.length == 2) return parts.pop().split(";").shift();
1025    return "";
1026}
1027
1028function setCookie(cname, cvalue, exdays) {
1029    var d = new Date();
1030    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
1031    var expires = "expires=" + d.toUTCString();
1032    var url = escapeHTML(window.location.pathname);
1033    var path_parts = url.match(/[^/]+/);
1034    var path = path_parts ? "/" + path_parts[0] + "/" : "/";
1035    document.cookie = cname + "=" + cvalue + "; " + expires + "; path=" + path + ";";
1036}
1037function gdprEmailCheck(){
1038    var email = $("#emailAddress").val();
1039    var ctry = $("#country").val();
1040    gdprflag = false;
1041
1042    var array = gdprDomains.split(',').map(function (value) {
1043        return value.trim();
1044    });
1045    var euCountryArray = euCountrys.split(',').map(function (value) {
1046        return value.trim();
1047    });
1048    var gdprCountryArray = gdprCountries.split(',').map(function (value) {
1049        return value.trim();
1050    });
1051
1052    var hasExcludedDomainsClass = $('.excluded-domains').length > 0;
1053
1054    if (hasExcludedDomainsClass) {
1055        // === NEW LOGIC: Apply GDPR only for EU & GDPR countries ===
1056       if (euCountryArray.indexOf(ctry) > -1 || gdprCountryArray.indexOf(ctry) > -1) {
1057            // Show GDPR opt-in
1058            if ($('#gDPROptIn1').parents('.form-field').hasClass('d-none')) {
1059                $('#gDPROptIn1').parents('.form-field').removeClass('d-none');
1060            }
1061            $('#gDPROptIn1').prop('required', true).val("1");
1062
1063            if (!$('#divTC').parents('.form-field').hasClass('d-none')) {
1064                $('#divTC').parents('.form-field').addClass('d-none');
1065            }
1066            if (!$('#optin').parents('.form-field').hasClass('d-none')) {
1067                $('#optin').parents('.form-field').addClass('d-none');
1068            }
1069        }
1070        else {
1071            // Hide GDPR opt-in
1072            if (!$('#gDPROptIn1').parents('.form-field').hasClass('d-none')) {
1073                $('#gDPROptIn1').parents('.form-field').addClass('d-none');
1074                $('#gDPROptIn1').removeAttr('required');
1075            }
1076            if ($('#divTC').parents('.form-field').hasClass('d-none')) {
1077                $('#divTC').parents('.form-field').removeClass('d-none');
1078            }
1079            if (ctry == 'CAN') {
1080             if (!$('#gDPROptIn1').parents('.form-field').hasClass('d-none')) {
1081             $('#gDPROptIn1').parents('.form-field').addClass('d-none');
1082             $('#gDPROptIn1').removeAttr('required');
1083             }
1084             if (!$('#divTC').parents('.form-field').hasClass('d-none')) {
1085             $('#divTC').parents('.form-field').addClass('d-none');
1086             }
1087             if ($('#optin').parents('.form-field').hasClass('d-none')) {
1088             $('#optin').parents('.form-field').removeClass('d-none');
1089             }
1090             $('#optin').val($('#optin').is(':checked') ? "1" : "");
1091             }
1092             else{
1093             if (!$('#optin').parents('.form-field').hasClass('d-none')) {
1094             $('#optin').parents('.form-field').addClass('d-none');
1095             }
1096             }
1097        }
1098    }
1099    else {
1100        // === ORIGINAL LOGIC (unchanged) ===
1101        if (email && email !== undefined && email !== null) {
1102            var domain = email.split("@")[1].toLowerCase();
1103            if (domain != null && array.indexOf(domain) != -1) {
1104                gdprflag = true; // GDPR Email
1105                if (euCountryArray.indexOf(ctry) > -1 && gdprflag) {
1106                    if ($('#gDPROptIn1').parents('.form-field').hasClass('d-none')) {
1107                        $('#gDPROptIn1').parents('.form-field').removeClass('d-none');
1108                    }
1109                    $('#gDPROptIn1').prop('required', true).val("1");
1110                    if (!$('#divTC').parents('.form-field').hasClass('d-none')) {
1111                        $('#divTC').parents('.form-field').addClass('d-none');
1112                    }
1113                    if (!$('#optin').parents('.form-field').hasClass('d-none')) {
1114                        $('#optin').parents('.form-field').addClass('d-none');
1115                    }
1116                } else {
1117                    if (!$('#gDPROptIn1').parents('.form-field').hasClass('d-none')) {
1118                        $('#gDPROptIn1').parents('.form-field').addClass('d-none');
1119                        $('#gDPROptIn1').removeAttr('required');
1120                    }
1121                    if ($('#divTC').parents('.form-field').hasClass('d-none')) {
1122                        $('#divTC').parents('.form-field').removeClass('d-none');
1123                    }
1124                    if (!$('#optin').parents('.form-field').hasClass('d-none')) {
1125                        $('#optin').parents('.form-field').addClass('d-none');
1126                    }
1127                }
1128            } else {
1129                gdprflag = false;
1130                $('#gDPROptIn1').val("");
1131                if (!$('#gDPROptIn1').parents('.form-field').hasClass('d-none')) {
1132                    $('#gDPROptIn1').parents('.form-field').addClass('d-none');
1133                    $('#gDPROptIn1').removeAttr('required');
1134                }
1135                if ($('#divTC').parents('.form-field').hasClass('d-none')) {
1136                    $('#divTC').parents('.form-field').removeClass('d-none');
1137                }
1138                if (!$('#optin').parents('.form-field').hasClass('d-none')) {
1139                    $('#optin').parents('.form-field').addClass('d-none');
1140                }
1141            }
1142        } else {
1143            if (!$('#gDPROptIn1').parents('.form-field').hasClass('d-none')) {
1144                $('#gDPROptIn1').parents('.form-field').addClass('d-none');
1145                $('#gDPROptIn1').removeAttr('required');
1146            }
1147            if ($('#divTC').parents('.form-field').hasClass('d-none')) {
1148                $('#divTC').parents('.form-field').removeClass('d-none');
1149            }
1150            if (!$('#optin').parents('.form-field').hasClass('d-none')) {
1151                $('#optin').parents('.form-field').addClass('d-none');
1152            }
1153        }
1154        if (gdprCountryArray.indexOf(ctry) > -1) { // GDPR country
1155            if ($('#gDPROptIn1').parents('.form-field').hasClass('d-none')) {
1156                $('#gDPROptIn1').parents('.form-field').removeClass('d-none');
1157            }
1158            $('#gDPROptIn1').prop('required', true).val("1");
1159            if (!$('#divTC').parents('.form-field').hasClass('d-none')) {
1160                $('#divTC').parents('.form-field').addClass('d-none');
1161            }
1162            if (!$('#optin').parents('.form-field').hasClass('d-none')) {
1163                $('#optin').parents('.form-field').addClass('d-none');
1164            }
1165        }
1166        if (ctry == 'CAN') {
1167            if (!$('#gDPROptIn1').parents('.form-field').hasClass('d-none')) {
1168                $('#gDPROptIn1').parents('.form-field').addClass('d-none');
1169                $('#gDPROptIn1').removeAttr('required');
1170            }
1171            if (!$('#divTC').parents('.form-field').hasClass('d-none')) {
1172                $('#divTC').parents('.form-field').addClass('d-none');
1173            }
1174            if ($('#optin').parents('.form-field').hasClass('d-none')) {
1175                $('#optin').parents('.form-field').removeClass('d-none');
1176            }
1177            $('#optin').val($('#optin').is(':checked') ? "1" : "");
1178        }
1179    }
1180}
1181function gdprEmailValid(){
1182		var email = $("#emailAddress").val();
1183		//var urlchk = window.location.href;
1184		var ctry = $("#country").val();
1185		var emailflag =false;
1186		//var submitButton = document.getElementById('submit');
1187        gdprflag = false;
1188            var array = gdprDomains.split(',');
1189            if(email!="" && email != undefined && email !=null){
1190                var domain = email.split("@")[1].toLowerCase();
1191                if(domain!=null && array.indexOf(domain)!=-1){
1192				 gdprflag = true;
1193				 var emaildomain = email.split("@")[1];
1194
1195					 $('#emailvalid').css('display', 'block');
1196					emailflag = true;
1197					// submitButton.disabled = true;
1198
1199				}
1200				else{
1201					$('#emailvalid').css('display', 'none');
1202				}
1203
1204		}
1205		return emailflag;
1206}
1207
1208function setFormFields() {
1209    document.getElementById('eloquaForm').elements['CLID'].value = getQueryStringParamValue('clid');
1210    //repeat for each field to populate
1211    setFieldFromCookie('GA_Campaign__c', 'cs_ck_utm_campaign');
1212    setFieldFromCookie('GA_Content__c', 'cs_ck_utm_content');
1213    setFieldFromCookie('GA_Medium__c', 'cs_ck_utm_medium');
1214    setFieldFromCookie('GA_Source__c', 'cs_ck_utm_source');
1215    setFieldFromCookie('GA_Term__c', 'cs_ck_utm_term');
1216    setFieldFromCookie('KCID__c', 'cs_ck_trkid');
1217
1218    //google click id gclid
1219    document.getElementById("gclid").value = (name = new RegExp('(?:^|;\\s*)gclid=([^;]*)').exec(document.cookie)) ? name.split(",")[1] : "";
1220}
1221$(function() {
1222	//eloqua tarcking params
1223		var defaultPages = {};
1224		defaultPages['/us']='homepage';
1225		defaultPages['/pricing']='pricing-page';
1226		defaultPages['/request-demo']='demo-request';
1227		defaultPages['/contact-us']='contact-us';
1228		defaultPages['/products/database']='product-page-database';
1229		defaultPages['/products/distribution']='product-page-distribution';
1230		defaultPages['/products/monitoring']='product-page-monitoring';
1231		defaultPages['/products/analytics']='product-page-analysis';
1232		defaultPages['/products/commscloud']='product-page-analysis';
1233
1234
1235	var checkRefExist = function(refURL) {
1236		var isRefExist = false;
1237		var refObj = {};
1238		refObj.isRefExist = false;
1239		var loctag = document.createElement("a");
1240		loctag.href = refURL;
1241		var path = loctag.href;
1242		var pathUrl = window.location.href;
1243
1244		if(path.indexOf('/resources') > -1){
1245			refObj.isRefExist = true;
1246		refObj.campVal = defaultPages['/resources'];
1247		}else if(path.indexOf('/pricing') > -1){
1248			refObj.isRefExist = true;
1249		refObj.campVal = defaultPages['/pricing'];
1250		}else if(path.indexOf('/contact-us') > -1){
1251			refObj.isRefExist = true;
1252		refObj.campVal = defaultPages['/contact-us'];
1253		}else if(path.indexOf('/products/database') > -1){
1254			refObj.isRefExist = true;
1255		refObj.campVal = defaultPages['/products/database'];
1256		}else if(path.indexOf('/products/distribution') > -1){
1257			refObj.isRefExist = true;
1258		refObj.campVal = defaultPages['/products/distribution'];
1259		}else if(path.indexOf('/products/monitoring') > -1){
1260			refObj.isRefExist = true;
1261		refObj.campVal = defaultPages['/products/monitoring'];
1262		}else if(path.indexOf('/products/analytics') > -1){
1263			refObj.isRefExist = true;
1264		refObj.campVal = defaultPages['/products/analytics'];
1265		}else if(path.indexOf('/products/commscloud') > -1){
1266			refObj.isRefExist = true;
1267		refObj.campVal = defaultPages['/us/products/commscloud'];
1268		}else if(path.indexOf('/request-demo') > -1){
1269			refObj.isRefExist = true;
1270		refObj.campVal = defaultPages['/request-demo'];
1271		}else if(path.indexOf('/us') > -1 && path.length < 27){
1272			refObj.isRefExist = true;
1273		refObj.campVal = defaultPages['/us'];
1274		}else{
1275		refObj.isRefExist = true;
1276		refObj.campVal = '';
1277		}
1278		return refObj;
1279	};
1280
1281    //Do Prefill logic here
1282
1283    prepopFields();
1284
1285
1286    function setCampaignParams(campaign_values) {
1287        var paramList = campaign_values.split('&');
1288        var paramName = "";
1289        var paramValue = "";
1290        for (var i = 0; i < paramList.length; i++) {
1291            paramName = paramList[i].split('=')[0];
1292            paramValue = paramList[i].split('=')[1];
1293            if (paramName == 'utm_medium') {
1294                $("#gAMedium1").val(paramValue);
1295                $("#originalGAMedium1").val(paramValue);
1296            }
1297            if (paramName == 'utm_source') {
1298                $("#gASource1").val(paramValue);
1299                $("#originalGASource1").val(paramValue);
1300            }
1301            if (paramName == 'utm_content') {
1302                $("#originalGAContent1").val(paramValue);
1303                $("#gAContent1").val(paramValue);
1304            }
1305            if (paramName == 'utm_campaign') {
1306                $("#originalGACampaign1").val(paramValue);
1307                $("#gACampaign1").val(paramValue);
1308            }
1309            if (paramName == 'utm_term') {
1310                $("#originalGATerm1").val(paramValue);
1311                $("#gATerm1").val(paramValue);
1312            }
1313            if (paramName == 'gclid') {
1314                $("#gclid").val(paramValue);
1315            }
1316            if (paramName == 'msclkid') {
1317                $("#gclid").val(paramValue);
1318            }
1319            if(paramName == 'campaigncode')
1320			{
1321				$("#campaigncode").val(paramValue);
1322			}
1323        }
1324    }
1325
1326
1327
1328     function setDefaultCampaignParams(campaign_name) {
1329            var defVal = "website";
1330            if(localStorage.getItem('utm_medium')!= null){
1331                $("#gAMedium1").val(localStorage.getItem('utm_medium'));
1332                $("#originalGAMedium1").val(localStorage.getItem('utm_medium'));
1333            }else{
1334                $("#gAMedium1").val(defVal);
1335            }
1336            if(localStorage.getItem('utm_source')!= null){
1337                $("#gASource1").val(localStorage.getItem('utm_source'));
1338                $("#originalGASource1").val(localStorage.getItem('utm_source'));
1339            }else{
1340                $("#gASource1").val(defVal);
1341            }
1342
1343            if(localStorage.getItem('utm_content')!= null){
1344                $("#originalGAContent1").val(localStorage.getItem('utm_content'));
1345                $("#gAContent1").val(localStorage.getItem('utm_content'));
1346            }else{
1347                $("#originalGAContent1").val(defVal);
1348            }
1349
1350            if(localStorage.getItem('utm_campaign')!= null){
1351                $("#originalGACampaign1").val(localStorage.getItem('utm_campaign'));
1352                $("#gACampaign1").val(localStorage.getItem('utm_campaign'));
1353            }
1354
1355            if(localStorage.getItem('utm_term')!= null){
1356                $("#originalGATerm1").val(localStorage.getItem('utm_term'));
1357                $("#gATerm1").val(localStorage.getItem('utm_term'));
1358            }else{
1359                $("#gATerm1").val(campaign_name);
1360                $("#originalGATerm1").val(campaign_name);
1361            }
1362
1363            if(localStorage.getItem('gclid')!= null){
1364                $("#gclid").val(localStorage.getItem('gclid'));
1365            }else{
1366                $("#gclid").val(defVal);
1367            }
1368            if(localStorage.getItem('msclkid')!= null){
1369                $("#gclid").val(localStorage.getItem('msclkid'));
1370            }
1371            if(localStorage.getItem('gtm_campaign')!= null){
1372                $("#originalGACampaign1").val(localStorage.getItem('gtm_campaign'));
1373                $("#gACampaign1").val(localStorage.getItem('gtm_campaign'));
1374            }
1375
1376            if(localStorage.getItem('utm_campaign') == null && localStorage.getItem('gtm_campaign')== null){
1377                $("#originalGACampaign1").val(campaign_name);
1378                $("#gACampaign1").val(campaign_name);
1379            }
1380
1381        }
1382
1383    function prepopFields() {
1384
1385        //set form values
1386        try {
1387            var pageUrl = window.location.href;
1388            var refObj = "";
1389            var isValuesSet = false;
1390
1391            //First set values from page url if exists
1392            if (pageUrl.indexOf('?') > 0) {
1393                var campaign_values = pageUrl.split("?")[1];
1394                if (campaign_values && campaign_values.indexOf('=') > -1) {
1395                    var trackingParams = ['utm_', 'gclid', 'msclkid', 'gtm_campaign', 'cq_'];
1396                    var hasTrackingParams = false;
1397                    for (var i = 0; i < trackingParams.length; i++) {
1398                        if (campaign_values.indexOf(trackingParams[i]) > -1) {
1399                            hasTrackingParams = true;
1400                            break;
1401                        }
1402                    }
1403                    if (hasTrackingParams) {
1404                        setCampaignParams(campaign_values);
1405                        isValuesSet = true;
1406                    } else {
1407                        setDefaultCampaignParams("");
1408                    }
1409                } else {
1410                    setDefaultCampaignParams("");
1411                }
1412            } else {
1413              setDefaultCampaignParams("");
1414			if(!isValuesSet){
1415				if(document.referrer !=""){
1416					  if(document.referrer.startsWith('https://')){
1417						  var currentdomain = encodeURIComponent(document.referrer);
1418	                        refObj = checkRefExist(currentdomain);
1419	                    }
1420					//refObj = checkRefExist(encodeURIComponent(document.referrer));
1421					if (refObj != null && refObj.isRefExist) {
1422						if((pageUrl.indexOf('/resources')  > -1) || (pageUrl.indexOf('/resources/')  > -1)){
1423	                        setDefaultCampaignParams($('#gACampaign1').val());
1424						} else{
1425							setDefaultCampaignParams(refObj.campVal);
1426						}
1427					}
1428				}
1429				else if(document.referrer ==""){
1430					if(pageUrl.indexOf('/products/database')  > -1){
1431							setDefaultCampaignParams("product-page-database");
1432					}
1433					else if(pageUrl.indexOf('/products/monitoring')  > -1){
1434							setDefaultCampaignParams("product-page-monitoring");
1435					}
1436					else if(pageUrl.indexOf('/products/monitoring')  > -1){
1437							setDefaultCampaignParams("product-page-monitoring");
1438					}
1439					else if((pageUrl.indexOf('/resources')  > -1) || (pageUrl.indexOf('/resources/')  > -1)){
1440                        setDefaultCampaignParams($('#gACampaign1').val());
1441					}
1442					else if(pageUrl.indexOf('/pricing')  > -1){
1443							setDefaultCampaignParams("pricing-page");
1444					}
1445				}
1446				if(pageUrl.includes("cision.com") || pageUrl.includes("/cision-us/us")){
1447					var blogRegex = new RegExp('[0-9]{4}');
1448                    if(pageUrl.indexOf('/contact-us')  > -1){
1449                            setDefaultCampaignParams("contact-us");
1450                    }
1451                    else if(pageUrl.indexOf('/request-demo')  > -1){
1452                            setDefaultCampaignParams("demo-request");
1453                    }
1454                    else if(pageUrl.split("/")[3].match(blogRegex) || pageUrl.indexOf("/resources/articles/") > -1)
1455                    {
1456                        setDefaultCampaignParams("");
1457                    }
1458				}
1459            }
1460            }
1461
1462        } catch (err) {}
1463    }
1464
1465
1466
1467    function getQueryStringParamValue(strQStrParam) {
1468        var strURL = document.location.href;
1469        var strQStrParamValue = "";
1470
1471        if (strURL.indexOf('?') != -1) {
1472            strQStrParamValue = strURL.substr(strURL.indexOf('?') + 1);
1473            if (strQStrParamValue == "") {
1474                //window.setTimeout(window.location = "http://us.cision.com/contact_us/demo_request_string.asp",2000);
1475                //
1476                //window.setTimeout(window.location = "http://us.cision.com/contact_us/demo_request_string.asp",2000);
1477            } else if (strQStrParamValue.indexOf(strQStrParam) != -1) {
1478                strQStrParamValue = strQStrParamValue.substr(strQStrParamValue.indexOf(strQStrParam));
1479                strQStrParamValue = strQStrParamValue.substr(strQStrParamValue.indexOf('=') + 1);
1480
1481                if (strQStrParamValue.indexOf('&') != -1)
1482                    strQStrParamValue = strQStrParamValue.substr(0, strQStrParamValue.indexOf('&'));
1483                return strQStrParamValue;
1484
1485            }
1486        }
1487    }
1488
1489
1490
1491    function setFieldFromCookie(field, cookie_name) {
1492        var form_cnt = document.forms.length;
1493        for (var x = 0; x < form_cnt; x++) {
1494            var tmp_form = document.forms[x];
1495            if (tmp_form != undefined) {
1496                var tmp_field = tmp_form.elements[field];
1497                if (tmp_field != undefined) {
1498                    tmp_field.value = getCookie(cookie_name);
1499                }
1500            }
1501        }
1502    }
1503
1504    function setFormFields() {
1505        $("#CLID").val(getQueryStringParamValue('clid'));
1506
1507
1508        //google click id gclid
1509        $("#gclid").val((name = new RegExp('(?:^|;\\s*)gclid=([^;]*)').exec(document.cookie)) ? name.split(",")[1] : "");
1510    }
1511
1512});
1513
1514function saveVisFieldVals() {
1515    var js_field_obj = {};
1516    $('#eloquaForm').find('input[type!="submit"],text,select,tel,email').not(':hidden').each(function() {
1517        js_field_obj[this.name] = escapeHTML($(this).val());
1518    });
1519    var json_field_str = JSON.stringify(js_field_obj);
1520    setCookie('eloquaForm', json_field_str, 90);
1521}
1522
1523function terms_hide_show() {
1524    var ctry = $("#country").val();
1525	var urlchk = document.location.href;
1526	var hostname = new URL(urlchk).hostname;
1527	var allowedHosts = ['cision.co.uk', 'cision-uk', 'cision-ca', 'cision.ca'];
1528    if (ctry == 'CAN') {
1529        var allowedHostsForCanada = ['cision-de2', 'cision.de', 'cision-se', 'cision.se', 'cision-no', 'cision.no', 'cision-fr', 'cision.fr'];
1530        if (allowedHostsForCanada.includes(hostname)) {
1531			$('.confirm-text').css('display', 'none');
1532			$('#optin').parents('.form-field').removeClass('d-none');
1533			$('#divTC').css('display', 'block');
1534			$('#gDPROptIn1').parent().css('display', 'block');
1535		}
1536		else{
1537			$('.confirm-text').css('display', 'none');
1538			$('#optin').parents('.form-field').removeClass('d-none');
1539			$('#divTC').css('display', 'none');
1540			$('#gDPROptIn1').parent().css('display', 'none');
1541			$('#gDPROptIn1').removeAttr('required');
1542			$('#gDPROptIn1').val("");
1543		}
1544		if($('#optin').is(':checked'))
1545	    {
1546		   $('#optin').val("1");
1547	    }else{
1548			 $('#optin').val("");
1549
1550		}
1551    }
1552	else{
1553		if (allowedHosts.includes(hostname)) {
1554				gdprEmailCheck();
1555			if(gdprflag){
1556				$('#gDPROptIn1').parent().css('display', 'block');
1557				$('#gDPROptIn1').val("1");
1558
1559			}
1560			else{
1561				$('#gDPROptIn1').parent().css('display', 'none');
1562				$('#gDPROptIn1').val("");
1563			}
1564		if (ctry != 'CAN' && gdprflag == true) {
1565			$('#divTC').css('display', 'none');
1566		}else if(gdprflag == false && ctry != 'CAN'){
1567			 $('#divTC').css('display', 'block');
1568		}else{
1569			$('#divTC').css('display', 'block');
1570		}
1571        $('#optin').parents('.form-field').addClass('d-none');
1572        $('.confirm-text').css('display', 'block');
1573		$('#optin').val("");
1574    }else{
1575		gdprEmailCheck();
1576			if(gdprflag){
1577				$('#gDPROptIn1').parent().css('display', 'block');
1578				$('#gDPROptIn1').val("1");
1579			}
1580			else{
1581				if (allowedHostsForCanada.includes(hostname)) {
1582					$('#gDPROptIn1').parent().css('display', 'block');
1583				 }
1584				else{
1585					$('#gDPROptIn1').parent().css('display', 'none');
1586					$('#gDPROptIn1').val("");
1587				}
1588			}
1589		$('#divTC').css('display', 'block');
1590        $('#optin').parents('.form-field').addClass('d-none');
1591        $('.confirm-text').css('display', 'block');
1592		$('#optin').val("");
1593	}
1594}
1595
1596}
1597
1598function prweb(bRetry){
1599	   var bAjaxSuccess = true;
1600	   if($('#eloquaForm').attr('name') == "USprwebform" && $('#ajaxHit').val()=='false'){
1601			$('#form_error_box').remove();
1602		    $('#eloquaForm').removeAttr('method');
1603			$('#eloquaForm').removeAttr('post');
1604			var univform_errors = [];
1605			var g_redirect_url=$('input[name="retURL"]').val();;
1606			var redirectLink = "https://app.prweb.com/Login.aspx?campaigncode="+escapeHTML($("input[name=campaigncode]").val())+"utm_source="+escapeHTML($("input[name=gASource1]").val())+"&utm_medium="+escapeHTML($("input[name=gAMedium1]").val())+"&utm_campaign="+escapeHTML($("input[name=gACampaign1]").val())+"&prw_ga_use_case=2";
1607			$.ajax({
1608	    				async: false,
1609	    				method: "POST",
1610	    				cache: false,
1611	    				url: '/bin/cision-restructure/prwebAccountSignup/',
1612	    				data: {
1613	    					fname: $('#firstName').val(),
1614	    					lname: $('#lastName').val(),
1615	    					phone: $('#busPhone').val(),
1616	    					org: $('#company').val(),
1617	    					country: $('#country').val(),
1618	    					email: $('#emailAddress').val(),
1619	    					pass: $('#password').val(),
1620	    					utm_campaign: $("input[name=gACampaign1]").val(),
1621	    					utm_medium: $("input[name=gAMedium1]").val(),
1622	    					utm_source: $("input[name=gASource1]").val(),
1623	    					campaigncode: $("input[name=campaigncode]").val(),
1624	    					prw_ga_use_case: '1',
1625	    					lang_id: '1033'
1626	    				},
1627	    				success: function(data){
1628
1629	    					var json = JSON.parse(data);
1630
1631	    					bAjaxSuccess = true;
1632
1633	    					if(json.ierror){
1634	    						bAjaxSuccess = false;
1635	    						if(json.ierror == 'timeout'){
1636	    							univform_errors.push('processing request...');
1637	    							univform_showerrors(univform_errors);
1638
1639	    							setTimeout(function(){
1640	    								prweb(true);
1641	    							},200);
1642	    						}
1643	    					}
1644	    					else if(json.string.error){
1645	    						if(bRetry && json.string.error.includes('LoginTaken')){
1646	    							g_redirect_url = 'https://app.prweb.com/Login.aspx';
1647	    						}
1648	    						else {
1649	    							if(json.string.error.includes('CreateCompanyFailed') || json.string.error.includes('already exists')){
1650	    								json.string.error = "You already have a PRWeb account. Please <a class='error_link' href='" + redirectLink + "'>click this link</a> to log in to your account.  ";
1651	    							}
1652	    						}
1653	    						bAjaxSuccess = false;
1654    							univform_errors.push(json.string.error);
1655    							univform_showerrors(univform_errors);
1656	    					}
1657
1658	    					if(bAjaxSuccess) {
1659	    						$("#returl").val(g_redirect_url);
1660	    						$("#password").val('');
1661								$('#ajaxHit').attr('value','true');
1662								$('#eloquaForm').attr('method','post').attr('action',$('#actionURL').val());
1663								var searchInpTxt = $("#eloquaForm").find("#submit")
1664                                $(searchInpTxt).button('loading');
1665								$('#eloquaForm').submit();
1666
1667	    					}else{
1668	    						$(".submitbutton").val("Submit");
1669	    					}
1670
1671	    				},
1672	    			});
1673			    }
1674	            return bAjaxSuccess;
1675
1676        }
1677
1678function univform_showerrors(univform_errors){
1679		var t_errors = "";
1680		for(var x = 0; univform_errors[x];x++){
1681			t_errors += "<div>"+univform_errors[x]+"</div>";
1682		}
1683		var errorDisplay = "<div id='form_error_box' bool='true' style='color: red; margin-bottom: 10px;font-size: 14px;'>"+t_errors+"</div>"
1684		$("#submit").parent().prepend(errorDisplay);
1685}
1686
1687function getCsrfTokenSync() {
1688  let token = null;
1689  $.ajax({
1690    type: "GET",
1691    url: "/libs/granite/csrf/token.json",
1692    async: false,
1693    dataType: "json",
1694    success: function(data) {
1695      token = data.token;
1696    }
1697  });
1698  return token;
1699}
1700
1701var recaptchaV2WidgetId = null;
1702
1703// Returns a Promise instead of boolean
1704function recaptchaValidate() {
1705  const csrfToken = getCsrfTokenSync();
1706  const pagePath = window.location.pathname;
1707  return new Promise((resolve, reject) => {
1708    try {
1709      grecaptcha.ready(function () {
1710        grecaptcha.execute('6LcND_QUAAAAAP1F-ViHZtRv64_xwiGtTa9A4q8f', { action: 'submit' })
1711          .then(function (token) {
1712            $.ajax({
1713              type: "POST",
1714              url: "/bin/cision-revamp/recaptcha",
1715              headers: { "CSRF-Token": csrfToken },
1716              data: JSON.stringify({
1717                token: token,
1718                version: "v3",
1719                pagePath: pagePath
1720              }),
1721              dataType: "json",
1722              contentType: "application/json",
1723              success: function (response) {
1724                // Check if v3 passed based on servlet response
1725                if (response && response.result) {
1726                  var result = response.result;
1727                  var success = result.success === true;
1728                  var score = result.score || 0;
1729
1730                  if (success && score >= 0.5) {
1731                    resolve(true);
1732                  } else {
1733                    console.warn("reCAPTCHA v3 failed (success=" + success + ", score=" + score + "). Falling back to v2...");
1734                    showRecaptchaV2(resolve, reject, pagePath);
1735                  }
1736                } else {
1737                  showRecaptchaV2(resolve, reject, pagePath);
1738                }
1739              },
1740              error: function (xhr, status, error) {
1741                console.error("reCAPTCHA v3 validation error:", status, error);
1742                showRecaptchaV2(resolve, reject, pagePath); // Callback to v2
1743              }
1744            });
1745          })
1746          .catch(function(error) {
1747            console.error("grecaptcha.execute error:", error);
1748            showRecaptchaV2(resolve, reject, pagePath);
1749          });
1750      });
1751    } catch (e) {
1752      console.error("Exception during reCAPTCHA validation:", e);
1753      showRecaptchaV2(resolve, reject, pagePath);
1754    }
1755  });
1756}
1757
1758// Accept resolve/reject callbacks
1759function showRecaptchaV2(resolve, reject, pagePath) {
1760  // Store callbacks for use in success/error handlers
1761  window.recaptchaV2Callbacks = { resolve, reject, pagePath };
1762
1763  // Check if widget already exists before rendering
1764  if (recaptchaV2WidgetId === null) {
1765    $("#recaptchaV2Container").show();
1766
1767    try {
1768      recaptchaV2WidgetId = grecaptcha.render('recaptchaV2Container', {
1769        sitekey: '6LfAo6IUAAAAAO_d26buFC1KLOCoWuNak-Ez-S6f',
1770        callback: onRecaptchaV2Success,
1771        'expired-callback': onRecaptchaV2Expired
1772      });
1773    } catch (e) {
1774      console.error("Error rendering reCAPTCHA v2:", e);
1775      // If render fails, try to find existing widget
1776      if (typeof grecaptcha !== 'undefined' && grecaptcha.reset) {
1777        grecaptcha.reset();
1778      }
1779    }
1780  } else {
1781    // Widget already exists, just show and reset it
1782    $("#recaptchaV2Container").show();
1783    grecaptcha.reset(recaptchaV2WidgetId);
1784  }
1785}
1786
1787// Resolves/rejects the promise
1788function onRecaptchaV2Success(token) {
1789  const csrfToken = getCsrfTokenSync();
1790
1791  // Get pagePath from stored callbacks
1792    const pagePath = window.recaptchaV2Callbacks?.pagePath || window.location.pathname;
1793
1794  $.ajax({
1795    type: 'POST',
1796    url: "/bin/cision-revamp/recaptcha",
1797    headers: {
1798      "CSRF-Token": csrfToken
1799    },
1800    data: JSON.stringify({
1801      token: token,
1802      version: "v2",
1803      pagePath: pagePath
1804    }),
1805    dataType: "json",
1806    contentType: "application/json",
1807    success: function (response) {
1808
1809      // Check if response has the result object
1810      if (response && response.result) {
1811        var result = response.result;
1812
1813        if (result.success === true) {
1814          $("#recaptchaV2Container").hide();
1815
1816          // Resolve the promise to allow form submission
1817          if (window.recaptchaV2Callbacks && window.recaptchaV2Callbacks.resolve) {
1818            window.recaptchaV2Callbacks.resolve(true);
1819            window.recaptchaV2Callbacks = null;
1820          }
1821        } else {
1822          console.warn("reCAPTCHA v2 validation failed:", result);
1823          grecaptcha.reset(recaptchaV2WidgetId);
1824
1825          if (window.recaptchaV2Callbacks && window.recaptchaV2Callbacks.reject) {
1826            window.recaptchaV2Callbacks.reject(false);
1827            window.recaptchaV2Callbacks = null;
1828          }
1829        }
1830      } else {
1831        console.error("Unexpected response format:", response);
1832        grecaptcha.reset(recaptchaV2WidgetId);
1833      }
1834    },
1835    error: function (xhr, status, error) {
1836      console.error("v2 AJAX error - Status:", status, "Error:", error);
1837      console.error("Response text:", xhr.responseText);
1838      console.error("Status code:", xhr.status);
1839      grecaptcha.reset(recaptchaV2WidgetId);
1840
1841      if (window.recaptchaV2Callbacks && window.recaptchaV2Callbacks.reject) {
1842        window.recaptchaV2Callbacks.reject(false);
1843        window.recaptchaV2Callbacks = null;
1844      }
1845    }
1846  });
1847}
1848
1849function onRecaptchaV2Expired() {
1850  grecaptcha.reset(recaptchaV2WidgetId);
1851  console.warn("reCAPTCHA v2 expired.");
1852
1853  if (window.recaptchaV2Callbacks && window.recaptchaV2Callbacks.reject) {
1854    window.recaptchaV2Callbacks.reject(false);
1855    window.recaptchaV2Callbacks = null;
1856  }
1857}
1858
1859/* for textarea field validation */
1860function validateTextarea() {
1861    $('form').find('input[type=text], input[type=email], input[type=tel], textarea').each(function() {
1862        if($(this).prop('required')) {
1863            var fieldValue = $(this).val().trim(); // Get the value and remove leading/trailing spaces
1864            var hasValidChars = /[a-zA-Z0-9]/.test(fieldValue); // Check if the field contains at least one valid character
1865            var specialChars = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]+/;
1866
1867            // Check if the field contains only spaces or special characters and doesn't have any valid characters
1868            if (!hasValidChars && (fieldValue === "" || /^\s+$/.test(fieldValue) || specialChars.test(fieldValue))) {
1869                $(this).get(0).setCustomValidity("Please enter valid text.");
1870            } else {
1871                $(this).get(0).setCustomValidity(""); // Reset the error message
1872            }
1873        }
1874	});
1875}
1876
1877/* for email field validation */
1878function validateEmail(_this) {
1879  const input = _this instanceof jQuery ? _this[0] : _this;
1880  const re = /^[-!#$%&'*+/=?^_`{|}~A-Za-z0-9]+(?:\.[-!#$%&'*+/=?^_`{|}~A-Za-z0-9]+)*@([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]/;
1881  const emailAddressInput = input.value.trim();
1882  const domain = emailAddressInput.split('@')[1]?.toLowerCase();
1883
1884  // Always validate basic email pattern first
1885  if (!re.test(emailAddressInput)) {
1886    input.setCustomValidity("Please enter a valid email address.");
1887    return false;
1888  }
1889
1890   if ($('.excluded-domains').length > 0) {
1891    const excludedDomains = new Set([
1892      'sprinklr.com','netbase.com','synthesio.com','sysomos.com','talkwalker.com',
1893      'linkfluence.com','pulsarplatform.com','digimind.com','nuvi.com','tracx.com',
1894      'aol.com','att.net','comcast.net','gmail.com','googlemail.com','hotmail.com',
1895      'hotmail.co.uk','mac.com','me.com','mail.com','msn.com','live.com',
1896      'sbcglobal.net','verizon.net','yahoo.com','yahoo.co.uk','https://soprism.com/',
1897      'email.com','games.com','hush.com','hushmail.com','icloud.com','inbox.com',
1898      'lavabit.com','love.com','outlook.com','pobox.com','rocketmail.com','
1898safe-mail.net',
1899      'wow.com','ygm.com','ymail.com','zoho.com','fastmail.fm','yandex.com','protonmail.com',
1900      'myself.com','post.com','writeme.com','business.com','info.com','mailinatr.com',
1901      'hldrive.com','rhyta.com','amenonuhoko1.com','live.se','bellsouth.net','charter.net',
1902      'cox.net','earthlink.net','juno.com','us.com','btinternet.com','virginmedia.com',
1903      'blueyonder.co.uk','freeserve.co.uk','live.co.uk','ntlworld.com','o2.co.uk',
1904      'orange.net','tiscali.co.uk','virgin.net','wanadoo.co.uk','sina.com','qq.com',
1905      'naver.com','hanmail.net','daum.net','nate.com','yahoo.co.jp','yahoo.co.kr',
1906      'yahoo.co.id','yahoo.co.in','yahoo.com.sg','yahoo.com.ph','hotmail.fr','live.fr',
1907      'laposte.net','yahoo.fr','wanadoo.fr','orange.fr','gmx.fr','sfr.fr','neuf.fr','free.fr',
1908      'gmx.de','gmx.com','gmx.net','gmx.at','gmx.ch','hotmail.de','live.de','online.de',
1909      't-online.de','web.de','yahoo.de','aol.de','freenet.de','outlook.de','writeme.de',
1910      'icloud.de','mail.ru','rambler.ru','yandex.ru','ya.ru','list.ru','hotmail.be',
1911      'live.be','skynet.be','voo.be','tvcablenet.be','telenet.be','hotmail.com.ar',
1912      'live.com.ar','yahoo.com.ar','fibertel.com.ar','speedy.com.ar','arnet.com.ar',
1913      'yahoo.com.mx','live.com.mx','hotmail.com.mx','prodigy.net.mx','msn.com',
1914      'yahoo.com.br','hotmail.com.br','outlook.com.br','uol.com.br','bol.com.br',
1915      'terra.com.br','ig.com.br','itelefonica.com.br','r7.com','zipmail.com.br',
1916      'globo.com','globomail.com','oi.com.br','gmial.com','example.com','email.co',
1917      'iclou.com','gmai.com','gamil.com','58gmil.com','957email.com','gamil.co',
1918      'drmail.in','ufs4life.ac.za','mail.co.za','gmsil.com','gimail.com','g.mail.com',
1919      'gimal.com','gemail.com','qmail.com','gmail.co','1gamil.com','gail.com',
1920      'imail.com','domain.com','yaoo.com','emal.com','flippa.de','studio.com',
1921      'gmel.com','ail.com','barakal.com','coloruz.com','esterace.com','rogtat.com',
1922      'opisms.com','obisims.com','janfab.com','konetas.com','akirapowered.com',
1923      'marchub.com','nastyx.com','degcos.com','heweek.com','asaud.com','sigmazon.com',
1924      'cetnob.com','rowplant.com','hot.com','etc.com','armyspy.com','company.com',
1925      'gam.com','gma.com','teleworm.us','yahu.com','yoo.com','fbook.com','app.com',
1926      'domian.com','gil.com','oogle.com','gmaim.com','yoole.com','gmal.com',
1927      '12345.com','cookmail.com','privaterelay.appleid.com','gml.com','aol.cn'
1928    ]);
1929
1930    if (excludedDomains.has(domain)) {
1931         input.setCustomValidity("Please enter a valid business email address.");
1932         return false;
1933       }
1934     }
1935  // If passes all checks
1936  input.setCustomValidity(""); // clear any previous error
1937   return true;
1938 }
1939
1940 $('#submitblogsubscription').click(function(){validateEmail(this); return false;})
1941
1942  let autoScroll = false;
1943  function updateSidebarSticky() {
1944      const sidebar = document.querySelector(
1945          'body.resourceDetailPage .section--resource-detail-content-1 .sidebar'
1946      );
1947      const formArea = document.querySelector(
1948          'body.resourceDetailPage .section--resource-detail-content-1 .sidebar .form-area'
1949      );
1950      const parentContainer = sidebar ? sidebar.parentElement : null;
1951
1952      if (!sidebar || !formArea || !parentContainer) return;
1953
1954      const scrollTop = window.scrollY || window.pageYOffset;
1955      const sidebarRect = sidebar.getBoundingClientRect();
1956      const formRect = formArea.getBoundingClientRect();
1957      const winHeight = window.innerHeight;
1958
1959      sidebar.classList.remove('is-sticky');
1960
1961      if (window.innerWidth < 1200) {
1962          sidebar.classList.remove('is-sticky');
1963          sidebar.classList.add('is-relative');
1964          sidebar.style.top = '';
1965          return;
1966      }
1967
1968      const fullyVisible = $(window).outerHeight() > $('.sidebar').outerHeight();
1969      const parentHeight = $('.section--resource-detail-content-1').outerHeight();
1970      const parentTop = $('.section--resource-detail-content-1').offset().top;
1971      const parentBottom = parentTop + parentHeight;
1972
1973      if (fullyVisible) {
1974          if (scrollTop > parentTop && scrollTop < parentBottom) {
1975                    autoScroll = true;
1976              sidebar.classList.remove('is-relative');
1977              sidebar.classList.add('is-sticky');
1978              sidebar.style.top = '0px';
1979          } else{
1980autoScroll=false;
1981          }
1982      }
1983  }
1984function elqGetCookie(name) {
1985    var cookies = document.cookie.split(';');
1986    for (var i = 0; i < cookies.length; i++) {
1987        var position = cookies[i].indexOf('=');
1988        if (position > 0 && position < cookies[i].length - 1) {
1989            var x = cookies[i].substr(0, position);
1990            var y = cookies[i].substr(position + 1);
1991            x = x.replace(/^\s+|\s+$/g, '');
1992            if (x == name) {
1993                return unescape(y);
1994            }
1995        }
1996    }
1997    return '';
1998}
1999function elqGetCookieSubValue(name, subKey) {
2000    var cookieValue = elqGetCookie(name);
2001    if (cookieValue == null || cookieValue == '')
2002        return '';
2003    var cookieSubValue = cookieValue.split('&');
2004    for (var i = 0; i < cookieSubValue.length; i++) {
2005        var pair = cookieSubValue[i].split('=');
2006        if (pair.length > 1) {
2007            if (pair[0] == subKey) {
2008                return pair[1];
2009            }
2010        }
2011    }
2012    return '';
2013}
2014function elqSetCustomerGUID() {
2015    var elqCustomerGuid = elqGetCookieSubValue('ELOQUA', 'GUID');
2016    var elqFormName= document.getElementById('elqFormName').value;
2017    if (elqCustomerGuid != null && elqCustomerGuid != '')
2018        document.forms[elqFormName].elements['elqCustomerGUID'].value = elqCustomerGuid;
2019    return;
2020}
2021window.onload = elqSetCustomerGUID;
2022

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.