1var pcDatalayer = {}; 2 3pcDatalayer.success = false; 4pcDatalayer.dataCollection = {}; 5 6pcDatalayer.cookieNames = { 7 "sessionId": "PHPSESSID", 8 "userId": "_mkto_trk" 9}; 10 11// "data-social" 12pcDatalayer.validSocialAttributes = [ 13 "Twitter", 14 "TwitterCareers", 15 "Facebook", 16 "FacebookCareers", 17 "LinkedIn", 18 "Instagram", 19 "InstagramCareers", 20 "YouTube", 21 "Email" 22] 23 24pcDatalayer.atsUrl = 'https://pc00.paycomonline.com/v4/ats/'; 25 26pcDatalayer.isVisible = function (el) { 27 return !!( el.offsetWidth || el.offsetHeight || el.getClientRects().length ); 28} 29 30pcDatalayer.isInViewport = function(el) { 31 var rect = el.getBoundingClientRect(); 32 33 if(!pcDatalayer.isVisible(el)){ 34 return false; 35 } 36 37 return ( 38 rect.bottom >= 0 && 39 rect.right >= 0 && 40 rect.top <= (window.innerHeight || document.documentElement.clientHeight) && 41 rect.left <= (window.innerWidth || document.documentElement.clientWidth) 42 ); 43} 44 45pcDatalayer.getRawCookie = function (cookieName) { 46 var cookie; 47 var cookieArray = document.cookie.split(";"); 48 var i; 49 cookieName = cookieName + "="; 50 51 for (i = 0; i < cookieArray.length; i++) { 52 cookie = cookieArray[i]; 53 cookie = cookie.trim(); 54 55 if (cookie.indexOf(cookieName) === 0) { 56 cookie = cookie.substring(cookieName.length, cookie.length); 57 return decodeURIComponent(cookie); 58 } 59 } 60 61 return null; 62}; 63 64pcDatalayer.mergeData = function (data, additionalData){ 65 var dataKey; 66 if(additionalData == null){ 67 return data; 68 } 69 70 for (dataKey in additionalData) { 71 // eslint-disable-next-line no-prototype-builtins 72 if (additionalData.hasOwnProperty(dataKey)) { 73 data[dataKey] = additionalData[dataKey]; 74 } 75 } 76 77 return data; 78} 79 80pcDatalayer.getCapiData = function ( additionalData ) { 81 var capiData = {}; 82 capiData = this.mergeData( capiData, additionalData.capiData ); 83 delete additionalData.capiData; 84 85 return capiData; 86} 87 88pcDatalayer.getEventCategory = function () { 89 if(jQuery.isEmptyObject(pcDatalayer.dataCollection)){ 90 return document.title; 91 } 92 else{ 93 return ("pageCategory" in pcDatalayer.dataCollection) ? pcDatalayer.dataCollection.pageCategory.toLowerCase()+' form' : 'Form'; 94 } 95} 96 97/** 98 * Push an object of data to the datalayer. 99 * @param data - an object of key value pairs 100 */ 101pcDatalayer.push = function(data) { 102 var finalData; 103 var dataKey; 104 105 window.dataLayer = window.dataLayer || []; 106 finalData = pcDatalayer.getGlobalInfo(); 107 108 // First, merge in dataLayer php variables if they exist on page. 109 if(pcDatalayer.dataCollection != null){ 110 for (dataKey in pcDatalayer.dataCollection) { 111 finalData[dataKey] = pcDatalayer.dataCollection[dataKey]; 112 } 113 } 114 115 // Second, merge in data specific to this event. 116 if(data != null){ 117 for (dataKey in data) { 118 finalData[dataKey] = data[dataKey]; 119 } 120 } 121 122 // eslint-disable-next-line no-undef 123 dataLayer.push(finalData); 124} 125 126pcDatalayer.getSessionId = function () { 127 var sessionId = pcDatalayer.getRawCookie(pcDatalayer.cookieNames.sessionId); 128 129 if(sessionId != null){ 130 return sessionId; 131 } 132 133 return null; 134} 135 136pcDatalayer.getUserId = function () { 137 var rawUserId = pcDatalayer.getRawCookie(pcDatalayer.cookieNames.userId); 138 var lookup = "paycom.com-"; 139 var userId; 140 141 if(rawUserId == null){ 142 return null; 143 } 144 145 userId = rawUserId.substr(rawUserId.lastIndexOf(lookup) + lookup.length); 146 147 if(userId != null){ 148 return userId; 149 } 150 151 return null; 152}; 153 154pcDatalayer.getGlobalInfo = function(){ 155 var sessionID = pcDatalayer.getSessionId(); 156 var userID = pcDatalayer.getUserId(); 157 return { 158 "sessionID": sessionID, 159 "userID": userID, 160 "fullURL": window.location.href, 161 "pageTitle": document.title 162 }; 163} 164 165pcDatalayer.pushUserInfoToDataLayer = function() { 166 var userID = pcDatalayer.getUserId(); 167 168 if(userID != null){ 169 pcDatalayer.push(); 170 return true; 171 } 172 173 return false; 174} 175 176pcDatalayer.trackAppDownloadLinks = function() { 177 $("#iosStoreLink, #googlePlayLink").on("click", function(e){ 178 var targetId = e.currentTarget.id; 179 var data = { 180 "eventCategory": document.title, 181 "eventAction": "downloadMobileApp", 182 "eventLabel": "Apple",
183 "event": "mobileAppDownload" 184 }; 185 186 if(targetId === "googlePlayLink"){ 187 data.eventLabel = "Android"; 188 } 189 190 pcDatalayer.push(data); 191 }); 192} 193 194pcDatalayer.getFormSubmitSuccessEventTime = function () { 195 var eventTime = ''; 196 197 dataLayer.forEach( function ( object ) { 198 if ( object['eventAction'] !== 'formSubmitSuccess' ) { 199 200 return; 201 } 202 203 eventTime = object['eventTime']; 204 return object['eventTime']; 205 } ) 206 207 return eventTime; 208} 209 210pcDatalayer.pushRequestMeetingEvent = function () { 211 pcDatalayer.push({ 212 "eventCategory": document.title, 213 "eventAction": "requestMeetingClick", 214 "event": "requestMeeting" 215 }); 216} 217 218pcDatalayer.trackVideoClicks = function() { 219 $(".vidyardContainer").on("click", function(){ 220 var data = { 221 "eventCategory": document.title, 222 "eventAction": "videoView", 223 "eventLabel": $(this).find("a").attr("data-uuid"), 224 "event": "videoEvent" 225 }; 226 pcDatalayer.push(data); 227 }); 228} 229 230pcDatalayer.pushVideoViewEvent = function () { 231 window.onVidyardAPI = function (vidyardEmbed) { 232 vidyardEmbed.api.progressEvents(function (result) { 233 pcDatalayer.push({ 234 "eventCategory": document.title, 235 "eventAction": "videoView", 236 "eventLabel": result.player.uuid, 237 "event": "videoEvent" 238 }); 239 }, [1]); 240 } 241} 242 243pcDatalayer.adobeTarget = function (additionalData) { 244 var data = { 245 "event": "adobeTarget", 246 } 247 248 data = pcDatalayer.mergeData(data, additionalData); 249 pcDatalayer.push(data); 250} 251 252pcDatalayer.subscribeFormSubmission = function (additionalData) { 253 var data = { 254 "event": "emailSubscribe", 255 "eventCategory": this.getEventCategory(), 256 "eventAction": "emailSubscribe", 257 "eventLabel": "" 258 } 259 260 data = pcDatalayer.mergeData(data, additionalData) 261 pcDatalayer.push(data); 262} 263 264pcDatalayer.demoFormImpression = function (additionalData) { 265 var data = { 266 "event": "formEvent", 267 "eventCategory": this.getEventCategory(), 268 "eventAction": "formImpression", 269 "formType": "demo" 270 } 271 272 data = pcDatalayer.mergeData(data, additionalData); 273 pcDatalayer.push(data); 274} 275 276pcDatalayer.demoFormFieldInteraction = function (additionalData) { 277 var data = { 278 "event": "formEvent", 279 "eventCategory": this.getEventCategory(), 280 "eventAction": "formFieldInteraction", 281 "formType": "demo", 282 "eventLabel": "" 283 } 284 285 data = pcDatalayer.mergeData(data, additionalData); 286 pcDatalayer.push(data) 287} 288 289pcDatalayer.demoFormSuccessfulSubmit = function (additionalData) { 290 var capiData = this.getCapiData(additionalData); 291 292 this.pushFormSuccessfulSubmit( 'demo', additionalData ); 293 294 if ( this.isClientInTheUsa() ) { 295 296 return; 297 } 298 299 if ( !this.isSocialMediaCookiesApproved() ) { 300 301 return; 302 } 303 304 this.ajaxToFacebook( 'sendFormConversion', { 305 'event_name': 'Demo Form Conversion', 306 'event_id' : this.getFormSubmitSuccessEventTime() + "_DemoConversion", 307 'form_data' : capiData 308 } ); 309} 310 311pcDatalayer.demoFormFailure = function (additionalData) { 312 var data = { 313 "event": "formEvent", 314 "eventAction": "formSubmitError", 315 "eventCategory": this.getEventCategory(), 316 "formType": "demo", 317 "errorMessage": "", 318 "formSubmitsWithError": 1 319 } 320 321 data = pcDatalayer.mergeData(data, additionalData); 322 pcDatalayer.push(data) 323} 324 325pcDatalayer.multiStepDemoFieldInteraction = function (additionalData) { 326 var data = { 327 "event": "form_interaction", 328 } 329 data = pcDatalayer.mergeData(data, additionalData); 330 pcDatalayer.push(data) 331} 332 333pcDatalayer.multiStepDemoStepStart = function (additionalData) { 334 var data = { 335 "event": "step_start", 336 } 337 data = pcDatalayer.mergeData(data, additionalData); 338 pcDatalayer.push(data) 339} 340 341pcDatalayer.multiStepDemoStepCompletion = function (additionalData) { 342 var data = { 343 "event": "step_completion", 344 } 345 data = pcDatalayer.mergeData(data, additionalData); 346 pcDatalayer.push(data) 347} 348 349pcDatalayer.contentFormImpression = function (additionalData) { 350 var data = { 351 "event": "formEvent", 352 "eventCategory": this.getEventCategory(), 353 "eventAction": "formImpression", 354 "formType": "content" 355 } 356 357 data = pcDatalayer.mergeData(data, additionalData); 358 pcDatalayer.push(data); 359} 360 361pcDatalayer.contentFormFieldInteraction = function (additionalData) { 362 var data = { 363 "event": "formEvent", 364 "eventCategory": this.getEventCategory(), 365 "eventAction": "formFieldInteraction", 366 "formType": "content", 367 "eventLabel": "" 368 } 369 370 data = pcDatalayer.mergeData(data, additionalData); 371 pcDatalayer.push(data) 372} 373 374pcDatalayer.contentFormSuccessfulSubmit = function (additionalData) { 375 var capiData = this.getCapiData(additionalData); 376 377 this.pushFormSuccessfulSubmit( 'content', additionalData ); 378 379 if ( this.isClientInTheUsa() ) { 380 381 return; 382 } 383
384 if ( !this.isSocialMediaCookiesApproved() ) { 385 386 return; 387 } 388 389 this.ajaxToFacebook( 'sendFormConversion', { 390 'event_name': 'Content Form Conversion', 391 'event_id' : this.getFormSubmitSuccessEventTime() + "_ContentConversion", 392 'form_data' : capiData 393 } ); 394} 395 396pcDatalayer.contentFormFailure = function (additionalData) { 397 var data = { 398 "event": "formEvent", 399 "eventAction": "formSubmitError", 400 "eventCategory": this.getEventCategory(), 401 "formType": "content", 402 "errorMessage": "", 403 "formSubmitsWithError": 1 404 } 405 406 data = pcDatalayer.mergeData(data, additionalData); 407 pcDatalayer.push(data) 408} 409 410pcDatalayer.calculatorFormFieldInteraction = function (additionalData) { 411 var data = { 412 "event": "calculator_form_interaction", 413 "eventCategory": "Calculator", 414 "eventAction": "formFieldInteraction", 415 "formType": "calculator", 416 "pageCategory" : "Calculator", 417 } 418 data = pcDatalayer.mergeData(data, additionalData); 419 pcDatalayer.push(data) 420} 421 422pcDatalayer.calculatorFormSuccessfulSubmit = function (additionalData) { 423 var data = { 424 "event": "calculator_submit_success", 425 "eventCategory": "Calculator", 426 "eventAction": "formFieldInteraction", 427 "formType": "calculator", 428 "pageCategory" : "Calculator", 429 } 430 data = pcDatalayer.mergeData(data, additionalData); 431 pcDatalayer.push(data) 432} 433 434pcDatalayer.webinarFormImpression = function (additionalData) { 435 var data = { 436 "event": "formEvent", 437 "eventCategory": this.getEventCategory(), 438 "eventAction": "formImpression", 439 "formType": "webinar" 440 } 441 442 data = pcDatalayer.mergeData(data, additionalData); 443 pcDatalayer.push(data); 444} 445 446pcDatalayer.webinarFormFieldInteraction = function (additionalData) { 447 var data = { 448 "event": "formEvent", 449 "eventCategory": this.getEventCategory(), 450 "eventAction": "formFieldInteraction", 451 "formType": "webinar", 452 "eventLabel": "" 453 } 454 455 data = pcDatalayer.mergeData(data, additionalData); 456 pcDatalayer.push(data) 457} 458 459pcDatalayer.webinarFormSuccessfulSubmit = function (additionalData) { 460 var capiData = this.getCapiData(additionalData); 461 462 this.pushFormSuccessfulSubmit( 'webinar', additionalData ); 463 464 if ( this.isClientInTheUsa() ) { 465 466 return; 467 } 468 469 if( !this.isSocialMediaCookiesApproved() ){ 470 471 return; 472 } 473 474 this.ajaxToFacebook( 'sendFormConversion', { 475 'event_name': 'Webinar Form Conversion', 476 'event_id' : this.getFormSubmitSuccessEventTime() + "_WebinarConversion", 477 'form_data' : capiData 478 } ); 479} 480 481pcDatalayer.webinarFormFailure = function (additionalData) { 482 var data = { 483 "event": "formEvent", 484 "eventAction": "formSubmitError", 485 "eventCategory": this.getEventCategory(), 486 "formType": "webinar", 487 "errorMessage": "", 488 "formSubmitsWithError": 1 489 } 490 491 data = pcDatalayer.mergeData(data, additionalData); 492 pcDatalayer.push(data) 493} 494 495pcDatalayer.contactFormImpression = function (additionalData) { 496 var data = { 497 "event": "formEvent", 498 "eventCategory": this.getEventCategory(), 499 "eventAction": "formImpression", 500 "formType": "contact" 501 } 502 503 data = pcDatalayer.mergeData(data, additionalData); 504 pcDatalayer.push(data); 505} 506 507pcDatalayer.contactFormFieldInteraction = function (additionalData) { 508 var data = { 509 "event": "formEvent", 510 "eventCategory": this.getEventCategory(), 511 "eventAction": "formFieldInteraction", 512 "formType": "contact", 513 "eventLabel": "" 514 } 515 516 data = pcDatalayer.mergeData(data, additionalData); 517 pcDatalayer.push(data) 518} 519 520pcDatalayer.contactFormSuccessfulSubmit = function (additionalData) { 521 var data = { 522 "event": "formEvent", 523 "eventCategory": this.getEventCategory(), 524 "eventAction": "formSubmitSuccess", 525 "formType": "contact", 526 "formSubmits": 1 527 }; 528 529 data = pcDatalayer.mergeData(data, additionalData); 530 pcDatalayer.push(data); 531} 532 533pcDatalayer.contactFormFailure = function (additionalData) { 534 var data = { 535 "event": "formEvent", 536 "eventAction": "formSubmitError", 537 "eventCategory": this.getEventCategory(), 538 "formType": "contact", 539 "errorMessage": "", 540 "formSubmitsWithError": 1 541 } 542 543 data = pcDatalayer.mergeData(data, additionalData); 544 pcDatalayer.push(data) 545} 546 547pcDatalayer.quizFormImpression = function(additionalData) { 548 var data = { 549 "event": "formEvent", 550 "eventCategory": this.getEventCategory(), 551 "eventAction": "formImpression", 552 "formType": "content" 553 } 554 555 data = pcDatalayer.mergeData(data, additionalData); 556 pcDatalayer.push(data); 557} 558 559pcDatalayer.quizFormInteraction = function(additionalData) { 560 var data = { 561 "event": "formEvent", 562 "eventCategory": this.getEventCategory(), 563 "eventAction": "formFieldInteraction", 564 "formType": "content" 565 } 566 567 data = pcDatalayer.mergeData(data, additionalData); 568 pcDatalayer.push(data); 569} 570 571pcDatalayer.quizFormSuccess = function(additionalData) { 572 var data = { 573 "event": "formEvent", 574 "eventCategory": this.getEventCategory(), 575 "eventAction": "formSubmitSuccess", 576 "formType": "content", 577 "formSubmits": 1 578 }; 579 580 data = pcDatalayer.mergeData(data, additionalData); 581 pcDatalayer.push(data); 582} 583 584pcDatalayer.quizFormError = function(additionalData) { 585 var data = { 586 "event": "formEvent", 587 "eventAction": "formSubmitError", 588 "eventCategory": this.getEventCategory(), 589 "formType": "content", 590 "errorMessage": "", 591 "formSubmitsWithError": 1 592 } 593 594 data = pcDatalayer.mergeData(data, additionalData); 595 pcDatalayer.push(data) 596} 597 598pcDatalayer.referralFormImpression = function ( additionalData ) { 599 this.pushFormImpression( 'referral', additionalData ); 600} 601 602pcDatalayer.referralFormFieldInteraction = function ( additionalData ) { 603 this.pushFormFieldInteraction( 'referral', additionalData ); 604} 605 606pcDatalayer.referralFormSuccessfulSubmit = function ( additionalData ) { 607 this.pushFormSuccessfulSubmit( 'referral', additionalData ); 608} 609 610pcDatalayer.referralFormFailure = function ( additionalData ) { 611 this.pushFormFailure( 'referral', additionalData ); 612} 613 614pcDatalayer.engagementFormImpression = function ( additionalData ) { 615 this.pushFormImpression( 'engagement', additionalData ); 616} 617 618pcDatalayer.engagementFormFieldInteraction = function ( additionalData ) { 619 this.pushFormFieldInteraction( 'engagement', additionalData ); 620} 621 622pcDatalayer.engagementFormSuccessfulSubmit = function ( additionalData ) { 623 this.pushFormSuccessfulSubmit( 'engagement', additionalData ); 624} 625 626pcDatalayer.engagementFormFailure = function ( additionalData ) { 627 this.pushFormFailure( 'engagement', additionalData ); 628} 629 630pcDatalayer.crrEmailFormSuccessfulSubmit = function ( additionalData ) { 631 this.pushFormSuccessfulSubmit( 'email', additionalData ); 632} 633 634pcDatalayer.crrEmailFormFailure = function ( additionalData ) { 635 this.pushFormFailure( 'email', additionalData ); 636} 637 638pcDatalayer.pushFormImpression = function ( formType, additionalData ) { 639 var data = { 640 "event" : "formEvent", 641 "eventCategory": this.getEventCategory(), 642 "eventAction" : "formImpression", 643 "formType" : formType 644 } 645 646 data = this.mergeData( data, additionalData ); 647 this.push( data ); 648} 649 650pcDatalayer.pushFormFieldInteraction = function ( formType, additionalData ) { 651 var data = { 652 "event" : "formEvent", 653 "eventCategory": this.getEventCategory(), 654 "eventAction" : "formFieldInteraction", 655 "formType" : formType 656 } 657 658 data = this.mergeData( data, additionalData ); 659 this.push( data ); 660} 661 662pcDatalayer.pushFormSuccessfulSubmit = function ( formType, additionalData ) { 663 var data = { 664 "event" : "formEvent", 665 "eventCategory": this.getEventCategory(), 666 "eventAction" : "formSubmitSuccess", 667 "formType" : formType, 668 "formSubmits" : 1, 669 'eventTime' : Date.now(), 670 }; 671 672 data = this.mergeData( data, additionalData ); 673 this.push( data ); 674} 675 676pcDatalayer.pushFormFailure = function ( formType, additionalData ) { 677 var data = { 678 "event" : "formEvent", 679 "eventAction" : "formSubmitError", 680 "eventCategory" : this.getEventCategory(), 681 "formType" : formType, 682 "errorMessage" : "", 683 "formSubmitsWithError": 1 684 } 685 686 data = this.mergeData( data, additionalData ); 687 this.push( data ) 688} 689 690pcDatalayer.podcastPlayButton = function (additionalData) { 691 var data = { 692 "event": "podcastEvent", 693 "eventAction": "podcastPlay", 694 "eventCategory": document.title, 695 "eventLabel": "" 696 } 697 698 data = pcDatalayer.mergeData(data, additionalData); 699 pcDatalayer.push(data) 700} 701 702pcDatalayer.podcastPauseButton = function (additionalData) { 703 var data = { 704 "event": "podcastEvent", 705 "eventAction": "podcastStop", 706 "eventCategory": document.title, 707 "eventLabel": "" 708 } 709 710 data = pcDatalayer.mergeData(data, additionalData); 711 pcDatalayer.push(data) 712} 713 714pcDatalayer.podcastPlayProgress = function (additionalData) { 715 var data = { 716 "event": "podcastEvent", 717 "eventAction": "podcastPlayProgress", 718 "eventCategory": document.title, 719 "eventLabel": "" 720 } 721 722 data = pcDatalayer.mergeData(data, additionalData); 723 pcDatalayer.push(data) 724} 725 726pcDatalayer.podcastFollowClick = function (additionalData) { 727 var data = { 728 "event": "clickEvent", 729 "eventAction": "podcastFollowClick", 730 "eventCategory": document.title, 731 "eventLabel": "" 732 } 733 734 data = pcDatalayer.mergeData(data, additionalData); 735 pcDatalayer.push(data) 736} 737 738pcDatalayer.podcastImpression = function(additionalData) { 739 var data = { 740 "event": "podcastEvent", 741 "eventAction": "podcastView", 742 "eventCategory": document.title, 743 "eventLabel": "" 744 } 745 746 data = pcDatalayer.mergeData(data, additionalData); 747 pcDatalayer.push(data) 748} 749 750pcDatalayer.modalImpression = function (additionalData) { 751 var data = { 752 "event": "modalEvent", 753 "eventCategory": document.title, 754 "eventAction": "modalImpression" 755 } 756 757 data = pcDatalayer.mergeData(data, additionalData); 758 pcDatalayer.push(data); 759} 760 761pcDatalayer.modalInteraction = function (additionalData) { 762 var data = { 763 "event": "modalEvent", 764 "eventCategory": document.title, 765 "eventAction": "modalInteraction", 766 "eventLabel": "" 767 } 768 769 data = pcDatalayer.mergeData(data, additionalData); 770 pcDatalayer.push(data); 771} 772 773pcDatalayer.trackSocialIconClicks = function () { 774 $( "a[data-social]" ).on( "click", function () { 775 var socialIconLabel = $( this ).attr( "data-social" ); 776 if ( pcDatalayer.validSocialAttributes.includes( socialIconLabel ) ) { 777 pcDatalayer.push( { 778 "eventCategory": document.title, 779 "eventAction" : "socialMediaClick", 780 "eventLabel" : socialIconLabel, 781 "event" : "clickEvent" 782 } ); 783 } 784 } ); 785} 786 787pcDatalayer.socialShareButtonClick = function () { 788 $("a[social-share]").on("click", function () { 789 var socialPlatform = $( this ).attr( "social-share" ); 790 if (pcDatalayer.validSocialAttributes.includes(socialPlatform)){ 791 pcDatalayer.push( { 792 "event" : "social_share", 793 "content_type" : pcDatalayer.dataCollection['contentType'], 794 "social_platform" : socialPlatform 795 }); 796 } 797 }); 798} 799 800pcDatalayer.zeroSeach = function () { 801 var $hubWrapper = $("#hub-wrapper"); 802 if($hubWrapper.find('.no-results').length !== 0){ 803 const queryString = window.location.search; 804 const searchTerm = new URLSearchParams(queryString).get('search'); 805 pcDatalayer.push( { 806 "event" : "zero_search_result", 807 "search_term" : searchTerm, 808 }); 809 } 810} 811 812pcDatalayer.contentCheckboxFilter = function () { 813 $("#taxonomy-filter-form").on("submit", function () { 814 var filterTypes = []; 815 var filterValues = []; 816 $("#taxonomy-filter-form input:checked").each(function () { 817 var value = $.trim($(this).siblings('label').text()); 818 if(!filterValues.includes(value)){ 819 filterValues.push(value) 820 } 821 var type = $.trim($(this).parent().parent().siblings('.filter-container-title').text()); 822 if(!filterTypes.includes(type)){ 823 filterTypes.push(type); 824 } 825 }); 826 pcDatalayer.push( { 827 "event" : "content_checkbox_filter", 828 "filter_types" : filterTypes, 829 "filter_values" : filterValues, 830 }); 831 }); 832} 833 834pcDatalayer.navigationClick = function () { 835 $("#gb-header #desktop-navigation a").on("click", function () { 836 var clickedUrl = $.trim($(this).attr('href')); 837 var clickedText = $.trim($(this).text()); 838 if(clickedUrl === '/demo/') return; 839 pcDatalayer.push( { 840 "event" : "navigation_click", 841 "nav_type" : "desktop header", 842 "click_url" : clickedUrl, 843 "click_text" : clickedText 844 }); 845 }); 846 $("#gb-header #mobile-navigation a").on("click", function () { 847 var clickedUrl = $.trim($(this).attr('href')); 848 var clickedText = $.trim($(this).text()); 849 if(clickedUrl === '/demo/') return; 850 pcDatalayer.push( { 851 "event" : "navigation_click", 852 "nav_type" : "mobile header", 853 "click_url" : clickedUrl, 854 "click_text" : clickedText 855 }); 856 }); 857 $("#gb-header .utility-nav a").on("click", function () { 858 var clickedUrl = $.trim($(this).attr('href')); 859 var clickedText = $.trim($(this).text()); 860 pcDatalayer.push( { 861 "event" : "navigation_click", 862 "nav_type" : "utility header", 863 "click_url" : clickedUrl, 864 "click_text" : clickedText 865 }); 866 }); 867 $("#gb-footer #footer-top-nav a:not(.fa-brands, #iosStoreLink, #googlePlayLink)").on("click", function () { 868 var clickedUrl = $.trim($(this).attr('href')); 869 var clickedText = $.trim($(this).text()); 870 pcDatalayer.push( { 871 "event" : "navigation_click", 872 "nav_type" : "footer", 873 "click_url" : clickedUrl, 874 "click_text" : clickedText 875 }); 876 }); 877 $("#gb-footer #utility-nav a").on("click", function () { 878 var clickedUrl = $.trim($(this).attr('href')); 879 var clickedText = $.trim($(this).text()); 880 pcDatalayer.push( { 881 "event" : "navigation_click", 882 "nav_type" : "utility footer", 883 "click_url" : clickedUrl, 884 "click_text" : clickedText 885 }); 886 }); 887} 888 889pcDatalayer.ctaLinkClick = function () { 890 $("#main-content a, .main-content a").on("click", function () { 891 var clickedUrl = $(this).attr('href'); 892 var clickedText = $.trim($(this).text()); 893 if(clickedUrl === '' || clickedUrl === '#') return; 894 pcDatalayer.push( { 895 "event" : "cta_click", 896 "click_url" : clickedUrl, 897 "click_text" : clickedText 898 }); 899 }); 900} 901 902pcDatalayer.contentDownloadClick = function() { 903 $("a[data-action='contentDownload']").on("click", function(){ 904 var data = { 905 "eventCategory": document.title, 906 "eventAction": $(this).attr("data-action"), 907 "eventLabel": $(this).attr("data-label"), 908 "event": "downloadEvent" 909 }; 910 pcDatalayer.push(data); 911 }); 912} 913 914pcDatalayer.trackApplyNowClicks = function () { 915 $( "a[href*='" + this.atsUrl + "']" ).on( "click", function () { 916 if($(this).text() == 'Search for jobs'){ 917 pcDatalayer.pushApplyNowEvent("searchForJobsClick", "navButton", "searchForJobs"); 918 } 919 else if($(this).attr('role') == 'button'){ 920 pcDatalayer.pushApplyNowEvent("applyNowClick", "applyNowButton", "applyNow"); 921 } 922 else{ 923 pcDatalayer.pushApplyNowEvent("applyNowClick", "applyNowLink", "applyNow"); 924 } 925 } ); 926} 927 928pcDatalayer.pushApplyNowEvent = function (eventAction, eventLabel, event) { 929 this.push( { 930 "eventCategory": document.title, 931 "eventAction" : eventAction, 932 "eventLabel" : eventLabel, 933 "event" : event 934 } ); 935} 936 937pcDatalayer.isClientInTheUsa = function () { 938 939 return this.getRawCookie( 'pcIsGeoFenced' ) !== 'false'; 940} 941
942pcDatalayer.isSocialMediaCookiesApproved = function () { 943 var oneTrustDataLayer; 944 945 $.each( dataLayer, function ( index, dataEvent ) { 946 if ( !dataEvent['OnetrustActiveGroups'] ) { 947 948 return; 949 } 950 951 oneTrustDataLayer = dataLayer[index]['OnetrustActiveGroups']; 952 } ) 953 954 if ( !oneTrustDataLayer ) { 955 956 return; 957 } 958 959 return oneTrustDataLayer.match( /,8,/ ) !== null; 960} 961 962pcDatalayer.ajaxToFacebook = function ( eventType, payload ) { 963 payload = typeof payload !== 'undefined' ? payload : false; 964 965 var jsonData = { 966 'action': eventType, 967 'data' : { 968 'event_source_url': window.location.href, 969 } 970 }; 971 972 if ( payload ) { 973 jsonData['data'] = this.mergeData( jsonData['data'], payload ); 974 } 975 976 var $fbcCookie = this.getRawCookie( '_fbc' ); 977 if ( $fbcCookie != null ) { 978 jsonData['data']['fbc'] = $fbcCookie; 979 } 980 var $fbpCookie = this.getRawCookie( '_fbp' ); 981 if ( $fbpCookie != null ) { 982 jsonData['data']['fbp'] = $fbpCookie; 983 } 984 985 $.ajax( { 986 type : 'POST', 987 url : '/includes/Facebook/', 988 data : jsonData, 989 dataType: 'json' 990 } ); 991} 992 993pcDatalayer.sendPageViewEvent = function () { 994 if ( this.isClientInTheUsa() ) { 995 996 return; 997 } 998 999 if ( !this.isSocialMediaCookiesApproved() ) { 1000 1001 return; 1002 } 1003 1004 this.ajaxToFacebook( 'sendPageView', { 1005 'event_id' : dataLayer[0]['gtm.start'] + "_PageView" 1006 } ); 1007} 1008 1009 1010document.addEventListener("DOMContentLoaded", function() { 1011 pcDatalayer.success = pcDatalayer.pushUserInfoToDataLayer(); 1012 1013 if(pcDatalayer.success === false){ 1014 setTimeout(function () { 1015 pcDatalayer.push(); 1016 }, 1500); 1017 } 1018 1019 pcDatalayer.trackAppDownloadLinks(); 1020 pcDatalayer.trackVideoClicks(); 1021 pcDatalayer.trackSocialIconClicks(); 1022 pcDatalayer.pushVideoViewEvent(); 1023 pcDatalayer.contentDownloadClick(); 1024 pcDatalayer.trackApplyNowClicks(); 1025 pcDatalayer.socialShareButtonClick(); 1026 pcDatalayer.zeroSeach(); 1027 pcDatalayer.contentCheckboxFilter(); 1028 pcDatalayer.navigationClick(); 1029 pcDatalayer.ctaLinkClick(); 1030});
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.