1// For license information, see `launch-EN05fb55e8cfed49ba8f881781f47d5522.js` within the same directory. 2window._satellite=window._satellite||{},window._satellite.container={buildInfo:{minified:!0,buildDate:"2026-10-02T02:01:26Z",turbineBuildDate:"2026-06-04T21:23:22Z",turbineVersion:"29.1.0"},environment:{id:"EN05fb55e8cfed49ba8f881781f47d5522",stage:"production"},dataElements:{mcmid:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){var e,n=_satellite.cookie.get("s_ecid");return n&&(e=n.replace(/MCMID(\||\%7C)/gi,"")),e}}},approvedCreditLimit:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.approvedCreditLimit"}},digitalDataEventKey:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"window.digitalData.eventKey"}},gender:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.gender"}},AnalyticsEvent_pageKey:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"eventKey"}},verizonAdvertiserIdArray:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,"");var n=["/personal-banking/credit-cards/low-rate-cards/westpac-lite-card","/personal-banking/credit-cards/low-rate-cards/low-rate","/personal-banking/credit-cards/reward/altitude-black","/personal-banking/credit-cards/reward/altitude-platinum","/personal-banking/credit-cards/reward/americanexpress-platinum","/personal-banking/credit-cards/reward/americanexpress-black","/personal-banking/credit-cards/reward/americanexpress-platinum-black","/personal-banking/credit-cards/low-fee/low-fee-card","/personal-banking/credit-cards/low-fee/low-fee-platinum-card","/personal-banking/bank-accounts/transaction","/personal-banking/bank-accounts/transaction/choice","/personal-banking/bank-accounts/transaction/choice/under-21","/personal-banking/bank-accounts/transaction/choice/tertiary-student","/personal-banking/bank-accounts/moving-to-australia","/personal-banking/bank-accounts/transaction/choice/international-student","/personal-banking/bank-accounts/transaction/choice/migrants","/personal-banking","/business-banking","/personal-banking/bank-accounts","/personal-banking/credit-cards","/personal-banking/home-loans/calculator/mortgage-repayment","/personal-banking/bank-accounts/term-deposit","/personal-banking/home-loans","/personal-banking/home-loans/calculator","/personal-banking/credit-cards/reward/altitude-black/affiliate","/personal-banking/personal-loans","/personal-banking/credit-cards/reward","/personal-banking/home-loans/calculator/mortgage-calculator","/personal-banking/bank-accounts/savings-accounts","/personal-banking/home-loans/variable-interest-rates","/personal-banking/bank-accounts/savings-accounts/esaver","/personal-banking/bank-accounts/savings-accounts/reward-saver","/business-banking/bank-accounts","/business-banking/bank-accounts/mybusiness-solutions","/personal-banking/mobile-wallets/paywear","/personal-banking/mobile-wallets/paywear/thank-you","/personal-banking/home-loans/all-interest-rates","/personal-banking/home-loans/fixed-rate-loans-interest-rates","/personal-banking/personal-loans/unsecured-personal-loan","/personal-banking/personal-loans/car-loan","/personal-banking/credit-cards/low-rate","/personal-banking/credit-cards/low-rate/affiliateexclusive","/personal-banking/credit-cards/low-fee/student","/business-banking/credit-cards","/personal-banking/home-loans/first-home","/personal-banking/home-loans/home-loan-package","/personal-banking/credit-cards/reward/altitude","/business-banking/merchant-services","/business-banking/business-loans","/personal-banking/credit-cards/comparison","/personal-banking/personal-loans/flexi-loan","/personal-banking/home-loans/variable","/personal-banking/home-loans/variable/mortgage-offset-accounts","/personal-banking/home-loans/investment-property","/personal-banking/credit-cards/low-fee","/personal-banking/moving-to-australia/migrant-banking","/personal-banking/home-loans/switch-loan","/business-banking/bank-accounts/one-account","/personal-banking/home-loans/fixed","/business-banking/savings-accounts/term-deposits","/business-banking/savings-accounts","/personal-banking/home-loans/variable/first-home-loan","/personal-banking/home-loans/fixed/fixed-home-loan","/personal-banking/home-loans/next-home","/personal-banking/credit-cards/low-fee/55-day-platinum","/personal-banking/home-loans/variable/investment-home-loan","/personal-banking/superannuation","/business-banking/business-loans/small-business-loans","/personal-banking/credit-cards/low-fee/55-day","/business-banking/bank-accounts/flexi-account","/business-banking/merchant-services/online-payments","/business-banking/business-loans/equipment-finance","/business-banking/savings-accounts/cash-reserve","/personal-banking/home-loans/fixed/fixed-rate-home-loan","/business-banking/bank-accounts/business-one-high-plan","/business-banking/credit-cards/rewards-cards","/business-banking/merchant-services/eftpos","/business-banking/merchant-services/mobile-payments","/business-banking/bank-accounts/debit-mastercard","/business-banking/bank-accounts/not-for-profit-community-cheque","/business-banking/credit-cards/rewards-cards/altitude-platinum","/business-banking/credit-cards/rewards-cards/altitude-gold","/business-banking/credit-cards/rewards-cards/businesschoice-rewards","/personal-banking/investments/deposits/term-deposit","/personal-banking/home-loans/variable/first-option-investment-homeloan","/personal-banking/home-loans/first-home/benefits-for-first-home-buyers","/business-banking/business-loans/commercial-loans","/personal-banking/home-loans/wonder","/personal-banking/bank-accounts/tools-calculators-rates/pbba-all-accounts-rates","/personal-banking/bank-accounts/transaction/mathspace","/business-banking/savings-accounts/cash-reserve-bonus-interest","/business-banking/credit-cards/low-rate-card","/business-banking/business-loans/agrifinance","/business-banking/merchant-services/processed-payments","/business-banking/savings-accounts/not-for-profit","/business-banking/savings-accounts/agri-farm-management-deposit","/business-banking/bank-accounts/agri-farm-account","/business-banking/merchant-services/eftpos/westpac-payments","/personal-banking/bank-accounts/savings-accounts/bump","/business-banking/merchant-services/mobile-payments/genie","/business-banking/online-banking/your-business-banking","/business-banking/online-banking","/business-banking/business-loans/small-business-loans/business-overdraft","/business-banking/business-loans/small-business-loans/business-loan","/business-banking/business-loans/small-business-loans/insurance-premium-finance","/business-banking/merchant-services/eftpos/countertop-wireless-terminal","/business-banking/merchant-services/eftpos/mobile","/business-banking/bank-accounts/compare-all","/business-banking/credit-cards/compare-business-cards","/business-banking/bank-accounts/one-account-offer","/business-banking/merchant-services/compare-eftpos-solutions","/business-banking/merchant-services/mobile-payments/meet-genie","/personal-banking/credit-cards/low-rate-cards","/personal-banking/home-loans/first-time-investor","/international-travel","/international-travel/travel-money-card","/international-travel/access-money-overseas","/international-travel/access-money-overseas/atms","/personal-banking/bank-accounts/savings-accounts/life","/business-banking/business-loans/small-business-loans/unsecured-business-overdraft","/personal-banking/bank-accounts/transaction/choice/wallet-dance","/personal-banking/online-banking/making-the-most/estatements","/personal-banking/bank-accounts/transaction-history","/personal-banking/bank-accounts/card-hold","/
2personal-banking/bank-accounts/transaction/debit-mastercard","/personal-banking/credit-cards/smartplan","/personal-banking/credit-cards/low-rate-cards/westpac-lite-card/affiliate","/personal-banking/credit-cards/reward/altitude-platinum/affiliate","/personal-banking/credit-cards/reward/altitude-black/qantas","/personal-banking/bank-accounts/transaction/debit-mastercard/rollmore","/personal-banking/credit-cards/manage/getting-started/activating","/personal-banking/credit-cards/balance-transfer-cards","/personal-banking/home-loans/our-home-loans","/personal-banking/home-loans/first-home/how-much-can-i-borrow","/personal-banking/home-loans/first-home/how-much-i-need-upfront","/personal-banking/online-banking/alexa","/security","/about-westpac/careers","/personal-banking/bank-accounts/under-21s-and-students","/personal-banking/home-loans/first-home/owner-occupied","/help","/personal-banking/credit-cards/low-fee/55-day-platinum/affiliate","/personal-banking/credit-cards/americanexpress/altitude-black/affiliate","/personal-banking/credit-cards/americanexpress/altitude-platinum/affiliate","/security/fraud-and-scams/latest-scams","/security/how-we-protect-you","/security/how-to-protect-yourself","/security/fraud-and-scams","/security/how-to-protect-yourself/online-banking-security","/security/additional-support","/personal-banking/home-loans/variable-rate-home-loans","/business-banking/merchant-services/eftpos/presto-smart","/personal-banking/bank-accounts/savings-accounts/life/savingforahome","/personal-banking/credit-cards/americanexpress/altitude-platinum/affiliate-exclusive","/personal-banking/services/tax-time-lp","/personal-banking/bank-accounts/transaction/choice/migrants/simplified-chinese","/personal-banking/home-loans/velocity","/about-westpac/sustainability/initiatives-for-you/customers-financial-hardship","/international-travel/international-transfers/litepay","/personal-banking/bank-accounts/savings-accounts/esaver/chinese","/personal-banking/mobile-wallets/google-pay","/business-banking/bank-accounts/one-account/media","/about-westpac/careers/veterans","/personal-banking/home-loans/calculator/home-saver","/personal-banking/personal-loans/xl-dm/unsecured-personal-loan","/personal-banking/credit-cards/low-rate/cashback-cp","/international-travel/travel-money-card/black-friday-sales","/business-banking/business-loans/equipment-finance/car-finance","/business-banking/business-loans/equipment-finance/equipment-finance","/security/westpac-protect-centre","/security/how-we-protect-you/westpac-protect","/business-banking/business-loans/equipment-finance-lp","/business-banking/online-banking/your-business-banking/biz-invoice","/personal-banking/bank-accounts/savings-accounts/savings-goals","/personal-banking/bank-accounts/transaction/debit-mastercard/win","/help/lifemoments/separation-divorce/help-with-your-finances","/help/lifemoments/separation-divorce/separation-checklist","/help/lifemoments/separation-divorce","/about-westpac/careers/stem-phd-program","/personal-banking/online-banking/making-the-most/priority-you","/personal-banking/online-banking/popular-features/priority-you-offers","/business-banking/biz-invoice","/business-banking/merchant-services/presto-payments","/business-banking/merchant-services/presto-payments-lp","/personal-banking/bank-accounts/life-choice","/security/westpac-protect-centre","/security/how-to-report","/business-banking/businesshub","/personal-banking/home-loans/manage-home-loan","/personal-banking/home-loans/investing-in-property","/personal-banking/credit-cards/velocity","/personal-banking/credit-cards/manage/rewards/economy-x","/personal-banking/credit-cards/manage/rewards/velocity-faqs","/help/community/million-meals","/business-banking/bank-accounts/one-account/media-offer","/help/community/city2surf","/personal-banking/credit-cards/reward/altitude-platinum/bonusgiftcard","/personal-banking/home-loans/calculator/home-equity-calculator/#/equity-calculator","/personal-banking/online-banking/making-the-most/new-payments-platform","/business-banking/industries/professional-business-services","/help/lifemoments/setting-up-life/getting-married","/help/lifemoments/setting-up-life/getting-married/planning-a-wedding","/help/lifemoments/setting-up-life/getting-married/married-life","/help/lifemoments/setting-up-life/getting-married/engagement-costs","/help/lifemoments/setting-up-life/getting-married/saving-for-a-honeymoon","/personal-banking/home-loans/refinance","/personal-banking/online-banking/making-the-most/contact-us-in-app","/personal-banking/online-banking/ways-to-bank/mobile-banking","/personal-banking/credit-cards/reward/altitude-black/altitude-rewards","/personal-banking/credit-cards/reward/altitude-platinum/altitude-rewards","/brokers/helping","/help/lifemoments/youth/wendy","/about-westpac/sustainability/initiatives-for-you/stem-commitment","/business-banking/small-business-relief","/help/disaster-relief/coronavirus/home-loans","/brokers/home/covid-19-support","/help/disaster-relief/coronavirus/business","/personal-banking/online-banking/getting-started","/personal-banking/online-banking/making-the-most/update-details","/about-westpac/sustainability/initiatives-for-you/customers-financial-hardship/apply-for-assistance","/help/disaster-relief/coronavirus/financially-impacted","/personal-banking/home-loans/split-home-loan","/brokers/covid-19-support","/personal-banking/online-banking/making-the-most/rewards-and-offers/offers","/personal-banking/home-loans/manage-home-loan/repayment-options-to-manage-cashflow","/help/disaster-relief/coronavirus/business/unsecured-business-loans","/personal-banking/home-loans/investing-in-property/managing-and-renewing-a-tenancy","/personal-banking/online-banking/making-the-most/manage-term-deposit","/personal-banking/bank-accounts/spend-save-ntb","/personal-banking/bank-accounts/spend-save-etb","/personal-banking/bank-accounts/spend-save-etb1","/personal-banking/bank-accounts/spend-save-nta","/personal-banking/bank-accounts/spend-save-reward","/business-banking/biz-invoice/features-benefits/bpay","/business-banking/business-loans/sme-unsecured-lending-covid-19-offer","/business-banking/industries/professional-business-services/#feesynergy","/business-banking/industries/professional-business-services/#reports","/personal-banking/investments/share-trading","/personal-banking/superannuation/self-managed-superannuation-accounts","/personal-banking/investments/build-your-own-portfolio","/personal-banking/investments/ready-made-portfolio","/personal-banking/investments","/personal-banking/superannuation/bt-super-invest","/business-banking/superannuation","/business-banking/superannuation/bt-super","/business-banking/superannuation/super-profile","/business-banking/superannuation/bt-super-concierge","/personal-banking/insurance","/personal-banking/insurance/home-insurance/home-and-contents-insurance","/personal-banking/insurance/home-insurance/building-insurance","/personal-banking/insurance/home-insurance/contents-insurance","/personal-banking/insurance/home-insurance/landlord-insurance","/personal-banking/insurance/home-insurance/landlord-insurance/building","/personal-banking/insurance/home-insurance/landlord-insurance/contents","/personal-banking/insurance/home-insurance/renters-insurance","/personal-banking/insurance/car-insurance","/personal-banking/insurance/travel-insurance","/personal-banking/insurance/home-insurance","/personal-banking/insurance/rahic","/personal-banking/insurance/home-insurance/make-a-claim","/personal-banking/investments/share-trading/start-online-investing","/personal-banking/credit-cards/interest-free/flex-card","/personal-banking/credit-cards/low-rate-cards/low-rate/cashback-summary","/personal-banking/credit-cards/low-rate-cards/low-rate/summary","/personal-banking/credit-cards/low-rate-cards/westpac-lite-card/summary","/personal-banking/credit-cards/low-fee/summary","/personal-banking/credit-cards/reward/altitude-platinum/summary","/personal-banking/credit-cards/reward/altitude-black/summary","/personal-banking/credit-cards/reward/altitude-qantas-platinum/summary","/personal-banking/credit-cards/reward/altitude-qantas-black/summary","/personal-banking/credit-cards/reward/altitude-velocity-platinum/summary","/personal-banking/credit-cards/reward/altitude-velocity-black/summary","/personal-banking/credit-cards/reward/altitude-platinum/package-summary","/business-banking/merchants-and-payments/eftpos/eftpos-now","/business-banking/merchants-and-payments/eftpos/eftpos-fees","/business-banking/merchants-and-payments/flat-rate-pricing","/home-loans/calculator/mortgage-repayment","/home-loans/calculator/mortgage-calculator","/home-loans/all-interest-rates","/home-loans/calculator/home-equity-calculator/#/equity-calculator"],t=[];return["/personal-banking/credit-cards/low-rate-cards/westpac-lite-card","/personal-banking/credit-cards/low-rate-cards/low-rate","/personal-banking/credit-cards/reward/altitude-black","/personal-banking/credit-cards/reward/altitude-platinum","/personal-banking/credit-cards/reward/americanexpress-platinum","/personal-banking/credit-cards/reward/americanexpress-black","/personal-banking/credit-cards/reward/americanexpress-platinum-black","/personal-banking/credit-cards/low-fee/low-fee-card","/personal-banking/credit-cards/low-fee/low-fee-platinum-card","/personal-banking/bank-accounts/transaction","/personal-banking/bank-accounts/transaction/choice","/personal-banking/bank-accounts/transaction/choice/under-21","/personal-banking/bank-accounts/transaction/choice/tertiary-student","/personal-banking/bank-accounts/moving-to-australia","/personal-banking/bank-accounts/transaction/choice/international-student","/personal-banking/bank-accounts/transaction/choice/migrants","/personal-banking/credit-cards/interest-free/flex-card","/personal-banking/credit-cards/low-rate-cards/low-rate/cashback-summary","/personal-banking/credit-cards/low-rate-cards/low-rate/summary","/personal-banking/credit-cards/low-rate-cards/westpac-lite-card/summary","/personal-banking/credit-cards/low-fee/summary","/personal-banking/credit-cards/reward/altitude-platinum/summary","/personal-banking/credit-cards/reward/altitude-black/summary","/personal-banking/credit-cards/reward/altitude-qantas-platinum/summary","/personal-banking/credit-cards/reward/altitude-qantas-black/summary","/personal-banking/credit-cards/reward/altitude-velocity-platinum/summary","/personal-banking/credit-cards/reward/altitude-velocity-black/summary","/personal-banking/credit-cards/reward/altitude-platinum/package-summary"].indexOf(e)>=0&&t.push({projectId:"10000",pixelId:"10102233"}),n.indexOf(e)>=0&&t.push({projectId:"10000",pixelId:"10109245"}),t}}},Site_SubSubSubSection:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.siteSubSubSubSection"}},Page_Type:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"pageType"}},AnalyticsTracking_Type:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"analyticsTrackType"}},age:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.age"}},SearchResult_pageNumber:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"pageNumber"}},tntsiteSubSubSubSection:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){var e=pageDetails.siteSubSubSubSection;return e||(e=""),e}}},targetProfile_isCustomer:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return getTrackingStatus=function(){var e,n;return window._satellite&&(n=window._satellite.cookie.get("s_wbc-ti")),n&&(e="true"),e},getTrackingStatus()}}},businessType:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.businessType"}},journeyType:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.journeyType"}},pageName:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return window.pageDetails.pageName}}},siteExperience:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"siteExperience"}},newFormName:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"newFormName"}},Site_Section:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"siteSection"}},liveChat_accountID:{modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.siteEnv"}},facebookEventNameCallBack:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return window.pageDetails?pageDetails.pageAction&&pageDetails.productID&&pageDetails.productID[0]?pageDetails.productID[0].ProductName+":"+pageDetails.pageAction:pageDetails.pageAction&&pageDetails.newFormName?pageDetails.newFormName+":"+pageDetails.pageAction:"":""}}},Product_ID:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"productID"}},DigitalData_Page_Type:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"window.digitalData.pageType"}},finalFlString:{modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return _satellite.getVar("flStringVar")}}},sessionPageViewCount:{defaultValue:"",modulePath:"core/src/lib/dataElements/visitorBehavior.js",
2settings:{attribute:"sessionPageViewCount"}},pageCategory:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){var e={TP_WBC_ActivCard:["/personal-banking/credit-cards/manage/getting-started","/personal-banking/credit-cards/manage/getting-started/activating/"],TP_WBC_BankAcc:["/personal-banking/bank-accounts"],TP_WBC_BusBankAcc:["/business-banking/bank-accounts","/business-banking/bank-accounts/one-account","/business-banking/international-trade","/business-banking/solutions/starting-a-business/","/business-banking/solutions/starting-a-business/managing-the-money/i-want-to-receive-payments/"],TP_WBC_BusCards:["/business-banking/credit-cards/rewards-cards/altitude-platinum"],TP_WBC_BusCreditCard:["/business-banking/credit-cards"],TP_WBC_BusEquip:["/business-banking/business-loans/equipment-finance","/business-banking/business-loans/equipment-finance/car-finance"],TP_WBC_Business:["/business-banking/mybusiness-assist-lp/","/business-banking/online-banking/","/business-banking/online-banking/setting-up/","/business-banking/services/foreign-exchange-rates/","/business-banking/solutions/starting-a-business/managing-the-money/receive-payments-from-overseas/"],TP_WBC_BusLoans:["/business-banking/business-loans","/business-banking/business-loans/small-business-loans","/business-banking/business-loans/small-business-loans/business-loan"],TP_WBC_BusMerchant:["/business-banking/merchant-services","/business-banking/merchant-services/eftpos","/business-banking/merchant-services/online-payments","/business-banking/merchant-services/eftpos/countertop-wireless-terminal","/business-banking/merchant-services/fees-and-charges/"],TP_WBC_BusMobPay:["/business-banking/merchant-services/eftpos/mobile","/business-banking/merchant-services/mobile-payments/mobile-payway","/business-banking/merchant-services/mobile-payments/eftpos-1/"],TP_WBC_BusSavingsAcc:["/business-banking/savings-accounts","/business-banking/savings-accounts/term-deposits"],TP_WBC_Cards:["/personal-banking/credit-cards/balance-transfer","/personal-banking/credit-cards/finder","/personal-banking/credit-cards/understanding-credit-cards","/personal-banking/credit-cards/manage/fraud-disputes-lost-stolen-cards/fraudulent-transaction","/personal-banking/credit-cards/comparison","/personal-banking/credit-cards/manage/","/personal-banking/credit-cards/manage/fraud-disputes-lost-stolen-cards/","/personal-banking/credit-cards/manage/rewards/","/personal-banking/credit-cards/manage/using/"],TP_WBC_CardTravIns:["/personal-banking/credit-cards/manage/travelling-overseas-insurance"],TP_WBC_CarLoan:["/personal-banking/personal-loans/car-loan","/personal-banking/personal-loans/car-loan/apply/"],TP_WBC_ChoiceAcc:["/personal-banking/bank-accounts","/personal-banking/bank-accounts/transaction","/personal-banking/bank-accounts/transaction/debit-mastercard","/personal-banking/bank-accounts/transaction/compare","/personal-banking/bank-accounts/all/"],TP_WBC_CreditCard:["/personal-banking/credit-cards"],TP_WBC_ESaver:["/personal-banking/bank-accounts/savings-accounts/esaver"],TP_WBC_Flexi:["/personal-banking/personal-loans/flexi-loan"],TP_WBC_HLApply:["/personal-banking/home-loans/how-to-apply
2/","/personal-banking/home-loans/manage-my-home-loan/solicitors-information/","/personal-banking/home-loans/solutions/key-steps/"],TP_WBC_HLCalc:["/personal-banking/home-loans/calculator"],TP_WBC_HLFirst:["/personal-banking/home-loans/first-home","/personal-banking/home-loans/read-up-on/first-home-buyer-grant/","/personal-banking/home-loans/solutions/buying-my-first-home/","/personal-banking/home-loans/solutions/buying-my-first-home/benefits-for-first-home-buyers/","/personal-banking/home-loans/solutions/buying-my-first-home/how-much-can-i-borrow/","/personal-banking/home-loans/solutions/buying-my-first-home/how-much-i-need-upfront/"],TP_WBC_HLInvest:["/personal-banking/home-loans/investment-property","/personal-banking/home-loans/variable/investment-home-loan","/personal-banking/home-loans/read-up-on/htw/","/personal-banking/home-loans/solutions/investment-property/"],TP_WBC_HLNext:["/personal-banking/home-loans/next-home","/personal-banking/home-loans/solutions/buying-my-next-home/","/personal-banking/home-loans/solutions/buying-my-next-home/bridging-loan/"],TP_WBC_HLoan:["/personal-banking/home-loans","/personal-banking/home-loans/our-home-loans","/personal-banking/home-loans/home-loan-package","/personal-banking/home-loans/variable","/personal-banking/home-loans/variable/mortgage-offset-accounts","/personal-banking/home-loans/fixed/fixed-home-loan","/personal-banking/home-loans/line-of-credit-loan","/personal-banking/home-loans/special-purpose-home-loans/low-doc-loans","/personal-banking/home-loans/fixed/fixed-rate-home-loan","/personal-banking/home-loans/comparison","/personal-banking/home-loans/home-loans-apply/","/personal-banking/home-loans/manage-home-loan/","/personal-banking/home-loans/wonder/"],TP_WBC_HLRates:["/personal-banking/home-loans/manage-home-loan/latest-interest-rate-changes/","/home-loans/manage-home-loan/latest-interest-rate-changes/","/personal-banking/home-loans/package-rates/"],TP_WBC_HLRefi:["/personal-banking/home-loans/solutions/refinance-my-loan/"],TP_WBC_HLSwitch:["/personal-banking/home-loans/switch-loan"],TP_WBC_Insur:["/personal-banking/insurance","/personal-banking/insurance/all/"],TP_WBC_InsurCar:["/personal-banking/insurance/car","/personal-banking/insurance/car/quote/"],TP_WBC_InsurCard:["/personal-banking/insurance/credit/credit-card-repayment-insurance"],TP_WBC_InsurFlexi:["/personal-banking/insurance/credit/flexi-loan-repayment-protection/"],TP_WBC_InsurHome:["/personal-banking/insurance/home-contents","/personal-banking/insurance/home-contents/combined","/personal-banking/insurance/landlord","/personal-banking/insurance/home-contents/combined/make-claim/","/personal-banking/insurance/home-contents/quote/"],TP_WBC_InsurLife:["/personal-banking/insurance/life","/personal-banking/insurance/income/income-protection","/personal-banking/insurance/income","/personal-banking/insurance/life/term-life"],TP_WBC_InsurLLord:["/personal-banking/insurance/landlord/","/personal-banking/insurance/landlord/building/","/personal-banking/insurance/landlord/combined/","/personal-banking/insurance/landlord/contents/","/personal-banking/insurance/landlord/quote/"],TP_WBC_InsurLoan:["/personal-banking/insurance/credit/loan-insurance"],TP_WBC_InsurTrav:["/personal-banking/insurance/travel","/personal-banking/insurance/travel/quote/"],TP_WBC_Kids:["/personal-banking/bank-accounts/under-21s-and-students/reward-saver-under-12"],TP_WBC_Lfee:["/personal-banking/credit-cards/low-fee/55-day"],TP_WBC_LFeeCard:["/personal-banking/credit-cards/low-fee"],TP_WBC_LfeeCardPlat:["/personal-banking/credit-cards/low-fee/55-day-platinum"],TP_WBC_LRCard:["/personal-banking/credit-cards/low-rate"],TP_WBC_Migrant:["/personal-banking/bank-accounts/moving-to-australia","/personal-banking/bank-accounts/moving-to-australia/banking","/personal-banking/bank-accounts/moving-to-australia/transaction-migrants"],TP_WBC_MyBusSol:["/business-banking/bank-accounts/mybusiness-solutions"],TP_WBC_ODraft:["/personal-banking/personal-loans/overdrafts","/personal-banking/personal-loans/overdrafts/temporary-overdrafts","/personal-banking/personal-loans/overdrafts/personal-overdrafts"],TP_WBC_PLoan:["/personal-banking/pers
2onal-loans","/personal-loans/compare/","/personal-banking/personal-loans/interest-rates/","/personal-banking/personal-loans/read-up-on/refinancing-an-existing-loan/","/personal-banking/personal-loans/repayment-calculator/","/personal-loans/repayment-calculator/","/personal-banking/personal-loans/tools-calculators-rates/"],TP_WBC_RewCard:["/personal-banking/credit-cards/reward","/personal-banking/credit-cards/reward/altitude"],TP_WBC_RewCardBlack:["/personal-banking/credit-cards/reward/altitude-black"],TP_WBC_RewCardPlat:["/personal-banking/credit-cards/reward/altitude-platinum"],TP_WBC_RSaver:["/personal-banking/bank-accounts/savings-accounts/reward-saver"],TP_WBC_Savings:["/personal-banking/bank-accounts/savings-accounts","/personal-banking/bank-accounts/savings-accounts/rates","/personal-banking/bank-accounts/transaction/compare","/personal-banking/bank-accounts/tools-calculators-rates/","/personal-banking/bank-accounts/tools-calculators-rates/everyday-account-rates/","/personal-banking/bank-accounts/tools-calculators-rates/pbba-all-accounts-rates/"],TP_WBC_StudCard:["/personal-banking/credit-cards/low-fee/student"],TP_WBC_Student:["/personal-banking/bank-accounts/under-21s-and-students","/personal-banking/bank-accounts/under-21s-and-students/reward-saver-12-to-21","/personal-banking/bank-accounts/under-21s-and-students/choice-under-21","/personal-banking/bank-accounts/under-21s-and-students/choice-tertiary-student"],TP_WBC_Super:["/personal-banking/superannuation","/personal-banking/superannuation/bt-super-for-life","/personal-banking/superannuation/self-managed-superannuation-accounts","/personal-banking/superannuation/lost-super/","/personal-banking/superannuation/all/","/personal-banking/superannuation/lost-super/","/personal-banking/superannuation/super-calculator/"],TP_WBC_TDeposit:["/personal-banking/bank-accounts/term-deposit/#s3","/personal-banking/bank-accounts/term-deposit","/personal-banking/bank-accounts/term-deposit/rates","/personal-banking/bank-accounts/term-deposit/best-rates/"],TP_WBC_Travel:["/personal-banking/credit-cards/manage/travelling-overseas-insurance/travel-insurance"],TP_WBC_UPLoan:["/personal-banking/personal-loans/unsecured-personal-loan","/personal-banking/personal-loans/unsecured-personal-loan/apply/"],TP_WBC_WestpacLive:["/personal-banking/online-banking","/personal-banking/westpac-online","/personal-banking/online-banking/features","/business-banking/online-banking"],TP_WBC_Existing:["/personal-banking/online-banking/getting-started","/personal-banking/credit-cards/manage/getting-started/activating","/faq"],TP_WBC_HLCalc:["/personal-banking/home-loans/calculator/mortgage-repayment","/home-loans/calculator/mortgage-repayment"],TP_WBC_TravelCard:["/travel-centre/travel-money-card"],TP_WBC_Travel:["/travel-centre"],TP_WBC_InsurTrav:["/travel-centre/travel-insurance"],TP_WBC_Business:["/business-banking/solutions/starting-a-business"],TP_WBC_MigrantGen:["/personal-banking/bank-accounts/moving-to-australia/banking"],TP_WBC_HLRefi:["/personal-banking/home-loans/solutions/refinance-my-loan"]},n=window.location.pathname.toLowerCase().replace(/\/$/,"");for(var t in n=(n=n.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""),e)if(e.hasOwnProperty(t))for(var a=e[t],r=a.length,s=0;s<r;s++)if(-1!==n.indexOf(a[s],n.length-a[s].length))return t;return""}}},Site_Brand:{ 3defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"siteBrand"}},quantcastEventName:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return window.pageDetails&&pageDetails.pageAction&&pageDetails.productID&&pageDetails.productID[0]?pageDetails.productID[0].ProductName+" "+pageDetails.pageAction:""}}},productID:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.productID"}},appReferenceId:{defaultValue:"",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return pageDetails&&pageDetails.appReference&&pageDetails.appReference[0]&&pageDetails.appReference[0].Id||""}}},impactClickId:{defaultValue:"",storageDuration:"visitor",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return _satellite.getVar("impactClickIdTemp")}}},facebookEventName:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){function e(e){return e.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g,(function(e,n){return 0==+e?"":0==n?e.toLowerCase():e.toUpperCase()}))}for(var n="",t=window.location.pathname.split("/"),a=0;a<t.length;a++)if(""!=t[a]){var r=e(t[a]).replace(/-/gi,"");n=""==n?r:n+":"+r}return(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=(n=n.replace("businessBanking","b")).replace("personalBanking","p")).replace("personal","p")).replace("creditCards","cc")).replace("homeLoans","hl")).replace("BusinessLoans","bl")).replace("businessLoans","bl")).replace("advice:","adv:")).replace("brand:","br:")).replace("business:","bus:")).replace("careers:","car:")).replace("corporate:","cor:")).replace("deposits:","dep:")).replace("digitalAdoption:","dig:")).replace("foreignExchange:","fex:")).replace("insurance:","ins:")).replace("investments:","inv:")).replace("media:","med:")).replace("migrant:","mig:")).replace("millenial:","mil:")).replace("privateWealth:","pw:")).replace("publicNotices:","pub:")).replace("savings:","sav:")).replace("savingsAccounts:","sav:")).replace("bankAccounts:","acc:")).replace("service:","ser:")).replace("sponsorship:","spo:")).replace("transactions:","tra:")).replace("transaction:","tra:")).replace("transactionAccounts:","tra:")).replace("women:","wom:")).replace("superannuation:","sup:")).replace("panorama:","pan:")).replace("generalInsurance:","gen:")).replace("lifemoments:","life:")).replace("settingUpLife:","setLife:")).replace("understandingFinancialHabits","undFinHab")).replace("aboutWestpac:","about:")).replace("customersFinancialHardship:","finHardship:")).replace("initiativesForYou:","initiatives:")).replace("sustainability:","sus:")).replace("applyForAssistance","applyAssistance")).replace("financiallyImpacted","financiallyImpact")).replace("repaymentOptionsToManageCashflow","repayOptionsToManCashflow")).replace("sharingFinances:","finances:")).replace("sharingFinanceQuiz","quiz")).replace("managingAndRenewingATenancy","manageRenewTenancy")).replace("gettingBackToBasics:","getToBasics:")).replace("planningEmergencyFund","EmergencyFund")).replace("tipsForBuyingAnInvestmentProperty","tipsForBuying")).replace("selfManagedSuperannuationAccounts:","SMSupAcc:")).replace("waysToBank:","ways:")).replace("mobileBanking:","mobile:")).replace("rewardsAndOffers:","reward:")).replace("identifyUnknownTransaction","identUnknownTrans")).replace("www:","")).replace("mentalHealthTipsForBusinessOwners","mHealthTipsBus")).replace("lessonsForBusinessResilience","lessonsBusRes")).replace("professionalBusinessServices:","profBusServices:")).replace("investmentPropertyDepreciation","investPropDeprec")).replace("6ThingsToLookForInvestment","6ThingsForInvest")).replace("protectYourselfAndYourBusiness:","protectSelfBusn:")).replace("spendInsightsAndBudgetingTools","spendInsightsAndBudgetTool")).replace("insightsHub:","insHub:")).replace("shopback","shop")).replace("variable.Html","variable")).replace("basicVariableHomeLoan","basicHomeLoan")).replace("eftposAirMobilePaymentsApp:","eftposAirMobile:")).replace("tapToPayOnIphone","tapToPay")).replace("homeAndContentsInsuranceWhenBuyingYourFirstHome","BuyingYourFirstHome")).replace("internationalTravel:","intTravel:")).replace("choiceNewArrivals:","choiceNewArr:")).replace("savingsAccount:","savingsAcc:")).length>50&&(n=n.substr(n.length-50,n.length)),n}}},tiktokContentId:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){var e=_satellite.getVar("Site_SubSection")||"",n=_satellite.getVar("Site_SubSubSection"),t=_satellite.getVar("Site_SubSubSubSection");return e?t?e+":"+n+":"+t:n?e+":"+n:e:""}}},impactAdId:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""),"personal-banking"==pageDetails.siteSection&&"credit-cards"==pageDetails.siteSubSection?"A2296210-ae58-4afd-8814-cf3299f6bca71":"business-banking"==pageDetails.siteSection?"A2296212-f1a7-4e17-87e1-f9c790563bc21":"personal-banking"==pageDetails.siteSection&&"bank-accounts"==pageDetails.siteSubSection?"transaction"==pageDetails.siteSubSubSection?"A2296216-c9f2-4f4b-a0ba-b1df1316030b1":"savings-accounts"==pageDetails.siteSubSubSection||"term-deposit"==pageDetails.siteSubSubSection?"A2296221-51a7-49fb-80cd-2ba30bee5eb11":"A2296216-c9f2-4f4b-a0ba-b1df1316030b1":"personal-banking"==pageDetails.siteSection&&"personal-loans"==pageDetails.siteSubSection?"A2296222-3e69-4a7a-9945-e290fbbd7fd41":"personal-banking"==pageDetails.siteSection&&"home-loans"==pageDetails.siteSubSection?"A2298870-7e7f-48da-bb30-e3cdd45861341":"personal-banking"==pageDetails.siteSection&&"insurance"==pageDetails.siteSubSection?"A2296227-1ba0-4b4a-99b6-fe5526a997781":"personal-banking"==pageDetails.siteSection&&"superannuation"==pageDetails.siteSubSection?"A2296231-f3ce-4f98-b0a7-ae080a936b641":"international-travel"==pageDetails.siteSection?"A2296227-1ba0-4b4a-99b6-fe5526a997781":"credit-cards"==pageDetails.siteSection?"A2296210-ae58-4afd-8814-cf3299f6bca71":"bank-accounts"==pageDetails.siteSection?"transaction"==pageDetails.siteSubSubSection?"A2296216-c9f2-4f4b-a0ba-b1df1316030b1":"savings-accounts"==pageDetails.siteSubSubSection||"term-deposit"==pageDetails.siteSubSubSection?"A2296221-51a7-49fb-80cd-2ba30bee5eb11":"A2296216-c9f2-4f4b-a0ba-b1df1316030b1":"personal-loans"==pageDetails.siteSection?"A2296222-3e69-4a7a-9945-e290fbbd7fd41":"home-loans"==pageDetails.siteSection?"A2298870-7e7f-48da-bb30-e3cdd45861341":void 0}}},pageURL:{modulePath:"core/src/lib/dataElements/pageInfo.js",settings:{attribute:"url"}},accountType:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.accountType"}},facebookPixelID:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return"192738011105372"}}},cookieDomainValue:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return/[0-9]{1,3}$/i.test(location.hostname)?location.hostname:location.hostname.split(".").slice(1).join(".")}}},formVariant:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.formVariant"}},productIDfamily:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return pageDetails.productID&&pageDetails.productID[0].ProductFamily?pageDetails.productID[0].ProductFamily:""}}},productSubcategory:{defaultValue:"",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return pageDetails.productID&&pageDetails.productID[0].ProductSubCategory?pageDetails.productID[0].ProductSubCategory:""}}},is3rdPartyAllowed:{modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){var e=_satellite.cookie.get("s_consent")||"",n=!1;return e&&/\|o:y/i.test(e)&&(n=!0),n}}},Site_Domain:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"siteDomain"}},form_Name:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"formName"}},AnalyticsTracking_Status:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"analyticsTrackStatus"}},platform:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){function e(){return window.innerWidth?window.innerWidth:window.outerWidth?window.outerWidth:document.body?document.body.clientWidth:768}return"Desktop"!=pageDetails.siteExperience&&768>e()?"mob":"web"}}},floodLightID:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");window.location.hash&&(e=(window.location.pathname+window.location.hash).toLowerCase().replace(/\/$/,""));var n="false";switch(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,"")){case"/adserver-testing-28042017":n="4792919";break;case"/personal-banking":n="4551003";break;case"/business-banking":n="4543813";break;case"/personal-banking/bank-accounts":n="4539454";break;case"/personal-banking/credit-cards":n="4536666";break;case"/personal-banking/home-loans/calculator/mortgage-repayment":case"/home-loans/calculator/mortgage-repayment":n="4543516";break;case"/personal-banking/bank-accounts/term-deposit":n="4539455";break;case"/personal-banking/home-loans":n="4542305";break;case"/personal-banking/home-loans/calculator":n="4543148";break;case"/personal-banking/credit-cards/reward/altitude-black":n="4538456";break;case"/personal-banking/credit-cards/reward/altitude-black/affiliate":n="6015921";break;
3case"/personal-banking/personal-loans":n="4540815";break;case"/personal-banking/credit-cards/reward":case"/personal-banking/credit-cards/low-fee/student":n="4540059";break;case"/personal-banking/home-loans/calculator/mortgage-calculator":case"/home-loans/calculator/mortgage-calculator":n="4548464";break;case"/personal-banking/bank-accounts/savings-accounts":n="4539637";break;case"/personal-banking/home-loans/variable-interest-rates":n="4542932";break;case"/personal-banking/bank-accounts/savings-accounts/esaver":n="4536655";break;case"/personal-banking/credit-cards/reward/altitude-platinum":n="4539651";break;case"/personal-banking/bank-accounts/savings-accounts/reward-saver":n="4540805";break;case"/business-banking/bank-accounts":n="4541278";break;case"/business-banking/bank-accounts/mybusiness-solutions":n="4543622";break;case"/personal-banking/bank-accounts/transaction":n="4537450";break;case"/personal-banking/mobile-wallets/paywear":n="6762911";break;case"/personal-banking/mobile-wallets/paywear/thank-you":n="6727725";break;case"/personal-banking/home-loans/all-interest-rates":case"/home-loans/all-interest-rates":n="4543517";break;case"/personal-banking/home-loans/fixed-rate-loans-interest-rates":n="4543429";break;case"/personal-banking/bank-accounts/transaction/choice":n="4539636";break;case"/personal-banking/personal-loans/unsecured-personal-loan":n="4569458";break;case"/personal-banking/personal-loans/car-loan":n="4537461";break;case"/personal-banking/credit-cards/low-rate":case"/personal-banking/credit-cards/low-rate-cards/low-rate":n="4536842";break;case"/personal-banking/credit-cards/low-rate/affiliateexclusive":n="6014541";break;case"/business-banking/credit-cards":n="4540673";break;case"/personal-banking/home-loans/first-home":n="4548462";break;case"/personal-banking/home-loans/home-loan-package":n="4543312";break;case"/personal-banking/credit-cards/reward/altitude":n="4538205";break;case"/business-banking/merchant-services":n="4541283";break;case"/business-banking/business-loans":n="4542316";break;case"/personal-banking/credit-cards/comparison":n="4538457";break;case"/personal-banking/personal-loans/flexi-loan":n="4538458";break;case"/personal-banking/home-loans/variable":n="4542306";break;case"/personal-banking/home-loans/variable/mortgage-offset-accounts":n="4548071";break;case"/personal-banking/home-loans/investment-property":n="4547990";break;case"/personal-banking/credit-cards/low-fee":case"/personal-banking/credit-cards/low-fee/low-fee-card":n="4540058";break;case"/personal-banking/bank-accounts/moving-to-australia":n="4550501";break;case"/personal-banking/moving-to-australia/migrant-banking":n="4542311";break;case"/personal-banking/bank-accounts/transaction/choice/under-21":n="4548463";break;case"/personal-banking/home-loans/switch-loan":n="4550224";break;case"/business-banking/bank-accounts/one-account":case"/business-banking/bank-accounts/one-account/media":case"/business-banking/bank-accounts/one-account/media-offer":n="4537090";break;case"/personal-banking/home-loans/fixed":n="4542934";break;case"/business-banking/savings-accounts/term-deposits":n="4538294";break;case"/personal-banking/bank-accounts/transaction/choice/tertiary-student":n="4548461";break;case"/business-banking/savings-accounts":n="4540295";break;case"/personal-banking/bank-accounts/transaction/choice/migrants":n="4550300";break;case"/personal-banking/home-loans/variable/first-home-loan":n="4550502";break;case"/personal-banking/home-loans/fixed/fixed-home-loan":n="4550500";break;case"/personal-banking/home-loans/next-home":n="4550504";break;case"/personal-banking/credit-cards/low-fee/55-day-platinum":case"/personal-banking/credit-cards/low-fee/low-fee-platinum-card":n="4536667";break;case"/personal-banking/home-loans/variable/investment-home-loan":n="4548399";break;case"/personal-banking/superannuation":n="4543519";break;case"/business-banking/business-loans/small-business-loans":n="4542317";break;case"/personal-banking/credit-cards/low-fee/55-day":n="4540814";break;case"/business-banking/bank-accounts/flexi-account":n="4542939";break;case"/business-banking/merchant-services/online-payments":n="4540297";break;case"/business-banking/business-loans/equipment-finance":case"/business-banking/business-loans/equipment-finance-lp":n="4537093";break;case"/business-banking/savings-accounts/cash-reserve":n="4541281";break;case"/personal-banking/home-loans/fixed/fixed-rate-home-loan":n="4550503";break;case"/business-banking/bank-accounts/business-one-high-plan":n="4541279";break;case"/business-banking/credit-cards/rewards-cards":n="4543226";break;case"/business-banking/merchant-services/eftpos":n="4540296";break;case"/business-banking/merchant-services/mobile-payments":n="4543814";break;case"/business-banking/bank-accounts/debit-mastercard":n="4541280";break;case"/business-banking/bank-accounts/not-for-profit-community-cheque":n="4540294";break;case"/business-banking/credit-cards/rewards-cards/altitude-platinum":n="6035526";break;case"/business-banking/credit-cards/rewards-cards/altitude-gold":n="6031756";break;case"/business-banking/credit-cards/rewards-cards/businesschoice-rewards":n="6035238";break;case"/personal-banking/investments/deposits/term-deposit":n="4543223";break;case"/personal-banking/home-loans/variable/first-option-investment-homeloan":n="4548072";break;case"/personal-banking/home-loans/first-home/benefits-for-first-home-buyers":n="4550223";break;case"/business-banking/business-loans/commercial-loans":n="4543227";break;case"/personal-banking/home-loans/wonder":n="4542933";break;case"/personal-banking/bank-accounts/tools-calculators-rates/pbba-all-accounts-rates":n="4538445";break;
3case"/personal-banking/bank-accounts/transaction/mathspace":n="6037665";break;case"/business-banking/savings-accounts/cash-reserve-bonus-interest":n="4543225";break;case"/business-banking/credit-cards/low-rate-card":n="4537092";break;case"/business-banking/business-loans/agrifinance":n="4543436";break;case"/business-banking/merchant-services/processed-payments":n="4537095";break;case"/business-banking/savings-accounts/not-for-profit":n="4542315";break;case"/business-banking/savings-accounts/agri-farm-management-deposit":n="4541282";break;case"/business-banking/bank-accounts/agri-farm-account":n="4537091";break;case"/business-banking/merchant-services/eftpos/westpac-payments":n="4537094";break;case"/personal-banking/bank-accounts/savings-accounts/bump":n="4645846";break;case"/business-banking/merchant-services/mobile-payments/genie":n="6060790";break;case"/business-banking/online-banking/your-business-banking":n="6064875";break;case"/business-banking/online-banking":n="6058906";break;case"/business-banking/business-loans/small-business-loans/business-overdraft":n="6059417";break;case"/business-banking/business-loans/small-business-loans/business-loan":n="6067371";break;case"/business-banking/business-loans/small-business-loans/insurance-premium-finance":n="6060008";break;case"/business-banking/merchant-services/eftpos/countertop-wireless-terminal":n="6059420";break;case"/business-banking/merchant-services/eftpos/mobile":n="6057469";break;case"/business-banking/bank-accounts/compare-all":n="6061075";break;case"/business-banking/credit-cards/compare-business-cards":n="6057763";break;case"/business-banking/bank-accounts/one-account-offer":n="6067374";break;case"/business-banking/merchant-services/compare-eftpos-solutions":n="6058808";break;case"/business-banking/merchant-services/mobile-payments/meet-genie":n="6066507";break;case"/personal-banking/credit-cards/low-rate-cards/westpac-lite-card":n="6119687";break;case"/personal-banking/credit-cards/low-rate-cards":n="6120265";break;case"/personal-banking/home-loans/first-time-investor":n="6185938";break;case"/international-travel":n="6174695";break;case"/international-travel/travel-money-card":n="6178136";break;case"/international-travel/access-money-overseas":n="6172355";break;case"/international-travel/access-money-overseas/atms":n="6177938";break;case"/personal-banking/bank-accounts/savings-accounts/life":n="6211465";break;case"/business-banking/business-loans/small-business-loans/unsecured-business-overdraft":n="6552345";break;case"/personal-banking/bank-accounts/transaction/choice/wallet-dance":n="6695427";break;case"/personal-banking/online-banking/making-the-most/estatements":n="6721758";break;case"/personal-banking/bank-accounts/transaction-history":n="6721761";break;case"/personal-banking/bank-accounts/card-hold":n="6122719";break;case"/personal-banking/bank-accounts/transaction/debit-mastercard":n="6773445";break;case"/personal-banking/credit-cards/smartplan":n="6941418";break;case"/personal-banking/credit-cards/low-rate-cards/westpac-lite-card/affiliate":n="7015825";break;case"/personal-banking/credit-cards/reward/altitude-platinum/affiliate":n="7015015";break;case"/personal-banking/credit-cards/reward/altitude-black/qantas":n="7007819";break;case"/personal-banking/bank-accounts/transaction/debit-mastercard/rollmore":n="7025869";break;case"/personal-banking/credit-cards/manage/getting-started/activating":n="7066537";break;case"/personal-banking/credit-cards/balance-transfer-cards":n="7069670";break;case"/personal-banking/home-loans/our-home-loans":n="7128214";break;case"/personal-banking/home-loans/first-home/how-much-can-i-borrow":n="7074150";break;case"/personal-banking/home-loans/first-home/how-much-i-need-upfront":n="7074153";break;case"/personal-banking/online-banking/alexa":n="7130825";break;case"/security":n="7130819";break;case"/about-westpac/careers":n="7181900";break;case"/personal-banking/bank-accounts/under-21s-and-students":n="7186103";break;case"/personal-banking/home-loans/first-home/owner-occupied":n="7167384";break;case"/help":n="7188681";break;case"/personal-banking/credit-cards/low-fee/55-day-platinum/affiliate":n="6012162";break;case"/personal-banking/credit-cards/americanexpress/altitude-black/affiliate":n="7245009";break;case"/personal-banking/credit-cards/americanexpress/altitude-platinum/affiliate":n="7248480";break;case"/security/fraud-and-scams/latest-scams":n="7269883";break;case"/security/how-we-protect-you":n="7269886";break;case"/security/how-to-protect-yourself":n="7212462";break;case"/security/fraud-and-scams":n="7215414";break;case"/security/how-to-protect-yourself/online-banking-security":n="7213071";break;case"/security/additional-support":n="7213074";break;case"/personal-banking/home-loans/variable-rate-home-loans":n="7322591";break;case"/business-banking/merchant-services/eftpos/presto-smart":n="7331501";break;case"/personal-banking/bank-accounts/savings-accounts/life/savingforahome":n="7377692";break;case"/personal-banking/credit-cards/americanexpress/altitude-platinum/affiliate-exclusive":n="7390749";break;case"/personal-banking/services/tax-time-lp":n="7460785";break;case"/personal-banking/bank-accounts/transaction/choice/migrants/simplified-chinese":n="7449944";break;case"/personal-banking/home-loans/velocity":n="7477993";break;case"/about-westpac/sustainability/initiatives-for-you/customers-financial-hardship":n="7459926";break;case"/international-travel/international-transfers/litepay":n="7559881";break;case"/personal-banking/bank-accounts/savings-accounts/esaver/chinese":n="7572029";break;case"/personal-banking/mobile-wallets/google-pay":n="7687404";break;case"/about-westpac/careers/veterans":n="7859027";break;case"/personal-banking/home-loans/calculator/home-saver":n="7912402";break;
3case"/personal-banking/personal-loans/xl-dm/unsecured-personal-loan":n="7891691";break;case"/personal-banking/credit-cards/low-rate/cashback-cp":n="7930669";break;case"/international-travel/travel-money-card/black-friday-sales":n="7932941";break;case"/business-banking/business-loans/equipment-finance/car-finance":n="7998956";break;case"/business-banking/business-loans/equipment-finance/equipment-finance":n="8034901";break;case"/security/westpac-protect-centre":n="7993203";break;case"/security/how-we-protect-you/westpac-protect":n="7976829";break;case"/business-banking/online-banking/your-business-banking/biz-invoice":case"/business-banking/biz-invoice":n="8139530";break;case"/personal-banking/credit-cards/reward/americanexpress-platinum":n="8146544";break;case"/personal-banking/credit-cards/reward/americanexpress-black":n="8147705";break;case"/personal-banking/bank-accounts/savings-accounts/savings-goals":n="8173068";break;case"/personal-banking/bank-accounts/transaction/debit-mastercard/win":n="8268929";break;case"/help/lifemoments/separation-divorce/help-with-your-finances":n="8268932";break;case"/help/lifemoments/separation-divorce/separation-checklist":n="8281611";break;case"/help/lifemoments/separation-divorce":n="8321383";break;case"/about-westpac/careers/stem-phd-program":n="8305112";break;case"/personal-banking/online-banking/making-the-most/priority-you":n="8422975";break;case"/personal-banking/online-banking/popular-features/priority-you-offers":n="8383587";break;case"/business-banking/merchant-services/presto-payments":case"/business-banking/merchant-services/presto-payments-lp":n="8556927";break;case"/personal-banking/bank-accounts/life-choice":n="8574652";break;case"/security/westpac-protect-centre":n="8576455";break;case"/security/how-to-report":n="8568595";break;case"/business-banking/businesshub":n="8576491";break;case"/personal-banking/home-loans/manage-home-loan":n="8595655";break;case"/personal-banking/home-loans/investing-in-property":n="8623490";break;case"/personal-banking/credit-cards/velocity":n="8629032";break;case"/personal-banking/credit-cards/manage/rewards/economy-x":n="8648800";break;case"/personal-banking/credit-cards/manage/rewards/velocity-faqs":n="8623790";break;case"/help/community/million-meals":n="8684373";break;case"/help/community/city2surf":n="8720723";break;case"/personal-banking/credit-cards/reward/altitude-platinum/bonusgiftcard":n="8806878";break;case"/personal-banking/home-loans/calculator/home-equity-calculator/#/equity-calculator":case"/home-loans/calculator/home-equity-calculator/#/equity-calculator":n="8800757";break;case"/personal-banking/online-banking/making-the-most/new-payments-platform":n="8827356";break;case"/business-banking/industries/professional-business-services":n="8829905";break;case"/help/lifemoments/setting-up-life/getting-married":n="8957307";break;case"/help/lifemoments/setting-up-life/getting-married/planning-a-wedding":n="8938586";break;case"/help/lifemoments/setting-up-life/getting-married/married-life":n="8957310";break;case"/help/lifemoments/setting-up-life/getting-married/engagement-costs":n="8938589";break;case"/help/lifemoments/setting-up-life/getting-married/saving-for-a-honeymoon":n="8958531";break;case"/personal-banking/home-loans/refinance":n="8980711";break;case"/personal-banking/online-banking/making-the-most/contact-us-in-app":n="8987201";break;case"/personal-banking/online-banking/ways-to-bank/mobile-banking":n="8987777";break;case"/personal-banking/credit-cards/reward/altitude-black/altitude-rewards":n="9115740";break;case"/personal-banking/credit-cards/reward/altitude-platinum/altitude-rewards":n="9091316";break;case"/personal-banking/investments/btinvest":n="4857174";break;case"/personal-banking/investments/share-trading":n="4859631";break;case"/personal-banking/superannuation/self-managed-superannuation-accounts":n="4859725";break;case"/personal-banking/superannuation/bt-super-for-life":n="1999656";break;case"/personal-banking/investments/build-your-own-portfolio":n="6010188";break;case"/personal-banking/investments/ready-made-portfolio":n="6010758";break;case"/personal-banking/investments":n="6008930";break;case"/personal-banking/superannuation/bt-super-invest":n="6934987";break;case"/personal-banking/insurance":n="7287141";break;case"/personal-banking/insurance/home-insurance/home-and-contents-insurance":n="7284429";break;case"/personal-banking/insurance/home-insurance/building-insurance":n="7284432";break;case"/personal-banking/insurance/home-insurance/contents-insurance":n="7282044";break;case"/personal-banking/insurance/home-insurance/landlord-insurance":n="7322597";break;case"/personal-banking/insurance/home-insurance/landlord-insurance/building":n="7323461";break;case"/personal-banking/insurance/home-insurance/landlord-insurance/contents":n="7284189";break;case"/personal-banking/insurance/home-insurance/renters-insurance":n="7340593";break;case"/personal-banking/insurance/car-insurance":n="7340278";break;case"/personal-banking/insurance/travel-insurance":n="7323473";break;case"/personal-banking/insurance/home-insurance":n="7602240";break;case"/personal-banking/superannuation/invest-in-your-super":n="7788757";break;case"/personal-banking/superannuation/invest-in-your-superannuation":n="7790584";break;case"/personal-banking/insurance/rahic":n="7860059";break;default:n="false"}return n}}},quantcastBrand:{defaultValue:"p-Au23FFm1Z9kGR",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return"p-Au23FFm1Z9kGR"}}},SearchResult_Keyword:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"searchTerm"}},brand:{defaultValue:"wbc",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return"wbc"}}},Interaction_Detail:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"interactionDetail"}},merch:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.merch"}},Site_SubSubSection:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"siteSubSubSection"}},eventKey:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"eventKey"}},Site_Version:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"siteVersion"}},analyticsID:{modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){var e=_satellite.cookie.get("s_ecid");return e=e?e.substring(e.indexOf("|")+1,e.length):""}}},impactCookieDomainValue:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return/[0-9]{1,3}$/i.test(location.hostname)?location.hostname:location.hostname.split(".").slice(1).join(".").replace("www","")}}},Site_ToolUsage:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"siteToolUsage"}},Site_Name:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"siteName"}},InternalCampaign_PID:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"intCmpPid"}},maritalStatus:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.maritalStatus"}},SearchResult_Count:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"searchResults"}},encryptedID:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"encryptedID"}},"DDO - Route Mapping Config":{storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return[{match:"/business-one/",product:{Product:"413e62e05aca4e0888966e7d9a0abe42",ProductCategory:"bank-accounts",ProductFamily:"business",ProductName:"Westpac Business One",ProductSubCategory:"transaction",prod:"413e62e05aca4e0888966e7d9a0abe42"},formName:"bus:st"},{match:"/business-one-plus/",product:{Product:"a8b8761843a94c66855c093d5ac5a3bb",ProductCategory:"bank-accounts",ProductFamily:"business",ProductName:"Westpac Business One Plus",ProductSubCategory:"transaction",prod:"a8b8761843a94c66855c093d5ac5a3bb"},formName:"bus:st"},{match:"/share-trading/",product:{Product:"bd549301d7174169b9417c463689f2a7",ProductCategory:"bank-accounts",ProductFamily:"consumer",ProductName:"Westpac Cash Investment Account",ProductSubCategory:"transaction",prod:"bd549301d7174169b9417c463689f2a7"},formName:"cons:st",setStp:!0},{match:"/choice/",product:{Product:"13d46777ec304eadb673f30ed0487f99",ProductCategory:"bank-accounts",ProductFamily:"personal",ProductName:"Westpac Choice",ProductSubCategory:"transaction",prod:"13d46777ec304eadb673f30ed0487f99"},formName:"cons:st",setStp:!0},{match:"/summary-kids-teens",product:{Product:"13d46777ec304eadb673f30ed0487f99",ProductCategory:"bank-accounts",ProductFamily:"personal",ProductName:"Westpac Choice",ProductSubCategory:"transaction",prod:"13d46777ec304eadb673f30ed0487f99"},formName:"cons:st",setStp:!0},{match:"/foreign-currency-account/",product:{ProductCategory:"bank-accounts",ProductFamily:"business",ProductSubCategory:"transaction"},formName:"bus:st"},{match:"/cash-reserve/",product:{Product:"45c2b7d900fb46228134766b45ad2ad2",ProductCategory:"bank-accounts",ProductFamily:"business",ProductName:"Westpac Business Cash Reserve",ProductSubCategory:"savings-accounts",prod:"45c2b7d900fb46228134766b45ad2ad2"},formName:"bus:st"},{match:"/life/",product:{Product:"277fff432b484042877bbc807737f703",ProductCategory:"bank-accounts",ProductFamily:"consumer",ProductName:"Westpac Life",ProductSubCategory:"savings",prod:"277fff432b484042877bbc807737f703"},formName:"cons:st",setStp:!0},{match:"/esaver/",product:{Product:"6ae599b53f774c779adf7686b95e9672",ProductCategory:"bank-accounts",ProductFamily:"consumer",ProductName:"Westpac eSaver",ProductSubCategory:"savings",prod:"6ae599b53f774c779adf7686b95e9672"},formName:"cons:st",setStp:!0},{match:"/55-and-retired/",product:{Product:"c637e2690f1c4e178028d8449aeadb3f",ProductCategory:"bank-accounts",ProductFamily:"consumer",ProductName:"Westpac 55+ and Retired",ProductSubCategory:"transaction",prod:"c637e2690f1c4e178028d8449aeadb3f"},formName:"cons:st",setStp:!0},{match:"/new-to-australia/choice-new-arrivals/",product:{Product:"13d46777ec304eadb673f30ed0487f99",ProductCategory:"bank-accounts",ProductFamily:"personal",ProductName:"Westpac Choice",ProductSubCategory:"transaction", 4prod:"13d46777ec304eadb673f30ed0487f99",merch:"options=migrant_onshore"},formName:"cons:st",setStp:!0}]}}},media:{modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"media"}},snapchatPixelID:{defaultValue:"",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,"");var n=["/personal-banking/bank-accounts/savings-accounts/life","/personal-banking/bank-accounts/savings-accounts/esaver","/personal-banking/bank-accounts/savings-accounts/bump","/personal-banking/bank-accounts/savings-accounts/get-started-life","/personal-banking/bank-accounts/savings-accounts/spend-save-ntb"],t=["/personal-banking/credit-cards/low-rate-cards","/personal-banking/credit-cards/reward/altitude-platinum","/personal-banking/credit-cards/reward/altitude-black","/personal-banking/credit-cards/low-rate-cards/westpac-lite-card"],a=["/business-banking/biz-invoice/features-benefits/bpay","/business-banking/bank-accounts","/business-banking/bank-accounts/one-account","/business-banking/bank-accounts/business-one-high-plan","/business-banking/business-loans","/business-banking/business-loans/equipment-finance","/business-banking/business-loans/compare-business-loans","/business-banking/business-loans/small-business-loans/unsecured-business-loan","/business-banking/business-loans/sme-unsecured-lending-covid-19-offer","/business-banking/business-loans/sme-ntb-unsecured-lending-covid-19-offer","/business-banking/business-loans/small-business-loans/unsecured-business-overdraft","/business-banking/business-loans/sme-unsecured-lending-covid-19-offer","/business-banking/business-loans/sme-ntb-unsecured-lending-covid-19-offer"],r=["/lifeseventful","/security","/help/disaster-relief/coronavirus","/help/lifemoments","/help/lifemoments/youth/wendy","/business-banking/biz-invoice","/business-banking/business-loans/small-business-loans/business-loan","/business-banking/business-help"];return["/personal-banking/bank-accounts/transaction/choice","/personal-banking/bank-accounts/transaction/choice/under-21","/personal-banking/bank-accounts/transaction/choice/tertiary-student","/personal-banking/mobile-wallets/apple-pay","/personal-banking/bank-accounts/transaction/digital-card","/personal-banking/online-banking/making-the-most/rewards-and-offers/offers","/personal-banking/online-banking/insights-hub/spend-insights-and-budgeting-tools","/personal-banking/bank-accounts/youth/youth-safer-banking","/personal-banking/bank-accounts/transaction/kids-and-teens","/personal-banking/bank-accounts/youth"].indexOf(e)>=0||n.indexOf(e)>=0?"0a60312e-55cc-4ff7-98ad-8b62c1ce35ca":t.indexOf(e)>=0?"5b1b0624-820c-4c9d-89fc-f828ff998813":a.indexOf(e)>=0?"ca06dad5-995b-42cb-9106-8a02ed1e003a":r.indexOf(e)>=0||"wendy.westpac.com.au"===location.host&&"/"===location.pathname?"6140290f-4430-451a-8330-805e786b73ca":void 0}}},formStatus:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.formStatus"}},formIsSTP:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.formIsSTP"}},Site_Environment:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"siteEnv"}},tntsiteSubSection:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){var e=_satellite.getVar("Site_SubSection");return e=e?":"+e:""}}},productIDprod:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return pageDetails.productID&&pageDetails.productID[0].Product?pageDetails.productID[0].Product:""}}},pageAction:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"pageAction"}},PinterestTagID:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return window.pageDetails?"personal-banking"===pageDetails.siteSection?"2613505659707":"business-banking"===pageDetails.siteSection?"2614229904697":"bank-accounts"===pageDetails.siteSection||"personal-loans"===pageDetails.siteSection||"home-loans"===pageDetails.siteSection||"credit-cards"===pageDetails.siteSection?"2613505659707":"":""}}},state:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.state"}},SearchResult_pageKey:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"dataLayerVer"}},tntCategoryId:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){var e="";return e=_satellite.getVar("Site_Name")?_satellite.getVar("Site_Name"):"",e+=_satellite.getVar("Site_Section")?":"+_satellite.getVar("Site_Section"):"",e+=_satellite.getVar("Site_SubSection")?":"+_satellite.getVar("Site_SubSection"):""}}},promoCode:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.promoCode"}},Site_SubSection:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"siteSubSection"}},productIDsubcategory:{defaultValue:"",storageDurat
4ion:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return pageDetails.productID[0].subcategory}}},productIDname:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return pageDetails.productID&&pageDetails.productID[0].ProductName?pageDetails.productID[0].ProductName:""}}},deviceOperatingSystem:{defaultValue:"",modulePath:"core/src/lib/dataElements/javascriptVariable.js",settings:{path:"pageDetails.deviceOperatingSystem"}},Page_Step:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"pageStep"}},ordinal:{defaultValue:"",storageDuration:"pageview",modulePath:"adobe-contexthub/src/lib/dataElement/dataElement.js",settings:{item:"ordinal"}},productIDcategory:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return pageDetails.productID&&pageDetails.productID[0].ProductCategory?pageDetails.productID[0].ProductCategory:""}}},pageQueryClickId:{defaultValue:"",storageDuration:"pageview",modulePath:"core/src/lib/dataElements/queryStringParameter.js",settings:{name:"irclickid",caseInsensitive:!0}},linkedInPartnerID:{defaultValue:"",modulePath:"core/src/lib/dataElements/customCode.js",settings:{source:function(){return"1848196"}}}},extensions:{core:{displayName:"Core",hostedLibFilesBaseUrl:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/hostedLibFiles/EP1b7d885611af4410a124781998596ed6/",modules:{"core/src/lib/dataElements/customCode.js":{name:"custom-code",displayName:"Custom Code",script:function(e){"use strict";e.exports=function(e,n){return e.source(n)}}},"core/src/lib/dataElements/javascriptVariable.js":{name:"javascript-variable",displayName:"JavaScript Variable",script:function(e,n,t){"use strict";var a=t("../helpers/getObjectProperty.js");e.exports=function(e){return a(window,e.path)}}},"core/src/lib/dataElements/visitorBehavior.js":{name:"visitor-behavior",displayName:"Visitor Behavior",script:function(e,n,t){"use strict";var a=t("../helpers/visitorTracking");e.exports=function(e){switch(e.attribute){case"landingPage":return a.getLandingPage();case"trafficSource":return a.getTrafficSource();case"minutesOnSite":return a.getMinutesOnSite();case"sessionCount":return a.getSessionCount();case"sessionPageViewCount":return a.getSessionPageViewCount();case"lifetimePageViewCount":return a.getLifetimePageViewCount();case"isNewVisitor":return a.getIsNewVisitor()}}}},"core/src/lib/dataElements/pageInfo.js":{name:"page-info",displayName:"Page Info",script:function(e,n,t){"use strict";var a=t("@adobe/reactor-document");e.exports=function(e){switch(e.attribute){case"url":return a.location.href;case"hostname":return a.location.hostname;case"pathname":return a.location.pathname;case"protocol":return a.location.protocol;case"referrer":return a.referrer;case"title":return a.title}}}},"core/src/lib/dataElements/queryStringParameter.js":{name:"query-string-parameter",displayName:"Query String Parameter",script:function(e,n,t){"use strict";var a=t("@adobe/reactor-window"),r=t("@adobe/reactor-query-string");e.exports=function(e){var n=r.parse(a.location.search);if(!e.caseInsensitive)return n[e.name];for(var t=e.name.toLowerCase(),s=Object.keys(n),i=0;i<s.length;i++){var o=s[i];if(o.toLowerCase()===t)return n[o]}}}},"core/src/lib/conditions/valueComparison.js":{name:"value-comparison",displayName:"Value Comparison",script:function(e,n,t){"use strict";var a=t("../helpers/stringAndNumberUtils").isString,r=t("../helpers/stringAndNumberUtils").isNumber,s=t("../helpers/stringAndNumberUtils").castToStringIfNumber,i=t("../helpers/stringAndNumberUtils").castToNumberIfString,o=function(e,n){return n&&a(e)?e.toLowerCase():e},c=function(e){return function(n,t,r){return n=s(n),t=s(t),a(n)&&a(t)&&e(n,t,r)}},l=function(e){return function(n,t){return n=i(n),t=i(t),r(n)&&r(t)&&e(n,t)}},d=function(e){return function(n,t,a){return e(o(n,a),o(t,a))}},p={equals:d((function(e,n){return e==n}
4)),doesNotEqual:function(){return!p.equals.apply(null,arguments)},contains:c(d((function(e,n){return-1!==e.indexOf(n)}))),doesNotContain:function(){return!p.contains.apply(null,arguments)},startsWith:c(d((function(e,n){return 0===e.indexOf(n)}))),doesNotStartWith:function(){return!p.startsWith.apply(null,arguments)},endsWith:c(d((function(e,n){return e.substring(e.length-n.length,e.length)===n}))),doesNotEndWith:function(){return!p.endsWith.apply(null,arguments)},matchesRegex:c((function(e,n,t){return new RegExp(n,t?"i":"").test(e)})),doesNotMatchRegex:function(){return!p.matchesRegex.apply(null,arguments)},lessThan:l((function(e,n){return e<n})),lessThanOrEqual:l((function(e,n){return e<=n})),greaterThan:l((function(e,n){return e>n})),greaterThanOrEqual:l((function(e,n){return e>=n})),isTrue:function(e){return!0===e},isTruthy:function(e){return Boolean(e)},isFalse:function(e){return!1===e},isFalsy:function(e){return!e}};e.exports=function(e){return p[e.comparison.operator](e.leftOperand,e.rightOperand,Boolean(e.comparison.caseInsensitive))}}},"core/src/lib/conditions/customCode.js":{name:"custom-code",displayName:"Custom Code",script:function(e){"use strict";e.exports=function(e,n){return e.source.call(n.element,n,n.target)}}},"core/src/lib/actions/customCode.js":{name:"custom-code",displayName:"Custom Code",script:function(e,n,t,a){"use strict";var r,s,i,o,c=t("@adobe/reactor-document"),l=t("@adobe/reactor-promise"),d=t("./helpers/decorateCode"),p=t("./helpers/loadCodeSequentially"),u=t("../../../node_modules/postscribe/dist/postscribe"),g=t("./helpers/unescapeHtmlCode"),m=t("../helpers/findPageScript").getTurbine,b=(s=function(e){u(c.body,e,{beforeWriteToken:function(e){var n=e.tagName&&e.tagName.toLowerCase();return r&&"script"===n&&(e.attrs.nonce=r),"script"!==n&&"style"!==n||(Object.keys(e.attrs||{}).forEach((function(n){e.attrs[n]=g(e.attrs[n])})),e.src&&(e.src=g(e.src))),e},error:function(e){a.logger.error(e.msg)}})},i=[],o=function(){if(c.body)for(;i.length;)s(i.shift());else setTimeout(o,20)},function(e){i.push(e),o()}),h=function(){if(c.currentScript)return c.currentScript.async;var e=m();return!e||e.async}();e.exports=function(e,n){var t;r=a.getExtensionSettings().cspNonce;var s={settings:e,event:n},i=s.settings.source;if(i)return s.settings.isExternal?p(i).then((function(e){return e?(t=d(s,e),b(t.code),t.promise):l.resolve()})):(t=d(s,i),h||"loading"!==c.readyState?b(t.code):c.write&&!1===a.propertySettings.ruleComponentSequencingEnabled?c.write(t.code):b(t.code),t.promise)}}},"core/src/lib/events/windowLoaded.js":{name:"window-loaded",displayName:"Window Loaded",script:function(e,n,t){"use strict";var a=t("./helpers/pageLifecycleEvents");e.exports=function(e,n){a.registerWindowLoadedTrigger(n)}}},"core/src/lib/events/dataElementChange.js":{name:"data-element-change",displayName:"Data Element Change",script:function(e,n,t,a){"use strict";var r={},s={};setInterval((function(){Object.keys(r).forEach((function(e){var n=JSON.stringify(a.getDataElementValue(e));if(n!==s[e]){var t={dataElementName:e};r[e].forEach((function(e){e(t)})),s[e]=n}}))}),1e3),e.exports=function(e,n){var t=e.name,i=r[t];i||(i=r[t]=[],s[t]=JSON.stringify(a.getDataElementValue(t))),i.push(n)}}},"core/src/lib/events/domReady.js":{name:"dom-ready",displayName:"DOM Ready",script:function(e,n,t){"use strict";var a=t("./helpers/pageLifecycleEvents");e.exports=function(e,n){a.registerDomReadyTrigger(n)}}},"core/src/lib/events/libraryLoaded.js":{name:"library-loaded",displayName:"Library Loaded (Page Top)",script:function(e,n,t){"use strict";var a=t("./helpers/pageLifecycleEvents");e.exports=function(e,n){a.registerLibraryLoadedTrigger(n)}}},"core/src/lib/conditions/queryStringParameter.js":{name:"query-string-parameter",displayName:"Query String Parameter",script:function(e,n,t){"use strict";var a=t("@adobe/reactor-window"),r=t("@adobe/reactor-query-string"),s=t("../helpers/textMatch");e.exports=function(e){var n,t=r.parse(a.location.search);if(!t.hasOwnProperty(e.name))return!1;n=Array.isArray(e.queryParams)?e.queryParams:[{value:e.value,valueIsRegex:Bo
4olean(e.valueIsRegex)}];var i=t[e.name];return n.some((function(e){var n=e.valueIsRegex?new RegExp(e.value,"i"):e.value;return s(i,n)}))}}},"core/src/lib/events/click.js":{name:"click",displayName:"Click",script:function(e,n,t){"use strict";var a=t("@adobe/reactor-window"),r=t("./helpers/createBubbly")(),s=new(t("./helpers/weakMap")),i=2,o=t("../helpers/stringAndNumberUtils").castToNumberIfString,c=function(e){if(!e.ctrlKey&&!e.metaKey&&e.button!==i)for(var n=e.target;n;){var t=n.tagName;if(t&&"a"===t.toLowerCase()){var r=n.getAttribute("href"),s=n.getAttribute("target");return r&&(!s||"_self"===s||"_top"===s&&a.top===a||s===a.name)?n:void 0}n=n.parentNode}};document.addEventListener("click",r.evaluateEvent,!0),e.exports=function(e,n){r.addListener(e,(function(t){var r=t.nativeEvent;if(!r.s_fe){var i=o(e.anchorDelay);if(i&&!s.has(r)){var l=c(r);l&&(r.preventDefault(),setTimeout((function(){a.location=l.href}),i)),s.set(r,!0)}n(t)}}))},e.exports.__reset=r.__reset}},"core/src/lib/conditions/pathAndQuerystring.js":{name:"path-and-querystring",displayName:"Path And Query String",script:function(e,n,t){"use strict";var a=t("@adobe/reactor-document"),r=t("../helpers/textMatch");e.exports=function(e){var n=a.location.pathname+a.location.search;return e.paths.some((function(e){var t=e.valueIsRegex?new RegExp(e.value,"i"):e.value;return r(n,t)}))}}},"core/src/lib/conditions/path.js":{name:"path",displayName:"Path Without Query String",script:function(e,n,t){"use strict";var a=t("@adobe/reactor-document"),r=t("../helpers/textMatch");e.exports=function(e){var n=a.location.pathname;return e.paths.some((function(e){var t=e.valueIsRegex?new RegExp(e.value,"i"):e.value;return r(n,t)}))}}},"core/src/lib/events/directCall.js":{name:"direct-call",displayName:"Direct Call",script:function(e,n,t,a){"use strict";var r={};window._satellite=window._satellite||{},window._satellite.track=function(e,n){e=e.trim();var t=r[e];if(t){var s={identifier:e,detail:n};t.forEach((function(e){e(s)}));var i=['Rules using the direct call event type with identifier "'+e+'" have been triggered'+(n?" with additional detail:":".")];n&&i.push(n),a.logger.log.apply(a.logger,i)}else a.logger.log('"'+e+'" does not match any direct call identifiers.')},e.exports=function(e,n){var t=r[e.identifier];t||(t=r[e.identifier]=[]),t.push(n)}}},"core/src/lib/events/pageBottom.js":{name:"page-bottom",displayName:"Page Bottom",script:function(e,n,t){"use strict";var a=t("./helpers/pageLifecycleEvents");e.exports=function(e,n){a.registerPageBottomTrigger(n)}}},"core/src/lib/helpers/getObjectProperty.js":{script:function(e){"use strict";e.exports=function(e,n){for(var t=n.split("."),a=e,r=0,s=t.length;r<s;r++){if(null==a)return;a=a[t[r]]}return a}}},"core/src/lib/helpers/visitorTracking.js":{script:function(e,n,t){"use strict";var a,r=t("@adobe/reactor-document"),s=t("@adobe/reactor-window"),i=t("./getNamespacedStorage"),o="visitorTracking",c=i("localStorage",o),l=i("sessionStorage",o),d=function(){var e=l.getItem("landingPage");return e||(l.setItem("landingPage",s.location.href),l.setItem("landingTime",(new Date).getTime())),!e},p=function(){return l.getItem("landingPage")},u=function(){return Number(l.getItem("landingTime"))},g=function(){return Number(c.getItem("sessionCount"))},m=function(){return Number(c.getItem("pagesViewed"))},b=function(){var e=(new Date).getTime();return Math.floor((e-u())/1e3/60)},h=function(){return l.getItem("trafficSource")},f=function(){return Number(l.getItem("pagesViewed"))},v=function(){return 1===g()},y=function(e){e&&c.setItem("sessionCount",g()+1)},k=function(){l.setItem("pagesViewed",f()+1)},w=function(){c.setItem("pagesViewed",m()+1)},x=function(){l.getItem("trafficSource")||l.setItem("trafficSource",r.referrer)};a=d(),y(a),w(),k(),x(),e.exports={getLandingPage:p,getLandingTime:u,getMinutesOnSite:b,getSessionCount:g,getLifetimePageViewCount:m,getSessionPageViewCount:f,getTrafficSource:h,getIsNewVisitor:v}}},"core/src/lib/helpers/getNamespacedStorage.js":{script:function(e,n,t,a){"use strict";var r=t("@adobe/reactor-window"),s="com.adobe.reactor.core";e.exports=function(e,n){var t='"'+e+'" is not available on the window object.',i=s+"."+n;return{getItem:function(n){try{return r[e].getItem(i+"."+n)}catch(e){return a.logger.warn(t),null}},setItem:function(n,s){try{return r[e].setItem(i+"."+n,s),!0}catch(e){return a.logger.warn(t),!1}}}}}},"core/src/lib/helpers/stringAndNumberUtils.js":{script:function(e){"use strict";var n=function(e){return"number"==typeof e&&isFinite(e)},t=function(e){return"string"==typeof e||e instanceof String},a=function(e){return n(e)?String(e):e},r=function(e){return t(e)?Number(e):e};e.exports={isNumber:n,isString:t,castToStringIfNumber:a,castToNumberIfString:r}}}
4,"core/src/lib/actions/helpers/decorateCode.js":{script:function(e,n,t){"use strict";var a=t("./decorators/decorateGlobalJavaScriptCode"),r=t("./decorators/decorateNonGlobalJavaScriptCode"),s={javascript:function(e,n){return e.settings.global?a(e,n):r(e,n)},html:t("./decorators/decorateHtmlCode")};e.exports=function(e,n){return s[e.settings.language](e,n)}}},"core/src/lib/actions/helpers/loadCodeSequentially.js":{script:function(e,n,t){"use strict";var a=t("@adobe/reactor-promise"),r=t("./getSourceByUrl"),s=a.resolve();e.exports=function(e){var n=new a((function(n){var t=r(e);a.all([t,s]).then((function(e){var t=e[0];n(t)}))}));return s=n,n}}},"core/node_modules/postscribe/dist/postscribe.js":{script:function(e,n){var t,a;t=this,a=function(){return function(e){function n(a){if(t[a])return t[a].exports;var r=t[a]={exports:{},id:a,loaded:!1};return e[a].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}var t={};return n.m=e,n.c=t,n.p="",n(0)}([function(e,n,t){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}var r=a(t(1));e.exports=r.default},function(e,n,t){"use strict";function a(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function r(e){return e&&e.__esModule?e:{default:e}}function s(){}function i(){var e=m.shift();if(e){var n=p.last(e);n.afterDequeue(),e.stream=o.apply(void 0,e),n.afterStreamStart()}}function o(e,n,t){function a(e){e=t.beforeWrite(e),b.write(e),t.afterWrite(e)}(b=new d.default(e,t)).id=g++,b.name=t.name||b.id,c.streams[b.name]=b;var r=e.ownerDocument,o={close:r.close,open:r.open,write:r.write,writeln:r.writeln};l(r,{close:s,open:s,write:function(){for(var e=arguments.length,n=Array(e),t=0;t<e;t++)n[t]=arguments[t];return a(n.join(""))},writeln:function(){for(var e=arguments.length,n=Array(e),t=0;t<e;t++)n[t]=arguments[t];return a(n.join("")+"\n")}});var p=b.win.onerror||s;return b.win.onerror=function(e,n,a){t.error({msg:e+" - "+n+": "+a}),p.apply(b.win,[e,n,a])},b.write(n,(function(){l(r,o),b.win.onerror=p,t.done(),b=null,i()})),b}function c(e,n,t){if(p.isFunction(t))t={done:t};else if("clear"===t)return m=[],b=null,void(g=0);t=p.defaults(t,u);var a=[e=/^#/.test(e)?window.document.getElementById(e.substr(1)):e.jquery?e[0]:e,n,t];return e.postscribe={cancel:function(){a.stream?a.stream.abort():a[1]=s}},t.beforeEnqueue(a),m.push(a),b||i(),e.postscribe}n.__esModule=!0;var l=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e};n.default=c;var d=r(t(2)),p=a(t(4)),u={afterAsync:s,afterDequeue:s,afterStreamStart:s,afterWrite:s,autoFix:!0,beforeEnqueue:s,beforeWriteToken:function(e){return e},beforeWrite:function(e){return e},done:s,error:function(e){throw new Error(e.msg)},releaseAsync:!1},g=0,m=[],b=null;l(c,{streams:{},queue:m,WriteStream:d.default})},function(e,n,t){"use strict";function a(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function r(e){return e&&e.__esModule?e:{default:e}}function s(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function i(e,n){var t=u+n,a=e.getAttribute(t);return d.existy(a)?String(a):a}function o(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=u+n;d.existy(t)&&""!==t?e.setAttribute(a,t):e.removeAttribute(a)}n.__esModule=!0;var c=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},l=r(t(3)),d=a(t(4)),p=!1,u="data-ps-",g="ps-style",m="ps-script",b=function(){function e(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};s(this,e),this.root=n,this.options=t,this.doc=n.ownerDocument,this.win=this.doc.defaultView||this.doc.parentWindow,this.parser=new l.default("",{autoFix:t.autoFix}),this.actuals=[n],this.proxyHistory="",this.proxyRoot=this.doc.createElement(n.nodeName),this.scriptStack=[],this.writeQueue=[],o(this.proxyRoot,"proxyof",0)}return e.prototype.write=function(){var e;
4for((e=this.writeQueue).push.apply(e,arguments);!this.deferredRemote&&this.writeQueue.length;){var n=this.writeQueue.shift();d.isFunction(n)?this._callFunction(n):this._writeImpl(n)}},e.prototype._callFunction=function(e){var n={type:"function",value:e.name||e.toString()};this._onScriptStart(n),e.call(this.win,this.doc),this._onScriptDone(n)},e.prototype._writeImpl=function(e){this.parser.append(e);for(var n=void 0,t=void 0,a=void 0,r=[];(n=this.parser.readToken())&&!(t=d.isScript(n))&&!(a=d.isStyle(n));)(n=this.options.beforeWriteToken(n))&&r.push(n);r.length>0&&this._writeStaticTokens(r),t&&this._handleScriptToken(n),a&&this._handleStyleToken(n)},e.prototype._writeStaticTokens=function(e){var n=this._buildChunk(e);return n.actual?(n.html=this.proxyHistory+n.actual,this.proxyHistory+=n.proxy,this.proxyRoot.innerHTML=n.html,p&&(n.proxyInnerHTML=this.proxyRoot.innerHTML),this._walkChunk(),p&&(n.actualInnerHTML=this.root.innerHTML),n):null},e.prototype._buildChunk=function(e){for(var n=this.actuals.length,t=[],a=[],r=[],s=e.length,i=0;i<s;i++){var o=e[i],c=o.toString();if(t.push(c),o.attrs){if(!/^noscript$/i.test(o.tagName)){var l=n++;a.push(c.replace(/(\/?>)/," "+u+"id="+l+" $1")),o.attrs.id!==m&&o.attrs.id!==g&&r.push("atomicTag"===o.type?"":"<"+o.tagName+" "+u+"proxyof="+l+(o.unary?" />":">"))}}else a.push(c),r.push("endTag"===o.type?c:"")}return{tokens:e,raw:t.join(""),actual:a.join(""),proxy:r.join("")}},e.prototype._walkChunk=function(){for(var e=void 0,n=[this.proxyRoot];d.existy(e=n.shift());){var t=1===e.nodeType;if(!t||!i(e,"proxyof")){t&&(this.actuals[i(e,"id")]=e,o(e,"id"));var a=e.parentNode&&i(e.parentNode,"proxyof");a&&this.actuals[a].appendChild(e)}n.unshift.apply(n,d.toArray(e.childNodes))}},e.prototype._handleScriptToken=function(e){var n=this,t=this.parser.clear();t&&this.writeQueue.unshift(t),e.src=e.attrs.src||e.attrs.SRC,(e=this.options.beforeWriteToken(e))&&(e.src&&this.scriptStack.length?this.deferredRemote=e:this._onScriptStart(e),this._writeScriptToken(e,(function(){n._onScriptDone(e)})))},e.prototype._handleStyleToken=function(e){var n=this.parser.clear();n&&this.writeQueue.unshift(n),e.type=e.attrs.type||e.attrs.TYPE||"text/css",(e=this.options.beforeWriteToken(e))&&this._writeStyleToken(e),n&&this.write()},e.prototype._writeStyleToken=function(e){var n=this._buildStyle(e);this._insertCursor(n,g),e.content&&(n.styleSheet&&!n.sheet?n.styleSheet.cssText=e.content:n.appendChild(this.doc.createTextNode(e.content)))},e.prototype._buildStyle=function(e){var n=this.doc.createElement(e.tagName);return n.setAttribute("type",e.type),d.eachKey(e.attrs,(function(e,t){n.setAttribute(e,t)})),n},e.prototype._insertCursor=function(e,n){this._writeImpl('<span id="'+n+'"/>');var t=this.doc.getElementById(n);t&&t.parentNode.replaceChild(e,t)},e.prototype._onScriptStart=function(e){e.outerWrites=this.writeQueue,this.writeQueue=[],this.scriptStack.unshift(e)},e.prototype._onScriptDone=function(e){e===this.scriptStack[0]?(this.scriptStack.shift(),this.write.apply(this,e.outerWrites),!this.scriptStack.length&&this.deferredRemote&&(this._onScriptStart(this.deferredRemote),this.deferredRemote=null)):this.options.error({msg:"Bad script nesting or script finished twice"})},e.prototype._writeScriptToken=function(e,n){var t=this._buildScript(e),a=this._shouldRelease(t),r=this.options.afterAsync;e.src&&(t.src=e.src,this._scriptLoadHandler(t,a?r:function(){n(),r()}));try{this._insertCursor(t,m),t.src&&!a||n()}catch(e){this.options.error(e),n()}},e.prototype._buildScript=function(e){var n=this.doc.createElement(e.tagName);return d.eachKey(e.attrs,(function(e,t){n.setAttribute(e,t)})),e.content&&(n.text=e.content),n},e.prototype._scriptLoadHandler=function(e,n){function t(){e=e.onload=e.onreadystatechange=e.onerror=null}function a(){t(),null!=n&&n(),n=null}function r(e){t(),i(e),null!=n&&n(),n=null}function s(e,n){var t=e["on"+n];null!=t&&(e["_on"+n]=t)}var i=this.options.error;s(e,"load"),s(e,"error"),c(e,{onload:function(){if(e._onload)try{e._onload.apply(this,Array.prototype.slice.call(arguments,0))}catch(n){r({msg:"onload handler failed "+n+" @ "+e.src})}a()},onerror:function(){if(e._onerror)try{e._onerror.apply(this,Array.prototype.slice.call(arguments,0))}catch(n){return void r({msg:"onerror handler failed "+n+" @ "+e.src})}r({msg:"remote script failed "+e.src})},onreadystatechange:function(){/^(loaded|complete)$/.test(e.readyState)&&a()}})},e.prototype._shouldRelease=function(e){return!/^script$/i.test(e.nodeName)||!!(this.options.releaseAsync&&e.src&&e.hasAttribute("async"))},e}();n.default=b},function(e){var n;n=function(){return function(e){function n(a){if(t[a])return t[a].exports;var r=t[a]={exports:{},id:a,loaded:!1};
4return e[a].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}var t={};return n.m=e,n.c=t,n.p="",n(0)}([function(e,n,t){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}var r=a(t(1));e.exports=r.default},function(e,n,t){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}function r(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function s(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var i=r(t(2)),o=r(t(3)),c=a(t(6)),l=t(5),d={comment:/^<!--/,endTag:/^<\//,atomicTag:/^<\s*(script|style|noscript|iframe|textarea)[\s\/>]/i,startTag:/^</,chars:/^[^<]/},p=function(){function e(){var n=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};s(this,e),this.stream=t;var r=!1,o={};for(var l in i)i.hasOwnProperty(l)&&(a.autoFix&&(o[l+"Fix"]=!0),r=r||o[l+"Fix"]);r?(this._readToken=(0,c.default)(this,o,(function(){return n._readTokenImpl()})),this._peekToken=(0,c.default)(this,o,(function(){return n._peekTokenImpl()}))):(this._readToken=this._readTokenImpl,this._peekToken=this._peekTokenImpl)}return e.prototype.append=function(e){this.stream+=e},e.prototype.prepend=function(e){this.stream=e+this.stream},e.prototype._readTokenImpl=function(){var e=this._peekTokenImpl();if(e)return this.stream=this.stream.slice(e.length),e},e.prototype._peekTokenImpl=function(){for(var e in d)if(d.hasOwnProperty(e)&&d[e].test(this.stream)){var n=o[e](this.stream);if(n)return"startTag"===n.type&&/script|style/i.test(n.tagName)?null:(n.text=this.stream.substr(0,n.length),n)}},e.prototype.peekToken=function(){return this._peekToken()},e.prototype.readToken=function(){return this._readToken()},e.prototype.readTokens=function(e){for(var n=void 0;n=this.readToken();)if(e[n.type]&&!1===e[n.type](n))return},e.prototype.clear=function(){var e=this.stream;return this.stream="",e},e.prototype.rest=function(){return this.stream},e}();for(var u in n.default=p,p.tokenToString=function(e){return e.toString()},p.escapeAttributes=function(e){var n={};for(var t in e)e.hasOwnProperty(t)&&(n[t]=(0,l.escapeQuotes)(e[t],null));return n},p.supports=i,i)i.hasOwnProperty(u)&&(p.browserHasFlaw=p.browserHasFlaw||!i[u]&&u)},function(e,n){"use strict";n.__esModule=!0;var t=!1,a=!1,r=window.document.createElement("div");try{var s="<P><I></P></I>";r.innerHTML=s,n.tagSoup=t=r.innerHTML!==s}catch(e){n.tagSoup=t=!1}try{r.innerHTML="<P><i><P></P></i></P>",n.selfClose=a=2===r.childNodes.length}catch(e){n.selfClose=a=!1}r=null,n.tagSoup=t,n.selfClose=a},function(e,n,t){"use strict";function a(e){var n=e.indexOf("-->");if(n>=0)return new l.CommentToken(e.substr(4,n-1),n+3)}function r(e){var n=e.indexOf("<");return new l.CharsToken(n>=0?n:e.length)}function s(e){var n,t,a;if(-1!==e.indexOf(">")){var r=e.match(d.startTag);if(r){var s=(n={},t={},a=r[2],r[2].replace(d.attr,(function(e,r){arguments[2]||arguments[3]||arguments[4]||arguments[5]?arguments[5]?(n[arguments[5]]="",t[arguments[5]]=!0):n[r]=arguments[2]||arguments[3]||arguments[4]||d.fillAttr.test(r)&&r||"":n[r]="",a=a.replace(e,"")})),{v:new l.StartTagToken(r[1],r[0].length,n,t,!!r[3],a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))});if("object"===(void 0===s?"undefined":c(s)))return s.v}}}function i(e){var n=s(e);if(n){var t=e.slice(n.length);if(t.match(new RegExp("</\\s*"+n.tagName+"\\s*>","i"))){var a=t.match(new RegExp("([\\s\\S]*?)</\\s*"+n.tagName+"\\s*>","i"));if(a)return new l.AtomicTagToken(n.tagName,a[0].length+n.length,n.attrs,n.booleanAttrs,a[1])}}}function o(e){var n=e.match(d.endTag);if(n)return new l.EndTagToken(n[1],n[0].length)}n.__esModule=!0;var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n.comment=a,n.chars=r,n.startTag=s,n.atomicTag=i,n.endTag=o;var l=t(4),d={startTag:/^<([\-A-Za-z0-9_]+)((?:\s+[\w\-]+(?:\s*=?\s*(?:(?
4:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,endTag:/^<\/([\-A-Za-z0-9_]+)[^>]*>/,attr:/(?:([\-A-Za-z0-9_]+)\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))|(?:([\-A-Za-z0-9_]+)(\s|$)+)/g,fillAttr:/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noresize|noshade|nowrap|readonly|selected)$/i}},function(e,n,t){"use strict";function a(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0,n.EndTagToken=n.AtomicTagToken=n.StartTagToken=n.TagToken=n.CharsToken=n.CommentToken=n.Token=void 0;var r=t(5),s=(n.Token=function e(n,t){a(this,e),this.type=n,this.length=t,this.text=""},n.CommentToken=function(){function e(n,t){a(this,e),this.type="comment",this.length=t||(n?n.length:0),this.text="",this.content=n}return e.prototype.toString=function(){return"<!--"+this.content},e}(),n.CharsToken=function(){function e(n){a(this,e),this.type="chars",this.length=n,this.text=""}return e.prototype.toString=function(){return this.text},e}(),n.TagToken=function(){function e(n,t,r,s,i){a(this,e),this.type=n,this.length=r,this.text="",this.tagName=t,this.attrs=s,this.booleanAttrs=i,this.unary=!1,this.html5Unary=!1}return e.formatTag=function(e){ 5var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t="<"+e.tagName;for(var a in e.attrs)if(e.attrs.hasOwnProperty(a)){t+=" "+a;var s=e.attrs[a];void 0!==e.booleanAttrs&&void 0!==e.booleanAttrs[a]||(t+='="'+(0,r.escapeQuotes)(s)+'"')}return e.rest&&(t+=" "+e.rest),e.unary&&!e.html5Unary?t+="/>":t+=">",null!=n&&(t+=n+"</"+e.tagName+">"),t},e}());n.StartTagToken=function(){function e(n,t,r,s,i,o){a(this,e),this.type="startTag",this.length=t,this.text="",this.tagName=n,this.attrs=r,this.booleanAttrs=s,this.html5Unary=!1,this.unary=i,this.rest=o}return e.prototype.toString=function(){return s.formatTag(this)},e}(),n.AtomicTagToken=function(){function e(n,t,r,s,i){a(this,e),this.type="atomicTag",this.length=t,this.text="",this.tagName=n,this.attrs=r,this.booleanAttrs=s,this.unary=!1,this.html5Unary=!1,this.content=i}return e.prototype.toString=function(){return s.formatTag(this,this.content)},e}(),n.EndTagToken=function(){function e(n,t){a(this,e),this.type="endTag",this.length=t,this.text="",this.tagName=n}return e.prototype.toString=function(){return"</"+this.tagName+">"},e}()},function(e,n){"use strict";function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e?e.replace(/([^"]*)"/g,(function(e,n){return/\\/.test(n)?n+'"':n+'\\"'})):n}n.__esModule=!0,n.escapeQuotes=t},function(e,n){"use strict";function t(e){return e&&"startTag"===e.type&&(e.unary=o.test(e.tagName)||e.unary,e.html5Unary=!/\/>$/.test(e.text)),e}function a(e,n){var a=e.stream,r=t(n());return e.stream=a,r}function r(e,n){var t=n.pop();e.prepend("</"+t.tagName+">")}function s(){var e=[];return e.last=function(){return this[this.length-1]},e.lastTagNameEq=function(e){var n=this.last();return n&&n.tagName&&n.tagName.toUpperCase()===e.toUpperCase()},e.containsTagName=function(e){for(var n,t=0;n=this[t];t++)if(n.tagName===e)return!0;return!1},e}function i(e,n,i){function o(){var n=a(e,i);n&&d[n.type]&&d[n.type](n)}var l=s(),d={startTag:function(t){var a=t.tagName;"TR"===a.toUpperCase()&&l.lastTagNameEq("TABLE")?(e.prepend("<TBODY>"),o()):n.selfCloseFix&&c.test(a)&&l.containsTagName(a)?l.lastTagNameEq(a)?r(e,l):(e.prepend("</"+t.tagName+">"),o()):t.unary||l.push(t)},endTag:function(t){l.last()?n.tagSoupFix&&!l.lastTagNameEq(t.tagName)?r(e,l):l.pop():n.tagSoupFix&&(i(),o())}};return function(){return o(),t(i())}}n.__esModule=!0,n.default=i;var o=/^(AREA|BASE|BASEFONT|BR|COL|FRAME|HR|IMG|INPUT|ISINDEX|LINK|META|PARAM|EMBED)$/i,c=/^(COLGROUP|DD|DT|LI|OPTIONS|P|TD|TFOOT|TH|THEAD|TR)$/i}])},e.exports=n()},function(e,n){"use strict";function t(e){return null!=e}function a(e){return"function"==typeof e}function r(e,n,t){var a=void 0,r=e&&e.length||0;for(a=0;a<r;a++)n.call(t,e[a],a)}function s(e,n,t){for(var a in e)e.hasOwnProperty(a)&&n.call(t,a,e[a])}function i(e,n){return e=e||{},s(n,(function(n,a){t(e[n])||(e[n]=a)})),e}function o(e){try{return Array.prototype.slice.call(e)}catch(a){var n=(t=[],r(e,(function(e){t.push(e)})),{v:t});if("object"===(void 0===n?"undefined":u(n)))return n.v}var t}function c(e){return e[e.length-1]}function l(e,n){return!(!e||"startTag"!==e.type&&"atomicTag"!==e.type||!("tagName"in e)||!~e.tagName.toLowerCase().indexOf(n))}function d(e){return l(e,"script")}function p(e){return l(e,"style")}n.__esModule=!0;var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n.existy=t,n.isFunction=a,n.each=r,n.eachKey=s,n.defaults=i,n.toArray=o,n.last=c,n.isTag=l,n.isScript=d,n.isStyle=p}])},"object"==typeof n&&"object"==typeof e?e.exports=a():"function"==typeof define&&define.amd?define([],a):"object"==typeof n?n.postscribe=a():t.postscribe=a()}},"core/src/lib/actions/helpers/unescapeHtmlCode.js":{script:function(e,n,t){"use strict";var a=t("@adobe/reactor-document").createElement("div");e.exports=function(e){return a.innerHTML=e,a.textContent||a.innerText||e}}},"core/src/lib/helpers/findPageScript.js":{script:function(e,n,t){"use strict";var a=t("@adobe/reactor-document"),r=function(e){for(var n=a.querySelectorAll("script"),t=0;t<n.length;t++){var r=n[t];if(e.test(r.src))return r}},s=function(){return r(new RegExp(/(launch|satelliteLib)-[^\/]+.js(\?.*)?$/))};e.exports={getTurbine:s,byRegexPattern:r}}}
5,"core/src/lib/actions/helpers/decorators/decorateGlobalJavaScriptCode.js":{script:function(e,n,t){"use strict";var a=t("@adobe/reactor-promise");e.exports=function(e,n){return{code:"<script>\n"+n+"\n</script>",promise:a.resolve()}}}},"core/src/lib/actions/helpers/decorators/decorateNonGlobalJavaScriptCode.js":{script:function(e,n,t){"use strict";var a=t("@adobe/reactor-promise"),r=0;e.exports=function(e,n){var t="_runScript"+ ++r,s=new a((function(n,r){_satellite[t]=function(s){delete _satellite[t],new a((function(n){n(s.call(e.event.element,e.event,e.event.target,a))})).then(n,r)}}));return{code:'<script>_satellite["'+t+'"](function(event, target, Promise) {\n'+n+"\n});</script>",promise:s}}}},"core/src/lib/actions/helpers/decorators/decorateHtmlCode.js":{script:function(e,n,t,a){"use strict";var r=t("@adobe/reactor-promise"),s=0,i={};window._satellite=window._satellite||{},window._satellite._onCustomCodeSuccess=function(e){var n=i[e];n&&(delete i[e],n.resolve())},window._satellite._onCustomCodeFailure=function(e){var n=i[e];n&&(delete i[e],n.reject())};var o=function(e){return-1!==e.indexOf("${reactorCallbackId}")},c=function(e,n){return e.replace(/\${reactorCallbackId}/g,n)},l=function(e){return e.settings.isExternal};e.exports=function(e,n){var t;return l(e)&&(n=a.replaceTokens(n,e.event)),o(n)?(t=new r((function(e,n){i[String(s)]={resolve:e,reject:n}})),n=c(n,s),s+=1):t=r.resolve(),{code:n,promise:t}}}},"core/src/lib/actions/helpers/getSourceByUrl.js":{script:function(e,n,t){"use strict";var a=t("@adobe/reactor-load-script"),r=t("@adobe/reactor-promise"),s=t("../../helpers/findPageScript").byRegexPattern,i={},o={},c=function(e){return o[e]||(o[e]=a(e)),o[e]};_satellite.__registerScript=function(e,n){var t;if(document.currentScript)t=document.currentScript.getAttribute("src");else{var a=new RegExp(".*"+e+".*");t=s(a).getAttribute("src")}i[t]=n},e.exports=function(e){return i[e]?r.resolve(i[e]):new r((function(n){c(e).then((function(){n(i[e])}),(function(){n()}))}))}}},"core/src/lib/events/helpers/pageLifecycleEvents.js":{script:function(e,n,t){"use strict";var a=t("@adobe/reactor-window"),r=t("@adobe/reactor-document"),s=-1!==a.navigator.appVersion.indexOf("MSIE 10"),i="WINDOW_LOADED",o="DOM_READY",c="PAGE_BOTTOM",l=[c,o,i],d=function(e,n){return{element:e,target:e,nativeEvent:n}},p={};l.forEach((function(e){p[e]=[]}));var u=function(e,n){l.slice(0,m(e)+1).forEach((function(e){b(n,e)}))},g=function(){return"complete"===r.readyState?i:"interactive"===r.readyState?s?null:o:void 0},m=function(e){return l.indexOf(e)},b=function(e,n){p[n].forEach((function(n){h(e,n)})),p[n]=[]},h=function(e,n){var t=n.trigger,a=n.syntheticEventFn;t(a?a(e):null)};a._satellite=a._satellite||{},a._satellite.pageBottom=u.bind(null,c),r.addEventListener("DOMContentLoaded",u.bind(null,o),!0),a.addEventListener("load",u.bind(null,i),!0),a.setTimeout((function(){var e=g();e&&u(e)}),0),e.exports={registerLibraryLoadedTrigger:function(e){e()},registerPageBottomTrigger:function(e){p[c].push({trigger:e})},registerDomReadyTrigger:function(e){p[o].push({trigger:e,syntheticEventFn:d.bind(null,r)})},registerWindowLoadedTrigger:function(e){p[i].push({trigger:e,syntheticEventFn:d.bind(null,a)})}}}},"core/src/lib/helpers/textMatch.js":{script:function(e){"use strict";e.exports=function(e,n){if(null==n)throw new Error("Illegal Argument: Pattern is not present");return null!=e&&("string"==typeof n?e===n:n instanceof RegExp&&n.test(e))}}},"core/src/lib/events/helpers/createBubbly.js":{script:function(e,n,t){"use strict";var a=t("./weakMap"),r=t("./matchesProperties"),s=t("./matchesSelector");e.exports=function(){var e=[],n=new a,t={addListener:function(n,t){e.push({settings:n,callback:t})},evaluateEvent:function(t,a){if(e.length&&!n.has(t)){for(var i=t.target,o=!1;i;){for(var c=!1,l=!1,d=0;d<e.length;d++){var p=e[d],u=p.settings.elementSelector,g=p.settings.elementProperties;if((!1!==p.settings.bubbleFireIfChildFired||!o)&&(i===t.target||!1!==p.settings.bubbleFireIfParent)&&(i===t.target||u||g&&Object.keys(g).length)&&(!u||s(i,u))&&(!g||r(i,g))){var m={};a?Object.keys(t).forEach((function(e){m[e]=t[e]})):m.nativeEvent=t,m.element=i,m.target=t.target,!1!==p.callback(m)&&(l=!0,p.settings.bubbleStop&&(c=!0))}}if(c)break;l&&(o=!0),i=i.parentNode}n.set(t,!0)}},__reset:function(){e=[]}};return t}}},"core/src/lib/events/helpers/weakMap.js":{script:function(e,n,t){"use strict";var a=t("@adobe/reactor-window").WeakMap;if(void 0===a){var r=Object.defineProperty,s=Date.now()%1e9;(a=function(){this.name="__st"+(1e9*Math.random()>>>0)+s+++"__"}).prototype={set:function(e,n){var t=e[this.name];return t&&t[0]===e?t[1]=n:r(e,this.name,{value:[e,n],writable:!0}),this},get:function(e){var n;return(n=e[this.name])&&n[0]===e?n[1]:void 0},delete:function(e){var n=e[this.name];return!(!n||n[0]!==e||(n[0]=n[1]=void 0,0))},has:function(e){var n=e[this.name];return!!n&&n[0]===e}}}
5e.exports=a}},"core/src/lib/events/helpers/matchesProperties.js":{script:function(e,n,t){"use strict";var a=t("./../../helpers/textMatch"),r=function(e,n){return"@text"===n||"innerText"===n?e.textContent||e.innerText:n in e?e[n]:e.getAttribute?e.getAttribute(n):void 0};e.exports=function(e,n){return!n||n.every((function(n){var t=r(e,n.name),s=n.valueIsRegex?new RegExp(n.value,"i"):n.value;return a(t,s)}))}}},"core/src/lib/events/helpers/matchesSelector.js":{script:function(e,n,t,a){"use strict";e.exports=function(e,n){var t=e.matches||e.msMatchesSelector;if(t)try{return t.call(e,n)}catch(e){return a.logger.warn("Matching element failed. "+n+" is not a valid selector."),!1}return!1}}}}},"adobe-alloy":{displayName:"Adobe Experience Platform Web SDK",hostedLibFilesBaseUrl:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/hostedLibFiles/EP4358ab604ea246b4a92a384c9671bfd7/",settings:{instances:[{name:"alloy",edgeDomain:"smetrics.westpac.com.au",edgeConfigId:"908462a1-4ab5-4f02-aa99-d0a2546c4a01",defaultConsent:"pending",prehidingStyle:"/*\nHide elements as necessary. For example:\n#container { opacity: 0 !important }\nbody { opacity: 0 !important }\nbody { visibility:hidden !important}\n*/\n\n#container { opacity: 0 !important }",clickCollection:{filterClickDetails:function(){},downloadLinkEnabled:!1,eventGroupingEnabled:!0,sessionStorageEnabled:!0},onBeforeEventSend:function(e){e&&e.xdm&&e.xdm.web&&e.xdm.web.webInteraction&&(/^data\:application\/pdf.*/i.test(e.xdm.web.webInteraction.name)&&(console.log("data:application/pdf"),e.xdm.web.webInteraction.URL="dynamic-pdf",e.xdm.web.webInteraction.name="dynamic-pdf"),helper.lStor("set","a_name",e.xdm.web.webInteraction.name),helper.lStor("set","a_region",e.xdm.web.webInteraction.region),helper.lStor("set","a_type",e.xdm.web.webInteraction.type),helper.lStor("set","a_url",e.xdm.web.webInteraction.URL)),e.data["dd.url"]=helper.getLoc().protocol+"//"+helper.getLoc().hostname+helper.cleanGUID(helper.getLoc().pathname.replace(/\/$/g,"")+(helper.getLoc().hash.length>0?"/"+helper.getLoc().hash:"")),e.data["dd.urlFull"]=helper.cleanGUID(helper.getLoc().href),e.data["dd.visitorID"]=helper.marketingCloudVisitorID(),e.data["dd.analyticsVersion"]="a:"+helper.c_r("s_aver")+" hlp:"+helper.version+" env:"+(pageDetails.siteEnv||"")+" c:24082024 h:"+helper.getLoc().hostname,e.data["dd.dayTime"]=helper.timePart();var n=helper.cookieRead("s_consent");n&&(e.data["dd.performance"]=/\|a:y\|/i.test(n)?"true":"false",e.data["dd.personalisation"]=/\|p:y\|/i.test(n)?"true":"false",e.data["dd.thirdParties"]=/\|o:y/i.test(n)?"true":"false",e.data["dd.regulation"]=(/r:([^|]+)\|/i.exec(n)||[])[1]||"",e.data["dd.geolocation"]=(/^([^|]+)\|/i.exec(n)||[])[1]||""),e.xdm.web.webPageDetails.URL=helper.getLoc().href},stagingEdgeConfigId:"457819b2-1126-4e89-b9a0-ae4a4699c40b",developmentEdgeConfigId:"a01c285a-5679-4421-83e6-c79793281832",thirdPartyCookiesEnabled:!1,personalizationStorageEnabled:!0,autoCollectPropositionInteractions:{AJO:"never",TGT:"always"}}],components:{streamingMedia:!1,mediaAnalyticsBridge:!1}},modules:{"adobe-alloy/dist/lib/instanceManager/index.js":{script:function(e,n,t,a){"use strict";const{createCustomInstance:r,createEventMergeId:s,components:i}=t("../alloy"),o=t("./createInstanceManager"),c=t("./injectWrapOnBeforeEventSend"),l=t("../utils/createGetConfigOverrides"),d=c({version:"2.37.0"});e.exports=o({turbine:a,window:window,createCustomInstance:r,components:i,createEventMergeId:s,orgId:_satellite.company.orgId,wrapOnBeforeEventSend:d,getConfigOverrides:l(a.environment?.stage)})}},"adobe-alloy/dist/lib/alloy.js":{script:function(e,n,t){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}function r(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)"__proto__"!==a&&(e[a]=t[a])}return e}function s(e,n){function t(t,a,s){if("undefined"!=typeof document){"number"==typeof(s=r({},n,s)).expires&&(s.expires=new Date(Date.now()+864e5*s.expires)),s.expires&&(s.expires=s.expires.toUTCString()),t=encodeURIComponent(t).replace(/%(2[346B]|5E|60|7C)/g,decode
5URIComponent).replace(/[()]/g,escape);var i="";for(var o in s)s[o]&&(i+="; "+o,!0!==s[o]&&(i+="="+s[o].split(";")[0]));return document.cookie=t+"="+e.write(a,t)+i}}function a(n){if("undefined"!=typeof document&&(!arguments.length||n)){for(var t=document.cookie?document.cookie.split("; "):[],a={},r=0;r<t.length;r++){var s=t[r].split("="),i=s.slice(1).join("=");try{var o=decodeURIComponent(s[0]);if(o in a||(a[o]=e.read(i,o)),n===o)break}catch{}}return n?a[n]:a}}return Object.create({set:t,get:a,remove:function(e,n){t(e,"",r({},n,{expires:-1}))},withAttributes:function(e){return s(this.converter,r({},this.attributes,e))},withConverter:function(e){return s(r({},this.converter,e),this.attributes)}},{attributes:{value:Object.freeze(n)},converter:{value:Object.freeze(e)}})}function i(e,n=0){return(bt[e[n+0]]+bt[e[n+1]]+bt[e[n+2]]+bt[e[n+3]]+"-"+bt[e[n+4]]+bt[e[n+5]]+"-"+bt[e[n+6]]+bt[e[n+7]]+"-"+bt[e[n+8]]+bt[e[n+9]]+"-"+bt[e[n+10]]+bt[e[n+11]]+bt[e[n+12]]+bt[e[n+13]]+bt[e[n+14]]+bt[e[n+15]]).toLowerCase()}function o(){return crypto.getRandomValues(ht)}function c(e){return crypto.randomUUID?crypto.randomUUID():l(e)}function l(e){const n=(e=e||{}).random??e.rng?.()??o();if(n.length<16)throw new Error("Random bytes length must be >= 16");return n[6]=15&n[6]|64,n[8]=63&n[8]|128,i(n)}function d(e){return"object"==typeof e||void 0===e}function p(){return{matches:(e,n,t=[])=>{if(d(e[n]))return!1;const a=String(e[n]).toLowerCase();for(let e=0;e<t.length;e+=1)if(!d(t[e])&&a===String(t[e]).toLowerCase())return!0;return!1}}}function u(){return{matches:(e,n,t=[])=>{if(d(e[n]))return!1;const a=String(e[n]).toLowerCase();for(let e=0;e<t.length;e+=1)if(!d(t[e])&&a===String(t[e]).toLowerCase())return!1;return!0}}}function g(){return{matches:(e,n)=>void 0!==e[n]&&null!==e[n]}}function m(){return{matches:(e,n)=>void 0===e[n]||null===e[n]}}function b(e){return"number"==typeof e}function h(){return{matches:(e,n,t=[])=>{const a=e[n];if(!b(a))return!1;for(let e=0;e<t.length;e+=1)if(b(t[e])&&a>t[e])return!0;return!1}}}function f(){return{matches:(e,n,t=[])=>{const a=e[n];if(!b(a))return!1;for(let e=0;e<t.length;e+=1)if(b(t[e])&&a>=t[e])return!0;return!1}}}function v(){return{matches:(e,n,t=[])=>{const a=e[n];if(!b(a))return!1;for(let e=0;e<t.length;e+=1)if(b(t[e])&&a<t[e])return!0;return!1}}}function y(){return{matches:(e,n,t=[])=>{const a=e[n];if(!b(a))return!1;for(let e=0;e<t.length;e+=1)if(b(t[e])&&a<=t[e])return!0;return!1}}}function k(){return{matches:(e,n,t=[])=>{if(d(e[n]))return!1;const a=String(e[n]).toLowerCase();for(let e=0;e<t.length;e+=1)if(!d(t[e])&&-1!==a.indexOf(String(t[e]).toLowerCase()))return!0;return!1}}}function w(){return{matches:(e,n,t=[])=>{if(d(e[n]))return!1;const a=String(e[n]).toLowerCase();for(let e=0;e<t.length;e+=1)if(!d(t[e])&&-1!==a.indexOf(String(t[e]).toLowerCase()))return!1;return!0}}}function x(){return{matches:(e,n,t=[])=>{if(d(e[n]))return!1;const a=String(e[n]).toLowerCase();for(let e=0;e<t.length;e+=1)if(!d(t[e])&&a.startsWith(String(t[e]).toLowerCase()))return!0;return!1}}}function P(){return{matches:(e,n,t=[])=>{if(d(e[n]))return!1;const a=String(e[n]).toLowerCase();for(let e=0;e<t.length;e+=1)if(!d(t[e])&&a.endsWith(t[e].toLowerCase()))return!0;return!1}}}function C(e){return Wi[e]}function _(e){return void 0===e}function T(e,n,t,a=0,r=1/0){return e.reduce(((e,s)=>{try{const i=t.generateEventHash(eo(s)),o=n.events[i];if(!o)return e;const{timestamps:c=[]}=o;return e+c.filter((e=>e>=a&&e<=r)).length}catch{return e}}),0)}function D(e,n,t,a=0,r=1/0){try{let s=a;const i=e.every((e=>{const a=t.generateEventHash(eo(e)),i=n.events[a];if(!i)return!1;const o=i.timestamps[0],c=o>=s&&o<=r;return s=o,c}));return Number(i)}catch{return 0}}function S(e,n,t,a=0,r=1/0){try{return e.reduce(((e,s,i)=>{const o=t.generateEventHash(eo(s)),c=n.events[o];if(!c)return e;const l=c.timestamps.filter((e=>e>=a&&e<=r)).pop();return l&&l>e.timestamp?{index:i,timestamp:l}:e}),{index:-1,timestamp:0}).index}catch{return-1}}function I(e,n,t){let a=!0;for(let r=0;r<n.length;r+=1)a=a&&n[r].evaluate(e,t);return a}function E(e,n,t){let a=!1;for(let r=0;r<n.length;r+=1)if(a=a||n[r].evaluate(e,t),a)return!0;return!1}function V(e,n,t){return{version:e,rules:n,metadata:t}}function R(e,n,t){return{key:t,execute:(t,a)=>e.evaluate(t,a)?n:[],toString:()=>`Rule{condition=${e}, consequences=${n}}`}}function N(e,n){return{evaluate:(e,t)=>
5n.evaluate(e,t),toString:()=>`Condition{type=${e}, definition=${n}}`}}function O(e,n,t){return{id:e,type:n,detail:t}}function j(e,n){return{evaluate:(t,a)=>Ki.AND===e?I(t,n,a):Ki.OR===e&&E(t,n,a)}}function A(e,n,t){return{evaluate:a=>{const r=C(n);return!!r&&r.matches(a,e,t)}}}function L(e,n,t,a,r,s){return{evaluate:(i,o)=>{let c;return c=zi.MOST_RECENT===s?S(e,i,o,a,r):zi.ORDERED===s?D(e,i,o,a,r):T(e,i,o,a,r),Xi(c,n,t)}}}function q(e){const{key:n,matcher:t,values:a}=e;return A(n,t,a)}function M(e){const{logic:n,conditions:t}=e;return j(n,t.map(B))}function F(e){const{events:n,from:t,to:a,matcher:r,value:s,searchType:i}=e;return L(n,r,s,t,a,i)}function B(e){const{type:n,definition:t}=e;if($i.MATCHER===n)return N(n,q(t));if($i.GROUP===n)return N(n,M(t));if($i.HISTORICAL===n)return N(n,F(t));throw new Error("Can not parse condition")}function U(e){const{id:n,type:t,detail:a}=e;return O(n,t,a)}function $(e){const{condition:n,consequences:t,key:a}=e;return R(B(n),t.map(U),a)}function H(e){if(e)return{provider:e.provider,providerData:Object.assign({},e.providerData)}}function K(e){const{version:n,rules:t,metadata:a}=e;return V(n,t.map($),H(a))}function z(e,n){return{provider:to,execute:t=>e.map((e=>e.execute(t,n))).filter((e=>e.length>0))}}function W(e){const{providerData:n}=e;if(!n)throw new Error("Provider data is missing in metadata");const{identityTemplate:t,buckets:a}=n;if(!t)throw new Error("Identity template is missing in provider data");if(!a)throw new Error("Buckets is missing in provider data")}function G(e){const{xdm:n}=e;if(!n)throw new Error("XDM object is missing in the context");const{identityMap:t}=n;if(!t)throw new Error("Identity map is missing in the XDM object");const a=t[ao];if(!a)throw new Error("ECID identity namespace is missing in the identity map");if(!Array.isArray(a)||0===a.length)throw new Error("ECID identities array is empty or not an array");const r=a[0].id;if(!r)throw new Error("ECID identity is missing in the identities array");return r}function Q(e,n,t){const{providerData:a}=t,{identityTemplate:r}=a;return r.replace(ro,n).replace(so,e)}function J(e){return!_(e)}function Z(e,n=e=>e[0]){const t={};return function(...a){const r=n(a);return J(t[r])||(t[r]=e(...a)),t[r]}}function X(e,n){const t=65535&n;return((n-t)*e|0)+(t*e|0)|0}function Y(e,n=0){let t;const a=e.length,r=3432918353,s=461845907;let i=n;const o=-2&a;for(let n=0;n<o;n+=2)t=e.charCodeAt(n)|e.charCodeAt(n+1)<<16,t=X(t,r),t=(131071&t)<<15|t>>>17,t=X(t,s),i^=t,i=(524287&i)<<13|i>>>19,i=5*i+3864292196|0;return a%2==1&&(t=e.charCodeAt(o),t=X(t,r),t=(131071&t)<<15|t>>>17,t=X(t,s),i^=t),i^=a<<1,i^=i>>>16,i=X(i,2246822507),i^=i>>>13,i=X(i,3266489909),i^=i>>>16,i}function ee(e,n){const t=io(e),a=Math.abs(t)%n/n*oo;return Math.round(a*oo)/oo}function ne(e,n,t){return{allocation:co(e,n),...t}}function te(e){const n={};for(let t=0;t<e.length;t+=1){const a=e[t];a.key&&(n[a.key]||(n[a.key]=[]),n[a.key].push(a))}return n}function ae(e,n){return n.map((n=>n.execute(e))).filter((e=>e.length>0))}function re(e,n){W(n);const t=e.filter((e=>!e.key)),a=te(e),{buckets:r}=n.providerData;return{provider:no,execute:e=>{const s=G(e),i=ae(e,t),o=Object.keys(a),c=[];for(let t=0;t<o.length;t+=1){const i=o[t],l=a[i],d=ae(ne(Q(s,i,n),r,e),l);c.push(...d)}return[...i,...c]}}}function se(e,n,t){const{provider:a}=n;return a===no?re(e,n):z(e,t)}function ie(e,n={generateEventHash:()=>{throw new Error("No hash function provided")}}){const{rules:t,metadata:a={}}=K(e);return se(t,a,n)}function oe(e,n=0){return(Vg[e[n+0]]+Vg[e[n+1]]+Vg[e[n+2]]+Vg[e[n+3]]+"-"+Vg[e[n+4]]+Vg[e[n+5]]+"-"+Vg[e[n+6]]+Vg[e[n+7]]+"-"+Vg[e[n+8]]+Vg[e[n+9]]+"-"+Vg[e[n+10]]+Vg[e[n+11]]+Vg[e[n+12]]+Vg[e[n+13]]+Vg[e[n+14]]+Vg[e[n+15]]).toLowerCase()}function ce(){return crypto.getRandomValues(Rg)}function le(e){return crypto.randomUUID?crypto.randomUUID():de(e)}function de(e){const n=(e=e||{}).random??e.rng?.()??ce();if(n.length<16)throw new Error("Random bytes length must be >= 16");return n[6]=15&n[6]|64,n[8]=63&n[8]|128,oe(n)}Object.defineProperty(n,"__esModule",{value:!0}),n.deepAssign=n.createEventMergeId=n.createCustomInstance=n.components=void 0;var pe=a(t("@adobe/reactor-query-string")),ue=e=>null==e,ge=e=>!ue(e)&&!Array.isArray(e)&&"object"==typeof e,me=(...e)=>e.length<2?Object.assign(...e):e.reduce(((e,n)=>
5(ge(n)&&Object.keys(n).forEach((t=>{Array.isArray(n[t])?Array.isArray(e[t])?e[t].push(...n[t]):e[t]=[...n[t]]:e[t]=n[t]})),e)));const be=e=>{const n=(e+"=".repeat((4-e.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/"),t=atob(n);return Uint8Array.from(t,(e=>e.codePointAt(0)))};var he=s({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"}),fe={get:he.get.bind(he),set:he.set.bind(he),remove:he.remove.bind(he),withConverter:he.withConverter.bind(he)};const ve=["__proto__","constructor","prototype"],ye=(e,n)=>{Object.keys(n).forEach((t=>{ve.includes(t)||(ge(e[t])&&ge(n[t])?ye(e[t],n[t]):e[t]=n[t])}))};var ke=(e,...n)=>{if(ue(e))throw new TypeError('deepAssign "target" cannot be null or undefined');const t=Object(e);return n.forEach((e=>ye(t,Object(e)))),t},we=(e,n)=>t=>{const a=n.split(".").reduce(((e,n)=>(e[n]=e[n]||{},e[n])),e);ke(a,t)},xe=()=>{const e=[];return{add(n){e.push(n)},call:(...n)=>Promise.all(e.map((e=>e(...n))))}},Pe=({logger:e,cookieJar:n})=>({...n,set:(t,a,r)=>(e.info("Setting cookie",{name:t,value:a,...r}),n.set(t,a,r))}),Ce=()=>{let e=0,n=Promise.resolve();return{addTask(t){e+=1;const a=()=>t().finally((()=>{e-=1}));return n=n.then(a,a),n},get length(){return e}}},_e=()=>{const e={};return e.promise=new Promise(((n,t)=>{e.resolve=n,e.reject=t})),e};const Te=(e,n)=>e===n,De=(e,n,t)=>{for(let a=0;a<e.length;a+=1)if(t(e[a],n))return a;return-1};var Se=(e,n=Te)=>e.filter(((t,a)=>De(e,t,n)===a)),Ie=(e,n)=>e.appendChild(n);const Ee=(e,n)=>{Object.keys(n).forEach((t=>{if("style"===t&&ge(n[t])){const a=n[t];Object.keys(a).forEach((n=>{e.style[n]=a[n]}))}else e[t]=n[t]}))};var Ve=(e,n={},t={},a=[],r=document)=>{const s=r.createElement(e);return Object.keys(n).forEach((e=>{s.setAttribute(e,n[e])})),Ee(s,t),a.forEach((e=>Ie(s,e))),s};const Re="BODY",Ne="IFRAME",Oe="IMG",je="DIV",Ae="STYLE",Le="SCRIPT",qe="HEAD";var Me=({src:e,currentDocument:n=document})=>new Promise(((t,a)=>{Ve(Oe,{src:e},{onload:t,onerror:a,onabort:a},[],n)})),Fe=e=>"function"==typeof e,Be=e=>Array.isArray(e)&&e.length>0,Ue=e=>Array.isArray(e)?e:null==e?[]:[].slice.call(e);const $e=/^\s*>/;var He=(e,n)=>$e.test(n)?Ue(e.querySelectorAll(`:scope ${n}`)):Ue(e.querySelectorAll(n)),Ke=":shadow";const ze=e=>e.split(Ke),We=(e,n)=>{const t=n;return t.startsWith(">")?`${e instanceof Element||e instanceof Document?":scope":":host"} ${t}`:t};var Ge=(e,n)=>{const t=ze(n);if(t.length<2)return He(e,n);let a=e;for(let e=0;e<t.length;e+=1){const n=t[e].trim();if(""===n&&a.shadowRoot){a=a.shadowRoot;continue}const r=We(a,n),s=He(a,r);if(0===s.length||!s[0]||!s[0].shadowRoot)return s;a=s[0].shadowRoot}},Qe=e=>-1!==e.indexOf(Ke),Je=(e,n=document)=>Qe(e)?Ge(n,e):He(n,e);const Ze="MutationObserver",Xe="requestAnimationFrame",Ye={childList:!0,subtree:!0},en="visibilityState",nn="visible",tn=100,an=5e3,rn=e=>new Error(`Could not find: ${e}`),sn=e=>new Promise(e),on=e=>Fe(e[Ze]),cn=(e,n,t,a,r)=>sn(((s,i)=>{let o;const c=new e[Ze]((()=>{const e=r(t);Be(e)&&(c.disconnect(),o&&clearTimeout(o),s(e))}));o=setTimeout((()=>{c.disconnect(),i(rn(t))}),a),c.observe(n,Ye)})),ln=e=>e[en]===nn,dn=(e,n,t,a)=>sn(((r,s)=>{const i=()=>{const t=a(n);Be(t)?r(t):e[Xe](i)};i(),setTimeout((()=>{s(rn(n))}),t)})),pn=(e,n,t)=>sn(((a,r)=>{const s=()=>{const n=t(e);Be(n)?a(n):setTimeout(s,tn)};s(),setTimeout((()=>{r(rn(e))}),n)}));var un=(e,n=Je,t=an,a=window,r=document)=>{const s=n(e);return Be(s)?Promise.resolve(s):on(a)?cn(a,r,e,t,n):ln(r)?dn(a,e,t,n):pn(e,t,n)},gn=(e,n)=>n.matches?n.matches(e):n.msMatchesSelector(e),mn=e=>{const n=e.parentNode;return n?n.removeChild(e):null};const bn={name:"Adobe Alloy"},hn={style:{display:"none",width:0,height:0}};var fn=({appendNode:e=Ie,awaitSelector:n=un,createNode:t=Ve,fireImage:a=Me}={})=>{const r=a;let s;const i=()=>n(Re).then((([n])=>s||(s=t(Ne,bn,hn),e(n,s)))),o=({src:e})=>i().then((n=>{const t=n.contentWindow.document;return a({src:e,currentDocument:t})}));return e=>{const{hideReferrer:n,url:t}=e;return n?o({src:t}):r({src:t})}},vn=e=>ge(e)&&0===Object.keys(e).length;const yn=(e,n)=>ue(e)||!ge(e)?e:Object.keys(e).reduce(((t,a)=>{const r=e[a];if(ge(r)){const e=yn(r,n);return vn(e)?t:{...t,[a]:e}}return n(r,a)?{...t,[a]:r}:t}),{}),kn=e=>{let n=2166136261;const t=16777619,a=(new TextEncoder).encode(e);for(let e=0;e<a.length;e+=1)n^=a[e],n=Math.imul(n,t);return n>>>0},wn=e=>kn(e).toString(16).padStart(8,"0");var xn="com.adobe.alloy.",Pn=(e,n)=>e.slice(-n);const Cn=`${xn}getTld`;var _n=(e,n)=>{let t="";const a=e.toLowerCase().split(".");let r=1;for(;r<a.length&&!n.get(Cn);)r+=1,t=Pn(a,r).join("."),n.set(Cn,Cn,{domain:t});return n.remove(Cn,{domain:t}),t}
5,Tn="kndctr",Dn=e=>e.replace("@","_"),Sn=(e,n)=>`${Tn}_${Dn(e)}_${n}`,In=(e,n)=>{const t={};return e.forEach((e=>{const a=n(e);t[a]||(t[a]=[]),t[a].push(e)})),t};const En="Chrome",Vn="Edge",Rn="EdgeChromium",Nn="Firefox",On="IE",jn="Safari",An="Unknown";var Ln=e=>{let n,t=!1;return()=>(t||(t=!0,n=e()),n)};const qn=[En,Vn,Rn,On,An];var Mn=({getBrowser:e})=>Ln((()=>qn.includes(e())));const Fn="identity",Bn="consent",Un="cluster";var $n=({orgId:e})=>{const n=Sn(e,Fn);return()=>Boolean(fe.get(n))};const Hn=(e,n)=>{const t=Object.keys(e);for(let a=0;a<t.length;a+=1){const r=t[a];if(e[r].test(n))return r}return An};var Kn=({userAgent:e})=>Ln((()=>Hn({[Vn]:/Edge\/([0-9\._]+)/,[Rn]:/Edg\/([0-9\.]+)/,[En]:/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/,[Nn]:/Firefox\/([0-9\.]+)(?:\s|$)/,[On]:/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/,[jn]:/Version\/([0-9\._]+).*Safari/},e)));const zn=(e,n,t)=>({getItem(a){try{return e[n].getItem(t+a)}catch{return null}},setItem(a,r){try{return e[n].setItem(t+a,r),!0}catch{return!1}},clear(){try{return Object.keys(e[n]).forEach((a=>{a.startsWith(t)&&e[n].removeItem(a)})),!0}catch{return!1}}});var Wn=e=>n=>{const t=xn+n;return{session:zn(e,"sessionStorage",t),persistent:zn(e,"localStorage",t)}},Gn=(e,n)=>e.filter((e=>n.includes(e))),Qn=e=>"boolean"==typeof e,Jn=e=>"number"==typeof e&&!Number.isNaN(e),Zn=e=>{const n=parseInt(e,10);return Jn(n)&&e===n},Xn=(e,n)=>0===n.indexOf(`${Tn}_${Dn(e)}_`),Yn=e=>"string"==typeof e,et=e=>Yn(e)&&e.length>0,nt=()=>{};const tt=e=>{const n={},t=e.split(".");switch(t.length){case 1:n.subdomain="",n.domain=e,n.topLevelDomain="";break;case 2:n.subdomain="",n.domain=e,n.topLevelDomain=t[1];break;case 3:n.subdomain="www"===t[0]?"":t[0],n.domain=e,n.topLevelDomain=t[2];break;case 4:n.subdomain="www"===t[0]?"":t[0],n.domain=e,n.topLevelDomain=`${t[2]}.${t[3]}`}return n},at=e=>{try{const n=new URL(e);let t=n.pathname;return e.endsWith("/")||"/"!==t||(t=""),{host:n.hostname,path:t,query:n.search.replace(/^\?/,""),anchor:n.hash.replace(/^#/,"")}}catch{return{host:"",path:"",query:"",anchor:""}}},rt=(e,n=tt)=>{Yn(e)||(e="");const t=at(e),{host:a,path:r,query:s,anchor:i}=t;return{path:r,query:s,fragment:i,...n(a)}};var st=e=>{if(ue(e)||"object"!=typeof e)return null;const n=yn(e,((e,n)=>!(ue(e)||(!Qn(e)||"enabled"===n&&!1!==e)&&!Jn(e)&&!et(e)&&!Be(e))));return vn(n)?null:n};const it=e=>Array.isArray(e)?e.map((e=>it(e))):"object"==typeof e&&null!==e?Object.keys(e).sort().reduce(((n,t)=>(n[t]=it(e[t]),n)),{}):e;var ot=e=>it(e),ct=e=>e instanceof Error?e:new Error(e),lt=({error:e,message:n})=>{try{e.message=n}catch{}},dt=({error:e,message:n})=>{const t=ct(e),a=`${n}\nCaused by: ${t.message}`;return lt({error:t,message:a}),t},pt=e=>Yn(e)&&"true"===e.toLowerCase(),ut=(e,n)=>{if(Jn(e)||Yn(e)){const n=Math.round(Number(e));if(!Number.isNaN(n))return n}return n};const gt=(e,n,t)=>`${e}`.padStart(n,t);var mt=e=>{const n=e.getFullYear(),t=gt(e.getMonth()+1,2,"0"),a=gt(e.getDate(),2,"0"),r=gt(e.getHours(),2,"0"),s=gt(e.getMinutes(),2,"0"),i=gt(e.getSeconds(),2,"0"),o=gt(e.getMilliseconds(),3,"0"),c=ut(e.getTimezoneOffset(),0);return`${n}-${t}-${a}T${r}:${s}:${i}.${o}${c>0?"-":"+"}${gt(Math.floor(Math.abs(c)/60),2,"0")}:${gt(Math.abs(c)%60,2,"0")}`};const bt=[];for(let e=0;e<256;++e)bt.push((e+256).toString(16).slice(1));const ht=new Uint8Array(16),ft=e=>function(n,t){return null==n?n:e.call(this,n,t)},vt=(e,n)=>function(t,a){return n.call(this,e.call(this,t,a),a)},yt=(e,n)=>function(t,a){const r=[],s=[e,n].reduce(((e,n)=>{try{return n.call(this,e,a)}catch(n){return r.push(n),e}}),t);if(r.length)throw new Error(r.join("\n"));return s},kt=(e,n,t)=>Object.assign(vt(e,n),e,t),wt=(e,n,t)=>Object.assign(vt(e,ft(n)),e,t),xt=(e,n,t)=>Object.assign(yt(ft(n),e),e,t),Pt=(e,n,t,a)=>{if(!e)throw new Error(`'${t}': Expected ${a}, but got ${JSON.stringify(n)}.`)};var Ct=(e,n)=>(Pt(Qn(e),e,n,"true or false"),e),_t=(e,n)=>(Pt(Fe(e),e,n,"a function"),e),Tt=(e,n)=>function(t,a){let r;const s=e.find((e=>{try{return r=e.call(this,t,a),!0}catch{return!1}}));return Pt(s,t,a,n),r},Dt=e=>function(n,t){Pt(Array.isArray(n),n,t,"an array");const a=[],r=n.map(((r,s)=>{try{return e.call(this,r,`${t}[${s}]`,n)}catch(e){return void a.push(e.message)}}));if(a.length)throw new Error(a.join("\n"));return r},St=e=>n=>null==n?e:n,It=(e="This field has been deprecated")=>function(n,t){let a=e;return void 0!==n&&(t&&(a=`'${t}': ${a}`),this&&this.logger&&this.logger.warn(a)),n},Et=e=>(n,t)=>(Pt(n===e,n,t,`${e}`),n),Vt=e=>function(n,t){Pt(ge(n),n,t,"an object");const a=[],r={};
5if(Object.keys(n).forEach((s=>{const i=n[s],o=t?`${t}.${s}`:s;try{const n=e.call(this,i,o);void 0!==n&&(r[s]=n)}catch(e){a.push(e.message)}})),a.length)throw new Error(a.join("\n"));return r},Rt=(e,n)=>(t,a)=>(Pt(t>=n,t,a,`${e} greater than or equal to ${n}`),t),Nt=(e,n)=>(t,a)=>(Pt(t<=n,t,a,`${e} less than or equal to ${n}`),t),Ot=e=>(n,t)=>{const a=[];if(Object.keys(n).forEach((n=>{if(!e[n]){const e=t?`${t}.${n}`:n;a.push(`'${e}': Unknown field.`)}})),a.length)throw new Error(a.join("\n"));return n},jt=e=>(n,t)=>(ge(n)?Pt(!vn(n),n,t,e):Pt(n.length>0,n,t,e),n),At=e=>function(n,t){Pt(ge(n),n,t,"an object");const a=[],r={};if(Object.keys(e).forEach((s=>{const i=n[s],o=e[s],c=t?`${t}.${s}`:s;try{const e=o.call(this,i,c);void 0!==e&&(r[s]=e)}catch(e){a.push(e.message)}})),Object.keys(n).forEach((e=>{Object.prototype.hasOwnProperty.call(r,e)||(r[e]=n[e])})),a.length)throw new Error(a.join("\n"));return r},Lt=(e,n,t)=>function(a,r){Pt(ge(a),a,r,"an object");const{[e]:s,[t]:i,...o}=a,c=n(s,r);if(void 0!==c){let n=`The field '${e}' is deprecated. Use '${t}' instead.`;if(r&&(n=`'${r}': ${n}`),void 0!==i&&i!==c)throw new Error(n);this&&this.logger&&this.logger.warn(n)}return{[t]:i||c,...o}},qt=()=>{const e=[];return(n,t)=>(Pt(-1===e.indexOf(n),n,t,"a unique value across instances"),e.push(n),n)},Mt=e=>{ 6const n=Object.create(null);for(let t=0;t<e.length;t+=1){const a=e[t];if(a in n)return!1;n[a]=!0}return!0},Ft=()=>(e,n)=>(Pt(Mt(e),e,n,"array values to be unique"),e);const Bt=/^[a-z0-9.-]{1,}$/i;var Ut=(e,n)=>(Pt(Bt.test(e),e,n,"a valid domain"),e),$t=(e,n)=>(Pt(Zn(e),e,n,"an integer"),e),Ht=(e,n)=>(Pt(Jn(e),e,n,"a number"),e),Kt=e=>{try{return null!==RegExp(e)}catch{return!1}},zt=(e,n)=>(Pt(Kt(e),e,n,"a regular expression"),e),Wt=(e,n)=>{if(null==e)throw new Error(`'${n}' is a required option`);return e},Gt=(e,n)=>(Pt(Yn(e),e,n,"a string"),e),Qt=e=>(n,t)=>(Pt(e.test(n),n,t,`does not match the ${e.toString()}`),n);const Jt=e=>e;Jt.default=function(e){return kt(this,St(e))},Jt.required=function(){return kt(this,Wt)},Jt.deprecated=function(e){return kt(this,It(e))};const Zt=function(){return wt(this,Ut)},Xt=function(e){return wt(this,Rt("an integer",e))},Yt=function(e){return wt(this,Rt("a number",e))},ea=function(e){return wt(this,Nt("a number",e))},na=function(){return wt(this,$t,{minimum:Xt})},ta=function(){return wt(this,jt("a non-empty string"))},aa=function(){return wt(this,jt("a non-empty array"))},ra=function(){return wt(this,jt("a non-empty object"))},sa=function(){return wt(this,zt)},ia=function(e){return wt(this,Qt(e))},oa=function(){return wt(this,qt())},ca=function(){return wt(this,Ft())},la=function(e,n){return kt(this,Tt(e,n))},da=function(){return this},pa=function(e){return wt(this,Dt(e),{nonEmpty:aa,uniqueItems:ca})},ua=function(){return wt(this,Ct)},ga=function(){return wt(this,_t)},ma=function(e){return wt(this,Et(e))},ba=function(){return wt(this,Ht,{minimum:Yt,maximum:ea,integer:na,unique:oa})},ha=function(e){return wt(this,Vt(e),{nonEmpty:ra})},fa=e=>({noUnknownFields:function(){return wt(this,Ot(e))},nonEmpty:ra,concat:function(n){const t={...e,...n.schema};return wt(this,n,fa(t))},renamed:function(e,n,t){return xt(this,Lt(e,n,t))},schema:e}),va=function(e){return wt(this,At(e),fa(e))},ya=function(){return wt(this,Gt,{regexp:sa,domain:Zt,nonEmpty:ta,unique:oa,matches:ia})},ka=la.bind(Jt),wa=da.bind(Jt),xa=pa.bind(Jt),Pa=ua.bind(Jt),Ca=ga.bind(Jt),_a=ma.bind(Jt),Ta=ba.bind(Jt),Da=ha.bind(Jt),Sa=va.bind(Jt),Ia=ya.bind(Jt),Ea=function(...e){return ka(e.map(_a),`one of these values: ${JSON.stringify(e)}`)};var Va=Da(xa(Sa({authenticatedState:Ea("ambiguous","authenticated","loggedOut"),id:Ia(),namespace:Sa({code:Ia()}).noUnknownFields(),primary:Pa(),xid:Ia()}).noUnknownFields()).required()),Ra=Sa({}),Na=({console:e,createLogger:n,instanceName:t,createNamespacedStorage:a,getMonitors:r})=>{const s=a(`instance.${t}.`),i=s.session.getItem("debug");let o="true"===i,c=null===i;const l=()=>o;return{setDebugEnabled:(e,{fromConfig:n})=>{n&&!c||(o=e),n||(s.session.setItem("debug",e.toString()),c=!1)},logger:n({getDebugEnabled:l,context:{instanceName:t},getMonitors:r,console:e}),createComponentLogger:a=>n({getDebugEnabled:l,context:{instanceName:t,componentName:a},getMonitors:r,console:e})}};const Oa=["onComponentsRegistered","onBeforeEvent","onBeforeRequest","onResponse","onRequestFailure","onClick","onDecision"],ja=(e,n)=>(...t)=>Promise.all(e.getLifecycleCallbacks(n).map((e=>new Promise((n=>{n(e(...t))}))))),Aa=e=>(...n)=>Promise.resolve().then((()=>e(...n)));var La=e=>Oa.reduce(((n,t)=>(n[t]=Aa(ja(e,t)),n)),{});const qa=(e,n)=>(...t)=>{let a;try{a=e(...t)}catch(e){throw dt({error:e,message:n})}return a instanceof Promise&&(a=a.catch((e=>{throw dt({error:e,message:n})}
6))),a};var Ma=()=>{const e={},n={},t={},a=(e,t={})=>{const a=Gn(Object.keys(n),Object.keys(t));if(a.length)throw new Error(`[ComponentRegistry] Could not register ${e} because it has existing command(s): ${a.join(",")}`);Object.keys(t).forEach((a=>{const r=t[a];r.commandName=a,r.run=qa(r.run,`[${e}] An error occurred while executing the ${a} command.`),n[a]=r}))},r=(e,n={})=>{Object.keys(n).forEach((a=>{t[a]=t[a]||[],t[a].push(qa(n[a],`[${e}] An error occurred while executing the ${a} lifecycle hook.`))}))};return{register(n,t){const{commands:s,lifecycle:i}=t;a(n,s),r(n,i),e[n]=t},getCommand:e=>n[e],getCommandNames:()=>Object.keys(n),getLifecycleCallbacks:e=>t[e]||[],getComponentNames:()=>Object.keys(e)}},Fa=({logger:e,sendFetchRequest:n,sendBeaconRequest:t,isRequestRetryable:a,getRequestRetryDelay:r})=>({requestId:s,url:i,payload:o,useSendBeacon:c})=>{const l=JSON.stringify(o),d=JSON.parse(l);e.logOnBeforeNetworkRequest({url:i,requestId:s,payload:d});const p=(o=0)=>(c?t:n)(i,l).then((n=>{if(a({response:n,retriesAttempted:o})){const e=r({response:n,retriesAttempted:o});return new Promise((n=>{setTimeout((()=>{n(p(o+1))}),e)}))}let t;try{t=JSON.parse(n.body)}catch{}return e.logOnNetworkResponse({requestId:s,url:i,payload:d,...n,parsedBody:t,retriesAttempted:o}),{statusCode:n.statusCode,body:n.body,parsedBody:t,getHeader:n.getHeader}}));return p().catch((n=>{throw e.logOnNetworkError({requestId:s,url:i,payload:d,error:n}),dt({error:n,message:"Network request failed."})}))},Ba=({logger:e})=>n=>{if(n){const t=n.split(";");if(t.length>=2&&t[1].length>0)try{const e=parseInt(t[1],10);if(!Number.isNaN(e))return{regionId:e}}catch{}e.warn(`Invalid adobe edge: "${n}"`)}return{}};const Ua=1,$a=(e,n)=>{let t,a=0,r=0;do{if(n<0||n+r>=e.length)throw new Error("Invalid varint: buffer ended unexpectedly");if(t=e[n+r],a|=(127&t)<<7*r,r+=1,r>10)throw new Error("Invalid varint: too long")}while(128&t);return{value:a,length:r}},Ha=Object.freeze({VARINT:0,I64:1,LEN:2,SGROUP:3,EGROUP:4,I32:5}),Ka=e=>{let n=0,t=null;for(;n<e.length&&!t;){const{value:a,length:r}=$a(e,n);n+=r;const s=7&a;if(a>>3===Ua){if(s===Ha.LEN){const a=$a(e,n);return n+=a.length,t=(new TextDecoder).decode(e.slice(n,n+a.value)),t}}else switch(s){case Ha.VARINT:n+=$a(e,n).length;break;case Ha.I64:n+=8;break;case Ha.LEN:{const t=$a(e,n);n+=t.length+t.value;break}case Ha.SGROUP:case Ha.EGROUP:break;case Ha.I32:n+=4;break;default:throw new Error(`Malformed kndctr cookie. Unknown wire type: ${s}`)}}throw new Error("No ECID found in cookie.")};var za=({orgId:e,cookieJar:n,logger:t})=>{const a=Sn(e,"identity");return()=>{const e=n.get(a);if(!e)return null;try{const n=decodeURIComponent(e).replace(/_/g,"/").replace(/-/g,"+"),t=be(n);return Ka(t)}catch(e){return t.warn(`Unable to decode ECID from ${a} cookie`,e),null}}},Wa=({logger:e,loggingCookieJar:n,config:t})=>{let a=null;const r=new Promise((e=>{a=e})),s=za({orgId:t.orgId,cookieJar:n,logger:e});return{initialize(){s()&&this.setIdentityAcquired()},setIdentityAcquired(){a()},awaitIdentity:()=>r,getEcidFromCookie:()=>s()}};const Ga="in",Qa="out",Ja="pending",Za="disabled",Xa="wait",Ya="auto",er="general",nr="declinedConsent",tr="default",ar="initial",rr="new",sr=e=>{const n=new Error(e);return n.code=nr,n.message=e,n};var ir=({logger:e})=>{const n=[],t=()=>{for(;n.length;)n.shift().resolve()},a=()=>{for(;n.length;)n.shift().reject(sr("The user declined consent."))},r=()=>Promise.resolve(),s=()=>Promise.resolve(),i=()=>Promise.resolve(),o=()=>Promise.reject(sr("No consent preferences have been set.")),c=()=>Promise.reject(sr("The user declined consent.")),l=e=>{if(e)return Promise.reject(new Error("Consent is pending."));const t=_e();return n.push(t),t.promise};return{in(n){n===tr?this.awaitConsent=s:(n===ar?e.info("Loaded user consent preferences. The user previously consented."):n===rr&&this.awaitConsent!==i&&e.info("User consented."),t(),this.awaitConsent=i)},out(n){n===tr?(e.warn("User consent preferences not found. Default consent of out will be used."),this.awaitConsent=o):(n===ar?e.warn("Loaded user consent preferences. The user previously declined consent."):n===rr&&this.awaitConsent!==c&&e.warn("User declined consent."),a(),this.awaitConsent=c)},pending(n){n===tr&&e.info("User consent preferences not found. Default consent of pending will be used. Some commands may be delayed."),this.awaitConsent=l},awaitConsent:r,withConsent(){return this.awaitConsent(!0)},current(){switch(this.awaitConsent){case s:return{state:"in",wasSet:!1};case i:return{state:"in",wasSet:!0};case o:return{state:"out",wasSet:!1};case c:return{state:"out",wasSet:!0};case l:return{state:"pending",wasSet:!1};default:return{state:"in",wasSet:!1}}}}},or=({generalConsentState:e,logger:n})=>{const t=(t,a)=>{switch(t[er]){case Ga:e.in(a);break;case Qa:e.out(a);break;case Ja:e.pending(a);break;default:n.warn(`Unknown consent value: ${t[er]}`)}};return{initializeConsent(e,n){n[er]?t(n,ar):t(e,tr)},setConsent(e){t(e,rr)},suspend(){e.pending()},awaitConsent:()=>e.awaitConsent(),withConsent:()=>e.withConsent(),current:()=>e.current()}};const cr=e=>e&&e._experience&&e._experience.decisioning&&Be(e._experience.decisioning.propositions)?e._experience.decisioning.propositions:[];var lr=()=>{const e={},n=Date.now();let t,a,r=!1,s=!1,i=!0;const o=e=>{if(s)throw new Error(`${e} cannot be called after event is finalized.`)},c={hasQuery(){return Object.prototype.hasOwnProperty.call(this.getContent(),"query")},getContent(){const n=JSON.parse(JSON.stringify(e));return t&&ke(n,{xdm:t}),a&&ke(n,{data:a}),n},setUserXdm(e){o("setUserXdm"),t=e},setUserData(e){o("setUserData"),a=e},mergeXdm(n){o("mergeXdm"),n&&ke(e,{xdm:n})},mergeData(n){o("mergeData"),n&&ke(e,{data:n})},mergeMeta(n){o("mergeMeta"),n&&ke(e,{meta:n})},mergeQuery(n){o("mergeQuery"),n&&ke(e,{query:n})},documentMayUnload(){r=!0},finalize(n){if(s)return;const r=Se([...cr(t),...cr(e.xdm)],((e,n)=>e===n||e.id&&n.id&&e.id===n.id&&e.scope&&n.scope&&e.scope===n.scope));if(t&&this.mergeXdm(t),r.length>0&&(e.xdm._experience.decisioning.propositions=r),a&&c.mergeData(a),s=!0,n){i=!1;const t={xdm:e.xdm||{},data:e.data||{}},a=n(t);i=!1!==a,e.xdm=t.xdm||{},e.data=t.data||{},vn(e.xdm)&&delete e.xdm,vn(e.data)&&delete e.data}},getDocumentMayUnload:()=>r,getCreatedAt:()=>n,isEmpty:()=>
6vn(e)&&(!t||vn(t))&&(!a||vn(a)),shouldSend:()=>i,getViewName(){if(t&&t.web&&t.web.webPageDetails)return t.web.webPageDetails.viewName},getUserIdentityMap:()=>t?.identityMap,toJSON(){if(!s)throw new Error("toJSON called before finalize");return e}};return c};const dr="Retry-After",pr="x-adobe-edge";var ur=({extractEdgeInfo:e})=>({content:n={},getHeader:t})=>{const{handle:a=[],errors:r=[],warnings:s=[]}=n;return{getPayloadsByType:e=>a.filter((n=>n.type===e)).flatMap((e=>e.payload)),getErrors:()=>r,getWarnings:()=>s,getEdge:()=>e(t(pr)),toJSON:()=>n}};const gr="configure",mr="setDebug";var br=({logger:e,configureCommand:n,setDebugCommand:t,handleError:a,validateCommandOptions:r})=>{let s;const i=(a,i)=>{let o;if(a===gr){if(s)throw new Error("The library has already been configured and may only be configured once.");o=()=>(s=n(i),s.then((()=>{})))}else{if(!s)throw new Error("The library must be configured first. Please do so by executing the configure command.");o=a===mr?()=>{const e=Sa({enabled:Pa().required()}).noUnknownFields(),n=r({command:{commandName:mr,optionsValidator:e},options:i});t(n)}:()=>s.then((e=>{const n=e.getCommand(a);if(!n||!Fe(n.run)){const n=[gr,mr].concat(e.getCommandNames()).join(", ");throw new Error(`The ${a} command does not exist. List of available commands: ${n}.`)}const t=r({command:n,options:i});return n.run(t)}),(()=>(e.warn(`An error during configuration is preventing the ${a} command from executing.`),new Promise((()=>{})))))}return o};return(n,t={})=>new Promise((a=>{const r=i(n,t);e.logOnBeforeCommand({commandName:n,options:t}),a(r())})).catch((e=>a(e,`${n} command`))).catch((a=>{throw e.logOnCommandRejected({commandName:n,options:t,error:a}),a})).then((a=>{const r=ge(a)?a:{};return e.logOnCommandResolved({commandName:n,options:t,result:r}),r}))};const hr="https://adobe.ly/3sHgQHb";var fr=({command:e,options:n})=>{const{commandName:t,documentationUri:a=hr,optionsValidator:r}=e;let s=n;if(r)try{s=r(n)}catch(e){throw new Error(`Invalid ${t} command options:\n\t - ${e} For command documentation see: ${a}`,{cause:e})}return s};const vr="https://adobe.ly/3sHh553",yr=({combinedConfigValidator:e,options:n,logger:t})=>{try{return e.noUnknownFields().required().call({logger:t},n)}catch(e){throw new Error(`Resolve these configuration problems:\n\t - ${e.message.split("\n").join("\n\t - ")}\nFor configuration documentation see: ${vr}`,{cause:e})}},kr=(e,n,t)=>t.reduce(((t,{buildOnInstanceConfiguredExtraParams:a})=>(a&&(t={...t,...a({config:e,logger:n})}),t)),{}),wr=e=>{const n=[],t={get enabled(){return e.enabled},flush(){n.forEach((({method:n,args:t})=>e[n](...t)))}};return Object.keys(e).filter((n=>"function"==typeof e[n])).forEach((e=>{t[e]=(...t)=>{n.push({method:e,args:t})}})),t};var xr=({options:e,componentCreators:n,coreConfigValidators:t,createConfig:a,logger:r,setDebugEnabled:s})=>{const i=wr(r),o=n.map((({configValidators:e})=>e)).filter((e=>e)).reduce(((e,n)=>e.concat(n)),t),c=a(yr({combinedConfigValidator:o,options:e,logger:i}));s(c.debugEnabled,{fromConfig:!0}),i.flush();const l=kr(c,r,n);return r.logOnInstanceConfigured({...l,config:c}),c},Pr=({componentCreators:e,lifecycle:n,componentRegistry:t,getImmediatelyAvailableTools:a})=>(e.forEach((e=>{const{namespace:n}=e,r=a(n);let s;try{s=e(r)}catch(e){throw dt({error:e,message:`[${n}] An error occurred during component creation.`})}t.register(n,s)})),n.onComponentsRegistered({lifecycle:n}).then((()=>t)));const Cr=e=>({...e}),_r="edge.adobedc.net",Tr="adobedc.demdex.net";var Dr="ee",Sr=()=>Sa({debugEnabled:Pa().default(!1),datastreamId:Ia().unique().required(),edgeDomain:Ia().domain().default(_r),edgeBasePath:Ia().nonEmpty().default(Dr),orgId:Ia().unique().required(),onBeforeEventSend:Ca().default(nt),edgeConfigOverrides:Ra}).renamed("edgeConfigId",Ia().unique(),"datastreamId"),Ir=({errorPrefix:e,logger:n})=>(t,a)=>{const r=ct(t);if(r.code===nr)return n.warn(`The ${a} could not fully complete. ${r.message}`),{};throw lt({error:r,message:`${e} ${r.message}`}),r},Er=({getDebugEnabled:e,console:n,getMonitors:t,context:a})=>{let r=`[${a.instanceName}]`;a.componentName&&(r+=` [${a.componentName}]`);const s=(e,n)=>{const r=t();if(r.length>0){const t={...a,...n};r.forEach((n=>{n[e]&&n[e](t)}))}},i=(t,...a)=>{s("onBeforeLog",{level:t,arguments:a}),e()&&n[t](r,...a)};return{get enabled(){return t().length>0||e()},logOnInstanceCreated(e){s("onInstanceCreated",e),i("info","Instance initialized.")},logOnInstanceConfigured(e){s("onInstanceConfigured",e),i("info","Instance configured. Computed configuration:",e.config)},logOnBeforeCommand(e){s("onBeforeCommand",e),i("info",`Executing ${e.commandName} command. Options:`,e.options)},logOnCommandResolved(e){s("onCommandResolved",e),i("info",`${e.commandName} command resolved. Result:`,e.result)},logOnCommandRejected(e){s("onCommandRejected",e),i("error",`${e.commandName} command was rejected. Error:`,e.error)},logOnBeforeNetworkRequest(e){s("onBeforeNetworkRequest",e),i("info",`Request ${e.requestId}: Sending request.`,e.payload)}
vendor: 1,194 bytes, line 6
6,logOnNetworkResponse(e){s("onNetworkResponse",e);const n=e.parsedBody||e.body?"response body:":"no response body.";i("info",`Request ${e.requestId}: Received response with status code ${e.statusCode} and ${n}`,e.parsedBody||e.body)},logOnNetworkError(e){s("onNetworkError",e),i("error",`Request ${e.requestId}: Network request failed.`,e.error)},logOnContentHiding(e){s("onContentHiding",{status:e.status}),i(e.logLevel,e.message)},logOnContentRendering(e){s("onContentRendering",{status:e.status,payload:e.detail}),i(e.logLevel,e.message)},info:i.bind(null,"info"),warn:i.bind(null,"warn"),error:i.bind(null,"error")}},Vr="__view__",Rr=e=>(n,t)=>{e.xdm=e.xdm||{},e.xdm.identityMap=e.xdm.identityMap||{},e.xdm.identityMap[n]=e.xdm.identityMap[n]||[],e.xdm.identityMap[n].push(t)},Nr=e=>{const{payload:n,getAction:t,getUseSendBeacon:a,datastreamIdOverride:r,edgeSubPath:s,requestParams:i={}}=e,o=c();let l=!1,d=!1;return{getId:()=>o,getPayload:()=>n,getAction:()=>t({isIdentityEstablished:d}),getDatastreamIdOverride:()=>r,getUseSendBeacon:()=>a({isIdentityEstablished:d}),getEdgeSubPath:()=>s||"",getUseIdThirdPartyDomain:()=>l,setUseIdThirdPartyDomain(){l=!0},setIsIdentityEstablished(){d=!0}
6,getRequestParams:()=>i}},Or=({payload:e,datastreamIdOverride:n})=>{const t=({isIdentityEstablished:n})=>e.getDocumentMayUnload()&&n;return Nr({payload:e,getAction:({isIdentityEstablished:e})=>t({isIdentityEstablished:e})?"collect":"interact",getUseSendBeacon:t,datastreamIdOverride:n})};const jr=(e,n)=>t=>{const a=n.split(".").reduce(((e,n)=>(e[n]=e[n]||{},e[n])),e);Object.assign(a,t)};var Ar=e=>{const{content:n,addIdentity:t,hasIdentity:a}=e,r=jr(n,"meta.configOverrides");return{mergeMeta:we(n,"meta"),mergeState:we(n,"meta.state"),mergeQuery:we(n,"query"),mergeConfigOverride:e=>r(e),finalizeConfigOverrides:()=>{if(n.meta?.configOverrides){const e=st(n.meta.configOverrides);null===e?delete n.meta.configOverrides:n.meta.configOverrides=e}},addIdentity:t,hasIdentity:a,toJSON:()=>n}},Lr=e=>n=>void 0!==(e.xdm&&e.xdm.identityMap&&e.xdm.identityMap[n]),qr=()=>{const e={};return{...Ar({content:e,addIdentity:Rr(e),hasIdentity:Lr(e)}),addEvent:n=>{e.events=e.events||[],e.events.push(n)},getEvents:()=>e.events||[],getDocumentMayUnload:()=>(e.events||[]).some((e=>e.getDocumentMayUnload()))}},Mr=({localConfigOverrides:e,globalConfigOverrides:n,payload:t})=>{const a={payload:t},{datastreamId:r,...s}=e||{};return r&&(a.datastreamIdOverride=r),n&&!vn(n)&&t.mergeConfigOverride(n),s&&!vn(s)&&t.mergeConfigOverride(s),t.finalizeConfigOverrides(),a};const Fr="adb_validation_sessionid",Br="validation.",Ur="clientId",$r=e=>{let n=e.persistent.getItem(Ur);return n||(n=c(),e.persistent.setItem(Ur,n)),n};var Hr=({getLocationSearch:e,createNamespacedStorage:n})=>{const t=n(Br);return()=>{const n=pe.default.parse(e())[Fr];
6if(!n)return"";const a=`${n}|${$r(t)}`;return`&${pe.default.stringify({adobeAepValidationToken:a})}`}};const Kr="Event was canceled because the onBeforeEventSend callback returned false.";var zr=({config:e,logger:n,lifecycle:t,consent:a,createEvent:r,createDataCollectionRequestPayload:s,createDataCollectionRequest:i,sendEdgeNetworkRequest:o,applyResponse:c})=>{const{onBeforeEventSend:l,edgeConfigOverrides:d}=e;return{createEvent:r,sendEvent(e,r={}){const{edgeConfigOverrides:c,...p}=r,u=Mr({payload:s(),localConfigOverrides:c,globalConfigOverrides:d}),g=i(u),m=xe(),b=xe();return t.onBeforeEvent({...p,event:e,onResponse:m.add,onRequestFailure:b.add}).then((()=>(u.payload.addEvent(e),a.awaitConsent()))).then((()=>{try{e.finalize(l)}catch(e){const n=()=>{throw e};return b.add(t.onRequestFailure),b.call({error:e}).then(n,n)}if(!e.shouldSend()){b.add(t.onRequestFailure),n.info(Kr);const e=new Error(Kr);return b.call({error:e}).then((()=>{}))}return o({request:g,runOnResponseCallbacks:m.call,runOnRequestFailureCallbacks:b.call})}))},applyResponse(e,n={}){const{renderDecisions:a=!1,decisionContext:r={},responseHeaders:o={},responseBody:l={handle:[]},personalization:d}=n,p=s(),u=i({payload:p}),g=xe();return t.onBeforeEvent({event:e,renderDecisions:a,decisionContext:r,decisionScopes:[Vr],personalization:d,onResponse:g.add,onRequestFailure:nt}).then((()=>(p.addEvent(e),c({request:u,responseHeaders:o,responseBody:l,runOnResponseCallbacks:g.call}))))}}};const Wr="state:store";var Gr=({cookieJar:e,shouldTransferCookie:n,apexDomain:t,dateProvider:a})=>({cookiesToPayload(a,r){const s=""!==t&&r.endsWith(t),i={domain:t,cookiesEnabled:!0};if(!s){const t=e.get(),a=Object.keys(t).filter(n).map((e=>({key:e,value:t[e]})));a.length&&(i.entries=a)}a.mergeState(i)},responseToCookies(n){n.getPayloadsByType(Wr).forEach((n=>{const r={domain:t},s=n.attrs&&n.attrs.SameSite&&n.attrs.SameSite.toLowerCase();void 0!==n.maxAge&&(r.expires=new Date(a().getTime()+1e3*n.maxAge)),void 0!==s&&(r.sameSite=s),"none"===s&&(r.secure=!0),e.set(n.key,n.value,r)}))}});const Qr="mboxEdgeCluster",Jr="at_qa_mode",Zr="mbox";var Xr=({orgId:e,targetMigrationEnabled:n})=>t=>Xn(e,t)||t===Jr||n&&t===Zr,Yr="alloy_debug",es="v1";const ns="TypeError",ts="NetworkError",as=e=>e.name===ns||e.name===ts||0===e.status;var rs=(e,n,t)=>Math.max(n,Math.min(e,t)),ss=e=>{const n=e.shift()||[],t=e.shift()||[];return me({},...n,...t,...e)},is=e=>n=>{const t=()=>{throw n};return e.call({error:n}).then(t,t)};const os=3e5,cs=e=>{if("function"!=typeof e.getEvents)return;const n=e.getEvents();if(0===n.length)return;const t=Math.min(...n.map((e=>e.getCreatedAt())));return rs(Date.now()-t,0,os)},ls=(e,n)=>n.getUseIdThirdPartyDomain()&&as(e);var ds=({config:e,lifecycle:n,cookieTransfer:t,sendNetworkRequest:a,createResponse:r,processWarningsAndErrors:s,getLocationHint:i,getAssuranceValidationTokenParams:o})=>{const{edgeDomain:c,edgeBasePath:l,datastreamId:d}=e;let p=!1;
6const u=(e,n)=>{const t=i(),a=t?`${l}/${t}${n.getEdgeSubPath()}`:`${l}${n.getEdgeSubPath()}`,r=n.getDatastreamIdOverride()||d;return r!==d&&n.getPayload().mergeMeta({sdkConfig:{datastream:{original:d}}}),`https://${e}/${a}/${es}/${n.getAction()}?configId=${r}&requestId=${n.getId()}${o()}`};return({request:e,runOnResponseCallbacks:i=nt,runOnRequestFailureCallbacks:o=nt})=>{const l=xe();l.add(n.onResponse),l.add(i);const d=xe();return d.add(n.onRequestFailure),d.add(o),n.onBeforeRequest({request:e,onResponse:l.add,onRequestFailure:d.add}).then((()=>{const n=p||!e.getUseIdThirdPartyDomain()?c:Tr,r=u(n,e),s=e.getPayload(),i=cs(s);return void 0!==i&&s.mergeMeta({queueTimeMillis:i}),t.cookiesToPayload(s,n),a({requestId:e.getId(),url:r,payload:s,useSendBeacon:e.getUseSendBeacon()})})).then((e=>(s(e),e))).catch((n=>{if(ls(n,e)){p=!0,e.setUseIdThirdPartyDomain(!1);const n=u(c,e),r=e.getPayload();return t.cookiesToPayload(r,c),a({requestId:e.getId(),url:n,payload:r,useSendBeacon:e.getUseSendBeacon()})}return is(d)(n)})).then((({parsedBody:e,getHeader:n})=>{const a=r({content:e,getHeader:n});return t.responseToCookies(a),l.call({response:a}).then(ss)}))}};const ps=204,us="The server responded with a";var gs=({logger:e})=>n=>{const{statusCode:t,body:a,parsedBody:r}=n;if(t<200||t>=300||!r&&t!==ps||r&&!Array.isArray(r.handle)){const e=r?JSON.stringify(r,null,2):a;throw new Error(`${us} status code ${t} and ${e?`response body:\n${e}`:"no response body."}`)}if(r){const{warnings:n=[],errors:t=[]}=r;n.forEach((n=>{e.warn(`${us} warning:`,n)})),t.forEach((n=>{e.error(`${us} non-fatal error:`,n)}))}},ms=({orgId:e,cookieJar:n})=>{const t=Sn(e,Un),a=()=>n.get(t),r=()=>{const e=n.get(Qr);if(e)return`t${e}`};return()=>a()||r()};const bs=3,hs=[429,503,502,504];var fs=({response:e,retriesAttempted:n})=>n<bs&&hs.includes(e.statusCode);const vs=1e3,ys=1e3,ks=.3,ws=e=>{const n=vs+e*ys,t=n*ks,a=n-t,r=n+t;return Math.round(a+Math.random()*(r-a))},xs=e=>{const n=e.getHeader(dr);let t;if(n){const e=parseInt(n,10);t=Zn(e)?1e3*e:Math.max(0,new Date(n).getTime()-(new Date).getTime())}return t};var Ps=({response:e,retriesAttempted:n})=>{let t=xs(e);return void 0===t&&(t=ws(n)),t};const Cs=200;var _s=({cookieTransfer:e,lifecycle:n,createResponse:t,processWarningsAndErrors:a})=>({request:r,responseHeaders:s,responseBody:i,runOnResponseCallbacks:o=nt,runOnRequestFailureCallbacks:c=nt})=>{const l=xe();l.add(n.onResponse),l.add(o);const d=xe();d.add(n.onRequestFailure),d.add(c);const p=e=>s[e];return n.onBeforeRequest({request:r,onResponse:l.add,onRequestFailure:d.add}).then((()=>a({statusCode:Cs,getHeader:p,body:JSON.stringify(i),parsedBody:i}))).catch(is(d)).then((()=>{const n=t({content:i,getHeader:p});return e.responseToCookies(n),l.call({response:n}).then(ss)}))},Ts=e=>{let n=window.__alloyMonitors||[];return e&&(n=n.concat(e)),n},Ds=({options:e})=>Sa({type:Ia(),xdm:Sa({eventType:Ia(),identityMap:Va}),data:Sa({}),documentUnloading:Pa(),renderDecisions:Pa(),decisionScopes:xa(Ia()).uniqueItems(),personalization:Sa({decisionScopes:xa(Ia()).uniqueItems(),surfaces:xa(Ia()).uniqueItems(),sendDisplayEvent:Pa().default(!0),includeRenderedPropositions:Pa().default(!1),defaultPersonalizationEnabled:Pa(),decisionContext:Sa({})}).default({sendDisplayEvent:!0}),datasetId:Ia(),mergeId:Ia(),edgeConfigOverrides:Ra,advertising:Sa({handleAdvertisingData:Ea(Za,Xa,Ya).default(Za)})}).required().noUnknownFields()(e),Ss=({options:e})=>Sa({renderDecisions:Pa(),responseHeaders:Da(Ia().required()),responseBody:Sa({handle:xa(Sa({type:Ia().required(),payload:wa().required()})).required()}).required(),personalization:Sa({sendDisplayEvent:Pa().default(!0),decisionContext:Sa({})}).default({sendDisplayEvent:!0})}).noUnknownFields()(e);const Is=({eventManager:e,logger:n})=>({commands:{sendEvent:{documentationUri:"https://adobe.ly/3GQ3Q7t",optionsValidator:e=>Ds({options:e}),run:t=>{const{xdm:a,data:r,documentUnloading:s,type:i,mergeId:o,datasetId:c,edgeConfigOverrides:l,...d}=t,p=e.createEvent();return s&&p.documentMayUnload(),p.setUserXdm(a),p.setUserData(r),i&&p.mergeXdm({eventType:i}),o&&p.mergeXdm({eventMergeId:o}),l&&(d.edgeConfigOverrides=l),c&&(n.warn("The 'datasetId' option has been deprecated. Please use 'edgeConfigOverrides.com_adobe_experience_platform.datasets.event.datasetId' instead."),d.edgeConfigOverrides=l||{},ke(d.edgeConfigOverrides,{com_adobe_experience_platform:{datasets:{event:{datasetId:c}}}})),e.sendEvent(p,d)}},applyResponse:{documentationUri:"",optionsValidator:e=>Ss({options:e}),run:n=>{const{renderDecisions:t=!1,decisionContext:a={},responseHeaders:r={},responseBody:s={handle:[]},personalization:i}=n,o=e.createEvent();return e.applyResponse(o,{renderDecisions:t,decisionContext:a,responseHeaders:r,responseBody:s,personalization:i})}}}});Is.namespace="DataCollector";const Es=(e,n)=>`ID sync ${n?"succeeded":"failed"}: ${e.spec.url}`;var Vs=({fireReferrerHideableImage:e,logger:n})=>t=>{const a=t.filter((e=>"url"===e.type));return a.length?Promise.all(a.map((t=>e(t.spec).then((()=>{n.info(Es(t,!0))})).catch((()=>{n.warn(Es(t,!1))}))))).then(nt):Promise.resolve()};const Rs=Sa({thirdPartyCookiesEnabled:Pa().default(!0),idMigrationEnabled:Pa().default(!0)});var Ns=Sa({url:Ia().required().nonEmpty(),edgeConfigOverrides:Ra}).required().noUnknownFields(),Os="ECID",js=({addEcidQueryToPayload:e,addQueryStringIdentityToPayload:n,ensureSingleIdentity:t,setLegacyEcid:a,handleResponseForIdSyncs:r,getNamespacesFromResponse:s,getIdentity:i,consent:o,appendIdentityToUrl:c,logger:l,identity:d,getIdentityOptionsValidator:p})=>{let u,g={};return{lifecycle:{onBeforeRequest:({request:a,onResponse:r,onRequestFailure:s})=>(e(a.getPayload()),n(a.getPayload()),t({request:a,onResponse:r,onRequestFailure:s})),onResponse({response:e}){const n=s(e);return u&&u[Os]||!n||!n[Os]||a(n[Os]),n&&Object.keys(n).length>0&&(u={...u,...n}),g={...g,...e.getEdge()},d.setIdentityAcquired(),r(e)}},commands:{getIdentity:{optionsValidator:p,run:e=>{const{namespaces:n}=e;return o.awaitConsent().then((()=>
6{if(u)return;const t=d.getEcidFromCookie();return t&&n.includes(Os)&&(u||(u={}),u[Os]=t,1===n.length)?void 0:i(e)})).then((()=>({identity:n.reduce(((e,n)=>(e[n]=u[n]||null,e)),{}),edge:g})))}},appendIdentityToUrl:{optionsValidator:Ns,run:e=>o.withConsent().then((()=>{if(u)return;const n=d.getEcidFromCookie();return n?(u||(u={}),void(u[Os]=n)):i(e)})).then((()=>({url:c(u[Os],e.url)}))).catch((n=>(l.warn(`Unable to append identity to url. ${n.message}`),e)))}}}},As=({config:e,getEcidFromVisitor:n,apexDomain:t,isPageSsl:a,cookieJar:r})=>{const{idMigrationEnabled:s,orgId:i}=e,o=`AMCV_${i}`,c=()=>{let e=null;const n="s_ecid",t=r.get(n)||r.get(o);if(t){const n=/(^|\|)MCMID\|(\d+)($|\|)/,a=t.match(n);a&&(e=a[2])}return e};return{getEcid(){if(s){const e=c();return e?Promise.resolve(e):n()}return Promise.resolve()},setEcid(e){if(s&&c()!==e){const n=a?{sameSite:"none",secure:!0}:{};r.set(o,`MCMID|${e}`,{domain:t,expires:390,...n})}}}},Ls=({logger:e})=>new Promise(((n,t)=>{if(ge(window.adobe)&&ge(window.adobe.optIn)){const a=window.adobe.optIn;e.info("Delaying request while waiting for legacy opt-in to let Visitor retrieve ECID from server."),a.fetchPermissions((()=>{a.isApproved([a.Categories.ECID])?(e.info("Received legacy opt-in approval to let Visitor retrieve ECID from server."),n()):t(new Error("Legacy opt-in was declined."))}),!0)}else n()})),qs=e=>{const n=e.Visitor;return Fe(n)&&Fe(n.getInstance)&&n},Ms=({logger:e,orgId:n,awaitVisitorOptIn:t})=>()=>{const a=qs(window);return a?t({logger:e}).then((()=>(e.info("Delaying request while using Visitor to retrieve ECID from server."),new Promise((t=>{a.getInstance(n,{}).getMarketingCloudVisitorID((n=>{e.info("Resuming previously delayed request that was waiting for ECID from Visitor."),t(n)}),!0)}))))).catch((n=>{n?e.info(`${n.message}, retrieving ECID from experience edge`):e.info("An error occurred while obtaining the ECID from Visitor.")})):Promise.resolve()},Fs=({processIdSyncs:e})=>n=>{e(n.getPayloadsByType("identity:exchange"))},Bs=({doesIdentityCookieExist:e,setDomainForInitialIdentityPayload:n,addLegacyEcidToPayload:t,awaitIdentityCookie:a,logger:r})=>{let s;const i=e=>(n(e),t(e.getPayload()));return({request:n,onResponse:t,onRequestFailure:o})=>{if(e())return n.setIsIdentityEstablished(),Promise.resolve();if(s){r.info("Delaying request while retrieving ECID from server.");const e=s;return s=e.catch((()=>a({onResponse:t,onRequestFailure:o}))),s.catch((()=>{})),e.then((()=>{r.info("Resuming previously delayed request."),n.setIsIdentityEstablished()})).catch((()=>i(n)))}return s=a({onResponse:t,onRequestFailure:o}),s.catch((()=>{})),i(n)}},Us="CORE",$s=({thirdPartyCookiesEnabled:e,areThirdPartyCookiesSupportedByDefault:n})=>{const t={identity:{fetch:[Os]}};return e&&n()&&t.identity.fetch.push(Us),e=>{e.mergeQuery(t)}},Hs=({thirdPartyCookiesEnabled:e,areThirdPartyCookiesSupportedByDefault:n})=>t=>{e&&n()&&t.setUseIdThirdPartyDomain()},Ks=({getLegacyEcid:e,addEcidToPayload:n})=>t=>t.hasIdentity(Os)?Promise.resolve():e().then((e=>{e&&n(t,e)})),zs="adobe_mc",Ws=e=>{try{return decodeURIComponent(e)}catch{return""}};const Gs=300,Qs="?";var Js=({locationSearch:e,locationHash:n,dateProvider:t,orgId:a,logger:r})=>s=>{if(s.hasIdentity(Os))return;let i=pe.default.parse(e)[zs]??pe.default.parse(n.slice(n.indexOf(Qs)))[zs];if(void 0===i)return;Array.isArray(i)&&(r.warn("Found multiple adobe_mc query string parameters, only using the last one."),i=i[i.length-1]);let o="";for(;o!==i;)o=i,i=Ws(i);const c=i.split("|").reduce(((e,n)=>{const[t,a]=n.split("=");return e[t]=Ws(a),e[t]=e[t].replace(/[^a-zA-Z0-9@.]/g,""),e}),{}),l=parseInt(c.TS,10),d=c.MCMID,p=Ws(c.MCORGID);t().getTime()/1e3<=l+Gs&&p===a&&d?(r.info(`Found valid ECID identity ${d} from the adobe_mc query string parameter.`),s.addIdentity(Os,{id:d})):r.info("Detected invalid or expired adobe_mc query string parameter.")},Zs=(e,n)=>{e.addIdentity(Os,{id:n})},Xs=({doesIdentityCookieExist:e,orgId:n,logger:t})=>({onResponse:a,onRequestFailure:r})=>new Promise(((s,i)=>{a((()=>{e()?s():(t.warn(`Identity cookie not found. This could be caused by any of the following issues:\n\t* The org ID ${n} configured in Alloy doesn't match the org ID specified in the edge configuration.\n\t* Experience edge was not able to set the identity cookie due to domain or c
6ookie restrictions.\n\t* The request was canceled by the browser and not fully processed.`),i(new Error("Identity cookie not found.")))})),r((()=>{e()?s():i(new Error("Identity cookie not found."))}))})),Ys=e=>e.getPayloadsByType("identity:result").reduce(((e,n)=>(n.namespace&&n.namespace.code&&(e[n.namespace.code]=n.id),e)),{}),ei=({sendEdgeNetworkRequest:e,createIdentityRequestPayload:n,createIdentityRequest:t,globalConfigOverrides:a})=>({namespaces:r,edgeConfigOverrides:s}={})=>{const i=Mr({payload:n(r),globalConfigOverrides:a,localConfigOverrides:s}),o=t(i);return e({request:o})},ni=({payload:e,datastreamIdOverride:n})=>Nr({payload:e,datastreamIdOverride:n,getAction:()=>"identity/acquire",getUseSendBeacon:()=>!1}),ti=e=>{const n={query:{identity:{fetch:e}}};return Ar({content:n,addIdentity:Rr(n),hasIdentity:Lr(n)})};const ai=/^([^?#]*)(\??[^#]*)(#?.*)$/,ri=e=>""===e?"?":"?"===e?"":"&";var si=({dateProvider:e,orgId:n})=>(t,a)=>{const r=Math.round(e().getTime()/1e3),s=encodeURIComponent(`TS=${r}|MCMID=${t}|MCORGID=${encodeURIComponent(n)}`),[,i,o,c]=a.match(ai);return`${i}${o}${ri(o)}adobe_mc=${s}${c}`};const ii=Sa({namespaces:xa(Ea(Os,Us)).nonEmpty().uniqueItems().default([Os]),edgeConfigOverrides:Ra}).noUnknownFields().default({namespaces:[Os]});var oi=({thirdPartyCookiesEnabled:e})=>n=>{const t=ii(n);if(!e&&t.namespaces.includes(Us))throw new Error(`namespaces: The ${Us} namespace cannot be requested when third-party cookies are disabled.`);return t};const ci=({config:e,logger:n,consent:t,fireReferrerHideableImage:a,sendEdgeNetworkRequest:r,apexDomain:s,getBrowser:i,identity:o})=>{const{orgId:c,thirdPartyCookiesEnabled:l,edgeConfigOverrides:d}=e,p=Ms({logger:n,orgId:c,awaitVisitorOptIn:Ls}),u=Pe({logger:n,cookieJar:fe}),g=As({config:e,getEcidFromVisitor:p,apexDomain:s,cookieJar:u,isPageSsl:"https:"===window.location.protocol}),m=$n({orgId:c}),b=ei({ 7sendEdgeNetworkRequest:r,createIdentityRequestPayload:ti,createIdentityRequest:ni,globalConfigOverrides:d}),h=Mn({getBrowser:i}),f=Hs({thirdPartyCookiesEnabled:l,areThirdPartyCookiesSupportedByDefault:h}),v=Ks({getLegacyEcid:g.getEcid,addEcidToPayload:Zs}),y=Js({locationSearch:window.document.location.search,locationHash:window.document.location.hash,dateProvider:()=>new Date,orgId:c,logger:n}),k=Xs({doesIdentityCookieExist:m,orgId:c,logger:n}),w=Bs({doesIdentityCookieExist:m,setDomainForInitialIdentityPayload:f,addLegacyEcidToPayload:v,awaitIdentityCookie:k,logger:n}),x=Vs({fireReferrerHideableImage:a,logger:n}),P=Fs({processIdSyncs:x}),C=si({dateProvider:()=>new Date,orgId:c}),_=oi({thirdPartyCookiesEnabled:l}),T=$s({thirdPartyCookiesEnabled:l,areThirdPartyCookiesSupportedByDefault:h});return js({addEcidQueryToPayload:T,addQueryStringIdentityToPayload:y,ensureSingleIdentity:w,setLegacyEcid:g.setEcid,handleResponseForIdSyncs:P,getNamespacesFromResponse:Ys,getIdentity:b,consent:t,identity:o,appendIdentityToUrl:C,logger:n,getIdentityOptionsValidator:_})};ci.namespace="Identity",ci.configValidators=Rs;var li="2.34.1";const di=({config:e,componentRegistry:n})=>{const t=[...n.getCommandNames(),gr,mr].sort(),a={...e};Object.keys(e).forEach((n=>{const t=e[n];"function"==typeof t&&(a[n]=t.toString())}));const r=n.getComponentNames();return{version:li,configs:a,commands:t,components:r}},pi=({config:e,componentRegistry:n})=>({commands:{getLibraryInfo:{run:()=>({libraryInfo:di({config:e,componentRegistry:n})})}}});pi.namespace="LibraryInfo";var ui=Object.freeze({__proto__:null,dataCollector:Is,identity:ci,library
7Info:pi});const gi=Sr(),mi=({instanceName:e,monitors:n=[],components:t,createPlatformServices:a})=>{const r=Wn(window),s=Na({console:globalThis.console,createLogger:Er,instanceName:e,createNamespacedStorage:r,getMonitors:Ts.bind(null,n)}),{setDebugEnabled:i,logger:o,createComponentLogger:c}=s,l=a({logger:o}),d=pe.default.parse(l.globals.getLocationSearch());void 0!==d[Yr]&&i(pt(d[Yr]),{fromConfig:!1});const p=_n(l.globals.getHostname(),fe),u=fn(),g=Hr({getLocationSearch:()=>l.globals.getLocationSearch(),createNamespacedStorage:r}),m=Kn({userAgent:l.globals.getUserAgent()}),b=Ma(),h=La(b),f=t.concat(Object.values(ui)),v=e=>{i(e.enabled,{fromConfig:!1})},y=Pe({logger:o,cookieJar:fe}),k=n=>{const t=xr({options:n,componentCreators:f,coreConfigValidators:gi,createConfig:Cr,logger:o,setDebugEnabled:i}),{orgId:a,targetMigrationEnabled:s}=t,d=Xr({orgId:a,targetMigrationEnabled:s}),v=Gr({cookieJar:y,shouldTransferCookie:d,apexDomain:p,dateProvider:()=>new Date}),k=Fa({logger:o,sendFetchRequest:l.network.sendFetchRequest,sendBeaconRequest:l.network.sendBeaconRequest,isRequestRetryable:fs,getRequestRetryDelay:Ps}),w=gs({logger:o}),x=Ba({logger:o}),P=ur({extractEdgeInfo:x}),C=ms({orgId:a,cookieJar:fe}),_=ds({config:t,lifecycle:h,cookieTransfer:v,sendNetworkRequest:k,createResponse:P,processWarningsAndErrors:w,getLocationHint:C,getAssuranceValidationTokenParams:g}),T=_s({lifecycle:h,cookieTransfer:v,createResponse:P,processWarningsAndErrors:w}),D=ir({logger:o}),S=or({generalConsentState:D,logger:o}),I=Wa({config:t,logger:o,loggingCookieJar:y});I.initialize();const E=zr({config:t,logger:o,lifecycle:h,consent:S,createEvent:lr,createDataCollectionRequestPayload:qr,createDataCollectionRequest:Or,sendEdgeNetworkRequest:_,applyResponse:T});return Pr({componentCreators:f,lifecycle:h,componentRegistry:b,getImmediatelyAvailableTools(n){const a=c(n);return{loggingCookieJar:y,instanceName:e,config:t,componentRegistry:b,consent:S,identity:I,eventManager:E,fireReferrerHideableImage:u,logger:a,lifecycle:h,sendEdgeNetworkRequest:_,handleError:Ir({errorPrefix:`[${e}] [${n}]`,logger:a}),createNamespacedStorage:r,apexDomain:p,getBrowser:m,cookieTransfer:v,createResponse:P,platformServices:l}}})},w=Ir({errorPrefix:`[${e}]`,logger:o}),x=br({logger:o,configureCommand:k,setDebugCommand:v,handleError:w,validateCommandOptions:fr});return o.logOnInstanceCreated({instance:x}),x},bi=(e,n)=>`URL destination ${n?"succeeded":"failed"}: ${e.spec.url}`;var hi=({fireReferrerHideableImage:e,logger:n,cookieJar:t,isPageSsl:a})=>{const r=a?{sameSite:"none",secure:!0}:{},s=e=>{e.filter((e=>"cookie"===e.type)).forEach((e=>{const{name:n,value:a,domain:s,ttlDays:i}=e.spec;t.set(n,a||"",{domain:s||"",expires:i||10,...r})}))},i=async t=>{const a=t.filter((e=>"url"===e.type));await Promise.allSettled(a.map((async t=>{try{await e(t.spec),n.info(bi(t,!0))}catch{n.warn(bi(t,!1))}})))};return e=>(s(e),i(e))},fi=({processDestinations:e})=>({response:n})=>{const t=n.getPayloadsByType("activation:push");return e(t),{destinations:n.getPayloadsByType("activation:pull")}};const vi=({logger:e,fireReferrerHideableImage:n})=>{const t=fe.withConverter({write:e=>encodeURIComponent(e)}),a=Pe({logger:e,cookieJar:t}),r=hi({fireReferrerHideableImage:n,logger:e,cookieJar:a,isPageSsl:"https:"===window.location.protocol});return{lifecycle:{onResponse:fi({processDestinations:r})},commands:{}}};vi.namespace="Audiences";var yi=({storedConsent:e,taskQueue:n,defaultConsent:t,consent:a,sendSetConsentRequest:r,validateSetConsentOptions:s,consentHashStore:i,doesIdentityCookieExist:o})=>{const c={[er]:t};let l=e.read();const d=o(),p=void 0!==l[er];d&&p||i.clear(),d||(e.clear(),l={}),a.initializeConsent(c,l);const u=()=>{if(0===n.length){const n=e.read();void 0!==n[er]&&a.setConsent(n)}};return{commands:{setConsent:{optionsValidator:s,run:({consent:e,identityMap:t,edgeConfigOverrides:s})=>{a.suspend();const o=i.lookup(e);return n.addTask((()=>o.isNew()?r({consentOptions:e,identityMap:t,edgeConfigOverrides:s}):Promise.resolve())).then((()=>o.save())).finally(u)}}},lifecycle:{onResponse:u,onRequestFailure:u}}},ki=e=>wn(JSON.stringify(ot(e)));const wi=({standard:e,version:n})=>`${e}.${n}`;var xi=({storage:e})=>({clear(){e.clear()},lookup(n){const t={},a=e=>{const n=wi(e),{standard:a,version:r,...s}=e;return t[n]||(t[n]=ki(s).toString()),t[n]};return{isNew:()=>n.some((n=>{const t=wi(n),r=e.getItem(t);return null===r||r!==a(n)}
7)),save(){n.forEach((n=>{const t=wi(n);e.setItem(t,a(n))}))}}}}),Pi=()=>{const e={};return{...Ar({content:e,addIdentity:(n,t)=>{e.identityMap=e.identityMap||{},e.identityMap[n]=e.identityMap[n]||[],e.identityMap[n].push(t)},hasIdentity:n=>void 0!==(e.identityMap&&e.identityMap[n])}),setConsent:n=>{e.consent=n}}},Ci=({payload:e,datastreamIdOverride:n})=>Nr({payload:e,datastreamIdOverride:n,getAction:()=>"privacy/set-consent",getUseSendBeacon:()=>!1}),_i=({parseConsentCookie:e,orgId:n,cookieJar:t})=>{const a=Sn(n,Bn);return{read(){const n=t.get(a);return n?e(n):{}},clear(){t.remove(a)}}},Ti=({createConsentRequestPayload:e,createConsentRequest:n,sendEdgeNetworkRequest:t,edgeConfigOverrides:a})=>({consentOptions:r,identityMap:s,edgeConfigOverrides:i})=>{const o=Mr({payload:e(),globalConfigOverrides:a,localConfigOverrides:i});o.payload.setConsent(r),ge(s)&&Object.keys(s).forEach((e=>{s[e].forEach((n=>{o.payload.addIdentity(e,n)}))}));const c=n(o);return t({request:c}).then((()=>{}))},Di=e=>e.split(";").reduce(((e,n)=>{const[t,a]=n.split("=");return e[t]=a,e}),{}),Si=Sa({consent:xa(wa()).required().nonEmpty(),identityMap:Va,edgeConfigOverrides:Ra}).noUnknownFields().required(),Ii=Sa({defaultConsent:Ea(Ga,Qa,Ja).default(Ga)});const Ei=({config:e,consent:n,sendEdgeNetworkRequest:t,createNamespacedStorage:a})=>{const{orgId:r,defaultConsent:s}=e,i=_i({parseConsentCookie:Di,orgId:r,cookieJar:fe}),o=Ce(),c=Ti({createConsentRequestPayload:Pi,createConsentRequest:Ci,sendEdgeNetworkRequest:t,edgeConfigOverrides:e.edgeConfigOverrides}),l=a(`${Dn(r)}.consentHashes.`),d=xi({storage:l.persistent}),p=$n({orgId:r});return yi({storedConsent:i,taskQueue:o,defaultConsent:s,consent:n,sendSetConsentRequest:c,validateSetConsentOptions:Si,consentHashStore:d,doesIdentityCookieExist:p})};Ei.namespace="Consent",Ei.configValidators=Ii;var Vi=()=>({eventMergeId:c()}),Ri=({createEventMergeId:e})=>({commands:{createEventMergeId:{run:e}}});const Ni=()=>Ri({createEventMergeId:Vi});Ni.namespace="EventMerge";var Oi=e=>!Yn(e)||!e.trim(),ji=e=>n=>{const t=e().toISOString();n.mergeXdm({timestamp:t})};const Ai="personalization:decisions",Li="AJO",qi="TGT",Mi=e=>null!==e&&"object"==typeof e&&Object.getPrototypeOf(e)===Object.prototype,Fi=(e,n={},t=[])=>(Object.keys(e).forEach((a=>{Mi(e[a])||Array.isArray(e[a])?Fi(e[a],n,[...t,a]):n[[...t,a].join(".")]=e[a]})),n);var Bi=e=>Mi(e)?Fi(e):e,Ui=({renderDecisions:e,decisionProvider:n,applyResponse:t,event:a,personalization:r,decisionContext:s})=>{const i={...Bi(a.getContent()),...s};return({response:s})=>{if(n.addPayloads(s.getPayloadsByType(Ai)),!a.hasQuery())return{propositions:[]};const o=n.evaluate(i);return t({renderDecisions:e,propositions:o,event:a,personalization:r})}};const $i={MATCHER:"matcher",GROUP:"group",HISTORICAL:"historical"},Hi={EQUALS:"eq",NOT_EQUALS:"ne",EXISTS:"ex",NOT_EXISTS:"nx",GREATER_THAN:"gt",GREATER_THAN_OR_EQUAL_TO:"ge",LESS_THAN:"lt",LESS_THAN_OR_EQUAL_TO:"le",CONTAINS:"co",NOT_CONTAINS:"nc",STARTS_WITH:"sw",ENDS_WITH:"ew"},Ki={AND:"and",OR:"or"},zi={ORDERED:"ordered",MOST_RECENT:"mostRecent"},Wi={[Hi.EQUALS]:p(),[Hi.NOT_EQUALS]:u(),[Hi.EXISTS]:g(),[Hi.NOT_EXISTS]:m(),[Hi.GREATER_THAN]:h(),[Hi.GREATER_THAN_OR_EQUAL_TO]:f(),[Hi.LESS_THAN]:v(),[Hi.LESS_THAN_OR_EQUAL_TO]:y(),[Hi.CONTAINS]:k(),[Hi.NOT_CONTAINS]:w(),[Hi.STARTS_WITH]:x(),[Hi.ENDS_WITH]:P()},Gi="eventId",Qi="eventType",Ji=["iam.eventType",Qi,"type"],Zi=["iam.id","id"],Xi=(e,n,t)=>{switch(n){case Hi.GREATER_THAN:return e>t;case Hi.GREATER_THAN_OR_EQUAL_TO:return e>=t;case Hi.LESS_THAN:return e<t;case Hi.LESS_THAN_OR_EQUAL_TO:return e<=t;case Hi.EQUALS:return e===t;case Hi.NOT_EQUALS:return e!==t;default:return!1}},Yi=(e,n)=>{for(let t=0;t<n.length;t+=1)if(!_(e[n[t]]))return n[t];throw new Error("The event does not match the expected schema.")},eo=e=>{const n=structuredClone(e);
7return[[Yi(n,Ji),Qi],[Yi(n,Zi),Gi]].forEach((([e,t])=>{e!==t&&(n[t]=n[e],delete n[e])})),n},no="TGT",to="DEFAULT",ao="ECID",ro="<key>",so="<identity>",io=Z(Y,(e=>e.join("-"))),oo=100,co=Z(ee),lo="https://ns.adobe.com/personalization/default-content-item",po="https://ns.adobe.com/personalization/dom-action",uo="https://ns.adobe.com/personalization/html-content-item",go="https://ns.adobe.com/personalization/json-content-item",mo="https://ns.adobe.com/personalization/ruleset-item",bo="https://ns.adobe.com/personalization/redirect-item",ho="https://ns.adobe.com/personalization/message/in-app",fo="https://ns.adobe.com/personalization/message/content-card",vo="https://ns.adobe.com/personalization/eventHistoryOperation",yo="decisioning.propositionDisplay",ko="decisioning.propositionInteract",wo="decisioning.propositionTrigger",xo="decisioning.propositionDismiss",Po="decisioning.propositionSuppressDisplay",Co=1,_o={DISPLAY:"display",INTERACT:"interact",TRIGGER:"trigger",DISMISS:"dismiss",SUPPRESS:"suppressDisplay"},To={[yo]:_o.DISPLAY,[ko]:_o.INTERACT,[wo]:_o.TRIGGER,[xo]:_o.DISMISS,[Po]:_o.SUPPRESS},Do={[_o.DISPLAY]:yo,[_o.INTERACT]:ko,[_o.TRIGGER]:wo,[_o.DISMISS]:xo,[_o.SUPPRESS]:Po},So=e=>To[e],Io=e=>Do[e];var Eo=e=>{const n=structuredClone(e),t=Object.keys(n).sort().reduce(((e,t)=>{const a=n[t];return null==a||""===a?e:e+=`${t}:${a}`}),"");return wn(t)},Vo=e=>{const n=new Date;return n.setDate(n.getDate()-e),n};const Ro=1e3,No=30,Oo="events",jo=2097152,Ao={TYPE:"~type",SOURCE:"~source"},Lo={EDGE:"com.adobe.eventType.edge",RULES_ENGINE:"com.adobe.eventType.rulesEngine"},qo={REQUEST:"com.adobe.eventSource.requestContent"},Mo="cjmiam",Fo="schema",Bo="insert",Uo="insertIfNotExists";var $o=(e=No,n=Ro)=>t=>{let a=Object.entries(t).reduce(((e,[n,{timestamps:t=[]}])=>(t.forEach((t=>{e.push({key:n,timestamp:t})})),e)),[]);const r=Vo(e);return a=a.filter((({timestamp:e})=>e>=r)),a.sort(((e,n)=>e.timestamp-n.timestamp)),a=a.slice(-n),a.reduce(((e,{key:n,timestamp:t})=>(e[n]||(e[n]={timestamps:[]}),e[n].timestamps.push(t),e)),{})},Ho=e=>{const{_experience:n}=e||{};return!!n&&"object"==typeof n};const Ko=e=>e?.scopeDetails?.activity?.id,zo=e=>e?.scopeDetails?.decisionProvider,Wo=(e,n)=>t=>{try{const t=e.getItem(n);return[JSON.parse(t),t.length]}catch{}return[t,0]},Go=(e,n)=>t=>{e.setItem(n,JSON.stringify(t))},Qo=()=>{const e={};return{getItem:n=>n in e?e[n]:null,setItem:(n,t)=>{e[n]=t}}},Jo=e=>{e.clear()};var Zo=(e=[])=>Array.isArray(e)?e.flat(1/0):e;const Xo="text/html",Yo="application/json";var ec=(e,n,t)=>{const{html:a,mobileParameters:r}=t;return{schema:ho,data:{mobileParameters:r,webParameters:{},content:a,contentType:Xo},id:e}},nc=(e,n,t)=>{const{schema:a,data:r,id:s}=t;return{schema:a,data:r,id:s||e}};const tc={[Mo]:ec,[Fo]:nc};var ac=()=>e=>{const{id:n,type:t,detail:a}=e;return"function"==typeof tc[t]?tc[t](n,t,a):a};const rc=e=>{const{schema:n,data:t}=e;if(n===mo)return!0;if(n!==go)return!1;try{const e="string"==typeof t.content?JSON.parse(t.content):t.content;return e&&Object.prototype.hasOwnProperty.call(e,"version")&&Object.prototype.hasOwnProperty.call(e,"rules")}catch{return!1}};var sc=(e,n)=>{const t=ac(),a=Ko(e),r=[],s=e=>{const{data:n={},schema:t}=e,a=t===mo?n:n.content;a&&r.push(ie("string"==typeof a?JSON.parse(a):a,{generateEventHash:Eo}))},i=s=>{const i=n.getEvent(yo,a),o=i?.timestamps[0],c=Zo(r.map((e=>e.execute(s)))).map(t).map((e=>{const t=n.addEvent({eventType:_o.TRIGGER,eventId:a}).timestamps[0];return{...e,data:{...e.data,qualifiedDate:t,displayedDate:o}}}));return{...e,items:c}};return Array.isArray(e.items)&&e.items.filter(rc).forEach(s),{rank:e?.scopeDetails?.rank||1/0,evaluate:i,isEvaluable:r.length>0}},ic=({eventRegistry:e})=>{const n={},t=t=>{const a=Ko(t);if(!a)return;const r=sc(t,e);r.isEvaluable&&(n[a]=r)};return{addPayload:t,addPayloads:e=>{e.forEach(t)},evaluate:(e={})=>Object.values(n).sort((({rank:e},{rank:n})=>e-n)).map((n=>n.evaluate(e))).filter((e=>e.items.length>0))}},oc=e=>{const n=[];return e.forEach((e=>{const t=[];e.items.forEach((e=>{e.schema===vo?n.push({operation:e.data.operation,event:{eventId:e.data.content["iam.id"],eventType:e.data.content["iam.eventType"]}}):t.push(e)})),e.items=t})),n},cc=({lifecycle:e,eventRegistry:n})=>({renderDecisions:t=!1,propositions:a=[],event:r,personalization:s})=>{if(e){const i=oc(a);n.addEventPayloads(i);const o=r?.getUserIdentityMap();e.onDecision({renderDecisions:t,propositions:a,event:r,personalization:s,identityMap:o})}return{propositions:a}},lc=({storage:e,logger:n})=>{let t,a,r,s=e;const i=e=>{s=e;const n=Wo(s,Oo);if(t=Go(s,Oo),[a,r]=n({}),r>jo){const e=$o();a=e(a),t(a)}};i(e);const o=(e={eventType:null,eventId:null},r=Bo)=>{const{eventType:s,eventId:i}=e;if(!s||!i)return;const o=Eo(e);if(r===Uo&&a[o])return;a[o]&&Array.isArray(a[o].timestamps)||(a[o]={timestamps:[]});const c=(new Date).getTime();return a[o].timestamps.push(c),a[o].timestamps.sort(),n.info("[Event History] Added event for",e,"with hash",o,"and timestamp",c),t(a),a[o]},c=(e=[])=>e.map((({operation:e,event:n})=>o(n,e)));return{addExperienceEdgeEvent:e=>{const{xdm:n}=e.getContent();if(!Ho(n))return;const{_experience:{decisioning:{propositionEventType:t={},propositionAction:{id:a}={},propositions:r=[]}={}}}=n;Object.keys(t).filter((e=>
7t[e]===Co)).forEach((e=>{r.forEach((n=>{zo(n)===Li&&o({eventId:Ko(n),eventType:e,action:a})}))}))},addEvent:o,addEventPayloads:c,getEvent:(e,n)=>{const t=Eo({eventType:e,eventId:n});if(a[t])return a[t]},toJSON:()=>a,setStorage:i}},dc=({eventRegistry:e,window:n,getBrowser:t})=>{const a=(new Date).getTime(),r=()=>({title:n.title,url:n.url,...rt(n.url)}),s=()=>({url:n.referrer,...rt(n.referrer)}),i=()=>{const e=new Date,n=e.getTime();return{pageLoadTimestamp:a,currentTimestamp:n,currentDate:e.getDate(),"~state.com.adobe.module.lifecycle/lifecyclecontextdata.dayofweek":e.getDay()+1,"~state.com.adobe.module.lifecycle/lifecyclecontextdata.hourofday":e.getHours(),currentMinute:e.getMinutes(),currentMonth:e.getMonth(),currentYear:e.getFullYear(),pageVisitDuration:n-a,"~timestampu":n/1e3,"~timestampz":e.toISOString()}},o=()=>({height:n.height,width:n.width,scrollY:n.scrollY,scrollX:n.scrollX}),c={browser:{name:t()},page:r(),referringPage:s()},l=()=>({...c,...i(),window:o(),"~sdkver":li});return{getContext:(n={})=>{const t={...l(),...n};return{...Bi(t),events:e.toJSON()}}}};const pc=(e,...n)=>n,uc=()=>!0,gc=()=>{let e=pc,n=uc,t=0;const a={},r=e=>()=>{delete a[e]},s=(e,n)=>"function"!=typeof e?()=>{}:(t+=1,a[t]={callback:e,params:n},{id:t,unsubscribe:r(t)}),i=(...t)=>{Object.values(a).forEach((({callback:a,params:r})=>{const s=e(r,...t);n(r,...s)&&a(...s)}))},o=(t,...r)=>{if(!t||!a[t])return;const{callback:s,params:i}=a[t],o=e(i,...r);n(i,...o)&&s(...o)};return{add:s,emit:i,emitOne:o,hasSubscriptions:()=>Object.keys(a).length>0,setEmissionPreprocessor:n=>{"function"==typeof n&&(e=n)},setEmissionCondition:e=>{"function"==typeof e&&(n=e)}}},mc=({options:e})=>Sa({surfaces:xa(Ia()).uniqueItems(),schemas:xa(Ia()).uniqueItems(),callback:Ca().required()}).noUnknownFields()(e),bc=e=>{const{id:n,scope:t,scopeDetails:a}=e;return{id:n,scope:t,scopeDetails:a}};var hc=({collect:e})=>{let n=()=>{};const t=new Set,a=e=>[_o.INTERACT,_o.DISMISS].includes(e),r=(e,n,r)=>{const s=[e,n].join("-"),i=!r.has(s)&&(a(e)||!t.has(s));return r.add(s),t.add(s),i},s=(n,t=[])=>{if(!(t instanceof Array))return Promise.resolve();if(!Object.values(_o).includes(n))return Promise.resolve();const a=[],s=new Set;return t.forEach((e=>{const t=bc(e);r(n,t.id,s)&&a.push(t)})),a.length>0?e({decisionsMeta:a,eventType:Io(n),documentMayUnload:!0}):Promise.resolve()},i=gc(),o=(e,n)=>{const{surfacesFilter:t,schemasFilter:a}=e;return[{propositions:n.filter((e=>!t||t.includes(e.scope))).map((e=>{const{items:n=[]}=e;return{...e,items:n.filter((e=>!a||a.includes(e.schema)))}})).filter((e=>e.items.length>0))},s]};i.setEmissionPreprocessor(o);const c=({surfaces:e,schemas:t,callback:a})=>{const{id:r,unsubscribe:s}=i.add(a,{surfacesFilter:e instanceof Array?e:void 0,schemasFilter:t instanceof Array?t:void 0});return n(r),Promise.resolve({unsubscribe:s})};return{refresh:e=>{n=n=>
7{n?i.emitOne(n,e):i.emit(e)},n()},command:{optionsValidator:e=>mc({options:e}),run:c}}};const fc=({options:e})=>Sa({renderDecisions:Pa(),personalization:Sa({decisionContext:Sa({})})}).noUnknownFields()(e);var vc=({contextProvider:e,decisionProvider:n})=>({optionsValidator:e=>fc({options:e}),run:({renderDecisions:t,decisionContext:a,applyResponse:r})=>r({renderDecisions:t,propositions:n.evaluate(e.getContext(a))})}),yc=({eventManager:e,mergeDecisionsMeta:n})=>({decisionsMeta:t=[],propositionAction:a,documentMayUnload:r=!1,eventType:s=yo,propositionEventTypes:i=[So(s)],viewName:o,identityMap:c})=>{const l=e.createEvent(),d={eventType:s,identityMap:c};return o&&(d.web={webPageDetails:{viewName:o}}),Be(t)&&n(l,t,i,a),l.mergeXdm(d),r&&l.documentMayUnload(),e.sendEvent(l)};const kc=(e,n,t,a)=>{if(0===n.length)return;const r={};t.forEach((e=>{r[e]=Co}));const s={_experience:{decisioning:{propositions:n,propositionEventType:r}}};a&&(s._experience.decisioning.propositionAction=a),e.mergeXdm(s)},wc=(e,n)=>{e.mergeQuery({personalization:{...n}})},xc=({config:e,eventManager:n,createNamespacedStorage:t,consent:a,getBrowser:r,logger:s})=>{const{orgId:i,personalizationStorageEnabled:o}=e,c=yc({eventManager:n,mergeDecisionsMeta:kc}),l=t(`${Dn(i)}.decisioning.`);o||Jo(l.persistent);const d=lc({storage:Qo(),logger:s}),p=ic({eventRegistry:d}),u=dc({eventRegistry:d,window:window,getBrowser:r}),g=vc({contextProvider:u,decisionProvider:p}),m=hc({collect:c});let b;return{lifecycle:{onDecision({propositions:e}){m.refresh(e)},onComponentsRegistered(e){b=cc({lifecycle:e.lifecycle,eventRegistry:d}),o&&a.awaitConsent().then((()=>{d.setStorage(l.persistent)}
7)).catch((()=>{l&&Jo(l.persistent)}))},onBeforeEvent({event:e,renderDecisions:n,personalization:t={},onResponse:a=nt}){const{decisionContext:r={}}=t;a(Ui({renderDecisions:n,decisionProvider:p,applyResponse:b,event:e,personalization:t,decisionContext:u.getContext({[Ao.TYPE]:Lo.EDGE,[Ao.SOURCE]:qo.REQUEST,...r})}))},onBeforeRequest({request:e}){const n=e.getPayload().toJSON(),{events:t=[]}=n;0!==t.length&&t.forEach((e=>d.addExperienceEdgeEvent(e)))}},commands:{evaluateRulesets:{run:({renderDecisions:e,personalization:n={}})=>{const{decisionContext:t={}}=n;return g.run({renderDecisions:e,decisionContext:{[Ao.TYPE]:Lo.RULES_ENGINE,[Ao.SOURCE]:qo.REQUEST,...t},applyResponse:b})},optionsValidator:g.optionsValidator},subscribeRulesetItems:m.command}}};xc.namespace="RulesEngine",xc.configValidators=Sa({personalizationStorageEnabled:Pa().default(!1)}),Sa({streamingMedia:Sa({channel:Ia().nonEmpty().required(),playerName:Ia().nonEmpty().required(),appVersion:Ia(),mainPingInterval:Ta().minimum(10).maximum(50).default(10),adPingInterval:Ta().minimum(1).maximum(10).default(10)}).noUnknownFields()}),Sa({interactionId:Ia(),conversationId:Ia(),conversation:Sa({feedback:Sa({classification:Ia(),comment:Ia(),reasons:xa(Ia())})})});const Pc="web",Cc="webapp",_c="://",Tc="#",Dc=/^(\w+):\/\/([^/#]+)(\/[^#]*)?(#.*)?$/,Sc=/^(?:.*@)?(?:[a-z\d\u00a1-\uffff.-]+|\[[a-f\d:]+])(?::\d+)?$/,Ic=/^\/(?:[/\w\u00a1-\uffff-.~]|%[a-fA-F\d]{2})*$/,Ec=/^#(?:[/\w\u00a1-\uffff-.~]|%[a-fA-F\d]{2})+$/,Vc=(e="/")=>{let n=e.length;for(;n>0&&-1!=="/".indexOf(e.charAt(n-1));)n-=1;return e.substring(0,n)||"/"},Rc=e=>et(e)?e.toLowerCase():"",Nc=e=>et(e)?e.toLowerCase():"",Oc=e=>et(e)?Vc(e):"/",jc=e=>{const n=e.match(Dc);return n?{surfaceType:Rc(n[1]),authority:Nc(n[2]),path:Oc(n[3]),fragment:n[4]}:null},Ac=e=>`${e.surfaceType}${_c}${e.authority}${e.path||""}${e.fragment||""}`,Lc=e=>{const n=e(),t=n.host.toLowerCase(),a=n.pathname;return Pc+_c+t+Vc(a)},qc=(e,n)=>e.startsWith(Tc)?Lc(n)+e:e,Mc=(e,n,t)=>{const a=e=>(t.warn(e),null);if(!et(e))return a(`Invalid surface: ${e}`);const r=qc(e,n),s=jc(r);return null===s?a(`Invalid surface: ${e}`):[Pc,Cc].includes(s.surfaceType)?s.authority&&Sc.test(s.authority)?s.path&&!Ic.test(s.path)?a(`Invalid path ${s.path} in surface: ${e}`):s.fragment&&!Ec.test(s.fragment)?a(`Invalid fragment ${s.fragment} in surface: ${e}`):s:a(`Invalid authority ${s.authority} in surface: ${e}`):a(`Unsupported surface type ${s.surfaceType} in surface: ${e}`)},Fc=e=>!!e&&0===e.indexOf(Pc+_c)&&-1===e.indexOf(Tc),Bc=(e=[],n,t)=>e.map((e=>Mc(e,n,t))).filter((e=>!ue(e))).map(Ac),Uc=1e4;Sa({conversation:Sa({stickyConversationSession:Pa().default(!1),streamTimeout:Ta().integer().minimum(Uc).default(Uc),collectSources:Pa().default(!1),region:Ia().matches(/^[a-z]{2,4}[0-9]{1,2}$/i)}).default({stickyConversationSession:!1,streamTimeout:Uc,collectSources:!1})});const $c=(e={},n)=>{const t=Sa({name:Ia().default("alloy"),monitors:xa(Sa({})).default([]),components:xa(Ca())}).noUnknownFields(),{name:a,monitors:r,components:s}=t(e);return mi({instanceName:a,monitors:r,components:s,createPlatformServices:n})},Hc=({eventManager:e,lifecycle:n,handleError:t})=>a=>{if(a.s_fe)return Promise.resolve();const r="composedPath"in a&&a.composedPath().length>0?a.composedPath()[0]:a.target,s=e.createEvent();return s.documentMayUnload(),n.onClick({event:s,clickedElement:r}).then((()=>s.isEmpty()?Promise.resolve():e.sendEvent(s))).then(nt).catch((e=>{t(e,"click collection")}))};var Kc=({eventManager:e,lifecycle:n,handleError:t})=>{const a=Hc({eventManager:e,lifecycle:n,handleError:t});document.addEventListener("click",a,!0)};const zc="\\.(exe|zip|wav|mp3|mov|mpg|avi|wmv|pdf|doc|docx|xls|xlsx|ppt|pptx)$",Wc=Ia().regexp().default(zc),Gc=Sa({clickCollectionEnabled:Pa().default(!0),clickCollection:Sa({internalLinkEnabled:Pa().default(!0),externalLinkEnabled:Pa().default(!0),downloadLinkEnabled:Pa().default(!0),sessionStorageEnabled:Pa().default(!1),eventGroupingEnabled:Pa().default(!1),filterClickProperties:Ca()}).default({internalLinkEnabled:!0,externalLinkEnabled:!0,downloadLinkEnabled:!0,sessionStorageEnabled:!1,eventGroupingEnabled:!1}),downloadLinkQualifier:Wc,onBeforeLinkClickSend:Ca().deprecated('The field "onBeforeLinkClickSend" has been deprecated. Use "clickCollection.filterClickDetail
7s" instead.')}),Qc="cppXYctnr";var Jc=(e=document)=>null!==e.getElementById(Qc),Zc=e=>{let n=e;return/^https?:\/\//i.test(n)||(n=`${window.location.protocol}//${e}`),new URL(n).hostname},Xc=(e,n)=>Zc(e)!==Zc(n);const Yc=(e,n)=>n&&("download"===n&&!e.downloadLinkEnabled||"exit"===n&&!e.externalLinkEnabled||"other"===n&&!e.internalLinkEnabled);var el=({config:e,logger:n,getClickedElementProperties:t,clickActivityStorage:a})=>{const{clickCollectionEnabled:r,clickCollection:s}=e;return r?({event:r,clickedElement:i})=>{const o=t({clickActivityStorage:a,clickedElement:i,config:e,logger:n}),c=o.linkType;Jc()||(o.isValidLink()&&Yc(s,c)?n.info(`Cancelling link click event due to clickCollection.${c}LinkEnabled = false.`):!o.isInternalLink()||!s.eventGroupingEnabled||e.onBeforeLinkClickSend&&!s.filterClickDetails||Xc(window.location.hostname,o.linkUrl)?o.isValidLink()?(r.mergeXdm(o.xdm),r.mergeData(o.data),a.save({pageName:o.pageName,pageIDType:o.pageIDType})):o.isValidActivityMapData()&&a.save(o.properties):a.save(o.properties))}:()=>{}};const nl=e=>({eventType:"web.webinteraction.linkClicks",web:{webInteraction:{name:e.linkName,region:e.linkRegion,type:e.linkType,URL:e.linkUrl,linkClicks:{value:1}}}}),tl=e=>({__adobe:{analytics:{contextData:{a:{activitymap:{page:e.pageName,link:e.linkName,region:e.linkRegion,pageIDType:e.pageIDType}}}}}}),al=(e,n)=>{const{xdm:t,data:a,clickedElement:r}=e;if(n.clickedElement=r,t&&t.web&&t.web.webInteraction){const{name:e,region:a,type:r,URL:s}=t.web.webInteraction;n.linkName=e,n.linkRegion=a,n.linkType=r,n.linkUrl=s}if(a&&a.__adobe&&a.__adobe.analytics){const{contextData:e}=a.__adobe.analytics;if(e&&e.a&&e.a.activitymap){const{page:t,link:a,region:r,pageIDType:s}=e.a.activitymap;n.pageName=t||n.pageName,n.linkName=a||n.linkName,n.linkRegion=r||n.linkRegion,void 0!==s&&(n.pageIDType=s)}}};var rl=({properties:e,logger:n}={})=>{let t=e||{};return{get pageName(){return t.pageName},set pageName(e){t.pageName=e},get linkName(){return t.linkName},set linkName(e){t.linkName=e},get linkRegion(){return t.linkRegion},set linkRegion(e){t.linkRegion=e},get linkType(){return t.linkType},set linkType(e){t.linkType=e},get linkUrl(){return t.linkUrl},set linkUrl(e){t.linkUrl=e},get pageIDType(){return t.pageIDType},set pageIDType(e){t.pageIDType=e},get clickedElement(){return t.clickedElement},set clickedElement(e){t.clickedElement=e},get properties(){return{pageName:t.pageName,linkName:t.linkName,linkRegion:t.linkRegion,linkType:t.linkType,linkUrl:t.linkUrl,pageIDType:t.pageIDType}},isValidLink:()=>!!(t.linkUrl&&t.linkType&&t.linkName&&t.linkRegion),isInternalLink(){return this.isValidLink()&&"other"===t.linkType},isValidActivityMapData:()=>!!t.pageName&&!!t.linkName&&!!t.linkRegion&&void 0!==t.pageIDType,get xdm(){return t.filteredXdm?t.filteredXdm:nl(this)},get data(){return t.filteredData?t.filteredData:tl(this)},applyPropertyFilter(e){e&&!1===e(t)&&(n&&n.info(`Clicked element properties were rejected by filter function: ${JSON.stringify(this.properties,null,2)}`),t={})},applyOptionsFilter(e){const a=this.options;if(a&&a.clickedElement&&(a.xdm||a.data)){if(e&&!1===e(a))return n&&n.info(`Clicked element properties were rejected by filter function: ${JSON.stringify(this.properties,null,2)}`),void(this.options=void 0);this.options=a,t.filteredXdm=a.xdm,t.filteredData=a.data}},get options(){const e={};if(this.isValidLink()&&(e.xdm=this.xdm),this.isValidActivityMapData()&&(e.data=this.data),this.clickedElement&&(e.clickedElement=this.clickedElement),e.xdm||e.data)return e},set options(e){t={},e&&al(e,t)}}},sl=({clickActivityStorage:e})=>n=>{if(Jc())return;const t=e.load(),a=rl({properties:t});if(a.isValidLink()||a.isValidActivityMapData()){if(a.isValidLink()){const e=a.xdm;delete e.eventType,n.mergeXdm(e)}a.isValidActivityMapData()&&n.mergeData(a.data),e.save({pageName:a.pageName,pageIDType:a.pageIDType})}},il=({window:e,getLinkName:n,getLinkRegion:t,getAbsoluteUrlFromAnchorElement:a,findClickableElement:r,determineLinkType:s})=>({clickedElement:i,config:o,logger:c,clickActivityStorage:l})=>{const{onBeforeLinkClickSend:d,clickCollection:p}
7=o,{filterClickDetails:u}=p,g=rl({logger:c});if(i){const c=r(i);if(c){g.clickedElement=i,g.linkUrl=a(e,c),g.linkType=s(e,o,g.linkUrl,c),g.linkRegion=t(c),g.linkName=n(c),g.pageIDType=0,g.pageName=e.location.href;const r=l.load();r&&r.pageName&&(g.pageName=r.pageName,g.pageIDType=1),u?g.applyPropertyFilter(u):d&&g.applyOptionsFilter(d)}}return g};const ol="clickData";var cl=({storage:e})=>({save:n=>{const t=JSON.stringify(n);e.setItem(ol,t)},load:()=>{let n=null;const t=e.getItem(ol);return t&&(n=JSON.parse(t)),n},remove:()=>{e.removeItem(ol)}}),ll=({clickActivityStorage:e})=>n=>{e.save({pageName:n.getContent().xdm.web.webPageDetails.name,pageIDType:1})},dl=(e,n)=>{const{clickCollectionEnabled:t,onBeforeLinkClickSend:a,downloadLinkQualifier:r}=e;!1===t&&(a&&n.warn("The 'onBeforeLinkClickSend' configuration was provided but will be ignored because clickCollectionEnabled is false."),r&&r!==zc&&n.warn("The 'downloadLinkQualifier' configuration was provided but will be ignored because clickCollectionEnabled is false."))},pl=e=>e&&e.replace(/\s+/g," ").trim();const ul=/^(SCRIPT|STYLE|LINK|CANVAS|NOSCRIPT|#COMMENT)$/i;var gl=e=>!(e&&e.nodeName&&e.nodeName.match(ul));const ml=e=>{let n=[],t=!1;return gl(e)?(n.push(e),e.childNodes&&Array.prototype.slice.call(e.childNodes).forEach((e=>{const a=ml(e);
7n=n.concat(a.supportedNodes),t=t||a.includesUnsupportedNodes}))):t=!0,{supportedNodes:n,includesUnsupportedNodes:t}},bl=(e,n,t)=>{let a;return t&&t!==e.nodeName.toUpperCase()||(a=e.getAttribute(n)),a},hl=e=>{const n={texts:[]};return e.supportedNodes.forEach((e=>{e.getAttribute&&(n.alt||(n.alt=pl(e.getAttribute("alt"))),n.title||(n.title=pl(e.getAttribute("title"))),n.inputValue||(n.inputValue=pl(bl(e,"value","INPUT"))),n.imgSrc||(n.imgSrc=pl(bl(e,"src","IMG"))),n.ariaLabel||(n.ariaLabel=pl(e.getAttribute("aria-label"))),n.name||(n.name=pl(e.getAttribute("name")))),e.nodeValue&&n.texts.push(e.nodeValue)})),n},fl=/^(HEADER|MAIN|FOOTER|NAV)$/i,vl=e=>{let n;return"region"===e.role&&et(e["aria-label"])&&(n=e["aria-label"]),n},yl=e=>{let n;return e&&e.nodeName&&e.nodeName.match(fl)&&(n=e.nodeName),n};var kl=(e,n)=>{const t=e.location.href;let a=n.href||"";"string"!=typeof a&&(a="");try{return new URL(a,t).href}catch{return t}},wl=e=>!(!e.href||"A"!==e.tagName&&"AREA"!==e.tagName||e.onclick&&e.protocol&&!(e.protocol.toLowerCase().indexOf("javascript")<0)),xl=e=>!!e&&!!e.onclick,Pl=e=>{if("INPUT"===e.tagName){const n=e.getAttribute("type");if("submit"===n)return!0;if("image"===n&&e.src)return!0}return!1},Cl=e=>"BUTTON"===e.tagName&&"submit"===e.type,_l=e=>{const n=e.indexOf("?"),t=e.indexOf("#");return n>=0&&(n<t||t<0)?e.substring(0,n):t>=0?e.substring(0,t):e},Tl=(e,n,t)=>{let a=!1;if(n)if(t&&t.download)a=!0;else if(e){const t=new RegExp(e),r=_l(n).toLowerCase();a=t.test(r)}return a},Dl=(e,n)=>{let t=!1;if(n&&e.location.hostname){const a=e.location.hostname.toLowerCase();t=_l(n).toLowerCase().indexOf(a)<0}return t},Sl=e=>{const n=e.getContent();return void 0!==n.xdm&&void 0!==n.xdm.web&&void 0!==n.xdm.web.webPageDetails&&void 0!==n.xdm.web.webPageDetails.name},Il=()=>{const e={};return{getItem:n=>e[n],setItem:(n,t)=>{e[n]=t},removeItem:n=>{delete e[n]}}};const El=il({window:window,getLinkName:e=>{let n=pl(e.innerText||e.textContent);const t=ml(e);
7if(!n||t.includesUnsupportedNodes){const e=hl(t);n=pl(e.texts.join("")),n||(n=e.alt||e.title||e.inputValue||e.imgSrc||e.ariaLabel||e.name)}return n||""},getLinkRegion:e=>{let n,t=e.parentNode;for(;t;){if(n=pl(t.id||vl(t)||yl(t)),n)return n;t=t.parentNode}return"BODY"},getAbsoluteUrlFromAnchorElement:kl,findClickableElement:e=>{let n=e;for(;n&&(!n.nodeName||"BODY"!==n.nodeName);){if(wl(n)||xl(n)||Pl(n)||Cl(n))return n;n=n.parentNode}return null},determineLinkType:(e,n,t,a)=>{let r="other";return et(t)&&(Tl(n.downloadLinkQualifier,t,a)?r="download":Dl(e,t)&&(r="exit")),r}});let Vl;const Rl=e=>{if(!Vl){const n=Wn(window)(e.orgId||""),t=Il(),a=e.clickCollection.sessionStorageEnabled?n.session:t;Vl=cl({storage:a})}},Nl=({config:e,eventManager:n,handleError:t,logger:a})=>{dl(e,a);const r=e.clickCollection;Vl||Rl(e);const s=el({config:e,logger:a,clickActivityStorage:Vl,getClickedElementProperties:El}),i=sl({clickActivityStorage:Vl}),o=ll({clickActivityStorage:Vl});return{lifecycle:{onComponentsRegistered(e){const{lifecycle:a}=e;Kc({eventManager:n,lifecycle:a,handleError:t})},onClick({event:e,clickedElement:n}){s({event:e,clickedElement:n})},onBeforeEvent({event:e}){Sl(e)&&(r.eventGroupingEnabled&&i(e),o(e,a,Vl))}}}};Nl.namespace="ActivityCollector",Nl.configValidators=Gc,Nl.buildOnInstanceConfiguredExtraParams=({config:e,logger:n})=>(Vl||Rl(e),{getLinkDetails:t=>El({ 8clickActivityStorage:Vl,clickedElement:t,config:e,logger:n}).properties}),Sa({advertising:Sa({id5PartnerId:Ia(),rampIdJSPath:Ia(),dspEnabled:Pa(),advertiserSettings:xa(Sa({advertiserId:Ia().required(),enabled:Pa().required()}).noUnknownFields())}).noUnknownFields()});const Ol=e=>{e.includes(Vr)||e.push(Vr)},jl=(e,n)=>{const t=Lc(n);e.includes(t)||e.push(t)},Al=e=>e.filter(((n,t)=>e.indexOf(n)===t));var Ll=({getPageLocation:e,renderDecisions:n,decisionScopes:t,personalization:a,event:r,isCacheInitialized:s,logger:i})=>{const o=r.getViewName();return{isRenderDecisions:()=>n,isSendDisplayEvent:()=>!!a.sendDisplayEvent,shouldIncludeRenderedPropositions:()=>!!a.includeRenderedPropositions,getViewName:()=>o,hasScopes:()=>t.length>0||Be(a.decisionScopes),hasSurfaces:()=>Be(a.surfaces),hasViewName:()=>et(o),createQueryDetails(){const n=[...t];Be(a.decisionScopes)&&n.push(...a.decisionScopes);const r=Bc(a.surfaces,e,i);this.shouldRequestDefaultPersonalization()&&(Ol(n),jl(r,e));const s=[lo,uo,go,bo,mo,ho,fo];return n.includes(Vr)&&s.push(po),{schemas:s,decisionScopes:Al(n),surfaces:Al(r)}},isCacheInitialized:()=>s,shouldFetchData(){return this.hasScopes()||this.hasSurfaces()||this.shouldRequestDefaultPersonalization()},shouldUseCachedData(){return this.hasViewName()&&!this.shouldFetchData()},shouldRequestDefaultPersonalization(){return a.defaultPersonalizationEnabled||!this.isCacheInitialized()&&!1!==a.defaultPersonalizationEnabled}}};const ql="Rendering is disabled for authoring mode.",Ml={propositions:[]};var Fl=({logger:e,options:n})=>{const t=Sa({propositions:xa(Sa({id:Ia().required(),scope:Ia().required(),scopeDetails:Sa({decisionProvider:Ia().required()}).required(),items:xa(Sa({id:Ia().required(),schema:Ia().required(),data:Sa(wa())})).nonEmpty().required()}).required()).nonEmpty().required(),metadata:Sa(wa()),viewName:Ia()}).required();try{return t(n)}catch(n){return e.warn("Invalid options for applyPropositions. No propositions will be applied.",n),Ml}},Bl=({getPageLocation:e,logger:n,fetchDataHandler:t,viewChangeHandler:a,onClickHandler:r,isAuthoringModeEnabled:s,mergeQuery:i,viewCache:o,showContainers:c,applyPropositions:l,setTargetMigration:d,mergeDecisionsMeta:p,renderedPropositions:u,onDecisionHandler:g,handleConsentFlicker:m})=>({lifecycle:{onComponentsRegistered(){m()},onDecision:g,onBeforeRequest:({request:e})=>(d(e),Promise.resolve()),onBeforeEvent({event:r,renderDecisions:l,decisionScopes:d=[],personalization:g={},onResponse:m=nt,onRequestFailure:b=nt}){if(m((()=>({propositions:[]}))),b((()=>c())),s())return n.warn(ql),i(r,{enabled:!1}),Promise.resolve();const h=Ll({getPageLocation:e,renderDecisions:l,decisionScopes:d,personalization:g,event:r,isCacheInitialized:o.isInitialized(),logger:n}),f=[];if(h.shouldIncludeRenderedPropositions()&&f.push(u.clear()),h.shouldFetchData()){const e=o.createCacheUpdate(h.getViewName());b((()=>e.cancel()));const n=r.getUserIdentityMap();
8t({cacheUpdate:e,personalizationDetails:h,event:r,onResponse:m,identityMap:n})}else h.shouldUseCachedData()&&f.push(a({personalizationDetails:h,event:r,onResponse:m,onRequestFailure:b}));return Promise.all(f).then((e=>{const n=e.flatMap((e=>e));Be(n)&&p(r,n,[_o.DISPLAY])}))},onClick({event:e,clickedElement:n}){r({event:e,clickedElement:n})}},commands:{applyPropositions:{optionsValidator:e=>Fl({logger:n,options:e}),run:l}}}),Ul=(e="undefined")=>Ve(je,{},{innerHTML:e});const $l=":eq(",Hl=/:eq\((\d+)\)/g,Kl=e=>-1===e.indexOf($l),zl=e=>e.split(Hl).filter(et),Wl=/(#|\.)(-?\w+)/g,Gl=(e,n,t)=>`${n}${CSS.escape(t)}`,Ql=e=>e.replace(Wl,Gl),Jl=e=>{const n=[],t=Ql(e.trim()),a=zl(t),{length:r}=a;let s=0;for(;s<r;){const e=a[s],t=a[s+1];t?n.push({sel:e,eq:Number(t)}):n.push({sel:e}),s+=2}return n},Zl=e=>{const n=document;if(Kl(e))return Je(e,n);const t=Jl(e),{length:a}=t;let r=[],s=n,i=0;for(;i<a;){const{sel:e,eq:n}=t[i],o=Je(e,s),{length:c}=o;if(0===c)break;if(null!=n&&n>c-1)break;i<a-1&&(null==n?[s]=o:s=o[n]),i===a-1&&(r=null==n?o:[o[n]]),i+=1}return r};var Xl=(e,n=document)=>n.getElementById(e),Yl=(e,n,t)=>{e.setAttribute(n,t)},ed=(e,n)=>e.getAttribute(n),nd=(e,n)=>{e.removeAttribute(n)},td=(e,n,t,a)=>{let r;r=a?`${n}:${t} !${a};`:`${n}:${t};`,e.style.cssText+=`;${r}`},ad=e=>e.parentNode,rd=e=>e.nextElementSibling,sd=(e,n)=>{if(!e)return;const t=ad(e);t&&t.insertBefore(n,rd(e))},id=(e,n)=>{if(!e)return;const t=ad(e);t&&t.insertBefore(n,e)},od=e=>{const{children:n}=e;return n?Ue(n):[]},cd=e=>{const{childNodes:n}=e;return n?Ue(n):[]},ld=e=>e.firstElementChild;let dd;var pd=(e=document)=>{if(void 0===dd){const n=e.querySelector("[nonce]");dd=n&&(n.nonce||n.getAttribute("nonce"))}return dd};const ud="src",gd=e=>e.tagName===Oe,md=e=>Ve(Oe,{src:e}),bd=e=>{Je(Oe,e).forEach((e=>{const n=ed(e,ud);n&&md(n)}))},hd=(e,n)=>e.tagName===n,fd=e=>hd(e,Ae)&&!ed(e,ud);var vd=e=>{const n=Je(Ae,e),{length:t}=n,a=pd();if(a)for(let e=0;e<t;e+=1){const t=n[e];fd(t)&&(t.nonce=a)}};const yd=(e,n)=>new Promise(((t,a)=>{n.onload=()=>{t(n)},n.onerror=()=>{a(new Error(`Failed to load script: ${e}`))}})),kd=e=>{const n=document.createElement("script");n.src=e,n.async=!0;const t=yd(e,n);return document.head.appendChild(n),t},wd=(e,n)=>!!e&&e.tagName===n,xd=e=>wd(e,Le)&&!ed(e,ud),Pd=e=>wd(e,Le)&&ed(e,ud),Cd=e=>{const n=Je(Le,e),t=[],{length:a}=n,r=pd(),s={...r&&{nonce:r}};for(let e=0;e<a;e+=1){const a=n[e];if(!xd(a))continue;const{textContent:r}=a;r&&t.push(Ve(Le,s,{textContent:r}))}return t},_d=e=>{const n=Je(Le,e),t=[],{length:a}=n;for(let e=0;e<a;e+=1){const a=n[e];if(!Pd(a))continue;const r=ed(a,ud);r&&t.push(r)}return t},Td=(e,n)=>{n.forEach((n=>{e.appendChild(n),e.removeChild(n)}))},Dd=e=>Promise.all(e.map(kd));var Sd=(e,n,t)=>{const a=Ul(n);vd(a);const r=cd(a),s=Cd(a),i=_d(a);return bd(a),r.forEach((n=>{Ie(e,n)})),t(e),Td(e,s),Dd(i)};const Id=e=>{cd(e).forEach(mn)};var Ed=(e,n,t)=>(Id(e),Sd(e,n,t)),Vd=(e,n,t)=>{const a=Ul(n);vd(a);const r=cd(a),s=Cd(a),i=_d(a),{length:o}=r;let c=o-1;for(bd(a);c>=0;){const n=r[c];t(n);const a=ld(e);a?id(a,n):Ie(e,n),c-=1}return Td(e,s),Dd(i)};const Rd="alloy-prehiding",Nd="{ visibility: hidden }",Od={},jd=e=>{if(Od[e])return;const n=pd(),t={...n&&{nonce:n}},a=Ve(Ae,t,{textContent:`${e} ${Nd}`});Ie(document.head,a),Od[e]=a},Ad=e=>{const n=Od[e];n&&(mn(n),delete Od[e])},Ld=e=>n=>{if(!n)return;if(Xl(Rd))return;const t=pd(),a={id:Rd,...t&&{nonce:t}},r=Ve(Ae,a,{textContent:n});e.logOnContentHiding({status:"hide-containers",message:"Prehiding style applied to hide containers.",logLevel:"info"}),Ie(document.head,r)},qd=e=>()=>{const n=Xl(Rd);n&&(e.logOnContentHiding({status:"show-containers",message:"Prehiding style removed to show containers.",logLevel:"info"}),mn(n))};var Md=(e,n,t)=>{t(e),e.textContent=n},Fd=(e,n,t)=>{const a=Ul(n);vd(a);const r=cd(a),s=Cd(a),i=_d(a);return bd(a),r.forEach((n=>{t(n),id(e,n)})),Td(e,s),Dd(i)},Bd=(e,n,t)=>Fd(e,n,t).then((()=>{mn(e)})),Ud=(e,n,t)=>{const a=Ul(n);vd(a);const r=cd(a),s=Cd(a),i=_d(a);bd(a);let o=e;return r.forEach((e=>{t(e),sd(o,e),o=e})),Td(e,s),Dd(i)},$d=(e,n,t)=>{const{priority:a,...r}=n;Object.keys(r).forEach((n=>{td(e,n,r[n],a)})),t(e)},Hd=(e,n,t)=>
8{Object.keys(n).forEach((t=>{Yl(e,t,n[t])})),t(e)},Kd=(e,n,t)=>{gd(e)&&(md(n),t(e),nd(e,ud),Yl(e,ud,n))},zd=(e,{from:n,to:t},a)=>{const r=od(e),s=r[n],i=r[t];s&&i&&(n<t?sd(i,s):id(i,s),a(i),a(s))};const Wd=({containers:e,content:n,decorateProposition:t,renderFunc:a,renderStatusHandler:r,alwaysRender:s})=>{const i=e.filter((e=>s||r.shouldRender(e))).map((async e=>{await a(e,n,t),r.markAsRendered(e)}));return Promise.all(i)},Gd=(e,n=!1)=>async(t,a,r)=>{const{selector:s,prehidingSelector:i,content:o}=t;jd(i);try{const t=await un(s,Zl);Wd({containers:t,content:o,decorateProposition:a,renderFunc:e,renderStatusHandler:r,alwaysRender:n})}finally{Ad(i)}},Qd=e=>`${e}`.endsWith("px")?e:`${e}px`;var Jd=(e,n,t)=>{const{priority:a,...r}=n;Object.keys(r).forEach((n=>{let t=r[n];"left"!==n&&"top"!==n||(t=Qd(t)),td(e,n,t,a)})),t(e)},Zd=(e,n,t)=>{t(e)},Xd=(e,n,t)=>{const{priority:a,...r}=n;Object.keys(r).forEach((n=>{let t=r[n];"width"!==n&&"height"!==n||(t=Qd(t)),td(e,n,t,a)})),t(e)};const Yd="setHtml",ep="customCode",np="setText",tp="setAttribute",ap="setImageSource",rp="setStyle",sp="move",ip="resize",op="rearrange",cp="remove",lp="insertAfter",dp="insertBefore",pp="replaceHtml",up="prependHtml",gp="appendHtml",mp="click",bp="collectInteractions";var hp=()=>({[Yd]:Gd(Ed,!0),[ep]:Gd(Vd,!0),[np]:Gd(Md,!0),[tp]:Gd(Hd,!0),[ap]:Gd(Kd,!0),[rp]:Gd($d,!0),[sp]:Gd(Jd,!0),[ip]:Gd(Xd,!0),[op]:Gd(zd),[cp]:Gd(mn,!0),[lp]:Gd(Ud),[dp]:Gd(Fd),[pp]:Gd(Bd,!0),[up]:Gd(Vd),[gp]:Gd(Sd),[bp]:Gd(Zd,!0)});const fp="personalization:decisions";var vp=({logger:e,prehidingStyle:n,showContainers:t,hideContainers:a,mergeQuery:r,processPropositions:s,createProposition:i,notificationHandler:o,consent:c})=>({cacheUpdate:l,personalizationDetails:d,event:p,onResponse:u,identityMap:g})=>{const{state:m,wasSet:b}=c.current();"out"===m&&b||(d.isRenderDecisions()?a(n):t()),r(p,d.createQueryDetails());const h=o(d.isRenderDecisions(),d.isSendDisplayEvent(),d.getViewName(),g);u((({response:n})=>{const a=n.getPayloadsByType(fp);Be(a)||e.logOnContentRendering({status:"no-offers",message:"No offers were returned.",logLevel:"info",detail:{query:d.createQueryDetails()}});const r=a.map((e=>i(e,!0,!1,g))),{page:o=[],view:c=[],proposition:p=[]}=In(r,(e=>e.getScopeType())),u=l.update(c);let m,b,f;return d.isRenderDecisions()?(({render:m,returnedPropositions:b,returnedDecisions:f}=s([...o,...u],p)),Be(o)&&e.logOnContentRendering({status:"rendering-started",message:"Started rendering propositions for page-wide scope.",logLevel:"info",detail:{scope:Vr,propositions:o.map((e=>e.toJSON()))}}),Be(u)&&e.logOnContentRendering({status:"rendering-started",message:`Rendering propositions started for view scope - ${d.getViewName()}.`,logLevel:"info",detail:{scope:d.getViewName(),propositions:u.map((e=>e.toJSON()))}}),m().then(h),1===o.length&&o[0].getItems().every((e=>e.getSchema()===bo))||t()):({returnedPropositions:b,returnedDecisions:f}=s([],[...o,...u,...p])),{propositions:b,decisions:f}}))},yp=(e,n)=>{if(Kl(e))return gn(e,n);const t=Zl(e);let a=!1;for(let e=0;e<t.length;e+=1)if(t[e]===n){a=!0;break}return a};const kp="view",wp="page",xp="proposition",Pp=e=>e.map((e=>{const{trackingLabel:n,scopeType:t,...a}=e;return a})),Cp=e=>e.filter(((n,t)=>{const a=JSON.stringify(n);return t===e.findIndex((e=>JSON.stringify(e)===a))})),_p=(e,n,t)=>{const{documentElement:a}=document;let r=e,s=0;for(;r&&r!==a;){if(yp(n,r)){const e=t(n),a={metas:e},r=e.find((e=>e.trackingLabel));r&&(a.label=r.trackingLabel,a.weight=s);const i=e.find((e=>e.scopeType===kp));return i&&(a.viewName=i.scope,a.weight=s),a}r=r.parentNode,s+=1}return{metas:null}};var Tp=(e,n,t)=>{const a=[];let r,s="",i=Number.MAX_SAFE_INTEGER,o=Number.MAX_SAFE_INTEGER;for(let c=0;c<n.length;c+=1){const{metas:l,label:d,weight:p,viewName:u}=_p(e,n[c],t);l&&(d&&p<=i&&(s=d,i=p),u&&p<=o&&(r=u,o=p),a.push(...Pp(l)))}return{decisionsMeta:Cp(a),propositionActionLabel:s,propositionActionToken:void 0,viewName:r}},Dp=(e=document)=>-1!==e.location.href.indexOf("adobe_authoring_enabled");const Sp=(e,n)=>{if(!n&&!e)return;const t={};return e&&(t.label=e),n&&(t.tokens=[n]),t};var Ip=({mergeDecisionsMeta:e,collectInteractions:n,collectClicks:t,getInteractionMetas:a,getClickMetas:r,getClickSelectors:s,autoCollectPropositionInteractions:i})=>({event:o,clickedElement:c})=>{const l=[];let d,p,u;
8if([n(c,a,i),t(c,s(),r)].forEach((({decisionsMeta:e,propositionActionLabel:n,propositionActionToken:t,viewName:a})=>{Array.prototype.push.apply(l,e),!d&&n&&(d=n),!p&&t&&(p=t),!u&&a&&(u=a)})),Be(l)){const n={eventType:ko};u&&(n.web={webPageDetails:{viewName:u}}),o.mergeXdm(n),e(o,l,[_o.INTERACT],Sp(d,p))}},Ep=({createProposition:e})=>{let n=!1,t=Promise.resolve({});const a=(n,t)=>{const a=n[t.toLowerCase()];return a&&a.length>0?a:[e({scope:t,scopeDetails:{characteristics:{scopeType:kp}},items:[{schema:lo}]},!1)]};return{createCacheUpdate:e=>{const r=_e();return n=!0,t=t.then((e=>r.promise.then((n=>({...e,...n}))).catch((()=>e)))),{update(n){const t=n.filter((e=>e.getScope())),s=In(t,(e=>e.getScope().toLowerCase()));return r.resolve(s),e?a(s,e):[]},cancel(){r.reject()}}},getView:e=>t.then((n=>a(n,e))),isInitialized:()=>n}},Vp=({processPropositions:e,viewCache:n,logger:t})=>({personalizationDetails:a,onResponse:r})=>{let s,i;const o=a.getViewName();return r((()=>({propositions:s,decisions:i}))),n.getView(o).then((n=>{let r;return a.isRenderDecisions()?(({render:r,returnedPropositions:s,returnedDecisions:i}=e(n)),t.logOnContentRendering({status:"rendering-started",message:`Started rendering propositions for view scope - ${o}.`,logLevel:"info",detail:{scope:o,propositions:n.map((e=>e.toJSON()))}}),r()):(({returnedPropositions:s,returnedDecisions:i}=e([],n)),[])}))};const Rp=e=>Object.keys(e).map((n=>({id:n,...e[n]})));var Np=()=>{const e={};return{storeClickMeta:({selector:n,meta:{id:t,scope:a,scopeDetails:r,trackingLabel:s,scopeType:i}})=>{e[n]||(e[n]={}),e[n][t]={scope:a,scopeDetails:r,trackingLabel:s,scopeType:i}},getClickSelectors:()=>Object.keys(e),getClickMetas:n=>e[n]?Rp(e[n]):{}}},Op=()=>{const e={},n={};return{storeInteractionMeta:(t,a,r,s,i)=>{i=parseInt(i,10),e[i]||(e[i]={},n[i]={}),n[i][t]||(n[i][t]=new Set),n[i][t].add(a),e[i][t]={...s,scopeType:r}},getInteractionMetas:t=>Array.isArray(t)&&0!==t.length?Object.values(t.map((e=>parseInt(e,10))).reduce(((t,a)=>(Object.keys(e[a]||{}).forEach((r=>{t[r]||(t[r]={proposition:e[a][r],items:new Set}),t[r].items=new Set([...t[r].items,...n[a][r]])})),t)),{})).map((({proposition:e,items:n})=>({...e,items:Array.from(n).map((e=>({id:e})))}))):[]}};const jp=(e,n)=>e===go&&n===bp,Ap={[po]:()=>!0,[uo]:()=>!0,[go]:jp,[ho]:()=>!0,[lo]:()=>!0},Lp=(e,n)=>"function"==typeof Ap[e]&&Ap[e](e,n);var qp=({processPropositions:e,createProposition:n,renderedPropositions:t,viewCache:a})=>{const r=({items:e,metadataForScope:n={}})=>{const{actionType:t,selector:a}=n;return e.filter((e=>Lp(e.schema,t))).map((e=>{const{schema:r}=e;return r===uo||jp(r,t)?vn(n)?void 0:{...e,schema:jp(r,t)?po:r,data:{...e.data,selector:a,type:t}}:{...e}})).filter((e=>e))},s=e=>!(e.scope===Vr&&e.renderAttempted),i=({propositions:e,metadata:n})=>e.filter(s).map((e=>{if(Be(e.items)){const{id:t,scope:a,scopeDetails:s}=e;return{id:t,scope:a,scopeDetails:s,items:r({items:e.items,metadataForScope:n[e.scope]})}}return e})).filter((e=>Be(e.items)));return({propositions:r=[],metadata:s={},viewName:o})=>{const c=_e();t.concat(c.promise);const l=i({propositions:r,metadata:s}).map((e=>n(e)));return Promise.resolve().then((()=>o?a.getView(o):[])).then((n=>{const{render:t,returnedPropositions:a}=e([...l,...n]);return t().then(c.resolve),{propositions:a}}))}},Mp=({window:e})=>()=>e.location,Fp=({targetMigrationEnabled:e})=>e?e=>{e.getPayload().mergeMeta({target:{migration:!0}})}:nt;const Bp="BODY > *:eq(0)";var Up=e=>{const{selector:n,type:t}=e;return t!==ep||n!==Bp?e:{...e,selector:"BODY"}};const $p="SCRIPT,LINK,STYLE",Hp=e=>{const n=Ul(e);return Je($p,n).map((e=>e.outerHTML)).join("")};var Kp=e=>{const n={...e},{content:t,selector:a}=n;if(n.type===ep)return n;if(Oi(t))return n;if(null==a)return n;const r=Zl(a);return wd(r[0],qe)?(n.type=gp,n.content=Hp(t),n):n},zp=e=>n=>n?e.reduce(((e,n)=>({...e,...n(e)})),n):n,Wp=({preprocess:e,isPageWideSurface:n})=>{const t=(n,t)=>{const{id:a,schema:r,data:s,characteristics:{trackingLabel:i}={}}=n,o=s?s.type:void 0,c=e(s);return{getId:()=>a,getSchema:()=>r,getSchemaType:()=>o,getData:()=>c,getProposition:()=>t,getTrackingLabel:()=>i,getOriginalItem:()=>n,toString:()=>JSON.stringify(n),toJSON:()=>n}};return(e,a=!0,r=!1,s)=>{const{id:i,scope:o,scopeDetails:c,items:l=[]}=e,{characteristics:{scopeType:d}={}}=c||{};return{getScope:()=>o,getScopeType:()=>o===Vr||n(o)?wp:d===kp?kp:xp,getItems(){return l.map((e=>t(e,this)))},getNotification:()=>({id:i,scope:o,scopeDetails:c}),getId:()=>i,getIdentityMap:()=>s,toJSON:()=>e,shouldSuppressDisplay:()=>r,addToReturnValues(n,t,r,s){a&&(n.push({...e,items:r.map((e=>e.getOriginalItem())),renderAttempted:s}),s||t.push({...e,items:r.map((e=>e.getOriginalItem()))}
8))}}}},Gp=()=>{let e=Promise.resolve([]);return{concat(n){e=e.then((e=>n.then((n=>e.concat(n))).catch((()=>e))))},clear(){const n=e;return e=Promise.resolve([]),n}}},Qp=()=>({render:nt,setRenderAttempted:!0,includeInNotification:!0});const Jp="always",Zp="never",Xp="decoratedElementsOnly",Yp=[Jp,Zp,Xp],eu="data-aep-interact-id",nu="data-aep-click-label",tu="data-aep-click-token";let au=0;const ru=(e,n)=>n?parseInt(n,10):++au,su=(e,n)=>!!e&&!!e[n]&&[Jp,Xp].includes(e[n]),iu=(e,n,t,a,r,s,i,o)=>{const{scopeDetails:c={}}=i,{decisionProvider:l}=c;return su(e,l)||n===mp?e=>{if(!e.tagName)return;const n=ru(t,ed(e,eu));o(t,a,s,i,n),Yl(e,eu,n),r&&!ed(e,nu)&&Yl(e,nu,r)}:nt};var ou=(e,n)=>e!==kp?{shouldRender:()=>!0,markAsRendered:()=>{}}:{shouldRender:e=>!e||!(e.dataset.adobePropositionIds??"").split(",").includes(n),markAsRendered:e=>{const t=(e.dataset.adobePropositionIds??"").split(",");t.includes(n)||t.push(n),e.dataset.adobePropositionIds=t.sort().join(",")}},cu=({modules:e,logger:n,storeInteractionMeta:t,storeClickMeta:a,autoCollectPropositionInteractions:r})=>s=>{const{type:i,selector:o}=s.getData()||{};if(!i)return n.warn("Invalid DOM action data: missing type.",s.getData()),{setRenderAttempted:!1,includeInNotification:!1};if(i===mp)return o?(a({selector:o,meta:{...s.getProposition().getNotification(),trackingLabel:s.getTrackingLabel(),scopeType:s.getProposition().getScopeType()}}),{setRenderAttempted:!0,includeInNotification:!1}):(n.warn("Invalid DOM action data: missing selector.",s.getData()),{setRenderAttempted:!1,includeInNotification:!1});if(!e[i])return n.warn("Invalid DOM action data: unknown type.",s.getData()),{setRenderAttempted:!1,includeInNotification:!1};const c=ou(s.getProposition().getScopeType(),s.getId()),l=iu(r,i,s.getProposition().getId(),s.getId(),s.getTrackingLabel(),s.getProposition().getScopeType(),s.getProposition().getNotification(),t);return{render:()=>e[i](s.getData(),l,c),setRenderAttempted:!0,includeInNotification:!0}},lu=({modules:e,logger:n,storeInteractionMeta:t,autoCollectPropositionInteractions:a})=>r=>{const{type:s,selector:i}=r.getData()||{};if(!i||!s)return{setRenderAttempted:!1,includeInNotification:!1};if(!e[s])return n.warn("Invalid HTML content data",r.getData()),{setRenderAttempted:!1,includeInNotification:!1};const o=iu(a,s,r.getProposition().getId(),r.getId(),r.getTrackingLabel(),r.getProposition().getScopeType(),r.getProposition().getNotification(),t),c=ou(r.getProposition().getScopeType(),r.getId());return{render:()=>e[s](r.getData(),o,c),setRenderAttempted:!0,includeInNotification:!0}};const du="BODY";var pu=({logger:e,executeRedirect:n,collect:t})=>a=>{const{content:r}=a.getData()||{};return r?{render:()=>(jd(du),t({decisionsMeta:[a.getProposition().getNotification()],documentMayUnload:!0,identityMap:a.getProposition().getIdentityMap()}).then((()=>(e.logOnContentRendering({status:"rendering-redirect",detail:{propositionDetails:a.getProposition().getNotification(),redirect:r},message:`Redirect action ${a.toString()} executed.`,logLevel:"info"}),n(r)))).catch((e=>{throw Ad(du),e}))),setRenderAttempted:!0,onlyRenderThis:!0}:(e.warn("Invalid Redirect data",a.getData()),{})},uu=({schemaProcessors:e,logger:n})=>{const t=(e,t)=>()=>Promise.resolve().then(e).then((()=>(n.enabled&&n.info(`Action ${t.toString()} executed.`),t.toJSON()))).catch((e=>{const{message:a,stack:r}=e,s=`Failed to execute action ${t.toString()}. ${a} ${r}`;n.logOnContentRendering({status:"rendering-failed",detail:{propositionDetails:t.getProposition().getNotification(),item:t.toJSON()},error:e,message:s,logLevel:"warn"})})),a=async(e,n)=>{const t=(await Promise.allSettled(e.map((e=>e())))).filter((e=>"fulfilled"===e.status)).map((e=>e.value));if(n&&Be(t))return{...n,items:t}},r=n=>{const t=e[n.getSchema()];return t?t(n):{}},s=({renderers:e,returnedPropositions:n,returnedDecisions:s,items:i,proposition:o})=>{let c,l,d,p,u=[...e],g=[...n],m=[...s],b=[],h=[],f=[],v=!1,y=!1,k=0;for(;i.length>k;){if(p=i[k],({render:c,setRenderAttempted:l,includeInNotification:d,onlyRenderThis:y}=r(p)),y){g=[],m=[],l?(b=[p],h=[]):(b=[],h=[p]),u=[],f=[c],v=d;break}c&&f.push(t(c,p)),d&&(v=!0),l?b.push(p):h.push(p),k+=1}if(f.length>0){const e=v?o.getNotification():void 0;u.push((()=>a(f,e)))}else v&&u.push((()=>Promise.resolve(o.getNotification())));return b.length>0&&o.addToReturnValues(g,m,b,!0),h.length>0&&o.addToReturnValues(g,m,h,!1),{renderers:u,returnedPropositions:g,returnedDecisions:m,onlyRenderThis:y}};return(e,t=[])=>{let a,r,i,o=[],c=[],l=[],d=0;for(;e.length>d&&(r=e[d],i=r.getItems(),({renderers:o,returnedPropositions:c,returnedDecisions:l,onlyRenderThis:a}=s({renderers:o,returnedPropositions:c,returnedDecisions:l,items:i,proposition:r})),!a);)d+=1;return a&&e.forEach(((e,n)=>{n!==d&&e.addToReturnValues(c,l,e.getItems(),!1)})),t.forEach((e=>{e.addToReturnValues(c,l,e.getItems(),!1)})),{returnedPropositions:c,returnedDecisions:l,render:()=>Promise.all(o.map((e=>e()))).then((e=>{const t=e.filter((e=>e)),a=t.map((e=>{const{id:n,scope:t,scopeDetails:a}=e;return{id:n,scope:t,scopeDetails:a}}));if(Be(t)){const e=In(t,(e=>e.scope));
8n.logOnContentRendering({status:"rendering-succeeded",detail:{...e},message:`Scopes: ${JSON.stringify(e)} successfully executed.`,logLevel:"info"})}return a}))}}};const gu=()=>{let e=0;return n=>{const{items:t=[]}=n;return!!t.some((e=>e.schema===ho))&&(e+=1,e>1)}};var mu=({processPropositions:e,createProposition:n,notificationHandler:t})=>({renderDecisions:a,propositions:r,event:s,personalization:i={},identityMap:o})=>{if(!a)return Promise.resolve();const{sendDisplayEvent:c=!0}=i,l=s?s.getViewName():void 0,d=gu(),p=r.map((e=>n(e,!0,d(e),o))),{render:u,returnedPropositions:g}=e(p),m=t(a,c,l,o),b=p.reduce(((e,n)=>(e[n.getId()]=n,e)),{});return u().then((e=>{const n=e.filter((e=>!b[e.id].shouldSuppressDisplay())),t=e.filter((e=>b[e.id].shouldSuppressDisplay()));m(n,t)})),Promise.resolve({propositions:g})};const bu="defaultContent",hu=["content","contentType"],fu=["mobileParameters","webParameters","html"],vu=(e,n)=>{for(let t=0;t<hu.length;t+=1){const a=hu[t];if(!Object.prototype.hasOwnProperty.call(e,a))return n.warn(`Invalid in-app message data: missing property '${a}'.`,e),!1}const{content:t,contentType:a}=e;if(a===Yo)for(let a=0;a<fu.length;a+=1){const r=fu[a];if(!Object.prototype.hasOwnProperty.call(t,r))return n.warn(`Invalid in-app message data.content: missing property '${r}'.`,e),!1}return!0};var yu=({modules:e,logger:n})=>t=>{const a=t.getData(),r=t.getProposition(),s={...r.getNotification()},i=r.shouldSuppressDisplay();if(!a)return n.warn("Invalid in-app message data: undefined.",a),{};const{type:o=bu}=a;return e[o]?vu(a,n)?s?{render:()=>i?null:e[o]({...a,meta:s,identityMap:r.getIdentityMap()}),setRenderAttempted:!0,includeInNotification:!0}:(n.warn("Invalid in-app message meta: undefined.",s),{}):{}:(n.warn("Invalid in-app message data: unknown type.",a),{})};const ku=e=>{const n=Je(`#${e}`,document);n&&n.length>0&&mn(n[0])},wu=e=>{const n={};if(!e||"a"!==e.tagName.toLowerCase())return n;const{href:t}=e;if(!t||!t.startsWith("adbinapp://"))return n;const a=t.split("?"),r=a[0].split("://")[1],s=e.innerText,i=e.getAttribute("data-uuid")||"";let o,c;if(Be(a)){const e=pe.default.parse(a[1]);o=e.interaction||"",c=Ws(e.link||"")}return{action:r,interaction:o,link:c,label:s,uuid:i}};var xu=e=>(n,t=!1)=>(t?e.location.href=n:e.location.replace(n),new Promise((()=>{})));const Pu="alloy-messaging-container",Cu="alloy-overlay-container",_u="alloy-content-iframe",Tu=()=>[Pu,Cu].forEach(ku),Du=(e,n=xu(window))=>t=>{t.preventDefault(),t.stopImmediatePropagation();const{target:a}=t,r="a"===a.tagName.toLowerCase()?a:a.closest("a");if(!r)return;const{action:s,interaction:i,link:o,label:c,uuid:l}=wu(r);e(s,{label:c,id:i,uuid:l,link:o}),"dismiss"===s&&Tu(),et(o)&&o.length>0&&n(o,!0)},Su=(e,n)=>{const t=(new DOMParser).parseFromString(e,Xo),a=t.querySelector("script");a&&a.setAttribute("nonce",pd());const r=Ve("iframe",{src:URL.createObjectURL(new Blob([t.documentElement.outerHTML],{type:"text/html"})),id:_u});return r.addEventListener("load",(()=>{const{addEventListener:e}=r.contentDocument||r.contentWindow.document;e("click",n)})),r},Iu=(e,n,t,a)=>{[{id:Cu,element:a},{id:Pu,element:t},{id:_u,element:e}].forEach((({id:e,element:t})=>{const{style:a={},params:r={}}=n[e];Object.assign(t.style,a);const{parentElement:s="body",insertionMethod:i="appendChild",enabled:o=!0}=r,c=document.querySelector(s);o&&c&&"function"==typeof c[i]&&c[i](t)}))},Eu=e=>{const{verticalAlign:n,width:t,horizontalAlign:a,backdropColor:r,height:s,cornerRadius:i,horizontalInset:o,verticalInset:c,uiTakeover:l=!1}=e,d={width:t?`${t}%`:"100%",backgroundColor:r||"rgba(0, 0, 0, 0.5)",borderRadius:i?`${i}px`:"0px",border:"none",position:l?"fixed":"relative",overflow:"hidden"};return"left"===a?d.left=o?`${o}%`:"0":"right"===a?d.right=o?`${o}%`:"0":"center"===a&&(d.left="50%",d.transform="translateX(-50%)"),"top"===n?d.top=c?`${c}%`:"0":"bottom"===n?(d.position="fixed",d.bottom=c?`${c}%`:"0"):"center"===n&&(d.top="50%",d.transform=("center"===a?`${d.transform} `:"")+"translateY(-50%)",d.display="flex",d.alignItems="center",d.justifyContent="center"),d.height=s?`${s}vh`:"100%",d},Vu=e=>{const{backdropOpacity:n,backdropColor:t}=e;return{position:"fixed",top:"0",left:"0",width:"100%",height:"100%",background:"transparent",opacity:n||.5,backgroundColor:t||"#FFFFFF"}},Ru=["enabled","parentElement","insertionMethod"],Nu=e=>{if(!e)return!1;const n=Object.keys(e);if(!n.includes(Pu))return!1;if(!n.includes(Cu))return!1;const t=Object.values(e);for(let e=0;e<t.length;e+=1){if(!Sa(t[e],"style"))return!1;if(!Sa(t[e],"params"))return!1;for(let n=0;n<Ru.length;n+=1)if(!Sa(t[e].params,Ru[n]))return!1}return!0},Ou=e=>{if(!e)return;const{uiTakeover:n=!1}=e;return{[_u]:{style:{border:"none",width:"100%",height:"100%"},params:{enabled:!0,parentElement:"#alloy-messaging-container",insertionMethod:"appendChild"}},[Pu]:{style:Eu(e),params:{enabled:!0,parentElement:"body",insertionMethod:"appendChild"}},[Cu]:{style:Vu(e),params:{enabled:!0===n,parentElement:"body",insertionMethod:"appendChild"}}}},ju=(e={},n)=>{Tu();const{content:t,contentType:a,mobileParameters:r}=e;let{webParameters:s}=e;if(a!==Xo)return;const i=Ve("div",{id:Pu}),o=Su(t,Du(n)),c=Ve("div",{id:Cu});Nu(s)||(s=Ou(r)),s&&Iu(o,s,i,c)};
8var Au=(e,n)=>new Promise((t=>{const{meta:a,identityMap:r}=e;ju(e,((e,t)=>{const s={};s[_o.INTERACT]=Co,-1!==Object.values(_o).indexOf(e)&&(s[e]=Co),n({decisionsMeta:[a],propositionAction:t,eventType:ko,propositionEventTypes:Object.keys(s),identityMap:r})})),t({meta:a})})),Lu=e=>({defaultContent:n=>Au(n,e)}),qu=(e,n)=>(t,a,r,s)=>{if(!t)return()=>{};if(!a){const e=_e();return n.concat(e.promise),e.resolve}return(n=[],t=[])=>{Be(n)&&e({decisionsMeta:n,viewName:r,identityMap:s}),Be(t)&&e({decisionsMeta:t,eventType:Po,propositionAction:{reason:"Conflict"},viewName:r,identityMap:s})}},Mu=({showContainers:e,consent:n})=>()=>{const{state:t,wasSet:a}=n.current();t===Qa&&a?e():n.awaitConsent().catch(e)};const Fu=e=>{const{documentElement:n}=document;let t=e;const a=new Set;let r,s;for(;t&&t!==n&&!(t instanceof ShadowRoot);){const e=ed(t,eu);e&&a.add(e),r=r||ed(t,nu),s=s||ed(t,tu),t=t.parentNode}return{interactIds:[...a],clickLabel:r,clickToken:s}},Bu=e=>{const n=e.find((e=>e.scopeType===kp));return n?n.scope:void 0},Uu=(e,n,t)=>a=>{const{scopeDetails:r={}}=a,{decisionProvider:s}=r;return e[s]===Jp||e[s]===Xp&&(n||t)};var $u=(e,n,t)=>{const{interactIds:a,clickLabel:r="",clickToken:s}=Fu(e),i=Uu(t,r,s);if(0===a.length)return{};const o=n(a).filter(i);return{decisionsMeta:Pp(o),propositionActionLabel:r,propositionActionToken:s,viewName:Bu(o)}};const Hu=({config:e,logger:n,eventManager:t,consent:a})=>{const{targetMigrationEnabled:r,prehidingStyle:s,autoCollectPropositionInteractions:i}=e,o=yc({eventManager:t,mergeDecisionsMeta:kc}),c=qd(n),l=Ld(n),{storeInteractionMeta:d,getInteractionMetas:p}=Op(),{storeClickMeta:u,getClickSelectors:g,getClickMetas:m}=Np(),b=Mp({window:window}
8),h=hp(),f=zp([Kp,Up]),v=Wp({preprocess:f,isPageWideSurface:Fc}),y=Ep({createProposition:v}),k=xu(window),w={[lo]:Qp,[po]:cu({modules:h,logger:n,storeInteractionMeta:d,storeClickMeta:u,autoCollectPropositionInteractions:i}),[uo]:lu({modules:h,logger:n,storeInteractionMeta:d,autoCollectPropositionInteractions:i}),[bo]:pu({logger:n,executeRedirect:k,collect:o}),[ho]:yu({modules:Lu(o),logger:n})},x=uu({schemaProcessors:w,logger:n}),P=Gp(),C=qu(o,P),_=vp({prehidingStyle:s,showContainers:c,hideContainers:l,mergeQuery:wc,processPropositions:x,createProposition:v,notificationHandler:C,consent:a,logger:n}),T=Ip({mergeDecisionsMeta:kc,collectInteractions:$u,collectClicks:Tp,getInteractionMetas:p,getClickMetas:m,getClickSelectors:g,autoCollectPropositionInteractions:i}),D=Vp({processPropositions:x,viewCache:y,logger:n}),S=qp({processPropositions:x,createProposition:v,renderedPropositions:P,viewCache:y}),I=Fp({targetMigrationEnabled:r}),E=mu({processPropositions:x,createProposition:v,notificationHandler:C}),V=Mu({showContainers:c,consent:a});return Bl({getPageLocation:b,logger:n,fetchDataHandler:_,viewChangeHandler:D,onClickHandler:T,isAuthoringModeEnabled:Dp,mergeQuery:wc,viewCache:y,showContainers:c,applyPropositions:S,setTargetMigration:I,mergeDecisionsMeta:kc,renderedPropositions:P,onDecisionHandler:E,handleConsentFlicker:V})};Hu.namespace="Personalization";const Ku=Yp.map((e=>_a(e)));Hu.configValidators=Sa({prehidingStyle:Ia().nonEmpty(),targetMigrationEnabled:Pa().default(!1),autoCollectPropositionInteractions:Sa({[Li]:ka(Ku).default(Jp),[qi]:ka(Ku).default(Zp)}).default({[Li]:Jp,[qi]:Zp}).noUnknownFields()}),Sa({pushNotifications:Sa({vapidPublicKey:Ia().required(),appId:Ia().required(),trackingDatasetId:Ia().required()}).noUnknownFields()});var zu=e=>n=>{n.mergeXdm({web:{webPageDetails:{URL:e.location.href||e.location},webReferrer:{URL:e.document.referrer}}})};const Wu=e=>{const{screen:{orientation:n}}=e;if(null==n||null==n.type)return null;const t=n.type.split("-");return 0===t.length||"portrait"!==t[0]&&"landscape"!==t[0]?null:t[0]},Gu=e=>{if(Fe(e.matchMedia)){if(e.matchMedia("(orientation: portrait)").matches)return"portrait";if(e.matchMedia("(orientation: landscape)").matches)return"landscape"}return null};var Qu=e=>n=>{const{screen:{width:t,height:a}}=e,r={},s=ut(a);s>=0&&(r.screenHeight=s);const i=ut(t);i>=0&&(r.screenWidth=i);const o=Wu(e)||Gu(e);o&&(r.screenOrientation=o),Object.keys(r).length>0&&n.mergeXdm({device:r})},Ju=e=>n=>{const{document:{documentElement:{clientWidth:t,clientHeight:a}={}}}=e,r={type:"browser"},s=ut(t);s>=0&&(r.browserDetails={viewportWidth:s});const i=ut(a);i>=0&&(r.browserDetails=r.browserDetails||{},r.browserDetails.viewportHeight=i),n.mergeXdm({environment:r})},Zu=e=>n=>{const t=e(),a={},r=ut(t.getTimezoneOffset());void 0!==r&&(a.localTimezoneOffset=r),(void 0===r||Math.abs(r)<6e3)&&(a.localTime=mt(t));const s=Intl.DateTimeFormat().resolvedOptions().timeZone;s&&(a.ianaTimezone=s),n.mergeXdm({placeContext:a})},Xu="https://ns.adobe.com/experience/alloy",Yu=e=>{e.mergeXdm({implementationDetails:{name:Xu,version:li,environment:"browser"}})},eg=(e,n,t,a)=>{const r=e.context.flatMap(((e,a)=>t[e]?[t[e]]:(n.warn(`Invalid context[${a}]: '${e}' is not available.`),[]))).concat(a);return{namespace:"Context",lifecycle:{onBeforeEvent:({event:e})=>Promise.all(r.map((t=>Promise.resolve(t(e,n)))))}}},ng=[["architecture","string"],["bitness","string"],["model","string"],["platformVersion","string"],["wow64","boolean"]];const tg=e=>"userAgentData"in e;var ag=e=>tg(e)?(n,t)=>{try{return e.userAgentData.getHighEntropyValues(ng.map((e=>e[0]))).then((e=>{const t={};ng.forEach((([n,a])=>{Object.prototype.hasOwnProperty.call(e,n)&&typeof e[n]===a&&(t[n]=e[n])})),n.mergeXdm({environment:{browserDetails:{userAgentClientHints:t}}})}))}catch(e){return t.warn(`Unable to collect user-agent client hints. ${e.message}`),nt}}:nt;const rg=new Set(["decisioning.propositionFetch","decisioning.propositionDisplay","decisioning.propositionInteract"]);var sg=e=>{let n=null;return t=>{const a=t.getContent(),r=a.xdm?.eventType;if(rg.has(r))return;const s=a.data?.__adobe?.analytics?.referrer,i=void 0!==s?s:e.document.referrer;i!==n?(t.mergeData({__adobe:{analytics:{referrer:i}}}),n=i):t.mergeData({__adobe:{analytics:{referrer:""}}})}};const ig=zu(window),og=Qu(window),cg=Ju(window),lg=Zu((()=>new Date)),dg=ji((()=>new Date)),pg={web:ig,device:og,environment:cg,placeContext:lg},ug={highEntropyUserAgentHints:ag(navigator),oneTimeAnalyticsReferrer:sg(window)},gg={...pg,...ug},mg=[dg,Yu],bg=({config:e,logger:n})=>eg(e,n,gg,mg) 9;bg.namespace="Context",bg.configValidators=Sa({context:xa(Ia()).default(Object.keys(pg))});var hg=Object.freeze({__proto__:null,context:bg}),fg=({fetch:e})=>(n,t)=>
9e(n,{method:"POST",cache:"no-cache",credentials:"include",headers:{"Content-Type":"text/plain; charset=UTF-8"},referrerPolicy:"no-referrer-when-downgrade",body:t}).then((e=>e.text().then((n=>({statusCode:e.status,getHeader:n=>e.headers.get(n),body:n}))))),vg=({sendBeacon:e,sendFetchRequest:n,logger:t})=>(a,r)=>{const s=new Blob([r],{type:"text/plain; charset=UTF-8"});return e(a,s)?Promise.resolve({statusCode:204,getHeader:()=>null,body:""}):(t.info("Unable to use `sendBeacon`; falling back to `fetch`."),n(a,r))};const yg=({logger:e})=>{const{fetch:n,navigator:t}=window,a=fg({fetch:n});return{sendFetchRequest:a,sendBeaconRequest:"function"==typeof t.sendBeacon?vg({sendBeacon:t.sendBeacon.bind(t),sendFetchRequest:a,logger:e}):a}},kg=(e,n)=>({getItem(t){try{return Promise.resolve(window[e].getItem(n+t))}catch{return Promise.resolve(null)}},setItem(t,a){try{return window[e].setItem(n+t,a),Promise.resolve(!0)}catch{return Promise.resolve(!1)}},removeItem(t){try{return window[e].removeItem(n+t),Promise.resolve(!0)}catch{return Promise.resolve(!1)}},clear(){try{return Object.keys(window[e]).forEach((t=>{t.startsWith(n)&&window[e].removeItem(t)})),Promise.resolve(!0)}catch{return Promise.resolve(!1)}}}),wg=()=>({createNamespacedStorage(e){const n=xn+e;return{session:kg("sessionStorage",n),persistent:kg("localStorage",n)}}}),xg=(e=fe)=>({get:n=>e.get(n),set:(n,t,a)=>e.set(n,t,a),remove:(n,t)=>{e.remove(n,t)},withConverter:n=>xg(e.withConverter(n))}),Pg=()=>({setTimeout:window.setTimeout.bind(window),clearTimeout:window.clearTimeout.bind(window),atob:window.atob.bind(window),btoa:window.btoa.bind(window),TextEncoder:window.TextEncoder,TextDecoder:window.TextDecoder,now:()=>Date.now()}),Cg=()=>{const{Visitor:e}=window;return Fe(e)&&Fe(e.getInstance)&&e},_g=({logger:e})=>new Promise(((n,t)=>{if(ge(window.adobe)&&ge(window.adobe.optIn)){const a=window.adobe.optIn;e.info("Delaying request while waiting for legacy opt-in to let Visitor retrieve ECID from server."),a.fetchPermissions((()=>{a.isApproved([a.Categories.ECID])?(e.info("Received legacy opt-in approval to let Visitor retrieve ECID from server."),n()):t(new Error("Legacy opt-in was declined."))}),!0)}else n()})),Tg=async({orgId:e,logger:n})=>{const t=Cg();if(t)try{return await _g({logger:n}),n.info("Delaying request while using Visitor to retrieve ECID from server."),await new Promise((a=>{t.getInstance(e,{}).getMarketingCloudVisitorID((e=>{n.info("Resuming previously delayed request that was waiting for ECID from Visitor."),a(e)}),!0)}))}catch(e){return void(e?n.info(`${e.message}, retrieving ECID from experience edge`):n.info("An error occurred while obtaining the ECID from Visitor."))}},Dg=()=>({getEcidFromVisitor:Tg,awaitVisitorOptIn:_g}),Sg=()=>({getInstanceNames:()=>window.__alloyNS||[],getInstanceQueue:e=>{const n=window[e];return n&&n.q||[]},getMonitors:()=>window.__alloyMonitors||[],getLocationSearch:()=>window.location.search,getUserAgent:()=>window.navigator.userAgent,getHostname:()=>window.location.hostname}),Ig=({logger:e})=>({network:yg({logger:e}),storage:wg(),cookie:xg(),runtime:Pg(),legacy:Dg(),globals:Sg()}),Eg=({components:e=[],...n}={})=>$c({...n,components:[...Object.values(hg),...e]},Ig);n.createCustomInstance=Eg;const Vg=[];for(let e=0;e<256;++e)Vg.push((e+256).toString(16).slice(1));const Rg=new Uint8Array(16);var Ng=()=>({eventMergeId:le()});n.createEventMergeId=Ng;var Og=e=>null==e,jg=e=>!Og(e)&&!Array.isArray(e)&&"object"==typeof e;const Ag=["__proto__","constructor","prototype"],Lg=(e,n)=>{Object.keys(n).forEach((t=>{Ag.includes(t)||(jg(e[t])&&jg(n[t])?Lg(e[t],n[t]):e[t]=n[t])}))};var qg=(e,...n)=>{if(Og(e))throw new TypeError('deepAssign "target" cannot be null or undefined');const t=Object(e);return n.forEach((e=>Lg(t,Object(e)))),t};n.deepAssign=qg,n.components=[Nl,vi,Ei,Ni,Hu,xc]}},"adobe-alloy/dist/lib/instanceManager/createInstanceManager.js":{script:function(e,n,t){"use strict";const{PREINSTALLED:a}=t("../constants/libraryType");e.exports=({turbine:e,window:n,createCustomInstance:t,components:r,createEventMergeId:s,orgId:i,wrapOnBeforeEventSend:o,getConfigOverrides:c})=>{const{instances:l,libraryCode:d}=e.getExtensionSettings(),p=d?.type===a,u={},g={};return n.__alloyMonitors=n.__alloyMonitors||[],n.__alloyMonitors.push({onInstanceCreated:(...e)=>{g.onInstanceCreated||=[],g.onInstanceCreated.push(e)},onInstanceConfigured:(...e)=>{g.onInstanceConfigured||=[],g.onInstanceConfigured.push(e)},onBeforeCommand(...e){const{commandName:n}=e[0];"configure"===n&&(g.onBeforeCommand||=[],g.onBeforeCommand.push(e))}}),l.forEach((({name:a,edgeConfigId:s,stagingEdgeConfigId:l,developmentEdgeConfigId:d,onBeforeEventSend:g,...m})=>{const b=t({name:a,components:r});if(n.__alloyNS||(n.__alloyNS=[]),!p){const t=e.environment&&e.environment.stage,r="development"===t&&d||"staging"===t&&l||s;if(m.edgeConfigOverrides=c(m),b("configure",{...m,datastreamId:r,debugEnabled:e.debugEnabled,orgId:m.orgId||i,onBeforeEventSend:o(g)}),e.onDebugChanged((e=>{b("setDebug",{enabled:e})})),n[a]&&n[a].q){const e=([e,n,t])=>{b(...t).then(e).catch(n)},t=n[a].q;t.push=e,t.forEach(e)}else n.__alloyNS.push(a),n[a]=b}u[a]=b})),{getInstance:e=>u[e],createEventMergeId:()=>s(),addMonitor(e){n.__alloyMonitors.push(e),Object.keys(g).forEach((n=>
9{e[n]&&g[n].forEach((t=>{e[n](...t)}))}))}}}}},"adobe-alloy/dist/lib/instanceManager/injectWrapOnBeforeEventSend.js":{script:function(e){"use strict";e.exports=({version:e})=>n=>t=>{if(t.xdm.implementationDetails.name=`${t.xdm.implementationDetails.name}/reactor`,t.xdm.implementationDetails.version=`${t.xdm.implementationDetails.version}+${e}`,n)return n(t)}}},"adobe-alloy/dist/lib/utils/createGetConfigOverrides.js":{script:function(e){"use strict";const n=e=>n=>{const{edgeConfigOverrides:t}=n;let a;if(t){if(t[e])a={...t[e]};else{if(t.development||t.staging||t.production)return;a=t}if(0!==Object.keys(a).length&&!1!==a.enabled){if(delete a.enabled,Object.keys(a).forEach((e=>{if(Object.keys(a[e]).includes("enabled")){const n=a[e].enabled;!0===n&&delete a[e].enabled,""!==n&&null!=n||delete a[e]}})),Object.keys(a.com_adobe_experience_platform||{}).forEach((e=>{!0===a.com_adobe_experience_platform[e]?.enabled&&delete a.com_adobe_experience_platform[e].enabled})),a.com_adobe_analytics?.reportSuites?.length>0&&(a.com_adobe_analytics.reportSuites=a.com_adobe_analytics.reportSuites.flatMap((e=>e.includes(",")?e.split(/,\s*/gi):e)).map((e=>e.trim())).filter(Boolean)),void 0!==a.com_adobe_identity?.idSyncContainerId&&null!==a.com_adobe_identity?.idSyncContainerId&&"string"==typeof a.com_adobe_identity?.idSyncContainerId)if(""===a.com_adobe_identity.idSyncContainerId.trim())delete a.com_adobe_identity.idSyncContainerId;else{const e=parseInt(a.com_adobe_identity.idSyncContainerId.trim(),10);if(Number.isNaN(e))throw new Error(`The ID sync container ID "${a.com_adobe_identity.idSyncContainerId}" is not a valid integer.`);a.com_adobe_identity.idSyncContainerId=e}return a}}};e.exports=n}},"adobe-alloy/dist/lib/constants/libraryType.js":{script:function(e){"use strict";e.exports={MANAGED:"managed",PREINSTALLED:"preinstalled"}}}}},"facebook-pixel":{displayName:"Meta Pixel",hostedLibFilesBaseUrl:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/hostedLibFiles/EP4c228566083d4dacba3e6a2893e0198a/",settings:{pixelId:"%facebookPixelID_test%"},modules:{}},"adobe-contexthub":{displayName:"Adobe ContextHub",hostedLibFilesBaseUrl:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/hostedLibFiles/EP76cc9a1cb360441db5c7bfb163c22e2b/",settings:{root:"window.pageDetails",dataSchema:{type:"object",$schema:"http://json-schema.org/draft-04/schema#",required:["dataLayerVer","siteVersion","siteExperience","siteEnv","siteDomain","siteBrand","siteName","siteSection","siteSubsection","siteSubSubsection","siteSubSubSubsection","deviceOperatingSystem","encryptedID","ordinal","pageURL","pageType","pageStep","formName","itemName","searchTerm","searchResults","searchPageKey ","pageNumber","searchFilters","_nameKey","siteToolUsage","analyticsTrackType","analyticsTrackStatus","intCmpPid","interactionDetail","productID","newFormName","pageAction","media","eventKey"],properties:{media:{type:"object",items:{type:"object",required:["currentTime","duration","event","id","title"],properties:{id:{type:"string"},event:{type:"string"},title:{type:"string"},duration:{type:"string"},currentTime:{type:"string"}}}},ordinal:{type:"string"},pageURL:{type:"string"},siteEnv:{type:"string"},_nameKey:{type:"string"},eventKey:{type:"string"},formName:{type:"string"},itemName:{type:"string"},pageStep:{type:"string"},pageType:{type:"string"},siteName:{type:"string"},intCmpPid:{type:"string"},productID:{type:"array",items:{type:"object",required:["prod","family","category","subcategory","name"],properties:{name:{type:"string"},prod:{type:"string"},family:{type:"string"},category:{type:"string"},subcategory:{type:"string"}}}},siteBrand:{type:"string"},pageAction:{type:"string"},pageNumber:{type:"string"},searchTerm:{type:"string"},siteDomain:{type:"string"},encryptedID:{type:"string"},newFormName:{type:"string"},siteSection:{type:"string"},siteVersion:{type:"string"},dataLayerVer:{type:"string"},searchFilters:{type:"string"},searchResults:{type:"string"},siteToolUsage:{type:"string"},siteExperience:{type:"string"},siteSubSection:{type:"string"},interactionDetail:{type:"string"},siteSubSubSection:{type:"string"},analyticsTrackType:{type:"string"},analyticsTrackStatus:{type:"string"},siteSubSubSubsection:{type:"string"},deviceOperatingSystem:{type:"string"}}},dataSchemaType:"custom"},modules:{"adobe-contexthub/src/lib/dataElement/dataElement.js":{name:"contexthub",displayName:"Context Hub",script:function(e,n,t,a){"use strict";function r(e,n){if(null!=n){for(var t=n,a=e.split("."),r=0;r<a.length;++r){if(void 0===t[a[r]])return;t=t[a[r]]}return t}}var s=t("@adobe/reactor-window");e.exports=function(e){var n=a.getExtensionSettings(),t="ContextHub";if("custom"===n.dataSchemaType&&void 0!==n.root&&(t=n.root.replace("window.","")),"ContextHub"===t&&void 0!==s[t]&&"function"==typeof s[t].getAllStores){var i=e.item.replace(/\./g,"/");return s[t].getItem("/store/"+i)}var o=r(t,s);return r(e.item,o)}}}}},"acronym-gtag.js":{displayName:"Google Global Site Tag (gtag)",hostedLibFilesBaseUrl:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/hostedLibFiles/EP4088787701664ce4bfc67739775f5c33/",settings:{accounts:{1730081529264:{id:"1730081529264",name:"Westpac Performics Floodlight",type:"dc",options:[],accounts:{staging:"DC-10451321",production:"DC-10451321",development:"DC-10451321"},settings:{}}
9,1730434479388:{id:"1730434479388",name:"Westpac Performics Google",type:"ga",options:[],accounts:{staging:"G-WQCDREZ4DH",production:"G-WQCDREZ4DH",development:"G-WQCDREZ4DH"},settings:{linker:{domains:"",decorate_forms:!1,accept_incoming:!0},user_id:"",cookie_name:"",optimize_id:"",anonymize_ip:!1,cookie_domain:"",cookie_expires:""},custom_map:[]}},configCode:function(){},functionName:"",dataLayerName:"gDataLayer",preConfigCode:function(){},displayFeatures:!0},modules:{"acronym-gtag.js/src/lib/actions/event.js":{name:"send-gtag.js-event",displayName:"Send an event",script:function(e,n,t,a){"use strict";e.exports=function(e){var n=t("../helpers/loadGtag")(),r=t("../helpers/castOptionTypes"),s=t("../helpers/getAccountId"),i=a.getExtensionSettings(),o={send_to:[]};if("object"==typeof(e=e||{}).accounts&&null!==e.accounts&&Object.keys(e.accounts).length>0){for(var c in e.accounts)if(e.accounts.hasOwnProperty(c)&&(!0===e.accounts[c].enabled||"true"===e.accounts[c].enabled)){var l=i.accounts[c];if(void 0===l){a.logger.warn("ACRGTAG-201 - An account was removed in the extension config but is still enabled in the rule");continue}var d=s(l);if("string"==typeof e.accounts[c].label&&""!==e.accounts[c].label){var p=d+"/";e.accounts[c].label.split(",").forEach((function(e){o.send_to.push(p+e.trim().replace(p,""))}))}else o.send_to.push(d)}"object"==typeof e.options&&e.options.length&&e.options.forEach((function(e){o[e[0]]=e[1]})),"function"==typeof e.callback&&(o.event_callback=function(){e.callback.call(this,n)}),(o=r(o)).send_to.length?(n("event",e.name,o),a.logger.log("event fired for accounts "+o.send_to.join(", ")+" with the options:",JSON.stringify(o))):a.logger.warn("ACRGTAG-200 - No accounts enabled for the "+e.name+" event")}else a.logger.warn("ACRGTAG-200 - No accounts enabled for the "+e.name+" event")}}},"acronym-gtag.js/src/lib/helpers/loadGtag.js":{script:function(e,n,t,a){"use strict";e.exports=function(){var e=a.getExtensionSettings(),n=e.dataLayerName||"dataLayer",r=e.functionName||"gtag",s=t("@adobe/reactor-window"),i=t("@adobe/reactor-load-script"),o=t("../helpers/getAccountId"),c=t("../helpers/castOptionTypes"),l="";if(s[r]||(s[n]=s[n]||[],s[r]=function(){Array.isArray(s[n])?s[n].push(arguments):a.logger.error("ACRGTAG-104: Data layer variable '"+n+"' malformed",s[n])},s[r]("js",new Date)),!_satellite.getVar("__acronym_gtag_loaded")){if(_satellite.setVar("__acronym_gtag_loaded",!0),"function"==typeof e.preConfigCode)try{e.preConfigCode(s[r],s[n])}catch(e){a.logger.error("ACRGTAG-101: Custom pre-account config code error:",e)}if(("string"==typeof e.displayFeatures&&"true"!==e.displayFeatures||"string"!=typeof e.displayFeatures&&!Boolean(e.displayFeatures))&&(s[r]("set",{allow_ad_personalization_signals:!1}),a.logger.log("Display features are disabled")),"object"==typeof e.accounts&&null!==e.accounts&&Object.keys(e.accounts).length>0){for(var d in e.accounts)if(e.accounts.hasOwnProperty(d)){var p=e.accounts[d],u=p.settings||{};l=o(p),"object"==typeof p.custom_map&&p.custom_map.length&&(u.custom_map=u.custom_map||{},p.custom_map.forEach((function(e){u.custom_map[e[0]]=e[1]}))),(p.options||[]).forEach((function(e){u[e[0]]=e[1]})),u.send_page_view=!1,u=c(u),s[r]("config",l,u),a.logger.log("account "+l+" was loaded with the options:",JSON.stringify(u))}if("function"==typeof e.configCode)try{e.configCode(s[r],s[n])}catch(e){a.logger.error("ACRGTAG-101: Custom post-account config code error:",e)}}else a.logger.warn("ACRGTAG-102: No accounts configured");var g="gtag.js library";a.logger.log("loading "+g),i("https://www.googletagmanager.com/gtag/js?id="+l+"&l="+n).then((function(){a.logger.log(g+" successfully loaded")}),(function(){a.logger.error("ACRGTAG-100: "+g+" could not be loaded")}))}return s[r]}},name:"get-gtag",shared:!0},"acronym-gtag.js/src/lib/helpers/castOptionTypes.js":{script:function(e){"use strict";e.exports=function(e){var n={bool:function(e){return"string"==typeof e?"true"===e:Boolean(e)},int:function(e){var n=parseInt(e);return isNaN(n)?0:n},float:function(e){var n=parseFloat(e);return isNaN(n)?0:n},csv:function(e){return"string"==typeof e?""===e?void 0:e.split(","):e},custom_map:function(e){var n={};return"string"==typeof e?e.split(",").forEach((function(e){var t=e.split(":");2===t.length&&(n[t[0]]=t[1])})):"object"==typeof e&&(n=e),n}},t={accept_incoming:n.bool,allow_ad_personalization_signals:n.bool,anonymize_ip:n.bool,checkout_step:n.int,cookie_expires:n.int,custom_map:n.custom_map,event_timeout:n.int,fatal:n.bool,levels:n.int,link_attribution:n.bool,linker:{domains:n.csv,accept_incoming:n.bool,decorate_forms:n.bool},non_interaction:n.bool,value:n.float};return Object.keys(e).forEach((function(n){"function"==typeof t[n]?e[n]=t[n](e[n]):"object"==typeof t[n]&&"object"==typeof e[n]&&null!==e[n]&&Object.keys(e[n]).forEac
9h((function(a){"function"==typeof t[n][a]&&(e[n][a]=t[n][a](e[n][a]))}))})),e}}},"acronym-gtag.js/src/lib/helpers/getAccountId.js":{script:function(e,n,t,a){"use strict";e.exports=function(e,n){return n||(n=a.environment.stage),"string"==typeof e.accounts[n]&&""!==e.accounts[n]?e.accounts[n]:e.accounts.production}}}}}},company:{orgId:"3A4B7BAF56F01DA67F000101@AdobeOrg",dynamicCdnEnabled:!1},property:{name:"Westpac Public",settings:{domains:["westpac.com.au"],undefinedVarsReturnEmpty:!1,ruleComponentSequencingEnabled:!1},id:"PRfaeb43f2db964b5d8055a25879c6c296"},rules:[{id:"RL01ac9054dcf146378eb360b617637d68",name:"PageView : Pinterest",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return window.location.hash&&(e=(window.location.pathname+window.location.hash).toLowerCase().replace(/\/$/,"")),"/business-banking/credit-cards/rewards-cards/altitude-platinum"===(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))||"/business-banking/credit-cards/rewards-cards/altitude-gold"===e||"/personal-banking/credit-cards/reward/altitude-black"===e||"/personal-banking/credit-cards/reward/altitude-platinum"===e||"/personal-banking/credit-cards/reward/altitude-qantas-black"===e||"/personal-banking/credit-cards/reward/altitude-qantas-platinum"===e||"/personal-banking/credit-cards/reward/altitude-velocity-platinum"===e||"/personal-banking/credit-cards/reward/altitude-velocity-black"===e||"/personal-banking/credit-cards/low-rate-cards/low-rate"===e||"/personal-banking/credit-cards/low-rate-cards/westpac-lite-card"===e||"/personal-banking/credit-cards/low-fee"===e||"/personal-banking/credit-cards/reward/altitude-rewards-platinum"===e||"/personal-banking/credit-cards/reward/altitude-rewards-black"===e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC01e5b9c5d92244d5853f26f728768f6b-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL01d387d01a4643368ce76b52631af6ca",name:"Page: Facebook Pixel - PageView_CustomEvent #91",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return window.location.hash&&(e=(window.location.pathname+window.location.hash).toLowerCase().replace(/\/$/,"")),"/personal-banking/personal-loans/repayment-calculator"==(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))||"/personal-banking/personal-loans/car-loan-calculator"==e||"/personal-banking/personal-loans/borrowing-power-calculator"==e||"/personal-banking/insurance/home-insurance/home-insurance-calculators"==e||"/personal-banking/home-loans/calculator"==e||"/personal-banking/home-loans/calculator/stamp-duty-calculator"==e||"/personal-banking/home-loans/calculator/split-loan"==e||"/personal-banking/home-loans/calculator/refinance-calculator"==e||"/personal-banking/home-loans/calculator/mortgage-repayment"==e||"/personal-banking/home-loans/calculator/mortgage-calculator/maximum-borrowing-calculator"==e||"/personal-banking/home-loans/calculator/mortgage-calculator"==e||"/personal-banking/home-loans/calculator/home-equity-calculator/#/equity-calculator"==e||"/personal-banking/bank-accounts/term-deposit/rate-calculator"==e||"/personal-banking/bank-accounts/savings-accounts/savings-calculator"==e||"/personal-banking/personal-loans/car-loan"==e||"/personal-banking/bank-accounts/transaction/new-arrivals"==e||"/personal-banking/bank-accounts/transaction/new-arrivals/summary"==e||"/personal-banking/mobile-wallets/digital-card"==e||"/security"==e||"/security/how-we-protect-you/westpac-verify"==e||"/personal-banking/pers
9onal-loans/car-loan/summary"==e||"/personal-banking/bank-accounts/transaction/choice/ww-summary"==e||"/personal-banking/share-trading/join/summary"==e||"/international-travel/new-to-australia/choice-new-arrivals"==e||"/international-travel/new-to-australia/choice-new-arrivals/summary"==e||"/personal-loans/repayment-calculator"==e||"/personal-loans/car-loan-calculator"==e||"/personal-loans/borrowing-power-calculator"==e||"/home-loans/calculator"==e||"/home-loans/calculator/stamp-duty-calculator"==e||"/home-loans/calculator/split-loan"==e||"/home-loans/calculator/refinance-calculator"==e||"/home-loans/calculator/mortgage-repayment"==e||"/home-loans/calculator/mortgage-calculator/maximum-borrowing-calculator"==e||"/home-loans/calculator/mortgage-calculator"==e||"/home-loans/calculator/home-equity-calculator/#/equity-calculator"==e||"/bank-accounts/term-deposit/rate-calculator"==e||"/bank-accounts/savings-accounts/savings-calculator"==e||"/international-travel/new-to-australia/savings-account/summary"==e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC2429b872b57b42efbb189a3ef465c493-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL0257b3ba71894a789396b0fd339b9479",name:"Page: Live Chat LE:Desktop: Onload #50",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){return 1!=helper.isHomePage()}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"doesNotMatchRegex"},leftOperand:"%siteExperience%",rightOperand:"^(tab|mob)$"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC74e25b4afbbb4f93a8d91688ae8c509b-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL0887b2a990ab4d60b7b3f562eff79e6c",name:"Event:webSDK_Event_Trigger_for_enquiryForm #56",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"pageAction"},ruleOrder:56}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"^home loan enquiry$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%pageAction%",rightOperand:"^complete$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%eventKey%",rightOperand:"^(wbc|stg|bom|bsa):(desktop|mob|tab)_enquiry_(home loan enquiry)(\\s?)_(enquiry.*)"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCdd4762822d2140a19e63932e0165863a-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL0aceebd4122549e1851e4e8134527c2d",name:"Page: Gtag Performics - Set Conversion Label",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return""!=(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""))&&"/home"!=e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC452803c838ed426b9a7b32a1113b01cf-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL0e591566155e4a34b7e600440e26ad39",name:"Page: QuantCast_IDSync_AllOtherPages #70",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:70}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return""!=(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))&&"/home"!=e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC3c42d3267fc64d9dadc6d6edf9734576-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL10836e954ddf4cb795209b3879d22de6",name:"Event: Flashtalking pixel home loans consolidated form complete",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"eventKey"},ruleOrder:56}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"^(cons:hl enquiry|((\\s)ntb)? unsecured lending)$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"equals",caseInsensitive:!0},leftOperand:"%pageAction%",rightOperand:"complete"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%eventKey%",rightOperand:"^(wbc|stg|bom|bsa):(desktop|mob|tab)_enquiry_(cons:hl-enquiry|((\\s)ntb)? unsecured lending)((_your-details|_submitted)|(\\s?)_(enquiry.*))"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC24119e05417c4e618c9dc0cc075f41ab-source.min.js",language:"javascript",isExternal:!0}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC04e60fb4d31c4d4c8e0778234d43d660-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL1085307d9716447899c80ba1ea510182",name:"Page: BTSFL #100",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:100}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return"/personal-banking/superannuation/bt-super-for-life/btsfl-mobile-apply"==(e=(e=e.replace(/\/content\/public\/wbc\/en/,"")).replace(/\.html$/,""))||"/personal-banking/superannuation/bt-super-for-life/btsfl-mobile-apply/"==e}}},{modulePath:"core/src/lib/conditions/queryStringParameter.js",settings:{name:"action",value:"^applyAuthenticated$",valueIsRegex:!0}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:'"use strict";!function(){var a=function(a,b){var c=[{name:"boundary",value:"https://banking.westpac.com.au/wbc/banking/handler?TAM_OP=sp&ERROR_CODE=0x00000000&URL=%2Fsecure%2Fbanking%2Faccounts%2Frenewssorequest%3FSP_PROVIDER_ID%3Dbtsflm%26TARGET%3Dhttps%3A%2F%2Fbtsfl.com.au%2Finvestor%2Fsso%3B%26PROTOCOL%3DPOST&logout=false#/sales-pathway/auth"},{name:"htsm",value:"https://banking.westpac.com.au/secure/banking/accounts/renewssorequest?SP_PROVIDER_ID=btsflm&TARGET=http%3A%2F%2Fbtsfl.bt.com.au%2Finvestor%2Fsso;&PROTOCOL=POST"}],d=new Date,e=null,f=a||2;d.setTime(d.getTime()+60*f*60*1e3);for(var g=0;g<c.length;g++){var h=c[g].name,i=c[g].value;document.cookie=h+"="+i+";domain=.westpac.com.au;path=/;expires="+d.toUTCString(),h.indexOf("boundary")>-1&&null===e?e=i:"undefined"!=typeof b&&null!==b&&h.indexOf(b)>-1&&(e=i)}"undefined"!=typeof e&&null!==e&&(window.location=e)},b=new RegExp("[?&]action=([^&]*)").exec(window.location.search),c=b&&decodeURIComponent(b[1].replace(/\\+/g," ").replace(/[^\\w]/g," "));c&&"applyAuthenticated"===c&&a()}();/* Version:0.13.847 */',language:"javascript"}}]},{id:"RL1144d8c1a0504036bf63d4e82de56bd3",name:"Page: appDynamics",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return""!=(e=(e=e.replace(/\/content\/sbg\/bsa\/en/,"")).replace(/\.html$/,""))&&"/home"!=e}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"if (!_satellite.getVar(\"adrum\")) {\n _satellite.setVar(\"adrum\", \"true\");\n}\n\nwindow['adrum-start-time'] = new Date().getTime();\n(function(config) {\n //config.appKey = 'SY-AAB-HMX'; //SIT\n // config.appKey = 'SY-AAB-JFB'; //UAT\n config.appKey = 'SY-AAB-JHK'; //PROD\n config.adrumExtUrlHttp = 'https://www.westpac.com.au/content/dam/public/external-scripts/global/appdynamics'; //Self-hosted\n config.adrumExtUrlHttps = 'https://www.westpac.com.au/content/dam/public/external-scripts/global/appdynamics'; //Self-hosted\n //config.adrumExtUrlHttp = 'http://cdn.appdynamics.com';\n //config.adrumExtUrlHttps = 'https://cdn.appdynamics.com';\n config.beaconUrlHttp = 'http://syd-col.eum-appdynamics.com';\n config.beaconUrlHttps = 'https://syd-col.eum-appdynamics.com';\n config.resTiming = {\n \"bufSize\": 200,\n \"clearResTimingOnBeaconSend\": true\n };\n config.maxUrlLength = 512;\n})(window['adrum-config'] || (window['adrum-config'] = {}));\nvar script = document.createElement('script');\nscript.src = 'https://www.westpac.com.au/content/dam/public/external-scripts/global/appdynamics/adrum.js'; //Self-hosted\n//script.src = '//cdn.appdynamics.com/adrum/adrum-latest.js';\ndocument.head.appendChild(script);",language:"javascript"}}]},{id:"RL1599c3264f7d461bb81be191b964a7f5",name:"Page: Wlive - Universal Redirection - Get Started #90",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:90}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return"/personal-banking/bank-accounts/get-started-redirect"==(e=e.replace(/\/content\/public\/wbc\/en/,""))||"/personal-banking/credit-cards/low-rate-cards/westpac-lite-card/get-started"==e||"/personal-banking/credit-cards/low-fee/get-started"==e||"/personal-banking/credit-cards/reward/altitude-qantas-black/get-started"==e||"/personal-banking/credit-cards/reward/altitude-platinum/get-started"==e||"/personal-banking/credit-cards/reward/altitude-black/get-started"==e||"/personal-banking/credit-cards/reward/altitude-qantas-platinum/get-started"==e||"/personal-banking/credit-cards/reward/altitude-velocity-platinum/get-started"==e||"/personal-banking/credit-cards/reward/altitude-velocity-black/get-started"==e||"/personal-banking/credit-cards/low-rate-cards/low-rate/get-started"==e||"/business-banking/transaction-accounts/business-one/get-started"==e||"/business-banking/transaction-accounts/business-one-plus/get-started"==e||"/business-banking/savings-accounts/cash-reserve/get-started"==e}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:'"use strict";\n! function () {\n var a = document.location.pathname,\n b = document.domain,\n c = "https://" + b + "/content/public/wbc/en/_services/serialiser/dd
9o-get-started-redirects.serialise.json",\n d = document.location.search.indexOf("assessmentId") === -1,\n e = a.indexOf("get-started") > -1;\n d && e && $.ajax({\n type: "GET",\n url: c,\n contentType: "application/json",\n dataType: "JSON"\n }).done(function (a) {\n if ("on" == a.data["ddo-flow-status"].ddoFlag.toLowerCase()) {\n var b = a.data["get-started-redirection"]._array;\n f(b)\n }\n });\n var f = function (b) {\n var c = b.filter(function (b) {\n return b.source == a\n });\n c[0] && (window.location.href = c[0].target)\n }\n}(); /* Version:19.0 6f2ba9c3d*/',language:"javascript"}}]},{id:"RL166cf70cc54948b494ce7017bfc40fa4",name:"Page: Wlive - Universal Redirection #90",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:90}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return!(!(e=e.replace(/\/content\/public\/wbc\/en/,"")).includes("/app/native")&&"/app/banking/deeplink"!=e)} 10}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:'/**\n * This is launch script that we integrate into launch header via launch Team.\n * This script need to be provided to launch team in Text format(currently this in JS format).\n */\nvar siteDomain = ".westpac.com.au";\n//var siteEnv = (window.pageDetails.siteEnv == "prod") ? "" : window.pageDetails.siteEnv + ".";\nvar jsonConfigUrl = "https://www" + siteDomain + "/_services/serialiser/cmsservices.serialise.jsonp";\n$(function () {\n setTimeout(function () {\n $(document.body).append(\n $(\n \'<div style="position:absolute;top:0; left: 0; background-color:#fff: z-index:9999;z-index: 999999;background-color: #fff;height: 100vh;width: 100vw;">\' + \n \' <span class="icon icon-size-lg icon-loading " style="position: absolute;left: 46%;top: 20%;"></span>\' + "</div>" ));}, 200);\n});\n//Do not change ajax attributes. They are set to work in cross-domain for Production via jsonp request.//\nfunction setCookie(name, value, hours, domain) {\n var date, seconds, maxAge, expires;\n if (hours) {\n date = new Date();\n seconds = hours * 60 * 60;\n maxAge = seconds > 0 ? seconds : 0;\n date.setTime(date.getTime() + seconds * 1000);\n expires = "; expires=" + date.toGMTString() + ";Max-Age=" + maxAge;\n } else {\n expires = "";\n }\n value = encodeURIComponent(value);\n if (domain) {\n document.cookie = name + "=" + value + expires + ";domain=" + domain + "; path=/";\n } else {\n document.cookie = name + "=" + value + expires + "; path=/";\n }\n}\nfunction getUrlParameterValue(key) {\n var urlParams;\n if (window.location.hash) {\n urlParams = window.location.search.substring(1) + window.location.hash;\n } else {\n urlParams = window.location.search.substring(1).toLowerCase();\n }\n urlParams = decodeURIComponent(urlParams);\n var urlParamsArr = urlParams.split("&"), urlParam;\n for (var i = 0; i < urlParamsArr.length; i++) {\n urlParam = urlParamsArr[i].split("=");\n if (urlParam[0] === key) {\n return urlParam[1] === undefined ? "" : urlParam[1];\n }\n }\n return "";\n}\nvar serialiserFeed;\nvar onLoadPageUrl = window.location.href;\nvar targetPathValue;\nif (onLoadPageUrl.toLowerCase().indexOf("targetpath") > -1) {\n if (onLoadPageUrl.toLowerCase().indexOf("webfallback") > -1) {\n targetPathValue = onLoadPageUrl.split(/[\\?&]targetpath=/i)[1];\n targetPathValue = targetPathValue.split(/[\\?&]webfallback=/i)[0];\n }\n else {\n targetPathValue = onLoadPageUrl.split(/[\\?&]targetpath=/i)[1];\n }\n}\nvar webFallbackValue = onLoadPageUrl.split(/[\\?&]webfallback=/i)[1];\n/** \n * https://sit.www.cmsservices.westpac.com.au/app/native/webview?targetPath=/secure/banking/overview/dashboard&logout=false#/registration/step1&destination=idHub&webfallback=https://sit2.banking.westpac.com.au/wbc/banking/handler?logout=false#/registration/step1?destination=idHub\n*/\n$.ajax({\n url: jsonConfigUrl,\n dataType: \'jsonp\',\n jsonpCallback: \'callback\',\n success: function (data) {\
10n serialiserFeed = data;\n if(onLoadPageUrl.toLowerCase().indexOf("webfallback") > 0){\n if (serialiserFeed && serialiserFeed["data"] && serialiserFeed["data"]["domains"]) {\n var allowedDomains = serialiserFeed["data"]["domains"]["allowedDomainForWebfallBack"]["_array"],\n showErrorPage = true;\n for (var i = 0; i < allowedDomains.length; i++) {\n if (decodeURIComponent(webFallbackValue).indexOf(decodeURIComponent(allowedDomains[i]["key"])) >= 0) {\n $(location).attr(\'href\', decodeURIComponent(webFallbackValue));\n showErrorPage = false;\n break;\n }\n }\n if (showErrorPage) {\n $(location).attr(\'href\', decodeURIComponent(serialiserFeed["data"]["domains"]["genericErrorPage"]["errorPage"]));\n }\n }\n //$(location).attr(\'href\', decodeURIComponent(webFallbackValue));\n } else if (onLoadPageUrl.toLowerCase().indexOf("targetpath") > 0) {\n setCookie("htsm", decodeURIComponent(targetPathValue), "", siteDomain);\n //AEMBAU-6659\n if (decodeURIComponent(targetPathValue).startsWith(\'https://\')) {\n if (serialiserFeed && serialiserFeed["data"] && serialiserFeed["data"]["domains"]) {\n var allowedDomains = serialiserFeed["data"]["domains"]["allowedDomain"]["_array"],\n showErrorPage = true;\n for (var i = 0; i < allowedDomains.length; i++) {\n if (decodeURIComponent(targetPathValue).indexOf(decodeURIComponent(allowedDomains[i]["key"])) >= 0) {\n $(location).attr(\'href\', decodeURIComponent(targetPathValue));\n showErrorPage = false;\n break;\n }\n }\n if (showErrorPage) {\n $(location).attr(\'href\', decodeURIComponent(serialiserFeed["data"]["domains"]["genericErrorPage"]["errorPage"]));\n }\n }\n } else {\n if (serialiserFeed && serialiserFeed["data"] && serialiserFeed["data"]["domains"]) {\n var wliveDomain = serialiserFeed["data"]["domains"]["targetPathWliveDomain"]["domain"]\n $(location).attr(\'href\', wliveDomain + decodeURIComponent(targetPathValue));\n }\n }\n } else if (onLoadPageUrl.toLowerCase().indexOf("webfallback") == -1 && onLoadPageUrl.toLowerCase().indexOf("targetpath") == -1) {\n $(location).attr(\'href\', decodeURIComponent(serialiserFeed["data"]["domains"]["genericErrorPage"]["errorPage"]));\n } else {\n if (serialiserFeed && serialiserFeed["data"] && serialiserFeed["data"]["redirect-mapping"] && serialiserFeed["data"]["redirect-mapping"]["_array"]) {\n var ignoreParams = [];\n if (serialiserFeed["data"]["ignore-mapping"]) {\n var ignoreParams = serialiserFeed["data"]["ignore-mapping"]["_array"];\n }\n processResult(serialiserFeed["data"]["redirect-mapping"]["_array"], ignoreParams);\n }\n /*\n * Modified this function for AEMBAU-2816: customer re-entry flows.\n */\n function processResult(urlArray, ignoreParams) {\n var urlParts = getUri(ignoreParams).split("||");\n var reference = urlParts[0];\n var urlParams = urlParts[1];\n for (var i = 0, len = urlArray.length; i < len; i++) {\n if (decodeURIComponent(urlArray[i].source) === reference) {\n if (urlArray[i].target) {\n window.location.href = urlArray[i].target.trim() + (urlParams.length > 0 ? (urlArray[i].target.indexOf("?") < 0 ? "?" : "&") : "") + urlParam
10s;\n }\n break;\n }\n }\n }\n /*\n * Modified this function for AEMBAU-2816: customer re-entry flows.\n */\n function getUri(ignoreParams) {\n var protocol = document.location.protocol,\n hostname = document.location.hostname,\n dns = protocol + "//" + hostname,\n href = decodeURIComponent(document.location.href),\n params = "";\n href = href.replace(dns, "");\n //replace urlParams chars "|" & 2nd"?" for creating standard url.\n var pos = href.indexOf("?");\n var hrefSubStr = href.slice(pos + 1);\n hrefSubStr = hrefSubStr.replace(/\\\\?|\\\\|/g, "&");\n href = href.slice(0, pos + 1) + hrefSubStr;\n for (var i = 0; i < ignoreParams.length; i++) {\n var tempParamValue = getUrlParameter(ignoreParams[i]["value"]);\n var paramValue = "";\n if (tempParamValue != "") {\n paramValue = ignoreParams[i]["value"] + "=" + tempParamValue;\n }\n if (paramValue != "") {\n //Querystring drop test\n var dropValue = ignoreParams[i]["drop"] ? (ignoreParams[i]["drop"] == "true" ? "true" : "false") : (ignoreParams[i]["drop"] = "false");\n if (dropValue !== "true") \n params += ((params.length == 0) ? "" : "&") + paramValue;\n }\n if (paramValue) {\n href = href.replace("&" + paramValue, "");\n href = href.replace("?" + paramValue + "&", "?");\n href = href.replace("?" + paramValue, "");\n }\n }\n if (href.lastIndexOf(\'?\') == (href.length - 1)) {\n href = href.substring(0, href.length - 1);\n }\n return href + "||" + params;\n }\n function getUrlParameter(key) {\n var urlParams;\n if (window.location.hash) {\n urlParams = window.location.search.substring(1) + window.location.hash;\n } else {\n urlParams = window.location.search.substring(1);\n }\n urlParams = decodeURIComponent(urlParams);\n urlParams = urlParams.replace(/\\\\?|\\\\|/g, "&");\n var urlParamsArr = urlParams.split("&"), urlParam;\n for (var i = 0; i < urlParamsArr.length; i++) {\n urlParam = urlParamsArr[i].split("=");\n if (urlParam[0] === key) {\n return urlParam[1] === undefined ? "" : urlParam[1];\n }\n }\n return "";\n }\n }\n},\nerror: function (error) {\n console.log(\'error:: \', error);},\n})',language:"javascript"}}]},{id:"RL2315b35f5ee346709e0cd08d1f40069d",name:"Page:webSDK_wgaFunctionHelper #30",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:30}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"// ==ClosureCompiler==\n// @compilation_level SIMPLE_OPTIMIZATIONS\n// @output_file_name analytics_wbc.min.js\n// ==/ClosureCompiler==\n\n//setup object without code in page head\n(function (win, doc, scr, loc, objName) {\n var element,\n\tscripts;\n win['WBGAnalyticsObject'] = objName; // Reference object named with string to avoid property renaming in advanced obfuscation. Do not change this name.\n win[objName] = win[objName] || function () {\n (win[objName].q = win[objName].q || []).push(arguments);\n };\n win[objName].config = {};\n\n // if this script is in head (high in HTML) capture time as start of page load time (for safari and old IE without native timing support)\n //win[objName].config.ls = collectLoadStartTime ? (+new Date()) : 0; // ls = load start time\n}\n(window, document, 'script', '', 'wga')); \n\n// prod = use production suite for domains in following sections\n// brand = brand for pageName. e.g. 'wbc'. Subdomains of westpac.com.au are always 'wbc' brand\n// site = site for pageName. e.g. 'www'. Subdomains of westpac.com.au are used automatically as site name\n\n(function (win, doc) {\n var trackingObjectName = win['WBGAnalyticsObject'], // Do n
10ot change this name.\n pageConfig = win[trackingObjectName].config,\n testTracking = win.testTracking || {}, // test page objects\n helpers;\n \n !function(n,o){o.forEach(function(o){n[o]||((n.__alloyNS=n.__alloyNS||\n []).push(o),n[o]=function(){var u=arguments;return new Promise(\n function(i,l){n[o].q.push([i,l,u])})},n[o].q=[])})}\n (window,[\"alloy\"]);\n // defaults for s_code. customisations below.\n pageConfig.prod = 0;\n pageConfig.brand = 0;\n pageConfig.site = 0;\n\n helpers = {\n\t\tlocation: testTracking.location || win.location,\n\t\taddHandler: function (element, event, handler) {\n if (element.addEventListener) {\n element.addEventListener(event, handler, false);\n } else {\n if (element.attachEvent) {\n element.attachEvent('on' + event, handler);\n }\n }\n },\n // use onReady to attach at window.load (or later) if required to reduce impact on load time (delay load script), or to track navigation timing data\n onReady: function (func) {\n if (/complete/.test(doc.readyState)) { // fire/attach immediately in case window load has already occured\n func();\n } else {\n helpers.addHandler(win, 'load', function () { // fire/attach when window loads. include a timeout to prevent Chrome/Safari spinner immediately after load\n setTimeout(func, 4); // should be 4\n });\n }\n },\n scriptElement: function (id) {\n var existing = doc.getElementById(id),\n scripts = doc.getElementsByTagName('script')[0],\n //sibling = scripts[scripts.length - 1],\n element;\n\n if (existing) {\n return existing;\n }\n\n element = doc.createElement('script');\n element.id = id;\n //element.type = 'text/javascript';\n element.async = 1;\n //element.defer = true;\n\n //sibling.parentNode.insertBefore(element, sibling.nextSibling);\n scripts.parentNode.insertBefore(element, scripts);\n\n return element;\n },\n cookieRead: function (sKey) {\n return decodeURIComponent(doc.cookie.replace(new RegExp('(?:(?:^|.*;)\\\\s*' + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'), '$1')) || '';\n },\n cookieWrite: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {\n if (!sKey || (/^(?:expires|max-age|path|domain|secure)$/i).test(sKey)) {\n return false;\n }\n var sExpires = '';\n if (vEnd && vEnd.constructor === Date) {\n sExpires = '; expires=' + vEnd.toUTCString();\n }\n doc.cookie = encodeURIComponent(sKey) + '=' + encodeURIComponent(sValue) + sExpires + (sDomain ? '; domain=' + sDomain : '') + (sPath ? '; path=' + sPath : '') + (bSecure ? '; secure' : '');\n return true;\n },\n cloneObject: function (oToBeCloned, clones) {\n var oClone,\n Constr = oToBeCloned && oToBeCloned.constructor ? oToBeCloned.constructor : undefined,\n lp,\n len,\n cloneRef,\n alreadyCloned,\n prpty;\n\n if (!oToBeCloned || (Constr !== RegExp && Constr !== Date && Constr !== Function && Constr !== Object && Constr !== Array)) {\n return oToBeCloned;\n }\n\n switch (Constr) {\n // handle special object types\n case RegExp:\n oClone = new Constr(oToBeCloned.source, 'g'.substr(0, Number(oToBeCloned.global)) + 'i'.substr(0, Number(oToBeCloned.ignoreCase)) + 'm'.substr(0, Number(oToBeCloned.multiline)));\n break;\n case Date:\n oClone = new Constr(oToBeCloned.getTime());\n break;\n case Function:\n oClone = oToBeCloned;\n break;\n default:\n // should only be plain objects and arrays that need looping\n oClone = new Constr();\n }\n\n clones = clones || [];\n for (lp = 0, len = clones.length; lp < len; lp++) {\n cloneRef = clones[lp];\n if (cloneRef[0] === oToBeCloned) {\n alreadyCloned = cloneRef[1];\n break;\n }\n }\n if (alreadyCloned) {\n return alreadyCloned;\n }\n clones.push([oToBeCloned, oClone]); // keep track of objects we've cloned\n for (prpty in oToBeCloned) {\n if (oToBeCloned.hasOwnProperty(prpty)) {\n if (oToBeCloned[prpty] === oToBeCloned) {\n oClone[prpty] = oClone;\n } else {\n oClone[prpty] = helpers.cloneObject(oToBeCloned[prpty], clones);\n }\n }\n }\n return oClone;\n },\n addCallback: function (readyCheck, callback) {\n var scriptEl = {};\n scriptEl.readyState = 'loaded';\n var thisFunction = helpers.addCallback;\n thisFunction.q = thisFunction.q || [];\n\n //if (scriptEl.readyState) {\n thisFunction.q.push(callback); // ability to add multiple callbacks in IE\n while (thisFunction.q.length) {\n callbackItem = thisFunction.q.shift();\n callbackItem();\n }\n /*scriptEl.onreadystatechange = function () {\n var callbackItem;\n\n //console.log('readyState = ' + scriptEl.readyState);\n //console.log('s = ' + win.s);\n //console.log('readyCheck IE = ' + readyCheck());\n\n if (/loaded|complete/.test(scriptEl.readyState) && readyCheck()) { // readyCheck to verify that all scripts required are actually ready (mainly to confirm IE readystate)\n scriptEl.onreadystatechange = null;\n while (thisFunction.q.length) {\n callbackItem = thisFunction.q.shift();\n callbackItem();\n }\n }\n };*/\n /*} else {\n //console.log('readyCheck non-IE = ' + readyCheck());\n helpers.addHandler(scriptEl, 'load', function () {\n if (readyCheck()) { // in case the file loaded is not actually s_code\n callback();\n }\n });\n }*/\n },\n tracker: function () {\n var args = Array.prototype.slice.call(arguments),\n method = args.shift();\n if (method) {\n if (typeof method === 'function') {\n method();\n } else {\n // can do something special based on method n
10ame here if required\n if (helpers.send[method]) {\n helpers.send[method].apply(win, args);\n }\n }\n }\n },\n processQueue: function () {\n var queue = win[trackingObjectName].q,\n realTrackingFunction = helpers.tracker;\n realTrackingFunction.config = pageConfig;\n while (queue && queue.length) {\n realTrackingFunction.apply(win, queue.shift());\n }\n win[trackingObjectName] = realTrackingFunction;\n },\n pageSetup: function () {\n // config for initial page defaults/s_code load only\n //alert('running analytics.js pageSetup');\n\n //var omnitureScriptElement = helpers.scriptElement('alloy'),\n // omnitureScriptSource = testTracking.location ? 'common/alloy_wlive.js' : 'https://sit03.www.westpac.com.au/content/dam/public/wbc/analytics/alloy/alloy_wlive.min.js',//'//www.westpac.com.au/content/dam/public/wbc/analytics/AppMeasurement.js',\n var omnitureScriptReady = function () {\n console.log(\"alloy_wLive.js is loaded\");\n return true; //win.s3 && win.s3.w_trackPage;\n },\n // customisations for sites using this file\n\t\t\t\tpageSite,\n wbcGroupRegex,\n movingtoaustraliaRegex,\n wbcMicrositeRegex,\n wbcPartnerRegex,\n wbcPacificRegexProd,\n wbcPacificRegexAny,\n wbcPacificSplit;\n\n // standard mactel subdomains of westpac.com.au that should be prod\n // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n // to switch on live host only\n if (/^(?:info|explore|wib|help|ww2|appointments)\\.westpac\\.com\\.au$/i.test(location.hostname)) { // help and ww2 due to incorrect links in COL pages (should link to www)\n pageConfig.prod = true;\n }\n\t\t\t\t//if (/(?:^|\\.)westpac\\.com\\.au$/i.test(fullLocHostname) || (window.s_w_wbcrgx && window.s_w_wbcrgx.test(fullLocHostname))) {\n\t\t\tif (/(?:^|\\.)westpac\\.com\\.au$/i.test(helpers.location.hostname)) {\n\t\t\t\tpageConfig.brand = 'wbc';\n\t\t\t\tpageSite = /(.+)(?:\\.westpac\\.com\\.au$)/i.exec(helpers.location.hostname); // || [];\n\t\t\t\tpageConfig.site = pageSite ? pageSite[1] : notSet;\n\n\t\t\t\t// OTP secure, oregon secure forms, oregon secure domino forms -\n\t\t\t\t//if(pageSite === 'banking' && /^\\/+secure\\/+banking(?:\\/|$)/i.test(fullLocObj.pathname)){\n\t\t\t\t//if (/\\bbanking\\b/i.test(pageSite) && /^(?:\\/secure\\/|\\/cust\\/wps\\/(?:my)?portal\\/wol\\/)/i.test(fullLocObj.pathname)) {\n\t\t\t\tif ((/\\bbanking\\b/i).test(pageSite) && (/^(?:\\/secure\\/|\\/cust\\/wps\\/(?:my)?portal\\/wol\\/|\\/oregon\\/[^\\/]+?\\/wol\\/)/i).test(helpers.location.hostname)) {\n\t\t\t\t\t//pdInSession = true;\n\t\t\t\t\tpageConfig.pageStatus = 'auth'; // extended to in/out of session for all platforms and for formType\n\t\t\t\t}\n\t\t\t}\n // WestpacGroup sites\n // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n wbcGroupRegex = /^(info|bump|helpmechoose|rewardscalculator|businessfocus|hybrideducation|comparebusinesscreditcards)\\.westpacgroup\\.com\\.au$/i;\n // to switch on live host only\n if (wbcGroupRegex.test(location.hostname)) {\n pageConfig.prod = true;\n }\n // for live host and test page\n if (wbcGroupRegex.test(helpers.location.hostname)) {\n pageConfig.brand = 'wbcgroup';\n pageConfig.site = helpers.location.hostname.match(wbcGroupRegex)[1];\n }\n\n // movingtoaustralia microsites\n // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n movingtoaustraliaRegex = /^(www\\.)?movingtoaustralia(|\\.westpac)\\.(?:com\\.au|co\\.nz|co\\.uk|asia)$/i;\n // to switch on live host only\n if (movingtoaustraliaRegex.test(location.hostname)) {\
10n pageConfig.prod = true;\n }\n // for live host and test page\n if (movingtoaustraliaRegex.test(helpers.location.hostname)) {\n pageConfig.brand = 'wbc';\n pageConfig.site = helpers.location.hostname.replace(/^(www\\.)?(movingtoaustralia)(\\.westpac)?(\\.com?)?/i, '$2');\n }\n if (/^movingtoaustralia\\.westpac\\.asia$/i.test(helpers.location.hostname)) {\n pageConfig.fpCookieDomainPeriods = 2;\n }\n\n // westpac.com.au microsites\n // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n wbcMicrositeRegex = /^(merchantapplication)\\.westpac\\.com\\.au$/i;\n // to switch on live host only\n if (wbcMicrositeRegex.test(location.hostname)) {\n pageConfig.prod = true;\n }\n // westpac partner sites (external domains)\n // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n //wbcPartnerRegex = /(|^www\\.)(einsure|fxmoneyonline)\\.com\\.au$/i;\n wbcPartnerRegex = /^(|^\\bwww\\b\\.|^elevate\\.)(einsure|fxmoneyonline|agatravelinsurance)\\.com\\.au$/i;\n\n // to switch on live host only\n if (wbcPartnerRegex.test(location.hostname)) {\n pageConfig.prod = true;\n }\n // for live host and test page\n if (wbcPartnerRegex.test(helpers.location.hostname)) {\n pageConfig.brand = 'wbc';\n //edit 1908206: added fxmoneyonline site within partnerregex\n //eidt 230117 added agatravelinsurance and fixed einsure uat data into prod issues\n\n var wbcPartner = helpers.location.hostname.replace(/(?:|^www\\.|^elevate\\.)(einsure|fxmoneyonline|agatravelinsurance)(?:\\.com)(?:\\.au$)/i, '$1');\n switch (wbcPartner) {\n case 'einsure':\n pageConfig.site = 'einsure';\n break;\n case 'fxmoneyonline':\n pageConfig.site = 'travelex';\n break;\n case 'agatravelinsurance':\n pageConfig.site = 'agatravel';\n break;\n default:\n // should there be a default? may be notset\n }\n }\n // westpac 200 year anniversary site\n // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n wbcAnniversaryMicrosite = /^(|^www\\.)(businessesoftomorrow)\\.com\\.au$/i;\n // to switch on live host only\n if (wbcAnniversaryMicrosite.test(location.hostname)) {\n pageConfig.prod = true;\n }\n if (wbcAnniversaryMicrosite.test(helpers.location.hostname)) {\n pageConfig.brand = 'wbc';\n pageConfig.site = 'businessesoftomorrow';\n }\n // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n //BT Panorama direct Westpac hosted micro site\n //to switch on live host only\n if (/\\/ng\\/public\\//i.test(location.href)) {\n pageConfig.brand = 'bt';\n pageConfig.site = 'panoramadirect';\n }\n \n // Westpac Pacific sites\n\t\t\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\t\t\twbcPacificRegexProd = /^(www\\.)?westpac\\.com\\.(fj|pg)$/i;\n\t\t\twbcPacificRegexAny = /\\.?westpac\\.com\\.(fj|pg)$/i;\n\t\t\twbcPacificSplit = helpers.location.hostname.split('.');\n\t\t\t// to switch on live host only\n\t\t\tif (wbcPacificRegexProd.test(location.hostname)) {\n\t\t\t\tpageConfig.prod = true;\n\t\t\t}\n\t\t\t// for live host and test page\n\t\t\tif (wbcPacificRegexAny.test(helpers.location.hostname)) {\n\t\t\t\tpageConfig.brand = 'wbc-' + wbcPacificSplit[wbcPacificSplit.length - 1];
10\n\t\t\t\tif ((/^westpac$/i).test(wbcPacificSplit[0])) {\n\t\t\t\t\tpageConfig.site = 'www';\n\t\t\t\t} else {\n\t\t\t\t\tpageConfig.site = wbcPacificSplit[0];\n\t\t\t\t}\n\t\t\t}\n \n // add files to attach to page (based on conditions if required)\n helpers.onReady(function () { // i.e. wait until window load to attach script. avoid gomez measurement + browser loading spinner.\n //pageConfig.lc = (+new Date()); // lc = load complete time for browsers without native support\n\n // load any script required and check if required functions are ready\n //omnitureScriptElement.src = omnitureScriptSource;\n\n // can add the process callback straight away\n helpers.addCallback(omnitureScriptReady, function () {\n helpers.processQueue();\n });\n });\n },\n send: {\n livechat: function (details) {\n window.helper && helper.w_trackLiveChat(true, details);\n },\n impression: function (impressions) {\n window.helper && helper.trackImpression(impressions);\n },\n page: function (details) {\n var pageDetails = helpers.cloneObject(details || {}); // copy object passed to leave original as-is\n\n // set this file date for version monitoring across all sites using this file\n if (!pageDetails.siteVersion) {\n pageDetails.siteVersion = 'analytics_alloy_wlive.js:20240718';// TODO: ------ Code release date to be updated with changes\n }\n // completely override report suite if required for testing\n //pageDetails.s_un = 'westpac-dev-b'; // TODO: ------ confirm if override should be used\n\n\n // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n //if (/^info\\.westpac\\.com\\.au$/i.test(helpers.location.hostname) && (/\\/m\\//i.test(helpers.location.pathname) || /\\/mobile\\//i.test(helpers.location.pathname))) {\n //\tif (!pageDetails.experience) {\n //\t\tpageDetails.experience = 'mob';\n //\t}\n //}\n\n if (/^movingtoaustralia\\.westpac\\.asia$/i.test(helpers.location.hostname)) {\n pageDetails.language = 'cn';\n }\n\n // businessfocus.westpacgroup.com.au - blog URL customisation\n if ((/^businessfocus$/i).test(pageConfig.site)) {\n (function () {\n var locPath = helpers.location.pathname,\n locSearch = helpers.location.search.replace(/&([cp]id|utm_.+)=?.*/, ''), // remove cid/pid or utm_ with or without following '='\n locFull = locPath + locSearch,\n cleanPageName = locFull,\n searchKeywords = locSearch.match(/^\\?+keywords=+(.*?)(?=&|$)/i),\n pageNumber = locSearch.match(/[\\?&]+page=+(.*?)(?=&|$)/);\n\n searchKeywords = searchKeywords ? searchKeywords[1] : '';\n pageNumber = pageNumber ? pageNumber[1] : '';\n\n if (searchKeywords) {\n cleanPageName = 'searchresults';\n }\n if (!(/^\\?+(page|keywords)/i).test(locSearch)) {\n cleanPageName = locPath;\n }\n if ((/^\\/blog\\/*\\?+(label|tag)=/i).test(locFull)) {\n cleanPageName = locFull;\n }\n if (locPath === '/') {\n cleanPageName = (pageNumber > 1 ? 'home:page:' + pageNumber : '');\n }\n\n pageDetails.pageName = decodeURIComponent(cleanPageName.replace(/[=\\/&\\?]+/g, ':').replace(/[\\-+]+/g, ' ').replace(/^:+|:+$/g, '')).toLowerCase();\n if (searchKeywords) {\n pageDetails.pageType = 'sitesearch';\n pageDetails.searchTerm = decodeURIComponent(searchKeywords).toLowerCase();\n pageDetails.pageNumber = pageNumber || 1;\n }\n }\n ());\n }\n\t\t\t\tif (testTracking){\n // testTracking.setText(document.getElementById('test-contextdata-detail
10s'),jsl.format.formatJson(JSON.stringify(window.digital)));\n }\n window.helper && helper.w_trackPage(pageDetails);\n }\n }\n };\n\n if (trackingObjectName) {\n helpers.pageSetup();\n }\n}\n (window, document));",language:"javascript"}}]},{id:"RL2ca362311b0b49cd8bc8c02f77f38f78",name:"Event:webSDK:LocateUS_Event_Trigger #60",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"AnalyticsEvent_pageKey"},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%Page_Type%", 11rightOperand:"\\b(mediareleasesearch|sitesearch|faqsearch|branchsearch|branchdetail|atmdetail|tool|calc-tool)\\b"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCea61526e98724caeb4610c0fa1cdf618-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL2e50d6d559b74d0ea363bafb151be3fa",name:"PageView: Amazon #47",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return window.location.hash&&(e=(window.location.pathname+window.location.hash).toLowerCase().replace(/\/$/,"")),"/personal-banking/bank-accounts/new-to-australia"==(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))||"/international-travel/moving-to-australia"==e||"/personal-banking/bank-accounts/transaction/new-arrivals"==e||"/personal-banking/mobile-wallets/digital-card"==e||"/personal-banking/bank-accounts/spend-save-ntb"==e||"/personal-banking/bank-accounts/savings-accounts/spend-save-ntb"==e||"/personal-banking/bank-accounts/savings-accounts/life"==e||"/personal-banking/bank-accounts/transaction/choice"==e||"/personal-banking/online-banking/insights-hub"==e||"/personal-banking/bank-accounts/youth"==e||"/personal-banking/credit-cards/reward/altitude-black"==e||"/personal-banking/credit-cards/reward/altitude-platinum"==e||"/personal-banking/credit-cards/reward/altitude-qantas-black"==e||"/personal-banking/credit-cards/reward/altitude-qantas-platinum"==e||"/personal-banking/credit-cards/reward/altitude-velocity-platinum"==e||"/personal-banking/credit-cards/reward/altitude-velocity-black"==e||"/personal-banking/credit-cards/low-rate-cards/low-rate"==e||"/personal-banking/credit-cards/low-rate-cards/westpac-lite-card"==e||"/personal-banking/credit-cards/low-fee"==e||"/corporate-banking/transactional-banking/realtime-payments/business-payments"==e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%Site_Name%",rightOperand:"^www$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCd9ad195f49934a5b93c2b1916448e2c7-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL300af1ecf3ba488e9b9acff1c150b876",name:"Page: Quantcast Tag",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return""!=(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""))&&"/home"!=e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC417b7d60e75b444db67174c309e1c93f-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL34f8313d7e7e4945b1e97e16856b893f",name:"Page: Didomi-changed #10",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:10}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/******************************************************************************\n * Didomi Adobe Launch Script \n * SIT02 values pre-filled from the provided URLs.\n ******************************************************************************/\n var gdprCountry = /^(AT|BE|BG|HR|CY|CZ|DK|EE|FI|FR|DE|GR|HU|IE|IT|LV|LT|LU|MT|NL|PL|PT|RO|SK|SI|ES|SE|GB|NO|L
11I|IS|VE|UY|SR|PE|PY|GY|EC|CO|CL|BR|BO|AR)$/i;\n/* ---------------------------------------------------------------------------\n * 1. CONFIG\n * ------------------------------------------------------------------------- */\nvar didomiPublicApiKey = \"377d83ad-575e-4a1b-ae96-0c2aa9bb0509\", // organization_id\n didomiNoticeId = \"jcmkJNi7\", // AEM notice_id\n // configPath -> reverse-proxy base (notice config + GVL vendor-list-core.json)\n didomiConfigPath = \"https://sit.consent.westpac.com.au/\",\n didomiHostingDomain = \"https://sit.consent.westpac.com.au\",\n didomiHostingStatus = \"https://sit.consent.westpac.com.au/status\",\n // sdkPath -> unzipped zip tree root (patched loader-static.js + /sdk/<version>/...)\n didomiSdkPath = \"https://sit.consent.westpac.com.au/\",\n didomiApiPath = \"https://sit.consent.westpac.com.au/api\",\n \n didomiSdkVersion = \"50888b6d7194abd91159a67df4022b345ddabba9\";\n \n if (/^(www|one|www1|www\\.cmsservices)\\.westpac\\.com\\.au$/i.test(location.hostname)){ //PROD Config\n didomiPublicApiKey = \"30adb8bb-c768-4d30-af81-8a0e77cfce36\", // organization_id\n didomiNoticeId = \"xYKnAMh4\", // \"xYKnAMh4\" WDP\n // configPath -> reverse-proxy base (notice config + GVL vendor-list-core.json)\n didomiConfigPath = \"https://consent.westpac.com.au/\",\n didomiHostingDomain = \"https://consent.westpac.com.au\",\n didomiHostingStatus = \"https://consent.westpac.com.au/status\",\n // sdkPath -> unzipped zip tree root (patched loader-static.js + /sdk/<version>/...)\n didomiSdkPath = \"https://consent.westpac.com.au/\",\n didomiApiPath = \"https://consent.westpac.com.au/api\",\n didomiSdkVersion = \"50888b6d7194abd91159a67df4022b345ddabba9\";\n }else if(/(stg|uat).*\\.westpac\\.com\\.au$/i.test(location.hostname) ){ //UAT Config\n didomiPublicApiKey = \"377d83ad-575e-4a1b-ae96-0c2aa9bb0509\", // organization_id\n didomiNoticeId = \"GF8X4NFP\", // \"9284jnKt\" WDP\n // configPath -> reverse-proxy base (notice config + GVL vendor-list-core.json)\n didomiConfigPath = \"https://uat.consent.westpac.com.au/\",\n didomiHostingDomain = \"https://uat.consent.westpac.com.au\",\n didomiHostingStatus = \"https://uat.consent.westpac.com.au/status\",\n // sdkPath -> unzipped zip tree root (patched loader-static.js + /sdk/<version>/...)\n didomiSdkPath = \"https://uat.consent.westpac.com.au/\",\n didomiApiPath = \"https://uat.consent.westpac.com.au/api\",\n didomiSdkVersion = \"50888b6d7194abd91159a67df4022b345ddabba9\";\n } \n\n/* ---------------------------------------------------------------------------\n * 2. Base Didomi config (static-embed style)\n * ------------------------------------------------------------------------- */\nwindow.didomiConfig = window.didomiConfig || {};\nwindow.didomiConfig.app = window.didomiConfig.app || {};\nwindow.didomiConfig.app.apiKey = didomiPublicApiKey;\nwindow.didomiConfig.app.noticeId = didomiNoticeId;\nwindow.didomiConfig.app.sdkVersion = didomiSdkVersion;\nwindow.didomiConfig.configPath = didomiConfigPath;\nwindow.didomiConfig.sdkPath = didomiSdkPath;\nwindow.didomiConfig.apiPath = didomiApiPath;\nwindow.didomiConfig.user = window.didomiConfig.user || {};\nwindow.didomiConfig.user.params = window.didomiConfig.user.params || {};\nwindow.didomiConfig.user.params.brand = \"westpac\";\nwindow.didomiConfig.notice = window.didomiConfig.notice || {};\nwindow.didomiConfig.sync = window.didomiConfig.sync || {};\n\n//disable Didomi popup for specific hostnames\nif (/^(www\\.cmsservices|gsso\\.intranet)\\.westpac\\.com\\.au$/i.test(location.hostname)){\n window.didomiConfig.notice.enable = false;\n};\n\n/* ---------------------------------------------------------------------------\n * 3. Cookie / query helpers\n * ------------------------------------------------------------------------- */\n\n// \u2500\u2500 Cookie helpers (module-scope \u2014 shared by applyDidomiConsent & applyUrlConsent) \u2500\u2500\nfunction didomiGetDomainPeriod(domain) {\n return ((/.+\\.(com\\.au|org\\.au|co\\.nz|co\\.uk)$/i).test(domain || location.hostname)) ? 3 : 2;\n};\n\nfunction didomiGetCookieDomain(domain) {\n var host = domain || location.hostname,\n dp = didomiGetDomainPeriod(host),\n ln = host.split('.').length;\n if ((/[0-9]{1,3}$/i).test(location.hostname)) { return host; }\n return '.' + host.split('.').slice(ln - dp).join('.');\n}\nfunction didomiGetCookie(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[2]) : '';\n}\nfunction didomiSetCookie(sKey, sValue, vEnd, sPath, sDomain, bSecure) {\n if (!sKey || (/^(?:expires|max\\-age|path|domain|secure)$/i).test(sKey)) { return false; }\n var sExpires = '';\n if (vEnd && vEnd.constructor === Date) { sExpires = '; expires=' + vEnd.toUTCString(); }\n document.cookie = encodeURIComponent(sKey) + '=' + encodeURIComponent(sValue) + sExpires +\n (sDomain ? '; domain=' + sDomain : '; domain=' + didomiGetCookieDomain()) +\n (sPath ? '; path=' + sPath : '; path=/') + (bSecure ? '; secure' : '');\n return true;\n}\nfunction didomiGetQueryParam(parameters, delimiter, url, startFromHash) {\n var params = parameters.split(','),\n delim = delimiter || '',\n loc = String(url || window.location.href),\n lp = 0,\n len = params.length,\n rgx,\n rgxStart = startFromHash === 1 ? '#(?:.*?&)?' : '(?:\\\\?|&|;|#)',\n val,\n values = [];\n\n //console.log('delim = ' + delim);\n //console.log('loc = ' + loc);\n //console.log('startFromHash = ' + startFromHash);\n\n if (parameters) {\n for (lp = 0; lp < len; lp++) {\n rgx = new RegExp(rgxStart + params[lp] + '=(.*?)(?=\\\\?|&|;|#|/|$)', 'i');\n val = rgx.exec(loc);\n if (val) {\n values.push(decodeURIComponent(val[1].replace(/\\+/g, '%20')));\n }\n }\n }\n return values.join(delim);\n};\n\n/* ---------------------------------------------------------------------------\n * 4. Runtime overrides that must run BEFORE the loader\n * ------------------------------------------------------------------------- */\nvar didomiMobileView = false, \n currentAppVersion = didomiGetCookie(\"AppVersion\") || '',\n isAppCookieApplicable = true,\n didomiMobileAppConsent = didomiGetQueryParam('s_consent') || '';\n\nif (typeof (window.NativeJSInterface) !== \"undefined\" && window.NativeJSInterface.isNativeContainer() !== false) {\n didomiMobileView = true;\n}\nif (currentAppVersion) {\n didomiMobileView = true;\n if (currentAppVersion.match(/\\/(\\d+)\\.(\\d+)\\.(\\d+)/i)?.[1] <12){\n isAppCookieApplicable = false;\n } else if (currentAppVersion.match(/\\/(\\d+)\\.(\\d+)\\.(\\d+)/i)?.[1] == 12){\n if(currentAppVersion.match(/\\/(\\d+)\\.(\\d+)\\.(\\d+)/i)?.[2] <= 1){\n isAppCookieApplicable = false\n } \n }\n};\n\n// \u2500\u2500 URL-supplied consent (mobile webview / exit to browser) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Parses ?s_consent=r:gdpr+a:y+p:n+o:n (fields separated by +, each as key:value)\n// Examples:\n// https://www.westpac.com.au/?s_consent=r:gdpr+a:y+p:n+o:n\n// https://www.westpac.com.au/?abc=xxx&s_consent=r:gdpr+a:y+p:n+o:n\n// https://www.westpac.com.au/?abc=xxx&s_consent=r:+a:y+p:y+o:y\n\nif (didomiMobileAppConsent) {\n didomiMobileView = true;
11\n didomiMobileAppConsent = didomiMobileAppConsent.replace(/\\+/g, '|').replace(/:/g, ':');\n didomiSetCookie('s_consent', '|' + didomiMobileAppConsent);\n};\nif (didomiGetCookie(\"s_ecid\")) {\n window.didomiConfig.user.params.ecid = didomiGetCookie(\"s_ecid\").replace(/mcmid\\|/ig,'') || ''; //passing customer tracking id\n};\nif (didomiGetCookie(\"s_wbc-ti\")) {\n window.didomiConfig.user.params.wbcid = didomiGetCookie(\"s_wbc-ti\") || ''; //passing customer tracking id\n};\nif (didomiGetCookie(\"fpid\")) {\n window.didomiConfig.user.organizationUserId = didomiGetCookie(\"fpid\") || '';\n};\nif (didomiMobileView) {\n window.didomiConfig.notice.enable = false;\n};\nif (/^(www\\.cmsservices|gsso\\.intranet)\\.westpac\\.com\\.au$/i.test(location.hostname)){\n window.didomiConfig.notice.enable = false;\n};\n// Suppress popup when consent is supplied via URL (mobile webview / exit to browser)\nif (new URLSearchParams(location.search).get('s_consent')) {\n window.didomiConfig.notice.enable = false;\n};\n\nconsole.log(\"Didomi rules executed\");\n\n /* ---------------------------------------------------------------------------\n * 5. Check hosting status, then load Didomi or apply hardcoded consent\n * ------------------------------------------------------------------------- */\n\n (function checkDidomiStatus() {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", didomiHostingStatus, true);\n xhr.timeout = 5000;\n xhr.onreadystatechange = function () {\n if (xhr.readyState !== 4) { return; }\n if (xhr.status !== 200) {\n console.warn(\"Didomi status check returned HTTP \" + xhr.status + \", fallback stop collecting data.\");\n didomiSetCookie('s_consent', '|r:err|a:n|p:n|o:n');\n collectConsent('', 'r:err', 'n', 'n', 'n');\n return;\n }\n try {\n var status = JSON.parse(xhr.responseText);\n var country = status.country || '';\n if (status.killSwitch === true) {\n console.warn(\"Didomi kill switch active. Hardcoding consent for country: \" + country);\n // Kill switch active \u2014 skip Didomi, hardcode full consent using country from status\n if (country && gdprCountry.test(country)) {\n console.log(\"Didomi kill switch on. GDPR country (\" + country + \") data collection: Off\");\n didomiSetCookie('s_consent', country + '|r:forced|a:n|p:n|o:n');\n collectConsent(country, 'r:forced', 'n', 'n', 'n');\n } else {\n console.log(\"Didomi kill switch on. non-GDPR country (\" + country + \") data collection: on\");\n didomiSetCookie('s_consent', country + '|r:forced|a:y|p:y|o:y');\n collectConsent(country, 'r:forced', 'y', 'y', 'y');\n }\n \n } else if(isAppCookieApplicable === false) {\n //identify old app\n console.log(\"Old app on. non-GDPR country (\" + country + \") data collection: on\");\n if (country && gdprCountry.test(country)) {\n console.log(\"Didomi kill switch on. GDPR country (\" + country + \") data collection: Off\");\n didomiSetCookie('s_consent', country + '|r:oldapp|a:n|p:n|o:n');\n collectConsent(country, 'r:oldapp', 'n', 'n', 'n');\n } else {\n console.log(\"Didomi kill switch on. non-GDPR country (\" + country + \") data collection: on\");\n didomiSetCookie('s_consent', country + '|r:oldapp|a:y|p:y|o:y');\n collectConsent(country, 'r:oldapp', 'y', 'y', 'y');\n } \n } else if (/^(www\\.cmsservices|gsso\\.intranet)\\.westpac\\.com\\.au$/i.test(location.hostname)){\n if (country && gdprCountry.test(country)) {\n console.log(\"Didomi kill switch on. GDPR country (\" + country + \") data collection: Off\");\n didomiSetCookie('s_consent', country + '|r:oldapp|a:n|p:n|o:n');\n collectConsent(country, 'r:forced', 'n', 'n', 'n');\n } else {\n console.log(\"Didomi kill switch on. non-GDPR country (\" + country + \") data collection: on\");\n didomiSetCookie('s_consent', country + '|r:oldapp|a:y|p:y|o:y');\n collectConsent(country, 'r:forced', 'y', '
11y', 'y');\n }\n } else {\n // Kill switch off \u2014 load Didomi normally\n console.log(\"Didomi kill switch off. Loading Didomi SDK.\");\n loadDidomiStatic();\n }\n } catch (e) {\n // Parse error or unexpected response \u2014 fall back to do not collect data\n console.warn(\"Didomi status check failed, fallback stop collecting data.\", e);\n didomiSetCookie('s_consent', '|r:err|a:n|p:n|o:n');\n collectConsent('', 'r:err', 'n', 'n', 'n');\n }\n };\n xhr.onerror = function () {\n // Network error \u2014 fall back to do not collect data\n console.warn(\"Didomi status check endpoint unreachable, fallback stop collecting data.\");\n didomiSetCookie('s_consent', '|r:err|a:n|p:n|o:n');\n collectConsent('', 'r:err', 'n', 'n', 'n');\n };\n xhr.ontimeout = function () {\n // timeout error \u2014 fall back to do not collect data\n console.warn(\"Didomi status check endpoint timed out, fallback stop collecting data.\");\n didomiSetCookie('s_consent', '|r:err|a:n|p:n|o:n');\n collectConsent('', 'r:err', 'n', 'n', 'n');\n };\n xhr.send();\n })();\n\n function loadDidomiStatic() {\n if (document.getElementById(\"spcloader\") || window.__didomiStaticLoaderStarted) {\n return;\n }\n window.__didomiStaticLoaderStarted = true;\n\n var sdkRoot = window.didomiConfig.sdkPath || didomiSdkPath;\n if (sdkRoot.charAt(sdkRoot.length - 1) !== \"/\") {\n sdkRoot += \"/\";\n }\n\n var loaderUrl = sdkRoot + \"loader-static.js?target_type=notice&target=\" + didomiNoticeId;\n\n var preconnect = document.createElement(\"link\");\n preconnect.rel = \"preconnect\";\n preconnect.as = \"script\";\n preconnect.href = sdkRoot;\n\n var dnsPrefetch = document.createElement(\"link\");\n dnsPrefetch.rel = \"dns-prefetch\";\n dnsPrefetch.as = \"script\";\n dnsPrefetch.href = sdkRoot;\n\n var loaderScript = document.createElement(\"script\");\n loaderScript.id = \"spcloader\";\n loaderScript.type = \"text/javascript\";\n loaderScript.async = true;\n loaderScript.charset = \"utf-8\";\n loaderScript.src = loaderUrl;\n\n var firstScript = document.getElementsByTagName(\"script\")[0];\n if (firstScript && firstScript.parentNode) {\n firstScript.parentNode.insertBefore(preconnect, firstScript);\n firstScript.parentNode.insertBefore(dnsPrefetch, firstScript);\n firstScript.parentNode.insertBefore(loaderScript, firstScript);\n } else {\n document.head.appendChild(preconnect);\n document.head.appendChild(dnsPrefetch);\n document.head.appendChild(loaderScript);\n }\n}\n\n/* ---------------------------------------------------------------------------\n * 6. Consent mapping -> Adobe Alloy\n * ------------------------------------------------------------------------- */\n\n\n// \u2500\u2500 Helper: map Didomi purposes \u2192 Alloy setConsent \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction applyDidomiConsent() {\n const userConfig = Didomi.getConfig().user || {};\n const userStatus = Didomi.getCurrentUserStatus();\n const purposes = userStatus.purposes || {};\n const consentStr = userStatus.consent_string || '';\n const regulation = userStatus.regulation || '';\n\n const userLocation = userConfig.country || '';\n\n const enabledPurposes = Object.values(purposes).filter((v) => v.enabled === true);\n const previousConsent = didomiGetCookie('s_consent') || '';\n if (regulation === \"gdpr\") { //GDPR\n var performance = enabledPurposes.some(v => v.id.includes('purPerformance'));\n var personalisation = enabledPurposes.some(v => v.id.includes('purPersonalisation'));\n var thirdParties = enabledPurposes.some(v => v.id.includes('purThirdParties'));\n //didomiSetCookie('s_userLocation', userLocation);\n didomiSetCookie('s_consent', userLocation + '|r:' + regulation + '|a:' + (performance ? 'y' : 'n') + '|p:' + (personalisation ? 'y' : 'n') + '|o:' + (thirdParties ? 'y' : 'n'));\n\n if (previousConsent !== (userLocation + '|r:' + regulation + '|a:' + (performance ? 'y' : 'n') + '|p:' + (personalisation ? 'y' : 'n') + '|o:' + (thirdParties ? 'y' : 'n'))) {\n collectConsent(userL
11ocation, regulation, (performance ? 'y' : 'n'), (personalisation ? 'y' : 'n'), (thirdParties ? 'y' : 'n'));\n }\n } else { //Non-GDPR\n //didomiSetCookie('s_userLocation', userLocation);\n didomiSetCookie('s_consent', userLocation + '|r:' + regulation + '|a:y|p:y|o:y');\n\n if (previousConsent !== (userLocation + '|r:' + regulation + '|a:y|p:y|o:y')) {\n collectConsent(userLocation, regulation, 'y', 'y', 'y')\n }\n }\n}\n\nfunction collectConsent(userLocation, regulation, performance, personalisation, thirdParties) {\n if (window.alloy) {\n //data collection based on user consent for EU visitors\n alloy(\"setConsent\", {\n \"consent\": [\n {\n \"standard\": \"Adobe\",\n \"version\": \"2.0\",\n \"value\": {\n \"collect\": { \"val\": performance },\n \"personalize\": { \"content\": { \"val\": personalisation } },\n \"share\": { \"val\": thirdParties },\n \"metadata\": { \"time\": new Date().toISOString() }\n }\n }\n ]\n });\n //collectEvent();\n } else {\n console.warn(\"Alloy is not available yet. Consent will be applied when Alloy is ready.\");\n }\n}\n\n\nfunction didomiAddOverlay() {\n if (!didomiMobileView) {\n let style = document.getElementById('didomi-custom-overlay-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'didomi-custom-overlay-style';\n style.textContent = `\n body.didomi-visual-lock > *:not([id^=\"didomi\"]):not(.didomi-popup-container):not(.didomi-notice-container) {\n pointer-events: none !important;\n user-select: none !important;\n }\n body.didomi-visual-lock::after {\n content: '';\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background: rgba(0, 0, 0, 0.6);\n z-index: 999998;\n pointer-events: none;\n }\n body.didomi-visual-lock [id^=\"didomi\"] {\n pointer-events: auto !important;\n position: relative;\n }\n `;\n document.head.appendChild(style);\n }\n document.body.classList.add('didomi-visual-lock');\n }\n}\nfunction didomiRemoveOverlay() {\n document.body.classList.remove('didomi-visual-lock');\n var style = document.getElementById('didomi-custom-overlay-style');\n if (style) style.remove();\n}\n\n/* ---------------------------------------------------------------------------\n * 7. Didomi ready / change listeners\n * ------------------------------------------------------------------------- */\n\n //Didomi to Adobe Alloy events \n // \u2500\u2500 Onload: apply existing consent or let Didomi show popup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nwindow.didomiOnReady = window.didomiOnReady || [];\n window.didomiOnReady.push(async function (Didomi) {\n //if NativeJSInterface exist means mobile app webview\n\n if (didomiMobileView ) {\n if(isAppCookieApplicable){\n if(didomiMobileAppConsent){\n //ifentify new app by checking s_consent exist in URL\n if (didomiGetCookie(\"fpid\")) {\n Didomi.setUser({\n organizationUserId: didomiGetCookie(\"fpid\") || ''\n });\n }\n const syncResult = await Didomi.syncUser();\n if (syncResult.statusApplied) {\n // Show your reassurance notice\n // Report the reassurance notice was shown to Didomi after dismiss\n console.log('syncResult.statusApplied: ' + syncResult.statusApplied);\n syncResult.syncAcknowledged();\n }\n }\n const consentStr = Didomi.getCurrentUserStatus().consent_string || '';\n var noRegulation = Didomi.getCurrentUserStatus().regulation !==\"gdpr\";\n var noConsentCookie = didomiGetCookie('s_consent') || '';\n console.log(\"Didomi ready, consent string: \" + consentStr +\" noRegulation: \" + noRegulation + \" noConsentCookie: \" + noConsentCookie);\n\n if (consentStr) {\n // Returning visitor \u2014 prior consent stored, apply it on load\n console.log(\"Prior consent stored, apply it on load\");\n applyDidomiConsent();\n } else if (noRegulation && !noConsentCookie) {\n console.log(\"No regulation and no s_consent cookie \u2014 apply full consent on load\");\n // Non-GDPR visitor with no s_consent cookie yet \u2014 apply default full consent immediately\n applyDidomiConsent();\n }\n }
11else{\n //ifentify old app based on version\n window.didomiConfig.notice.enable = false;\n }\n } else {\n //Normal browser - not mobile app webview \n const consentStr = Didomi.getCurrentUserStatus().consent_string || '';\n var noRegulation = Didomi.getCurrentUserStatus().regulation !==\"gdpr\";\n var noConsentCookie = didomiGetCookie('s_consent') || '';\n console.log(\"Didomi ready, consent string: \" + consentStr +\" noRegulation: \" + noRegulation + \" noConsentCookie: \" + noConsentCookie);\n\n if (consentStr) {\n // Returning visitor \u2014 prior consent stored, apply it on load\n console.log(\"Prior consent stored, apply it on load\");\n applyDidomiConsent();\n } else if (noRegulation && !noConsentCookie) {\n console.log(\"No regulation and no s_consent cookie \u2014 apply full consent on load\");\n // Non-GDPR visitor with no s_consent cookie yet \u2014 apply default full consent immediately\n applyDidomiConsent();\n }\n\n }\n\n // New visitor \u2014 no consent string, popup shows automatically\n});\n\n// \u2500\u2500 On change: re-apply whenever the user updates their choices \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nwindow.didomiEventListeners = window.didomiEventListeners || [];\nwindow.didomiEventListeners.push({\n event: 'consent.changed',\n listener: function () { \n console.log(\"consent.changed event fired\");\n applyDidomiConsent(); \n didomiRemoveOverlay(); \n }\n});\nwindow.didomiEventListeners.push({ \n event: 'notice.shown', \n listener: function () { \n console.log(\"notice.shown event fired\");\n didomiAddOverlay();\n }\n});\nwindow.didomiEventListeners.push({ \n event: 'notice.hidden', \n listener: function () { \n console.log(\"notice.hidden event fired\");\n didomiRemoveOverlay();\n }\n});",language:"javascript"}}]},{id:"RL3b3923721e2b46d3ba4071c6e713b5e4",name:"Page: BTSUPERINVEST #105",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:105}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return"/personal-banking/superannuation/bt-super-invest/mobile-apply"===(e=(e=e.replace(/\/content\/public\/wbc\/en/,"")).replace(/\.html$/,""))}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:'"use strict";!function(){var a=function(a,b){var c=[{name:"boundary",value:"https://banking.westpac.com.au/ng/onboard/app/#/app/investor/new-account/what-to-expect?accountType=super"},{name:"htsm",value:"https://banking.westpac.com.au/ng/onboard/app/#/app/investor/new-account/what-to-expect?accountType=super"}],d=new Date,e=null,f=a||2;d.setTime(d.getTime()+60*f*60*1e3);for(var g=0;g<c.length;g++){var h=c[g].name,i=c[g].value;document.cookie=h+"="+i+";domain=.westpac.com.au;path=/;expires="+d.toUTCString(),h.indexOf("boundary")>-1&&null===e?e=i:"undefined"!=typeof b&&null!==b&&h.indexOf(b)>-1&&(e=i)}"undefined"!=typeof e&&null!==e&&(window.location=e)},b=new RegExp("[?&]action=([^&]*)").exec(window.location.search),c=b&&decodeURIComponent(b[1].replace(/\\+/g," ").replace(/[^\\w]/g," "));c&&"applyAuthenticated"===c&&a()}();/* Version:0.13.847 */',language:"javascript"}}]},{id:"RL3c1ff439776e40f38c82cd8f3b8002e4",name:"Event: LinkedIn call back form",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"pageAction"},ruleOrder:56}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"^(home loan enquiry|cons:hl enquiry)$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%pageAction%",rightOperand:"^(start|complete)$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%eventKey%",rightOperand:"^(wbc|stg|bom|bsa):(desktop|mob|tab)_enquiry_(home loan enquiry|cons:hl enquiry)(\\s?)_(enquiry.*)"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC095794f7df904874b44e6dc6cac1c19b-source.min.js",language:"javascript",isExternal:!0}},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC9deb0ba56e0d414d84ff1222d638e7c9-source.min.js",language:"javascript",isExternal:!0}}]}
11,{id:"RL3fd5ce21aa9746bba844f3ad8f204350",name:"NIKE Campaign Code Support Script",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return""!=(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""))&&("/personal-banking/bank-accounts"==e||"/personal-banking/bank-accounts/savings-accounts/spend-save-ntb"==e||"/personal-banking/bank-accounts/savings-accounts/life"==e||"/personal-banking/bank-accounts/life-choice"==e||"/personal-banking/bank-accounts/under-21s-and-students/students"==e||"/personal-banking/bank-accounts/under-21s-and-students/young-adults"==e)}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC3ec4aa3320bf443c8b39884a387f87f4-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL43f330de1352446086f52d98902dee72",name:"Page: Pixel-AAM-DoubleClick-homepage Tag #65",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:65}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){return!(!helper.isHomePage()||_satellite.cookie.get("u_idsy"))}}},{ 12modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC5f3c1011687a45cf928510f06f5e0adb-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL4dd9ea6d05ed4d6ebec259b173e117f0",name:"Event:Google_Ads_SEM_AAM_Trigger #55",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){if(_satellite.cookie.get("aam_sem_gads"))return!0}}},{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return"/personal-banking/bank-accounts"==(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))||"/personal-banking/bank-accounts/transaction"==e||"/personal-banking/bank-accounts/transaction/choice"==e||"/personal-banking/bank-accounts/transaction/debit-mastercard"==e||"/personal-banking/bank-accounts/transaction/choice/under-21"==e||"/personal-banking/bank-accounts/transaction/choice/tertiary-student"==e||"/personal-banking/bank-accounts/savings-accounts"==e||"/personal-banking/bank-accounts/savings-accounts/rates"==e||"/personal-banking/bank-accounts/savings-accounts/esaver"==e||"/personal-banking/bank-accounts/savings-accounts/reward-saver"==e||"/personal-banking/bank-accounts/term-deposit"==e||"/personal-banking/bank-accounts/term-deposit/rates"==e||"/personal-banking/bank-accounts/moving-to-australia"==e||"/personal-banking/bank-accounts/transaction/choice/migrants"==e||"/personal-banking/home-loans"==e||"/personal-banking/home-loans/calculator/mortgage-repayment"==e||"/personal-banking/home-loans/calculator"==e||"/personal-banking/credit-cards"==e||"/personal-banking/credit-cards/low-rate"==e||"/personal-banking/credit-cards/low-fee"==e||"/personal-banking/credit-cards/low-fee/55-day"==e||"/personal-banking/credit-cards/low-fee/55-day-platinum"==e||"/personal-banking/credit-cards/reward"==e||"/personal-banking/credit-cards/reward/altitude"==e||"/personal-banking/credit-cards/reward/altitude-platinum"==e||"/personal-banking/credit-cards/reward/altitude-black"==e||"/personal-banking/credit-cards/comparison"==e||"/personal-banking/credit-cards/balance-transfer"==e||"/creditcards"==e||"/homeloans"==e||"/homeloans/fixedrate"==e||"/homeloans/variablerate"==e||"/personal-banking/home-loans/calculator/stamp-duty-calculator"==e||"/personal-banking/home-loans/all-interest-rates"==e||"/personal-banking/home-loans/variable-interest-rates"==e||"/personal-banking/home-loans/fixed-rate-loans-interest-rates"==e||"/personal-banking/home-loans/our-home-loans"==e||"/personal-banking/home-loans/home-loan-package"==e||"/personal-banking/home-loans/variable"==e||"/personal-banking/home-loans/variable/mortgage-offset-accounts"==e||"/personal-banking/home-loans/variable/first-home-loan"==e||"/personal-banking/home-loans/fixed"==e||"/personal-banking/home-loans/fixed/fixed-home-loan"==e||"/personal-banking/home-loans/first-home"==e||"/personal-banking/home-loans/investing-in-property"==e||"/personal-banking/pers
12onal-loans"==e||"/personal-banking/personal-loans/unsecured-personal-loan"==e||"/personal-banking/personal-loans/car-loan"==e||"/personal-banking/personal-loans/flexi-loan"==e||"/personal-banking/personal-loans/tools-calculators-rates"==e||"/personal-banking/personal-loans/borrowing-power-calculator"==e||"/personal-banking/personal-loans/compare"==e||"/business-banking"==e||"/business-banking/bank-accounts"==e||"/business-banking/savings-accounts"==e||"/business-banking/bank-accounts/one-account"==e||"/business-banking/business-loans"==e||"/business-banking/business-loans/business-loans-interest-rate"==e||"/business-banking/business-loans/small-business-loans/business-loan"==e||"/business-banking/credit-cards"==e||"/business-banking/merchant-services"==e||"/personal-banking/credit-cards/low-rate-cards"==e||"/personal-banking/credit-cards/low-rate-cards/westpac-lite-card"==e||"/personal-banking/credit-cards/low-rate-cards/low-rate"==e||"/home-loans/calculator/stamp-duty-calculator"==e||"/home-loans/all-interest-rates"==e||"/home-loans/calculator/mortgage-repayment"==e||"/personal-loans/borrowing-power-calculator"==e||"/credit-cards/compare-credit-cards"==e||"/personal-loans/compare"==e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC7efe00b6020440ce99ed2bbf6d57732e-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL5205f275740c45688ba677fc1f8069db",name:"Event:webSDK_homloan_enquiryForm #56",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"AnalyticsEvent_pageKey"},ruleOrder:56}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"equals"},leftOperand:"%Page_Type%",rightOperand:"enquiry"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"^cons\\:hl\\senquiry$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%pageAction%",rightOperand:"(start|complete)"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCac6194d4571d4f0eb2380db6351f3f05-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL523c656999624a0fbf6460cc1aea5e97",name:"Page: LinkedIn Tag",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return"/personal-banking/home-loans/next-home/manage-virtual-inspection"==(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""))||"/personal-banking/home-loans/all-interest-rates/tables"==e||"/personal-banking/home-loans/investing-in-property/tips-for-buying-an-investment-property"==e||"/personal-banking/home-loans/manage-home-loan/repayment-options-to-manage-cashflow"==e||"/personal-banking/home-loans/investing-in-property/managing-and-renewing-a-tenancy"==e||"/personal-banking/bank-accounts/savings-accounts/spend-save-ntb"==e||"/personal-banking/superannuation/bt-super-for-life"==e||"/personal-banking/superannuation/self-managed-superannuation-accounts"==e||"/personal-banking/superannuation/self-managed-superannuation-accounts/setup-smsf"==e||"/personal-banking/superannuation/self-managed-superannuation-accounts/smsf-investment-platform"==e||"/personal-banking/bank-accounts/transaction/choice/new-arrivals"==e||"/personal-banking/online-banking/making-the-most/new-payments-platform"==e||"/personal-banking/credit-cards/reward/altitude-qantas-platinum"==e||"/personal-banking/credit-cards/reward/altitude-platinum"==e||"/personal-banking/credit-cards/reward/altitude-qantas-black"==e||"/personal-banking/credit-cards/reward/altitude-black"==e||"/personal-banking/credit-cards/reward/altitude-qantas-platinum/summary"==e||"/personal-banking/credit-cards/reward/altitude-qantas-black/summary"==e||"/personal-banking/credit-cards/reward/altitude-platinum/summary"==e||"/personal-banking/credit-cards/reward/altitude-black/summary"==e||"/personal-banking/credit-cards"==e||"/personal-banking/credit-cards/reward"==e||"/personal-banking/insurance/home-insurance/home-and-contents-insurance"==e||"/business-banking"==e||"/business-banking/bank-accounts"==e||"/business-banking/industries/agribusiness"==e||"/business-banking/bank-accounts/transaction-account"==e||"/business-banking/bank-accounts/one-account/media-offer"==e||"/business-banking/bank-accounts/one-account"==e||"/business-banking/biz-invoice"==e||"/business-banking/merchant-services/presto-payments-lp"==e||"/business-banking/merchant-services/eftpos"==e||"/business-banking/merchant-services/eftpos/presto-smart"==e||"/business-banking/business-loans"==e||"/business-banking/business-loans/equipment-finance"==e||"/business-banking/business-loans/equipment-finance/car-finance"==e||"/business-banking/business-loans/equipment-finance/equipment-finance"==e||"/business-banking/business-loans/small-business-loans/business-loan"==e||"/business-banking/business-loans/small-business-loans/unsecured-business-overdraft"==e||"/business-banking/business-loans/unsecured-business-loans-overdrafts"==e||"/business-banking/business-loans/small-business-loans/business-overdraft"==e||"/business-banking/business-loans/small-business-loans/unsecured-business-overdraft"==e||"/business-banking/business-loans/small-business-loans/unsecured-business-loan"==e||"/business-banking/small-business-relief"==e||"/business-banking/industries/professional-business-services"==e||"/business-banking/industries/healthcare"==e||"/business-banking/industries/healthcare/lending-policy"==e||"/business-banking/biz-invoice/features-benefits/bpay"==e||"/business-banking/superannuation/super-profile"==e||"/business-banking/superannuation/bt-super"==e||"/business-banking/business-loans/secured-loan-offer"==e||"/business-banking/industries/property"==e||"/business-banking/business-loans/broker"==e||"/business-banking/industries/professional-business-services/products-services"==e||"/business-banking/industries/professional-business-services/accounting-practices"==e||"/business-banking/industries/professional-business-services/legal-firms"==e||"/business-banking/industries/professional-business-services/lending-policy"==e||"/business-banking/industries/professional-business-services/insights"==e||"/business-banking/industries/professional-business-services/contact"==e||"/business-banking/merchants-and-payments/eftpos/eftpos-fees"==e||"/business-banking/merchants-and-payments/eftpos/eftpos-now"==e||"/business-banking/merchants-and-payments/flat-rate-pricing"==e||"/business-banking/loans-finance/business-overdraft"==e||"/security/protect-yourself-and-your-business/security-wellbeing-check"==e||"/security/types-of-scams/top-5-scams"==e||"/brokers/helping"==e||"/international-travel/moving-to-australia"==e||"/help/disaster-relief/coronavirus/business"==e||"/brokers/home/covid-19-support"==e||"/brokers/covid-19-support"==e||"/brokers/rates-offers"==e||"/yourpb"==e||"/personal-banking/private-banking-services/yourpb"==e||"/personal-banking/bank-accounts/new-to-australia/savings-account"==e||"/personal-banking/bank-accounts/transaction/new-arrivals"==e||"/brokers/refinance"==e||"/business-banking/bank-accounts/business-one"==e||"/business-banking/bank-accounts/business-one-plus"==e||"/business-banking/bank-accounts/business-one-plus/partner-offers"==e||"/business-banking/transaction-accounts"==e||"/business-banking/transaction-accounts/business-one"==e||"/business-banking/transaction-accounts/business-one-plus"==e||"/business-banking/transaction-accounts/business-one-plus/partner-offers"==e||"/brokers/refinance"==e||"/brokers/ideas-hub/self-employed"==e||"/brokers/ideas-hub/first-home-buyer"==e||"/brokers"==e||"/brokers/ideas-hub/investor"==e||"/about-westpac/careers/technology/techprofessionals"==e||"/personal-banking/private-banking-services"==e||"/personal-banking/private-banking-services/why-wpb"==e||"/personal-banking/private-banking-services/lending-and-property"==e||"/personal-banking/private-banking-services/gis"==e||"/personal-banking/private-banking-services/our-clients"==e||"/personal-banking/private-banking-services/news-and-media"==e||"/personal-banking/private-banking-services/awards-and-recognition"==e||"/about-westpac/careers/technology/gcengineers"==e||"/brokers/products"==e||"/business-banking/international-trade/foreign-exchange-solutions"==e||"/about-westpac/careers"==e||"/brokers/policy"==e||"/corporate-banking/partners-building-sustainable-future"==e||"/international-travel/international-transfers/fixed-fx"==e||"/business-banking/international-trade/international-payments/fixed-fx"==e||"/business-banking/business-loan-qantas-points"==e||"/home-loans/all-interest-rates/tables"==e||"business-banking"==pageDetails.siteSection&&"business-help"==pageDetails.siteSubSection}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC1a28348985764b7cb86bb798fbe50658-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL536bee6468884dbe853c885f22083b93",name:"Page: Impact Pixel",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""),["/business-banking/small-business-relief","/help/disaster-relief/coronavirus/business","/business-banking"].indexOf(e)>=0||"personal-banking"==pageDetails.siteSection&&"insurance"==pageDetails.siteSubSection||"personal-banking"==pageDetails.siteSection&&"credit-cards"==pageDetails.siteSubSection||"personal-banking"==pageDetails.siteSection&&"bank-accounts"==pageDetails.siteSubSection||"personal-banking"==pageDetails.siteSection&&"personal-loans"==pageDetails.siteSubSection||"personal-banking"==pageDetails.siteSection&&"home-loans"==pageDetails.siteSubSection||"personal-banking"==pageDetails.siteSection&&"superannuation"==pageDetails.siteSubSection||"business-banking"==pageDetails.siteSection&&"bank-accounts"==pageDetails.siteSubSection||"business-banking"==pageDetails.siteSection&&"savings-accounts"==pageDetails.siteSubSection||"business-banking"==pageDetails.siteSection&&"credit-cards"==pageDetails.siteSubSection||"business-banking"==pageDetails.siteSection&&"business-loans"==pageDetails.siteSubSection||"business-banking"==pageDetails.siteSection&&"merchants-and-payments"==pageDetails.siteSubSection||"business-banking"==pageDetails.siteSection&&"biz-invoice"==pageDetails.siteSubSection||"business-banking"==pageDetails.siteSection&&"superannuation"==pageDetails.siteSubSection||"business-banking"==pageDetails.siteSection&&"online-banking"==pageDetails.siteSubSection||"international-travel"==pageDetails.siteSection||"credit-cards"==pageDetails.siteSection||"bank-accounts"==pageDetails.siteSection||"personal-loans"==pageDetails.siteSection||"home-loans"==pageDetails.siteSection}}},{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=_satellite.getVar("pageQueryClickId"),n=_satellite.getVar("sessionPageViewCount");if(e||1===n)return!0}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC02201115bd8b4f2fa472a70cff8bfde3-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL598aa34b430f4592b7fa0d3240d69d20",name:"Event: Gtag Industries Start form - Performics ",events:[{modulePath:"core/src/lib/events/click.js",settings:{elementSelector:"#content > div:nth-child(3) > div > div > div > div:nth-child(5) > div > div > div > div.col-lg-12.col-md-12.col-sm-12.calculator-body > div.row.id-wg-business-toggle > div.bottom-margin0-xs.bottom-margin4-sm.col-lg-5.col-md-5.col-sm-6.col-xs-12 > div.btn-group.btn-block > label.btn-group-item",bubbleFireIfParent:!0,bubbleFireIfChildFired:!0},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return window.location.hash&&(e=(window.location.pathname+window.location.hash).toLowerCase().replace(/\/$/,"")),"/business-banking/industries/agribusiness_august_test"==(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))||"/business-banking/industries/healthcare_august_test"==e||"/business-banking/industries/property_august_test"==e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%pageAction%",rightOperand:"^(start)$"}},{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){if("false"!==(_satellite.getVar("Agri_form_gtag_flag")||""))return!0}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC0638d9ae84924023b211215841e091e3-source.min.js",language:"javascript",isExternal:!0}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC6037dac696a1415180e5fb7003ab0ae7-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL5ce45c52c08c4839a16eccf5437dda90",name:"Page: Snapchat Pixel",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,"");var n=["/personal-banking/bank-accounts/transaction/choice","/personal-banking/bank-accounts/transaction/choice/under-21","/personal-banking/bank-accounts/transaction/choice/tertiary-student","/personal-banking/mobile-wallets/apple-pay","/personal-banking/bank-accounts/transaction/digital-card","/personal-banking/online-banking/making-the-most/rewards-and-offers/offers","/personal-banking/online-banking/insights-hub/spend-insights-and-budgeting-tools","/personal-banking/bank-accounts/savings-accounts/life","/personal-banking/bank-accounts/savings-accounts/esaver","/personal-banking/bank-accounts/savings-accounts/bump","/personal-banking/bank-accounts/savings-accounts/get-started-life","/personal-banking/bank-accounts/savings-accounts/spend-save-ntb","/personal-banking/credit-cards/low-rate-cards","/personal-banking/credit-cards/reward/altitude-platinum","/personal-banking/credit-cards/reward/altitude-black","/personal-banking/credit-cards/low-rate-cards/westpac-lite-card","/business-banking/biz-invoice/features-benefits/bpay","/business-banking/bank-accounts","/business-banking/bank-accounts/one-account","/business-banking/bank-accounts/business-one-high-plan","/business-banking/business-loans","/business-banking/business-loans/equipment-finance","/business-banking/business-loans/compare-business-loans","/business-banking/business-loans/small-business-loans/unsecured-business-loan","/business-banking/business-loans/sme-unsecured-lending-covid-19-offer","/business-banking/business-loans/sme-ntb-unsecured-lending-covid-19-offer","/business-banking/business-loans/small-business-loans/unsecured-business-
12overdraft","/business-banking/business-loans/sme-unsecured-lending-covid-19-offer","/business-banking/business-loans/sme-ntb-unsecured-lending-covid-19-offer","/security","/help/disaster-relief/coronavirus","/help/lifemoments","/help/lifemoments/youth/wendy","/lifeseventful","/business-banking/business-help","/business-banking/biz-invoice","/business-banking/business-loans/small-business-loans/business-loan","/personal-banking/bank-accounts/youth/youth-safer-banking","/personal-banking/bank-accounts/transaction/kids-and-teens","/personal-banking/bank-accounts/youth"];return"wendy.westpac.com.au"===location.host&&"/"===location.pathname||n.indexOf(e)>=0||void 0}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC39122ae90aa34b4cab73fb8eaff9ada9-source.min.js",language:"javascript",isExternal:!0}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC4e146db529ef4a52bdb51275245cb011-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL5da3605c079d4787b67598eed07de3e4",name:"Page:Pixel-AAM-Facebook #70",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:70}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){if(_satellite.cookie.get("aam_fb_ads"))return!0}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC6a191593335940f0b0287750e3893bde-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL657d3fba7d314b5087f6917d63fcb02f",name:"Page: appDynamics Homepage",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return""==(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""))||"/home"==e}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"if(!_satellite.getVar(\"adrum\")) {\n\t_satellite.setVar(\"adrum\",\"true\");\n}\n\nwindow['adrum-start-time'] = new Date().getTime();\n(function(config){\n// config.appKey = 'SY-AAB-HMX'; //SIT\n// config.appKey = 'SY-AAB-JFB'; //UAT\n config.appKey = 'SY-AAB-JHK'; //PROD\n config.adrumExtUrlHttp = 'https://www.westpac.com.au/content/dam/public/external-scripts/global/appdynamics'; //Self-hosted\n config.adrumExtUrlHttps = 'https://www.westpac.com.au/content/dam/public/external-scripts/global/appdynamics'; //Self-hosted\n //config.adrumExtUrlHttp = 'http://cdn.appdynamics.com';\n //config.adrumExtUrlHttps = 'https://cdn.appdynamics.com';\n config.beaconUrlHttp = 'http://syd-col.eum-appdynamics.com';\n config.beaconUrlHttps = 'https://syd-col.eum-appdynamics.com';\n config.resTiming = {\"bufSize\":200,\"clearResTimingOnBeaconSend\":true};\n config.maxUrlLength = 512;\n})(window['adrum-config'] || (window['adrum-config'] = {}));\nvar script = document.createElement('script');\nscript.src = 'https://www.westpac.com.au/content/dam/public/external-scripts/global/appdynamics/adrum.js'; //Self-hosted\n//script.src = '//cdn.appdynamics.com/adrum/adrum-latest.js';\ndocument.head.appendChild(script);",language:"javascript"}}]},{id:"RL683e0761c71a4d0aa8db6ac60dcc9bbf",name:"Event: Gtag call back form - Performics - Set Conversion Label",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"eventKey"},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"^(bus:eftpos machines|home loan enquiry|bus:loan and finance|cons:hl enquiry|cons:private-bank|cons:private-wealth|bus:ba|bus:sme((\\s)ntb)? unsecured lending)$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%pageAction%",rightOperand:"^(start|complete)$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%eventKey%",rightOperand:"^(wbc|stg|bom|bsa):(desktop|mob|tab)_enquiry_(bus:eftpos-machines|home loan enquiry|bus:loan-and-finance|cons:hl enquiry|cons:private-bank|bus:ba|cons:private-wealth|bus:sme((\\s)ntb)? unsecured lending)((_your-details|_submitted)|(\\s?)_(enquiry.*))"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCa0a0773b90a04ec19e900d15f01e16f2-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL734c934b7ffa447e8e529ad12aaf0689",name:"DDO Pages - FCA - On Select of Currency ",events:[{modulePath:"core/src/lib/events/click.js",settings:{elementSelector:'[role="option"][data-currency
12]',bubbleFireIfParent:!0,bubbleFireIfChildFired:!0},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/pathAndQuerystring.js",settings:{paths:[{value:"business-banking/bank-accounts/foreign-currency-account/summary",valueIsRegex:!0}]}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCb462b26ab13040bba05e7bc54a7987c3-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL741bcecb4f6b4c97b92ca7a1d3953d0d",name:"mBox:webSDK_SendEvent_targetImpression #XX",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC141ce9d52622464786d69d1a3fc52057-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL7a597ac8b98048e18a235c99b052ad80",name:"Event: Get Full Report Button tagging(Gtag+FB) - ClickEvent - Set Conversion Label",events:[{modulePath:"core/src/lib/events/click.js",settings:{elementSelector:"#content > div:nth-child(7) > div > div > div:nth-child(2) > div > div > div > div > div > div.hide-div.sel_property-insights-form.tool-calc > div.row.bottom-margin7-xs > div > div > div > div.action-button-left.custom-block > div > div > a.btn.btn-primary.basic.hidden-xs",bubbleFireIfParent:!0,bubbleFireIfChildFired:!0},ruleOrder:56}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return window.location.hash&&(e=(window.location.pathname+window.location.hash).toLowerCase().replace(/\/$/,"")),"/personal-banking/home-loans/property-research/#/qs-suburb-profile"==(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))||"/personal-banking/home-loans/property-research/#/qs-property-profile"==e||"/home-loans/property-research/#/qs-suburb-profile"==e||"/home-loans/property-research/#/qs-property-profile"==e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC4a00c550bef4427fb4af2db1ffbc7124-source.min.js",language:"javascript",isExternal:!0}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCc8094d8c49984b4ab5fad477b132f9dc-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL8746bf3afc1a4ba39fb3ca823f4e2ea1",name:"Page:Apple Business Chat #90",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:90}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""),"personal-banking"==pageDetails.siteSection&&"home-loans"==pageDetails.siteSubSection||"home-loans"==pageDetails.siteSection}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC49b2f1cc9e074344a38a77e19ac09d4a-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL8b5a6bf7af6e4786bc9ccc3f61049f35",name:"Gtag Extension - Send Data",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"finalFlString"},ruleOrder:58}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTruthy"},leftOperand:"%finalFlString%"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"acronym-gtag.js/src/lib/actions/event.js",settings:{name:"conversion",options:[["u1","%brand%"],["u2","%productIDcategory%"],["u3","%productIDfamily%"],["u4","%productIDname%"],["u5","%Page_Step%"],["u6","%Page_Type%"],["u7","%Site_Domain%"],["u8","%productIDprod%"],["u9","%Site_SubSubSection%"],["u10","%siteExperience%"],["u11","%Site_SubSubSubSection%"],["u12","%Site_Section%"],["u13","%Site_SubSection%"],["u14","%productSubcategory%"],["u15","%form_Name%"],["u16","%formIsSTP%"],["u17","%formVariant%"],["u18","%journeyType%"],["u19","%accountType%"],["u20","%businessType%"],["u21","%encryptedID%"],["u22","%deviceOperatingSystem%"],["u23",""],["u24","%formStatus%"],["u25","%state
12%"],["u26","%age%"],["u27","%gender%"],["u28","%maritalStatus%"],["u29","%promoCode%"],["u30","%appReferenceId%"],["u31","%pageURL%"],["u32","%analyticsID%"],["u33","%approvedCreditLimit%"],["u34","%formStatus%"],["u35","%merch%"],["u36","%mcmid%"],["u37","%ordinal%"]],accounts:{1730081529264:{label:"%finalFlString%",enabled:!0}},callback:function(){"start"==pageDetails.pageAction&&("ntb hl enquiry"==pageDetails.productID[0].ProductName?_satellite.setVar("codeExecutedforntb",!0):"etb hl enquiry"==pageDetails.productID[0].ProductName?_satellite.setVar("codeExecutedforetb",!0):"switch hl enquiry"==pageDetails.productID[0].ProductName&&_satellite.setVar("codeExecutedforswitch",!0))}}}]},{id:"RL8db41a95311c40498e754e955c2fa0b0",name:"DDO Pages - On Business Type Button Click",events:[{modulePath:"core/src/lib/events/click.js",settings:{elementSelector:'div.btn-group[role="radiogroup"] .btn-group-item[role="radio"]',bubbleFireIfParent:!0,bubbleFireIfChildFired:!0},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"business-banking/transaction-accounts/business-one/summary",valueIsRegex:!0},{value:"business-banking/transaction-accounts/business-one-plus/summary",valueIsRegex:!0},{value:"business-banking/savings-accounts/cash-reserve/summary",valueIsRegex:!0},{value:"business-banking/bank-accounts/foreign-currency-account/summary",valueIsRegex:!0}]}},{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=["business-banking/transaction-accounts/business-one/summary","business-banking/transaction-accounts/business-one-plus/summary","business-banking/savings-accounts/cash-reserve/summary","business-banking/bank-accounts/foreign-currency-account/summary"];document.addEventListener("click",(function(n){var t=n.target.closest('[role="radiogroup"]');if(t){var a=t.closest(".toggle-switch-wrapper");if(a){var r=a.querySelector(".bodycopy h2, h2");if(r&&(r.textContent||"").replace(/\s+/g," ").trim().toLowerCase().includes("are you a sole trader")){var s=t.querySelector('[role="radio"][aria-checked="true"], [aria-checked="true"]');if(s){var i=(s.textContent||"").replace(/\s+/g," ").trim().toLowerCase();if("yes"===i)pageDetails.businessType="sole trader",window.ddoBusinessType="sole trader";else if("no"===i){var o=window.location.pathname,c=e.some((function(e){return o.includes(e)}));pageDetails.businessType=c?"org":"",window.ddoBusinessType=c?"org":""}return!0}}}}}))}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{ 13source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC3e0c04e6ddb44e2592bc8f97b1caabf1-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL8e273b6ecafd4900b972354b90c09dda",name:"Page:Live Chat LE:Mobile & Tab: Onload #50",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%siteExperience%",rightOperand:"^(tab|mob)$"}},{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""),1!=helper.isHomePage()&&"/personal-banking/home-loans/call-back"!=e&&"/home-loans/call-back"!=e&&("/news/making-news/2017/10/hartzer-says-home-loan-switch-is-on"==e||"/security/how-to-report"==e||"/security/live-specialist"==e||"/security/how-we-protect-you/westpac-id-secure"==e||"international-travel"==pageDetails.siteSection||"personal-banking"==pageDetails.siteSection||"business-banking"==pageDetails.siteSection||"help"==pageDetails.siteSection||"all-online-services"==pageDetails.siteSection||"contact-us"==pageDetails.siteSection||"faq"==pageDetails.siteSection||"about-westpac"==pageDetails.siteSection&&"sustainability"==pageDetails.siteSubSection)}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC0e63a9daa0ff406e9334dfa7b3fdf720-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL92a6080fb4e54c3cb2a4e4913a5904ed",name:"Event:webSDK_cons-bus_enquiryForm_error",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"AnalyticsEvent_pageKey"},ruleOrder:56}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"equals"},leftOperand:"%Page_Type%",rightOperand:"enquiry"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"bus\\:loan\\sand\\sfinance|cons\\:hl\\sproperty\\
13sresearch|cons\\:private\\-bank|cons\\:alumni\\sform|cons\\:wpb|bus\\:ad|home\\sloan\\sretention\\senquiry|bus\\:eftpos machines|bus\\:hlr|cons\\:eoi|cons\\:cpp|bus\\:request\\-callback\\-(etb|ntb|nst)"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%eventKey%",rightOperand:"^(wbc|stg|bom|bsa):(desktop|mob|tab)_enquiry_(home loan enquiry|kick start enquiry|cons:call back|cons:hl-property-research|cons:private-bank|bus:hlr|cons:wpb|cons:cpp|bus:request-callback-(etb|ntb))(\\s?)_(error.*)"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCf362b972ddef49feb1003f7637e8d064-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL930a219e33454aa49a2260072670b056",name:"Event: Gtag Calculators Button tagging - ClickEvent Based",events:[{modulePath:"core/src/lib/events/click.js",settings:{elementSelector:"#content > div.calc-body > div > div > div > div > div.row.bottom-margin7-xs > div > div.col-lg-7.col-md-7.col-sm-8.button-container > div.action-button-right.custom-block > div > div > a.btn.btn-primary.basic.hidden-xs",bubbleFireIfParent:!0,bubbleFireIfChildFired:!0},ruleOrder:56}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return window.location.hash&&(e=(window.location.pathname+window.location.hash).toLowerCase().replace(/\/$/,"")),"/personal-banking/home-loans/calculator/maximum-borrowing-calculator"==(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCd920d0922354404b8ed81af8c2e90cda-source.min.js",language:"javascript",isExternal:!0}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC9b7b4783192848a09da05c0259e6ba4b-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL947b5fc3a15a43558577d8e935495835",name:"Page: Facebook Pixel - PageView #90",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:90}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return window.location.hash&&(e=(window.location.pathname+window.location.hash).toLowerCase().replace(/\/$/,"")),e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""),"business-banking"===pageDetails.siteSection?"/business-banking/loans-finance/bank-guarantee/enquiry"!==e&&"/business-banking/loans-finance/enquiry"!==e&&"/business-banking/merchants-and-payments/get-started-merchant-services/ntb-enquiry"!==e:"/personal-banking/bank-accounts/transaction"==e||"/personal-banking/bank-accounts/transaction/choice/under-21"==e||"/personal-banking/bank-accounts/transaction/choice"==e||"/personal-banking/bank-accounts"==e||"/personal-banking/bank-accounts/transaction/choice/wallet-dance"==e||"/personal-banking/bank-accounts/transaction/debit-mastercard/rollmore"==e||"/personal-banking/bank-accounts/transaction-history"==e||"/personal-banking/bank-accounts/card-hold"==e||"/personal-banking/bank-accounts/eStatements"==e||"/personal-banking/bank-accounts/savings-accounts"==e||"/personal-banking/bank-accounts/savings-accounts/life"==e||"/personal-banking/bank-accounts/savings-accounts/esaver"==e||"/personal-banking/bank-accounts/savings-accounts/bump"==e||"/personal-banking/bank-accounts/life-choice"==e||"/personal-banking/bank-accounts/transaction/choice/tertiary-student"==e||"/personal-banking/bank-accounts/term-deposit"==e||"/personal-banking/bank-accounts/savings-accounts/spend-save-ntb"==e||"/personal-banking/bank-accounts/spend-save-etb"==e||"/personal-banking/bank-accounts/spend-save-etb1"==e||"/personal-banking/bank-accounts/spend-save-nta"==e||"/personal-banking/bank-accounts/spend-save-reward"==e||"/personal-banking/bank-accounts/why-westpac/hotel-deals"==e||"/personal-banking/bank-accounts/plant-a-tree"==e||"/personal-banking/bank-accounts/savings-accounts/get-started-life"==e||"/personal-banking/bank-accounts/transaction/digital-card"==e||"/personal-banking/bank-accounts/tax-time-accounts"==e||"/personal-banking/bank-accounts/transaction/choice/summary"==e||"/personal-banking/bank-accounts/savings-accounts/life/summary"==e||"/personal-banking/bank-accounts/get-started"==e||"/personal-banking/bank-accounts/savings-accounts/get-started-life"==e||"/personal-banking/bank-accounts/savings-accounts/spend-save-bonus-interest"==e||"/personal-banking/bank-accounts/savings-accounts/savings-goals"==e||"/personal-banking/bank-accounts/spend-save-reward-nt"==e||"/personal-banking/bank-accounts/transaction/choice/new-arrivals"==e||"/personal-banking/bank-accounts/transaction/debit-mastercard"==e||"/personal-banking/bank-accounts/transaction/choice/under-30"==e||"/personal-banking/credit-cards"==e||"/personal-banking/credit-cards/comparison"==e||"/personal-banking/credit-cards/low-rate-cards/low-rate"==e||"/personal-banking/credit-cards/low-rate-cards/westpac-lite-card"==e||"/personal-banking/credit-cards/reward/altitude-platinum"==e||"/personal-banking/credit-cards/reward/altitude-black"==e||"/personal-banking/credit-cards/low-fee/55-day-platinum"==e||"/personal-banking/credit-cards/low-rate/affiliateexclusive"==e||"/personal-banking/credit-cards/low-rate-cards/westpac-lite-card/affiliate"==e||"/personal-banking/credit-cards/reward/altitude-platinum/affiliate"==e||"/personal-banking/credit-cards/reward/altitude-black/affiliate"==e||"/personal-banking/credit-cards/reward/altitude-black/affiliate2"==e||"/personal-banking/credit-cards/low-fee/55-day-platinum/affiliate"==e||"/personal-banking/credit-cards/reward/americanexpress-black"==e||"/personal-banking/credit-cards/reward/americanexpress-platinum"==e||"/personal-banking/credit-cards/low-fee/low-fee-card"==e||"/personal-banking/credit-cards/low-fee/low-fee-platinum-card"==e||"/personal-banking/credit-cards/low-fee"==e||"/personal-banking/credit-cards/reward"==e||"/personal-banking/credit-cards/low-rate-cards"==e||"/personal-banking/credit-cards/smartplan"==e||"/personal-banking/credit-cards/reward/altitude-black/qantas"==e||"/personal-banking/credit-cards/balance-transfer-cards"==e||"/personal-banking/credit-cards/americanexpress/altitude-black/affiliate"==e||"/personal-banking/credit-cards/americanexpress/altitude-platinum/affiliate"==e||"/personal-banking/credit-cards/velocity"==e||"/personal-banking/credit-cards/manage/rewards/economy-x"==e||"/personal-banking/credit-cards/manage/rewards/velocity-faqs"==e||"/personal-banking/credit-cards/reward/altitude-platinum/bonusgiftcard"==e||"/personal-banking/credit-cards/reward/altitude-platinum/balance-transfer/qantas"==e||"/personal-banking/credit-cards/reward/altitude-platinum/balance-transfer/velocity"==e||"/personal-banking/credit-cards/reward/altitude-platinum/balance-transfer/altitude"==e||"/personal-banking/credit-cards/reward/altitude-platinum/velocity"==e||"/personal-banking/credit-cards/reward/altitude-black/velocity"==e||"/personal-banking/credit-cards/reward/altitude-qantas-black"==e||"/personal-banking/credit-cards/reward/altitude-qantas-platinum"==e||"/personal-banking/credit-cards/manage/ready-to-travel"==e||"/personal-banking/credit-cards/interest-free/flex-card"==e||"/personal-banking/credit-cards/low-rate-cards/low-rate/cashback-summary"==e||"/personal-banking/credit-cards/low-rate-cards/low-rate/summary"==e||"/personal-banking/credit-cards/low-rate-cards/westpac-lite-card/summary"==e||"/personal-banking/credit-cards/low-fee/summary"==e||"/personal-banking/credit-cards/reward/altitude-platinum/summary"==e||"/personal-banking/credit-cards/reward/altitude-black/summary"==e||"/personal-banking/credit-cards/reward/altitude-qantas-platinum/summary"==e||"/personal-banking/credit-cards/reward/altitude-qantas-black/summary"==e||"/personal-banking/credit-cards/reward/altitude-velocity-platinum/summary"==e||"/personal-banking/credit-cards/reward/altitude-velocity-black/summary"==e||"/personal-banking/credit-cards/reward/altitude-platinum/package-summary"==e||"/personal-banking/credit-cards/xl-dm/simplify-and-save"==e||"/personal-banking/credit-cards/credit-card-offers"==e||"/personal-banking/credit-cards/partpay"==e||"/personal-banking/home-loans"==e||"/personal-banking/home-loans/our-home-loans"==e||"/personal-banking/home-loans/all-interest-rates"==e||"/personal-banking/home-loans/first-home"==e||"/personal-banking/home-loans/first-home/how-much-can-i-borrow"==e||"/personal-banking/home-loans/first-home/benefits-for-first-home-buyers"==e||"/personal-banking/home-loans/first-home/how-much-i-need-upfront"==e||"/personal-banking/home-loans/first-home/parental-guarantee"==e||"/personal-banking/home-loans/fixed/fixed-rate-home-loan"==e||"/personal-banking/home-loans/switch-loan"==e||"/personal-banking/home-loans/home-loan-package"==e||"/personal-banking/home-loans/next-home"==e||"/personal-banking/home-loans/next-home/bridging-loan"==e||"/personal-banking/home-loans/next-home/selling-before-buying-options"==e||"/personal-banking/home-loans/next-home/multiple-property-loan-options"==e||"/personal-banking/home-loans/fixed/fixed-home-loan"==e||"/personal-banking/home-loans/first-time-investor"==e||"/personal-banking/home-loans/investing-in-property"==e||"/personal-banking/home-loans/variable-interest-rates"==e||"/personal-banking/home-loans/fixed-rate-loans-interest-rates"==e||"/personal-banking/home-loans/wonder"==e||"/personal-banking/home-loans/fixed"==e||"/personal-banking/home-loans/variable"==e||"/personal-banking/home-loans/variable/mortgage-offset-accounts"==e||"/personal-banking/home-loans/variable/first-home-loan"==e||"/personal-banking/home-loans/variable/first-option-investment-homeloan"==e||"/personal-banking/home-loans/variable/investment-home-loan"==e||"/personal-banking/home-loans/first-home/owner-occupied"==e||"/personal-banking/home-loans/refinance"==e||"/personal-banking/home-loans/split-home-loan"==e||"/personal-banking/home-loans/manage-home-loan/repayment-options-to-manage-cashflow"==e||"/personal-banking/home-loans/investing-in-property/managing-and-renewing-a-tenancy"==e||"/personal-banking/home-loans/next-home/manage-virtual-inspection"==e||"/personal-banking/home-loans/investing-in-property/tips-for-buying-an-investment-property"==e||"/personal-banking/home-loans/start-online"==e||"/personal-banking/home-loans/property-research/#/search"==e||"/personal-banking/home-loans/investing-in-property/beginners-guide"==e||"/personal-banking/home-loans/investing-in-property/capital-growth"==e||"/personal-banking/home-loans/investing-in-property/investment-property-costs"==e||"/personal-banking/home-loans/investing-in-property/6-things-to-look-for-investment"==e||"/personal-banking/home-loans/investing-in-property/investment-property-depreciation"==e||"/personal-banking/home-loans/lenders-mortgage-insurance"==e||"/personal-banking/home-loans/variable-rate-home-loans"==e||"/personal-banking/home-loans/how-to-apply"==e||"/personal-banking/home-loans/variable/variable-loan-with-offset"==e||"/personal-banking/home-loans/variable/basic-variable-home-loan"==e||"/personal-banking/home-loans/offset"==e||"/personal-banking/pers
13onal-loans"==e||"/personal-banking/personal-loans/compare"==e||"/personal-banking/personal-loans/unsecured-personal-loan"==e||"/personal-banking/personal-loans/boats"==e||"/personal-banking/personal-loans/motorcycles"==e||"/personal-banking/personal-loans/debt-consolidation"==e||"/personal-banking/personal-loans/unsecured-personal-loan/saved-application"==e||"/personal-banking/personal-loans/car-hunt"==e||"/personal-banking/personal-loans/electric-car-loan"==e||"/personal-banking/insurance"==e||"/personal-banking/insurance/home-insurance"==e||"/personal-banking/insurance/home-insurance/home-and-contents-insurance"==e||"/personal-banking/insurance/home-insurance/building-insurance"==e||"/personal-banking/insurance/home-insurance/contents-insurance"==e||"/personal-banking/insurance/home-insurance/landlord-insurance"==e||"/personal-banking/insurance/home-insurance/renters-insurance"==e||"/personal-banking/insurance/car-insurance"==e||"/personal-banking/insurance/car-insurance/comprehensive-car-insurance"==e||"/personal-banking/insurance/life-insurance"==e||"/personal-banking/mobile-wallets/samsung-pay"==e||"/personal-banking/online-banking/making-the-most/priority-you"==e||"/personal-banking/online-banking/making-the-most/rewards-and-offers/offers"==e||"/personal-banking/online-banking/popular-features/priority-you-offers"==e||"/personal-banking/online-banking/making-the-most/identify-unknown-transaction"==e||"/personal-banking/online-banking/ways-to-bank/mobile-banking"==e||"/help/lifemoments/separation-divorce"==e||"/help/lifemoments/separation-divorce/separation-checklist"==e||"/help/lifemoments/separation-divorce/help-with-your-finances"==e||"/international-travel/travel-money-card"==e||"/security/westpac-protect-centre"==e||"/security/how-to-report"==e||"/help/community/million-meals"==e||"/about-westpac/our-foundations/westpac-foundation"==e||"/help/lifemoments/setting-up-life/getting-married"==e||"/help/lifemoments/setting-up-life/getting-married/planning-a-wedding"==e||"/help/lifemoments/setting-up-life/getting-married/married-life"==e||"/help/lifemoments/setting-up-life/getting-married/engagement-costs"==e||"/help/disaster-relief"==e||"/help/lifemoments/setting-up-life/love-money/understanding-financial-habits/quiz/#/toolkit-calculator"==e||"/help/lifemoments/setting-up-life/love-money/understanding-financial-habits"==e||"/help/lifemoments/setting-up-life/love-money/understanding-financial-habits/result-none"==e||"/help/lifemoments/setting-up-life/love-money/understanding-financial-habits/result-1"==e||"/help/lifemoments/setting-up-life/love-money/understanding-financial-habits/result-2"==e||"/help/lifemoments/setting-up-life/love-money/understanding-financial-habits/result-3"==e||"/help/lifemoments/setting-up-life/love-money/understanding-financial-habits/result-4"==e||"/help/lifemoments/setting-up-life/love-money/understanding-financial-habits/result-5"==e||"/help/lifemoments/setting-up-life/love-money/understanding-financial-habits/result-6"==e||"/help/lifemoments/setting-up-life/love-money/understanding-financial-habits/result-all"==e||"/help/lifemoments/youth/wendy"==e||"/help/disaster-relief/coronavirus"==e||"/about-westpac/sustainability/initiatives-for-you/customers-financial-hardship/apply-for-assistance"==e||"/help/disaster-relief/coronavirus/home-loans"==e||"/help/disaster-relief/coronavirus/business"==e||"/brokers/home/covid-19-support"==e||"/personal-banking/online-banking/getting-started"==e||"/personal-banking/online-banking"==e||"/personal-banking/online-banking/making-the-most/update-details"==e||"/personal-banking/online-banking/making-the-most/identify-unknown-transaction/"==e||"/help/disaster-relief/coronavirus/financially-impacted"==e||"/help/lifemoments/setting-up-life/love-money/sharing-finances"==e||"/help/lifemoments/setting-up-life/love-money/sharing-finances/sharing-finance-quiz/#/sharingfinance"==e||"/help/lifemoments/setting-up-life/love-money/sharing-finances/result-all"==e||"/help/lifemoments/setting-up-life/love-money/sharing-finances/result-1"==e||"/help/lifemoments/setting-up-life/love-money/sharing-finances/result-2"==e||"/help/lifemoments/setting-up-life/love-money/sharing-finances/result-3"==e||"/help/lifemoments/setting-up-life/love-money/sharing-finances/result-4"==e||"/help/lifemoments/recovery"==e||"/help/lifemoments/recovery/getting-back-to-basics"==e||"/help/lifemoments/recovery/getting-back-to-basics/what-is-budget"==e||"/help/lifemoments/recovery/getting-back-to-basics/planning-emergency-fund"==e||"/help/lifemoments/recovery/accessing-financial-support"==e||"/brokers/covid-19-support"==e||"/brokers/rates-offers"==e||"/brokers/rates-offers/#tab2"==e||"/personal-banking/solutions/budgeting-and-savings/savings/first-home"==e||"/personal-banking/solutions/budgeting-and-savings/savings/goals"==e||"/personal-banking/online-banking/making-the-most/manage-term-deposit"==e||"/personal-banking/online-banking/ways-to-bank/mobile-banking/new-westpac-app"==e||"/lifeseventful"==e||"/personal-banking/online-banking/making-the-most/rewards-and-offers"==e||"/personal-banking/mobile-wallets/apple-pay"==e||"/security/how-we-protect-you"==e||"/security/protect-yourself-and-your-business/security-wellbeing-check"==e||"/security/types-of-scams/top-5-scams"==e||"/about-westpac/careers/pathways/grad-program"==e||"/help/community/rescue"==e||"/help/community/openair"==e||"/personal-banking/online-banking/ways-to-bank/mobile-banking/mbeta"==e||"/personal-banking/online-banking/ways-to-bank/mobile-banking/beta"==e||"/personal-banking/online-banking/making-the-most/cards-hub"==e||"/personal-banking/online-banking/whats-new"==e||"/personal-banking/online-banking/making-the-most/notifications"==e||"/personal-banking/online-banking/making-the-most/quick-balance"==e||"/personal-banking/online-banking/making-the-most/quick-signin"==e||"/help/community/footy-grants"==e||"/international-travel/international-transfers"==e||"/international-travel/moving-to-australia"==e||"/personal-banking/online-banking/insights-hub/spend-insights-and-budgeting-tools"==e||"/personal-banking/online-banking/making-the-most/rewards-and-offers/offers/shopback"==e||"/personal-banking/superannuation/bt-super-for-life"==e||"/personal-banking/superannuation/self-managed-superannuation-accounts"==e||"/personal-banking/superannuation/self-managed-superannuation-accounts/setup-smsf"==e||"/personal-banking/superannuation/self-managed-superannuation-accounts/smsf-investment-platform"==e||"/personal-banking/share-trading"==e||"/personal-banking/share-trading/margin-lending/investment-loan"==e||"/personal-banking/share-trading/cash-investment-account"==e||"/personal-banking/share-trading/margin-lending"==e||"/personal-banking/share-trading/join/open-account"==e||"/personal-banking"==e||"/about-westpac"==e||"/help"==e||"/contact-us"==e||"/news"==e||"/locateus"==e||"/yourpb"==e||"/personal-banking/private-banking-services/yourpb"==e||"/personal-banking/insurance/home-insurance/first-home-buyers-home-insurance"==e||"/personal-banking/insurance/home-insurance/home-and-contents-insurance-when-buying-your-first-home"==e||"/personal-banking/bank-accounts/savings-accounts/bump/50-dollar-offer"==e||"/personal-banking/bank-accounts/savings-accounts/bump/50-dollars-on-us"==e||"/personal-banking/credit-cards/reward/altitude-black/get-started"==e||"/personal-banking/credit-cards/reward/altitude-platinum/get-started"==e||"/personal-banking/credit-cards/reward/altitude-qantas-black/get-started"==e||"/personal-banking/credit-cards/reward/altitude-qantas-platinum/get-started"==e||"/personal-banking/credit-cards/reward/altitude-velocity-black/get-started"==e||"/personal-banking/credit-cards/reward/altitude-velocity-platinum/get-started"==e||"/personal-banking/credit-cards/low-fee/get-started"==e||"/personal-banking/credit-cards/low-rate-cards/low-rate/get-started"==e||"/personal-banking/credit-cards/reward/altitude-platinum/qantas"==e||"/personal-banking/credit-cards/low-rate-cards/westpac-lite-card/get-started"==e||"/personal-banking/credit-cards/interest-free/flex-card/get-started"==e||"/personal-banking/credit-cards/interest-free/flex-card/summary"==e||"/personal-banking/home-loans/calculator/home-saver"==e||"/personal-banking/home-loans/calculator/home-saver/#/time"==e||"/personal-banking/home-loans/first-home/home-guarantee-scheme"==e||"/personal-banking/home-loans/refinance-quote"==e||"/personal-banking/pers
13onal-loans/unsecured-personal-loan/summary"==e||"/personal-banking/personal-loans/electric-car-loan/summary"==e||"/personal-banking/credit-cards/help-me-choose"==e||"/personal-banking/bank-accounts/new-to-australia/savings-account"==e||"/help/disaster-help/disaster-preparation"==e||"/personal-banking/online-banking/insights-hub"==e||"/personal-banking/home-loans/self-employed"==e||"/personal-banking/home-loans/home-lending-specialists"==e||"/personal-banking/insurance/life-insurance/life-insurance"==e||"/personal-banking/insurance/life-insurance/income-protection-insurance"==e||"/personal-banking/insurance/life-insurance/tpd-insurance"==e||"/personal-banking/insurance/life-insurance/critical-illness-insurance"==e||"/help/lifemoments/moneytalks"==e||"/personal-banking/bank-accounts/manage/youth-safe-and-secure-banking"==e||"/help/community/rugby-league"==e||"/security/how-we-protect-you/westpac-saferpay"==e||"/personal-banking/bank-accounts/youth/youth-safer-banking"==e||"/personal-banking/bank-accounts/transaction/kids-and-teens"==e||"/personal-banking/bank-accounts/transaction/welcome-youth"==e||"/help/ways-to-bank"==e||"/personal-banking/bank-accounts/transaction/basic/summary"==e||"/personal-banking/bank-accounts/savings-accounts/esaver/summary"==e||"/personal-banking/bank-accounts/savings-accounts/bump/summary"==e||"/personal-banking/home-loans/investing-in-property/investment-property-strategies"==e||"/personal-banking/home-loans/loan-increase"==e||"/personal-banking/credit-cards/manage/rewards/pay-with-points"==e||"/personal-banking/bank-accounts/youth"==e||"/personal-banking/personal-loans/get-my-personalised-rate"==e||"/personal-banking/home-loans/next-home/unlock-equity"==e||"/personal-banking/private-banking-services/prestige-property"==e||"/personal-banking/home-loans/first-home/buying-house"==e||"/personal-banking/home-loans/help-me-choose"==e||"/corporate-banking/transactional-banking/realtime-payments"==e||"/personal-banking/home-loans/sustainable-upgrades-home-loan/budget-friendly-home-upgrades"==e||"/personal-banking/home-loans/sustainable-upgrades-home-loan/unlocking-home-energy-savings"==e||"/personal-banking/home-loans/sustainable-upgrades-home-loan"==e||"/personal-banking/credit-cards/everydayrewards"==e||"/personal-banking/online-banking/making-the-most/westpac-rewards"==e||"/personal-banking/home-loans/sustainable-upgrades-home-loan.html#home-energy-tool"==e||"/about-westpac/careers/working-together-at-westpac"==e||"/personal-banking/bank-accounts/transaction/summary-kids-teens"==e||"/personal-banking/bank-accounts/savings-accounts/bump/summary-bundle"==e||"/personal-banking/home-loans/investing-in-property/the-rise-of-rentvesting"==e||"/personal-banking/home-loans/next-home/renting-vs-buying"==e||"/personal-banking/credit-cards/reward/altitude-platinum/velocity"==e||"/personal-banking/bank-accounts/transaction/moving-to-australia-from-india"==e||"/personal-banking/online-banking/insights-hub/bills-calendar"==e||"/personal-banking/online-banking/insights-hub/budget-planner"==e||"/personal-banking/bank-accounts/transaction/finding-a-place-to-live"==e||"/personal-banking/online-banking/making-the-most/split-group-expenses"==e||"/personal-banking/home-loans/self-employed/how-to-apply"==e||"/personal-banking/home-loans/next-home/new-home-checklist"==e||"/personal-banking/share-trading/education/etf-explained"==e||"/personal-banking/share-trading/education/how-to-invest-in-shares-for-beginners"==e||"/personal-banking/online-banking/mobile-app"==e||"/personal-banking/share-trading/education"==e||"/international-travel/international-transfers/send-money"==e||"/about-westpac/media/media-releases/2025/18-march1"==e||"/personal-banking/share-trading/education/environmental-social-governance"==e||"/personal-banking/home-loans/next-home/financial-planning-after-you-move"==e||"/security/types-of-scams/tax-time-scams"==e||"/security/types-of-scams/buying-selling"==e||"/personal-banking/solutions/staying-credit-smart/buying-a-car/5-things-to-consider"==e||"/personal-banking/solutions/staying-credit-smart/buying-a-car/how-to-get-a-car-loan"==e||"/personal-banking/share-trading/education/investment-strategy"==e||"/personal-banking/online-banking/making-the-most/smart-search"==e||"/personal-banking/home-loans/home-renovation"==e||"/personal-banking/online-banking/insights-hub/tax-organiser"==e||"/personal-banking/credit-cards/reward/sem/altitude-qantas-platinum"==e||"/personal-banking/bank-accounts/transaction/new-arrivals/offshore-summary"==e||"/personal-banking/solutions/staying-credit-smart/buying-a-car/car-finance-options"==e||"/personal-banking/bank-accounts/transaction/first-job"==e||"/personal-banking/bank-accounts/finlit/holiday-budgeting-guide"==e||"/personal-banking/share-trading/education/how-to-invest-in-shares-for-beginners"==e||"/personal-banking/share-trading/investments/etfs"==e||"/personal-banking/share-trading/features"==e||"/personal-banking/bank-accounts/new-to-australia"==e||"/personal-banking/insurance/car-insurance/5-things-about-car-insurance-you-may-not-know"==e||"/personal-banking/bank-accounts/new-to-australia/india"==e||"/personal-banking/credit-cards/manage/edm/cards_ashes"==e||"/personal-banking/credit-cards/manage/edm/cards_ashes_2025"==e||"/personal-banking/bank-accounts/new-to-australia/china"==e||"/personal-banking/bank-accounts/youth/pocket-money"==e||"/help/community/cricket"==e||"/personal-banking/bank-accounts/new-to-australia/new-zealand"==e||"/personal-banking/credit-cards/manage/edm/altitudeqantas"==e||"/personal-banking/home-loans/nrl"==e||"/brokers/ideas-hub/investor"==e||"/personal-banking/share-trading/investments/australian-shares"==e||"/personal-banking/share-trading/investments/international-shares"==e||"/brokers/policy"==e||"/business-banking/transaction-accounts/business-one/summary"==e||"/business-banking/transaction-accounts/business-one-plus/summary"==e||"/business-banking/savings-accounts/cash-reserve/summary"==e||"/business-banking/bank-accounts/foreign-currency-account/summary"==e||"/personal-banking/online-banking/insights-hub/subscription-manager"==e||"/personal-banking/pers
13onal-loans/electric-car-loan/tesla"==e||"/international-travel/travel"==e||"/personal-banking/personal-loans/hybrid-car-loan"==e||"/personal-banking/personal-loans/hybrid-car-loan/summary"==e||"/personal-banking/bank-accounts/youth/teens"==e||"/personal-banking/credit-cards/manage/travel"==e||"/personal-banking/credit-cards/balance-transfer"==e||"/international-travel/new-to-australia"==e||"/international-travel/new-to-australia/moving-to-australia-from-india"==e||"/international-travel/new-to-australia/china"==e||"/international-travel/new-to-australia/india"==e||"/international-travel/new-to-australia/new-zealand"==e||"/international-travel/new-to-australia/savings-account"==e||"/international-travel/new-to-australia/choice-new-arrivals/offshore-summary"==e||"/international-travel/international-transfers/fixed-fx"==e||"/personal-banking/online-banking/making-the-most/westpac-rewards/priceless"==e||"/home-loans/all-interest-rates"==e||"/home-loans/help-me-choose"==e||"/credit-cards/help-me-choose"==e||"/home-loans/home-renovation"==e||"/home-loans/nrl"==e||"/home-loans/offset"==e||"/home-loans/property-research/#/search"==e}}},{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=_satellite.getVar("is3rdPartyAllowed");return console.info("[Media consent check]",{time:(new Date).toISOString(),url:location.href,allowed:e,type:typeof e}),!0===e}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC35a9fe3216394a1db30ffe98941a5470-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL94ba20cd85ed45a9ab012aa9699a115c",name:"Page: HTSM cookie #120",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:120}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return"/htsm-redirect"==(e=(e=e.replace(/\/content\/public\/wbc\/en/,"")).replace(/\.html$/,""))}}},{modulePath:"core/src/lib/conditions/queryStringParameter.js",settings:{name:"action",value:"^applyAuthenticated$",valueIsRegex:!0}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{ 14source:'/*START HTSM cookie drop for project Comet */\n!function(){"use strict";function a(a,b){var c=b||"";return decodeURIComponent(a).replace(/[<>\\(\\)\\\'\\"]+/g,c)}function b(b){for(var c,d=a(window.location.search.substring(1)),e=d.split("&"),f=0;f<e.length;f++)if(c=e[f].split("="),c[0]===b)return void 0===c[1]?"":c[1]}var c=function(a){for(var b,c=[\n{name:"boundary",product:"btsfl_form",expiryHours:2,value:"https://banking.westpac.com.au/wbc/banking/handler?TAM_OP=sp&ERROR_CODE=0x00000000&URL=%2Fsecure%2Fbanking%2Faccounts%2Frenewssorequest%3FSP_PROVIDER_ID%3Dbtsflm%26TARGET%3Dhttps%3A%2F%2Fbtsfl.com.au%2Finvestor%2Fsso%3B%26PROTOCOL%3DPOST&logout=false#/sales-pathway/auth"},\n{name:"htsm",product:"btsfl_form",expiryHours:2,value:"https://banking.westpac.com.au/secure/banking/accounts/renewssorequest?SP_PROVIDER_ID=btsflm&TARGET=http%3A%2F%2Fbtsfl.bt.com.au%2Finvestor%2Fsso;&PROTOCOL=POST"},\n{name:"htsm",product:"new-account",expiryHours:2,value:"https://banking.westpac.com.au/ng/onboard/app/#/app/investor/new-account"},\n{name:"htsm",product:"btsfl_product",expiryHours:2,value:"https://banking.westpac.com.au/secure/forms/overview/dashboard#/products/product-detail/btsfl_product"},\n{name:"htsm",product:"home_content_insurance",expiryHours:2,value:"https://banking.westpac.com.au/secure/forms/overview/dashboard#/products/product-benefits/home_content_insurance"},\n{name:"htsm",product:"car_insurance",expiryHours:2,value:"https://banking.westpac.com.au/secure/forms/overview/dashboard#/products/product-benefits/car_insurance"},\n{name:"htsm",product:"travel_insurance",expiryHours:2,value:"https://banking.westpac.com.au/secure/forms/overview/dashboard#/products/product-benefits/travel_insurance"},\n{name:"htsm",product:"landlord_insurance",expiryHours:2,value:"https://banking.westpac.com.au/secure/forms/overview/dashboard#/products/product-benefits/landlord_insurance"}\n],d=new Date,e=a||"btsfl_form",f=0;f<c.length;f++){var g=c[f].product.toString().toUpperCase();if(g===e.toString().toUpperCase()){var h=c[f].name,i=c[f].value,
14j=c[f].expiryHours||2;d.setTime(d.getTime()+60*j*60*1e3),\n document.cookie=h+"="+i+";domain=.westpac.com.au;path=/;expires="+d.toUTCString(),h.indexOf("boundary")>-1&&null===b?b=i:g===e.toString().toUpperCase()&&(b=i)}}b&&(window.location=b)},d=b("action"),e=b("product");"applyAuthenticated"===d&&(void 0!==e&&""!==e?c(e):c())}();/* Version:1.0.1300 */\n/*END HTSM cookie drop for project Comet */\n\n/*START HTSM cookie drop for project Comet */\n/*!function(){"use strict";function a(a,b){var c=b||"";return decodeURIComponent(a).replace(/[<>\\(\\)\\\'\\"]+/g,c)}function b(b){for(var c,d=a(window.location.search.substring(1)),e=d.split("&"),f=0;f<e.length;f++)if(c=e[f].split("="),c[0]===b)return void 0===c[1]?"":c[1]}var c=function(a){for(var b,c=[{name:"boundary",product:"btsfl_form",expiryHours:2,value:"https://banking.westpac.com.au/wbc/banking/handler?TAM_OP=sp&ERROR_CODE=0x00000000&URL=%2Fsecure%2Fbanking%2Faccounts%2Frenewssorequest%3FSP_PROVIDER_ID%3Dbtsflm%26TARGET%3Dhttps%3A%2F%2Fbtsfl.com.au%2Finvestor%2Fsso%3B%26PROTOCOL%3DPOST&logout=false#/sales-pathway/auth"},\n{name:"htsm",product:"btsfl_form",expiryHours:2,value:"https://banking.westpac.com.au/secure/banking/accounts/renewssorequest?SP_PROVIDER_ID=btsflm&TARGET=http%3A%2F%2Fbtsfl.bt.com.au%2Finvestor%2Fsso;&PROTOCOL=POST"},\n{name:"htsm",product:"btsfl_product",expiryHours:2,value:"https://banking.westpac.com.au/secure/forms/overview/dashboard#/products/product-detail/btsfl_product"},\n{name:"htsm",product:"home_content_insurance",expiryHours:2,value:"https://banking.westpac.com.au/secure/forms/overview/dashboard#/products/product-benefits/home_content_insurance"},\n{name:"htsm",product:"car_insurance",expiryHours:2,value:"https://banking.westpac.com.au/secure/forms/overview/dashboard#/products/product-benefits/car_insurance"},\n{name:"htsm",product:"landlord_insurance",expiryHours:2,value:"https://banking.westpac.com.au/secure/forms/overview/dashboard#/products/product-benefits/landlord_insurance"}\n],d=new Date,e=a||"btsfl_form",f=0;f<c.length;f++){var g=c[f].product.toString().toUpperCase();if(g===e.toString().toUpperCase()){var h=c[f].name,i=c[f].value,
14j=c[f].expiryHours||2;d.setTime(d.getTime()+60*j*60*1e3),\n document.cookie=h+"="+i+";domain=.westpac.com.au;path=/;expires="+d.toUTCString(),h.indexOf("boundary")>-1&&null===b?b=i:g===e.toString().toUpperCase()&&(b=i)}}b&&(window.location=b)},d=b("action"),e=b("product");"applyAuthenticated"===d&&(void 0!==e&&""!==e?c(e):c())}();/* Version:1.0.1300 */\n/*END HTSM cookie drop for project Comet */',language:"javascript"}}]},{id:"RL99126a6fbaaa4d91b1aa72ca5237f847",name:"Direct: applySegmentationConfig #40",events:[{modulePath:"core/src/lib/events/directCall.js",settings:{identifier:"applySegmentationConfig"},ruleOrder:40}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCbdc07ec21149425aa4790588bd564982-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL996b10684f894a3b8069ef1e581e08af",name:"Event:webSDK_bus:ba_enquiryForm_start #70",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"AnalyticsEvent_pageKey"},ruleOrder:70}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"equals"},leftOperand:"%Page_Type%",rightOperand:"enquiry"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"^bus\\:ba$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%pageAction%",rightOperand:"(start)"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCbedebaa29e784bf2a3a64772b0e46743-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RL9ee8fbccae724aea9f0a58dd8402808f",name:"Event:webSDK_cons-bus_enquiryForm_start-complete",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"AnalyticsEvent_pageKey"},ruleOrder:56}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"equals"},leftOperand:"%Page_Type%",rightOperand:"enquiry"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"bus\\:loan\\sand\\sfinance|cons\\:hl\\sproperty\\sresearch|cons\\:private\\-bank|cons\\:alumni\\sform|cons\\:wpb|bus\\:ad|home\\sloan\\sretention\\senquiry|bus\\:eftpos machines|bus\\:hlr|cons\\:eoi|cons\\:cpp|bus\\:request\\-callback\\-(etb|ntb|nst)"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%pageAction%",rightOperand:"(start|complete)"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC9b02691e553c4a9b88357d3575bae69c-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLa3b4538d70774833915b9250fd07e978",name:"Event: Impact HL enquiryForm",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"pageAction"},ruleOrder:56}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"^(home loan enquiry)$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%pageAction%",rightOperand:"^(complete)$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%eventKey%",rightOperand:"^(wbc|stg|bom|bsa):(desktop|mob|tab)_enquiry_(home loan enquiry)(\\s?)_(enquiry.*)"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC7891be272f7d46fe9a8c060427c79143-source.min.js",language:"javascript",isExternal:!0}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC727a2b87a1ae4347aa3b631b90479b53-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLa8fd195644544095aa499d6a1c2c8915",name:"Event: Gtag home loans consolidated form - Set Conversion Label",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"eventKey"},ruleOrder:56}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"^(cons:hl enquiry|((\\s)ntb)? unsecured lending)$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%pageAction%",rightOperand:"^(start|complete)$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%eventKey%",rightOperand:"^(wbc|stg|bom|bsa):(desktop|mob|tab)_enquiry_(cons:hl-enquiry|((\\s)ntb)? unsecured lending)((_your-details|_submitted)|(\\s?)_(enquiry.*))"}},{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){return"start"!=pageDetails.pageAction||!0!==_satellite.getVar("codeExecutedforntb")||!0!==_satellite.getVar("codeExecutedforetb")||!0!==_satellite.getVar("codeExecutedforswitch")}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC182e10f880e94686a530df591fb4fae4-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLac342b7da60b42b0a91658c53fc612f2",name:"Page: Munchkin tracking",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return"/about-westpac/careers/graduate-program"==(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""))}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC5c2112ab4f48415d9a89e974b46d7c9b-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLad7c4e0bd6c1464a9256647d5115993c",name:"Page: Usabilla PopUp",events:[{modulePath:"core/src/lib/events/pageBottom.js",settings:{},ruleOrder:70}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");if(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""),["/personal-banking/bank-accounts/savings-accounts/life","/content/public/wbc/en/personal-banking/bank-accounts/savings-accounts/spend-save-ntb","/personal-banking/bank-accounts/savings-accounts/spend-save-ntb","/personal-banking/bank-accounts/savings-accounts/life/summary"].indexOf(e)>=0)return!0}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:'setTimeout(function () {\n window.lightningjs || function(n) {\n var e = "lightningjs";\n\n function t(e, t) {\n var r, i, a, o, d, c;\n return t && (t += (/\\?/.test(t) ? "&" : "?") + "lv=1"), n[e] || (r = window, i = document, a = e, o = i.location.protocol, d = "load", c = 0, function() {\
14n n[a] = function() {\n var t = arguments,\n i = this,\n o = ++c,\n d = i && i != r && i.id || 0;\n\n function s() {\n return s.id = o, n[a].apply(s, arguments)\n }\n return (e.s = e.s || []).push([o, d, t]), s.then = function(n, t, r) {\n var i = e.fh[o] = e.fh[o] || [],\n a = e.eh[o] = e.eh[o] || [],\n d = e.ph[o] = e.ph[o] || [];\n return n && i.push(n), t && a.push(t), r && d.push(r), s\n }, s\n };\n var e = n[a]._ = {};\n\n function s() {\n e.P(d), e.w = 1, n[a]("_load")\n }\n e.fh = {}, e.eh = {}, e.ph = {}, e.l = t ? t.replace(/^\\/\\//, ("https:" == o ? o : "http:") + "//") : t, e.p = {\n 0: +new Date\n }, e.P = function(n) {\n e.p[n] = new Date - e.p[0]\n }, e.w && s(), r.addEventListener ? r.addEventListener(d, s, !1) : r.attachEvent("onload", s);\n var l = function() {\n function n() {\n return ["<!DOCTYPE ", o, "><", o, "><head></head><", t, "><", r, \' src="\', e.l, \'"></\', r, "></", t, "></", o, ">"].join("")\n }\n var t = "body",\n r = "script",\n o = "html",\n d = i[t];\n if (!d) return setTimeout(l, 100);\n e.P(1);\n var c, s = i.createElement("div"),\n h = s.appendChild(i.createElement("div")),\n u = i.createElement("iframe");\n s.style.display = "none", d.insertBefore(s, d.firstChild).id = "lightningjs-" + a, u.frameBorder = "0", u.id = "lightningjs-frame-" + a, /MSIE[ ]+6/.test(navigator.userAgent) && (u.src = "javascript:false"), u.allowTransparency = "true", h.appendChild(u);\n try {\n u.contentWindow.document.open()\n } catch (n) {\n e.domain = i.domain, c = "javascript:var d=document.open();d.domain=\'" + i.domain + "\';", u.src = c + "void(0);"\n }\n try {\n var p = u.contentWindow.document;\n p.write(n()), p.close()\n } catch (e) {\n u.src = c + \'d.write("\' + n().replace(/"/g, String.fromCharCode(92) + \'"\') + \'");d.close();\'\n }\n e.P(2)\n };\n e.l && l()\n }()), n[e].lv = "1", n[e]\n }\n var r = window.lightningjs = t(e);\n r.require = t, r.modules = n\n }({});\n window.usabilla_live = lightningjs.require("usabilla_live", "//w.usabilla.com/d4e7e723a1db.js");\n\n }, 3000);',language:"javascript"}}]},{id:"RLb042e28fe4b64eb8a1190330eb59a852",name:"Page:webSDK_SendEvent_Default #35",events:[{modulePath:"core/src/lib/events/pageBottom.js",settings:{},ruleOrder:50}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"//Stream data to Adobe Edge Network\n\n(function (win, doc) {\n\tvar streamEvent = win.helper.w_trackPage\n\tvar launchUtil = {\n\t\tpageDetails: win.pageDetails,\n\t\tinit: function () {\n\t\t\t//step1: identify the analyticsTrackType (page|impression|link)\n\t\t\t//step2: trigger trackAs.page or trackAs.impression with context details\n\n\t\t\tvar trackingType;\n\t\t\ttrackingType = 'page'; // TODO: hardcoded to begin with, needs to be passed as argument\n\t\t\tswitch (trackingType) {\n\n\t\t\tcase 'page':\n\t\t\t\tlaunchUtil.sendEventAs.page(launchUtil.pageDetails);\n\t\t\t\tbreak;\n\t\t\tcase 'impression':\n\t\t\t\tvar intCmpId;\n\t\t\t\tintCmpId = launchUtil.pageDetails.intCmpPid;\n\t\t\t\t// if the pid is not set do not trigger impression\n\t\t\t\tif (intCmpId !== '(not-set)') {\n\t\t\t\t\tlaunchUtil.sendEventAs.impression(intCmpId);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'link':\n\t\t\t\t//TODO\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t},\n\t\tsendEventAs: {\n\t\t\tpage: function (dataLayer) {\n\t\t\t\tstreamEvent(dataLayer)\n\t\t\t},\n\t\t\timpression: function (intCmpId) {\n\t\t\t\t//TODO\n\t\t\t},\n\t\t\tlink: function () {\n\t\t\t\t//TODO\n\t\t\t},\n\t\t}\n\t};\n\t//if (win.helper && typeof win.helper.w_trackPage === \"function\") {\n if (win.helper) {\n\t\tlaunchUtil.init();\n\t}\n})(window, document);",language:"javascript"}}]},{id:"RLb23f75f6ef8b4066aad69c76de9d6ea7",name:"Page: Flashtalking",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""),window.location.hash&&(e=(window.location.pathname+window.location.hash).toLowerCase().replace(/\/$/,"")),"/personal-banking/home-loans"==e||"/personal-banking/home-loans/start-online"==e||"/personal-banking/home-loans/loan-increase"==e||"/personal-banking/home-loans/call-back"==e||"/personal-banking/home-loans/calculator"==e||"/personal-banking/home-loans/calculator/mortgage-repayment"==e||"/personal-banking/home-loans/calculator/mortgage-calculator"==e||"/personal-banking/home-loans/calculator/stamp-duty-calculator"==e||"/personal-banking/home-loans/calculator/mortgage-calculator/maximum-borrowing-calculator"==e||"/personal-banking/home-loans/calculator/refinance-calculator"==e||"/personal-banking/home-loans/calculator/offset-calculator"==e||"/personal-banking/home-loans/calculator/home-equity-calculator/#/equity-calculator"==e||"/personal-banking/home-loans/calculator/home-saver/#/time"==e||"/personal-banking/home-loans/first-home"==e||"/personal-banking/home-loans/next-home"==e||"/personal-banking/home-loans/investing-in-property"==e||"/personal-banking/home-loans/home-loan-appointment"==e||"/home-loans/calculator"==e||"/home-loans/calculator/mortgage-repayment"==e||"/home-loans/calculator/mortgage-calculator"==e||"/home-loans/calculator/stamp-duty-calculator"==e||"/home-loans/calculator/mortgage-calculator/maximum-borrowing-calculator"==e||"/home-loans/calculator/refinance-calculator"==e||"/home-loans/calculator/offset-calculator"==e||"/home-loans/calculator/home-equity-calculator/#/equity-calculator"==e||"/home-loans/calculator/home-saver/#/time"==e||"/home-loans/home-loan-appointment"==e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC24899f2316ac4181b109313b516c61bb-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLb72225b3982c403cbe15dd550438567e",name:"Event: Facebook home loans consolidated form",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"eventKey"},ruleOrder:56}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"^(cons:hl enquiry)$"}}
14,{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%pageAction%",rightOperand:"^(start|complete)$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%eventKey%",rightOperand:"^(wbc|stg|bom|bsa):(desktop|mob|tab)_enquiry_(cons:hl-enquiry)(\\s?)_(enquiry.*)"}},{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){return"start"!=pageDetails.pageAction||!0!==_satellite.getVar("codeExecutedforntb")||!0!==_satellite.getVar("codeExecutedforetb")||!0!==_satellite.getVar("codeExecutedforswitch")}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!1,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC15a1d96785c24a98aafdba4d89ad019a-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLb75f28ffae07445aae37e720910e6979",name:"Event:webSDK_bus:ba_enquiryForm_complete",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"eventKey"},ruleOrder:75}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"equals"},leftOperand:"%Page_Type%",rightOperand:"enquiry"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"^bus\\:ba$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%pageAction%",rightOperand:"(complete)"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC889a85291fd742d6ad34f19b6bda6d7c-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLb88c86888830421699bb7f8eeac6f6ba",name:"Page: contact-us redirect #95",events:[{modulePath:"core/src/lib/events/pageBottom.js",settings:{},ruleOrder:95}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%siteExperience%",rightOperand:"^mob$"}},{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return"/contact-us"==(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:'window.location.href = "https://www.cmsservices.westpac.com.au/app/native/connect";',language:"javascript"}}]},{id:"RLc765c8b7b7e7445d84881f4f26e8b2cc",name:"Page: Segmentation tool #80",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:80}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return"/personal-banking/bank-accounts"==(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))||"/personal-banking/bank-accounts/transaction"==e||"/personal-banking/bank-accounts/transaction/choice"==e||"/personal-banking/bank-accounts/transaction/debit-mastercard"==e||"/personal-banking/bank-accounts/transaction/choice/under-21"==e||"/personal-banking/bank-accounts/transaction/choice/tertiary-student"==e||"/personal-banking/bank-accounts/savings-accounts"==e||"/personal-banking/bank-accounts/savings-accounts/rates"==e||"/personal-banking/bank-accounts/savings-accounts/esaver"==e||"/personal-banking/bank-accounts/savings-accounts/reward-saver"==e||"/personal-banking/bank-accounts/term-deposit"==e||"/personal-banking/bank-accounts/term-deposit/rates"==e||"/personal-banking/bank-accounts/moving-to-australia"==e||"/personal-banking/bank-accounts/transaction/choice/migrants"==e||"/personal-banking/home-loans"==e||"/personal-banking/home-loans/calculator/mortgage-repayment"==e||"/personal-banking/home-loans/calculator"==e||"/personal-banking/credit-cards"==e||"/personal-banking/credit-cards/low-rate"==e||"/personal-banking/credit-cards/low-fee"==e||"/personal-banking/credit-cards/low-fee/55-day"==e||"/personal-banking/credit-cards/low-fee/55-day-platinum"==e||"/personal-banking/credit-cards/reward"==e||"/personal-banking/credit-cards/reward/altitude"==e||"/personal-banking/credit-cards/reward/altitude-platinum"==e||"/personal-banking/credit-cards/reward/altitude-black"==e||"/personal-banking/credit-cards/comparison"==e||"/personal-banking/credit-cards/balance-transfer"==e||"/creditcards"==e||"/homeloans"==e||"/homeloans/fixedrate"==e||"/homeloans/variablerate"==e||"/personal-banking/home-loans/calculator/stamp-duty-calculator"==e||"/personal-banking/home-loans/all-interest-rates"==e||"/personal-banking/home-loans/variable-interest-rates"==e||"/personal-banking/home-loans/fixed-rate-loans-interest-rates"==e||"/personal-banking/home-loans/our-home-loans"==e||"/personal-banking/home-loans/home-loan-package"==e||"/personal-banking/home-loans/variable"==e||"/personal-banking/home-loans/variable/mortgage-offset-accounts"==e||"/personal-banking/home-loans/variable/first-home-loan"==e||"/personal-banking/home-loans/fixed"==e||"/personal-banking/home-loans/fixed/fixed-home-loan"==e||"/personal-banking/home-loans/first-home"==e||"/personal-banking/home-loans/investing-in-property"==e||"/personal-banking/pers
14onal-loans"==e||"/personal-banking/personal-loans/unsecured-personal-loan"==e||"/personal-banking/personal-loans/car-loan"==e||"/personal-banking/personal-loans/flexi-loan"==e||"/personal-banking/personal-loans/tools-calculators-rates"==e||"/personal-banking/personal-loans/borrowing-power-calculator"==e||"/personal-banking/personal-loans/compare"==e||"/business-banking"==e||"/business-banking/bank-accounts"==e||"/business-banking/savings-accounts"==e||"/business-banking/bank-accounts/one-account"==e||"/business-banking/business-loans"==e||"/business-banking/business-loans/business-loans-interest-rate"==e||"/business-banking/business-loans/small-business-loans/business-loan"==e||"/business-banking/credit-cards"==e||"/business-banking/merchant-services"==e||"/personal-banking/credit-cards/low-rate-cards"==e||"/personal-banking/credit-cards/low-rate-cards/westpac-lite-card"==e||"/personal-banking/credit-cards/low-rate-cards/low-rate"==e||"/home-loans/calculator/stamp-duty-calculator"==e||"/home-loans/all-interest-rates"==e||"/personal-loans/borrowing-power-calculator"==e||"/home-loans/calculator/mortgage-repayment"==e||"/personal-loans/compare"==e}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC24fc44cf9295441c849a08ab29136bd2-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLc78e6ce7e7b14f8bbc49ea9a9331f60a",name:"Event: Gtag Professional Services forms - Performics - Set Conversion Label",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"pageAction"},ruleOrder:56},{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){if(!("start"!==pageDetails.pageAction&&"complete"!==pageDetails.pageAction||"professional business services"!=pageDetails.pageName&&"contact:professional business services"!=pageDetails.pageName&&"accountants:professional business services"!=pageDetails.pageName&&"lawyers:professional business services"!=pageDetails.pageName&&"products:professional business services"!=pageDetails.pageName&&"loans:professional business services"!=pageDetails.pageName&&"professional business services:submitted"!=pageDetails.pageName&&"contact:professional business services:submitted"!=pageDetails.pageName&&"accountants:professional business services:submitted"!=pageDetails.pageName&&"lawyers:professional business services:submitted"!=pageDetails.pageName&&"products:professional business services:submitted"!=pageDetails.pageName&&"loans:professional business services:submitted"!=pageDetails.pageName))return!0}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC05f90d352cf74141960ae723a2fa696f-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLc894467dacfb492bb8ebc87775110c6e",name:"Event: Facebook call back form",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"eventKey"},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%newFormName%",rightOperand:"^(home loan enquiry|cons:hl enquiry|bus:loan and finance|bus:ba|bus:eftpos machines)$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%pageAction%",rightOperand:"^(start|complete)$"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%eventKey%",rightOperand:"^(wbc|stg|bom|bsa):(desktop|mob|tab)_enquiry_(bus:eftpos-machines|home loan enquiry|bus:loan-and-finance|cons:hl enquiry|bus:ba)((_your-details|_submitted)|(\\s?)_(enquiry.*))"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCeb5c0f2c8f3e47608cccae1a9347a126-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLce1911cfa8c843569586f10b6ae21d2e",name:"PageView : TikTok #47",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return window.location.hash&&(e=(window.location.pathname+window.location.hash).toLowerCase().replace(/\/$/,"")),"/personal-banking/bank-accounts/transaction/choice"==(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))||"/personal-banking/bank-accounts/transaction/choice/summary"==e||"/personal-banking/bank-accounts/transaction/kids-and-teens"==e||"/personal-banking/bank-accounts/transaction/summary-kids-teens"==e||"/personal-banking/bank-accounts/transaction/new-arrivals"==e||"/personal-banking/bank-accounts/transaction/new-arrivals/summary"==e||"/personal-banking/bank-accounts/savings-accounts/esaver"==e||"/personal-banking/bank-accounts/savings-accounts/esaver/summary"==e||"/personal-banking/bank-accounts/savings-accounts/spend-save-ntb"==e||"/personal-banking/bank-accounts/savings-accounts/life/summary"==e||"/personal-banking/bank-accounts/transaction/55-and-retired"==e||"/personal-banking/bank-accounts/transaction/55-and-retired/summary"==e||"/personal-banking/bank-accounts/transaction/basic"==e||"/personal-banking/bank-accounts/finlit"==e||"/personal-banking/online-banking/making-the-most/rewards-and-offers/offers/shopback"==e||"/personal-banking/bank-accounts/finlit/financial-literacy-for-kids"==e||"/international-travel/moving-to-australia"==e||"/personal-banking/bank-accounts/transaction/budget-planner"==e||"/personal-banking/bank-accounts/savings-accounts/savings-calculator"==e||"/personal-banking/bank-accounts/savings-accounts/rates"==e||"/personal-banking/bank-accounts/help-me-choose"==e||"/personal-banking/online-banking/insights-hub/budget-planner"==e||"/personal-banking/online-banking/insights-hub/subscription-manager"==e||"/business-banking/startup-hub"==e||"/business-banking/transaction-accounts/business-one"==e||"/business-banking/transaction-accounts/business-one/summary"==e||"/business-banking/transaction-accounts/business-one-plus"==e||"/business-banking/transaction-accounts/business-one-plus/summary"==e||"/business-banking/current-offers/law
14path"==e||"/international-travel/new-to-australia"==e||"/international-travel/new-to-australia/new-arrivals"==e||"/international-travel/new-to-australia/new-arrivals/summary"==e||"/business-banking/transaction-accounts"==e||"/international-travel/new-to-australia/choice-new-arrivals"==e||"/international-travel/new-to-australia/choice-new-arrivals/summary"==e||"/personal-banking/home-loans/first-home"==e||"/business-banking/startup-hub/startup-garage"==e||"/business-banking/transaction-accounts/competition"==e||"/business-banking/business-loan-qantas-points"==e||"/bank-accounts/savings-accounts/savings-calculator"==e||"/home-loans/first-home"==e||"/bank-accounts/help-me-choose"==e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"}, 15leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC5cc790eb703744d2bce82a48097caf9f-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLce2fa3df6fbd417885ab89b4c78cc93c",name:"DDO Pages - After Page Load ",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"AnalyticsEvent_pageKey"},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"business-banking/transaction-accounts/business-one/summary",valueIsRegex:!0},{value:"business-banking/transaction-accounts/business-one-plus/summary",valueIsRegex:!0},{value:"business-banking/savings-accounts/cash-reserve/summary",valueIsRegex:!0},{value:"business-banking/bank-accounts/foreign-currency-account/summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/transaction/summary-kids-teens",valueIsRegex:!0},{value:"personal-banking/share-trading/join/summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/savings-accounts/life/summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/savings-accounts/esaver/summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/transaction/55-and-retired/summary",valueIsRegex:!0},{value:"business-banking/transaction-accounts/business-one-plus/westpac-summary",valueIsRegex:!0},{value:"business-banking/transaction-accounts/business-one/westpac-summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/transaction/choice/summary",valueIsRegex:!0},{value:"international-travel/new-to-australia/choice-new-arrivals/summary",valueIsRegex:!0}]}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCa48a3b04d7ba4aebb0bce65900bdb0bc-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLd92eeedba162435fa971ea4130fb91f7",name:"Page: QuantCast_IDSync_HomePage #70",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:70}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){return!(!helper.isHomePage()||_satellite.cookie.get("qc_idsy"))}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCeef5d0ba14744b579ee9d83b33fbe684-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLd9fcc710820d48fdb9b112df0fcffb46",name:"Page: Allianz CTA - Appending irclickid to URL",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return"/personal-banking/insurance"==(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""))||"/personal-banking/insurance/home-insurance"==e||"/personal-banking/insurance/car-insurance"==e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC35866a19fcb14b308438b3ef099a7739-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLdfde6f82c67545a98765306487af3c11",name:"DDO Pages - On Existing Customer Button Click",events:[{modulePath:"core/src/lib/events/click.js",settings:{elementSelector:'div.btn-group[role="radiogroup"] .btn-group-item[role="radio"]',bubbleFireIfParent:!0,bubbleFireIfChildFired:!0},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/pathAndQuerystring.js",
15settings:{paths:[{value:"business-banking/transaction-accounts/business-one/summary",valueIsRegex:!0},{value:"business-banking/transaction-accounts/business-one-plus/summary",valueIsRegex:!0},{value:"business-banking/savings-accounts/cash-reserve/summary",valueIsRegex:!0},{value:"business-banking/bank-accounts/foreign-currency-account/summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/transaction/summary-kids-teens",valueIsRegex:!0},{value:"personal-banking/share-trading/join/summary",valueIsRegex:!0},{value:"business-banking/transaction-accounts/business-one-plus/westpac-summary",valueIsRegex:!0},{value:"business-banking/transaction-accounts/business-one/westpac-summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/savings-accounts/life/summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/savings-accounts/esaver/summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/transaction/55-and-retired/summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/transaction/choice/summary",valueIsRegex:!0},{value:"international-travel/new-to-australia/choice-new-arrivals/summary",valueIsRegex:!0}]}},{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){document.addEventListener("click",(function(e){var n=e.target.closest('[role="radio"]');if(n){var t=n.closest(".toggle-switch-wrapper");if(t){var a=t.querySelector(".bodycopy h2, h2");if(a){var r=(a.textContent||"").replace(/\s+/g," ").trim().toLowerCase();if(r.includes("already a westpac customer")||r.includes("existing customer")||r.includes("existing westpac customer")){var s=(n.textContent||"").trim().toLowerCase();return"yes"===s?(pageDetails.journeyType="auth",pageDetails.cusRelationType="etb"):"no"===s&&(pageDetails.journeyType="pub",pageDetails.cusRelationType="ntb"),!0}}}}}))}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCa93a7a9b3c0f4171bb01b08c4afef553-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLe110ca85757e472594551864a61d3754",name:"Usabilla Home Loan Page - Intercept Survey",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:70}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");if(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""),["/personal-banking/home-loans/fixed","/personal-banking/home-loans/variable/basic-variable-home-loan","/personal-banking/home-loans/variable/variable-loan-with-offset","/personal-banking/home-loans/calculator/mortgage-calculator","/personal-banking/bank-accounts","/personal-banking/bank-accounts/savings-accounts","/personal-banking/home-loans/variable/basic-variable-home-loan","/personal-banking/home-loans/fixed","/personal-banking/home-loans/variable/variable-loan-with-offset","/personal-banking/home-loans","/personal-banking/home-loans/next-home","/personal-banking/home-loans/refinance","/personal-banking/home-loans/first-home","/personal-banking/home-loans/investing-in-property","/personal-banking/home-loans/manage-home-loan"].indexOf(e)>=0)return!0}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC9593c0747df74f3d86c5d66f2500b72a-source.min.js",language:"javascript",isExternal:!0}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC7ae936fdd04f46f5825396fe9a0cf449-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLe1b8cb476d92432d87c2825a69e64dea",name:"Event: Quantcast Tag Home Loan Enquiry",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"eventKey"},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){if("complete"==p
15ageDetails.pageAction&&pageDetails.productID&&("ntb hl enquiry"==pageDetails.productID[0].ProductName||"switch hl enquiry"==pageDetails.productID[0].ProductName))return!0}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC1d1aec6371a04b5086bcf33f4f4e2efd-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLe29c6d2be7b2427981fc45d3f72c94e7",name:"Page:Finder & CCC #110",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:110}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%Site_Name%",rightOperand:"^www$"}},{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){return"home"!=_satellite.getVar("Site_Section")}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:'function getParameterByName(name, url) {\n if (!url) url = window.location.href;\n name = name.replace(/[\\[\\]]/g, "\\\\$&");\n var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),\n results = regex.exec(url);\n if (!results) return null;\n if (!results[2]) return \'\';\n return decodeURIComponent(results[2].replace(/\\+/g, " "));\n}\n\nif(!!getParameterByName("cid"))\n{\n document.cookie = "_finder_fid=; expires=Thu, 01 Jan 1970 00:00:01 GMT; domain=.westpac.com.au; path=/";\n document.cookie = "_ccc_uid=; expires=Thu, 01 Jan 1970 00:00:01 GMT; domain=.westpac.com.au; path=/";\n}\n\nif(!!getParameterByName("affid") && !!getParameterByName("offer_id"))\n{\n\tvar date = new Date();\n date.setTime(date.getTime() + (7*24*60*60*1000));\n var expires = "; expires=" + date.toUTCString();\n\tdocument.cookie = "_finder_fid=" + getParameterByName("affid") + "|" + getParameterByName("offer_id") + expires + "; domain=.westpac.com.au; path=/";\n}\n\nif(!!getParameterByName("uid",document.referrer))\n{\n\tvar date = new Date();\n date.setTime(date.getTime() + (7*24*60*60*1000));\n var expires = "; expires=" + date.toUTCString();\n\tdocument.cookie = "_ccc_uid=" + getParameterByName("uid",document.referrer) + expires + "; domain=.westpac.com.au; path=/";\n}',language:"javascript"}}]},{id:"RLe366a80a6bb74092a07d1cf9ed16d24f",name:"Page: Google Vertex_Homepage_PoC",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return""==(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""))||"/home"==e}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:'<meta name="google-site-verification" content="b9NAc33syt1_yqnQKaaH5grn912KuhE_ttps_EdFLKo" />',language:"html"}}]}
15,{id:"RLe4feb1ad4c5b44e0a91c990743ed9358",name:"Event:webSDK_Quote Tool_Trigger #50",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"AnalyticsEvent_pageKey"},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"equals"},leftOperand:"%AnalyticsTracking_Type%",rightOperand:"component"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCea5a0fb8b5784701b16479b46efef800-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLe90e22f951e44739aa5f86e85d76c8f1",name:"Page:Pixel-AAM-DoubleClick #65",events:[{modulePath:"core/src/lib/events/domReady.js",settings:{},ruleOrder:65}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return""!=(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))&&"/home"!=e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC83d2ae47be464a9d87eb3b12bafd368f-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLe9648bacbbc141518709e58ab0ac9cc4",name:"Page: Usabilla",events:[{modulePath:"core/src/lib/events/pageBottom.js",settings:{},ruleOrder:70}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");if(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""),["/business-banking/online-banking/support-faqs/payment-limits","/business-banking/online-banking/support-faqs/export-detailed-transaction-history","/business-banking/online-banking/support-faqs/add-update-abn","/business-banking/online-banking/support-faqs/ordering-a-bank-cheque-online","/business-banking/online-banking/support-faqs/connect-bank-feeds","/business-banking/online-banking/support-faqs/import-payment-file-aba-pay-anyone","/business-banking/online-banking/support-faqs/westpac-live-forms","/business-banking/online-banking/support-faqs/viewing-statements-online","/business-banking/online-banking/support-faqs/viewing-cheque-deposit-images","/business-banking/online-banking/support-faqs/add-a-new-user","/business-banking/online-banking/support-faqs/sameday-rtgs-payment","/business-banking/online-banking/support-faqs/faqs-general","/business-banking/online-banking/support-faqs/managing-account-access","/business-banking/online-banking/support-faqs/term-deposits","/business-banking/online-banking/support-faqs/give-users-access-to-a-new-account","/business-banking/online-banking/support-faqs/manage-permission-and-approval-settings","/business-banking/online-banking/support-faqs/enable-merchant-services","/business-banking/online-banking/support-faqs/importing-payment-details","/business-banking/online-banking/support-faqs/update-third-party-access-for-business-customers","/business-banking/online-banking/support-faqs/update-your-contact-and-billing-details","/business-banking/online-banking/support-faqs/replacement-expiring-token","/business-banking/online-banking/support-faqs/managing-your-statement-preferences","/business-banking/online-banking/support-faqs/edit-or-remove-existing-users","/business-banking/online-banking/support-faqs/export-accounts-and-groups-list","/business-banking/online-banking/support-faqs/how-do-i-make-international-payments","/business-banking/online-banking/support-faqs/import-payee-details","/business-banking/online-banking/support-faqs/remove-a-user","/business-banking/online-banking/support-faqs/term-deposits-giving-access","/business-banking/online-banking/support-faqs/making-multiple-payments","/business-banking/online-banking/support-faqs/mange-recurring-payments","/business-banking/online-banking/support-faqs/activate-token","/business-banking/online-banking/support-faqs/export-payees-list","/business-banking/online-banking/support-faqs/setting-up-approvals-for-payments","/business-banking/online-banking/support-faqs/estatements-faqs","/business-banking/online-banking/support-faqs/accessibility","/business-banking/online-banking/support-faqs/change-business-address-online","/business-banking/online-banking/support-faqs/create-a-payee-group","/business-banking/online-banking/support-faqs/rename-account","/business-banking/online-banking/support-faqs/farm-management-deposits","/business-banking/online-banking/support-faqs/nominate-an-administrator","/business-banking/online-banking/support-faqs/create-a-payment-template","/business-banking/online-banking/support-faqs/term-deposit-user-guide","/business-banking/online-banking/support-faqs/set-the-number-of-approvals-for-administration-tasks","/business-banking/online-banking/support-faqs/switch-secureid-protect-sms","/business-banking/online-banking/support-faqs/switch-security-devices","/business-banking/online-banking/support-faqs/nominate-an-administrator","/business-banking/online-banking/support-faqs/assign-token-to-user","/business-banking/online-banking/support-faqs/request-spare-tokens","/business-banking/online-banking/support-faqs/merchant-estatements-faqs","/business-banking/online-banking/support-faqs/access-times-for-users","/business-banking/online-banking/support-faqs/notify-westpac-travelling-overseas","/business-banking/online-banking/support-faqs/change-business-phone-number-online","/business-banking/online-banking/support-faqs/approving-statement-preference-changes","/business-banking/online-banking/support-faqs/hints-tips/business-set-up-for-success","/business-banking/online-banking/support-faqs/hints-tips/running-your-business-over-the-holidays","/business-banking/online-banking/support-faqs/view-registered-business-email-address","/business-banking/online-banking/support-faqs/add-update-abn","/business-banking/online-banking/support-faqs/viewing-merchant-services","/business-banking/online-banking/support-faqs/manage-recurring-payments","/business-banking/online-banking","/business-banking/online-banking/mobile-cheque-deposit","/business-banking/online-banking/new","/business-banking/online-banking/support-faqs","/business-banking/online-banking/support-faqs/manage-permission-approval","/faq/forgotten-login","/personal-banking/online-banking","/personal-banking/online-banking/making-the-most","/personal-banking/online-banking/making-the-most/cardless-cash","/personal-banking/online-banking/making-the-most/cards-hub","/personal-banking/online-banking/making-the-most/contact-us-in-app","/personal-banking/online-banking/making-the-most/identify-unknown-transaction","/personal-banking/online-banking/making-the-most/interest-and-tax-summary","/personal-banking/online-banking/making-the-most/lost-stolen-card","/personal-banking/online-banking/making-the-most/notifications","/
15personal-banking/online-banking/making-the-most/quick-balance","/personal-banking/online-banking/making-the-most/quick-signin","/personal-banking/online-banking/making-the-most/reissue-card","/personal-banking/online-banking/making-the-most/smart-search","/personal-banking/online-banking/ways-to-bank/mobile-banking","/personal-banking/online-banking/whats-new","/business-banking/credit-cards/manage/fraud-disputes-lost-stolen-cards/block-business-credit-card","/business-banking/credit-cards/manage/fraud-disputes-lost-stolen-cards/lost-stolen-cards","/business-banking/online-banking/password-resets","/business-banking/online-banking/support-faqs","/business-banking/online-banking/support-faqs/group-accounts","/business-banking/online-banking/support-faqs/manage-tokens","/business-banking/online-banking/support-faqs/merchant-services","/business-banking/online-banking/support-faqs/online-banking-forms","/business-banking/online-banking/support-faqs/proof-of-balance","/business-banking/online-banking/support-faqs/stop-a-cheque","/personal-banking/online-banking/making-the-most/lock-card"].indexOf(e)>=0)return!0}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:'//$( ".content" ).after(\'<div ub-in-page="5f87beeb7f379f5b731fa7da"></div>\');\n\n$(\'.button-wrapper.text-center:contains("Was this guide helpful?")\').replaceWith(\'<div id="wbc-usabilla" ub-in-page="5f87beeb7f379f5b731fa7da"></div>\');\n',language:"javascript"}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:'setTimeout(function () {\nwindow.usabilla || function() {\n var a = window,\n d = a.document,\n c = {},\n f = d.createElement("div"),\n h = !1,\n a = a.usabilla = function() {\n (c.a = c.a || []).push(arguments)\n };\n a._ = c;\n c.ids = {};\n f.style.display = "none";\n (function() {\n if (!d.body) return setTimeout(arguments.callee, 100);\n d.body.insertBefore(f, d.body.firstChild).id = "usabilla";\n h = !0\n })();\n a.load = function(a, g, k) {\n if (!c.ids[g]) {\n var e = c.ids = {};\n e.url = "//" + a + "/" + g + ".js?s1";\n e.config = k;\n setTimeout(function() {\n if (!h) return setTimeout(arguments.callee, 100);\n var b = d.createElement("iframe"),\n a;\n b.id = "usabilla-" + g;\n /MSIE[ ]+6/.test(navigator.userAgent) && (b.src = "javascript:false");\n f.appendChild(b);\n try {\n b.contentWindow.document.open()\n } catch (c) {\n e.domain = d.domain, a = "javascript:var d=document.open();d.domain=\'" + e.domain + "\';", b.src = a + "void(0);"\n }\n try {\n var l = b.contentWindow.document;\n l.write(["<!DOCTYPE html><html><head></head><body onload=\\"var d = document;d.getElementsByTagName(\'head\')[0].appendChild(d.createElement(\'script\')).src=\'", e.url, "\'\\"></body></html>"].join(""));\n l.close()\n } catch (m) {\n b.src = a + \'d.write("\' + loaderHtml().replace(/"/g, String.fromCharCode(92) + \'"\') + \'");d.close();\'\n }\n b.contentWindow.config = k;\n b.contentWindow.SCRIPT_ID = g\n }, 0)\n }\n }\n}();\nwindow.usabilla.load("w.usabilla.com", "ef55e3331d14");\n\n//Usabilla Custom Variables script start\n \n if (helper.marketingCloudVisitorID()) {\n document.getElementById(\'wbc-usabilla\').setAttribute("ub-in-page-eVar25", helper.marketingCloudVisitorID())\n }\n if (helper.cookieRead("s_wbc-ti")) {\n document.getElementById(\'wbc-usabilla\').setAttribute("ub-in-page-eVar35", helper.cookieRead("s_wbc-ti") )\n };\n if (helper.cookieRead(\'FPID\')){\n document.getElementById(\'wbc-usabilla\').setAttribute("ub-in-page-eVar49", helper.cookieRead(\'FPID\') )\n };\n if (helper.cookieRead("s_biz_ti")){ \n document.getElementById(\'wbc-usabilla\').setAttribute("ub-in-page-eVar71", helper.cookieRead("s_biz_ti"))\n };\n\n }, 3000);',language:"javascript"}}]},{id:"RLeb044cc14f42461b8a51aedf44c43a5e",name:"Page: WBC Secure Funding - Redirections",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:90}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return e=e.replace(/\/content\/public\/wbc\/en/,""),"fixed-income-investors"==pageDetails.siteSubSubSection}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCbecbbb11c68c416299e6e370643b75fe-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLecaca0015f834334be5769c8265c0034",name:"Event: Gtag Calculators Button tagging - EventKey based",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"eventKey"},ruleOrder:56}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return window.location.hash&&(e=(window.location.pathname+window.location.hash).toLowerCase().replace(/\/$/,"")),"/personal-banking/home-loans/calculator/mortgage-repayment"==(e=(e=e.replace(/\/content\/sbg\/wbc\/en/,"")).replace(/\.html$/,""))||"/personal-banking/home-loans/calculator/home-equity-calculator/#/equity-calculator"==e||"/personal-banking/home-loans/calculator/home-saver/#/time"==e||"/personal-banking/home-loans/calculator/stamp-duty-calculator/"==e||"/home-loans/calculator/mortgage-repayment"==e||"/home-loans/calculator/home-equity-calculator/#/equity-calculator"==e||"/home-loans/calculator/stamp-duty-calculator/"==e}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"matchesRegex"},leftOperand:"%eventKey%",rightOperand:"^(wbc|stg|bom|bsa):(desktop|mob|tab)_(calc-tool_repayment-calculator_interacted|calc-tool_next-home-buyer_property-overview|calc-tool_stampduty-lmi-calculator_interacted|_calc-tool_first-home-buyer_explore-deposit-options)"}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCece426e3ffa44d75b86d04e13517
15a149-source.min.js",language:"javascript",isExternal:!0}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCbb070842aad54ca2ade8c364fbded2a7-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLecdcd666683445debe8728069a290387",name:"Event:Analytics_Media_Trigger #70",events:[{modulePath:"core/src/lib/events/dataElementChange.js",settings:{name:"media"},ruleOrder:50}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCb080beb996754bd88c5e9c7684c51230-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLf09bebbd4c594835860b3c3b18b94afc",name:"Page: Gtag Performics BT",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");if(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""),["/personal-banking/superannuation/self-managed-superannuation-accounts","/personal-banking/superannuation/bt-super-for-life","/personal-banking/superannuation/bt-super-invest","/business-banking/superannuation","/business-banking/superannuation/bt-super","/business-banking/superannuation/super-profile","/business-banking/superannuation/bt-super-concierge","/personal-banking/services/private-banking-services"].indexOf(e)>=0)return!0}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC6b6ed2ed585e42e4b6d66467ab69512b-source.min.js",language:"javascript",isExternal:!0}},{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC268b29878fbf45ffb891c7aa4f2f1f59-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLf4af1754627c48b288cb75515bc40e44",name:"DDO Pages - On Continue Button Click",events:[{modulePath:"core/src/lib/events/click.js",settings:{elementSelector:'a.btn.btn-primary.basic[href*="/galileo/"],a.btn.btn-primary.basic[href*="/genesis/"]',bubbleFireIfParent:!0,bubbleFireIfChildFired:!0},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/path.js",settings:{paths:[{value:"business-banking/transaction-accounts/business-one/summary",valueIsRegex:!0},{value:"business-banking/transaction-accounts/business-one-plus/summary",valueIsRegex:!0},{value:"business-banking/savings-accounts/cash-reserve/summary",valueIsRegex:!0},{value:"business-banking/bank-accounts/foreign-currency-account/summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/transaction/summary-kids-teens",valueIsRegex:!0},{value:"personal-banking/share-trading/join/summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/savings-accounts/life/summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/savings-accounts/esaver/summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/transaction/55-and-retired/summary",valueIsRegex:!0},{value:"business-banking/transaction-accounts/business-one-plus/westpac-summary",valueIsRegex:!0},{value:"business-banking/transaction-accounts/business-one/westpac-summary",valueIsRegex:!0},{value:"personal-banking/bank-accounts/transaction/choice/summary",valueIsRegex:!0},{value:"international-travel/new-to-australia/choice-new-arrivals/summary",valueIsRegex:!0}]}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCaa415a7bdef2499492f6187172983cb4-source.min.js",language:"javascript",isExternal:!0}},{modulePath:"core/src/lib/actions/customCode.js",settings:{source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RCe69924db704c49ceab4ae0d6d962bc71-source.min.js",language:"javascript",isExternal:!0}}]},{id:"RLf59aabff4e1e4e71aa1361f17ee2261a",name:"Page:webSDK_Helper #37",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:37}],conditions:[],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0, 16source:"_satellite.logger.info('helper --> start')\n\nvar helper = window.helper || {};\nhelper.version = 'h:2.11'; \nhelper.w_wtT =window.w_wtT || window.testTracking || {};//test environment variables\nhelper.pathConcatDelim = ':';\nhelper.queryVarsList= '';\nhelper.pathExcludeList=''; // elements to exclude from the path - index.html? default.aspx for info?\nhelper.pathExcludeDelim = ';'; // portion of the path to exclude - was ;\nhelper.siteID= ''; //s.siteID set in doPlugins to allow changing to 'app' based on visitorID cookie from apps\nhelper.w_queue = [];\nhelper.lowerCase_ex =\"helper.lowerCase(@val, @alt) \\nlower case strings or (not set) if empty\";\nhelper.isSafari = /^((?!chrome|android).)*(apple|safari)/i.test(navigator.userAgent);\nhelper.lowerCase = function (val, alt) {\n var altVal = alt ? '(not set)' : '';\n return String(val || altVal).toLowerCase();\n};\nhelper.domainPeriod = function(domain){\n return ((/.+\\.(com\\.au|org\\.au|co\\.nz|co\\.uk)$/i).test(domain||location.hostname))? 3 : 2\n};\nhelper.cookieDomain = function(domain){\n var host = domain || location.hostname,\n dp= helper.domainPeriod(domain),\n ln = host.split('.').length;\n if((/[0-9]{1,3}$/i).test(location.hostname)){\n return host;\n }\n return '.'+host.split('.').slice(ln-dp).join('.');\n};\nhelper.clean_ex =\"helper.clean(@str) \\nclean strings - trim and remove multiple spaces for consistency\";\nhelper.clean = function (str) {\n return (str ? String(str) : '').replace(/\\s+/g, ' ').replace(/^\\s|\\s$/g, '');\n};\nhelper.guidRgx = /\\b\\w{8}-\\w{4}-\\w{4}-\\w{4}-\\w{12}\\b/g;\nhelper.guidBt = /\\b(\\/|a=)\\w{48}(\\/|$)\\b/g;\nhelper.guidCompass= /\\bnameId\\=\\w{64}\\b/g;\nhelper.guidAce= /\\ACEdata\\=\\w{634}\\b/g;\nhelper.guidMid = new RegExp('adobe_mc=(.*?)(?=\\\\?|&|;|#|\\\\/|$)','i');\nhelper.guidAid = new RegExp('(adobe_aa_vid|s_vi|s_vid)=(.*?)(?=\\\\?|&|;|#|\\\\/|$)','i');\nhelper.dateUrl = /\\b\\d{4}-\\d{1,2}-\\d{1,2}\\b/g;\nhelper.guidWebMid = new RegExp('webmid=(.*?)(?=\\\\?|&|;|#|\\\\/|$)','i');\nhelper.wLiveId = new RegExp('(accountglobalid|paymentid|payeeendpointid|memberid|workflowid|ppid|alertid|billid|compartmentid|messageid|(\\\\?|&|#)id)=(.*?)(?=\\\\?|&|;|#|\\\\/|$)','i');\nhelper.latlong = new RegExp('(\\\\-?)\\\\d{1,3}\\\\.\\\\d{6}:(\\\\-?)\\\\d{1,3}\\\\.\\\\d{6}','i');\nhelper.cleanJSON_ex = \"helper.cleanJSON(@JSONdata) \\n remove non-printable and other non-valid JSON chars\";
16\nhelper.cleanJSON = function (JSONdata) {\n JSONdata = JSONdata.replace(/\\\\n/g, \"\\\\n\") \n .replace(/\\\\'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\\\\\"')\n .replace(/\\\\&/g, \"\\\\&\")\n .replace(/\\\\r/g, \"\\\\r\")\n .replace(/\\\\t/g, \"\\\\t\")\n .replace(/\\\\b/g, \"\\\\b\")\n .replace(/\\\\f/g, \"\\\\f\");\n // remove non-printable and other non-valid JSON chars\n JSONdata = JSONdata.replace(/[\\u0000-\\u0019]+/g,\"\"); \n return JSONdata = JSON.parse(JSONdata);\n};\n\nhelper.cleanURL_ex = \"helper.cleanURL(@loc, @locType) \\nremove guidRgx,referrer querystring parameter, multiple slashes, session ID,hash or hashbang\\@locType = 1 remove cid\";\nhelper.cleanURL = function (loc, locType) {\n var cleanedUrl = (loc || '')\n .replace(/(\\w)\\/\\/+/g, '$1/') // replace multiple slashes after a word char. with single slash (except for ://) for clean pageName (from location)\n .replace(/((?:&|\\?)referrer=.*?(?=&|$))/ig, '') // always remove referrer querystring parameter - it was generated for unica\n .replace(/(^https?:.+?(?:online|banking).+\\/cust\\/wps\\/(my)?portal\\/[pw]ol\\/)!ut\\/.*/i, '$1oregon-application') // Oregon - portal/pol|wol. remove session ID in path\n //.replace(/(^https?:.+?(www.)?forms.+\\.nsf)(?:.*\\w{32}.*)/i,'$1$2'); // Remove session ID only from Domino path $1 adds www. ???\n .replace(/(^https?:.+?(forms|online)(?:\\.|-).*\\.nsf.*?)(?:\\/\\w{32}(?=\\?))/i, '$1') // Remove session ID only from Domino path $1 adds www. ???\n .replace(helper.guidRgx, '') // remove OTP user GUID\n .replace(helper.guidBt, '') // remove OTP user GUID\n .replace(/\\baccountGlobalId=\\w{128}\\b/g, '') // remove OTP user GUID\n .replace(helper.guidMid, '') //Remove adobe MCMID\n .replace(helper.guidWebMid, '') //Remove adobe WEBMID\n .replace(helper.wLiveId, '') //Remove wlive other id\n .replace(helper.latlong, '') //remove latlong from URL\n .replace(helper.guidCompass, '') //remove compass GUID\n .replace(helper.guidAce, '') //remove compass GUID\n .replace(/#+!*$/, '') // remove hash or hashbang (or multiples of these characters) at end of loc (only) to unify URLs that would otherwise match\n .replace(/(default|index)(\\.html|\\.htm)/, '')\n .replace(/\\.html|\\.htm/, '')\n;\n\n if (locType === 1) {\n // locType 1 is page location\n // Keep querystring if it contains cid parameter for paid search detection\n // remove complete querystring for privacy/security/uniqueness/shorter request if not on Domino/oregon? form (handled separately)\n //cleanedUrl = cleanedUrl.replace(/\\?(?!(?:openform|readform|opendocument|funcreqd)).*/i, '');\n //cleanedUrl = cleanedUrl.replace(/\\?(?!(?:cid=.+|.*&cid=.+|openform|readform|opendocument|funcreqd)).*/i, '');\n //cleanedUrl = cleanedUrl.replace(/(\\?|&)(?!(?:cid=.+|openform|readform|opendocument|funcreqd)).*/i, '');\n //cleanedUrl = cleanedUrl.replace(/((\\?|&)(?!(?:cid=.+|openform|readform|opendocument|funcreqd))|#).*/i, ''); // this regex doesn't work. Still replaces if CID somewhere in querystring\n\n // if querystring doesn't contain things we want to keep, remove it. Remove hash and append it to eVar only.\n if (!(/(\\?|&)(cid=.+|openform|readform|opendocument|funcreqd)/i).test(cleanedUrl)) {\n //cleanedUrl = cleanedUrl.replace(/(\\?|&).*/, '');\n cleanedUrl = cleanedUrl.replace(/(\\?|&|#).*/, '');\n }\n }\n if (locType === 2) {\n cleanedUrl = cleanedUrl.replace(/(\\?|&|#).*/, '');\n }\n return cleanedUrl;\n};\nhelper.clone = function(val){\n return JSON.parse(JSON.stringify(val)); \n}\nhelper.cleanGUID = function (loc) {\n var cleanedUrl = (loc || '')\n .replace(helper.guidRgx, '(GUID)') // remove OTP user GUID\n .replace(helper.guidBt, '(GUID)') // remove OTP user GUID\n .replace(/\\baccountGlobalId=\\w{128}\\b/g, '(GUID)') // remove OTP user GUID\n .replace(/\\guid=\\w{32}\\b/g, '(GUID)') // remove FSV user GUID\n .replace(helper.guidMid, '(MCMID)') //Remove adobe MCMID\n .replace(helper.guidWebMid, '(WEBMID)') //Remove webmid from universal link\n .replace(helper.wLiveId, '(WLID)') //Remove Other id from wLive\n .replace(helper.guidAid, '(AID)') //Remove adobe MCMID\n .replace(helper.dateUrl, '(DATE)') //Remove Date yyyy-mm-dd\n .replace(helper.latlong, '(GEO)') //remove latlong from URL\n .replace(helper.guidCompass, '(COMPASS)') //remove latlong from URL\n .replace(helper.guidAce, '(GUID)') //remove latlong from URL\n .replace(/(state=)(.+)\\&/g, '$1(GUID)&') //remove \n ;\n return cleanedUrl;\n}\nhelper.getLoc_ex = \"helper.getLoc() return full current URL for test or prod\";
16 \nhelper.getLoc = function () {\n return helper.w_wtT.location || window.location;\n};\nhelper.addEvt = function (obj,evtName,evtValue){\n // allow text or numeric events to be passed\n obj['ev_'+ evtName] = evtValue ? evtValue : 1; \n //s2.events = s2.apl(s2.events, isNaN(evt) ? evt || '' : 'event' + evt, ',', 2);\n};\nhelper.fl_ex = \"helper.fl(@str, @len) \\nreturn substring of a given length\";\nhelper.fl = function(x,l){\nreturn x?(''+x).substring(0,l):x\n};\nhelper.p_c = function (v, c) {\n var x = v.indexOf('=');\n return c.toLowerCase() == v.substring(0, x < 0 ? v.length : x).toLowerCase() ? v : 0;\n};\n// convert prodVal into an array if it was only a string (single product or comma separated)\nhelper.prodArr = function (prodVal) {\n var prodTemp,\n prodArr,\n lp = 0,\n len;\n\n if (prodVal && typeof prodVal !== 'object') {\n //prodTemp = String(prodVal).replace(/^,+|,+$/g,'').split(',');\n prodTemp = String(prodVal).split(',');\n prodArr = [];\n for (len = prodTemp.length; lp < len; lp++) {\n // push individual product objects into prodArr array\n if (prodTemp[lp]) {\n prodArr.push({\n 'prod' : prodTemp[lp]\n });\n }\n }\n } else {\n prodArr = prodVal || [];\n }\n return prodArr;\n};\nhelper.cap_ex = \"helper.cap(@item, @cap) \\nif item value is greater than, or equal to cap, append '+'\";\nhelper.cap = function (item, cap) {\n\t\treturn item >= cap ? cap + '+' : item; // if item value is greater than, or equal to cap, append '+'. event50 (page load time) removes the '+', because the event value must be numeric.\n};\nhelper.domainPeriod = function(domain){\n return ((/.+\\.(com\\.au|org\\.au|co\\.nz|co\\.uk)$/i).test(domain||location.hostname))? 3 : 2\n};\nhelper.cookieDomain = function(domain){\n var host = domain || location.hostname,\n dp= helper.domainPeriod(domain),\n ln = host.split('.').length;\n if((/[0-9]{1,3}$/i).test(location.hostname)){\n return host;\n }\n return '.'+host.split('.').slice(ln-dp).join('.');\n};\nhelper.cookieRead_ex=\"helper.cookieRead(@sKey) \\nreturn the value of a given cookie \\@sKey =cookie name\";\nhelper.cookieRead = function (sKey) {\n return decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\\\s*' + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'), '$1')) || '';\n};\nhelper.cookieWrite_ex=\"helper.cookieWrite(@sKey, @sValue, @vEnd, @sPath, @sDomain, @bSecure) \\nWrite a cookie with given value \\n@sKey =cookie name \\n@sValue = cookie value, \\n@vEnd = cookie expiry \\n@sPath = domain path \\n@sDomain = cookie domain \\n@bSecure = secure flug\";\nhelper.cookieWrite = function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\n return false;\n }\n var sExpires = '';\n if (vEnd && vEnd.constructor === Date) {\n sExpires = '; expires=' + vEnd.toUTCString();\n }\n //document.cookie = encodeURIComponent(sKey) + '=' + encodeURIComponent(sValue) + sExpires + (sDomain ? '; domain=' + sDomain : '') + (sPath ? '; path=' + sPath : '') + (bSecure ? '; secure' : '');\n document.cookie = encodeURIComponent(sKey) + '=' + encodeURIComponent(sValue) + sExpires + (sDomain ? '; domain=' + sDomain : '; domain='+helper.cookieDomain()) + (sPath ? '; path=' + sPath : '; path=/') + (bSecure ? '; secure' : '');\n return true;\n};\nhelper.cookieAudit = function(){\n return document.cookie.length;\t\n}\n/*\n\t * Plugin: getValOnce_v1.1\n\t */\nhelper.getValOnce = function (v, c, e, t) {\n // value, cookie, time amount, time type (mins/days)\n var a = new Date(),\n vv = v || '',\n cc = c || 'h_gvo',\n ee = e || 0,\n i = t == 'm' ? 60000 : 86400000,\n cd = helper.cookieDomain(),\n k;\n k = helper.c_r(c);\n if (vv) {\n a.setTime(a.getTime() + ee * i);\n helper.c_w(cc, vv, ee == 0 ? 0 : a,'/', cd);\n }\n return vv == k ? '' : vv;\n};\n/*\n* Plugin: getVisitNum - version 3.0\n*/\n helper.getVisitNum = function (tp, c, c2) {\n var e = new Date,\n cval,\n cvisit,\n cd = helper.cookieDomain(),\n ct = e.getTime(),\n d;\n if (!tp) {\n tp = 'm';\n }\n if (tp == 'm' || tp == 'w' || tp == 'd') {\n eo = helper.endof(tp),\n y = eo.getTime();\n e.setTime(y);\n } else {\n d = tp * 86400000;\n e.setTime(ct + d);\n }\n if (!c) {\n c = 'u_vnum';\n }\n if (!c2) {\n c2 = 'u_invisit';\n }\n cval = helper.c_r(c);\n if (cval) {\n var i = cval.indexOf('&vn='),\n str = cval.substring(i + 4, cval.length),\n k;\n }\n cvisit = helper.c_r(c2);\n if (cvisit) {\n if (str) {\n e.setTime(ct + 1800000);\n helper.c_w(c2, 'true', e, '/', cd);\n return str;\n } else {\n return 'unknown visit number';\n }\n } else {\n if (str) {\n str++;\n k = cval.substring(0, i);\n e.setTime(k);\n helper.c_w(c, k + '&vn=' + str, e, '/', cd);\n e.setTime(ct + 1800000);\n helper.c_w(c2, 'true', e,'/', cd);\n return str;\n } else {\n helper.c_w(c, e.getTime() + '&vn=1', e,'/', cd);\n e.setTime(ct + 1800000);\n helper.c_w(c2, 'true', e, '/', cd);\n return 1;\n }\n }\n};\nhelper.dimo = function (m, y) {\n var d = new Date(y, m + 1, 0);\n return d.getDate();\n};\nhelper.endof = function (x) {\n var t = new Date;\n t.setHours(0);\n t.setMinutes(0);\n t.setSeconds(0);\n if (x == 'm') {\n d = helper.dimo(t.getMonth(), t.getFullYear()) - t.getDate() + 1;\n } else if (x == 'w') {\n d = 7 - t.getDay();\n } else {\n d = 1;\n }\n t.setDate(t.getDate() + d);\n return t;\n};\nhelper.evList = '';\nhelper.events = function (ev) {\n evList = helper.lStor('get', 's_ev')||'';\n if(ev){\n if(evList){\n evList = evList +';'+ ev;\n }
16else{\n evList = ev ;\n }\n helper.lStor('set', 's_ev', evList);\n }\n //console.log('s_ev:' + evList);\n return evList;\n};\n// serialisation value for events\nhelper.serial = function () {\n var serial = ('0000000' + Math.floor(Math.random() * (268435455 + 1)).toString(16)).slice(-7) + String(+new Date());\n //console.log('serial = ' + serial + ' ....... length ==== ' + serial.length);\n return String(serial).length === 20 ? serial : '';\n};\nhelper.getQueryParam =\"helper.getQueryParam(@parameters, @delimiter, @url, @startFromHash) \\nReturn a Query Param value(s)\";\nhelper.getQueryParam = function (parameters, delimiter, url, startFromHash) {\n var params = parameters.split(','),\n delim = delimiter || '',\n //ABU loc = String(url === 'f' ? s2.gtfs().location : url || (s2.w_getLoc().href || (s2.pageURL || s2.wd.location))), // 'f' from original function - used in case of frames?\n loc = String(url|| (helper.getLoc().href || window.location)),\n lp = 0,\n len = params.length,\n rgx,\n rgxStart = startFromHash === 1 ? '#(?:.*?&)?' : '(?:\\\\?|&|;|#)',\n val,\n values = [];\n\n //console.log('delim = ' + delim);\n //console.log('loc = ' + loc);\n //console.log('startFromHash = ' + startFromHash);\n\n if (parameters) {\n for (lp = 0; lp < len; lp++) {\n rgx = new RegExp(rgxStart + params[lp] + '=(.*?)(?=\\\\?|&|;|#|/|$)', 'i');\n val = rgx.exec(loc);\n\n //console.log(params[lp] + ' = ' + (val && val[1]));\n\n if (val) {\n values.push(decodeURIComponent(val[1].replace(/\\+/g, '%20')));\n }\n }\n }\n return values.join(delim);\n};\n// time parting\nhelper.timePart = function () {\n var dateNow = new Date(),\n dayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n return dayNames[dateNow.getDay()] + ' ' + ('00' + dateNow.getHours()).slice(-2) + ':' + (dateNow.getMinutes() > 29 ? '30' : '00');\n};\nhelper.pageURL = helper.cleanURL(helper.getLoc().href, 1);\nhelper.isPageHidden_ex =\"check if whole page is hidden/visible\";\nhelper.isPageHidden = function (u) {\n return document.hidden || (document.msHidden || document.webkitHidden);\n};\nhelper.isHomePage_ex =\"check if the page is home page\";\nhelper.isHomePage = function (u) {\n return /^\\/((default|index)\\.html?)?$/.test(helper.getLoc().pathname);\n};\nhelper.defaultPage = /^\\/((default|index)\\.html?)?$/.test(helper.getLoc().pathname) ? 'home' : ''; // filename to add when none exists (www home page)\nhelper.valReplace = function (initialVal, replaceDetails) {\n //console.log('initialVal = ' + initialVal);\n var prpty,\n //replaceSet = s.w_lStor('get', replaceDetails) || '[]',\n replaceSet = replaceDetails || [],\n replaceSetLength,\n replaceItem,\n resultName = initialVal;\n\n try {\n if (typeof replaceSet === 'string') {\n replaceSet = JSON.parse(replaceSet);\n }\n } catch (err) {\n //s.w_log(err);\n replaceSet = [];\n }\n //console.log('replaceSet = ' + replaceSet);\n //console.log(replaceSet);\n\n replaceSetLength = replaceSet.length;\n\n for (prpty = 0; prpty < replaceSetLength; prpty++) {\n //replaceItem = replaceSet[prpty].split('\\r');\n replaceItem = replaceSet[prpty];\n\n //console.log('replaceItem = ' + replaceItem);\n //console.log('replaceItem.length = ' + replaceItem.length);\n\n //if (replaceItem.length === 3) {\n if (replaceItem.exp) {\n //resultName = resultName.replace(new RegExp(replaceItem[0], replaceItem[1]), replaceItem[2]);\n resultName = resultName.replace(new RegExp(replaceItem.exp, replaceItem.flags || ''), replaceItem.subs || '');\n\n //console.log('new RegExp(replaceItem[0], replaceItem[1]) = ' + new RegExp(replaceItem[0], replaceItem[1]));\n //console.log('re = ' + new RegExp(replaceItem.exp, replaceItem.flags || '') + ', repl = ' + replaceItem.subs || '');\n //console.log('resultName = ' + resultName);\n }\n }\n\n //console.log('resultName = ' + resultName);\n return resultName;\n};\nhelper.getPageName = function (u) {\n var v = u || String(helper.pageURL),\n x = v.indexOf(':'),\n y = v.indexOf('/', x + 4),\n z = v.indexOf('?'),\n
16c = helper.pathConcatDelim,\n e = helper.pathExcludeDelim,\n g = helper.queryVarsList,\n d = helper.siteID,\n n = d || '',\n q = z < 0 ? '' : v.substring(z + 1),\n p = v.substring(y + 1, q ? z : v.length);\n z = p.indexOf('#');\n p = z < 0 ? p : helper.fl(p, z);\n x = e ? p.indexOf(e) : -1;\n p = x < 0 ? p : helper.fl(p, x);\n p += !p || p.charAt(p.length - 1) == '/' ? helper.defaultPage : '';\n y = c || '/';\n while (p) {\n x = p.indexOf('/');\n x = x < 0 ? p.length : x;\n z = helper.fl(p, x);\n if (!helper.pt(helper.pathExcludeList, ',', 'p_c', z)) {\n n += n ? y + z : z;\n }\n p = p.substring(x + 1);\n }\n y = c || '?';\n while (g) {\n x = g.indexOf(',');\n x = x < 0 ? g.length : x;\n z = helper.fl(g, x);\n z = helper.pt(q, '&', 'p_c', z);\n if (z) {\n n += n ? y + z : z;\n y = c || '&';\n }\n g = g.substring(x + 1);\n }\n return n;\n};\nhelper.ageBnds_ex = \"helper.amntAge(@text, @Value) \\nReturns bands of any value\";\nhelper.ageBnds = function (txt, age) { // type not required? all use the same bands\n var bands,\n band = {\n 'range' : txt + ':NaN' // default to unknown currency/value\n },\n lp;\n //amount=(transactionDetails[2]||'x'); // make amount 'x' (NaN - Not a Number) and exit function if no value set, instead of defaulting to zero and looping through bands\n //if(isNaN(amount)){\n if (isNaN(age)) {\n //band.range=type+':'+currency+':'+'NaN';\n //band.range=type+':NaN';\n //band.avg=0;\n return band;\n }\n //amount=Math.round(amount)/1000;\n //transactionValue = Math.round(transactionValue) / 10;\n\n bands = {\n '18<' : {\n min : 0,\n max : 18\n },\n '18-30' : {\n min : 19,\n max : 30\n }
16,\n '31-40' : {\n min : 31,\n max : 40\n },\n '41-50' : {\n min : 41,\n max : 50\n },\n '61-70' : {\n min : 61,\n max : 70\n },\n '71-80' : {\n min : 71,\n max : 80\n },\n '80+' : {\n min : 81,\n max : 200\n }\n };\n\n for (lp in bands) {\n //console.log(bands.hasOwnProperty(lp));\n if (bands.hasOwnProperty(lp)) {\n //if(amount>bands[lp][0] && (bands[lp][1]==='+'?true:amount<=bands[lp][1])){\n //if(amount>bands[lp][0][0] && (bands[lp][0][1]==='+'?true:amount<=bands[lp][0][1])){\n //console.log('age:' + age + ' (' + bands[lp].min + bands[lp].max + ')')\n if (age > bands[lp].min && age <= bands[lp].max) {\n //band.range=type+':'+currency+lp.replace(/-/,'-$');\n //band.range=type+':'+currency+':'+lp;\n band.range = txt ? (txt + ':' + lp) : lp;\n break;\n }\n }\n }\n return band;\n};\nhelper.setFormFieldVar = function (sitename, formname, fieldobj) { //TODO Make this more ganaric\n var fieldVar = '', formatedVal ='';\n if (typeof(fieldobj) == \"string\"){\n fieldVar = fieldobj;\n } else {\n for (lp in fieldobj){\n if (fieldobj.hasOwnProperty(lp)) {\n //console.log( lp + \" == \"+ fieldobj[lp] + '( NaN:'+ isNaN(fieldobj[lp])+')');\n formatedVal = isNaN(fieldobj[lp]) ? fieldobj[lp] : (lp.match(/age/gi) ? helper.ageBnds('',fieldobj[lp]).range : helper.amntBnds('', fieldobj[lp]).range);\n //console.log(lp +':'+ formatedVal +'|\\n');
16\n fieldVar = fieldVar + lp +':'+ formatedVal +'|'\n //console.log(fieldVar);\n }\n }\n }\n fieldVar = fieldVar.replace(/propertyType/ig, 'pType')\n .replace(/propertyPurpose/ig, 'pPurp')\n .replace(/firstHomeBuyer/ig, 'fHB')\n .replace(/buyingStage/ig, 'bStg')\n .replace(/borrowAmt/ig, 'bAmt')\n .replace(/depositAmt/ig, 'dAmt')\n .replace(/repaymentType/ig, 'rType')\n .replace(/totalIncomeAmt/ig, 'incAmt')\n .replace(/totalExpenseAmt/ig, 'expAmt')\n .replace(/totalLiability/ig, 'liaAmt')\n .replace(/loanAmtOffered/ig, 'loanAmt')\n .replace(/savingsBank/ig, 'savBank')\n .replace(/savedAmt/ig, 'savAmt')\n .replace(/propertyAddress/ig, 'pAddr')\n .replace(/estPropertyValue/ig, 'epVal')\n .replace(/\\|$/g, '')\n\n var formFieldPrefix = (sitename?sitename: '') + (formname? (':' + formname):'');\n return (formFieldPrefix ? (formFieldPrefix + '_'): '') + fieldVar;\n};\nhelper.setInteractionVars = function (dataLayer) {\n var contextVar = {},\n isPropertyCalculator,\n //authored values\n calculatorType = dataLayer.calculatorType,\n calculatorName = dataLayer.calculatorName,\n /*\n dyanamic values - user-input/selection\n divided into four categors\n Amount V
16ariables --> loanAmount & depositAmount\n Term Variables --> loanTerm & depositTerm\n Product Variables --> prodSelected\n Property Variables --> borrowingPurpose, firstHomeBuyer, propertyType, loanType, propertyValue\n */\n //Amount Variables\n loanAmount = dataLayer.loanAmount||'',\n depositAmount = dataLayer.depositAmount||'',\n transactionAmount = dataLayer.transactionAmount || '', // added to include eftpos1 calculators all brands\n\n //Term Variables\n loanTerm = dataLayer.loanTerm||'',\n depositTerm = dataLayer.depositTerm||'',\n //Product Variables\n prodSelected = dataLayer.prodSelected||'',\n //Property Variables\n borrowingPurpose = dataLayer.borrowingPurpose||'',\n firstHomeBuyer = dataLayer.firstHomeBuyer||'',\n propertyType = dataLayer.propertyType||'',\n loanType = dataLayer.loanType||'',\n propertyValue = dataLayer.propertyValue||'',\n //category values\n amountVars,\n termVars,\n productVars,\n propertyVars,\n //amountBand\n amtBand =helper.amntBnds,\n amtRange,\n // calculator name (eVar62)\n calcDetails,\n calcName = (calculatorType ? calculatorType:'(not set)') + ':' + (calculatorName ? calculatorName:'(not set)');\n \n // band for property range if it exists\n if(propertyValue){\n prptyValRange = amtBand('', propertyValue);\n propertyValue = prptyValRange.range;\n }\n //console.info('calcName', calcName);\n //chcek if propertyVar is valid for the current calculator\n isPropertyCalculator = borrowingPurpose || firstHomeBuyer || propertyType || loanType || propertyValue;\n //console.info('isPropertyCalc', isPropertyCalculator);\n //console.info('productVars', productVars);\n if (isPropertyCalculator) {\n propertyVars = 'PROP_' + (borrowingPurpose ? '' + borrowingPurpose : '') + (firstHomeBuyer ? ';' + firstHomeBuyer : '') + (propertyType ? ';' + propertyType : '') + (loanType ? ';' + loanType : '') + (propertyValue ? ';' + propertyValue : '');\n }\n if (prodSelected) {\n productVars = 'PROD_' + prodSelected;\n }\n if (loanAmount || depositAmount || transactionAmount) {\n var amtToRange;\n amtToRange = loanAmount || depositAmount || transactionAmount;\n amtRange = amtBand('', amtToRange);\n amtRange = amtRange.range;\n //console.info('amtRange', amtRange);\n amountVars = 'AMNT_' + amtRange;\n //console.info('amountVars', amountVars);\n }\n if (loanTerm || depositTerm) {\n termVars = 'TERM_' + loanTerm || depositTerm;\n //console.info(termVars);\n }\n \n calcDetails = 'calc' + '_' + (amountVars ? '|' + amountVars : '') + (termVars ? '|' + termVars : '') + (productVars ? '|' + productVars : '') + (propertyVars ? '|' + propertyVars : '') + '|';\n \n contextVar = {\n 'amountVar': amountVars,\n 'termVar': termVars,\n 'productVar': productVars,\n 'propertyVar': propertyVars,\n 'calculatorName': calcName,\n 'calculatorDetails': calcDetails,\n };\n return contextVar;\n};\nhelper.amntBnds_ex = \"helper.amntBnds(@type, @Value) \\nReturns bands of any value\";\nhelper.amntBnds = function (type, transactionValue) { // type not required? all use the same bands\n var bands,\n band = {\n 'range' : type +':NaN', // default to unknown currency/value\n 'avg' : 0 // default\n },\n lp;\n //transactionDetails=(transactionValue||'').match(/(^\\D*)(.*)/), // Values may be like '1200', '$123.45' ($=AUD), 'USD123.45', 'EUR123' etc.\n //currency,\n //amount;\n\n //currency=(transactionDetails[1]||'AUD').toUpperCase(); // default to AUD if currency missing\n //if(currency==='$'){ // default to AUD if currency prefix = $\n //\tcurrency='AUD';\n //}\n //s.currencyCode=currency; // how to ensure reverts to AUD and any currency specified is used for all/appropriate items in request? i.e. not overwritten if set\n\n //amount=(transactionDetails[2]||'x'); // make amount 'x' (NaN - Not a Number) and exit function if no value set, instead of defaulting to zero and looping through bands\n //if(isNaN(amount)){\n if (isNaN(transactionValue)) {\n //band.range=type+':'+currency+':'+'NaN';\n //band.range=type+':NaN';\n //band.avg=0;\n return band;\n }\n //amount=Math.round(amount)/1000;\n transactionValue = Math.round(transactionValue) / 1000;\n\n bands = {\n '0' : {\n min : -1,\n max : 0,\n avg : 0\n },\n '0-100' : {\n min : 0,\n max : 0.1,\n avg : 0.05\n },\n '100-500' : {\n min : 0.1,\n max : 0.5,\n avg : 0.3\n },\n '500-1K' : {\n min : 0.5,\n max : 1,\n avg : 0.75\n },\n '1K-2K' : {\n min : 1,\n max : 2,\n avg : 1.5\n },\n '2K-5K' : {\n min : 2,\n max : 5,\n avg : 3.5\n },\n '5K-10K' : {\n min : 5,\n max : 10,\n avg : 7.5\n },\n '10K-20K' : {\n min : 10,\n max : 20,\n avg : 15\n },\n '20K-30K' : {\n min : 20,\n max : 30,\n avg : 25\n },\n '30K-50K' : {\n min : 30,\n max : 50,\n avg : 40\n },\n '50K-100K' : {\n min : 50,\n max : 100,\n avg : 75\n },\n '100K-150K' : {\n min : 100,\n max : 150,\n avg : 125\n },\n '150K-200K' : {\n min : 150,\n max : 200,\n avg : 175\n },\n '200K-250K' : {\n min : 200,\n max : 250,\n avg : 225\n },\n '250K-300K' : {\n min : 250,\n max : 300,\n avg : 275\n },\n '300K-400K' : {\n min : 300,\n max : 400,\n avg : 350\n },\n '400K-500K' : {\n min : 400,\n max : 500,\n avg : 450\n },\n '500K-600K' : {\n min : 500,\n max : 600,\n avg : 550\n },\n '600K-700K' : {\n min : 600,\n max : 700,\n avg : 650\n },\n '700K-800K' : {\n min : 700,\n max : 800,\n avg : 750\n },\n '800K-1M' : {\n min : 800,\n max : 1000,\n avg : 900\n },\n '1M+' : {\n min : 1000,\n max : '+',\n avg : 1000\n }\n };\n\n //}\n // determine band\n for (lp in bands) {\n if (bands.hasOwnProperty(lp)) {\n //if(amount>
16bands[lp][0] && (bands[lp][1]==='+'?true:amount<=bands[lp][1])){\n //if(amount>bands[lp][0][0] && (bands[lp][0][1]==='+'?true:amount<=bands[lp][0][1])){\n if (transactionValue > bands[lp].min && (bands[lp].max === '+' ? true : transactionValue <= bands[lp].max)) {\n //band.range=type+':'+currency+lp.replace(/-/,'-$');\n //band.range=type+':'+currency+':'+lp;\n band.range = type ? (type + ':' + lp) : lp;\n band.avg = bands[lp].avg * 1000;\n break;\n }\n }\n }\n return band;\n};\nhelper.srchTerm = function (val) {\n var srchTerm = val,\n lp = 8,\n hashes = '########'; //,hashes=new Array(lp).join('#')\n\n if (srchTerm) {\n //srchTerm=s.w_clean(s.w_lCase(srchTerm));\n srchTerm = helper.lowerCase(srchTerm);\n while (lp--) {\n srchTerm = srchTerm.replace(new RegExp('(\\\\d{4}.?)\\\\d{' + (lp + 1) + ',}', 'g'), '$1' + hashes.substring(0, lp + 1));\n }\n }\n //console.log(srchTerm);\n return srchTerm;\n};\n\n/*helper.xdmPut = function (xdmObj, xdmPath, xdmValue) {\n if(xdmPath=='' || typeof(xdmObj)!=='object'){\n return false;\n } \n else{\n return xdmObj[xdmPath] = xdmValue;\n }\n};*/\nhelper.xdmGet = function(obj, path) {\n if (typeof path !== 'string') return path;\n return path.split('.').reduce(function(current, key) {\n return current != null ? current[key] : undefined;\n }, obj);\n};\nhelper.xdmRemove = function (obj, path) {\n function stringToPath(path) {\n if (typeof path !== 'string') return path;\n let output = [];\n path.split('.').forEach(function (item) {\n item.split(/\\[([^}]+)\\]/g).forEach(function (key) {\n if (key.length > 0) {\n output.push(key);\n }\n });\n });\n return output;\n }\n\n path = stringToPath(path);\n let length = path.length;\n let current = obj;\n\n for (let i = 0; i < length; i++) {\n let key = path[i];\n let isArray = key.slice(-2) === '[]';\n key = isArray ? key.slice(0, -2) : key;\n\n if (i === length - 1) {\n // Final key: clear subnodes, but keep the object\n if (current[key] && typeof current[key] === 'object' && !Array.isArray(current[key])) {\n for (let subKey in current[key]) {\n if (Object.prototype.hasOwnProperty.call(current[key], subKey)) {\n delete current[key][subKey];\n }\n }\n }\n } else {\n if (!current[key] || typeof current[key] !== 'object') {\n return obj; // Path doesn't exist; nothing to do\n }\n current = current[key];\n }\n }\n\n return obj;\n};\nhelper.xdmPut = function (obj, path, val) {\n if (val===''){\n return obj;\n }\n\t/**\n\t * If the path is a string, convert it to an array\n\t * @param {String|Array} path The path\n\t * @return {Array} The path array\n\t */\n\tfunction stringToPath (path) {\n\t\t// If the path isn't a string, return it\n\t\tif (typeof path !== 'string') return path;\n\t\t// Create new array\n\t\tlet output = [];\n\t\t// Split to an array with dot notation\n\t\tpath.split('.').forEach(function (item) {\n\t\t\t// Split to an array with bracket notation\n\t\t\titem.split(/\\[([^}]+)\\]/g).forEach(function (key) {\n\t\t\t\t// Push to the new array\n\t\t\t\tif (key.length > 0) {\n\t\t\t\t\toutput.push(key);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn output;\n\t}\n\t// Convert the path to an array if not already\n\tpath = stringToPath(path);\n\t// Cache the path length and current spot in the object\n\tlet length = path.length;\n\tlet current = obj;\n\t// Loop through the path\n\tpath.forEach(function (key, index) {\n\t\t// Check if the assigned key should be an array\n\t\tlet isArray = key.slice(-2) === '[]';\n\t\t// If so, get the true key name by removing the trailing []\n\t\tkey = isArray ? key.slice(0, -2) : key;\n\t\t// If the key should be an array and isn't, create an array\n\t\tif (isArray && !Array.isArray(current[key])) {\n\t\t\tcurrent[key] = [];\n\t\t}\n\t\t// If this is the last item in the loop, assign the value\n\t\tif (index === length -1) {\n\t\t\t// If it's an array, push the value\n\t\t\t// Otherwise, assign it\n\t\t\tif (isArray) {\n\t\t\t\tcurrent[ke
16y].push(val);\n\t\t\t} else {\n\t\t\t\tcurrent[key] = val;\n\t\t\t}\n\t\t}\n\t\t// Otherwise, update the current place in the object\n\t\telse {\n\t\t\t// If the key doesn't exist, create it\n\t\t\tif (!current[key]) {\n\t\t\t\tcurrent[key] = {};\n\t\t\t}\n\t\t\t// Update the current place in the object\n\t\t\tcurrent = current[key];\n\t\t}\n\t});\n}\nhelper.lStor = function (action, key, data) {\n try {\n if (action === 'set') {\n if (/^reset$/i.test(data)) {\n localStorage.removeItem(key);\n //sessionStorage.removeItem(key); // zzzzz consider session storage only\n } else {\n if (typeof data !== 'string') {\n try {\n data = JSON.stringify(data);\n } catch (err) {\n //s.w_log(err);\n data = '';\n }\n }\n localStorage.setItem(key, data);\n //sessionStorage.setItem(key, data);\n }\n return true;\n }\n if (action === 'get') {\n return localStorage.getItem(key) || '';\n //return sessionStorage.getItem(key);\n }\n } catch (err) {\n //console.log(err);\n return '';\n }\n};\nhelper.sStor = function (action, key, data) {\n try {\n if (action === 'set') {\n if (/^reset$/i.test(data)) {\n //localStorage.removeItem(key);\n sessionStorage.removeItem(key); // zzzzz consider session storage only\n } else {\n if (typeof data !== 'string') {\n try {\n data = JSON.stringify(data);\n } catch (err) {\n //s.w_log(err);\n data = '';\n }\n }\n //localStorage.setItem(key, data);\n sessionStorage.setItem(key, data);\n }\n return true;\n }\n if (action === 'get') {\n //return localStorage.getItem(key) || '';\n return sessionStorage.getItem(key);\n }\n } catch (err) {\n //console.log(err);\n return '';\n }\n};\nhelper.split = function (l, d) {\n return l ? (l.split(d)) : [];\n};\nhelper.isVisible_ex = \"helper.isVisible(@selector, @element, @tabFlag) \\nreturn true if the item is not hidded @tabFlag =0 (default is 1)if tabindex is userd for the visible items\";\nhelper.isVisible = function (selector, element, tabFlag) {\n var elem = selector ? document.querySelector && document.querySelector(selector) : element, ieDisplayNoneBug;\n // fix for IE bug with inline and block elements stating offsets incorrectly\n ieDisplayNoneBug = elem && elem.currentStyle && elem.currentStyle.display === 'none' ? true : false;\n //console.log('tabIndex: '+elem.tabIndex);\n if(tabFlag===0){\n return elem && (elem.offsetWidth > 0 && elem.offsetHeight > 0) && !ieDisplayNoneBug; // other conditions can be added if required\n }else{\n return elem && ((elem.offsetWidth > 0 && elem.offsetHeight > 0) && elem.tabIndex > -1) && !ieDisplayNoneBug; // other conditions can be added if required\n }\n};\nhelper.getExp_ex=\"helper.getExp() \\nreturn responsive experence as mob, tab or desktop\\based on css class .analytics-experience .pagedetails-experience\";\nhelper.getExp = function () {\n var isVis = helper.isVisible,\n cssExperienceMob = isVis('.pagedetails-experience-mob','',0) || isVis('.analytics-experience-mob','',0), // responsive site mobile class visible check. name changed to analytics-... to be more relevant\n cssExperienceTab = isVis('.pagedetails-experience-tab','',0) || isVis('.analytics-experience-tab','',0), // responsive site tablet class visible check. name changed to analytics-... to be more relevant\n cssExperienceDesktop = isVis('.analytics-experience-desktop','',0), // responsive site tablet class visible check. name changed to analytics-... to be more relevant\n cssNotDetected = cssExperienceMob === null && cssExperienceTab === null && cssExperienceDesktop === null,\n experienceResult;\n\n // logic to determine experience based on elements with classes being found/hidden/visible\n experienceResult = (cssExperienceMob || (cssExperienceMob !== false && cssExperienceDesktop === false && !cssExperienceTab)) ? 'mob' : ((cssExperienceTab || (cssExperienceTab !== false && cssExperienceDesktop === false && !cssExperienceMob)) ? 'tab' : 'desktop'); // TESTING with !desktop options etc.\n\n // save the experience determined by the logic\n helper.expOrig = helper.expOrig || experienceResult;\n\n // if no elements with classes detected, use the first saved experience\n if (cssNotDetected) {\n experienceResult = helper.expOrig;\n }\n\n return experienceResult;\n};\n/*---- wbg|form|rq14 ----\n Application Status: used to track the formcomplete status\n used only for STP form when applicationStatus array is available on complete step\n \"formIsSTP\": \"true\",\n \"applicationStatus\": [\n {\n \"accountStatus\": \"opened\",\n \"profileStatus\": \"created\",\n \"verificationStatus\": \"idv\",\n \"exceptionCode\": \"0001\"\n }\n ],\n \n*/\nhelper.appStatusSetup = function (status) {\n //console.log('appStatusSetup:status:');\n //console.log(status);\n if(Array.isArray(status)){\n var formStatusArray = status,\n finalVal = [],\n formStatusDetail;\n for (var _i = 0, formStatusArray_1 = formStatusArray; _i < formStatusArray_1.length;
16 _i++) {\n var items = formStatusArray_1[_i],\n frmStVal;\n frmStVal = 'accStatus:' + items.accountStatus + '|' + 'proStatus:' + items.profileStatus + '|' + 'verStatus:' + items.verificationStatus + '|' + 'exceCode:' + items.exceptionCode;\n finalVal.push(frmStVal);\n }\n formStatusDetail = finalVal.join(';');\n //console.log('formStatusDetail');\n //console.log(formStatusDetail);\n return formStatusDetail;\n }else{\n return JSON.stringify(status).replace(/(\\[|\\]|\\{|\\}|\\'|\\\")/ig,'').replace(/\\,/ig,'|');\n }\n //console.info('stringVal = ', formStatusDetail);\n};\n/*---- wbg|form|rq12 ----\n TransactionID:multiple transactionID\n Convention: new property in dataLayr \"appReference\" is an array captures multiple tranactionID, \n This array is passed into helper.createTransID function to concatenate transID to create a single transactionID\n Used in application|enquiry|quote start or complete steps\n*/\nhelper.createTransID = function (prodArray) {\n //console.log(prodArray);\n var transIDArray = prodArray,\n finalVal = [],\n combinedtransID;\n for (var _i = 0; _i < transIDArray.length;
16 _i++) {\n var items = transIDArray[_i],\n transIDVal;\n transIDVal = items.prod ? items.prod+ '_' + items.Id:items.Id;\n //console.log(finalVal); \n finalVal.push(transIDVal);\n }\n \n combinedtransID = finalVal.join(';');\n //console.log('createTransID:combinedtransID');\n //console.log(combinedtransID);\n return combinedtransID;\n};\nhelper.pt_ex =\"pt - runs function in f argument against list of \\nvariables declared in x (delimited by d), with a as an optional \\nargument to be included in f function call\";\nhelper.pt=function(x,d,f,a){\n var t=x,\n z=0,\n y,\n r;\n while (t){\n y = t.indexOf(d);\n y = y < 0 ? t.length : y;\n t = t.substring(0, y);\n r = helper.p_c(t, a);\n if (r)\n return r;\n z += y + d.length;\n t = x.substring(z, x.length);\n t = z < x.length ? t : ''\n }\n return '';\n};\nhelper.isNumber = function (value) {\n //return typeof value === \"number\" && !isNaN(value);\n return /^[-]?\\d+$/.test(value);\n};\nhelper.authState = function(n){\n if(helper.isNumber(n)){\n //console.log( 'n is a number :' + n);\n return (n==1?'authenticated':(n==0?'loggedOut':'ambiguous'));\n }\n else {\n //console.log( 'n is not a number');\n return 'ambiguous'\n }\n};\nhelper.offerAction = function(xdmObj, offerObj){\n if (offerObj == null) return {};\n var sourceKeys = Object.keys(offerObj),\n sourceValue = Object.values(offerObj);\n for (var i = 0; i < sourceKeys.length; i++) {\n helper.xdmPut(xdmObj,'_wbg.campaign.offers.'+ sourceKeys[i], sourceValue[i]);\n helper.xdmPut(xdmObj,'_wbg.campaign.offers.activity', 'action');\n helper.xdmPut(xdmObj,'_wbg.campaign.offers.events.action',1)\n }\n return true;\n};\nhelper.offerClick=function(xdmObj, offerObj){\n if (offerObj == null) return {};\n var sourceKeys = Object.keys(offerObj),\n sourceValue = Object.values(offerObj);\n for (i = 0; i < sourceKeys.length; i++) {\n helper.xdmPut(xdmObj,'_wbg.campaign.offers.'+ sourceKeys[i], sourceValue[i]);\n helper.xdmPut(xdmObj,'_wbg.campaign.offers.activity', 'click');\n helper.xdmPut(xdmObj,'_wbg.campaign.offers.events.click',1);\n }\n return true;\n};\nhelper.offerImpression=function (xdmObj,offerObj){\n if (offerObj == null) return {};\n var sourceKeys = Object.keys(offerObj);\n //console.log(\"Items :\"+sourceKeys.length);\n if (Array.isArray(offerObj)){\n helper.offerImpressionList(xdmObj,offerObj)\n }else{\n helper.xdmPut(xdmObj,'_wbg.campaign.offers.list[]', offerObj);\n helper.xdmPut(xdmObj,'_wbg.campaign.offers.activity', 'impression');\n helper.xdmPut(xdmObj,'_wbg.campaign.offers.events.impression',1);\n }\n return true;\n};\nhelper.offerImpressionList=function (xdmObj,offerObj){\n if (offerObj == null) return {};\n var sourceKeys = Object.keys(offerObj);\n var key,value,i,j,offers = [];\n //console.log(sourceKeys.length);\n for (i = 0; i < sourceKeys.length; i++) {\n var offer ={};\n key = Object.keys(offerObj[i]);\n value = Object.values(offerObj[i]);\n for (j = 0; j < key.length; j++) {\n //console.log ( 'key: '+ key[j] + \" value: \" + value[j]); \n offer[key[j]] = value[j];\n }\n //console.log(offer);\n offers.push(offer);\n }\n //console.log(offers);\n helper.xdmPut(xdmObj,'_wbg.campaign.offers.list', offers);\n helper.xdmPut(xdmObj,'_wbg.campaign.offers.activity', 'impression');\n helper.xdmPut(xdmObj,'_wbg.campaign.offers.events.impression',1);\n //console.log(xdmObj)\n return true;\n};\n /*\n\t * Plugin Utility: apl v1.1 - append item to list\n\t */\nhelper.apl = function (l, v, d, u) {\n var helper = this,\n m = 0,\n i,\n n,\n a;\n if (!l) {\n l = '';\n }\n if (u) {\n a = helper.split(l, d);\n for (i = 0; i < a.length; i++) {\n n = a[i];\n m = m || (u == 1 ? n == v : n.toLowerCase() == v.toLowerCase());\n }\n }\n if (!m) {\n l = l ? l + d + v : v;\n }\n return l;\n};\nhelper.targetImpression = function(data){\n var targetContent = helper.qSA(document,\".target-container\", 'span', 'class', (/target-container/i)),\n tntlist = [],\n lp = targetContent.length;\n while (lp--) {\n var\n targetItem = targetContent[lp
16],\n tntVar=targetItem.getAttribute('data-target-var')\n if(tntVar){\n tntlist.push(tntVar.replace(/,/g, '%2C').replace(/^\\s+|\\s+$/gm,''));\n }\n }\n if(data){\n var campaigns = data.split(','),\n ln = campaigns.length\n while (ln--) {\n tntlist.push(campaigns[ln]);\n }\n }\n if (tntlist && tntlist.length>0) {\n //window.console && console.log('s.w_trackImprs to send = ' + arrImprs.join(','));\n //console.log(tntlist);\n //return tntlist[0];\n return tntlist.join(',');\n } else{\n return \"\";\n }\n };\n /*\n * Plugin: Days since last Visit 1.1.H - capture time from last visit\n */\n helper.getDaysSinceLastVisit = function (c) {\n var e = new Date(),\n es = new Date(),\n cval,\n cval_s,\n cval_ss,\n ct = e.getTime(),\n day = 24 * 60 * 60 * 1000,\n f1,\n f2,\n f3,\n f4,\n f5;\n e.setTime(ct + 3 * 365 * day);\n es.setTime(ct + 30 * 60 * 1000);\n f0 = 'Cookies Not Supported';\n f1 = 'First Visit';\n f2 = 'More than 30 days';\n f3 = 'More than 7 days';\n f4 = 'Less than 7 days';\n f5 = 'Less than 1 day';\n cval = helper.c_r(c);\n if (cval.length == 0) {\n helper.c_w(c, ct, e);\n helper.c_w(c + '_s', f1, es);\n } else {\n var d = ct - cval;\n if (d > 30 * 60 * 1000) {\n if (d > 30 * day) {\n helper.c_w(c, ct, e);\n helper.c_w(c + '_s', f2, es);\n } else if (d < 30 * day + 1 && d > 7 * day) {\n helper.c_w(c, ct, e);\n helper.c_w(c + '_s', f3, es);\n } else if (d < 7 * day + 1 && d > day) {\n helper.c_w(c, ct, e);\n helper.c_w(c + '_s', f4, es);\n } else if (d < day + 1) {\n helper.c_w(c, ct, e);\n helper.c_w(c + '_s', f5, es);\n }\n } else {\n helper.c_w(c, ct, e);\n cval_ss = helper.c_r(c + '_s');\n helper.c_w(c + '_s', cval_ss, es);\n }\n }\n cval_s = helper.c_r(c + '_s');\n if (cval_s.length == 0)\n return f0;\n else if (cval_s != f1 && cval_s != f2 && cval_s != f3 && cval_s != f4 && cval_s != f5)\n return '';\n else\n return cval_s;\n}\n// convert product array into Omniture format product string\nhelper.w_prodStr = function (prodArr, details) {\n // join product object array into Omniture formatted prod string for tracking\n var prodSyntax = [],\n //pdFormStatus = pageDetails.formStatus,\n pdFormStatus = helper.lowerCase(helper.clean(details.formStatus)),\n pdPageType = helper.lowerCase(helper.clean(details.pageType)),\n pdPageStep = helper.lowerCase(helper.clean(details.pageStep)),\n lp1,\n lp2,\n prodArrLen = prodArr.length,\n //productCount,\n //pCount = [],\n prodEvents,\n prodEventDetails,\n prodMerch,\n txnType,\n txnEvt,\n txnBand,\n transactionDetails,\
16n currency,\n amount,\n currencySpecified = false,\n //primaryProduct,\n //primaryProductSpecified = false;\n validProductCount = 0,\n crossSellCheckLen = prodArrLen,\n crossSellProduct,\n crossSellProductSpecified = false,\n primaryProduct,\n secondaryProduct;\n // loop through all products in the prodArr to set transaction amounts (band and average) and translate friendly transaction types into correct event numbers\n //console.log('prodArr = ' + prodArr);\n while (crossSellCheckLen--) { // loop to check if a 'crossSell' item has been explicitly defined. if so, use the details supplied, else assume all products after the first are cross-sell\n if (prodArr[crossSellCheckLen].Product && (/true/i).test(prodArr[crossSellCheckLen].crossSell)) {\n crossSellProductSpecified = true;\n break;\n }\n }\n\n for (lp1 = 0; lp1 < prodArrLen; lp1++) {\n if (prodArr[lp1].Product || prodArr[lp1].prod) {\n validProductCount += 1;\n\n if (crossSellProductSpecified) {\n crossSellProduct = /true/i.test(prodArr[lp1].crossSell); // assume crossSell will be specified correctly in details\n } else {\n crossSellProduct = validProductCount > 1 ? true : false; // if nothing specified, anything after first valid product is assumed to be cross-sell\n }\n\n /*---- wbg|form|rq5 ----\n Prop41:product-count(productCount)\n Convention: Only for application and step complete, populate total products sold \n sampleValues: 1, 2, 3\n \n if (prodArr[lp1].qty) {\n var totalProductsSold = 0;\n pCount.push(prodArr[lp1].qty);\n pCount = pCount.map(parseFloat);\n\n for (var i in pCount) {\n totalProductsSold += pCount[i];\n }\n productCount = totalProductsSold;\n }\n if (productCount && pdPageStep === 'complete' && pdPageType === 'application') {\n digital['dd.productCount'] = productCount;\n }*/\n prodEvents = prodArr[lp1].events;\n prodMerch = prodArr[lp1].merch;\n prodMerch = prodMerch === 'options=' ? '' : prodMerch; // remove redundant options if none specified\n\n if (prodEvents) { // only need to add transaction bands to merch vars if there is a transaction event\n prodEvents = prodEvents.split('|');\n prodMerch = prodMerch ? prodMerch.split('|') : [];\n\n for (lp2 = 0; lp2 < prodEvents.length; lp2++) {\n prodEventDetails = prodEvents[lp2].split('=');\n txnType = prodEventDetails[0];\n txnEvt = txnType; // default is value passed in object\n\n // ensure all events specified in s.products are also set in s.events\n if (/^deposit\\b/.test(txnType)) { // event5 for deposit amount event\n txnEvt = 'event5';\n }\n /*else{\n if(/^event5\\b/.test(txnType)){ // 'deposit' for amount band merch evar if event5 specified\n txnType='deposit';\n }\n }*/\n if (/^payment\\b/.test(txnType)) {\n txnEvt = 'event40';\n }\n /*else{\n if(/^event40\\b/.test(txnType)){\n txnType='payment';\n }\n }*/\n if (/^loan\\b/.test(txnType)) {\n txnEvt = 'event41';\n }\n /*else{\n if(/^event41\\b/.test(txnType)){\n txnType='loan';\n }\n }*/\n\n if ((/^(?:deposit|payment|loan|\\(not\\ set\\))(?::|$)/).test(txnType)) {\n // values may be like 'payment:processing...', 'loan:approved...'\n // could check end of txnType for status (:processing/:approved/:declined) of individual products to set relevant events (e.g. 18, 19, 20) here, if multiple respective status of products in a form is ever required/possible.\n // pdFormStatus as the generic value could be removed from the s.w_amntBnds parameters to allow respective product values to be used instead\n\n\n // Transaction values may be like '1200', '$123.45' ($=AUD), 'USD123.45', 'EUR123' etc. default to AUD if currency missing\n transactionDetail
16s = (prodEventDetails[1] || '').match(/^(\\D*)(.*)/); // get currency and amount\n currency = (transactionDetails[1] || '$').toUpperCase(); // default to $ if currency missing\n if (currency === '$') { // Set to AUD if currency prefix was set, or defaulted to '$'\n currency = 'AUD';\n }\n if (!currencySpecified) {\n currencySpecified = true; // set base currency to first detected in product set only\n helper.currencyCode = currency;\n }\n if (currency !== helper.currencyCode) {\n // if different to 1st product currency, append '-mix' to currency. Only one currency allowed per request. keep only values matching 1st currency\n currency += '-mix';\n }\n amount = transactionDetails[2];\n\n // get amount band. pass status from generic pageDetails value, or use status set in txnType set against each respective product in array\n txnBand = helper.amntBnds(txnType + (pdFormStatus ? ':' + pdFormStatus : '') + ':' + currency, amount); // set all products in a form to the generic form status\n //txnBand=s.w_amntBnds(txnType+':'+currency, amount); // txnType passed with product array item could specify respective status for each product, like 'loan:approved=123'\n\n if (/^(?:\\(not\\ set\\))(?::|$)/.test(txnType)) {\n // if application transactionType not set, we don't know which event to set the txn amount into\n prodEvents[lp2] = '';\n } else {\n // only set s.events and prod events if valid event\n prodEvents[lp2] = txnEvt + '=' + (currency === helper.currencyCode ? txnBand.avg : 0); // set value of different currency amounts to zero to avoid incorrect conversion to base currency of request (taken from first value)\n //s.events = s.apl(s.events,txnEvt,',',2);\n //s3.w_addEvt(txnEvt);\n helper.events(txnEvt)\n // alloy(\"getLibraryInfo\").then(function(result) {\n helper.xdmPut(xdm,'_experience.analytics.event1to100.'+txnEvt,1);\n // }); \n //SUMIT: How to add events to globax context \n\n }\n // always set bands even if some values not set. Dont set transaction type and amount if both values empty\n //prodMerch.push('eVar37='+txnType); // txnType doesn't set any merch details. eVar37 now product options\n if (txnBand.avg !== 0 || txnType !== '(not set)') {\n prodMerch.push('eVar51=' + txnBand.range);\n }\n }\n }\n prodEvents = prodEvents.join('|');\n prodMerch = prodMerch.join('|');\n }\n\n // translate product object into an omniture-formatted string and add it to an array. set qty as 1 by default\n //console.log('prod = ' + prodArr[lp1].prod);\n\n prodSyntax.push(\n helper.lowerCase(prodArr[lp1].cat || '') + ';' +\n //helper.lowerCase((prodArr[lp1].ProductCategory + prodArr[lp1].ProductSubcategory|| '').replace(/,/g, ' ')) + ';' +\n //s.w_lCase(prodArr[lp1].prod) + (pdPageType === 'application' && !primaryProduct ? '-x' : '') + ';' + // identify primary product/s for enhanced cross-sell reporting\n //s.w_lCase(s.w_clean(prodArr[lp1].prod.replace(/,/g, ' '))) + (pdPageType === 'application' && !primaryProduct ? '-x' : '') + ';' + // identify primary product/s for enhanced cross-sell reporting\n //helper.lowerCase(helper.lowerCase(prodArr[lp1].prod.replace(/,/g, ' '))) + (pdPageType === 'application' && crossSellProduct ? '-x' : '') + ';' + // identify primary product/s for enhanced cross-sell reporting\n helper.lowerCase(helper.lowerCase((prodArr[lp1].Product||prodArr[lp1].prod).replace(/,/g, ' '))) + (pdPageType === 'application' && crossSellProduct ? '-x' : '') + ';' + // identify primary product/s for enhanced cross-sell reporting\n //(pdPageType === 'application' && crossSellProduct ? 'x-' : '' || secondaryProduct ? '2-' : '' || primaryProduct ? '1-' : '') + helper.lowerCase(helper.clean(prodArr[lp1].prod.replace(/,/g, ' '))) + ';' + // identify primary product/s for enhanced cross-sell reporting\n (prodArr[lp1].qty || '1') + ';' + (prodArr[lp1].total || '') + ';' + (prodEvents || '') + ';' +\n //.replace(/deposit(?==)/g,'event5') // replace friendly product event names with event numbers\n //.replace(/loan(?==)/g,'event41')\n //.replace(/payment(?==)/g,'event40')+';'+\n (prodMerch || '')\n .replace(/(^|\\|)options=/g, '$1eVar37=') // set product options into eVar37\n //.replace(/(^|\\|)merchVar(?==)/g,'eVarX') // example only, replace friendly merchandising names with eVar numbers\n );\n }\n }\n // if only one product, or if more than one product and no primary specified, only the first product is primary.\n /*\n if (prodSyntax.length === 1 || (prodSyntax.length > 1 && !primaryProductSpecified)) {\n prodSyntax[0] = prodSyntax[0].replace(/(.*?;.*?)-x(?:;|$)/, '$1;');\n }\n */\n return prodSyntax.join(',').replace(/;;;,/g, ',').replace(/;;;$/, ''); // join product string array and remove unnecessary delimiters to reduce pixel length\n};\n\nhelper.w_log = function (type, data) {\n\tif (helper.c_r('s3_debug') || !helper.w_prod) {\n\t\ttry {\n\t\t\tconsole.info(type + ' : ' + data);
16 // debug logging only when dev, or dev cookies set. this should be on for live sites for debugging\n\t\t} catch (ignore) {\n\t\t\t// don't log if console unavailable\n\t\t}\n\t}\n};\n\nhelper.w_trackErrorCount = function (count, errCodes) {\n\tif (count && count > helper.c_r('errCount')) {\n\t\tif (!errCodes) {\n\t\t\thelper.c_w('errCode', helper.apl(helper.c_r('errCode'), '(count)', ',', 2));\n\t\t}\n\t\thelper.c_w('errCount', count);\n\t}\n};\nhelper.marketingCloudVisitorID = function(){\n var s_ecid = helper.c_r('s_ecid')\n if (s_ecid){\n s_ecid =s_ecid.replace(/MCMID(\\||\\%7C)/ig, '')\n }\n return s_ecid;\n};\nhelper.qSA_ex =\"helper.qSA(@doc, @selector, @tag, @attr, @regex) return selected elements \\n@doc = document \\n@selector = any selecton \\nFor non supported browser: \\n@tag, @attr, @regex\"; \nhelper.qSA = function (doc, selector, tag, attr, regex) {\n var lp,\n len,\n result = [],\n target,\n tempAttr;\n \n if (doc && doc.querySelectorAll) {\n result = doc.querySelectorAll(selector);\n } else {\n target = doc && doc.getElementsByTagName(tag);\n if (attr && regex) {\n for (lp = 0, len = target.length; lp < len; lp++) {\n tempAttr = (attr === 'class' ? target[lp].className : target[lp].getAttribute(attr));\n if (tempAttr && regex.test(tempAttr)) {\n result.push(target[lp]);\n }\n }\n } else if (regex) {\n for (lp = 0, len = target.length; lp < len; lp++) {\n if (regex.test(target[lp].innerHTML)) {\n result.push(target[lp]);\n }\n }\n } else {\n return target || 0;\n }\n }\n return result;\n};\n// attach link handler to document\nhelper.addHandler = function (element, event, handler) {\n if (element.addEventListener) {\n element.addEventListener(event, handler, false);\n } else {\n if (element.attachEvent) {\n element.attachEvent('on' + event, handler);\n }\n }\n};\n\nhelper.onReady = function (func) {\n if (/complete/.test(doc.readyState)) { // fire/attach immediately in case window load has already occured\n func();\n } else {\n helper.addHandler(win, 'load', function () { // fire/attach when window loads. include a timeout to prevent Chrome/Safari spinner immediately after load\n setTimeout(func, 4); // should be 4\n });\n }\n}\n// track a page only once per window load (for single page applications). All names sent stored in array to compare for all further calls until reset or page reloaded (array cleared)\nhelper.w_pageTracked = function (pgName) {\n var lp,\n tracked = false;\n\n helper.w_trackedPages = helper.w_trackedPages || [];\n lp = helper.w_trackedPages.length;\n while (lp--) {\n if (helper.w_trackedPages[lp] === pgName) {\n console.log(lp + ' >> ['+helper.w_trackedPages[lp]+']' + ' === ' + pgName);\n // already been tracked this page load\n tracked = true;\n break;\n }\n }\n if (!tracked) {\n helper.w_trackedPages.push(pgName);\n }\n //console.log('tracked: '+pgName+'? '+ tracked + '. helper.w_trackedPages = '+ helper.w_trackedPages);\n return tracked;\n};\nhelper.cloneObject = function (oToBeCloned, clones) {\n var oClone,\n Constr = oToBeCloned && oToBeCloned.constructor ? oToBeCloned.constructor : undefined,\n lp,\n len,\n cloneRef,\n alreadyCloned,\n prpty;\n\n if (!oToBeCloned || (Constr !== RegExp && Constr !== Date && Constr !== Function && Constr !== Object && Constr !== Array)) {\n return oToBeCloned;\n }\n\n switch (Constr) {\n // handle special object types\n case RegExp:\n oClone = new Constr(oToBeCloned.source, 'g'.substr(0, Number(oToBeCloned.global)) + 'i'.substr(0, Number(oToBeCloned.ignoreCase)) + 'm'.substr(0, Number(oToBeCloned.multiline)));\n break;\n case Date:\n oClone = new Constr(oToBeCloned.getTime());\n break;\n case Function:\n oClone = oToBeCloned;\n break;\n default:\n // should only be plain objects and arrays that need looping\n oClone = new Constr();\n }\n\n clones = clones || [];\n for (lp = 0, len = clones.length; lp < len; lp++) {\n cloneRef = clones[lp];\n if (cloneRef[0] === oToBeCloned) {\n alreadyCloned = cloneRef[1];\n break;\n }\n }\n if (alreadyCloned) {\n return alreadyCloned;\n }\n clones.push([oToBeCloned, oClone]); // keep track of objects we've cloned\n for (prpty in oToBeCloned) {\n if (oToBeCloned.hasOwnProperty(prpty)) {\n if (oToBeCloned[prpty] === oToBeCloned) {\n oClone[prpty] = oClone;\n } else {\n oClone[prpty] = helper.cloneObject(oToBeCloned[prpty], clones);\n }\n }\n }\n return oClone;\n}\n/* end Helper */\nvar xdm = {}; //Sumit Can not use this globally as SPA page will retain this values\n/*helper.prepareInteractionPayload = async function(dataLayer){\n var xdm = window.xdm || {}, \n // digital= window.digital || {},\n // helper = window.helper || {},\n pageDetails = dataLayer || window.pageDetails || {};\n\n console.log(\"Digital:\")\n console.log(digital);\n console.log(\"XDM:\")\n console.log(xdm);
16\n \n //Launch rules return XDM \n return {\n \"customData\": helper.clone(digital),\n \"customXDM\": xdm\n };\n\n};*/\n\nhelper.preparePayload = async function(dataLayer){\n var xdm = window.xdm || {}, \n digital= {},\n pageDetails = dataLayer || {};\n\n\n // pD = helper.w_wtT.pageDetails || window.pageDetails || {}\n var notSet = '(not set)', // to identify missing values\n findBrand = helper.config.findBrand|| '',\n findSite = helper.config.findSite || '',\n lowerCaseVal = helper.lowerCase,\n fullLocObj = helper.getLoc(), // update each call\n cleanText = helper.clean,\n appendEvent = helper.addEvt,\n\n // store copy in s object for clicks etc to refer to previous details (pageName etc.)\n //pageDetails = trackingPage ? s3.w_queue.shift()|| window.pageDetails : (helper.w_wtT.pageDetails || window.pageDetails || {}),\n\n //pageBrand =pageDetails.siteBrand|| notSet,\n //pageSite = pageDetails.siteName|| notSet,\n\t pageBrand =(findBrand? pageDetails.siteBrand:(helper.config.brand || notSet)),\n\t pageSite = (findSite? pageDetails.siteName:(helper.config.site || notSet)),\n pdPageName = cleanText(pageDetails.pageName|| ''),\n pdPageProperty = lowerCaseVal(cleanText(pageDetails.pageProperty)),\n pdDialogTitle = cleanText(pageDetails.dialogTitle), // captures titles of dialogs in OTP and CTRT code for dynamic campaign landing page. Value is appended to end of page name.\n sPageNameTemp = '',\n pageTypeAlt, // for tracking other page types, and applying a rule to classify other pages\n pdProductID = helper.prodArr(pageDetails.productID || ''), // products string converted into array\n pdProducts,\n //paymentProduct, // for products string where required\n pdFormName = lowerCaseVal(cleanText(pageDetails.formName)),\n pdSiteSection = lowerCaseVal(cleanText(pageDetails.siteSection)),\n pdFormType = lowerCaseVal(cleanText(pageDetails.formType)),\n pdFormData = lowerCaseVal(cleanText(pageDetails.formData)),\n pdnewFormName = lowerCaseVal(cleanText(pageDetails.newFormName)),\n pdJourneyType = lowerCaseVal(cleanText(pageDetails.journeyType)),\n pdAccountType = lowerCaseVal(cleanText(pageDetails.accountType)),\n pdBusinessType = lowerCaseVal(cleanText(pageDetails.businessType)),\n pdFormIsStp = lowerCaseVal(cleanText(pageDetails.formIsSTP)),\n pdSiteName = lowerCaseVal(cleanText(pageDetails.siteName)),\n pdFormVariant = lowerCaseVal(cleanText(pageDetails.formVariant)),\n pdFormMilestone = lowerCaseVal(cleanText(pageDetails.formMilestone)),\n journeyTypeOverride,\n pdAppStatus = pageDetails.applicationStatus,\n pdInSession = false, // if page is in secure/unsecure area\n pdEexternalSiteName = lowerCaseVal(cleanText(pageDetails.externalSiteName)),\n pdSelfserviceDetails = lowerCaseVal(cleanText(pageDetails.selfserviceDetail)), // for selfservice details tracking\n pdTransactionType = lowerCaseVal(pageDetails.transactionType), // for transactions\n pdTransactionAmount = pageDetails.transactionAmount || '', // for transactions, value should be in nnnn[.nn] format - without thousand separator. decimal is optional, but should be separated by dot (period)\n transactionMerch = [], // for transactions - quantity + details etc.\n pdTransactionQty = pageDetails.transactionQty || '', // for transactions - multiple payments quantity\n pdTransactionDetails = lowerCaseVal(cleanText(pageDetails.transactionDetails || '')), // for transactions - multiple payments quantity\n //formNameAlt, // Payments use pdTransactionType as part of form name, instead of formName\n pdProdDescription = lowerCaseVal(cleanText(pageDetails.prodDescription)),\n //pdTransactionId = pageDetails.transactionID || '', // for transactions - confirm uniqueness - '[CID:...]' on Domino\n //prchId = pdTransactionId || '', // local copy for purchaseID manipulation\n //Anil new appReference\n pdTransactionId = pageDetails.appReference || '',\n //prchId,\n pdFormStatus = lowerCaseVal(cleanText(pageDetails.formStatus)), // local var reference\n pdSetupOptions = pageDetails.setupOptions || '',\n pdQuoteStatus = JSON.stringify(pageDetails.quoteStatus)||'',\n pdSearchTerm = cleanText(pageDetails.searchTerm),\n pdSearchResults = String((String(pageDetails.searchResults) || notSet) > -1 ? helper.cap(pageDetails.searchResults, 5000) : notSet), // need to differentiate between undefined, 0, '0' and ''.\n pdItemName = cleanText(pageDetails.itemName), // item name for faq and atm\n //temporary fix for APC-1043. Follow that ticket for strategic fix.\n pageExperience = ((pageDetails.experience || pageDetails.Experience) || pageDetails.siteExperience )|| '',\n //trackingOverrideEnabled = false, // for trackingOverride\n //prpty, // local var for looping properties\n //friendlyModules,\n //channelManagerKeywords,\n channelManagerSearchType = false,\n //clickMapOid,\n dateZero = new Date(0), // old date used to clear cookies\n datePlusOneYear = new Date(+new Date() + 31536000000), // 31536000000 = 365*24*60*60*1000 = 1 year\n datePlusTwoYear = new Date(+new Date() + 63072000000), // 63072000000 = 2* 365*24*60*60*1000 = 2 year\n pageNamePathArray,\n pdPageNumber = pageDetails.pageNumber,\n pdSubSite = cleanText(pageDetails.subSite),\n pdExternalSiteName = lowerCaseVal(pageDetails.externalSiteName),\n pdPageNamePrefixPair = cleanText(pageDetails.pageNamePrefixes
16).split('|'),\n pdCampaignCodeView = lowerCaseVal(cleanText(pageDetails.campaignCodeList)),\n pdPromoCodeView = lowerCaseVal(cleanText(pageDetails.promoCodeList)),\n pdCampaignCodeClicked = lowerCaseVal(cleanText(pageDetails.campaignCode)),\n pdPromoCodeClicked = lowerCaseVal(cleanText(pageDetails.promoCode)),\n pdCidCampaign,\n //pdPageNamePrefix,\n //pdFeaturedContent,\n //ttIdQuerystring,\n //pidQuerystring,\n //promoCodeQuerystring,\n //campaignCodeQuerystring,\n //isSearchResultLanding,\n //formTypeOverride,\n getValueOnce = helper.getValOnce,\n lastSentPage = helper.c_r('lastPage'),\n getQuerystringParam = helper.getQueryParam,\n nativeExitToBrowser = (((/\\b(appAction=exit|exitapp=yes)\\b/i).test(fullLocObj.href)) || helper.c_r('s_exitapp')); // appAction=exit querystring for app safari/browser links that exit the app to desktop-style pages that should go to mob suite to retain app visitor journey\n nativeAppVersion = helper.c_r('AppVersion'),\n voyagerLoadBalancerID = helper.c_r('LBWeb'), // to identify issues with load balancers in voyager/OTP not reading RESX values correctly\n nativeMid = helper.c_r('MCMID'),\n pdPreImprs = cleanText(pageDetails.preImprs),\n pdPageType = lowerCaseVal(pageDetails.pageType), // local var reference\n pdPageStep = lowerCaseVal(pageDetails.pageStep, 1), // local var reference\n //pdPageStep = lowerCaseVal((pageDetails.pageAction||pageDetails.pageStep)||''), //if pageStep when pageAction not present \n pdChannel = lowerCaseVal(pageDetails.channel), // channel var reference\n pdTouchPoint = lowerCaseVal(pageDetails.touchPoint), // touchPoint var reference (WDP channel)\n pdBranchLocationCode = lowerCaseVal(pageDetails.location), // local var reference\n pdCalculatorName = lowerCaseVal(pageDetails.calculatorName), \n pdCalculatorType = lowerCaseVal(pageDetails.calculatorType),\n pdTrackId = lowerCaseVal(pageDetails.encryptedID),\n pdGenericId = lowerCaseVal(pageDetails.genericID),\n pdEmpId = lowerCaseVal(pageDetails.empId),\n pdBtAdviserID = lowerCaseVal(pageDetails.adviserId), \n pdPanoramaID = lowerCaseVal(pageDetails.panoramaId),\n pdGroupCode = lowerCaseVal(pageDetails.loggedUser),\n pdAddEvents = lowerCaseVal(pageDetails.addEvents),\n pdErrorCode = lowerCaseVal(pageDetails.errorCode),\n pdErrorDetails = lowerCaseVal(pageDetails.errorDetails),\n pdTargetCampaignsList = decodeURIComponent(lowerCaseVal(pageDetails.targetCampaignViewed)),\n pdTargetCampaignClicked = decodeURIComponent(lowerCaseVal(pageDetails.targetCampaignClicked)),\n pdTargetLocationId = decodeURIComponent(lowerCaseVal(pageDetails.targetLocationId)),\n pdTargetClickedLocationId = decodeURIComponent(lowerCaseVal(pageDetails.targetClickedLocationId)),\n pdTargetClickedAction = decodeURIComponent(lowerCaseVal(pageDetails.targetAction)),\n pdPageModules = lowerCaseVal(pageDetails.pageModules),\n pdExtCampaign = lowerCaseVal(pageDetails.extCampaign),\n pdInternalCampaignList = lowerCaseVal(pageDetails.internalCampaignViewed),\n pdInternalCampaignClicked = lowerCaseVal(pageDetails.internalCampaignClicked),\n pdNotification = pageDetails.notification ||'',\n pdNotificationDetail = pageDetails.notificationDetail ||'',\n pdChatbotName = pageDetails.chatbotName || '',\n setFormFieldVar = helper.setFormFieldVar,\n pdFormFieldObj = pageDetails.loanAttributes,\n pdToolsFormFieldObj = pageDetails.toolInputs,\n pdToolsDetail = lowerCaseVal(pageDetails.toolDetails),\n pdCatCodes = decodeURIComponent(lowerCaseVal(pageDetails.creativeAttributesCode)),\n pdTimeStamp = lowerCaseVal(pageDetails.ordinal || (new Date().getTime())),\n pdUserHashedPh = pageDetails.hashedPhone||'',\n pdUserHashedEm = pageDetails.hashedEmail||'',\n pdEventKey= pageDetails.eventKey||'',\n pdToolOutcome = pageDetails.toolOutcome || '',\n\n //APC-1650 - Introduced new variable to capture journeyId, cusRelationType and orgRelationType for better tracking of user journey\n pdJourneyId = lowerCaseVal(cleanText(pageDetails.journeyId)),\n pdRelationType = [\n 'cus-' + (pageDetails.cusRelationType\n ? lowerCaseVal(cleanText(pageDetails.cusRelationType))\n : 'na'),\n 'org-' + (pageDetails.orgRelationType\n ? lowerCaseVal(cleanText(pageDetails.orgRelationType))\n : 'na')\n ].join('|');\n\n //pageNameDynamicVariable = 'D=pageName'; // zzzzz change to D.pageName to reduce pixel\n //pdOffers = pageDetails.offers || pageDetails.offer || '',\n //pdOfferImpression = pageDetails.offerImpression || '',\n //pdOfferClick = pageDetails.offerClick || '',\n //pdOfferAction = pageDetails.offerAction || '';\n \n if (pageDetails.pageStep && pageDetails.pageAction) {\n /* pick up pageAction when both exits*/\n pdPageStep = lowerCaseVal(pageDetails.pageAction, 1)\n } else if (pageDetails.pageAction) {\n /* pick up pageAction when it is the only case exits */\n pdPageStep = lowerCaseVal(pageDetails.pageAction, 1);\n } else {\n /* use pageStep when it is the ONLY prop available */\n pdPageStep = lowerCaseVal(pageDetails.pageStep, 1);\n }\n\n\n // formName compatibility when it co-exists with newFormName\n // westpac live may not have newFormName, use formName instead. \n if (pageDetails.newFormName && pageDetails.formName) {\n /* by default should be new formName*/\n pdnewFormName = lowerCaseVal(cleanText(pageDetails.newFormName))\n } else if (pageDetails.newFormName) {\n /* pick up pageAction when it is the only case exits */\n pdnewFormName = lowerCaseVal(cleanText(pageDetails.newFormName))\n } else {\n /* use pageStep when it is the ONLY prop available */\n pdnewFormName = lowerCaseVal(cleanText(pageDetails.formName))\n }\n if ((/\\bbanking\\b/i).test(pageSite) && (/^(?:\\/secure\\/|\\/cust\\/wps\\/(?:my)?portal\\/wol\\/|\\/oregon\\/[^\\/]+?\\/wol\\/)/i).test(helper.getLoc().pathname)) {\
16n pdInSession = true;\n }\n if ((/\\bonline\\b/i).test(pageSite) && (/^(?:\\/dforms\\/forms\\/secure\\/|\\/cust\\/wps\\/(?:my)?portal\\/wol\\/|\\/oregon\\/[^\\/]+?\\/wol\\/)/i).test(helper.getLoc().pathname)) {\n pdInSession = true;\n }\n\n helper.siteID = pageBrand + ':' + pageSite + (pdSubSite ? (pageDetails.subSiteSeparator || '-') + pdSubSite : ''); // with subSite like APPS - brand:site-subSite:section.\n // switch short/long forms based on in/out of session URLs\n if (pdFormType === 'checkurl') {\n pdFormType = pdInSession ? 'short' : 'long';\n }\n\n /*---- wbg|form|rq1 ----\n eVar41:Journey Type(pdJourneyType)\n Convention: Updated code to capture journey type via dataLayer property journeyType(new)\n sampleValues: pub, pub-auth, auth, concise\n */ \n if (pdPageType && pdnewFormName) {\n //if (pdPageStep === 'start') {\n //if (pdPageStep === 'start' && pdPageType !== 'login') { // login form start step breaks long-short formType setting in the middle of other form journeys\n //if ((pdPageStep === 'start' || pdPageStep === 'intro' || pdPageStep === 'welcome') && pdPageType !== 'login') { // login form start step breaks long-short formType setting in the middle of other form journeys. intro pageStep forces any pages prior to a start step to use a static formType (not crossover like long-short etc.)\n if ((pdPageStep === 'intro' || pdPageStep === 'welcome') && pdPageType !== 'login') { // login form start step breaks long-short formType setting in the middle of other form journeys. intro pageStep forces any pages prior to a start step to use a static formType (not crossover like long-short etc.)\n //s3.c_r('journeyTypOv', pdPageType + pdnewFormName + '-' + pdJourneyType);\n // s3.c_r does not work! why? wheras util cookieWrite works.. why two separate cookie write? when to use these? unclear \n //helper..cookieWrite('journeyTypOv', pdPageType + pdnewFormName + '-' + pdJourneyType);\n helper.c_ws('journeyTypOv', pdPageType + pdnewFormName + '-' + pdJourneyType); // prefix should also include pdSubSite to avoid clash on multi-sites?\n } else {\n journeyTypeOverride = /(.*)-(.*)/.exec(helper.c_r('journeyTypOv'));\n \n // if the override matches the current form\n if (journeyTypeOverride && journeyTypeOverride[1] === pdPageType + pdnewFormName) { // prefix should also include pdSubSite to avoid clash on multi-sites?\n pdJourneyType = journeyTypeOverride[2] + (pdJourneyType && pdJourneyType !== journeyTypeOverride[2] ? '-' + pdJourneyType : '');\n\n }\n }\n }\n\n\n //console.log('pdFormType = ' + pdFormType);\n\n // Dynamic pageName prefix for in- and out-of-session pages to uniquely identify the page in separate path/section\n // Prefix value should be two pipe delimited values. The values can be matching, or either value may be blank.\n pdPageNamePrefix = pdPageNamePrefixPair.length === 2 ? cleanText(pdInSession ? pdPageNamePrefixPair[0] : pdPageNamePrefixPair[1]) : '';\n\n // Payments use pdTransactionType as part of page and form name, instead of formName\n //formNameAlt = pdFormName || pdTransactionType;\n //formNameAlt = pdFormName ? (pdFormName + (pdFormType ? ':' + pdFormType : '')) : pdTransactionType; // to switch short/long form type when required\n formNameAlt = pdnewFormName || pdTransactionType; // to switch short/long form type when required\n\n // set pageName syntax for forms\n if (formNameAlt || (/^(?:tool|survey|selfservice|registration|payment|login|enquiry|application)$/).test(pdPageType)) { // pageType considered to be a form, use form syntax for pageName\n formNameAlt = formNameAlt || notSet;\n var newPageType;\n newPageType = pdPageType;\n\n newPageType = lowerCaseVal(\n newPageType.replace(/application/i, 'app')\n .replace(/enquiry/i, 'enq')\n .replace(/quote/i, 'quo')\n .replace(/selfservice/i, 'ser')\n .replace(/registration/i, 'reg')\n .replace(/payment/i, 'pay')\n .replace(/survey/i, 'sur')\n );\n sPageNameTemp = helper.siteID + ':' + (newPageType || notSet) + ':' + formNameAlt + (pdPageName ? ':' + pdPageName : ''); \n } else {\n if (pdPageName) {\n // orig name code -\n //sPageNameTemp = s.siteID + ':' + pdPageName;\n // now with switch for in/out of session prefix -\n sPageNameTemp = helper.siteID + ':' + (pdPageNamePrefix ? pdPageNamePrefix + ':' : '') + pdPageName; // with subSite coming from s.siteID\n } else {\n // else use getPageName plugin to get details directly from URL\n //sPageNameTemp = s.getPageName(s.pageURL); // may be decodeURIComponent(s.pageURL) for consistent URL format when errors/encoded chars. e.g %2F in OTP - may remove encoded chars in querystring though\n sPageNameTemp = decodeURIComponent(helper.getPageName(helper.pageURL)); // may be decodeURIComponent(s.pageURL) for consistent URL format when errors/encoded chars. e.g %2F in OTP - may remove encoded chars in querystring though\n //console.log(sPageNameTemp);\n }\n }\n\n // If pageName override (overrides are any pageDetails properties named as 's_...') set, use it to replace all path and section details, else all those details must be passed as individual overrides (Individual overrides can still be set though)\n sPageNameTemp = cleanText((pageDetails.s_pageName || sPageNameTemp) + (pdDialogTitle ? ':' + pdDialogTitle : ''));\n\n // format pageName and replace long URL details\n sPageNameTemp = lowerCaseVal(\n sPageNameTemp.replace(/:personal-banking(\\:|$)/i, ':pers$1')\n .replace(/:business-banking(\\:|$)/i, ':bus$1')\n .replace(/:corporate-banking(\\:|$)/i, ':corp$1')\n .replace(/:about-westpac(\\:|$)/i, ':about$1')\n .replace(/:secure:banking(\\:|$)/i, ':olb$1') // Abbreviate the path for olb\n .replace(/(.*:)(.*?:emulationbanking)(\\:|$)/i, '$1olb$3') // Abbreviate the path for emulation\n .replace(/^((?:[\\.\\w\\-]*?:){2})mobile$/i, '$1mobile:home') // set mobile root pages as a type of home page. mobile home page being overtaken by OTP and may be different?\n .replace(/(.+:atm:.+):-?\\d+(.\\d+)?:\\d+(.\\d+)$/i, '$1') // remove coords from atm detail pages\n //.replace(/(?:\\s|%20)+/g, ' ') // replace these characters (or multiples of) with single space\n .replace(/(?:-|_)+/g, '-') // replace these characters (or multiples of) with single dash\n );\n\n\n // common event58 for branchdetail, atmdetail, teamdetail pages\n if (/^(?:branch|atm|team)detail$/.test(pdPageType)) {\n //s.events = s.apl(s.events, 'event58', ',', 2); // using shorter function call like appendEvent(58);\n appendEvent(digital,'branchATMdetail');\n //appendEvent(58);\n }\n\n // this should work for identifying both application and enquiry forms for serialisation\n var eventSerialisationKey = ((pdProductID && pdProductID[0] && pdProductID[0].Product)||(pdProductID && pdProductID[0] && pdProductID[0].prod) || '') + pdnewFormName; // if the product or form name changes between start and complete steps, or journey crosses domain origin (localStorage), the serialisation won't reset at complete step in that serial range (e.g. visit).\n eventSerialisationKey = eventSerialisationKey ? eventSerialisationKey + pdFormType : false; // without formType, the same product or form name in a different journeys could be deduped, e.g. skipping some start events. If prod and form are blank, dont use only formType - it could dedupe many other forms of the same type. Would require subSite in key if same pageType + formName shouldn't be joined across different subSite + formType (e.g. should long-short form across two different subSites match?)\n\t// determine tracking scenario\n\tswitch (pdPageType) {\n case 'form':\n if (pdPageStep && pdTransactionId) {\n digital['dd.applicationID'] = digital['dd.transactionID'] = pdPageStep + '_' + pdTransactionId[0].Id;\n //s2.transactionID = pdPageStep + '_' + pdTransactionId;\n //s2.eVar39 = 'D=xact';\n }\n if (pdPageStep === 'save') {\n //s.transactionID = pdTransactionId ? 'save_' + pdTransactionId : '';\n //s.eVar39 = 'D=xact';\n appendEvent(digital,'formSave');\n //appendEvent(73);\n }\n if (pdPageStep === 'retrieve') {\n appendEvent(digital,'formRetrieve');\n //appendEvent(74);\n }\n break;\n case 'tool':\n //s.eVar23 = 'tool:'+pdFormName; // remove all these from switch cases, capture once for all forms\n //s.prop23 = 'D=v23';\n //s.eVar62 = lowerCaseVal(pdFormName,1);\n //\tpageDetails.toolInputs = { == pdToolsFormFieldObj\n //\t\tAge: band,\n //\t\tsalary: band,\n //\t\trelation: string,\n //\t\tchild:
16number,\n //\t\tcovers: string\n //\t};\n \n digital['dd.toolName']= pdFormName || notSet;\n var tempToolName = digital['dd.toolName'];\n //appendEvent(digital,'toolUsage');\n \n if(pdToolsDetail){\n digital['dd.toolDetails'] = pdToolsDetail\n } else {\n if (pdCalculatorType && pdCalculatorName) {\n var tType = pageDetails.calculatorType || notSet,\n tAmount = pageDetails.transactionAmount || notSet,\n pSelected = pageDetails.prodSelected || notSet,\n getRangeAvg = helper.amntBnds('transactions', tAmount),\n amntRange = getRangeAvg.range;\n digital['dd.toolName'] = pdCalculatorName || notSet;\n digital['dd.toolDetails'] = 'tool:' + tType + '|' + 'product:' + pSelected + '|' + amntRange;\t\n }\n }\n \n if(pdToolsFormFieldObj){\n digital['dd.toolInput'] = setFormFieldVar(pdPageType, '', pdToolsFormFieldObj);\n }\n //tactical caclculator code-START\n //tactical code for calculators until AEM framework is in place\n \n if (pdPageStep === 'result') {\n appendEvent(digital,'toolResult');\n if(pdToolOutcome){\n digital['dd.toolOutcome'] = pdToolOutcome;\n }\n } else {\n appendEvent(digital, 'toolInteraction');\n }\n // Fix for APC-1630\n //sPageNameTemp = helper.siteID + ':' + (pageDetails.pageType || notSet) + ':' + (pdCalculatorName || tempToolName) + (pdPageName ? ':' + pdPageName : '');\n sPageNameTemp = helper.siteID + ':' + (pageDetails.pageType || notSet) + ':' + (pdCalculatorName || tempToolName) + (pdPageName ? ':' + pdPageName : '') + (pdDialogTitle ? ':' + pdDialogTitle : '');\n //tactical caclculator code-END\n //s2.eVar62 = pdFormName || notSet;\n //s2.prop62 = dVar(62);\n //appendEvent(68);\n break;\n case 'calc-tool':\n if(pdToolsFormFieldObj){\n digital['dd.toolInput'] = setFormFieldVar(pdPageType, '', pdToolsFormFieldObj);\n }\n if (pdCalculatorType && pdCalculatorName) {\n var calcInfo = helper.setInteractionVars(pageDetails),\n calcDet = calcInfo.calculatorDetails||'',\n calcName = calcInfo.calculatorName||'';\n digital['dd.toolName'] = calcName || notSet;\n if(calcDet){\n digital['dd.toolDetails'] = calcDet;\n }\n appendEvent(digital, 'toolInteraction');\n }\t\n if (pdPageStep === 'result') {\n appendEvent(digital,'toolResult');\n if(pdToolOutcome){\n digital['dd.toolOutcome'] = pdToolOutcome;\n }\n }\n sPageNameTemp = helper.siteID + ':' + (pageDetails.pageType || notSet) + ':' + calcName + (pdPageName ? ':' + pdPageName : '');\n break;\n case 'survey':\n //s.eVar23 = 'survey:'+pdFormName;\n //s.prop23 = 'D=v23';\n /*\n switch(pdPageStep){\n //case 'start':\n //\tappendEvent(55); // now common for all forms\n //\tbreak;\n case 'complete':\n s.eVar28 = (pageDetails.surveyScore||notSet);\n appendEvent(64);\n break;\n }\n */\n if (pdPageStep === 'complete') {\n digital['dd.score'] = helper.fixZero(pageDetails.surveyScore) || notSet;\n appendEvent(digital,'surveyResponse');\n //s2.eVar28 = s2.w_fixZero(pageDetails.surveyScore) || notSet;\n //appendEvent(64);\n }\n break;\n case 'selfservice':\n //s.eVar23 = 'selfserv:'+pdFormName;\n //s.prop23 = 'D=v23';\n //s.eVar38 = lowerCaseVal(pdFormName,1);\n //selfservice name *compatibility with formName and newFormName\n var updatedFormName;\n if (pdnewFormName) {\n updatedFormName = pdnewFormName;\n } else {\n updatedFormName = pdFormName;\n }\n \n digital['dd.selfserviceName'] = updatedFormName || notSet;\n //s2.eVar38 = pdFormName || notSet;\n //s2.prop38 = dVar(38);\n if(pdExternalSiteName){\n digital['dd.extAcct'] = pdExternalSiteName|| notSet;\n }\n //s2.eVar64 = lowerCaseVal(pageDetails.externalSiteName);\n \n switch (pdPageStep) {\n case 'start':\n appendEvent(digital,'selfServiceStart');\n //appendEvent(35);\n break;\n case 'complete':\n appendEvent(digital,'selfServiceComplete');\n //appendEvent(36);\n if (pdSelfserviceDetails) {\n digital['dd.selfserviceDetails']= pdSelfserviceDetails || notSet;\n //s2.eVar46 = pdSelfserviceDetails || notSet;\n //s2.prop46 = dVar(46);\n // self service detail var to capture type of self service, introduced as part of Nov 16E1 Wlive release *au\n }\n break;\n case 'forgotpasswordstart':\n appendEvent(digital,'forgotPassword');\n appendEvent(digital,'selfServiceStart');\n //appendEvent(48);\n //appendEvent(35);\n break;\n case 'forgotpasswordcomplete':\n appendEvent(digital,'selfServiceComplete');\n //appendEvent(36);\n break;\n }\n break;\n case 'sitesearch':\n var ln = sPageNameTemp.split(':').length;\n if (ln > 2){\n sPageNameTemp = (sPageNameTemp.split(':').slice(0, 2).join(':'))+\":sitesearch:\"+(sPageNameTemp.split(':').slice(2, ln).join(':'));\n }\n //s3.eVar14 = helper.getValOnce(helper.srchTerm(pdSearchTerm), 's3tv', 30, 'm'); // getValOnce after #. Hash only 5+ digits?\n var searchTermTemp = helper.getValOnce(helper.srchTerm(pdSearchTerm), 's3tv', 30, 'm'); // getValOnce after #. Hash only 5+ digits?\n if (searchTermTemp) {\n digital['dd.searchTerm'] = searchTermTemp\n //s3.prop14 = s3.dVar(14);\n // split search term into keywords\n //s3.list1 = helper.clean(searchTermTemp.replace(/[^a-z]+/gi, ' ')).replace(/\\s/g, ','); // ,4); // for list prop, remove all chars outside a-z\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.lists.list1.list',helper.clean(searchTermTemp.replace(/[^a-z]+/gi, ' ')).replace(/\\s/g, ','));\n //s.eVar15 = pageBrand + ':' + (pageSite==='banking'?'secure':'public'); // OTP doesnt have site search\n appendEvent(digital,'intSearch');\n //s3.w_addEvt(14);\n //s.eVar30 = 'sitesearch:' + pdSearchResults; // use pdPageType here in place of text sitesearch string\n digital['dd.itemCount'] = pdPageType + ':' + pdSearchResults;\n //s3.eVar30 = pdPageType + ':' + pdSearchResults;\n //if(s.eVar30==='sitesearch:0'){\n //console.log(pdSearchResults);\n //if (s.eVar30 === pdPageType + ':0') {\n if (pdSearchResults === '0') {\n //s3.w_addEvt(16);\n appendEvent(digital,'intSearchZeroResults');\n }\n }\n \n /*\n //s.eVar14 = getValueOnce(lowerCaseVal(getQuerystringParam('query','',fullLocObj.href)).replace(/\\d/g,'#').replace(/\\s+/g,' ').replace(/^\\s|\\s$/g,''),'s_stv',0); // getValOnce after #. Hash only 5+ digits?\n //s.eVar14 = getValueOnce(lowerCaseVal(pageDetails.searchTerm,1).replace(/\\d/g,'#').replace(/\\s+/g,' ').replace(/^\\s|\\s$/g,''),'s_stv',0); // getValOnce after #. Hash only 5+ digits?\n digital['dd.searchTerm'] = getValueOnce(helper.srchTerm(pdSearchTerm), 's3tv', 30, 'm'); // getValOnce after #. Hash only 5+ digits?\n //s2.eVar14 = getValueOnce(s2.w_srchTerm(pdSearchTerm), 'stv', 30, 'm'); // getValOnce after #. Hash only 5+ digits?\n \n if (digital['dd.searchTerm']) {\n //s2.prop14 = dVar(14); //Not required\n // split search term into keywords\n s3.list1 = cleanText(digital['dd.searchTerm'].replace(/[^a-z]+/gi, ' ')).replace(/\\s/g, ','); // ,4); // for list prop, remove all chars outside a-z\n //s2.list1 = cleanText(s2.eVar14.replace(/[^a-z]+/gi, ' ')).replace(/\\s/g, ','); // ,4); // for list prop, remove all chars outside a-z\n //s.eVar15 = pageBrand + ':' + (pageSite==='banking'?'secure':'public'); // OTP doesnt have site search\n appendEvent(digital,'intSearch');\n //appendEvent(14);\n //s.eVar30 = 'sitesearch:' + pdSearchResults; // use pdPageType here in place of text sitesearch string\n digital['dd.itemCount'] = pdPageType + ':' + pdSearchResults;\n //s2.eVar30 = pdPageType + ':' + pdSearchResults;\n //if(s.eVar30==='sitesearch:0'){\n //console.log(pdSearchResults);\n //if (s.eVar30 === pdPageType + ':0') {\n if (pdSearchResults === '0') {\n appendEvent(digital,'intSearchZeroResults');\n //appendEvent(16);\n }\n } //else{\n //\ts.eVar14 = notSet;\n //}\n //} **/\n break;\n case 'faqsearch':\n var ln = sPageNameTemp.split(':').length;\n if (ln > 2){\n sPageNameTemp = (sPageNameTemp.split(':').slice(0, 2).join(':'))+\":faq:\"+(sPageNameTemp.split(':').slice(2, ln).join(':'));\n }\n // pageDetails passed from function call on faq search result div load\n digital['dd.faqSearchTerm'] = getValueOnce(helper.srchTerm(pdSearchTerm), 's3_faq', 30, 'm');\n //s2.eVar58 = getValueOnce(s2.w_srchTerm(pdSearchTerm), 'faq', 30, 'm');\n if (digital['dd.faqSearchTerm']) {\n //s2.prop58 = dVar(58);\n appendEvent(digital,'faqSearch');\n //appendEvent(65);\n //s.eVar30 = 'faqsearch:' + pdSearchResults;\n digital['dd.itemCount'] = pdPageType + ':' + pdSearchResults;\n //s2.eVar30 = pdPageType + ':' + pdSearchResults;\n }\n break;\n case 'branchsearch':\n // pageDetails passed from function call on branch search result div load\n var ln = sPageNameTemp.split(':').length;\n if (ln > 2){\n sPageNameTemp = (sPageNameTemp.split(':').slice(0, 2).join(':'))+\":branchsearch:\"+(sPageNameTemp.split(':').slice(2, ln).join(':'));\n }\n sPageNameTemp += ':searchresults';\n \n //if(s.w_pgLoad){ // getValOnce would be cleared on every page click/doPlugins in this pageType case\n //s.eVar44 = getValueOnce(lowerCaseVal(pageDetails.searchTerm,1).replace(/\\d/g,'#').replace(/\\s+/g,' ').replace(/^\\s|\\s$/g,''),'s_brnch',0); // hash numbers, postcodes\n //s.eVar44 = getValueOnce(s.w_srchTerm(),'s_brnch',0); // hash numbers, keep postcodes in function\n digital['dd.branchSearchLocation'] = helper.srchTerm(pdSearchTerm); // hash numbers, keep postcodes. not val once, every time\n //s2.eVar44 = s2.w_srchTerm(pdSearchTerm); // hash numbers, keep postcodes. not val once, every time\n if (digital['dd.branchSearchLocation']) {\n //s2.prop44 = dVar(44);\n digital['dd.branchSearchFilters'] = pageDetails.searchFilters || notSet;\n appendEvent(digital,'branchSearch');\n //s2.prop45 = pageDetails.searchFilters || notSet;\n //appendEvent(57);\n //s.eVar30 = 'branchsearch:' + pdSearchResults;\n digital['dd.itemCount'] = pdPageType + ':' + pdSearchResults;\n //s2.eVar30 = pdPageType + ':' + pdSearchResults;\n //if(s.eVar30==='branchsearch:0'){\n //if (s.eVar30 === pdPageType + ':0') {\n if (pdSearchResults === '0') {\n appendEvent(digital,'intSearchZeroResults');\n //appendEvent(16);\n }\n }\n //}\n break;\n case 'branchdetail':\n //wbc BUG fix\n if(pdItemName==='' & helper.getLoc().hash !==''){\n pdItemName = helper.getLoc().hash.replace(/\\#\\//i,'').replace(/\\//g, ':');\n } else if(pdItemName===''){\n pdItemName = helper.getLoc().pathname.replace(/\\/(locateus|locator)\\//ig,'').replace(/\\//ig,':');\n }\n \n var ln = sPageNameTemp.split(':').length;\n if (ln > 2){\n sPageNameTemp = (sPageNameTemp.split(':').slice(0, 2).join(':'))+\":branchsearch:\"+(sPageNameTemp.split(':').slice(2, ln).join(':'));\n }\n sPageNameTemp += ':' + lowerCaseVal(pdItemName.replace(/\\s/g, ''), 1);\n //appendEvent(58);\n // common events set above\n break;\n case 'atmdetail':\n //sPageNameTemp=sPageNameTemp.replace(/:-?\\d+(.\\d+)?:\\d+(.\\d+)$/i,':'+lowerCaseVal(pageDetails.itemName,1));\n var ln = sPageNameTemp.split(':').length;\n if (ln > 2){\n sPageNameTemp = (sPageNameTemp.split(':').slice(0, 2).join(':'))+\":branchsearch:\"+(sPageNameTemp.split(':').slice(2, ln).join(':'));\n }\n sPageNameTemp += ':' + lowerCaseVal(pdItemName.replace(/\\s/g, ''), 1);\n // common events set above\n //appendEvent(58);\n break;\n //case 'teamdetail':\n // common events set above\n //appendEvent(58);\n //\tbreak;\n case 'registration':\n //s.eVar23 = 'reg:'+s.eVar6+':'+pdFormName; // does the brand from the URL make sense here? Is it required, or should it be external site name?\n //s.prop23 = 'D=v23';\n //s.eVar45 = lowerCaseVal(pdFormName,1); // should brand and external site name be included here?\n switch (pdPageStep) {\n case 'start':\n appendEvent(digital,'registrationStart');\n //appendEvent(51);\n break;\n case 'complete':\n appendEvent(digital,'registrationComplete');\n //appendEvent(52);\n //appendEvent(46); // this should be set automatically by session/cookie server-side process in OTP/online banking\n break;\n }\n break;\n case 'product':\n //s.products = ';' + (pageDetails.productID||notSet).replace(/,/g,',;');\n switch (pdPageStep) {\n case 'view':\n appendEvent(digital,'customProdView');\n //appendEvent(13);\n break;\n //case 'selection': // product selection event/page not applicable/required\n //\tappendEvent(32);\n //\tbreak;\n case 'comparison':\n appendEvent(digital,'prodCompare');\n //appendEvent(30);\n break;\n }\n break;\n case 'payment':\n // s.eVar37 = lowerCaseVal(pdTransactionType,1);\n \n // payment status captured as merchandising eVar to relate to payment amount. two methods -\n //pdProductID=[{'prod':'payment:'+lowerCaseVal(pdTransactionType,1),'events':(pdPageStep==='complete'?'payment:'+lowerCaseVal(pdTransactionType,1)+(pdFormStatus?':'+pdFormStatus:'')+'='+pdTransactionAmount:'')}]; // capture status directly appended to pdTransactionType details\n //pdProductID=[{'prod':'payment:'+lowerCaseVal(pdTransactionType,1),'events':(pdPageStep==='complete'?'payment:'+lowerCaseVal(pdTransactionType,1)+'='+pdTransactionAmount:'')}]; // generic form status applied to merch in prod string processing\n // generic form status applied to merch in prod string processing\n \n if (pdTransactionQty) {\n transactionMerch.push('payment:qty:' + pdTransactionQty);\n }
16\n if (pdTransactionDetails) {\n transactionMerch.push(pdTransactionDetails);\n }\n \n // Currently set only for steps below. Otherwise products tracks as 'payment:(not set)' in review step etc.\n paymentProduct = [{\n 'prod' : 'payment:' + (pdTransactionType || notSet),\n //'events' : ((pdPageStep === 'complete' || pdPageStep === 'effectpayment') ? 'payment:' + (pdTransactionType || notSet) + '=' + pdTransactionAmount : '') // complete or effectpayment should set the payment/product details.\n 'events' : /^(complete|effectpayment|bulkpaymentapproval)$/.test(pdPageStep) ? 'payment:' + (pdTransactionType || notSet) + '=' + pdTransactionAmount : '', // complete or effectpayment should set the payment/product details.\n //'merch' : pdTransactionQty ? 'options=payment:qty:' + pdTransactionQty : ''\n 'merch' : transactionMerch.length ? 'options=' + transactionMerch.join('+') : ''\n }\n ];\n \n switch (pdPageStep) {\n case 'start':\n appendEvent(digital,'paymentStart');\n //appendEvent(38);\n pdProductID = paymentProduct;\n break;\n //case 'pinauthorisation':\n //\tappendEvent(42); // not used\n //\tbreak;\n case 'complete':\n appendEvent(digital,'paymentComplete');\n //appendEvent(39);\n pdProductID = paymentProduct;\n \n // removed to reduce reference IDs. payment ref not required\n //s.transactionID = pdTransactionId ? 'pay_' + pdTransactionId : ''; // prefix to avoid duplicates with other applications etc. only capture ID if set\n //s.eVar39 = 'D=xact';\n \n //s.purchaseID = prchId; // serialise all events with revenue/value. confirm uniqueness. maybe only capture in transactionID/xact\n //appendEvent('purchase'); // TODO. serialise payments to de-dupe amounts?\n \n break;\n case 'businessstart':\n // payment submitted/created, awating approval. business OTP 1.2\n appendEvent(digital,'busPaymentStart');\n //appendEvent(42);\n pdProductID = paymentProduct;\n break;\n case 'createpayment':\n // payment submitted/created, awating approval. business OTP 1.2\n appendEvent(digital,'busPaymentCreated');\n //appendEvent(43);\n pdProductID = paymentProduct;\n break;\n case 'authorisepayment':\n // intermediate approval step. business OTP 1.2\n //s.eVar42 = lowerCaseVal(pageDetails.businessAuthType, 1); // not used\n //s.prop42 = dVar(42);\n appendEvent(digital,'busPaymentAuthorised');\n //appendEvent(44);\n pdProductID = paymentProduct;\n break;\n case 'effectpayment':\n // final approval step, payment processed/scheduled. business OTP 1.2\n appendEvent(digital,'busPaymentEffected');\n //appendEvent(45);\n pdProductID = paymentProduct;\n break;\n case 'bulkpaymentapproval':\n // final bulk approval step. business OTP 1.2 step name also above, in setting paymentProduct\n appendEvent(digital,'busBulkApprovals');\n //appendEvent(37); // bulk payment approval completed step\n pdProductID = paymentProduct;\n break;\n }\n break;\n case 'login':\n //s.eVar23 = 'login:'+s.eVar6+':'+pdFormName; // does the brand from the URL make sense here? Is it required, or should it be external site name? eWise?\n //if(/^(?:firsttime|complete)$/i.test(pdPageStep)){\n //\ts.eVar40 = 'logged in';\n //s.prop40 = 'D=v40';\n //}\n \n /*\n switch (pdPageStep) {\n case 'lockout':\n appendEvent(49);\n break;\n //case 'firsttime':\n //\tappendEvent(47); // removed due to inaccurate implementation\n //appendEvent(46); // this should be set automatically by session/cookie server-side process in OTP/online banking\n //s.eVar32 = 'stop';\n //\tbreak;\n case 'complete':\n // login complete step probably won't be used directly in OTP\n appendEvent(46);\n //\t//s.eVar33 = 'start';\n break;\n }\n */\n \n if (pdPageStep === 'complete') {\n digital['dd.loginStatus'] = 'logged in';\n appendEvent(digital,'loginComplete');\n //helper.cookieWrite('s_wbc_auth', 1, new Date(+new Date() + (20 * 60 * 1000)),'/', helper.cookieDomain());\n //for westpac specific\n //appendEvent(46);\n }\n \n break;\n case 'logout':\n //s.eVar23 = 'logout:'+s.eVar6+':'+pdFormName; // does the brand from the URL make sense here? Is it required, or should it be external site name?\n digital['dd.loginStatus'] = 'logged out';\n //Brand:WBC Banking\n //helper.cookieWrite('s_wbc_auth', 2, new Date(+new Date() + (60 * 60 * 1000)),'/', helper.cookieDomain()); //setting auth state in westpac cookie\n //s2.eVar40 = 'logged out';\n //s.prop40 = 'D=v40';\n break;\n \n /*\n case 'livechat': // triggered on live person popup winfdow, not on page or click\n switch(pdPageStep){\n case 'start':\n s.eVar57 = (s.eVar57||'{LivePerson Session ID}');
16 // check value\n s.prop57 = 'D=v57';\n appendEvent(63);\n break;\n }\n break;\n */\n case 'enquiry':\n // was 'lead'\n //s.eVar23 = 'lead:'+pdFormName;\n //s.prop23 = 'D=v23';\n //s.products = (pageDetails.productID?';' + pageDetails.productID.replace(/,/g,',;'):'');\n switch (pdPageStep) {\n case 'start':\n appendEvent(digital,'enqStart');\n //appendEvent(53);\n // serialise enquiry start\n //Abu todo serialise event ZZZZ\n //helper.addSerialiseEvt(digital,'event28',helper.serialise(eventSerialisationKey, pdPageStep));\n //appendEvent('event28' + helper.serialise(eventSerialisationKey, pdPageStep));\n break;\n case 'complete':\n appendEvent(digital,'enqComplete');\n //appendEvent(54);\n // serialise enquiry complete\n //Abu todo serialise event ZZZZ\n //appendEvent(digital,'enqCompleteSerialised', helper.serialise(eventSerialisationKey, pdPageStep));\n //helper.addSerialiseEvt(digital,'event29',helper.serialise(eventSerialisationKey, pdPageStep));\n //appendEvent('event29' + s2.w_serialise(eventSerialisationKey, pdPageStep));\n /*\n the transactionID for enquiry complete has workaround for westpac live!, westpac live does not have new datalayer \n so check if transactionID exists instead to use or use notSet\n remove the conditions below once new data layer is implemented in westpac live\n */\n if (pdTransactionId) {\n digital['dd.transactionID'] = digital['dd.applicationID'] = 'enq_' + helper.createTransID(pdTransactionId);\n } else if (pageDetails.transactionID) {\n /* pick up transactionID when it is the only one available */\n digital['dd.transactionID'] = digital['dd.applicationID'] = 'enq_' + pageDetails.transactionID;\n } else {\n /* assign notSet when none available */\n digital['dd.transactionID'] = digital['dd.applicationID'] = 'enq_' + pdPageStep + ':' + pdTimeStamp;\n }\n \n //s.transactionID='enq_'+pdTransactionId; // prefix to avoid duplicates with other applications etc.\n //digital['dd.applicationID'] = digital['dd.transactionID'] = pdTransactionId[0].Id ? 'enq_' + pdTransactionId[0].Id : ''; // prefix to avoid duplicates with other applications etc. only capture ID if set\n //s2.transactionID = pdTransactionId ? 'enq_' + pdTransactionId : ''; // prefix to avoid duplicates with other applications etc. only capture ID if set\n //s2.eVar39 = 'D=xact'; //ABU not sure 'D=xact' replacemint ZZZ \n \n //s.purchaseID = prchId; // serialise all events like application complete. confirm uniqueness across all types and platforms\n //appendEvent('purchase');\n \n break;\n }\n break;\n case 'faq':\n //s.eVar58 = lowerCaseVal(pageDetails.itemName,1);\n //s.prop58 = 'D=v58';\n //appendEvent(65);\n sPageNameTemp += ':' + lowerCaseVal(pdItemName, 1);\n break;\n \n /*\n case 'enquiry':\n //s.eVar23 = 'enquiry:'+pdFormName;\n //s.prop23 = 'D=v23';\n s.eVar43 = lowerCaseVal(pdFormName,1);\n s.prop43 = 'D=v43';\n //s.products = ';' + (pageDetails.productID||notSet).replace(/,/g,',;');\n switch(pdPageStep){\n case 'complete':\n appendEvent(50);\n s.transactionID=pdTransactionId;\n s.eVar39='D=xact'; // for enquiry? capture whenever set?\n break;\n }\n break;\n */\n \n case 'application':\n //s.eVar23 = 'appl:'+pdFormName;\n //s.prop23 = 'D=v23';\n //s.products = (pageDetails.productID?';' + pageDetails.productID.replace(/,/g,',;'):'');\n \n //s.prop68 = (pageDetails.businessABN||notSet); // ABN not required\n \n //\t\ts.eVar37 = lowerCaseVal(pdTransactionType,1);\n \n /*\n if(/^(?:save|complete)$/i.test(pdPageStep)){ // different reference number specified between save and complete?\n //s.eVar39=pdTransactionId;\n //s.transactionID='D=v39';\n s.transactionID=pdTransactionId;\n s.eVar39='D=xact';\n }\n */\n \n //eventSerialisationKey = (pdProductID && pdProductID[0] && pdProductID[0].prod) || pdFormName;\n //eventSerialisationKey = eventSerialisationKey ? eventSerialisationKey + pdFormType : 0;\n \n //eventSerialisationKey = ((pdProductID && pdProductID[0] && pdProductID[0].prod) || '') + pdFormName; // if the product or form name changes between start and complete steps, or journey crosses domain origin (localStorage), the serialisation won't reset at complete step in that serial range (e.g. visit).\n //eventSerialisationKey = eventSerialisationKey ? eventSerialisationKey + pdFormType : false; // without formType, the same product or form name in a different journeys could be deduped, e.g. skipping some start events. If prod and form are blank, dont use only formType - it could dedupe many other forms of the same type.\n \n if (pdPageStep && pdTransactionId) {\n digital['dd.transactionID'] = digital['dd.applicationID'] = pdPageStep + '_' + pdTransactionId[0].Id;\n //s2.transactionID = pdPageStep + '_' + pdTransactionId;\n //s2.eVar39 = 'D=xact';\n }\n \n /*---- wbg|form|rq2 ----\n eVar41:Form-Type(pdFormIsStp & pdFormVariant)\n Convention: captured on all STP form application steps , \n sampleValues: stp_na, stp_unlock, stp_activate, non-stp\n */\n /*\n old code only for oneclick\n if (pdFormIsStp) {\n digital['dd.formType'] = 'stp' + '_' + (lowerCaseVal(pdFormVariant) || 'na');\n }
16 else {\n digital['dd.formType'] = 'non-stp';\n }\n */\n // extended version for oneclick and oregon\n if (pdFormIsStp) {\n /* for oneclick forms which are stp*/\n digital['dd.formType'] = 'stp' + '_' + (lowerCaseVal(pdFormVariant) || 'na');\n } else if (pdSiteName === 'oregon' && pdFormVariant) {\n /* works for oregon when formvariant is present */\n digital['dd.formType'] = 'non-stp' + '_' + (lowerCaseVal(pdFormVariant) || 'na');\n } else {\n /* when non stp and oregon with no formVariant */\n digital['dd.formType'] = 'non-stp';\n }\n \n /*---- wbg|form|rq4 ----\n eVar43:Form-Type(pdAccountType)\n Convention: captured on all application steps , \n sampleValues: single, joint or multiple\n */\n if(pdAccountType){\n digital['dd.accountType'] = lowerCaseVal(pdAccountType);\n }\n /*---- wbg|form|rq6 ----\n prop43:Form-Type(pdBusinessType)\n Convention: captured on all application steps , \n sampleValues: sole-trader, director\n */\n if(pdBusinessType){\n digital['dd.businessType'] = lowerCaseVal(pdBusinessType);\n }\n if (pdFormFieldObj) {\n digital['dd.formFieldValues'] = setFormFieldVar(pdSiteName, pdnewFormName, pdFormFieldObj)\n }\n switch (pdPageStep) {\n /*---- wbg|form|rq7 ----\n event17:Application Welcome\n Convention: only for applications, used on step where visitor choose to login or continue to public forms\n */\n case 'welcome':\n appendEvent(digital, 'welcome');\n \n break;\n case 'start':\n appendEvent(digital,'appStart');\n //appendEvent(21);\n //ABU todo serilize event ZZZZ\n //appendEvent(digital,'appStartSerialised',helper.serialise(eventSerialisationKey, pdPageStep));\n //helper.addSerialiseEvt(digital,'event26',helper.serialise(eventSerialisationKey, pdPageStep));\n //appendEvent('event26' + s2.w_serialise(eventSerialisationKey, pdPageStep));\n \n //console.log('s.events = ' + s.events);\n //s.eVar31 = 'start';\n \n break;\n case 'save':\n appendEvent(digital,'appSaved');\n //appendEvent(24);\n break;\n case 'retrieve':\n appendEvent(digital,'appRetrieved');\n //appendEvent(23);\n break;\n case 'milestone':\n // when application reached important milestores\n appendEvent(digital,'appMilestone');\n if (pdFormMilestone) {\n digital['dd.formMilestone'] = pdFormMilestone;\n }\n if (pdFormMilestone && pdTransactionId) {\n digital['dd.transactionID'] = digital['dd.applicationID'] = 'milestone:'+pdFormMilestone + '_' + pdTransactionId[0].Id;\n }\n break;\n case 'complete':\n appendEvent(digital,'appComplete');\n //appendEvent(22);\n // mark serial stamp as complete once hit. re-use same stamp if starting same form again if not completed, generate new serial if form has been completed (in the same origin)\n //ABU todo serilize event ZZZZ\n //helper.addSerialiseEvt(digital,'event27',helper.serialise(eventSerialisationKey, pdPageStep));\n //s3.events = s3.apl(s3.events, 'event71' + ':' + helper.serialise(eventSerialisationKey, pdPageStep), '', 1);\n //s3.events=s3.apl(s3.events,\"event1\",\",\",1);\n //appendEvent('event27' + helper.serialise(eventSerialisationKey, pdPageStep));\n //console.log(eventSerialisationKey);\n //digital['dd.transactionID'] = pdTransactionId;\n if (pdTransactionId) {\n digital['dd.transactionID'] = digital['dd.applicationID'] = helper.createTransID(pdTransactionId);\n } else if (pageDetails.transactionID) {\n if(/^\\[CID:.+\\]/i.test(pageDetails.transactionID)){ // updated to ignore case for some domino forms\n // if using CID format, take last 20 chars of CID cookie (if exists)+timestamp\n digital['dd.transactionID'] = digital['dd.applicationID'] = (pageDetails.transactionID).replace(/\\[CID:(.+)\\]/ig,'$1');\n }
16else{\n /* pick up transactionID when it is the only one available */\n digital['dd.transactionID'] = digital['dd.applicationID'] = pageDetails.transactionID;\n }\n }\n //s2.transactionID = pdTransactionId;\n //s.eVar39 = 'D=xact'; // if multiple transacation ID's, what happens on forms without productID? are there any without products? Have form txn ID + multi prod IDs?\n //s.purchaseID = 'D=v39';\n //s.purchaseID = 'D=xact';\n \n /*\n if(/^\\[CID:.+\\]/i.test(prchId)){ // updated to ignore case for some domino forms\n // if using CID format, take last 20 chars of CID cookie (if exists)+timestamp\n prchId = /.{1,20}(?=\\])/.exec(prchId.replace(/(-|\\s|:|^\\[CID)/gi,''))[0];\n }\n // always trim purchaseID to first 20 chars only\n s.purchaseID = prchId.substring(0,20);\n */\n if (pdTransactionId) {\n prchId = lowerCaseVal(cleanText(pageDetails.appReference[0].Id || ''));\n digital['dd.purchaseID'] = prchId;\n }\n \n //s2.purchaseID = prchId; // confirm uniqueness\n //s.events = s.apl(s.events,'purchase',',',2);\n appendEvent(digital,'purchase');\n //appendEvent('purchase'); // only when approved? (not declined, referred, customer declined). Only really used for serialising, so maybe always fire?...\n \n //s.eVar31 = 'stop';\n //s.eVar32 = 'start';\n //s.eVar33 = 'stop';\n \n // apply transactionType and transactionAmount against first product if legacy values exist\n if (pdProductID && pdProductID[0] && !pdProductID[0].events) {\n //pdProductID[0].events=lowerCaseVal(pdTransactionType,1)+(pdFormStatus?':'+pdFormStatus:'')+'='+pdTransactionAmount; // apply status directly to first product\n //pdProductID[0].events=lowerCaseVal(pdTransactionType,1)+'='+pdTransactionAmount; // generic pdFormStatus applied during prod string processing\n if(pdTransactionAmount){\n pdProductID[0].events = (pdTransactionType || notSet) + '=' + pdTransactionAmount; // generic pdFormStatus applied during prod string processing\n }\n }\n // - - - - - - - - - wbg|form|rq14 - - - - - - - - - - -\n if (pdFormIsStp && pdAppStatus) {\n // call applicationStatus function here with pdAppStatus as argument\n digital['dd.applicationStatus'] = helper.appStatusSetup(pdAppStatus);\n }else if (pdAppStatus){\n digital['dd.applicationStatus'] = JSON.stringify(pdAppStatus).replace(/(\\[|\\]|\\{|\\}|\\'|\\\")/ig,'').replace(/\\,/ig,'|');\n }\n \n // track status of whole form submission (even though form may include multiple products)\n // pdFormStatus is applied directly to merchandising with every transaction amount band\n /*\n switch (pdFormStatus) {\n case 'approved':\n appendEvent(18);\n break;\n case 'declined':\n appendEvent(19);\n break;\n case 'referred':\n appendEvent(20);\n break;\n }\n */\n \n //if (/^approved($|:upsell|:downsell$)/i.test(pdFormStatus)) {\n if (/^approved(?!:downselldeclined)/i.test(pdFormStatus)) {\n appendEvent(digital,'appApproved');\n //appendEvent(18);\n }\n //if (pdFormStatus === 'declined') {\n if (/^declined/i.test(pdFormStatus)) {\n appendEvent(digital,'appDeclined');\n //appendEvent(19);\n }\n //if (pdFormStatus === 'referred') {\n if (/^referred/i.test(pdFormStatus)) {\n appendEvent(digital,'appReferred');\n //appendEvent(20);\n }\n if (pdFormStatus === 'approved:downselldeclined') {\n appendEvent(digital,'appCustDeclined');\n //appendEvent(25);\n }\n \n break;\n }\n break;\n case 'quote':\n /*\n ---- wbg|form|rq8 ----\n ---- wbg|form|rq9 ----\n ---- wbg|form|rq10 ----\n ---- wbg|form|rq11 ----\n event73,74,86,& 87:Quote start, complete, save and retrive\n Convention:added new events, in addition capture transactionID/applicationID on start/save and complete quote\n */\n switch (pdPageStep) {\n case 'welcome':\n appendEvent(digital, 'quoteWelcome');\n\n break;\n case 'start':\n appendEvent(digital, 'quoteStart');\n if (pdTransactionId) {\n prchId = lowerCaseVal(cleanText(pageDetails.appReference[0].id || ''));\n digital['dd.purchaseID'] = prchId;\n digital['dd.transactionID'] = 'quote_' + helper.createTransID(
16pdTransactionId);\n }\n \n break;\n case 'save':\n appendEvent(digital, 'quoteSaved');\n if (pdTransactionId) {\n digital['dd.transactionID'] = 'quote_' + helper.createTransID(pdTransactionId);\n }\n \n break;\n case 'retrieve':\n appendEvent(digital, 'quoteRetrieved');\n \n break;\n case 'complete':\n appendEvent(digital, 'quoteComplete');\n if (pdTransactionId) {\n digital['dd.transactionID'] = 'quote_' + helper.createTransID(pdTransactionId);\n } else{\n digital['dd.transactionID'] = 'quote_' + pdPageStep + ':' + pdTimeStamp;\n }\n break;\n }\n break;\n case 'servererror':\n // 404, 500 etc. on page load\n // align pageName for errors to correspond to similar section details of other pages\n sPageNameTemp = helper.siteID + ':error';\n //console.log(sPageNameTemp);\n pageNamePathArray = sPageNameTemp.split(':').slice(0, 4); // provide truncated path for section details, if error page (remove URL)\n if (String(pageDetails.errorCode) === '404') {\n pdErrorDetails='page not found'\n //s2.pageType = 'errorPage';\n }\n digital['dd.errorCode'] = (pdErrorCode ? pdErrorCode+':':'') + pdErrorDetails\n digital['dd.pageType'] = 'errorPage';\n helper.addEvt(digital,'error');\n break;\n \n // pageerror pageType doesn't make sense - errors would usually occur on another pageType\n //case 'pageerror': // not required? always capture errors if set?\n //s.prop17=s.siteID+':'+lowerCaseVal(s.prop17||pageDetails.errorCode,1); // different approach for form errors below\n //\ts.prop17=lowerCaseVal(s.prop17||pageDetails.errorCode,1); // stored in list prop\n //\tbreak;\n }\n \n // apply any global pageName replace\n //sPageNameTemp = s.w_valReplace(sPageNameTemp, 'appmeasurement_pageNameReplace');\n sPageNameTemp = helper.valReplace(helper.valReplace(sPageNameTemp, helper.lStor('get', 'appmeasurement_pageNameReplace')), pageDetails.pageNameReplace); // global + local replace\n //sPageNameTemp = s2.w_valReplace(s2.w_valReplace(sPageNameTemp, s2.w_lStor('get', 'appmeasurement_pageNameReplace')), pageDetails.pageNameReplace); // global + local replace\n // standard changeIf syntax, operating on pageName property only\n //sPageNameTemp = changeIf({\n //\t\t'pageName' : sPageNameTemp,\n //\t\t'changeIf' : s.w_lStor('get', 'appmeasurement_pageNameReplace')\n //\t}).pageName; // analytics_pageNameReplace > analytics_pageNameChange = originPageNameChange\n \n // remove any detail for this page only\n //sPageNameTemp = sPageNameTemp.replace(new RegExp(pageDetails.pageNameReplace, 'gi'), ''); // remove anything matching pageNameReplace regex. if not used, use changeIf instead?\n //sPageNameTemp = changeIf({\n //\t\t'pageName' : sPageNameTemp,\n //\t\t'changeIf' : pageDetails.pageNameReplace\n //\t}).pageName; // pageNameReplace > pageNameChange = pageNameChange\n \n // copy pageName details to section eVars -\n // now copying longest detail to all section vars for more accurate reporting on page views in/below that section\n // -----------------------------------------------------------------------------------------------------------------------------\n pageNamePathArray = pageNamePathArray || sPageNameTemp.split(':');\n //console.log(pageNamePathArray);\n //console.log(sPageNameTemp);\n //s.w_pathArr = pageNamePathArray; // for use outside this function\n // New version with experience removed from pageName -\n \n //Abu to investigate ZZZ\n digital['dd.brand']= pageNamePathArray[0]; // Brand\n digital['dd.site'] = pageNamePathArray[1]? pageNamePathArray.slice(0, 2).join(':') : digital['dd.brand'];\n digital['dd.section1'] = pageNamePathArray[2]? pageNamePathArray.slice(0, 3).join(':') : digital['dd.site'] ;\n digital['dd.section2'] = pageNamePathArray[3]? pageNamePathArray.slice(0, 4).join(':') : digital['dd.section1'] ;\n digital['dd.section3'] = pageNamePathArray[4]? pageNamePathArray.slice(0, 5).join(':') : digital['dd.section2'] ;\n digital['dd.section4'] = pageNamePathArray[5]? pageNamePathArray.slice(0, 6).join(':') : digital['dd.section3'] ;\n\n //APC-1650 - Introduced new variable to capture journeyId, cusRelationType and orgRelationType for better tracking of user journey\n if(pdJourneyId){\n digital['dd.journeyId'] = pdJourneyId;\n }\n\n if(pdRelationType){\n digital['dd.relationType'] = pdRelationType;\n }\n \n //dd.brand = pageNamePathArray[0]; // Brand\n //s2.eVar6 = pageNamePathArray[0]; // Brand\n //s2.prop6 = dVar(6);\n //if (pageNamePathArray[1]) { // Site\n \n //Abu to investigate ZZZ\n //dd.site = pageNamePathArray.slice(0, 2).join(':');\n //s2.eVar1 = pageNamePathArray.slice(0, 2).join(':');\n //s2.prop1 = dVar(1);\n //}\n //if (pageNamePathArray[2]) { // Site section\n \n \n \n //s2.eVar2 = pageNamePathArray.slice(0, 3).join(':');\n //s2.prop2 = dVar(2);\n \n //ABU Not required DynamicVariable\n //if (s2.eVar2 === sPageNameTemp) {\n //\ts2.eVar2 = s2.prop2 = pageNameDynamicVariable;\n //}\n //}\n //if (pageNamePathArray[3]) { // Sub section\n \n //s2.eVar3 = pageNamePathArray.slice(0, 4).join(':');\n //s2.prop3 = dVar(3);\n //ABU Not required DynamicVariable\n //if (s2.eVar3 === sPageNameTemp) {\n //\ts2.eVar3 = s2.prop3 = pageNameDynamicVariable;\n //}\n //}\n //if (pageNamePathArray[4]) { // Sub sub section\n \n //s2.eVar4 = pageNamePathArray.slice(0, 5).join(':');\n //s2.prop4 = dVar(4);\n //ABU Not required DynamicVariable\n //if (s2.eVar4 === sPageNameTemp) {\n //\ts2.eVar4 = s2.prop4 = pageNameDynamicVariable;\n //}\n //}\n //if (pageNamePathArray[5]) { // Sub sub sub section\n \n //s2.eVar5 = pageNamePathArray.slice(0, 6).join(':');\n //s2.prop5 = dVar(5);\n //ABU Not required DynamicVariable\n //if (s2.eVar5 === sPageNameTemp) {\n //\ts2.eVar5 = s2.prop5 = pageNameDynamicVariable;\n //}\n //}\n \n // server from full domain\n //ABU server is move to do_plugins\n //s.server = lowerCaseVal(fullLocObj.hostname);\n //digital['dd.server'] = lowerCaseVal(fullLocObj.hostname + (/\\
16s(banking|dev)\\s/i.test(helper.codeVers) && voyagerLoadBalancerID ? '-' + voyagerLoadBalancerID : '')); // capture server/load balancer ID R01 = Ryde, WS01 = Western Sydney\n //s2.server = lowerCaseVal(fullLocObj.hostname + (/\\s(banking|dev)\\s/i.test(s2.w_codeVers) && voyagerLoadBalancerID ? '-' + voyagerLoadBalancerID : '')); // capture server/load balancer ID R01 = Ryde, WS01 = Western Sydney\n \n if(pdBranchLocationCode){\n digital['dd.branchcode'] = pdBranchLocationCode;\n }\n if(pdQuoteStatus){\n pdQuoteStatus = pdQuoteStatus.replace(/\\[\\{(.*?)\\}\\]/ig,'$1').replace(/\\\"/ig,'').replace(/\\,/ig,'|');\n digital['dd.quoteStatus'] = lowerCaseVal(cleanText(pdQuoteStatus));\n }\n if(pdSetupOptions){\n digital['dd.setupOptions']=lowerCaseVal(cleanText(pdSetupOptions));\n }\n //s2.eVar7 = pageExperience;\n //s2.channel = dVar(7);\n \n // standard form name details\n //formNameAlt=(pdFormName||pdTransactionType); // Payments use pdTransactionType as part of form name, not the formName from pageDetails\n /*---- wbg|form|rq15 ----\n eVar23:made changes as part of new form name convention\n removed the journey information from form name\n pageType (or formtype) is now shorter (app|enq|quo) instead of application|enquiry etc\n */\n if (pdPageType && formNameAlt) {\n //s.eVar23 = s.eVar6+':'+pdPageType+':'+formNameAlt; // excludes sub-domain, e.g. - wbc:application\n var newPageType,\n newFormName,\n prodDescriptionRequired,\n prodDescription,\n productIDExists,\n newPageType = pdPageType;\n \n newPageType = lowerCaseVal(\n newPageType.replace(/application/i, 'app')\n .replace(/enquiry/i, 'enq')\n .replace(/quote/i, 'quo')\n .replace(/selfservice/i, 'ser')\n .replace(/registration/i, 'reg')\n .replace(/payment/i, 'pay')\n .replace(/survey/i, 'sur')\n );\n \n newFormName = helper.siteID + ':' + newPageType + ':' + formNameAlt; // includes sub-domain, e.g. - wbc:online:application // if this matches v3, D=v3 could be used here\n digital['dd.formName'] = newFormName;\n /*---- wbg|form|rq17 ----\n eVar16: product description new eVar for BT requirement\n concatenate formName and product description from data layer, only populate for quote/enquiry/application pages. \n */\n prodDescriptionRequired = /(app|quo|enq)/i.test(newPageType);\n if (pdProductID && pdProductID[0]) {\n productIDExists = true;\n }\n \n if (prodDescriptionRequired && productIDExists) {\n prodDescription = pdProductID[0].ProductName;\n digital['dd.prodDescription'] = newFormName + ':' + prodDescription\n }\n \n //s2.eVar23 = helper.siteID + ':' + pdPageType + ':' + formNameAlt; // includes sub-domain, e.g. - wbc:online:application // if this matches v3, D=v3 could be used here\n //s2.prop23 = dVar(23);\n \n if (pdPageStep === 'start') {\n appendEvent(digital, 'formStart');\n //appendEvent(55);\n }\n if (pdPageStep === 'complete') {\n appendEvent(digital, 'formComplete');\n //appendEvent(56);\n }\n \n // ---- wbg|form|rq1 ----\n // moved into this section to populate journeType wherever available irrespective of pageType\n if (pdJourneyType) {\n digital['dd.journeyType'] = lowerCaseVal(pdJourneyType);\n }\n \n }\n \n // details to track on full page loads only. i.e. not on every click...\n /*\n if(s.w_pgLoad){\n // if available after page load\n s.list2=s.c_r('banners'); // check suitable cookie name. this should contain a comma separated list of banners seen on previous page\n if(s.list2){\n appendEvent(11);\n s.c_w('banners',0,new Date(0));\n }\n \n // capture number of form validation errors from cookie\n if(s.c_r('errCount')){\n s.prop17=s.
16c_r('errCode');\n //s.eVar30 = (s.prop17.indexOf(s.w_inlErr+',')>-1? s.prop17 : 'defined errors') + ':' + s.c_r('errCount');\n s.eVar30 = 'errors:' + s.c_r('errCount');\n s.c_w('errCode',0,new Date(0));\n s.c_w('errCount',0,new Date(0));\n }\n \n // Navigation menu ID\n s.prop59=s.c_r('s_nav');\n s.c_w('s_nav','',new Date(0)); // remove s_nav cookie after tracking\n \n // if search results 'click past' rank cookie has been set from result link click, track the rank and click event and delete the cookie.\n s.prop16=s.c_r('cpr'); // The cookie is set on search results link clicks with the rank of the link\n if(s.prop16){\n appendEvent(15);\n s.c_w('cpr','',new Date(0)); // delete cookie after tracking\n }\n }\n */\n \n // Rules to track a cross-section of key page types without pageType specified\n if (pageSite === 'www') {\n pageTypeAlt = 'www:' + notSet; // default for unspecified pages\n //if(sPageNameTemp==='wbc:www:home'){\n if (/^wbc:www:(?:mobile:)?home$/i.test(sPageNameTemp)) { // desktop or mobile home page as www:home page type\n pageTypeAlt = 'www:home';\n }\n //console.log(pageNamePathArray);\n if (/^(?:pers|bus|corp)$/.test(pageNamePathArray[2])) {\n //if (!s.eVar3) {\n if (pageNamePathArray.length === 3) {\n pageTypeAlt = 'www:section home'; // i.e. 1st directory only.\n }\n //if (!s.eVar4) {\n if (pageNamePathArray.length === 4) {\n pageTypeAlt = 'www:product home'; // i.e. to 2nd directory only.\n }\n }\n }\n /*\n if(s.w_site==='banking'){\n pageTypeAlt='banking:'+notSet; // page types on banking - can be populated in pageType key in RESX if required\n }\n if(/^(?:info|ruby|dav)$/i.test(s.w_site)){\n pageTypeAlt='microsite'; // page types for mactel etc.?\n }\n */\n digital['dd.pageType'] = pdPageType || pageTypeAlt;\n //s2.prop7 = pdPageType || pageTypeAlt;\n \n // track page number for search results etc.\n if(pdPageNumber){\n digital['dd.pageNumber'] = pdPageNumber ? ((pdPageType || notSet) + ':' + pdPageNumber) : '';\n }\n //s2.prop8 = pdPageNumber ? ((pdPageType || notSet) + ':' + pdPageNumber) : '';\n \n // Visit number\n //s.eVar8 = s.w_cap(s.getVisitNum(365), 1000);\n //ABU TODO zzzz\n //s2.eVar8 = s2.w_cap(s2.getVisitNum(365), 1000) + s2.w_extCkSfx; // appends if external cookie data\n //if(s.eVar8>1000){\n //\ts.eVar8='1000+';\n //}\n \n // days since last visit\n //s.eVar29=s.getDaysSinceLastVisit('s_lv',1);\n //s.eVar29=(s.eVar29==='0'?'zero':s.eVar29);\n //s.eVar29=s.w_fixZero(s.eVar29);\n //ABU TODO ZZZZ\n //s2.eVar29 = s2.w_cap(s2.w_fixZero(s2.getDaysSinceLastVisit('s_lv', 1)), 1000) + s2.w_extCkSfx; // appends if external cookie data\n //if(s.eVar29>1000){\n //\ts.eVar29='1000+';\n //}\n \n // visitor id\n //ABU s2.eVar25 = s2.prop25 = (customVisitorID ? 'D=vid' : 'D=s_vi'); // if s.visitorID passed from mobile app to hybrid pages, variable will be vid, else use FP-cookie name\n \n //ABU TODO ZZZZ\n //s2.eVar25 = s2.prop25 = (customVisitorID ? 'D=vid' : 'D=s_mid');\n //s.prop25 = s.eVar25;\n \n \n \n // page status\n //s.prop40 = pageStatus;\n //s.prop40 = pdInSession ? 'secure' : 'unsecure'; // switching based on URL\n digital['dd.pageStatus'] = pdInSession ? 'auth' : 'pub'; // switching based on URL\n //s2.prop40 = pdInSession ? 'logged in' : 'public'; // switching based on URL\n \n // site language from page if set\n //s.eVar63 = lowerCaseVal(pageDetails.language||'en'); // only captured in prop63\n digital['dd.lang'] = lowerCaseVal(pageDetails.language || 'en');\n //s2.prop63 = lowerCaseVal(pageDetails.language || 'en');\n //s.prop63 = 'D=v63';\n \n // Day Of Week, Time Of Day\n //var s_tpA = s.getTimeParting('s','+10');\n //s.eVar10 = s_tpA[1]+'|'+s_tpA[2]; // Adobe orig converted format\n //digital['dd.dayTime'] = helper.timePart(); // local time in shorter format\n //s2.eVar10 = s2.w_timePart(); // local time in shorter format\n //s2.prop10 = dVar(10);
16\n \n // External Campaigns\n pdCidCampaign = getValueOnce(lowerCaseVal(getQuerystringParam('cid', '', fullLocObj.href)), 's3_cid', 30, 'm'); // getValueOnce only if data will be sent, else value may not be sent\n\n if(pdCidCampaign){\n digital['dd.campaign'] = pdCidCampaign;\n helper.xdmPut(digital, \"__adobe.analytics.campaign\", pdCidCampaign );\n //helper.xdmPut(xdm, \"content.xdm.marketing.trackingCode\", pdCidCampaign);\n }\n var pdCreativeAttributesId = pdCatCodes||decodeURIComponent(helper.lowerCase(helper.getQueryParam('cat', '', helper.getLoc().href)));\n if(pdCreativeAttributesId){\n digital['dd.creativeAttributesCode'] = pdCreativeAttributesId;\n }\n\n //Media Tag uplift for s2s \n if(pdUserHashedPh){\n digital['dd.hashedPhone'] = pdUserHashedPh;\n }\n if(pdUserHashedEm){\n digital['dd.hashedEmail'] = pdUserHashedEm;\n }\n //console.log('pdTransactionId:' + pdTransactionId);\n\n if ( (/^(start|complete)$/i).test(pdPageStep) && (/^(enquiry|application|quote)$/i).test(pdPageType)){\n var pdMediaEventId =''; pdMedaiEventName ='';\n\n // Setting up the event name to be used in the Meta tags based on the product node\n pdMediaEventId = digital['dd.transactionID'] ? digital['dd.transactionID']: (pdEventKey + ':' + pdTimeStamp); \n pdMedaiEventName = pageBrand + \":\"+ (pageDetails.productID ? pageDetails.productID[0].Product : pdnewFormName) + ':' + pdPageStep + ':' + pdSiteSection;\n ///(not set)/i.test(pdMediaEventId)? (pdMediaEventId = pdMediaEventId.replace('(not set)', pdTimeStamp)):''\n digital['3rdParty'] = {\n \"meta\":{\n \"eventId\":pdMediaEventId,\n \"eventName\":pdMedaiEventName,\n \"fbpCookie\": helper.cookieRead(\"_fbp\")\n } \n }\n\n }\n //if(!s.campaign){\n //if (doPluginsAsPageLoad) { // use getQueryParam to record details on page load only, else getValOnce is fired on the doPlugins calls from link clicks and prevents capture at subsequent load. (this assists with test page links)\n //digital['dd.campaign'] = getValueOnce(lowerCaseVal(getQuerystringParam('cid', '', fullLocObj.href)), 's_cid', 30, 'm'); // getValueOnce only if data will be sent, else value may not be sent\n //s2.campaign = getValueOnce(lowerCaseVal(getQuerystringParam('cid', '', fullLocObj.href)), 's_cid', 30, 'm'); // getValueOnce only if data will be sent, else value may not be sent\n //}\n \n //ABU TODO\n /*if (s2.campaign) {\n s2.eVar16 = 'D=v0';\n s2.eVar17 = 'D=v0';\n s2.eVar18 = crossVisitPrtcptn(s2.campaign, 's_ev18', '30', '5', '>', 'event22'); // this is cleared every time event22 fires. i.e. Application Complete step\n }\n \n //console.log('ORIG s.list2 = ' + s.list2); // impressions from banner cookie related to previous page, collected after it loaded\n //console.log('pdPreImprs = ' + pdPreImprs); // any other impressions passed for the current page after trackPage was called, but before it completed (and scanning links)\n pdPreImprs = pdPreImprs ? (pdPreImprs||'').split(',') : [];\n for (prpty = 0; prpty < pdPreImprs.length; prpty++) {\n digital['dd.list2'] = helper.apl(digital['dd.list2'], pdPreImprs[prpty], ',', 2);\n //s2.list2 = s2.apl(s2.list2, pdPreImprs[prpty], ',', 2);\n }\n //console.log('NEW s.list2 = ' + s.list2);
16 // combined list of impressions for previous page\n \n if (digital['dd.list2']) {\n appendEvent(digital,'intImpressions');\n //s2.w_addEvt(11);\n }\n \n // Internal banner clicks\n pidQuerystring = lowerCaseVal(getQuerystringParam('pid', '', fullLocObj.href));\n //if (doPluginsAsPageLoad) { // use getQueryParam to record details on page load only, else getValOnce is fired on the doPlugins calls from link clicks and prevents capture at subsequent load. (this assists with test page links)\n digital['dd.intCampaign'] = getValueOnce(pidQuerystring, 'u_pid', 30, 'm');\n //s2.eVar22 = getValueOnce(pidQuerystring, 's_pid', 30, 'm');\n //}\n \n // count every pid click for comparison to getValueOnce count\n if (pidQuerystring) {\n appendEvent(digital,'pidTotalClicks');\n //appendEvent(10);\n }\n \n //if(s.eVar22&&!s.eVar65){\n if (digital['dd.intCampaign']) {\n appendEvent(digital,'intClickThroughs');\n //appendEvent(12);\n //ABU todo zzz`\n //s2.eVar20 = crossVisitPrtcptn(s2.eVar22, 's_ev20', '30', '5', '>', 'event22');\n }\n //if (doPluginsAsPageLoad) { // use getQueryParam to record details on page load only, else getValOnce is fired on the doPlugins calls from link clicks and prevents capture at subsequent load. (this assists with test page links)\n digital['dd.extSite'] = getValueOnce(lowerCaseVal(getQuerystringParam('ref', '', fullLocObj.href)), 'refPrm', 30, 'm');\n //s2.eVar65 = getValueOnce(lowerCaseVal(getQuerystringParam('ref', '', fullLocObj.href)), 'refPrm', 30, 'm');\n //}\n // incoming links from AFS-group sites\n //if(s.eVar22&&s.eVar65){\n // ref is now just an additional parameter for tracking links from other sites\n if (digital['dd.extSite'] ) {\n appendEvent(digital,'linkClicksAFS');\n //appendEvent(72);\n }\n //else{\n //\ts.eVar65='';\n //}\n */\n // Page modules shown on dashboard\n // refer to widget name mapping in resx to lookup friendly names\n //pdModules=lowerCaseVal((pageDetails.modules||'').replace(/\\B[aeiou]\\B|\\s|widget/gi,'').replace(/accnts/gi,'acts').replace(/pymnts/gi,'pmts'));\n //pdModules=(pageDetails.modules||'').replace(/\\B[aeiou]\\B|\\s|widget/gi,'').replace(/accnts/gi,'acts').replace(/pymnts/gi,'pmts');\n //pdModules=(pageDetails.modules||'').split(',');\n //pdModules = pdModules.split(',');\n //ABU REMOVE MODULE \n /*friendlyModules = helper.moduleLookup((pageDetails.modules || '').split(','), (pageDetails.moduleKey || '').split(','));\n \n //s.eVar55 = getValueOnce((friendlyModules ? (/:overview:dashboard$/i.test(sPageNameTemp) ? 'grid' : 'list') + ',' + friendlyModules : ''), 'mdlVar', 0); // modules will be in grid format on overview/dashboard\n dd.pageModuleSet = getValueOnce((pageDetails.moduleLayout || '') + (friendlyModules ? ',' + friendlyModules : ''), 'mdlVar', 30, 'm'); // modules will be in grid format on overview/dashboard\n //s2.eVar55 = getValueOnce((pageDetails.moduleLayout || '') + (friendlyModules ? ',' + friendlyModules : ''), 'mdlVar', 30, 'm'); // modules will be in grid format on overview/dashboard\n \n //s.prop55 = 'D=v55';\n //s2.prop55 = dVar(55);\n \n // call every time on dashboard page to compare current to previous modules and diff for added/removed\n // except when only switching profiles. when switching profile, modules change, but not through direct modification.\n if (userSwitchedProfile) {\n // when switching, update stored module set to current profile modules\n s2.c_w('mdlSet', friendlyModules);\n } else {\n // track as a module change\n s2.prop64 = s2.w_checkModuleChanges('mdlSet', friendlyModules);\n if (s2.prop64) {\n appendEvent(70);\n }\n } */\n \n /*ABU TODO Click map to Actifity MAP\n // clear invalid clickmap values generated for custom links\n clickMapOid = (/(.*oid%3D)(.*?)(%26|$)/).exec(s2.c_r('s_sq'));\n if (clickMapOid && clickMapOid[2]) {\n if (!(/_[0-9]+$/).test(clickMapOid[2])) {\n s.c_w('s_sq', 0, dateZero); // remove invalid s_sq cookie\n }\n }
16*/\n \n // Featured content - fid/wbcfrom - for secondary promo tracking (Patrick)\n //if (doPluginsAsPageLoad) { // use getQueryParam to record details on page load only, else getValOnce is fired on the doPlugins calls from link clicks and prevents capture at subsequent load. (this assists with test page links)\n pdFeaturedContent = getValueOnce(lowerCaseVal((cleanText(pageDetails.featuredContent) || getQuerystringParam('fid', '', fullLocObj.href)) || getQuerystringParam('wbcfrom', '', fullLocObj.href)), 's3_feat', 30, 'm');\n //s2.eVar60 = getValueOnce(lowerCaseVal(getQuerystringParam('fid', '', fullLocObj.href) || getQuerystringParam('wbcfrom', '', fullLocObj.href)), 'feat', 30, 'm');\n //}\n if (pdFeaturedContent) {\n digital['dd.featuredContent'] = pdFeaturedContent;\n appendEvent(digital,'featuredContent');\n //appendEvent(66);\n //s2.prop60 = dVar(60);\n }\n //notification and messaging\n if(pdNotification && pdNotification.length>=1){\n var notifications = '';\n for(var i=0; i<pdNotification.length; i++){\n notifications=helper.apl(notifications,(pdNotification[i].notificationTitle||''),',',2);\n }\n digital['dd.notificationTitle'] = notifications;\n appendEvent(digital,'notificationImpression');\n }\n if(pdNotificationDetail){\n digital['dd.notificationTitle'] = pdNotificationDetail;\n appendEvent(digital,'notificationDetail');\n }\n if(pdPageProperty){\n digital['dd.pageProperty'] = pdPageProperty;\n }\n if(pdChatbotName){\n digital['dd.chatbotName'] = pdChatbotName;\n }\n //ABU toDO crossVisitPrtcptn \n // Combined Internal External Stack\n /*if (s2.eVar22) {\n s2.eVar19 = crossVisitPrtcptn(s2.eVar22, 's_ev19', '30', '10', '>', 'event22');\n }\n if (s2.campaign) {\n s2.eVar19 = crossVisitPrtcptn(s2.campaign, 's_ev19', '30', '10', '>', 'event22');\n }*/\n \n // Paid/Natural Search Keyword\n //ABU toDO\n /*s2.prop18 = pageNameDynamicVariable; // set to just pageName as default\n s2._channelParameter = 'Campaign|cid';\n s2.w_channelManager('cid');\n \n //channelManagerKeywords = cleanText(s._keywords || ''); // filter search keywords a bit - strip multiple spaces etc.\n channelManagerKeywords = cleanText(s2._keywords); // filter search keywords a bit - strip multiple spaces etc.\n \n if (s2._channel === 'Natural Search') {\n channelManagerSearchType = 'NS';\n // prop18 seo keywords and entry page\n s2.prop18 = 'D=\"' + channelManagerKeywords + '|\"+pageName';\n }\n //if(s._channel==='Campaign'&&/^sem:/i.test(s._campaign)){ // if cid param, and value starts with 'sem:' (just check for any CID). confirm identifier for PPC tracking codes\n if (s2._channel === 'Campaign' && channelManagerKeywords !== 'n/a') { // only if cid param exists and keywords are found, it's paid search. We may not have keywords if they are not passed by the search engine (usually for NS)\n channelManagerSearchType = 'PS';\n }\n if (channelManagerSearchType) {\n s2.eVar11 = channelManagerKeywords === 'n/a' ? 'Keyword Unavailable' : channelManagerKeywords;\n s2.prop11 = dVar(11);\n \n s2.eVar12 = crossVisitPrtcptn(channelManagerSearchType + '|' + channelManagerKeywords, 's_ev12', '30', '5', '>', 'event22');\n }*/\n \n // Lifecycle. consider re-setting to avoid build up to later levels?\n //ABU toDO\n /*visitorLifecycle = s2.c_r('s_lfcl');\n if (visitorLifecycle === '') { // No previous lifecycle cookie\n if (!s2.c_w('testCkie', 'set', new Date(+new Date() + 10000))) { // test if lifecycle cookie can be set to prevent events from re-firing\n visitorLifecycle = 'No cookies';\n } else {\n s2.c_w('testCkie', 0, dateZero);\n visitorLifecycle = visitorLifecycleAware;\n appendEvent(6);\n }\n }\n if (visitorLifecycle === visitorLifecycleAware && (/\\b(event(13|21|30|31|54|61|63|68))\\b/i).test(s2.events)) { // Confirm Engagement status criteria\n visitorLifecycle = visitorLifecycleEngaged;\n appendEvent(7);\n }\n if (visitorLifecycle === visitorLifecycleEngaged && (/\\b(event(22))\\b/i).test(s2.events)) { // Conversion status criteria\n visitorLifecycle = visitorLifecycleConverted;\n appendEvent(8);\n }\n if (visitorLifecycle === visitorLifecycleConverted && (/\\b(event(46))\\b/i).test(s2.events) && s2.getVisitNum(365) > 1) { // Retention status criteria\n visitorLifecycle = visitorLifecycleRetained;\n appendEvent(9);\n }\n s2.c_w('s_lfcl', visitorLifecycle, datePlusOneYear);\n s2.eVar36 = visitorLifecycle + s2.w_extCkSfx;
16 // appends if external cookie data\n s2.prop36 = dVar(36);\n */\n // search results clickthru event for auto suggest results only *au\n wbcfromQuerystring = lowerCaseVal(getQuerystringParam('wbcfrom', '', fullLocObj.href));\n if (/sitesearch:autosuggest:results/i.test(wbcfromQuerystring)) {\n appendEvent(digital,'intSearchClickThru');\n //s2.w_addEvt(15);\n // clickthru event from \"search results page\" is triggered when prop16 is set\n }\n \n // search results details *au\n // new way to track clickthru, rank, result category etc\n // convention for search result details eVar\n //search-source|result-type|searched-keyword|result-category|result-rank\n // example output: source:search-page|type:natural|kw:low-rate-card|cat:services|rank:1\n // example output non natural type: source:search-page|type:recommended|kw:low-rate-card\n // example output non natural type: source:search-page|type:quicklinks|kw:low-rate-card\n // AEM release 1.1 updated type query param to result-type\n isSearchResultLanding = lowerCaseVal(getQuerystringParam('searchsource', '', fullLocObj.href));\n if (isSearchResultLanding) {\n var searchOrigin,\n searchResultType,\n searchKeyword,\n searchResultCategory,\n searchResultRank;\n searchOrigin = lowerCaseVal(getQuerystringParam('searchsource', '', fullLocObj.href));\n searchResultType = lowerCaseVal(getQuerystringParam('result-type', '', fullLocObj.href));\n searchKeyword = lowerCaseVal(getQuerystringParam('kw', '', fullLocObj.href));\n searchResultCategory = lowerCaseVal(getQuerystringParam('cat', '', fullLocObj.href));\n \n \n switch (searchResultType) {\n case 'natural':\n case 'natural:fast-answer':\n searchResultRank = lowerCaseVal(getQuerystringParam('rank', '', fullLocObj.href));\n //s3.prop16 = searchResultRank;\n digital[\"dd.clickedRank\"] = searchResultRank;\n if (searchResultRank) {\n appendEvent(digital,'intSearchClickThru');\n //s3.w_addEvt(15);\n }\n //s3.eVar13 = 'source:' + searchOrigin + '|' + 'type:' + searchResultType + '|' + 'kw:' + searchKeyword + '|' + 'cat:' + searchResultCategory + '|' + 'rank:' + searchResultRank;\n digital[\"dd.intsearch\"] = 'source:' + searchOrigin + '|' + 'type:' + searchResultType + '|' + 'kw:' + searchKeyword + '|' + 'cat:' + searchResultCategory + '|' + 'rank:' + searchResultRank;\n break;\n case 'recommended':\n case 'fast-answer':\n case 'quicklinks':\n //s3.eVar13 = 'source:' + searchOrigin + '|' + 'type:' + searchResultType + '|' + 'kw:' + searchKeyword;\n digital[\"dd.intsearch\"] = 'source:' + searchOrigin + '|' + 'type:' + searchResultType + '|' + 'kw:' + searchKeyword;\n // added event15 to include recommend and quicklinks for clickthru tracing *au 24/08\n appendEvent(digital,'intSearchClickThru');\n //s3.w_addEvt(15);\n break;\n }\n }\n //search type var to understand type of search feature used .. suggested/predictive/simillar to ..\n wbcSearchType = lowerCaseVal(getQuerystringParam('searchtype', '', fullLocObj.href));\n if (wbcSearchType) {\n //s3.eVar15 = 'searchtype:' + wbcSearchType;\n digital[\"dd.searchType\"] = 'searchtype:' + wbcSearchType;\n }\n // Previous Page name\n //s.prop15 = s.getPreviousValue(sPageNameTemp, 'gpv_p15', '');\n //if (s.prop15 === sPageNameTemp) {\n //\ts.prop15 = pageNameDynamicVariable;\n //}\n // refactored and referencing lastPg cookie\n \n //s2.prop15 = lastSentPage === sPageNameTemp ? pageNameDynamicVariable : lastSentPage;\n \n \n // Previous pixel length\n //s2.prop69 = s2.w_cap(s2.c_r('lastReqLen'), 5000);\n //if(s.prop69>5000){\n //\ts.prop69='5000+';\n //}\n \n // capture URL\n //s.eVar26 = 'D=Referer'; // this is the full unprocessed page URL from HTTP header (excludes hash)\n //s.eVar26 = 'D=Referer' + (fullLocObj.hash ? '+\"' + fullLocObj.hash + '\"' : ''); // this is the full unprocessed page URL from HTTP header (includes hash)\n //s2.eVar26 = 'D=Referer+\"' + fullLocObj.hash.replace(s2.w_guidRgx, '(GUID)') + '\"'; // this is the full unprocessed page URL from HTTP header (includes hash)\n \n //s2.prop26 = 'D=g'; // this is the filtered page URL from JS document (will include hash if any)\n \n \n // track scode version\n //digital['dd.analyticsVersion'] = helper.codeVers;\n //s2.prop39 = s2.w_codeVers;\n \n // track site + source data version/details + pageKey for page audit.\n // dont capture in IE - makes pixel too long\n //ABU TODO no if (!s.isie) { // as of s_code version H.26.2, s.isie == false in IE11 due to useragent change in IE 11 to distinguish its DOM compatibility vs. older versions\n digital['dd.pageAudit']= pageSite + ':' + lowerCaseVal(pageDetails.src, 1) + ':' + lowerCaseVal(pageDetails.pageKey, 1);\n //s2.prop13 = pageSite + ':' + lowerCaseVal(pageDetails.src, 1) + ':' + lowerCaseVal(pageDetails.pageKey, 1);\n //}\n \n // Site release version - set on OTP pages, apps, public? etc.\n digital['dd.siteVersion'] = pageSite + \n (pageDetails.siteVersion ? (':' + lowerCaseVal(pageDetails.siteVersion, 1)):'') + \n (pageDetails.dataLayerVer ? (':dataVar:'+ lowerCaseVal(pageDetails.dataLayerVer, 1)):'');\n //s2.eVar52 = pageSite + ':' + lowerCaseVal(pageDetails.siteVersion, 1);\n //s2.prop52 = dVar(52);\n if(pdErrorCode || pdErrorDetails){\n digital['dd.errorCode'] = (pdErrorCode ? pdErrorCode:'(notset)') + (pdErrorDetails? ':'+pdErrorDetails:'');\n digital['dd.pageType'] = 'errorPage';\n helper.addEvt(digital,'error');\n }\n \n // fid (3rd-party fallback visitor ID) not required when on first party collection domain (i.e. westpac.com.au). What if other domain? (we capture s_vi not fid)\n //if(/\\.westpac\\.com\\.au$/i.test(location.hostname)){\n //if (/\\.westpac\\.com\\.au$/i.test(fullLocObj.hostname)) {\
16n //if (s2.w_coreDomain) {\n //\ts2.fid = ''; // Not used for implementations that use first-party cookies.\n //}\n \n /*s2.plugins = ''; // empty to prevent tracking plugins. not available for reporting in SC15\n \n // clean referrer to reduce length and remove session details (creates too many values), etc.\n //s.testRef='https://uat.banking.westpac.com.au/cust/wps/portal/wodp/c1/04_SB8K8xLLM9MSSzPy8xBz9CP0os3gvRx9X04_SB8K8xLLM9MSSzPy8xBz9CP0os3gvRx9X04_SB8K8xLLM9MSSzPy8xBz9CP0os3gvRx9X';\n //s.referrer=s.w_cleanURL(s.testRef,2);\n //s.referrer=s.w_cleanURL('',2);\n //s.referrer=s.w_cleanURL(null,2);\n if (!s2.w_refSent) { // added to match adobe approach in AppMeasurement v1.4.3\n s2.w_refSent = true;\n \n s2.referrer = s2.w_cleanURL(document.referrer, 2);\n \n // set s.referrer here if able to identify sources otherwise incorrectly tracked as 'None' or 'Unspecified'. e.g. app links etc...\n // nativeAppVersion\n // file://native.app/?cid=app_abc_123\n \n // edm\n if (/\\:edm\\:/i.test(s2.campaign)) {\n s2.referrer = 'mail://edm.cid/?cid=' + cleanText(s2.campaign) + '&referrer=' + (s2.referrer || notSet); // Force any :edm: CID to Email Referrer Type\n }\n }*/\n \n // convert product array into Omniture-format string\n //sProductsTemp = s.w_prodStr(pdProductID, pageDetails);\n // run replace function on s.products\n //console.log('ORIG s.products = ' + s.products);\n //s.products = s.w_valReplace(s.w_prodStr(pdProductID, pageDetails), 'appmeasurement_productsReplace'); // global replace\n //s2.products = s2.w_valReplace(s2.w_valReplace(s2.w_prodStr(pdProductID, pageDetails), s2.w_lStor('get', 'appmeasurement_productsReplace')), pageDetails.productsReplace); // global + local replace\n //s.products = changeIf({\n //\t\t's.products' : s.w_prodStr(pdProductID, pageDetails),\n //\t\t'changeIf' : s.w_lStor('get', 'appmeasurement_productsReplace')\n //\t})['s.products'];\n //console.log('NEW s.products = ' + s.products);\n \n // option to prevent sending two matching pageNames in a row\n //if (!pageDetails.s_abort) {\n //\tclicks on page overwriting the stored value with this logic\n //\n //\trepeatCall = !getValueOnce(sPageNameTemp, 'lastPg', 0); // this should prevent consecutive calls of same pageName. e.g. mobile 'select' screen nav, and confirmation screens as a way to serialise events\n //\tif (/true/i.test(pageDetails.trackDedupe) && repeatCall) {\n //\t\ts.abort = true;\n //\t}\n //}\n \n \n // only compare to the cookie value that was read, don't write at the same time (with getValOnce)\n // this logic needs to match logic in trackPage function to prevent impressions being collected etc.\n \n //if (/true/i.test(pageDetails.trackDedupe) && lastSentPage === sPageNameTemp) {\n //if ((/true/i.test(pageDetails.trackDedupe) && lastSentPage === sPageNameTemp) || (/true/i.test(pageDetails.trackOnce) && s.w_pageTracked(sPageNameTemp))) {\n //if ((/true/i.test(pageDetails.trackDedupe) && lastSentPage === sPageNameTemp) || ((/true/i.test(pageDetails.trackOnce) && s.w_pageTracked(sPageNameTemp)) || s.w_globalDrop(pageDetails))) {\n // check if this page should be fired or has met a condition to drop\n //if (pageDetails._drop) {\n //\ts.abort = true;\n \n //s.w_pgTrkStatus = 'blocked';\n //s.c_w('impTmp', 0, new Date(0)); // clear any tmp banners of aborted pages\n //}\n \n // populate s.pageName from local var\n //s2.pageName = sPageNameTemp;\n //WBC Banking Login status\n /*if (/:(overview:dashboard|accounts:getsummarystartpage)$/i.test(sPageNameTemp)){ //setting auth state cookie for westpac live\n helper.cookieWrite('s_wbc_auth', 1, new Date(+new Date() + (20 * 60 * 1000)),'/', helper.cookieDomain()); \n }*/\n if ((helper.cookieRead(\"s_wbc_auth\") === '1')||((helper.cookieRead(\"s_bom_auth\") === '1')||((helper.cookieRead(\"s_bsa_auth\") === '1')||(helper.cookieRead(\"s_stg_auth\") === '1')))){\n digital['dd.loginStatus'] = 'logged in';\n }
16\n if ((helper.cookieRead(\"s_wbc_auth\") === '2')||((helper.cookieRead(\"s_bom_auth\") === '2')||((helper.cookieRead(\"s_bsa_auth\") === '2')||(helper.cookieRead(\"s_stg_auth\") === '2')))){\n digital['dd.loginStatus'] = 'logged out';\n }\n \n digital['dd.pageName'] = sPageNameTemp;\n \n var isJSInterface = ((typeof(window.NativeJSInterface)!==\"undefined\") && (window.NativeJSInterface.isNativeContainer()!==false))\n if (isJSInterface){\n if(!helper.lStor('get', 'app_err')){\n digital['dd.appid'] = helper.lStor('get', 'app_id');\n helper.xdmPut(xdm,'application.name',digital['dd.appid']);\n digital['dd.appCapabilities'] =helper.lStor('get', 'app_capabilities');\n //s3.eVar17 = 'native app:'+ helper.lStor('get', 'app_exp') +':' + helper.lStor('get', 'app_id') +' capabilities:' + NativeJSInterface.getLibVersion();\n digital[\"dd.viewMethod\"]= 'native app:'+ helper.lStor('get', 'app_exp') +':' + helper.lStor('get', 'app_id') +' capabilities:' + NativeJSInterface.getLibVersion();\n } else{\n digital['dd.appCapabilities'] = helper.lStor('get', 'app_err');\n //s3.eVar17 = 'native app:(notset):'+ helper.lStor('get', 'app_id') +' capabilities:' + NativeJSInterface.getLibVersion();\n digital[\"dd.viewMethod\"]= 'native app:(notset):'+ helper.lStor('get', 'app_id') +' capabilities:' + NativeJSInterface.getLibVersion();\n }\n }\n //ABU:DEBUG Mobile app value pass\n var isMobileView = ((typeof(window.NativeJSInterface)!==\"undefined\") && (window.NativeJSInterface.isNativeContainer()!==false))||(/adobe_mc=.+/i.test(helper.getLoc().href))||helper.c_r('MCMID');\n //var isMobileView = ((/adobe_aa_vid=.+/i.test(helper.getLoc().href))||(/s_vi=.+/i.test(helper.getLoc().href))||(/adobe_mc=.+/i.test(helper.getLoc().href))||s3.c_rr('MCMID')|| s3.c_r('MCMID'))\n if(isMobileView){\n var regexMid = 'MCMID(=|\\\\%3D)(.+?)(?=\\\\?|&|;|#|\\\\/|\\\\||$|\\\\%7C)';\n regexMid = new RegExp( regexMid,'i');\n digital['dd.midUrl'] = (regexMid.test(helper.getLoc().href))? helper.getLoc().href.match(regexMid)[2]:'';\n digital['dd.midCookie'] = helper.c_r('MCMID');\n digital['dd.aVidUrl'] = helper.getQueryParam('adobe_aa_vid', '', helper.getLoc().href);\n digital['dd.sviUrl'] = helper.getQueryParam('s_vi', '', helper.getLoc().href);\n digital['dd.sviCookie'] = helper.c_r('s_vi');\n }\n \n // experience from app/pageDetails\n //s.eVar7=pageExperience; // mob/mobapp/tab/tabapp is mobile suite, everything else is desktop\n //s.eVar7 = s.linkName ? 'link' : pageExperience; // switch to 'link' for link tracking\n // switch to '(link)' for link tracking where experience may not be set/available in pageDetails?\n //s.eVar7 = s.linkName ? (pageExperience || '(link)') : pageExperience;\n //digital['dd.experience'] = digital['dd.channel'] = pageExperience||helper.getExp();\n if (isJSInterface||nativeAppVersion){\n digital['dd.experience'] = digital['dd.channel'] = \"mobapp\";\n }else{\n digital['dd.experience'] = digital['dd.channel'] =(pageExperience||helper.getExp()).replace(/^titan$/i, 'mob') //WBG\n //digital['dd.experience'] = digital['dd.channel'] =(pageExperience||helper.getExp()).replace(/^titan$/i, 'mob')\n }\n if (pdTouchPoint){ // WDP touch point\n digital['dd.touchpoint'] = pdTouchPoint ;\n }else{\n pdChannel = pdChannel\n .replace(/^(fi|fi_self_serv|fi_mobile|fi_mob_self_serv|fi_self_serv_mobile)$/ig, 'digital')\n .replace(/^fi_cc$/ig, 'ccc')\n .replace(/^fi_branch$/ig, 'branch');\n digital['dd.touchpoint'] = pdChannel ? pdChannel :'digital';\n }\n const viewMethodValue = (nativeAppVersion || nativeExitToBrowser) ? 'native app:' + (nativeAppVersion || '(exit app)') : '';\n if(viewMethodValue)\n {\n digital['dd.viewMethod'] = viewMethodValue;\n } \n // External Campaigns\n // this move to sendBefore\n // s3.campaign = helper.getValOnce(helper.lowerCase(helper.getQueryParam('cid', '', helper.getLoc().href)||pdExtCampaign), 's3_cid', 30, 'm'); // getValueOnce only if data will be sent, else value may not be sent\n \n //crossVisitParticipation (not required any more)\n /*if (s3.campaign) {\n s3.eVar18 = s3.crossVisitParticipation(s3.campaign, 's3_ev18', '30', '5', '>', 'event27'); // this is cleared every time event22 fires. i.e. Application Complete step\n }*/\n /* if(pdInternalCampaignList && (typeof s3.list2 == 'undefined'|| s3.list2 =='')){\n s3.list2 = pdInternalCampaignList;\n }else if(pdInternalCampaignList && s3.list2) {\n s3.list2 = pdInternalCampaignList+','+s3.list2;\n }\n //console.log('NEW s3.list2 = ' + s3.list2);
16 // combined list of impressions for previous page\n if (typeof s3.list2 !== 'undefined') {\n //s3.w_addEvt(11);\n if(s3.list2 !==''){ \n helper.addEvt(digital,'intImpressions');\n }\n }*/\n if(pdInternalCampaignList){\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.lists.list2.list',pdInternalCampaignList);\n helper.addEvt(digital,'intImpressions'); \n }\n\n //adobe Target reporting in Analytics\n /*if(!s3.linkType){ //only complet this step if its a page level tracking not a link tracking\n s3.list3 = s3.targetImpression(pdTargetCampaignsList); //Target impression\n if (s3.list3) {\n //appendEvent(8);\n if (pdTargetLocationId) {\n s3.prop32 = pdTargetLocationId;\n }\n if(pdPageModules){\n digital['dd.pageModules']=lowerCaseVal(cleanText(pdPageModules));\n }\n helper.addEvt(digital,'targetImpression');\n delete pageDetails.targetCampaignViewed;\n delete pageDetails.pageModules;\n }\n }*/\n var tList = helper.targetImpression(pdTargetCampaignsList);\n if (tList) {\n digital[\"dd.targetCampaignList\"] = tList; //list3\n //appendEvent(8);\n\n if (pdTargetLocationId) {\n digital[\"dd.targetLocationId\"] = pdTargetLocationId;\n }\n if(pdPageModules){\n digital['dd.pageModules']=lowerCaseVal(cleanText(pdPageModules));\n }\n helper.addEvt(digital,'targetImpression');\n delete pageDetails.targetCampaignViewed;\n delete pageDetails.pageModules;\n }\n // Target banner clicks\n var ttIdQuerystring = pdTargetCampaignClicked||decodeURIComponent(helper.lowerCase(helper.getQueryParam('ttid', '', helper.getLoc().href))),\n ttClickedLocationId = pdTargetClickedLocationId||decodeURIComponent(helper.lowerCase(helper.getQueryParam('locationid', '', helper.getLoc().href))),\n ttAction=pdTargetClickedAction||decodeURIComponent(helper.lowerCase(helper.getQueryParam('action', '', helper.getLoc().href)));\n //if (doPluginsAsPageLoad) { // use getQueryParam to record details on page load only, else getValOnce is fired on the doPlugins calls from link clicks and prevents capture at subsequent load. (this assists with test page links)\n //s3.eVar33 = helper.getValOnce(ttIdQuerystring, 's3_ttid', 30, 'm');\n //removing getValOnce as this reduct the click through rates\n if (ttIdQuerystring) {\n if (ttClickedLocationId) {\n //s3.prop32 = ttClickedLocationId;\n digital[\"dd.targetLocationId\"] = ttClickedLocationId;\n } else if (pdTargetLocationId) { //fix target campaign click through DL same as impression\n //s3.prop32 = pdTargetLocationId;\n digital[\"dd.targetLocationId\"] = targetLocationId;\n }\n if(ttAction){\n //s3.eVar53 = ttAction;\n //s3.prop53 = s3.eVar53;\n digital[\"dd.targetAction\"]= ttAction; \n }\n //s3.eVar33 = ttIdQuerystring\n digital[\"dd.targetCampaign\"] = ttIdQuerystring;\n //appendEvent(9);\n helper.addEvt(digital,'targetClickThroughs');\n //s3.prop33 = s3.eVar33;\n }\n //}\n\n // Internal banner clicks\n pidQuerystring = helper.lowerCase(helper.getQueryParam('pid', '', helper.getLoc().href))||helper.lowerCase(pdInternalCampaignClicked);\n //if (doPluginsAsPageLoad) { // use getQueryParam to record details on page load only, else getValOnce is fired on the doPlugins calls from link clicks and prevents capture at subsequent load. (this assists with test page links)\n //if(!s3.linkType){ //only complet this step if its a page level tracking not a link tracking\n // s3.eVar22 = helper.getValOnce(pidQuerystring, 's3_pid', 30, 'm');\n //}\n var pidVal = helper.getValOnce(pidQuerystring, 's3_pid', 30, 'm');\n if (pidVal){\n digital[\"dd.intCampaign\"] = pidVal;\n helper.addEvt(digital,'intClickThroughs');\n }\n if(pdCampaignCodeView || pdPromoCodeView){\n digital[\"dd.campaignCodeList\"] = helper.lowerCase((pdCampaignCodeView?'cc:'+pdCampaignCodeView:'')+(pdPromoCodeView?'|pc:'+pdPromoCodeView:''))\n helper.addEvt(digital,'campaignCodeImpressions');\n }\n campaignCodeQuerystring= helper.lowerCase(helper.getQueryParam('campaigncode', '', helper.getLoc().href))||pdCampaignCodeClicked;\n promoCodeQuerystring = helper.lowerCase(helper.getQueryParam('promocode', '', helper.getLoc().href))||pdPromoCodeClicked;\n\n if(campaignCodeQuerystring || promoCodeQuerystring){\n digital[\"dd.campaignCode\"] = helper.lowerCase((campaignCodeQuerystring?'cc:'+campaignCodeQuerystring:'')+(promoCodeQuerystring?'|pc:'+promoCodeQuerystring:''))\n helper.addEvt(digital,'campaignCodeClickThroughs');\n }\n\n //s3.eVar29 = s3.getDaysSinceLastVisit('s3_lv');\n digital[\"dd.daysLastVisit\"]= helper.getDaysSinceLastVisit('s3_lv');\n //s3.prop39 = 'vid:'+(Visitor.version?Visitor.version:visitor.version)+' '+helper.version+' App:'+ s3.version + ' c:'+ s3.w_codeVers +' env:'+ (pageDetails.siteEnv||'') +' h:'+ helper.getLoc().hostname;\n\n //Handle internal linkTracking from local storage \n var link_name = helper.lStor('get', 'a_name'),\n link_regi
16on = helper.lStor('get', 'a_region');\n if(link_name){\n helper.xdmPut(digital,'__adobe.analytics.contextData.a.activitymap.link', link_name);\n helper.xdmPut(digital,'__adobe.analytics.contextData.a.activitymap.region', link_region);\n helper.xdmPut(digital,'__adobe.analytics.contextData.a.activitymap.page', helper.c_r('lastPage'));\n }\n \n // capture URL\n// s3.pageName = digital['dd.pageName'];\n helper.xdmPut(xdm,'web.webPageDetails.name',digital['dd.pageName']);\n //s3.products = helper.valReplace(helper.valReplace(s3.w_prodStr(pdProductID, pageDetails), helper.lStor('get', 'appmeasurement_productsReplace')), pageDetails.productsReplace); // global + local replace\n pdProducts = helper.valReplace(helper.valReplace(helper.w_prodStr(pdProductID, pageDetails), helper.lStor('get', 'appmeasurement_productsReplace')), pageDetails.productsReplace); // global + local replace\n if(pdProducts){\n helper.xdmPut(digital, \"__adobe.analytics.products\", pdProducts );\n}\n\n //Visit number\n //s3.eVar8 = helper.cap(helper.getVisitNum(365), 1000);\n digital[\"dd.visitNumber\"] = helper.cap(helper.getVisitNum(365), 1000);\n //s3.eVar21 = pageNameDynamicVariable; // pageName eVar \n if(pdProductID && (pdProductID[0] && pdProductID[0].family)){\n //s3.hier1 = ((pdProductID[0].ProductFamily||pdProductID[0].family)||'');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.hierarchies.hier1',\n { \"values\": [\n (pdProductID[0].ProductFamily||pdProductID[0].family)||\"\"\n ]}\n );\n}else{\n //Abu to Fix as OBJ not string\n //s3.hier1 = pageDetails.siteSection||(pageNamePathArray[1]?pageNamePathArray[1]:'');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.hierarchies.hier1',\n { \"values\": [\n pageDetails.siteSection||(pageNamePathArray[1]?pageNamePathArray[1]:\"\")\n ]}\n );\n}\nhelper.pageName = digital['dd.pageName'];\n/*s3.hier1 = s3.hier1 +(pageDetails.pageType ? (':'+pageDetails.pageType):'') + \n (pageDetails.pageAction? (':'+ pageDetails.pageAction):(pageDetails.pageStep? (':'+ pageDetails.pageStep):''));*/\n//s3.eVar25 = s3.marketingCloudVisitorID;\n//s3.server = lowerCaseVal(fullLocObj.hostname);\nhelper.xdmPut(xdm,'web.webPageDetails.server', helper.lowerCase(helper.getLoc().hostname)+ (voyagerLoadBalancerID?'-' + voyagerLoadBalancerID : '')); //ABU remove + (/\\s(banking|dev)\\s/i.test(helper.codeVers) && voyagerLoadBalancerID ? '-' + voyagerLoadBalancerID : '')); // capture server/load balancer ID R01 = Ryde, WS01 = Western Sydney\n//console.log('last Page'+ lastSentPage );\n//Previous page\nif(typeof lastSentPage!=='undefined'){\n digital['dd.previousPage'] = lastSentPage;\n var lastPixelLength = helper.c_r('lastPixelLen')\n digital['dd.lastPixelLength'] = lastPixelLength;\n} \n\n//AddEvents datalayer property\nif(pdAddEvents){\n const addEvent=helper.apl(helper.evList,isNaN(pdAddEvents)?pdAddEvents:'event' + pdAddEvents,';',1);\n helper.events(addEvent);\n /*if(/\\bevent46\\b/i.test(pdAddEvents)){ //westpac banking only\n helper.cookieWrite('s_wbc_auth', 1, new Date(+new Date() + (20 * 60 * 1000)),'/', helper.cookieDomain());\n }*/\n}\nvar evList = helper.apl(helper.evList, \"event1\", \";\", 1); //SUMIT to chek APL with flug 1\nevList=evList.split(/[;,]/);\nevList.forEach(function (ev) {\n const eventNumber = parseInt(ev.replace(\"event\", \"\"));\n // console.log(eventNumber)\n let path;\n if (eventNumber >= 1 && eventNumber <= 100) {\n path = '_experience.analytics.event1to100.';\n } else if (eventNumber >= 101 && eventNumber <= 200) {\n path = '_experience.analytics.event101to200.';\n } else if (eventNumber >= 201 && eventNumber <= 300) {\n path = '_experience.analytics.event201to300.';\n } else if (eventNumber >= 301 && eventNumber <= 400) {\n path = '_experience.analytics.event301to400.';\n } else if (eventNumber >= 401 && eventNumber <= 500) {\n path = '_experience.analytics.event401to500.';\n } else if (eventNumber >= 501 && eventNumber <= 600) {\n path = '_experience.analytics.event501to600.';\n } else if (eventNumber >= 601 && eventNumber <= 700) {\n path = '_experience.analytics.event601to700.';\n } else if (eventNumber >= 701 && eventNumber <= 800) {\n path = '_experience.analytics.event701to800.';\n } else if (eventNumber >= 801 && eventNumber <= 900) {\n path = '_experience.analytics.event801to900.';\n } else if (eventNumber >
16= 901 && eventNumber <= 1000) {\n path = '_experience.analytics.event901to1000.';\n }\n helper.xdmPut(xdm, path + ev, { value: 1 });\n // helper.xdmPut(xdm, '_experience.analytics.event1to100.' + ev, { value: 1 }); //SUMIT: How to add events to globax context\n});\n//s3.contextData = digital;\nhelper.serialise = function (serialKey, formStep) {\n var lStorKey = 'appmeasurement_aoSerials',\n keyName = serialKey && String(serialKey).replace(/\\W/g, ''),\n serialStore = helper.lStor('get', lStorKey),\n dateStamp = new Date(),\n serialDay = String(dateStamp.getFullYear()) + (dateStamp.getMonth() + 1) + dateStamp.getDate(), // serial memory persists for current day\n serialVisit = helper.getVisitNum(365), // serial memory persists for current visit\n //serialRange = serialVisit >= 1 ? serialVisit : serialDay, // persist for visit if number returned, else day\n serialRange = serialDay + (serialVisit >= 1 ? serialVisit : 0), // persist for visit per day if number returned, else day + 0\n newSerial = helper.serial(),\n setSerial = '';\n \n //console.log('serialStore = ' + serialStore);\n //console.log('newSerial = ' + newSerial);\n //console.log('serialDay = ' + serialDay);\n //console.log('serialVisit = ' + serialVisit);\n \n if (keyName && (formStep === 'start' || formStep === 'complete')) {\n if (serialStore.indexOf(serialRange + ',') !== 0) {\n // reset the store each day or if incorrect format\n helper.lStor('set', lStorKey, serialRange + ',' + keyName + '=' + newSerial + formStep);\n }\n \n // check if localStorage is working\n serialStore = helper.lStor('get', lStorKey);\n \n if (serialStore) {\n // if storage found, check if this thing has been hit already and get the serial\n setSerial = serialStore.match(new RegExp(',' + keyName + '=(.{20}(start|complete)?)(?=,|$)'));\n setSerial = setSerial && setSerial[1] ? setSerial[1] : '';\n \n //console.log('setSerial 1 = ' + setSerial);\n \n if (!setSerial) {\n // if this thing is not serialised yet, add the details\n helper.lStor('set', lStorKey, serialStore + ',' + keyName + '=' + newSerial + formStep);\n setSerial = newSerial;\n } else {\n // if complete step of a serialised form, set to complete if was previously start\n if (formStep === 'complete' && setSerial.indexOf('start') === 20) {\n helper.lStor('set', lStorKey, serialStore.replace(new RegExp('(,' + keyName + '=.{20})(start)(?=,|$)'), '$1' + formStep));\n }\n // if start step of a previously completed serial form, set a new serial\n if (formStep === 'start' && setSerial.indexOf('complete') === 20) {\n helper.lStor('set', lStorKey, serialStore.replace(new RegExp('(,' + keyName + '=)(.{20})(complete)(?=,|$)'), '$1' + newSerial + formStep));\n setSerial = newSerial;\n }\n \n // if start/start or complete/complete, just trim the serial taken from the storage\n setSerial = setSerial.slice(0, 20);\n \n //console.log('setSerial 2 = ' + setSerial);\n }\n }\n }\n //console.log('setSerial 3 = ' + setSerial);\n //console.log('length = ' + setSerial.length);\n return String(setSerial).length === 20 ? setSerial : '';\n};\n\n//serialise events\nif (digital['ev_appStart']){\n //s3.events = s3.apl(s3.events, 'event26' + ':' + helper.serialise(eventSerialisationKey, pdPageStep), ',', 1);\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event26.id',helper.serialise(eventSerialisationKey, pdPageStep));\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event26.value',1);\n}\nif (digital['ev_appComplete']){\n //s3.events = s3.apl(s3.events, 'event27' + ':' + helper.serialise(eventSerialisationKey, pdPageStep), ',', 1);\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event27.id',helper.serialise(eventSerialisationKey, pdPageStep));\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event27.value',1);\n}\nif (digital['ev_enqStart']){\n //s3.events = s3.apl(s3.events, 'event28' + ':' + helper.serialise(eventSerialisationKey, pdPageStep), ',', 1);\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event28.id',helper.serialise(eventSerialisationKey, pdPageStep));\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event28.value',1);\n\n}\nif (digital['ev_enqComplete']){\n //s3.events = s3.apl(s3.events, 'event29' + ':' + helper.serialise(eventSerialisationKey, pdPageStep), ',', 1);\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event29.id',helper.serialise(eventSerialisationKey, pdPageStep));\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event29.value',1);\n}\n //s3.prop59=s3.c_r('s3_nav');\n if (helper.c_r('s3_nav')){\n digital[\"dd.navMenuID\"] = helper.c_r('s3_nav');\n //s3.c_w('s3_nav','',new Date(0)); // remove s_nav cookie after tracking\n helper.c_ws('s3_nav','',new Date(0));\n }\n //s3.eVar25 = s3.prop25 = 'D=mid';\n //ABU: Analytics Customer ID tracking (Required for SPA) \n /*var trackingid ={}; \n if (s3.c_r(\"s_stg_ti\")){trackingid.compassid = {\"id\" : s3.c_r(\"s_stg_ti\"), \"authState\": (s3.c_r(\"s_stg_auth\") ? s3.c_r(\"s_stg_auth\"): 0)}}\n if (s3.c_r(\"s_bom_ti\")){trackingid.compassid = {\"id\" : s3.c_r(\"s_bom_ti\"), \"authState\": (s3.c_r(\"s_bom_auth\") ? s3.c_r(\"s_bom_auth\"): 0)}}\n if (s3.c_r(\"s_bsa_ti\")){trackingid.compassid = {\"id\" : s3.c_r(\"s_bsa_ti\"), \"authState\": (s3.c_r(\"s_bsa_auth\") ? s3.c_r(\"s_bsa_auth\"): 0)}}\n if (s3.c_r(\"s_wbc-ti\")){trackingid.wbcid = {\"id\" : s3.c_r(\"s_wbc-ti\"), \"authState\": (s3.c_r(\"s_wbc_auth\") ? s3.c_r(\"s_wbc_auth\"): 0)}}\n\n if(trackingid.compassid || trackingid.wbcid){\n s3.visitor.setCustomerIDs(trackingid); //for SUMIT to investigate\n }*/\n if (pageBrand === 'wbc'){\n // === WESTPAC == //\n // generic account ID - value in cookie should have a prefix like 'corp_'. These will get overwritten through different sites, but could be tied together with visitor ID etc.\n // included for CORP and other sites that require tracking ID\n if(helper.cookieRead(\"s_wbc-gi\")!=''){\n digital[\"dd.genTrackID\"] = helper.cookieRead(\"s_wbc-gi\"); //s3.prop34 =\n }\n // customer tracking ID\n if((helper.cookieRead(\"s_wbc-ti\") !='')||pdTrackId !=''){\n digital[\"dd.trackingid\"] = helper.cookieRead(\"s_wbc-ti\")||pdTrackId; //s3.prop35 =// cookie is set at .westpac.com.au\n }\n // customer otp profile\n if(helper.cookieRead(\"s_wbc-pi\")!=''){\n digital[\"dd.profileTyp\"] = helper.cookieRead(\"s_wbc-pi\"); //s3.prop47 =\n }\n // Webseal ID proxy\n if(helper.cookieRead(\"s_wbc-ses\")!=''){\n digital[\"dd.websealID\"] = helper.cookieRead(\"s_wbc-ses\");
16 //= s3.prop48\n }\n // customer type segment\n if((helper.cookieRead(\"s_bt-seg\") !='') || (helper.cookieRead(\"s_wbc-seg\") != '')){\n digital[\"dd.custBankingSegment\"] = helper.cookieRead(\"s_bt-seg\")|| helper.cookieRead(\"s_wbc-seg\"); //BT panorama segments overwrite wLive segments// if values are short capture as-is, else use dynamic value to get value server-side.\n }\n // detect OTP/online banking profile switching\n custTrackingId = helper.c_r('s_wbc-ti');\n if (custTrackingId) {\n custTrackingIdPrevious = helper.c_r('temp-ti');\n helper.c_ws('temp-ti', custTrackingId); // update to current\n }\n custProfileId = helper.c_r('s_wbc-pi');\n if (custProfileId) {\n custProfileIdPrevious = helper.c_r('temp-pi');\n //s3.c_w('temp-pi', custProfileId); // update to current\n helper.c_ws('temp-pi', custProfileId); // update to current\n }\n if (custTrackingId && custTrackingId === custTrackingIdPrevious && custProfileId && custProfileIdPrevious && custProfileId !== custProfileIdPrevious) {\n userSwitchedProfile = true;\n //s3.prop59 = '(switch profile)';\n digital[\"dd.switchUser\"]='(switch profile)';\n //console.log('Profile switched'); // detect when only switching profiles and landing on dashboard vs. a new login to dashboard\n }\n // Customer RRBMIGRATED cookie read and add into digital object if its true\n var custRrbmigrated = helper.cookieRead('RRBMIGRATED');\n if(custRrbmigrated ==\"true\"){\n digital[\"dd.rrbMigrated\"] = custRrbmigrated;\n } \n}\n// === STG == //\nif (pageBrand === 'stg'){\n //s3.eVar36 = helper.cookieRead(\"s_stg_ti\")||pdTrackId;//s3.prop34 =\n digital[\"dd.stgtrackingid\"] = helper.cookieRead(\"s_stg_ti\")||pdTrackId;//s3.prop34 =\n}\n// === BOM == //\nif (pageBrand === 'bom'){\n //s3.eVar36 = helper.cookieRead(\"s_bom_ti\")||pdTrackId; //s3.prop34 =\n digital[\"dd.stgtrackingid\"] = helper.cookieRead(\"s_bom_ti\")||pdTrackId; //s3.prop34 =\n}\n// === BSA == //\nif (pageBrand === 'bsa'){\n //s3.eVar36 = helper.cookieRead(\"s_bsa_ti\")||pdTrackId; //s3.prop34 =\n digital[\"dd.stgtrackingid\"] = helper.cookieRead(\"s_bsa_ti\")||pdTrackId; //s3.prop34 =\n}\nif(pdEmpId){ //Banker ID\n //s3.eVar65 = pdEmpId;\n digital[\"dd.empId\"] = pdEmpId;\n}\nif(helper.c_r(\"s_biz_auth\")){\n //s3.eVar71 = helper.cookieRead('s_biz-ti');\n digital[\"dd.networkId\"] = helper.cookieRead('s_biz-ti'); //ABU/SUMIT/RAJCO to validate why eVar70 & 71 both same\n}\nif (pageBrand === 'bt'){\n if(pdBtAdviserID !=''){\n //s3.eVar70 = pdBtAdviserID;\n digital[\"dd.adviserId\"] = pdBtAdviserID;\n }\n if(pdPanoramaID !=''){\n //s3.eVar66 = pdPanoramaID;\n digital[\"dd.panoramaId\"] = pdPanoramaID;\n }\n else if(helper.cookieRead(\"s_bt-ti\") !=''){\n //s3.eVar66 = helper.cookieRead(\"s_bt-ti\");\n digital[\"dd.panoramaId\"] = helper.cookieRead(\"s_bt-ti\");\n }\n if(helper.cookieRead(\"s_bt-seg\") !=''){\n //s3.eVar50 = helper.cookieRead(\"s_bt-seg\");\n digital[\"dd.custBankingSegment\"] = helper.cookieRead(\"s_bt-seg\");\n }\n \n}\nif(helper.cookieRead(\"s_biz_auth\") === '1'){\n //s3.prop47=s3.eVar45 = 'business';\n digital[\"dd.profileType\"] = 'business';\n}else if(helper.cookieRead(\"s_wbc_auth\") === '1'){\n //s3.prop47=s3.eVar45 = 'Personal';\n digital[\"dd.profileType\"] = 'Personal';\n}\n\nif(pdGenericId){\n //s3.eVar34 =(pageSite===notSet ? '' :(pageSite +'_')) + pdGenericId;\n digital[\"dd.genTrackID\"] =(pageSite===notSet ? '' :(pageSite +'_')) + pdGenericId;\n}\nif(pdGroupCode){\n //s3.eVar81 = pdGroupCode | '' ;\n digital[\"dd.loggedUser\"] = pdGroupCode | '' ;\n}\n// capture user-agent\n//s3.eVar27 = 'D=User-Agent'; // capture with proc rule to increase capture (non-JS), reduce JS size and reduce pixel length //SUMIT Find best wey to do this \ndigital[\"dd.url\"] = helper.getLoc().protocol+'//'+ helper.getLoc().hostname+helper.cleanGUID(helper.getLoc().pathname.replace(/\\/$/g,'')+ ((helper.getLoc().hash.length>0)? '/'+helper.getLoc().hash:'')); // this is the full unprocessed page URL from HTTP header (includes hash) //SUMIT move to send Before \ndigital[\"dd.urlFull\"] = helper.cleanGUID(helper.getLoc().href); //SUMIT move to send Before \ndigital[\"dd.cookieAudit\"] = helper.cookieAudit();\nif(nativeMid && (nativeMid !== helper.lStor('get','currentECID'))){\n //s3.prop71 = '(mid mismatch)';\n helper.addEvt(digital,'midMismatch');\n}\n\n//BT Panorama specific clean GUID from URL\n//s3.eVar26 = helper.getLoc().protocol+'//'+ helper.getLoc().hostname+ helper.getLoc().pathname+ '/'+helper.getLoc().hash.replace(helper.guidBt, '(GUID)'); // this is the full unprocessed page URL from HTTP header (includes hash)\n//s3.prop26 = 'D=Referer+\"' + helper.getLoc().pathname.replace(helper.guidBt, '(GUID)') + '\"';\n//WBC/BOM/BSA\n//s3.prop26 = 'D=g'; // this is the filtered page URL from JS document (will include hash if any)\n\n/*var disableAAMDestCall = false; //we will enable destination URL when required \nif (helper.isHomePage()) { //BT specific\n disableAAMDestCall = true;\n}*/\n/*var disableAAMDestCall = true;\ns3.AudienceManagement.setup({\n \"partner\": \"wbg\",\n \"containerNSID\": 0,\n \"uuidCookie\": {\n \"name\": \"aam_uuid\",\n \"days\": 30\n },\n \"visitorService\":{\n \"namespace\": \"3A4B7BAF56F01DA67F000101@AdobeOrg\"\n },\n\"disableDefaultRequest\": true,\n\"disableScriptAttachment\": true,\n\"disableCORS\": true,\n\"disableDestinationPublishingIframe\": disableAAMDestCall\n});\n*/\n\nif (typeof helper.w_wtT.complete === 'function') {\n helper.w_wtT.complete({\n \"customData\": helper.clone(digital),\n \"customXDM\": xdm\n });\n}\n\n /* console.log(\"Digital:\")\n console.log(digital);\n console.log(\"XDM:\")\n console.log(xdm);
16*/\n \n //Launch rules return XDM \n return {\n \"customData\": helper.clone(digital),\n \"customXDM\": xdm\n };\n}\n/*\n\t * s.join: 1.0 - Joins an array into a string\n\t */\nhelper.join = function (v, p) {\n var helper = this,\n x,\n f,\n b,\n d,\n w,\n str;\n if (p) {\n f = p.front || '';\n b = p.back || '';\n d = p.delim || '';\n w = p.wrap || '';\n }\n str = '';\n for (x = 0; x < v.length; x++) {\n if (typeof(v[x]) == 'object') {\n str += helper.join(v[x], p);\n } else {\n str += w + v[x] + w;\n }\n if (x < v.length - 1) {\n str += d;\n }\n }\n return f + str + b;\n};\n\t/*\n\t * Plugin Utility: Replace v1.0\n\t */\n\thelper.repl = function (x, o, n) {\n\t\tvar i = x.indexOf(o),\n\t\tl = n.length;\n\t\twhile (x && i >= 0) {\n\t\t\tx = x.substring(0, i) + n + x.substring(i + o.length);\n\t\t\ti = x.indexOf(o, i + l);\n\t\t}\n\t\treturn x;\n\t};\n /*\n\t * Plugin Utility: apl v1.1 - append item to list\n\t */\nhelper.apl = function (l, v, d, u) {\n var helper = this,\n m = 0,\n i,\n n,\n a;\n if (!l) {\n l = '';\n }\n if (u) {\n a = helper.split(l, d);\n for (i = 0; i < a.length; i++) {\n n = a[i];\n m = m || (u == 1 ? n == v : n.toLowerCase() == v.toLowerCase());\n }\n }\n if (!m) {\n l = l ? l + d + v : v;\n }\n return l;\n};\n/*\n * Plugin: Days since last Visit 1.1.H - capture time from last visit\n */\nhelper.getDaysSinceLastVisit = function (c) {\n var e = new Date(),\n es = new Date(),\n cval,\n cval_s,\n cval_ss,\n ct = e.getTime(),\n day = 24 * 60 * 60 * 1000,\n f1,\n f2,\n f3,\n f4,\n f5;\n e.setTime(ct + 3 * 365 * day);\n es.setTime(ct + 30 * 60 * 1000);\n f0 = 'Cookies Not Supported';\n f1 = 'First Visit';\n f2 = 'More than 30 days';\n f3 = 'More than 7 days';\n f4 = 'Less than 7 days';\n f5 = 'Less than 1 day';\n cval = helper.c_r(c);\n if (cval.length == 0) {\n helper.c_w (c, ct, e);\n helper.c_w(c + '_s', f1, es);\n } else {\n var d = ct - cval;\n if (d > 30 * 60 * 1000) {\n if (d > 30 * day) {\n helper.c_w(c, ct, e);\n helper.c_w(c + '_s', f2, es);\n } else if (d < 30 * day + 1 && d > 7 * day) {\n helper.c_w(c, ct, e);\n helper.c_w(c + '_s', f3, es);\n } else if (d < 7 * day + 1 && d > day) {\n helper.c_w(c, ct, e);\n helper.c_w(c + '_s', f4, es);\n } else if (d < day + 1) {\n helper.c_w(c, ct, e);\n helper.c_w(c + '_s', f5, es);\n }\n } else {\n helper.c_w(c, ct, e);\n cval_ss = helper.c_r(c + '_s');\n helper.c_w(c + '_s', cval_ss, es);\n }\n }\n cval_s = helper.c_r(c + '_s');\n if (cval_s.length == 0)\n return f0;\n else if (cval_s != f1 && cval_s != f2 && cval_s != f3 && cval_s != f4 && cval_s != f5)\n return '';\n else\n return cval_s;\n}\n// handler functions for event listening for custom link tracking\nhelper.w_getEvtTrgt = function (evt, attrRequired) {\n var evtTarget = evt || window.event,\n lp,\n max = 10; // search 10 ancestors up from clicked element to find suitable target\n\n evtTarget = evtTarget ? evtTarget.target || evtTarget.srcElement : 0;\n\n //if (evtTarget && (evtTarget.target || evtTarget.srcElement)) {\n //\tevtTarget = evtTarget.target || evtTarget.srcElement; // should really just be able to use 'this' inside handler to refer to calling element, but doesn't work in older IE\n\n // Safari may target a non-element node, so move to parent\n for (lp = 0; evtTarget && evtTarget.nodeType !== 1 && lp <= max; lp++) {\n evtTarget = evtTarget.parentNode;\n }\n\n //console.log('attrRequired = ' + attrRequired + ' ================ ')\n //console.log('attrRequired = ' + attrRequired + ', nodeName = ' + evtTarget.nodeName + ', type = ' + (evtTarget.getAttribute && evtTarget.getAttribute(attrRequired)));\n\n if (attrRequired) {\n // find the element the handler should be referring to, in case the event target is a child node\n for (lp = 0; evtTarget && evtTarget.getAttribute && !evtTarget.getAttribute(attrRequired) && lp <= max;
16 lp++) {\n // work up to find first parent with attrRequired - should be the el with handler attached\n evtTarget = evtTarget.parentNode;\n\n //console.log('attrRequired = ' + attrRequired + ', nodeName = ' + evtTarget.nodeName + ', type = ' + (evtTarget.getAttribute && evtTarget.getAttribute(attrRequired)));\n }\n\n // set to zero if node with required attribute not found in parents\n //if (evtTarget && evtTarget.getAttribute && !evtTarget.getAttribute(attrRequired)) {\n if ((evtTarget && !evtTarget.getAttribute) || (evtTarget && evtTarget.getAttribute && !evtTarget.getAttribute(attrRequired))) {\n evtTarget = 0;\n }\n }\n //} else {\n //\tevtTarget = 0;\n //}\n //evtTarget=0; // this line only for testing if node not found. should be commented\n return evtTarget || 0;\n};\nhelper.w_getNavMenuId = function (evt) {\n var lp,\n len,\n node = helper.w_getEvtTrgt(evt),\n nav = '';\n\n // cycle through up to 'len' parent nodes to find a data-analytics-nav attribute\n for (lp = 0, len = 50; lp < len; lp++) {\n if (node) {\n if (node.nodeType === 1) {\n nav = node.getAttribute('data-analytics-nav');\n if (nav) {\n // set val in cookie\n //console.log('nav = ' + nav);\n helper.c_w('s3_nav', nav);\n break;\n }\n }\n node = node.parentNode;\n }\n }\n};\n/*\nhelper.w_getNavMenuId1 = function (evt) {\n var lp,\n len,\n node = helper.w_getEvtTrgt(evt),\n nav = '';\n\n // console.log('passed a note?'+ node);\n // cycle through up to 'len' parent nodes to find a data-analytics-nav attribute\n for (lp = 0, len = 20; lp < len; lp++) {\n if (node) {\n if (node.nodeType === 1) {\n nav = node.getAttribute('data-analytics-secondary-header');\n if (nav) {\n // set val in cookie\n //console.log('nav = ' + nav);\n helper.c_ws('s_sh', nav); \n break;\n }\n }\n node = node.parentNode;\n }\n }\n};\n\nhelper.w_getNavMenuId2 = function (evt) {\n var lp,\n len,\n node = helper.w_getEvtTrgt(evt),\n nav = '';\n // console.log('passed a tab note?'+ node);\n // cycle through up to 'len' parent nodes to find a data-analytics-nav attribute\n for (lp = 0, len = 20; lp < len; lp++) {\n if (node) {\n if (node.nodeType === 1) {\n nav = node.getAttribute('data-analytics-tab');\n if (nav) {\n // set val in cookie\n //console.log('tab nav = ' + nav);\n helper.c_ws('s_tab', nav);\n break;\n }\n }\n node = node.parentNode;\n }\n }\n};\n\nhelper.w_getNavMenuId3 = function (evt) {\n var lp,\n len,\n node = helper.w_getEvtTrgt(evt),\n nav = '';\n\n // cycle through up to 'len' parent nodes to find a data-analytics-quick-link attribute\n for (lp = 0, len = 20; lp < len; lp++) {\n if (node) {\n if (node.nodeType === 1) {\n nav = node.getAttribute('data-analytics-quick-links');\n if (nav) {\n // set val in cookie\n //console.log('quick link nav = ' + nav);\n helper.c_ws('s_ql', nav);\n break;\n }\n }\n node = node.parentNode;\n }\n }\n};\nhelper.w_getNavMenuId4 = function (evt) {\n var lp,\n len,\n node = helper.w_getEvtTrgt(evt),\n nav = '';\n\n // cycle through up to 'len' parent nodes to find a data-analytics-card attribute\n for (lp = 0, len = 20; lp < len; lp++) {\n if (node) {\n if (node.nodeType === 1) {\n nav = node.getAttribute('data-analytics-card');\n if (nav) {\n // set val in cookie\n // console.log('card nav = ' + nav);\n helper.c_ws('s_ca', nav);\n break;\n }\n }\n node = node.parentNode;\n }\n }\n};\nhelper.w_getNavMenuId5 = function (evt) {\n var lp,\n len,\n node = helper.w_getEvtTrgt(evt),\n nav = '';\n\n // cycle through up to 'len' parent nodes to find a data-analytics-product attribute\n for (lp = 0, len = 20; lp < len; lp++) {\n if (node) {\n if (node.nodeType === 1) {\n nav = node.getAttribute('data-analytics-product');\n if (nav) {\n // set val in cookie\n //console.log('product nav = ' + nav);\n helper.c_ws('s_pr', nav);\n break;\n }\n }\n node = node.parentNode;\n }\n }\n};\nhelper.w_getNavMenuId6 = function (evt) {\n var lp,\n len,\n node = helper.w_getEvtTrgt(evt),\n nav = '';\n\n // cycle through up to 'len' parent nodes to find a data-analytics-action attribute\n for (lp = 0, len = 20; lp < len; lp++) {\n if (node) {\n if (node.nodeType === 1) {\n nav = node.getAttribute('data-analytics-action');\n if (nav) {\n // set val in cookie\n // console.log('quick action nav = ' + nav);\n helper.c_ws('s_ac', nav);\n break;\n }\n }\n node = node.parentNode;\n }\n }\n};\nhelper.w_getNavMenuId7 = function (evt) {\n var lp,\n len,\n node = helper.w_getEvtTrgt(evt),\n nav = '';\n\n // cycle through up to 'len' parent nodes to find a data-analytics-slide attribute\n for (lp = 0, len = 20; lp < len; lp++) {\n if (node) {\n if (node.nodeType === 1) {\n nav = node.getAttribute('data-analytics-slide');\n if (nav) {\n // set val in cookie\n //console.log('quick slide nav = ' + nav);\n helper.c_ws('s_sl', nav);\n break;\n }\n }\n node = node.parentNode;\n }\n }\n};\nhelper.w_getNavMenuId8 = function (evt) {\n var lp,\n len,\n node = helper.w_getEvtTrgt(evt),\n nav = '';\n\n // cycle through up to 'len' parent nodes to find a data-analytics-Primary-header attribute\n for (lp = 0, len = 20; lp < len; lp++) {\n if (node) {\n if (node.nodeType === 1) {\n nav = node.getAttribute('data-analytics-primary-header');\n if (nav) {\n // set val in cookie\n //console.log('nav = ' + nav);\n helper.c_ws('s_ph', nav);\n break;\n }\n }\n node = node.parentNode;\n }\n }\n};\nhelper.w_getNavMenuId9 = function (evt) {\n var lp,\n len,\n node = helper.w_getEvtTrgt(evt),\n nav = '';\n\n // cycle through up to 'len' parent nodes to find a data-analytics-tertiary-header attribute\n for (lp = 0, len = 20; lp < len; lp++) {\n if (node) {\n if (node.nodeType === 1) {\n nav = node.getAttribute('data-analytics-tertiary-header');\n if (nav) {\n // set val in cookie\n //console.log('nav = ' + nav);\n helper.c_ws('s_th', nav);\n break;\n }\n }\n node = node.parentNode;\n }\n }\n};\n*/\n// Generic replacement for w_getNavMenuId1..9: cycles up to 'len' parent nodes\n// looking for the given data-attribute and stores its value in the given data-analytics attribute cookie.\nhelper.w_getNavMenuIdByAttr = function (evt, attrName, cookieName) {\n var lp,\n len = 20,\n node = helper.w_getEvtTrgt(evt),\n nav = '';\n\n for (lp = 0; lp < len; lp++) {\n if (!node) {\n break;\n }\n if (node.nodeType === 1) {\n nav = node.getAttribute(attrName);\n if (nav) {\n console.log('getNavbyAttr = ' + nav);\n // set val in cookie\n helper.c_ws(cookieName, nav);\n break;\n }\n }\n node = node.parentNode;\n }\n};\n// Do things after pixel sent\nhelper.w_endTrcking = function () {\n //console.log('w_endTrcking: Start');\n // record length of last pixel\t\n //var sVisitorNamespace = s.visitorNamespace,\n //s = s.rc ? s.rc[sVisitorNamespace] : 0,\n //var lastPixel = window['s_i_' + s3.account],\n //lastPixelSrc = lastPixel && lastPixel.getAttribute('src'),\n //lastPixelSrc = lastPixel && lastPixel.src,\n //var lastPixelSrc = window['s_i_' + s3.account].src === 'undefined' ? window['s_i_' + s3.account].src: s3.rb,\n setTimeout(function(){\n //console.log('timeout:'+s3.Gb);\n const payload = helper.payload;\n //add XDM length as well combine - sumit\n var lastPixelSrc = payload||'';\n var jsonString = JSON.stringify(lastPixelSrc);\n var s_ecid = helper.c_r('s_ecid');\n if (!s_ecid){\n alloy(\"getIdentity\").then(function(result) { // The command succeeded. \n helper.c_wr('s_ecid', 'MCMID|'+ result.identity.ECID, new Date(+new Date() + (24 * 60 * 60 * 1000)),'/', helper.cookieDomain()); // keep impressions in cookie for 24 hours\n helper.lStor('set','currentECID',result.identity.ECID );\n console.log(\"ECID:\", result.identity.ECID);
16\n console.log(\"RegionId:\", result.edge.regionId);\n })\n .catch(function(error) { // The command failed.\n console.log(\"error\"); // will be an error object with additional information.\n });\n }\n // Payload length - Sumit\n //Sumit - Business use - Gb lastpixel used for debugging. Selenim tool use this value. Verify the payload. Length of last pixel\n //length of the data sent can be used as a replacement\n lastPixelLength = 0;\n//helper.w_log('s3_code', helper.pageName);\n if (/^undefined$/i.test(helper.pageName)){\n //page name not set yet\n }else{\n helper.c_ws('lastPage', helper.pageName, new Date(+new Date() + (24 * 60 * 60 * 1000))); \n }\n //var lastPixelSrc = window[\"s2\"].kb\n if (lastPixelSrc) { // changed to lastPixel.getAttribute('src') to avoid invalid pointer error in IE11 when reading .src\n let lastPixelLength = 0;\n lastPixelLength = jsonString.length;\n // for (const key in lastPixelSrc) {\n // if (lastPixelSrc.hasOwnProperty(key)) {\n // lastPixelLength += key.length + lastPixelSrc[key].toString().length;\n // }\n // }\n // add pixels to an array to simplify testing\n helper.w_pixels = helper.w_pixels || [];\n helper.w_pixels.push(lastPixelSrc);\n // store length of the pixel just fired in a cookie, to extract on next page load\n helper.c_ws('lastPixelLen', lastPixelLength);\n //helper.cookieWrite('lastPage', s3.pageName, new Date(+new Date() + (24 * 60 * 60 * 1000)));\n if (!digital._drop) { \n //console.log('previousPage:'+ s3.pageName);\t\n helper.w_pgTrkStatus = 'sent';\n \n }\n digital ={}; //delete digital;\n }\n }, 1000);\n //return lastPixelLength;\n};\nhelper.w_stopEvt = function(evt) {\n if(evt) {\n if(evt.preventDefault) {\n//console.log( 'preventDefault: executed');\n evt.preventDefault();\n } else {\n//console.log( 'preventDefault: false');\n evt.returnValue = false;\n }\n }\n};\nhelper.setTimeoutLink = function(evt) {\n setTimeout(() => {\n const href = evt?.getAttribute(\"href\");\n const terget = evt?.target ;\n //console.log('setTimeoutLink > href:' + href);\n //console.log('setTimeoutLink > terget:' + terget);\n if (href && terget) {\n window.open(href, terget);\n } else if(href){\n window.location.href = href;\n }\n }, 1000);\n}; \nhelper.sendEventLink = function(name, URL, type, xdm) {\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', name);\n helper.xdmPut(xdm,'web.webInteraction.type', type);\n helper.xdmPut(xdm,'web.webInteraction.URL', URL);\n //helper.xdmPut(xdm,'web.webInteraction.region', region);\n \n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //helper.w_endTrcking();\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n};\nhelper.w_trackLink = function (evt,type) {\n //console.log ('w_trackLink: type ' + type);\n var eTarg = helper.w_getEvtTrgt(evt, 'href');\n var isBlankTarget = eTarg && (eTarg.getAttribute('target') === '_blank');\n xdm={};\n //s.events = 'event71';\n switch(type){\n case 'social':\n // s3.linkTrackEvents = s3.events = 'event71';\n // s3.linkTrackVars = s3.w_ltv + ',eVar56,prop56,events'; // includes eVar21 and c39\n // s3.eVar56 = helper.lowerCase(eTarg.href, 1);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar56',helper.lowerCase(eTarg.href, 1));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop56',helper.lowerCase(eTarg.href, 1));\n // s3.prop56 = 'D=v56';\n // s3.tl(eTarg || true, 'e', 'social:' + helper.lowerCase(eTarg.href, 1)); // 'eTarg' assumes this function only called from link clicks\n if(!isBlankTarget && !helper.isSafari){ //adding delays\n helper.w_stopEvt(evt);\n helper.setTimeoutLink(eTarg);\n }\n helper.sendEventLink('social:' + helper.lowerCase(eTarg.href, 1), helper.lowerCase(eTarg.href, 1), \"exit\", xdm);\n //console.log('tl() link:'+type);\n helper.w_endTrcking();\n break; \n case 'exitCampaign':\n var TargetId = decodeURIComponent(helper.lowerCase(helper.getQueryParam('ttid', '',eTarg.href))),\n Targetlocid = decodeURIComponent(helper.lowerCase(helper.getQueryParam('locationid', '',eTarg.href))),\n TargetAction = decodeURIComponent(helper.lowerCase(helper.getQueryParam('action', '',eTarg.href))),\n IntCampId = decodeURIComponent(helper.lowerCase(helper.getQueryParam('pid', '',eTarg.href)));\n \n // s3.linkTrackEvents = s3.events = '';\n // s3.linkTrackVars = s3.w_ltv + ',eVar33,eVar53,eVar22,prop33,prop32,prop53,events'; // includes eVar21 and c39\n \n //Target campaign click through to external\n if(IntCampId){\n helper.eVar22 = IntCampId;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar22',IntCampId);\n // s3.events=s3.apl(s3.events,\"event12\",\",\",2);\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event12.value.',2);\n }\n if (TargetId) {\n // s3.eVar33 = TargetId;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar33',TargetId);\n // s3.prop33 = TargetId;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop33',TargetId);\n if (Targetlocid){\n // s3.prop32 = Targetlocid;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop32',Targetlocid);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar52',Targetlocid);\n }\n if(TargetAction){\n // s3.eVar53 = TargetAction\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar53',TargetAction);\n // s3.prop53 = TargetAction;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop53',TargetAction);\n }\n helper.events=helper.apl(helper.evList,\"event9\",\",\",2);\n\n }\n // s3.tl(eTarg || true, 'e', 'exitCampaign:' + helper.lowerCase(eTarg.href, 1)); // 'eTarg' assumes this function only called from link clicks\n if(!helper.isSafari){ //adding delays\n helper.w_stopEvt(evt);\n helper.setTimeoutLink(eTarg);\n }\n helper.sendEventLink('exitCampaign:' + helper.lowerCase(eTarg.href, 1), helper.lowerCase(eTarg.href, 1), \"exit\", xdm);\n //console.log('tl() link:'+type);\n // helper.w_endTrcking();\n break; \n case 'exit':\n // s3.linkTrackEvents = s3.events = '';\n // s3.linkTrackVars = s3.w_ltv;\n // s3.eVar6=s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\n // s3.eVar1=s3.prop1 ='impression:exit';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','impression:exit');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','impression:exit');\n // s3.tl(eTarg || true, 'e', helper.lowerCase(eTarg.href, 1)); // 'eTarg' assumes this function only called from link clicks\n if(!isBlankTarget && !helper.isSafari){ //adding delays\n helper.w_stopEvt(evt);\n helper.setTimeoutLink(eTarg);\n }\n helper.sendEventLink(helper.lowerCase(eTarg.href, 1), helper.lowerCase(eTarg.href, 1), \"exit\", xdm);\n // helper.w_endTrcking();\n break;\n case 'custdownload':\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-download'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-download'), 1);\n // helper.events = 'event67';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event67',{ value: 1 });\n // s3.linkTrackEvents = s3.events;\n // s3.linkTrackVars = s3.w_ltv + ',eVar61,events';\n // s3.eVar61 = detail;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar61',detail);\n // s3.eVar6=s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\n // s3.eVar1=s3.prop1 ='impression:download';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','impression:download');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','impression:download');\n // s3.tl(eTarg || true, 'd', detail); // 'eTarg' assumes this function only called from link clicks\n if(!helper.isSafari){ //adding delays\n helper.w_stopEvt(evt);\n helper.setTimeoutLink(eTarg);\n }\n helper.sendEventLink(detail, helper.lowerCase(eTarg.href, 1), \"download\", xdm);\n //console.log('tl() link:'+type);\n // helper.w_endTrcking();\n //helper.setTimeoutLink(eTarg);\n break;\n case 'download':\n // s3.events = 'event67';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event67',{ value: 1 });\n var pd = (((/pds\\.pdf(?:\\?|$)/i).test(eTarg.href) || ((/\\b(terms\\ and\\ conditions|product\\ disclosure\\ statement)\\b/i).test(eTarg.innerHTML) && (/\\.pdf(?:\\?|$)/i).test(eTarg.href))) ? 'pds:' : ''); // ...pds.pdf in href or T and C in link text to identify product disclosure downloads\n // s3.linkTrackEvents = s3.events;\n // s3.linkTrackVars = s3.w_ltv + ',eVar61,events';\n // s3.eVar61 = pd + (helper.lowerCase(eTarg.href, 1).replace(/(.*\\/)?(\\.*?)/, '$2')); // record file name only\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar61',pd + (helper.lowerCase(eTarg.href, 1).replace(/(.*\\/)?(\\.*?)/, '$2')));\n // s3.eVar6=s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n // s3.eVar1=s3.prop1 ='impression:download';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','impression:download');\n // s3.tl(eTarg || true, 'd', pd + helper.lowerCase(eTarg.href, 1)); // 'eTarg' assumes this function only called from link clicks\n if(!helper.isSafari){ //adding delays\n helper.w_stopEvt(evt);\n helper.setTimeoutLink(eTarg);\n }\n helper.sendEventLink(helper.lowerCase(eTarg.href, 1), helper.lowerCase(eTarg.href, 1), \"download\", xdm); \n // helper.w_endTrcking();\n break;\n case 'call':\n var detail = decodeURI(helper.lowerCase(eTarg.href, 1)).replace(/^tel:|\\s+/gi, ''); // Appears in the Page interactions name report (v54). custom call links may not have friendly href\n // s3.linkTrackEvents = s3.events = 'event61,event69';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event61',{ value: 1 });\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event69',{ value: 1 });\n //s.linkTrackVars='prop15,prop69,eVar54,prop54,eVar59,events';\n // s3.linkTrackVars = s3.w_ltv + ',eVar54,prop54,eVar59,events';\n // s3.eVar54 = 'call:' + detail;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar54','call:' + detail);\n // s3.prop54 = 'D=v54';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop54','call:' + detail);\n // s3.eVar59 = detail;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar59',detail);\n // s3.eVar6=s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\n // s3.eVar1=s3.prop1 ='impression:call';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','impression:call');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','impression:call');\n //s.forcedLinkTrackingTimeout = 500;\n //s.useForcedLinkTracking = false;\n\n // s3.tl(eTarg || true, 'o', 'interaction:call:' + detail); // 'eTarg' assumes this function only called from link clicks\n if(!helper.isSafari){ //adding delays\n helper.w_stopEvt(evt);\n helper.setTimeoutLink(eTarg);\n }\n helper.sendEventLink('interaction:call:' + detail, helper.lowerCase(eTarg.href, 1), \"other\", xdm);\n //s.tl(eTarg||true,'o','interaction:call:'+detail, null, 'navigate'); // 'eTarg' assumes this function only called from link clicks // this or 'navigate' breaks FF in test page?\n //console.log('tl() link:'+type);\n // s3.w_endTrcking();\n break;\n \n }\n /*if(/^social/i.test(type)){\n s3.linkTrackEvents = s3.events = 'event71';\n s3.linkTrackVars = s3.w_ltv + ',eVar56,prop56,events'; // includes eVar21 and c39\n s3.eVar56 = helper.lowerCase(eTarg.href, 1);\n s3.prop56 = 'D=v56';\n s3.tl(eTarg || true, 'e', 'social:' + helper.lowerCase(eTarg.href, 1)); // 'eTarg' assumes this function only called from link clicks\n console.log('tl() link:'+type)\n }\n if(/^exit/i.test(type)){\n s3.linkTrackEvents = s3.events = '';\n s3.linkTrackVars = s3.w_ltv;\n s3.tl(eTarg || true, 'e', helper.lowerCase(eTarg.href, 1)); // 'eTarg' assumes this function only called from link clicks\n console.log('tl() link:'+type)\n }\n if(/^download/i.test(type)){\n s3.events = 'event67';\n var pd = (((/pds\\.pdf(?:\\?|$)/i).test(eTarg.href) || ((/\\b(terms\\ and\\ conditions|product\\ disclosure\\ statement)\\b/i).test(eTarg.innerHTML) && (/\\.pdf(?:\\?|$)/i).test(eTarg.href))) ? 'pds:' : ''); // ...pds.pdf in href or T and C in link text to identify product disclosure downloads\n if (pd) {\n s3.events+=',event31';\n }\n s3.linkTrackEvents = s3.events;\n s3.linkTrackVars = s3.w_ltv + ',eVar61,prop61,events';\n s3.eVar61 = pd + (helper.lowerCase(eTarg.href, 1).replace(/(.*\\/)?(\\.*?)/, '$2')); // record file name only\n s3.prop61 = 'D=v61';\n s3.tl(eTarg || true, 'd', pd + helper.lowerCase(eTarg.href, 1)); // 'eTarg' assumes this function only called from link clicks\n console.log('tl() link:'+type)\n }\n if(/^call/i.test(type)){\n var detail = decodeURI(helper.lowerCase(eTarg.href, 1)).replace(/^tel:|\\s+/gi, ''); // Appears in the Page interactions name report (v54). custom call links may not have friendly href\n s3.linkTrackEvents = s3.events = 'event61,event69';\n //s.linkTrackVars='prop15,prop69,eVar54,prop54,eVar59,events';\n s3.linkTrackVars = s3.w_ltv + ',eVar54,prop54,eVar59,events';\n s3.eVar54 = 'call:' + detail;\n s3.prop54 = 'D=v54';\n s3.eVar59 = detail;\n\n //s.forcedLinkTrackingTimeout = 500;\n //s.useForcedLinkTracking = false;\n\n s3.tl(eTarg || true, 'o', 'interaction:call:' + detail); // 'eTarg' assumes this function only called from link clicks\n //s.tl(eTarg||true,'o','interaction:call:'+detail, null, 'navigate'); // 'eTarg' assumes this function only called from link clicks // this or 'navigate' breaks FF in test page?\n console.log('tl() link:'+type)\n }\n s3.w_endTrcking();*/\n};\nhelper.w_trackLiveChat = function (evt, args) {\n xdm = {};\n // this function is called directly by LivePerson code when the Interactive
16Chat event is fired in LivePerson\n var eTarg = helper.w_getEvtTrgt(evt),\n argsObj = args || {},\n detail = helper.lowerCase(argsObj.detail, 1),\n events = helper.lowerCase(argsObj.events, 1),\n type = helper.lowerCase(argsObj.type, 1)\n ; // details passed from LivePerson rule\n // s3 = s3_gi(s3_account);\n // s3.events = 'event63,event69'+events;\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event63',{ value: 1 });\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event69',{ value: 1 });\n // s3.linkTrackEvents = 'event63,event69'+(events.replace(/\\:.*/,''));\n //s.linkTrackVars='prop15,prop69,eVar54,prop54,eVar57,prop57,events';\n // s3.linkTrackVars = s3.w_ltv + ',eVar54,prop54,eVar55,eVar57,prop57,events';\n // s3.eVar6 = s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\t\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\t\n // s3.eVar1 = s3.prop1 = 'interaction:live chat';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','interaction:live chat');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','interaction:live chat');\n // s3.eVar55 = 'live chat:' + detail;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar55','live chat:' + detail);\n // s3.eVar6=s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n // s3.eVar54 = s3.prop54 = 'live chat:'+type;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar54','live chat:'+type);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop54','live chat:'+type);\n // s3.eVar57 = s3.prop57 = helper.lowerCase(argsObj.session, 1);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar57','live chat:'+type);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop57','live chat:'+type);\n // s3.tl(eTarg || true, 'o', 'interaction:live chat:' + type); // (eTarg||true) allows this function to be called from script or link clicks\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', 'interaction:live chat:' + type);\n helper.xdmPut(xdm,'web.webInteraction.type','other');\n //helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1));\n\n alloy(\"sendEvent\", {\n \"xdm\": xdm//,\n //\"data\": data\n }).then(function(result) {\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n xdm = {};\n // s3.w_endTrcking();\n};\nhelper.w_trackChat = function (evt, args) {\n // this function is called directly by LivePerson code when the Interactive Chat event is fired in LivePerson\n var eTarg = helper.w_getEvtTrgt(evt),\n xdm = {};\n events ='',\n //analyticsVar ='', //LinkTrackVar is not required in Alloy.js\n argsObj = args || {},\n chatId = argsObj.chatId||'',\n chatbotName = argsObj.chatbotName||'',\n chatAssistedId = argsObj.chatAssistedId||'',\n chatIntend = argsObj.chatIntend ||'',\n chatAssistedDetails = argsObj.chatAssistedDetails ||'',\n //detail = helper.lowerCase(argsObj.detail, 1),\n chatevent = helper.lowerCase(argsObj.chatEvent, 1),\n chatLoc = helper.lowerCase(argsObj.chatLocation, 1)\n ; // details passed from LivePerson rule\n if (chatevent ==='start'){\n // events = 'event88' + (chatId ? ':'+chatId:'');\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event88',{ id: (chatId ?chatId:'') });\n }else if (chatevent ==='interactive'){\n // events = 'event89' + (chatId ? ':'+chatId:'');\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event89',{ id: (chatId ?chatId:'') });\n }else if (chatevent ==='intend-changed'){\n // events = 'event90';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event88',{ value: 1 });\n //analyticsVar = analyticsVar + (chatIntend ? ',prop73':'');\n // s3.prop73 = 'chatbot:intend:' + chatIntend;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop73','chatbot:intend:' + chatIntend);\n }else if (chatevent ==='ended'){\n // events = 'event91' + (chatId ? ':'+chatId:'');\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event91',{ id: (chatId ?chatId:'') });\n }else if (chatevent ==='assisted-start'){\n // events = 'event92' + (chatId ? ':'+chatId:'');\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event92',{ id: (chatId ?chatId:'') });\n //analyticsVar = analyticsVar + (chatAssistedId ? ',prop72':'') + (chatAssistedDetail
16s ? ',prop71':'');\n // s3.prop72 = 'chatbot:assisted-start:' + chatAssistedId;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop72','chatbot:assisted-start:' + chatAssistedId);\n // s3.prop71 = 'chatbot:assisted-start:' + helper.lowerCase(chatAssistedDetails,1);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop71','chatbot:assisted-start:' + helper.lowerCase(chatAssistedDetails,1));\n }else if (chatevent ==='assisted-interactive'){\n // events = 'event93' + (chatId ? ':'+chatId:'');\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event93',{ id: (chatId ?chatId:'') });\n //analyticsVar = analyticsVar + (chatAssistedId ? ',prop72':'') + (chatAssistedDetails ? ',prop71':'');\n // s3.prop72 = 'chatbot:assisted-interactive:' + chatAssistedId;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop72','chatbot:assisted-interactive:' + chatAssistedId);\n // s3.prop71 = 'chatbot:assisted-interactive:' + helper.lowerCase(chatAssistedDetails,1);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop71','chatbot:assisted-interactive:' + helper.lowerCase(chatAssistedDetails,1));\n }else if (chatevent ==='assisted-ended'){\n // events = 'event94' + (chatId ? ':'+chatId :'');\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event94',{ id: (chatId ?chatId:'') });\n //analyticsVar = analyticsVar + (chatAssistedId ? ',prop72':'') + (chatAssistedDetails ? ',prop71':'');\n // s3.prop72 = 'chatbot:assisted-ended:' + chatAssistedId;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop72','chatbot:assisted-ended:' + chatAssistedId);\n // s3.prop71 = 'chatbot:assisted-ended:' + helper.lowerCase(chatAssistedDetails,1);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop71','chatbot:assisted-ended:' + helper.lowerCase(chatAssistedDetails,1));\n }else if (chatevent ==='feedback-start'){\n // events = 'event95' + (chatId ? ':'+chatId:'');\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event95',{ id: (chatId ?chatId:'') });\n //analyticsVar = analyticsVar + (chatAssistedId ? ',prop72':'');\n // s3.prop72 = 'chatbot:feedback-start:' + chatAssistedId;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop72','chatbot:feedback-start:' + chatAssistedId);\n }else if (chatevent ==='feedback-ended'){\n // events = 'event96' + (chatId ? ':'+chatId:'');\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event96',{ id: (chatId ?chatId:'') });\n //analyticsVar = analyticsVar + (chatAssistedId ? ',prop72':'');\n // s3.prop72 = 'chatbot:feedback-ended:' + chatAssistedId;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop72','chatbot:feedback-ended:' + chatAssistedId);\n }\n // s3 = s3_gi(s3_account);\n // s3.events = 'event69,'+events;\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event69',{ value: 1 });\n // s3.linkTrackEvents = 'event69,'+(events.replace(/\\:.*/,''));\n //s.linkTrackVars='prop15,prop69,eVar54,prop54,eVar57,prop57,events';\n // s3.linkTrackVars = s3.w_ltv + analyticsVar +',eVar54,prop54,eVar74,events';\n // s3.eVar6 = s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\n // s3.eVar76 = chatbotName;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar76',chatbotName); \t\t\n // s3.eVar1 = s3.prop1 = 'interaction:chatbot';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','interaction:chatbot');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','interaction:chatbot');\n // s3.eVar54 = 'chatbot:' + chatevent;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar54','chatbot:' + chatevent);\n // s3.prop54 = 'chatbot:' + chatLoc;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop54','chatbot:' + chatLoc);\n // s3.eVar74 = helper.lowerCase(chatId, 1);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar74',helper.lowerCase(chatId, 1));\n // s3.tl(eTarg || true, 'o', 'interaction:chatbot:' + chatLoc); // (eTarg||true) allows this function to be called from script or link clicks\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', 'interaction:chatbot:' + chatLoc);\n helper.xdmPut(xdm,'web.webInteraction.type','other');\n //helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1));\n\n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n // s3.w_endTrcking();\n};\nhelper.w_trackRank = function (evt) {\n // Track search result rank clicks\n // this refers to data set by another script on the funnelback search results page\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-rank'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-rank'), 1);\n\n helper.c_ws('cpr', detail); // commenting to not to use local storage for search\n //helper.lStor('set', 'cpr', detail);\n //alert('Set cookie, rank: '+detail);\n //s.w_stopEvt(evt);\n};\nhelper.w_searchLoc = function (evt) {\n // Track search result rank clicks\n // this refers to data set by another script on the funnelback search results page\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-search-searchsource'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-search-searchsource'), 1);\n\n helper.c_ws('s_loc', detail);\n //helper.lStor('set', 's_loc', detail); // commenting to not to use local storage for search\n //alert('Set cookie, rank: '+detail);\n //s.w_stopEvt(evt);\n};\nhelper.w_searchKeyWords = function (evt) {\n // Track search result rank clicks\n // this refers to data set by another script on the funnelback search results page\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-search-kw'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-search-kw'), 1);\n\n helper.c_ws('s_kw', detail);\n //helper.lStor('set', 's_kw', detail);\n //alert('Set cookie, rank: '+detail);\n //s.w_stopEvt(evt);\n};\nhelper.w_searchType = function (evt) {\n // Track search result rank clicks\n // this refers to data set by another script on the funnelback search results page\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-search-type'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-search-type'), 1);\n\n helper.c_ws('s_rt', detail);\n //helper.lStor('set', 's_rt', detail);\n //alert('Set cookie, rank: '+detail);\n //s.w_stopEvt(evt);\n};\nhelper.w_searchCat = function (evt) {\n // Track search result rank clicks\n // this refers to data set by another script on the funnelback search results page\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-search-cat'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-search-cat'), 1);\n\n helper.c_ws('s_cat', detail);\n //helper.lStor('set', 's_cat', detail);\n //alert('Set cookie, rank: '+detail);\n //s.w_stopEvt(evt);\n};\nhelper.w_searchTitle = function (evt) {\n // Track search result rank clicks\n // this refers to data set by another script on the funnelback search results page\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-search-title'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-search-title'), 1);\n\n helper.c_ws('s_ltitle', detail);\n //helper.lStor('set', 's_ltitle', detail);\n //alert('Set cookie, rank: '+detail);\n //s.w_stopEvt(evt);\n};\nhelper.w_notificationTitle = function (evt) {\n // Track search result rank clicks\n // this refers to data set by another script on the funnelback search results page\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-notification-title'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-notification-title'), 1);\n\n //helper.c_wr('s_ntitle', detail);\n helper.lStor('set', 's_ntitle', detail);\n //alert('Set cookie, rank: '+detail);\n //s.w_stopEvt(evt);\n};\nhelper.w_notificationType = function (evt) {\n // Track search result rank clicks\n // this refers to data set by another script on the funnelback search results page\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-notification-type'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-notification-type'), 1);\n\n //helper.c_wr('s_ntype', detail);\n helper.lStor('set', 's_ntype', detail);\n //alert('Set cookie, rank: '+detail);\n //s.w_stopEvt(evt);\n};\nhelper.w_notificationLink = function (evt) {\n // Track search result rank clicks\n // this refers to data set by another script on the funnelback search results page\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-notification-linktitle'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-notification-linktitle'), 1);\n\n //helper.c_wr('s_nlink', detail);\n helper.lStor('set', 's_nlink', detail);\n //alert('Set cookie, rank: '+detail);\n //s.w_stopEvt(evt);\n};\n//Primary header\nhelper.w_primaryHeader = function (evt) {\n // Track primary header clicks \n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-primary-header'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-primary-header'), 1);\n helper.c_ws('s_ph', detail);\n};\n//Secondary header\nhelper.w_secondaryHeader = function (evt) {\n // Track secondary header clicks\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-secondary-header'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-secondary-header'), 1);\n helper.c_ws('s_sh', detail);\n};\n//Tertiary header\nhelper.w_tertiaryHeader = function (evt) {\n // Track tertiary header clicks\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-tertiary-header'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-tertiary-header'), 1);\n helper.c_ws('s_th', detail);\n};\n//Tab Tracking\nhelper.w_trackTab = function (evt) {\n // Track tab clicks\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-tab'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-tab'), 1);\n helper.c_ws('s_tab', detail);\n};\n//Quick Link Tracking\nhelper.w_trackQuickLinks = function (evt) {\n // Track quick link clicks\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-quick-links'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-quick-links'), 1);\n helper.c_ws('s_ql', detail);\n};\n//Card Tracking\nhelper.w_trackActionCards = function (evt) {\n // Track action card clicks\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-card'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-card'), 1);\n helper.c_ws('s_ca', detail);\n};\n//PRODUCT Tracking\nhelper.w_trackProducts = function (evt) {\n // Track product clicks\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-product'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-product'), 1);\n helper.c_ws('s_pr', detail);\n};\n//Action Tracking\nhelper.w_trackActions = function (evt) {\n // Track Action clicks\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-action'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-action'), 1);\n helper.c_ws('s_ac', detail);\n};
16\n//Slide Tracking\nhelper.w_trackSlides = function (evt) {\n // Track Slide clicks\n var eTarg = helper.w_getEvtTrgt(evt, 'data-analytics-slide'),\n detail = helper.lowerCase(eTarg && eTarg.getAttribute('data-analytics-slide'), 1);\n helper.c_ws('s_sl', detail);\n};\n\nhelper.w_trackInteractionEvents = function (evt, details){\n xdm = {};\n // s3.prop55 = '';\n // s3.eVar69 = '';\n var tSetupOptions = helper.lowerCase(helper.clean(details.setupOptions)) ||'';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop55','');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar69','');\n // add setupOptions \n if (tSetupOptions){\n //s3.eVar69 = tSetupOptions; \n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar69',tSetupOptions); \n };\n\n if (details.interactionDetails){\n var pdinteractionDetails = helper.lowerCase(helper.clean(details.interactionDetails));\n // s3.prop55 = pdinteractionDetails || '';\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop55',pdinteractionDetails || '');\t\t\n // s3.w_ltv = s3.w_ltv+',prop55';\n };\n if (details.pageInteractionsDetails){\n var pdinteractionDetails = helper.lowerCase(helper.clean(details.pageInteractionsDetails));\n // s3.prop55 = pdinteractionDetails || '';\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop55',pdinteractionDetails || '');\t\t\n // s3.w_ltv = s3.w_ltv+',prop55';\n };\n if(evt=='custom'){\n //?newFormName\n //?action\n //?type\n \n }else if(evt=='link'){\n // s3.events = 'event69';\n var eTarg = helper.w_getEvtTrgt(evt, 'link');\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event69',{ value: 1 });\n // s3.linkTrackEvents = s3.events;\n // s3.linkTrackVars = s3.w_ltv +',eVar54,prop54,events';\n // s3.prop54 = s3.eVar54 = evt + ':' + helper.lowerCase(details.pageInteractions);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar54',evt + ':' + helper.lowerCase(details.pageInteractions));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop54',evt + ':' + helper.lowerCase(details.pageInteractions));\n // s3.eVar6 = s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\t\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\t\n // s3.eVar1 = s3.prop1 = 'interaction:link';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','interaction:link');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','interaction:link');\t\n // s3.tl(true, 'o', evt); \n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', evt);\n helper.xdmPut(xdm,'web.webInteraction.type','other');\n helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1));\n \n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n } else if(evt=='download'){\n var eTarg = helper.w_getEvtTrgt(evt, 'download');\n // s3.events = 'event67';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event67',{ value: 1 });\n // s3.linkTrackEvents = s3.events;\n // s3.linkTrackVars = s3.w_ltv + ',eVar61,events';\n // s3.eVar61 = helper.lowerCase(details.pageInteractions);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar61',helper.lowerCase(details.pageInteractions));\n // s3.eVar6 = s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\t\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\t\t\n // s3.eVar1 = s3.prop1 = 'interaction:download';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','interaction:download');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','interaction:download');\t\n // s3.tl(true, 'd', evt);\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', evt);\n helper.xdmPut(xdm,'web.webInteraction.type','download');\n helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1));\n \n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n } else if (evt=='call'){\t\t\t\n var eTarg = helper.w_getEvtTrgt(evt, 'call');\n // s3.events = 'event61,event69';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event61',{ value: 1 });\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event69',{ value: 1 });\n // s3.linkTrackEvents = s3.events;\n // s3.linkTrackVars = s3.w_ltv + ',eVar54,prop54,eVar59,events';\n // s3.prop54 = s3.eVar54 = evt + ':' + helper.lowerCase(details.pageInteractions);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar54',evt + ':' + helper.lowerCase(details.pageInteractions));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop54',evt + ':' + helper.lowerCase(details.pageInteractions));\t\t\n // s3.eVar59 = details;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar59',details);\t\t\n // s3.eVar6 = s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\t\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\t\t\t\n // s3.eVar1 = s3.prop1 = 'interaction:call';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','interaction:call');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','interaction:call');\t\n // s3.tl(true, 'o', evt);\t\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', evt);\n helper.xdmPut(xdm,'web.webInteraction.type','other');\n helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1));\n \n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n } else if (evt=='exit'){\t\t\t\t\n var eTarg = helper.w_getEvtTrgt(evt, 'exit');\n // s3.linkTrackEvents = s3.events = '';\n // s3.linkTrackVars = s3.w_ltv +',eVar54,prop54,events';\n // s3.prop54 = s3.eVar54 = evt + ':' + helper.lowerCase(details.pageInteractions);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar54',evt + ':' + helper.lowerCase(details.pageInteractions));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop54',evt + ':' + helper.lowerCase(details.pageInteractions));\t\t\n // s3.eVar6 = s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\t\t\t\t\t\n // s3.eVar1 = s3.prop1 = 'interaction:exit';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','interaction:exit');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','interaction:exit');\t\n // s3.tl(true, 'e', helper.lowerCase(details.pageInteractions));\t\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', helper.lowerCase(details.pageInteractions));\n helper.xdmPut(xdm,'web.webInteraction.type','exit');\n helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1));\n \n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\t\t\n } else if (evt=='button'){\t\n var eTarg = helper.w_getEvtTrgt(evt, 'button');\n // s3.events = 'event69';\t\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event69',{ value: 1 });\t\t\n // s3.linkTrackEvents = s3.events;\n // s3.linkTrackVars = s3.w_ltv +',eVar54,prop54,events';\t\n // s3.prop54 = s3.eVar54 = evt + ':' + helper.lowerCase(details.pageInteractions);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar54',evt + ':' + helper.lowerCase(details.pageInteractions));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop54',evt + ':' + helper.lowerCase(details.pageInteractions));\t\t\n // s3.eVar6 = s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\t\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\t\t\t\t\t\t\n // s3.eVar1 = s3.prop1 = 'interaction:button';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','interaction:button');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','interaction:button');\t\n // s3.tl(true, 'o', evt);\t\t\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', evt);\n helper.xdmPut(xdm,'web.webInteraction.type','other');\n helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1));\n \n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\t\n } else if (evt=='pidexit'){\t\t\n var eTarg = helper.w_getEvtTrgt(evt, 'pidexit');\t\t\n // s3.events = 'event12';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event12',{ value: 1 });\t\t\n // s3.linkTrackEvents = s3.events;\n // s3.linkTrackVars = s3.w_ltv +',eVar22,eVar54,prop54,events';\n helper.eVar22 = helper.lowerCase(details.internalCampaignClicked);\t\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar22',helper.lowerCase(details.internalCampaignClicked));\t\n // s3.prop54 = s3.eVar54 = evt + ':' + helper.lowerCase(details.pageInteractions);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar54',evt + ':' + helper.lowerCase(details.pageInteractions));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop54',evt + ':' + helper.lowerCase(details.pageInteractions));\t\t\n // s3.eVar6 = s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\t\t\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\t\t\t\t\t\t\n // s3.eVar1 = s3.prop1 = 'interaction:pidexit';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','interaction:pidexit');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','interaction:pidexit');\t\n // s3.tl(true, 'e', helper.lowerCase(details.pageInteractions));\t\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', helper.lowerCase(details.pageInteractions));\n helper.xdmPut(xdm,'web.webInteraction.type','exit');\n helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1));\n \n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n }\n // s3.w_endTrcking();\n return true;\t\n};\nhelper.w_trackInteraction = function (evt, args) {\n //console.log('w_trackInteraction: Start');\n xdm = {};\n var argsObj = args || {};\n argsObj.stopDefault = true;\n eTarg = helper.w_getEvtTrgt(evt, argsObj.detail ? 'href' : 'data-tracking-link'),\n detail = helper.clean(decodeURIComponent(helper.lowerCase(argsObj.detail || (eTarg && eTarg.getAttribute('data-tracking-link')), 1))); // tracks details from object passed or event target with data-analytics-link attribute\n\n if (detail === 'download') {\n helper.w_trackLink(evt,'download'); // Some downloads in OTP are tagged directly as a 'download' (button tags etc. instead of a href)\n return;\n }\n\n if (argsObj.stopDefault) {\n // dont stop default event unless specified\n //console.log('stopDefault()');\n helper.w_stopEvt(evt);\n }\n // s3 = s3_gi(s3_account);\n //s.events = 'event69';\n // s3.linkTrackEvents = s3.events = 'event69';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event69',{ value: 1 });\t\t\n //s.linkTrackVars='prop15,prop69,eVar54,prop54,events';\n // s3.linkTrackVars = s3.w_ltv + ',eVar54,prop54,events';\n // s3.prop54 = s3.eVar54 = detail;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar54',detail);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop54',detail);\t\t\n // s3.eVar6 = s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\t\t\n // s3.eVar1 = s3.prop1 = 'interaction';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','interaction');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','interaction');\t\t\n // s3.tl(eTarg || true, 'o', 'interaction:' + detail); // 'eTarg' assumes this function only called from link clicks\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', 'interaction:' + detail);\n helper.xdmPut(xdm,'web.webInteraction.type','other');\n helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1));\n\n alloy(\"sendEvent\", {\n \"xdm\": xdm//,\n //\"data\": data\n }).then(function(result) {\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n }); \n helper.setTimeoutLink(eTarg)\n // s3.w_endTrcking();\n}\nhelper.w_trackToolInteraction = function (evt, args) {\n // this function is called directly by L
16aunch\n // s3.w_trackToolInteraction('interact',pageDetails);\n var xdm ={},\n eTarg = helper.w_getEvtTrgt(evt),\n //events ='event70',\n //analyticsVar =',eVar54,prop54',\n tCToolsDetails ='',\n tCToolsName = '',\n tNotSet = '(not set)',\n argsObj = args || {},\n tCalculatorName = helper.lowerCase(argsObj.calculatorName), \n tCalculatorType = helper.lowerCase(argsObj.calculatorType),\n tPageStep = helper.lowerCase(argsObj.pageAction||argsObj.pageStep)||'',\n //tPageAction = argsObj.pageAction||'',\n tPageType = argsObj.pageType||'',\n tType = argsObj.calculatorType || tNotSet,\n tAmount = argsObj.transactionAmount || tNotSet,\n pSelected = argsObj.prodSelected || tNotSet,\n getRangeAvg = helper.amntBnds('transactions', tAmount),\n amntRange = getRangeAvg.range,\n tFormName = helper.lowerCase(argsObj.newFormName||argsObj.formName)||'',\n tFormFieldObj = argsObj.toolInputs,\n tToolsName = argsObj.toolsName||'',\n tToolsDetails = argsObj.toolsDetail ||'',\n tSetupOptions = helper.lowerCase(argsObj.setupOptions) ||'',\n tPageProperty = helper.lowerCase(argsObj.pageProperty) ||'',\n tToolOutcome = helper.lowerCase(argsObj.toolOutcome) ||'',\n tToolEvent = helper.lowerCase(argsObj.toolEvent)||'',\n tToolLoc = helper.lowerCase(argsObj.toolLocation)||'',\n tEnqLoc = helper.lowerCase(argsObj.enquiryLocation)||'',\n tTransactionId = helper.lowerCase(argsObj.appReference || argsObj.transactionID) ||''\n ; // details passed from LivePerson rule\n \n helper.xdmPut(xdm,'_experience.analytics.event1to100.event70',{ value: 1 });\n \n if (tPageType == 'enquiry'){\n if (tPageStep === 'start'){\n //events = events + ',event28';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event28',{ value: 1 });\n }else if (tPageStep === 'complete'){\n //events = ',event29';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event29',{ value: 1 });\n /*if(tTransactionId){\n analyticsVar = analyticsVar + ',transactionID'; //TODO\n //console.log('tSetupOptions:'+ 'setup test' + 'analyticsVar' + analyticsVar );\n }*/\n }\n\n } else { //tools & calculator\n /*if (tToolEvent ==='toolInteraction'){\n events = 'event70';\n }else if (tToolEvent ==='toolResult'){\n events = 'event70,event68';\n }else if (tPageAction ==='interact'){\n events = 'event70';\n }else */\n if (tPageStep === 'result'){\n //events = events + ',event68';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event68',{ value: 1 });\n }\n }\n\n //helper.evList = events;\n //s3.linkTrackEvents = (events.replace(/\\:.*/,'')); //TODO\n\n //console.log('tPageProperty:'+ tPageProperty + '::tSetupOptions:'+tSetupOptions);\n /*if(tPageProperty){\n analyticsVar = analyticsVar + ',prop22';\n }\n if(tSetupOptions){\n analyticsVar = analyticsVar + ',eVar69';\n //console.log('tSetupOptions:'+ 'setup test' + 'analyticsVar' + analyticsVar );\n }*/\n\n if (tPageType == 'enquiry'){\n\n //console.log('enquiry:');\n //analyticsVar = analyticsVar + ',eVar23,prop23';\n //s3.linkTrackVars = s3.w_ltv + '' + analyticsVar +',eVar23,prop23,events';\n var eVP23 = helper.lowerCase(pageDetails.siteBrand)+':' +helper.lowerCase(pageDetails.siteName)+ ':enq:'+(tFormName||tNotSet);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar23',eVP23);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop23', eVP23); \n }else{\n //console.log('tToolsDetails:');\n //analyticsVar = analyticsVar + ',eVar62,eVar63';\n if (tCalculatorType && tCalculatorName) {\n var calcInfo = helper.setInteractionVars(pageDetails),\n calcDet = calcInfo.calculatorDetails||'',\n calcName = calcInfo.calculatorName||'';\n tCToolsName = calcName || tNotSet;\n if(calcDet){\n tCToolsDetails = calcDet;\n }\n }\n \n //console.log('tToolsDetails:'+ tToolsDetails + '::tCToolsDetails:'+tCToolsDetails);\n \n /*if(tFormFieldObj){\n // console.log('tFormFieldObj:'+ tFormFieldObj);\n analyticsVar = analyticsVar + ',eVar83';\n }\n if (tPageStep === 'result'){\n analyticsVar = analyticsVar + ',eVar78';\n }
16*/\n\n //s3.linkTrackVars = s3.w_ltv + '' + analyticsVar +',events';\n if (tCalculatorType && tCalculatorName) {\n var calcInfo = helper.setInteractionVars(pageDetails),\n calcDet = calcInfo.calculatorDetails||'',\n calcName = calcInfo.calculatorName||'';\n tCToolsName = calcName || tNotSet;\n if(calcDet){\n tCToolsDetails = calcDet;\n }\n }\n // console.log('tToolsName:'+ tToolsName + '::tCToolsName:'+tCToolsName);\n if(tToolsName || tCToolsName){\n //s3.eVar62 = tToolsName || tCToolsName;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar62', tToolsName || tCToolsName);\n }else{\n //s3.eVar62 = tFormName || tNotSet;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar62', tFormName || tNotSet);\n };\n \n //console.log('tToolsDetails:'+ tToolsDetails + '::tCToolsDetails:'+tCToolsDetails);\n if(tToolsDetails || tCToolsDetails){\n //s3.eVar63 = tToolsDetails || tCToolsDetails;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar63', tToolsDetails || tCToolsDetails);\n }
16else{\n //s3.eVar63 = 'tool:' + tType + '|' + 'product:' + pSelected + '|' + amntRange;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar63', 'tool:' + tType + '|' + 'product:' + pSelected + '|' + amntRange );\n };\n if(tFormFieldObj){\n //console.log('tFormFieldObj:'+ tFormFieldObj);\n //s3.eVar83 = helper.setFormFieldVar(tPageType, '', tFormFieldObj);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar83', helper.setFormFieldVar(tPageType, '', tFormFieldObj));\n }\n if (tPageStep === 'result'){\n //s3.eVar78 = tToolOutcome;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar78',tToolOutcome);\n }\n }\n //console.log('linkTrackVars:'+ s3.linkTrackVars + '\\n::w_ltv:'+s3.w_ltv);\n //s3.eVar6 = s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n var eVP6 = helper.lowerCase(pageDetails.siteBrand);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6', eVP6);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6', eVP6);\n //s3.eVar1 = s3.prop1 = helper.lowerCase(pageDetails.siteName);\n var eVP1 = helper.lowerCase(pageDetails.siteName);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1', eVP1);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1', eVP1);\n\n if(tTransactionId){\n //s3.transactionID = 'enq_' + pageDetails.transactionID;\n helper.xdmPut(xdm,'commerce.order.payments[0].transactionID','enq_' + pageDetails.transactionID);\n }\n // console.log('tPageProperty:'+ tPageProperty + '::tSetupOptions:'+tSetupOptions);\n if(tPageProperty){\n //s3.prop22 = tPageProperty;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop22', tPageProperty);\n }\n if(tSetupOptions){\n //s3.eVar69 = tSetupOptions;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar69',tSetupOptions);\n }\n // console.log('tanalyticsVar:'+ analyticsVar+ '::tSetupOptions:'+tSetupOptions);\n //s3.eVar54 = 'toolInteraction:' + tPageType+':'+tToolEvent+(tPageStep||evt);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar54','toolInteraction:' + tPageType+':'+tToolEvent+(tPageStep||evt));\n //s3.prop54 = 'toolInteraction:loc:'+ ((tToolLoc||tEnqLoc)||tNotSet);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop54', 'toolInteraction:loc:'+ ((tToolLoc||tEnqLoc)||tNotSet));\n //s3.tl(eTarg || true, 'o', 'interaction:tool:'+ ((tToolEvent||evt)||'') ); // (eTarg||true) allows this function to be called from script or link clicks\n //s3.w_endTrckng();\n //console.log('w_trackToolInteraction');\n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //helper.w_endTrcking();\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n};\n//console.log('After helper.w_trackInteraction');\nhelper.linkDownloadFileTypes = \"exe,zip,wav,mp3,mov,mpg,avi,wmv,pdf,doc,docx,xls,xlsx,ppt,pptx\"\n\nhelper.linkInternalFilters = \"javascript:,tel:,mailto:,movingtoaustralia.westpac.asia,westpac.com.au,movingtoaustralia.westpac.co.nz,movingtoaustralia.westpac.co.uk,\" + helper.getLoc().hostname\n\n// link tracking handler\nhelper.w_linkTracking = function (evt) {\n //console.log('w_linkTracking:Start')\n var target = helper.w_getEvtTrgt(evt, 'href'),\n linkRegexInternal = new RegExp(helper.linkInternalFilters.replace(/^,|,$/g, '').replace(/,/g, '|'), 'i'),\n linkRegexDownload = new RegExp('\\\\.(?:' + helper.linkDownloadFileTypes.replace(/,/g, '|') + ')(?:\\\\?|$)', 'i'),\n linkRegexSocial = (/(?:\\/\\/|\\.)(?:youtube|facebook|twitter|linkedin|plus\\.google)\\.com/i), // need to confirm list. required to fire event71 if social exit link\n linkRegexAppStoreCampaigns =/(apps\\.apple|play\\.google)\\.com(.*)(\\&|\\?)(cid\\=|pid\\=|ttid\\=)/i,\n dataAnalyticsLink;\n\n //console.log('linkRegexDownload = ' + linkRegexDownload);\n\n // set custom object IDs for clickmap\n // only apply link handlers etc. if trackInlineStats is true\n //if(s.trackInlineStats){\n //\ts.setOIDs(); // this probably should only be set once after window load, else link IDs generated every click on page...\n //}\n\n if (target.nodeName === 'A') {\n // set nav area in cookie\n helper.w_getNavMenuId(evt);\n /*\n helper.w_getNavMenuId1(evt);\n helper.w_getNavMenuId2(evt);\n helper.w_getNavMenuId3(evt);\n helper.w_getNavMenuId4(evt);\n helper.w_getNavMenuId5(evt);\n helper.w_getNavMenuId6(evt);\n helper.w_getNavMenuId7(evt);\n helper.w_getNavMenuId8(evt);\n helper.w_getNavMenuId9(evt);\n */\n // looking for the given data-attribute and map its value in the given cookie.\n helper.navMenuIdAttrMap = [\n ['data-analytics-secondary-header', 's_sh'],\n ['data-analytics-tab', 's_tab'],\n ['data-analytics-quick-links', 's_ql'],\n ['data-analytics-card', 's_ca'],\n ['data-analytics-product', 's_pr'],\n ['data-analytics-action', 's_ac'],\n ['data-analytics-slide', 's_sl'],\n ['data-analytics-primary-header', 's_ph'],\n ['data-analytics-tertiary-header', 's_th']\n ];\n // Map of attribute -> cookie name previously handled by w_getNavMenuId1..9 \n for (var i = 0; i < helper.navMenuIdAttrMap.length;
16 i++) {\n helper.w_getNavMenuIdByAttr(evt, helper.navMenuIdAttrMap[i][0], helper.navMenuIdAttrMap[i][1]);\n } \n // social link handling (social link event)\n if ((!linkRegexInternal.test(target.href)) && (linkRegexSocial.test(target.href))) {\n helper.w_trackLink(evt,'social');\n }\n // exit link with campaign handling\n if (linkRegexAppStoreCampaigns.test(target.href)) {\n helper.w_trackLink(evt,'exitCampaign');\n }\n // exit link handling\n if (target.href && (!linkRegexInternal.test(target.href)) && (!linkRegexSocial.test(target.href))) {\n helper.w_trackLink(evt,'exit');\n }\n // download link handling. data-analytics-link attribute used in OTP to define some download links/buttons\n if (linkRegexDownload.test(target.href)) {\n helper.w_trackLink(evt,'download');\n }// site search results link tracking\n if (target.getAttribute('data-analytics-rank')) { // && /.+/.test(target.getAttribute('data-analytics-rank'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_trackRank(evt);\n }\n if (target.getAttribute('data-analytics-search-searchsource')) { // && /.+/.test(target.getAttribute('data-analytics-rank'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_searchLoc(evt);\n }\n if (target.getAttribute('data-analytics-search-kw')) { // && /.+/.test(target.getAttribute('data-analytics-rank'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_searchKeyWords(evt);\n }\n if (target.getAttribute('data-analytics-search-type')) { // && /.+/.test(target.getAttribute('data-analytics-rank'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_searchType(evt);\n }\n if (target.getAttribute('data-analytics-search-cat')) { // && /.+/.test(target.getAttribute('data-analytics-rank'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_searchCat(evt);\n }\n if (target.getAttribute('data-analytics-search-title')) { // && /.+/.test(target.getAttribute('data-analytics-rank'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_searchTitle(evt);\n }\n if (target.getAttribute('data-analytics-notification-title')) { // && /.+/.test(target.getAttribute('data-analytics-rank'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_notificationTitle(evt);\n }\n if (target.getAttribute('data-analytics-notification-type')) { // && /.+/.test(target.getAttribute('data-analytics-rank'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_notificationType(evt);\n }\n if (target.getAttribute('data-analytics-notification-linktitle')) { // && /.+/.test(target.getAttribute('data-analytics-rank'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_notificationLink(evt);\n }\n if (target.getAttribute('data-analytics-download')) { // && /.+/.test(target.getAttribute('data-analytics-rank'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_trackLink(evt,'custdownload');\n }\n // Primary Header \n if (target.getAttribute('data-analytics-primary-header')) { // && /.+/.test(target.getAttribute('data-analytics-primary-header'))) { // previously in selenium tw
16o commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_primaryHeader(evt);\n }\n // Secondary Header \n if (target.getAttribute('data-analytics-secondary-header')) { // && /.+/.test(target.getAttribute('data-analytics-secondary-header'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_secondaryHeader(evt);\n }\n // Tertiary Header \n if (target.getAttribute('data-analytics-tertiary-header')) { // && /.+/.test(target.getAttribute('data-analytics-tertiary-header'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_tertiaryHeader(evt);\n }\n // Track Tab \n if (target.getAttribute('data-analytics-tab')) { // && /.+/.test(target.getAttribute('data-analytics-tab'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_trackTab(evt);\n }\n // Track Quick Links \n if (target.getAttribute('data-analytics-quick-links')) { // && /.+/.test(target.getAttribute('data-analytics-quick-links'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_trackQuickLinks(evt);\n }\n // Track Action Card Links \n if (target.getAttribute('data-analytics-card')) { // && /.+/.test(target.getAttribute('data-analytics-card'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_trackActionCards(evt);\n }\n // Track product\n if (target.getAttribute('data-analytics-product')) { // && /.+/.test(target.getAttribute('data-analytics-product'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_trackProducts(evt);\n }\n // Track Action \n if (target.getAttribute('data-analytics-card')) { // && /.+/.test(target.getAttribute('data-analytics-card'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_trackActionCards(evt);\n }\n // Track Slide \n if (target.getAttribute('data-analytics-slide')) { // && /.+/.test(target.getAttribute('data-analytics-slide'))) { // previously in selenium two commands were required to capture the rank and click-past. The listener now captures the details in the first click\n helper.w_trackSlide(evt);\n }\n // mailto: links?\n if (/^mailto:/i.test(target.href)) {\n target.setAttribute('data-tracking-link', 'email:' + decodeURI(target.href.replace(/^mailto:/i, '').replace(/((?:&|\\?)body=.*?(?=&|$))/ig, ''))); // added .replace(/^mailto:/i,'')\n //ABU tpo FIX: s3.w_trackInteraction(evt);\n }\n\n // Print link on branch detail page has class=print\n //if (target.getAttribute('data-analytics-link')) { // && /.+/.test(target.getAttribute('data-analytics-rank'))) {\n dataAnalyticsLink = target.getAttribute('data-tracking-link');\n //console.log('dataAnalyticsLink = ' + dataAnalyticsLink);\n if (dataAnalyticsLink) { // && /.+/.test(target.getAttribute('data-analytics-rank'))) {\n if (!linkRegexDownload.test(target.href)) { // only if hasn't already been matched by linkRegexDownload regex above (OTP downloads may use data-attrs instead)\n helper.w_trackInteraction(evt);\n\n if (/^trackonce:/i.test(dataAnalyticsLink)) { // if the link name (data-analytics-link attribute value) starts with 'trackonce:', only track once, then remove the value to prevent subsequent click tracking\n target.setAttribute('data-tracking-link', '');\n }\n }\n }\n // tel: links\n if (/^tel:/i.test(target.href)) {\n helper.w_trackLink(evt,'call');\n }\n\n // automatic banner dismiss auto-tracking. function for manual dismiss tracking available\n // this probably requires more than just className selection? may need to be by data-attribute?\n /*\n target = s.w_altGetElemsByClassName(
16doc.body,'A','pid-dismiss');\n //s.w_addHandler(target[lp],'click',function(evt){s.w_trackBannerDismiss(evt,'text',true)});\n s.w_addHandler(target[lp],'click',s.w_trackBannerDismiss);\n */\n\n }\n\n // update time with every click\n if (!window.performance) {\n helper.c_w('navt', + new Date(), new Date(+new Date() + 30000)); // cookie updated every click and only lasts for 30 seconds\n }\n xdm ={}; //rest the xdm for SPA\n};\nhelper.prepareIdentity = function(xdm){\n delete xdm.identityMap;\n if (helper.cookieRead(\"s_stg_ti\") || helper.cookieRead(\"s_bsa_ti\") || helper.cookieRead(\"s_bsa_ti\")){\n helper.xdmPut(xdm,'identityMap.compass[]', \n {\n \"id\": helper.cookieRead(\"s_stg_ti\") || helper.cookieRead(\"s_bsa_ti\") || helper.cookieRead(\"s_bsa_ti\"),\n \"authenticatedState\": helper.authState(helper.cookieRead(\"s_bom_auth\")||helper.cookieRead(\"s_stg_auth\")||helper.cookieRead(\"s_stg_auth\")), \n \"primary\": false\n });\n }\n if (helper.cookieRead(\"s_biz_auth\")!='' && helper.cookieRead(\"s_biz-ti\")){\n helper.xdmPut(xdm,'identityMap.bizid[]', \n {\n \"id\": helper.cookieRead(\"s_biz-ti\"),\n \"authenticatedState\": helper.authState(helper.cookieRead(\"s_biz_auth\")), \n \"primary\": false //true for PROD\n });\n helper.xdmPut(xdm,'identityMap.businessTrackingId[]', \n {\n \"id\": helper.cookieRead(\"s_biz-ti\"),\n \"authenticatedState\": helper.authState(helper.cookieRead(\"s_biz_auth\")), \n \"primary\": true\n });\n\n } else if (helper.cookieRead(\"s_wbc-ti\")){\n helper.xdmPut(xdm,'identityMap.wbcid[]', \n {\n \"id\": helper.cookieRead(\"s_wbc-ti\"),\n \"authenticatedState\": helper.authState(helper.cookieRead(\"s_wbc_auth\")), \n \"primary\": false //true for PROD\n });\n helper.xdmPut(xdm,'identityMap.customerTrackingId[]', \n {\n \"id\": helper.cookieRead(\"s_wbc-ti\"),\n \"authenticatedState\": helper.authState(helper.cookieRead(\"s_wbc_auth\")), \n \"primary\": true\n });\n }\n\n /* FPID */\n if (helper.cookieRead(\"fpid\")){\n helper.xdmPut(xdm,'identityMap.FPID[]', \n {\n \"id\": helper.cookieRead(\"fpid\"),\n \"authenticatedState\": \"ambiguous\", \n \"primary\": helper.cookieRead(\"s_wbc-ti\") ? false: true\n });\n helper.xdmPut(xdm,'_wbg.fpid',helper.cookieRead(\"fpid\"));\n }\n /* ECID */\n if (helper.marketingCloudVisitorID()){\n helper.xdmPut(xdm,'identityMap.ECID[]', \n {\n \"id\": helper.marketingCloudVisitorID(),\n \"authenticatedState\": \"ambiguous\", \n \"primary\": helper.cookieRead(\"fpid\")? false : true\n });\n }\n //return true;\n return xdm;\n}\n\n/******** PROD overrides ********/\n var aa_account =\"wbg-banking-dev\";\n var edgeConfigId = \"483accd4-84ad-43f4-83ee-363337a6ea56\"; //Dev SandBox\n var digital ={};\n helper.config = ((window[window['WBGAnalyticsObject']] || {}).config) || {}; // leave this name as string to prevent renaming in obfuscation. do not change. confirm name if obfuscated twice.\n\thelper.w_wtT = window.testTracking || {};\n\thelper.w_prod = (/^(?:www|banking|forms|online|businessonline|search|hlc1|locator)\\.westpac\\.com\\.au$/i).test(location.hostname) || ((/^gs.{8}net\\.westpac\\.com\\.au$/i).test(location.hostname) && (/RM\\/emulationbanking\\b/i).test(location.pathname)) || helper.config.prod; // with emulation mode details, regex excludes SIT SameView hostname\n\thelper.w_isProd = helper.config.findProd; \n\tif(helper.w_isProd){\n\t\thelper.w_prod = (/^prod$/i).test(pageDetails.siteEnv);\n\t}\n\tif (helper.w_prod) {\n\t\taa_account =\"wbg-banking-prd\";\n edgeConfigId = \"5f703289-e084-4bed-a9ef-3c826d00296a\"; //PRD SandBox \n\t\t//s3.sa(aa_account);\n\t} /* else if ((/^uat$/i).test(pageDetails.siteEnv)){\n edgeConfigId = \"d44232c0-a482-4633-9843-de7e7bc8a59b\"; //UAT SandBox \n } */\n\t//s3.w_log('VisitorID.config',visitorConfig)\n\tvar customVisitorID = helper.getQueryParam('MCMID', '', helper.getLoc().href) || helper.cookieRead('MCMID')\n\t//s3.visitor=Visitor.getInstance(\"3A4B7BAF56F01DA67F000101@AdobeOrg\")\n\n/******** END PROD overrides ********/\n\n helper.w_config = function(){\n var s_aVersion = helper.cookieRead('s_aver');\n \n alloy(\"getLibraryInfo\").then(function(result) {\n if(s_aVersion != result.libraryInfo.version){\n //console.log(s_aVersion + '= not same =' + result.libraryInfo.version)\n helper.cookieWrite('s_aver', result.libraryInfo.version)\n }\n });\n }\n/*\nalloy(\"configure\", {\n \"edgeConfigId\": \"3673b35c-c734
16-4bd4-b00e-45a53f9952c5\",\n \"orgId\":\"ADB3LETTERSANDNUMBERS@AdobeOrg\",\n \"debugEnabled\":false,\n \"edgeDomain\": \"edge.westpac.com.au\",\n \"edgeBasePath\":\"ee\",\n \"clickCollectionEnabled\":true,\n \"onBeforeEventSend\":\"callBack\",\n \"cookieDestinationsEnabled\":true,\n \"urlDestinationsEnabled\":true,\n \"idMigrationEnabled\":true,\n \"thirdPartyCookiesEnabled\":true\n});*/\nhelper.w_config(); //configure once\n\nhelper.w_trackPage = async function (details) {\n var referenceObj = details || window.pageDetails,\n lastPredictedPageName = helper.c_r('lppn'),\n currPredictedPageName,\n detailsCopy,\n dcPageName,\n payload = {}, \n xdm ={},\n digital ={}; //resatting all values for SPA\n \n // remove this property in case it was set manually. This is for internal code logic only\n delete referenceObj._drop;\n\n if (referenceObj.originNameKeyDrop) {\n helper.lStor('set', 'appmeasurement_nameKeyDrop', referenceObj.originNameKeyDrop);\n }\n if (referenceObj.originPageNameReplace) {\n helper.lStor('set', 'appmeasurement_pageNameReplace', referenceObj.originPageNameReplace);\n }\n if (referenceObj.originProductsReplace) {\n helper.lStor('set', 'appmeasurement_productsReplace', referenceObj.originProductsReplace);\n }\n\n helper.w_pgTrkStatus = referenceObj.s_abort ? 'blocked' : 'started'; // any new impressions passed should now be associated with this page if not being dropped\n\n // make object copy for async pageDetails delayed tracking (can't operate async on a single object)\n //detailsCopy = JSON.parse(JSON.stringify(details));\n detailsCopy = helper.cloneObject(referenceObj);\n\n // after object passed has been copied, clear window.pageDetails ready for new values\n if (/true/i.test(detailsCopy.reset)) {\n pageDetails = {};\n digital = {};\n }\n\n // Always remove these page/screen specific properties from any reference object so they doesn't persist to any subsequent pages/screens if the whole context is used in the next screen/dialog in fiserv OTP code\n // s_ override keys may also need to be removed if set and persisted by single page apps etc.\n delete referenceObj.trackAsLink;\n delete referenceObj.s_linkType;\n delete referenceObj.trackOnce;\n delete referenceObj.s_abort;\n delete referenceObj.addEvents;\n delete referenceObj.sendDelay;\n\n // initialise siteID for consistent getPageName prediction below. Real site ID determined in doPlugins\n helper.siteID = false; //Abu to review\n\n // Predict expected pageName for dupe/trackOnce to decide whether to keep or ignore new impressions being passed\n dcPageName = detailsCopy.pageName || '0';\n // change any details async (in order of calls)\n helper.w_changeIf(detailsCopy);\n /*console.log('detailsCopy.s_pageName: ' + detailsCopy.s_pageName +'\\n')\n console.log('detailsCopy.newFormName: ' + detailsCopy.newFormName +'\\n')\n console.log('dcPageName: ' + dcPageName +'\\n')\n console.log('detailsCopy.transactionType: ' + detailsCopy.transactionType +'\\n')\n console.log('detailsCopy.pageName: ' + detailsCopy.pageName +'\\n')*/\n\n\n //currPredictedPageName = (detailsCopy.s_pageName || \n // (detailsCopy.newFormName ? detailsCopy.newFormName + (detailsCopy.pageType || '0') + dcPageName : (detailsCopy.transactionType ? detailsCopy.transactionType + dcPageName : (detailsCopy.subSite || '0') + (detailsCopy.pageName ? (detailsCopy.pageNamePrefixes || '0') + dcPageName : decodeURIComponent(helper.getPageName(helper.pageURL)))))) + \n // (detailsCopy.pageType || '0') + (detailsCopy.dialogTitle || '0') + (detailsCopy.itemName || '0') + (detailsCopy.pageNameReplace || '0'); // replace undefined's with '0' to shorten value\n \n currPredictedPageName= (detailsCopy.s_pageName || '0') + \n (detailsCopy.newFormName ? detailsCopy.newFormName : '0') +\n (detailsCopy.pageType || '0') + \n (detailsCopy.pageName ? ((detailsCopy.pageNamePrefixes || '0') + dcPageName) : decodeURIComponent(helper.getPageName(helper.pageURL))) +\n (detailsCopy.pageType || '0') + (detailsCopy.dialogTitle || '0') + (detailsCopy.pageNameReplace || '0');
16\n detailsCopy._nameKey = ((detailsCopy.pageKey || '0') + (detailsCopy.experience || '0') + currPredictedPageName).replace(/,/g, '_'); // replace commas with underscore (stored drop string is comma separated)\n \n // reset trackOnce data to allow SPA pages to be sent again\n if (/reset/i.test(detailsCopy.trackOnce)) {\n helper.w_trackedPages = 0;\n }\n\n //console.log('detailsCopy._nameKey '+ detailsCopy._nameKey +'\\n')\n //console.log('lastPredictedPageName '+lastPredictedPageName +'\\n')\n //console.log('currPredictedPageName ' +currPredictedPageName +'\\n')\n //console.log('pre_currPredictedPageName '+ helper.w_pageTracked('pre_' + currPredictedPageName))\n //console.log('logic 0: detailsCopy.s_abort ' + /true/i.test(detailsCopy.s_abort)) \n //console.log('logic 1 :' +((/true/i.test(detailsCopy.trackDedupe) && lastPredictedPageName === currPredictedPageName)))\n //console.log('logic 2 :' +((/true/i.test(detailsCopy.trackOnce) && helper.w_pageTracked('pre_' + currPredictedPageName))))\n //console.log('logic 3 :' +(helper.w_globalDrop(detailsCopy)))\n \n if (/true/i.test(detailsCopy.s_abort) || ((/true/i.test(detailsCopy.trackDedupe) && lastPredictedPageName === currPredictedPageName)) || ((/true/i.test(detailsCopy.trackOnce) && lastPredictedPageName === currPredictedPageName)) || helper.w_globalDrop(detailsCopy)) {\n console.log('(logic 0 || logic 1 || logic 2 || logic 3) == true')\n //if (detailsCopy.s_abort || ((/true/i.test(detailsCopy.trackDedupe) && lastPredictedPageName === currPredictedPageName) || ((/true/i.test(detailsCopy.trackOnce) && s3.w_pageTracked('pre_' + currPredictedPageName)) || globalDrop))) {\n // stop trackDedupe and trackOnce calls from collecting impressions\n //trackingToBeSent = 0;\n // allow trackDedupe calls to continue tracking process until accurate dedupe name is determined in doPlugins\n detailsCopy._drop = 1;\n helper.w_pgTrkStatus = 'blocked'; // don't collect banners for pages being aborted or meeting trackDedupe/trackOnce rules\n } else {\t\n // set 'Last Predicted PageName' to current name being sent, to compare next call\n helper.c_ws('lppn', currPredictedPageName, new Date(+new Date() + (30 * 60 * 1000))); // keep last page name in cookie for 24 hours for impressions etc.\n }\n\n //console.log('helper.w_trackPage pageDetails');\n //console.log(detailsCopy);\n\n //console.log('detailsCopy.s_abort: '+detailsCopy.s_abort + ' detailsCopy._drop :' + detailsCopy._drop);\n\n if (detailsCopy.s_abort || detailsCopy._drop) {\n\t\tconsole.log('_drop: true')\n\t} else {\n payload = await helper.preparePayload (detailsCopy);\n helper.w_collectStoredData(payload.customXDM);\n helper.w_pgTrkStatus = 'sent'; // ok to start collecting banners for this page\n //helper.w_perfTracked = true; // prevent from re-running\n helper.w_queue.push(detailsCopy);\n //console.log(\"sendEvent:\");\n //console.log( payload); \n helper.payload = payload;\n //helper.lStor('set','payloadSend', payload);\n\n //window.testTracking.setText(document.getElementById('test-contextdata-details'),\n // jsl.format.formatJson(JSON.stringify(payload)));\n var sConsent = helper.cookieRead('s_consent')||'',\n sPersonalization = true;\n if(sConsent){\n if (/\\|p:n\\|/i.test(sConsent)){\n sPersonalization = false; \n } \n }\n\n alloy(\"sendEvent\", {\n // \"documentUnloading\": true,\n \"xdm\": payload.customXDM,\n \"data\": payload.customData,\n \"renderDecisions\": sPersonalization,\n \"personalization\": { \n \"defaultPersonalizationEnabled\": sPersonalization\n }\n // \"edgeConfigOverrides\" : {\n // \"com_adobe_analytics\" : {\n // \"reportSuites\" : [\n // \"wbg-banking-prd\"\n // ]\n // }\n // }\n }).then(function(result) { \n /*helper.w_log('alloy_pageName', helper.pageName);\n helper.w_log('alloy_pageDetails', JSON.stringify(detailsCopy, null, 4).replace(/\\\\u([\\w\\d]{4})/g, '%u$1'));\n helper.w_log('alloy_payload', JSON.stringify(helper.payload, null, 4).replace(/\\\\u([\\w\\d]{4})/g, '%u$1') );\n if(testTracking){\n window.renderPayload( helper.payload.customData, helper.payload.customXDM);\n }*/\n\n if (/^undefined$/i.test(helper.pageName)){\n //page name not set yet\n }
16else{\n helper.c_ws('lastPage', helper.pageName, new Date(+new Date() + (24 * 60 * 60 * 1000))); \n }\n // Tracking the event succeeded.\n //console.log(\"AfterSendContext:\");\n //console.log(result);\n helper.trackImprs();\n //helper.w_endTrcking(payload);\n helper.w_endTrcking();\n //store data\n\n //reset data\n helper.lStor('set', 's_ev', 'reset');\n })\n .catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n }\n\n}\n\n\nhelper.w_collectStoredData = function (xdm) {\n // epoch date used to clear cookies\n //console.log('inside:w_collectStoredData');\n //let xdm = window.xdm || {};\n var dateZero = new Date(0); //,\n var evlist = \"\";\n //impTmp = s.c_r('impTmp'); //\n xdm = helper.prepareIdentity(xdm);\n \n //TODO:Sumit to add linkTracking XDM\n if(helper.c_r('visImpTmp')){\n // collect pid impressions from after previous page load\n // s3.list2 = helper.c_r('visImpTmp');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.lists.list2.list',helper.c_r('visImpTmp'));\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event11',{ value: 1 });\n\n // put the temp banners into the normal cookie\n //s.c_w('banners', impTmp, impTmp ? new Date(+new Date() + (24 * 60 * 60 * 1000)) : dateZero); // store new banners from this page. keep impressions in cookie for 24 hours\n //s.c_w('impTmp', 0, dateZero); // clear banner cookie after adding to cookie for sending\n\n //console.log('COLLECT STORED - impTmp = ' + impTmp);\n\n helper.c_ws('visImpTmp', 0, dateZero); // clear after sending\n //s.w_prevPgCkiesSent = true;\n }\n // capture number of form validation errors from cookie\n if (helper.c_r('errCount')) {\n // s3.prop17 = helper.c_r('errCode');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop17',helper.c_r('errCode'));\t\n //s.eVar30 = (s.prop17.indexOf(s.w_inlErr+',')>-1? s.prop17 : 'defined errors') + ':' + s.c_r('errCount');\n // s3.eVar30 = 'errors:' + uhelper.cap(helper.c_r('errCount'), 50);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar30','errors:' + uhelper.cap(helper.c_r('errCount'), 50));\n helper.c_ws('errCode', 0, dateZero);\n helper.c_ws('errCount', 0, dateZero);\n }\n //Target campaign click through via Cookie\n var ttIdCookie = helper.c_r(\"s_ttid\"),\n tLocCookie = helper.c_r(\"s_tloc\"),\n tActionCookie = helper.c_r(\"s_tAction\"),\n iPid = helper.c_r(\"s_pid\")\n ;\n if(iPid){\n // s3.eVar22 = iPid + helper.eVar22? ','+ helper.eVar22:'';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar22',(iPid + helper.eVar22)? helper.eVar22:'');\n // helper.events=helper.apl(helper.events,\"event12\",\",\",2);\n evlist=helper.apl(helper.evList, \"event12\", \";\", 2);\n helper.c_ws('s_pid', 0, dateZero);\n }\n if (ttIdCookie) {\n // s3.eVar33 = ttIdCookie;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar33',ttIdCookie);\n // s3.prop33 = ttIdCookie;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop33',ttIdCookie);\t\n if (tLocCookie){\n // s3.prop32 = tLocCookie;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop32',tLocCookie);\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar52',tLocCookie);\n }\n if(tActionCookie){\n // s3.eVar53 = tActionCookie;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar53',tActionCookie);\n // s3.prop53 = tActionCookie;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop53',tActionCookie);\t\n }\n evlist=helper.apl(helper.evList,\"event9\",\";\",2);\n //s3.addEvents\n helper.c_ws('s_ttid', 0, dateZero);\n helper.c_ws('s_tloc', 0, dateZero);\n helper.c_ws('s_tAction', 0, dateZero);\n }\n // Track Primary Header\n if(helper.c_r('s_ph')){\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',helper.c_r('s_ph')) ;\t\n helper.c_ws('s_ph', 0, dateZero); \n }\n // Track Secondary Header\n // console.log('sec cookie = ' + helper.c_r('s_sh'));\n if(helper.c_r('s_sh')){ \n //helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',helper.c_r('s_sh')) ;\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',('sh:' + helper.c_r('s_sh'))) ;\t\n helper.c_ws('s_sh', 0, dateZero); \n }\n // Track Tertiary Header\n if(helper.c_r('s_th')){\n //helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',helper.c_r('s_th')) ;\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',('th:' + helper.c_r('s_th'))) ;\t\n helper.c_ws('s_th', 0, dateZero); \n }\n // Track Tab\n if(helper.c_r('s_tab')){ \n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',helper.c_r('s_tab')) ;
16\t\n helper.c_ws('s_tab', 0, dateZero); \n } \n // Track Quick Links\n if(helper.c_r('s_ql')){ \n \n console.log('s_ql exists: ' + helper.c_r('s_ql'));\n if (helper.c_r('s3_nav')){\n console.log('s3_nav exists: ' + helper.c_r('s3_nav'));\n digital[\"dd.navMenuID\"] = helper.c_r('s3_nav')+'ql:'+helper.c_r('s_ql'); \n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',(helper.c_r('s3_nav') + 'ql:' + helper.c_r('s_ql'))) ;\t\n //s3.c_w('s3_nav','',new Date(0)); // remove s_nav cookie after tracking\n helper.c_ws('s3_nav','',new Date(0));\n helper.c_ws('s_ql', 0, dateZero); \n } else {\n console.log('s3_nav does not exist: ' + helper.c_r('s3_nav'));\n console.log('s_ql cookie value: ' + helper.c_r('s_ql'));\n digital[\"dd.navMenuID\"] = 'ql:' + helper.c_r('s_ql');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',('ql:' + helper.c_r('s_ql'))) ;\t\n helper.c_ws('s_ql', 0, dateZero); \n }\n //helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',helper.c_r('s_ql')) ;\t\n //helper.c_ws('s_ql', 0, dateZero); \n }\n // Track Card\n if(helper.c_r('s_ca')){ \n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',helper.c_r('s_ca')) ;\t\n helper.c_ws('s_ca', 0, dateZero); \n }\n // Track Product\n if(helper.c_r('s_pr')){ \n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',helper.c_r('s_pr')) ;\t\n helper.c_ws('s_pr', 0, dateZero); \n }\n // Track Action\n if(helper.c_r('s_ac')){ \n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',helper.c_r('s_ac')) ;\t\n helper.c_ws('s_ac', 0, dateZero); \n }\n // Track Slide\n if(helper.c_r('s_sl')){ \n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop59',helper.c_r('s_sl')) ;\t\n helper.c_ws('s_sl', 0, dateZero); \n }\n // if search results 'click past rank' cookie has been set from result link click, track the rank and click event and delete the cookie.\n // The cookie is set on search results link clicks with the rank of the link\n\n // example output: source:search-page|type:natural|kw:low-rate-card|cat:services|rank:1\n // example output non natural type: source:search-page|type:recommended|kw:low-rate-card|title:low-rate-card\n // example output non natural type: source:search-page|type:quicklinks|kw:low-rate-card|title:low-rate-card\n var \
16n sOrigin = helper.c_r('s_loc')|| helper.lowerCase(helper.getQueryParam('searchsource', '', helper.getLoc().href)),\n sResultType = helper.c_r('s_rt')||helper.lowerCase(helper.getQueryParam('result-type', '', helper.getLoc().href)),\n sKeyword = helper.c_r('s_kw')||helper.lowerCase(helper.getQueryParam('kw', '', helper.getLoc().href)),\n sResultCategory = helper.c_r('s_cat')||helper.lowerCase(helper.getQueryParam('cat', '', helper.getLoc().href)),\n sResultRank = helper.cap(helper.c_r('cpr'), 101),\n slTitle = helper.c_r('s_ltitle')\n ;\n\n //commented for checking c_r to work after creating cookie via c_ws()\n // var \n // sOrigin = helper.lStor('get','s_loc')|| helper.lowerCase(helper.getQueryParam('searchsource', '', helper.getLoc().href)), \n // sResultType = helper.lStor('get','s_rt')||helper.lowerCase(helper.getQueryParam('result-type', '', helper.getLoc().href)),\n // sKeyword = helper.lStor('get','s_kw')||helper.lowerCase(helper.getQueryParam('kw', '', helper.getLoc().href)),\n // sResultCategory = helper.lStor('get','s_cat')||helper.lowerCase(helper.getQueryParam('cat', '', helper.getLoc().href)),\n // sResultRank = helper.cap(helper.lStor('get','cpr'), 101),\n // slTitle = helper.lStor('get','s_ltitle')\n // ;\n\n if(sResultRank){\n // s3.eVar13 ='source:' + sOrigin + '|'+ \n // 'type:' + sResultType + '|' + \n // 'kw:' + sKeyword + '|' + \n // 'cat:' + sResultCategory + '|'+ \n // 'rank:' + sResultRank\n // ;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar13','source:' + sOrigin + '|'+ \n 'type:' + sResultType + '|' + \n 'kw:' + sKeyword + '|' + \n 'cat:' + sResultCategory + '|'+ \n 'rank:' + sResultRank+ '|' +\n 'title:' + slTitle);\n // s3.prop16 = sResultRank;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop16',sResultRank);\t\n evlist=helper.apl(helper.evList,\"event15\",\";\",2);\n helper.c_ws('s_loc', 0, dateZero);\n helper.c_ws('s_kw', 0, dateZero);\n helper.c_ws('s_rt', 0, dateZero);\n helper.c_ws('s_cat', 0, dateZero);\n helper.c_ws('s_ltitle', 0, dateZero);\n helper.c_ws('cpr', 0, dateZero);\n\n /*helper.lStor('set', 's_loc', 'reset');\n helper.lStor('set', 's_kw', 'reset');\n helper.lStor('set', 's_rt', 'reset');\n helper.lStor('set', 's_cat', 'reset');\n helper.lStor('set', 's_ltitle','reset');\n helper.lStor('set', 'cpr', 'reset');*/\n }\n\n /*var notifyTitle = helper.cookieRead('s_ntitle')||'',\n notifyType = helper.cookieRead('s_ntype')||'(not set)',\n notifyLink = helper.cookieRead('s_nlink')||''\n ;*/\n\n var notifyTitle = helper.lStor('get','s_ntitle')||'',\n notifyType = helper.lStor('get','s_ntype')||'(not set)',\n notifyLink = helper.lStor('get','s_nlink')||''\n ;\n \n if(notifyTitle){ \n // s3.eVar75 = helper.lowerCase(notifyType + ':' + notifyTitle);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar75',helper.lowerCase(notifyType + ':' + notifyTitle));\n if(notifyLink){\n // s3.prop76 = helper.lowerCase(notifyLink);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop76',helper.lowerCase(notifyLink));\t\n }\n evlist=helper.apl(helper.evList,\"event98\",\";\",2);\n /*helper.c_wr('s_ntitle', 0, dateZero);\n helper.c_wr('s_ntype', 0, dateZero);\n helper.c_wr('s_nlink', 0, dateZero);*/\n\n helper.lStor('set', 's_ntitle', 'reset');\n helper.lStor('set', 's_ntype', 'reset');\n helper.lStor('set', 's_nlink', 'reset');\n }\n evlist=evlist.split(/[;,]/);\n evlist.forEach(function (ev) {\n const eventNumber = parseInt(ev.replace(\"event\", \"\"));\n // console.log(eventNumber)\n let path;\n if (eventNumber >= 1 && eventNumber <= 100) {\n path = '_experience.analytics.event1to100.';\n } else if (eventNumber >= 101 && eventNumber <= 200) {\n path = '_experience.analytics.event101to200.';\n } else if (eventNumber >= 201 && eventNumber <= 300) {\n path = '_experience.analytics.event201to300.';\n } else if (eventNumber >= 301 && eventNumber <= 400) {\n path = '_experience.analytics.event301to400.';\n } else if (eventNumber >= 401 && eventNumber <= 500) {\n path = '_experience.analytics.event401to500.';\n } else if (eventNumber >= 501 && eventNumber <= 600) {\n path = '_experience.analytics.event501to600.';\n } else if (eventNumber >= 601 && eventNumber <= 700) {\n path = '_experience.analytics.event601to700.';\n } else if (eventNumber >= 701 && eventNumber <= 800) {\n path = '_experience.analytics.event701to800.';\n } else if (eventNumber >= 801 && eventNumber <= 900) {\n path = '_experience.analytics.event801to900.';\n } else if (eventNumber >
16= 901 && eventNumber <= 1000) {\n path = '_experience.analytics.event901to1000.';\n }\n if(path && ev ){\n helper.xdmPut(xdm, path + ev, { value: 1 });\n }\n helper.evList = ''; //clear all events\n // helper.xdmPut(xdm, '_experience.analytics.event1to100.' + ev, { value: 1 }); //SUMIT: How to add events to globax context\n});\n};\n// test global drop list to decide if the page should be aborted\nhelper.w_globalDrop = function (refObj) {\n var testResult = 0,\n siteDropList = helper.lStor('get', 'appmeasurement_nameKeyDrop'); //,\n //pageDropCondition = String(refObj.abortIf).split('=', 2),\n //pageDropCompare;\n\n // global (within origin) drops\n if (siteDropList) {\n testResult = new RegExp('(^|,)' + String(refObj._nameKey).replace(/([.*+?\\^=!:${}()\\|\\[\\]\\/\\\\])/g, '\\\\$1') + '(,|$)').test(siteDropList);\n }\n\n //console.log('w_globalDrop: testResult = ' + testResult);\n\n return testResult;\n};\n\n// Cookie combined utility\nhelper.escape = function(c) {\n if(!c) \n return c;\n c=encodeURIComponent(c);\n c = c.replace(/~/g, '%7E');\n c = c.replace(/!/g, '%21');\n c = c.replace(/\\*/g, '%2A');\n c = c.replace(/\\(/g, '%28');\n c = c.replace(/\\)/g, '%29');\n c = c.replace(/'/g, '%27');\n return c\n}\n\nhelper.unescape = function(c) {\n if (!c)\n return c;\n //console.log(\"unescape:\" + c);\n c = c.replace(/\\+/g, ' ');\n return decodeURIComponent(c)\n}\nhelper.random_ex =\"helper.random() \\nreturn an rendom number\";\nhelper.random = function(){\n var dd = new Date(); \n return Math.round(Math.abs(Math.sin(dd.getTime()))*1000000000)%10000000;\n};\nhelper.loadImgPixel_ex =\"helper.loadImgPixel(@url,@delay,@random, @idVal, @pageURL) \\nload an image \\n@url destination URL, \\n@delay is use for setTimeout defauel 4000ms \\n@random supply string which will be replaced by rendom number at runtime\\n @idVal any value supplied this will replace {ID} paramer inside the URL \\n@example util.loadScript('//abc.abc.com/pages/scripts/abc.js?id={ID}&url={URL}&g={RAND}',4,'{RAND}','abc123','')\";\nhelper.loadImgPixel = function(url,delay,random,idVal,pageUrl){\n var d = delay ? d=delay : 4000; //default delay 4000ms\n url = random ? String(url).replace(new RegExp(random),helper.random()) : String(url);\n url = url.replace(/^https?\\:/i,'');\n currentUrl = encodeURIComponent(pageUrl? pageUrl:(document.location.origin+ document.location.pathname+ document.location.search));\n url = String(url).replace(/\\{URL\\}/g,currentUrl);\n url = idVal ? String(url).replace(/\\{ID\\}/g,idVal) : String(url);\n setTimeout(function(){\n var ad_image = new Image(1,1);\n ad_image.src = document.location.protocol+url;\n document.body.appendChild(ad_image);\n }, d);\n};\n/*\n* Plugin: Cookiecombined utility v1.1.\n*/\nhelper.c_r = function (sKey) {\n return decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\\\s*' + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'), '$1')) || '';\n};\nhelper.c_w = function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\n return false;\n }\n var sExpires = '';\n if (vEnd && vEnd.constructor === Date) {\n sExpires = '; expires=' + vEnd.toUTCString();\n }\n //document.cookie = encodeURIComponent(sKey) + '=' + encodeURIComponent(sValue) + sExpires + (sDomain ? '; domain=' + sDomain : '') + (sPath ? '; path=' + sPath : '') + (bSecure ? '; secure' : '');\n document.cookie = encodeURIComponent(sKey) + '=' + encodeURIComponent(sValue) + sExpires + (sDomain ? '; domain=' + sDomain : '; domain='+helper.cookieDomain()) + (sPath ? '; path=' + sPath : '; path=/') + (bSecure ? '; secure' : '');\n return true;\n};\nif(!helper.__ccucr)\n{\n helper.c_rr = helper.c_r;\n helper.__ccucr = true;\n function s3_c_r(k)\n {\n var d = new Date, v = helper.c_rr(k), c = helper.c_rspers(), i, m, e;\n if(v) return v; k = helper.escape ? helper.escape(k) : encodeURIComponent(k);\n i = c.indexOf(' ' + k + '='); c = i < 0 ? helper.c_rr('s3_sess') : c;\n i = c.indexOf(' ' + k + '='); m = i < 0 ? i : c.indexOf('|', i);\n e = i < 0 ? i : c.indexOf(';', i); m = m > 0 ? m : e;\n v = i < 0 ? '' : helper.unescape ? helper.unescape(c.substring(i + 2 + k.length, m < 0 ? c.length : m)) : decodeURIComponent(c.substring(i + 2 + k.length, m < 0 ? c.length : m));\n return v;
16\n }\n function s3_c_rspers()\n {\n var cv = helper.c_rr(\"s3_pers\"), date = new Date().getTime(), expd = null, cvarr = [], vcv = \"\";\n if(!cv) return vcv; cvarr = cv.split(\";\"); for(var i = 0, l = cvarr.length; i < l; i++) { expd = cvarr[i].match(/\\|([0-9]+)$/);\n if(expd && parseInt(expd[1]) >= date) { vcv += cvarr[i] + \";\"; } } return vcv;\n }\n helper.c_rspers = s3_c_rspers;\n helper.c_r = helper.cookieRead = s3_c_r;\n}\nif(!helper.__ccucw){\n helper.c_wr = helper.c_w;\n helper.__ccucw = true;\n function s3_c_w(k, v, e)\n {\n var d = new Date, ht = 0, pn = 's3_pers', sn = 's3_sess', pc = 0, sc = 0, pv, sv, c, i, t, f;\n d.setTime(d.getTime() - 60000); if(helper.c_rr(k)) helper.c_wr(k, '', d,'/', helper.cookieDomain()); k = helper.escape ? helper.escape(k) : encodeURIComponent(k);\n pv = helper.c_rspers(); i = pv.indexOf(' ' + k + '='); if(i > -1) { pv = pv.substring(0, i) + pv.substring(pv.indexOf(';', i) + 1); pc = 1; }\n sv = helper.c_rr(sn); i = sv.indexOf(' ' + k + '='); if(i > -1) { sv = sv.substring(0, i) + sv.substring(sv.indexOf(';', i) + 1);\n sc = 1; } d = new Date; if(e) { if(e == 1) e = new Date, f = e.getYear(), e.setYear(f + 5 + (f < 1900 ? 1900 : 0));\n if(e.getTime() > d.getTime()) { pv += ' ' + k + '=' + (helper.escape ? helper.escape(v) : encodeURIComponent(v)) + '|' + e.getTime() + ';';\n pc = 1; } } else { sv += ' ' + k + '=' + (helper.escape ? helper.escape(v) : encodeURIComponent(v)) + ';';\n sc = 1; } sv = sv.replace(/%00/g, ''); pv = pv.replace(/%00/g, ''); if(sc) helper.c_wr(sn, sv, 0);\n if(pc) { t = pv; while(t && t.indexOf(';') != -1) { var t1 = parseInt(t.substring(t.indexOf('|') + 1, t.indexOf(';')));\n t = t.substring(t.indexOf(';') + 1); ht = ht < t1 ? t1 : ht; } d.setTime(ht); helper.c_wr(pn, pv, d); }\n return v == helper.c_r(helper.unescape ? helper.unescape(k) : decodeURIComponent(k));\n }\n helper.c_w = s3_c_w;\n}\n/*Cookie Write Sequentially*/\nhelper.c_ws = function(key, value, expiry) {\n return new Promise((resolve) => {\n helper.c_w(key, value, expiry, '/', helper.cookieDomain());\n resolve();\n });\n};\n/*\n* End of\n* Plugin: Cookiecombined utility v1.0.\n*/\n\n// test specific values to decide if the pageDetails should be aborted, changed etc.\n//s.w_changeIf = function (refObj, sObjectProperties) // dynamically change pageDetails or s object\nhelper.w_changeIf = function (refObj) { // dynamically change pageDetails -- Sumit\n var prpty,\n expressionSet = refObj.changeIf || [],\n expressionSetLength,\n expressionItem,\n //sObjectItem,\n //getSObjectProperty = function (item) {\n //\treturn sObjectProperties && /^s\\.(prop|eVar)/.test(item) && item.replace(/^s\\./, '');\n //},\n ifItemVal,\n equalsItemVal,\n andIf,\n andEvaluation,\n dynamicItems = {\n '(lastpage)' : helper.c_r('lastPage'),\n '(location)' : helper.getLoc().href,\n '(referrer)' : document.referrer,\n '(s3_pers)' : helper.c_rr('s3_pers'), // these cookie values can only be used in the if expression, not equals\n '(s3_sess)' : helper.c_rr('s3_sess') // these cookie values can only be used in the if expression, not equals\n };\n //console.log(dynamicItems);\n\n try {\n if (typeof expressionSet === 'string') {\n expressionSet = JSON.parse(expressionSet);\n }\n } catch (err) {\n //s.w_log(err);\n expressionSet = [];\n }\n\n //console.log('expressionSet = ');\n //console.log(expressionSet);\n\n expressionSetLength = expressionSet.length;\n\n for (prpty = 0; prpty < expressionSetLength; prpty++) {\n expressionItem = expressionSet[prpty];\n //console.log(expressionItem);\n\n if (expressionItem.item && expressionItem.like && expressionItem.then) {\n //console.log('expressionItem = ');\n //console.log(expressionItem);\n //sObjectItem = getSObjectProperty(expressionItem.item);\n //ifItemVal = String(dynamicItems[expressionItem.item] || refObj[expressionItem.item] || (sObjectItem && window.s[sObjectItem]) || ''); // only when called from end of doPlugins, for async\n ifItemVal = String(dynamicItems[expressionItem.item] || refObj[expressionItem.item] || ''); // only when called from end of doPlugins, for async\n //console.log('ifItemVal = ');\n //console.log(ifItemVal);\n //sObjectItem = getSObjectProperty(expressionItem.equals);\n //equalsItemVal = String(dynamicItems[expressionItem.equals] || refObj[expressionItem.equals] || (sObjectItem && window.s[sObjectItem]) || expressionItem.equals || ''); // added option to set a property to one of the dynamic values\n equalsItemVal = String(dynamicItems[(expressionItem.equals || '').replace(/\\((s_pers|s_sess)\\)/i, '')] || refObj[expressionItem.equals] || expressionItem.equals || ''); // added option to set a property to one of the dynamic values\n //console.log('equalsItemVal = ');\n //console.log(equalsItemVal);\n\n andEvaluation = true;\n andIf = expressionItem.and;\n if (andIf && andIf.item && andIf.like) {\n andEvaluation = new RegExp(andIf.like, 'i').test(String(dynamicItems[andIf.item] || refObj[andIf.item] || ''));\n }\n\n if (new RegExp(expressionItem.like, 'i').test(ifItemVal) && andEvaluation) {\n if (expressionItem.replace) {\n //console.log('regex = ' + new RegExp(expressionItem.replace.exp, expressionItem.replace.flags || ''));\n equalsItemVal = equalsItemVal.replace(new RegExp(expressionItem.replace.exp, expressionItem.replace.flags || ''), expressionItem.replace.subs || '');\n }\n //console.log('equalsItemVal = ' + equalsItemVal);\n refObj[expressionItem.then] = equalsItemVal;\n //sObjectItem = getSObjectProperty(expressionItem.then);\n //if (sObjectItem) {\n //\twindow.s[sObjectItem] = equalsItemVal;\n //}\n }\n }\n }\n\n //console.log('refObj = ');\n //console.log(refObj);\n};\nhelper.trackImprs = function () {\n var lp,\n targetSet,\n targetItem,\n linkHref,\n attrHref,\n linkPid,\n pidRecordedFlag = 'data-analytics-pid-imp',\n arrImprs = [];\n\n //targetSet = document.getElementsByTagName('A');\n targetSet = helper.qSA(document, \"a[href*='pid\\\\='],[data-analytics-pid]\", 'A', 'href', (/pid=/i));
16\n\n lp = targetSet.length;\n while (lp--) {\n // check for any links with pid= and add them to the impressions list\n // THIS BLOCK SHOULD RUN AFTER S.T(), ELSE DOPLUGINS WILL TRACK IMPRESSIONS WITH THE CURRENT PAGE (post-load impressions are only meaningfully reported against previous page)\n targetItem = targetSet[lp];\n\n // if it's an anchor link, look in the anchor only, not full URL in case already a pid click parameter in current querystring\n attrHref = targetItem.getAttribute('href');\n linkHref = /^#/.test(attrHref) ? attrHref : targetItem.href;\n linkPid = helper.getQueryParam('pid', '', linkHref);\n\n \n /*if (linkPid) {\n console.log(targetItem.href);\n console.log('s.w_trackImprs found pid: ' + linkPid);\n console.log('Visible size?: ' + targetItem.offsetWidth + 'x' + targetItem.offsetHeight + '. Vis test === ' + (linkPid && helper.isVisible(0, targetItem)));\n }*/\n \n\n // fix for IE bug with inline and block elements stating offsets incorrectly\n //ieDisplayNoneBug = target[lp].currentStyle && target[lp].currentStyle.display === 'none' ? true : false;\n\n // not an impression if the element is not visible\n //if (linkPid && (target[lp].offsetWidth > 0 && target[lp].offsetHeight > 0)) {\n //if (linkPid && (target[lp].offsetWidth > 0 && target[lp].offsetHeight > 0) && !ieDisplayNoneBug) {\n //if (linkPid && s.w_isVis(0, targetItem)) {\n if (linkPid && helper.isVisible(0, targetItem) && !targetItem.getAttribute(pidRecordedFlag)) {\n\n // if not already collected on this window load\n //window.console && console.log(linkPid + ' collected? = ' + targetItem.getAttribute(pidRecordedFlag));\n\n arrImprs.push(linkPid.replace(/,/g, '%2C')); // encode commas in url pid's so they arent split into multiple impressions\n\n // set a flag\n targetItem.setAttribute(pidRecordedFlag, '1');\n }\n }\n if (arrImprs) {\n //window.console && console.log('s.w_trackImprs to send = ' + arrImprs.join(','));\n helper.trackImpression(arrImprs.join(','));\n }\n};\nhelper.trackImpression = function (detail) {\n var lp,\n len,\n newData,\n items,\n ckName = 'visImpTmp',\n detailObj = detail,\n attrHref,\n linkHref,\n pidRecordedFlag = 'data-analytics-pid-imp';\n if (!helper.isPageHidden()) {\n if (detailObj && detailObj.nodeName === 'A') {\n if (helper.isVisible(0, detailObj) && !detailObj.getAttribute(pidRecordedFlag)) {\n attrHref = detailObj.getAttribute('href');\n linkHref = /^#/.test(attrHref) ? attrHref : detailObj.href;\n detail = helper.getQueryParam('pid', '', linkHref);\n if (detail) {\n detailObj.setAttribute(pidRecordedFlag, '1');\n }\n } else {\n detail = 0;\n }\n }\n if (detail && ckName) {\n newData = String(detail || '');\n items = newData.split(',');\n newData = helper.c_r(ckName) || '';\n for (lp = 0, len = items.length; lp < len; lp++) {\n if (items[lp]) {\n newData = helper.apl(newData, helper.lowerCase(items[lp]), ',', 2);\n }\n }\n // if the cookie has more than five banners send a custom request to prevent the string becoming truncated? How long are the pid's? evar=255 chars\n //s.c_w('banners',newData);\n helper.c_ws(ckName, newData, new Date(+new Date() + (24 * 60 * 60 * 1000))); // keep impressions in cookie for 24 hours\n \n }\n }\n return newData;\n};\n\n/* \n// Code specific to wLive implementation \nvar w_live = window.w_live || {},\t\t\n\t\tisMobileView = false,\n appIdExist = '';\n\t\tif (typeof(window.NativeJSInterface)!==\"undefined\" && window.NativeJSInterface.isNativeContainer()!==false){\n\t\t\tisMobileView = true;\n appIdExist = helper.lStor('get', 'app_id');\n\t\t}\n\t//Banking additional function\n\tw_live.w_trackPage = function(details) {\n //console.log('w_live.w_trackPage');\n if(isMobileView && appIdExist){ //use local storage\n helper.w_trackPage(details);\n }else if(isMobileView){ //Set local storage\n NativeJSInterface.getCapabilities().then(function(capabilities) {\n //showAlert(\"Success\", \"capabilities are \" + capabilities)\n var capabilitiesList = helper.lowerCase(JSON.stringify(capabilities)),\n capabilitiesVersion = NativeJSInterface.getLibVersion(),\n exp = (/classicxp/ig.test(capabilitiesList)?'classicxp': (/nativexp/ig.test(capabilitiesList)?'nativexp':'(notset)'));\n helper.lStor('set', 'app_id', NativeJSInterface.getAppName()+'-'+ NativeJSInterface.getAppVersion());\n var cList = capabilitiesList.replace(/\\\\|\\\"|\\{|\\}|\\[|\\]/ig,'')\n .replace('transferfunds','tf')\n .replace('pushnotification','pn')\n .replace('woisso','ws')\n .replace('payeedetails','pd')\n .replace('estmt','es')\n .replace('applewallet','aw')\n .replace('profile','pr')\n .replace('dailypaymentlimit','dpl')\n .replace('updatedailypaymentlimit','upl')\n .replace('authentication','au')\n .replace('onboarding','ob')\n .replace('launchdashboard','ld')\n .replace('pushnotification','pn')\n .replace('quicktransfer','qt')\n .replace('cardlesscash','cc')\n .replace('wallpaper','wa')\n .replace('paymentlisting','pyl')\n .replace('paymentdetails','pyd')\n .replace('payments','py')\n .replace('nativexp','ne')\n .replace('locateus','ls')\n .replace('subscriptions','su')\n .replace('depositcheque','dc')\n .replace('settings','se')\n .replace('repaymentsettings','rs')\n .replace('managecards','mc')\n .replace('payanyone','pa')\n .replace('addressbookpayanyone','apa')\n .replace('addressbook','ab')\n .replace('chat','ch')\n .replace('connect','cn')\n .replace('docupload','du')\n .replace('signinsettings','si')\n .replace('emailto','et')\n .replace('phone','ph')\n .replace('dashboard','da')\n .replace('accountdetails','ad')\n .replace('cheqdig','ci')\n .replace('atmlocator','al')\n .replace('feedback','f')\n .replace('cards','c')\n .replace('wallet','w')\n .replace('documents','d')\n .replace('share','s')\n .replace('help','h')\n .replace('products','p')\n .replace('exit','e')\n .replace('contactlookup','cl')\n .replace('mobile','mo')\n .replace('biocatch','bc')\n .replace('preauth','pau')\n .replace('repyettings','rp')\n .replace('googlew','gw')\n .replace('samsungwallet','sw')\n .replace('activatecard','ac')\n .replace('movemoney','mm')\n .replace('upcomingpaym','up')\n ;\n helper.lStor('set', 'app_capabilities', 'v:'+capabilitiesVersion +',' + cList);\n helper.lStor('set', 'app_exp', exp);\n\n helper.w_trackPage(details);\n },\n function(err) {\n //showAlert(\"Error\", \"get capabilities failed with code \" + err)\n helper.lStor('set', 'app_err', 'v.'+NativeJSInterface.getLibVersion() + ',error:'+ err);\n helper.lStor('set', 'app_capabilities', 'reset');\n helper.lStor('set', 'app_exp', 'reset');\n helper.w_trackPage(details);\n });\n }
16else{\n helper.w_trackPage(details);\n }\n }\n\tw_live.w_trackError = function (errorMessage) {\n\t\thelper.w_trackError(errorMessage);\n\t\t//s.w_trackError(errorMessage);\n\t}\n\n\tw_live.w_trackBannerDismiss = function(id) {\n\t\thelper.w_trackBannerDismiss(id);\n\t}\n\n\tw_live.w_trackImpression = function(ids) {\n if(ids){\n\t\t helper.trackImpression(ids);\n }else{ \n helper.trackImprs();\n }\n\t}\n w_live.w_trackCampaignClickExit = function(details) {\n helper.w_trackInteractionEvents ('pidexit',details);\n }\n w_live.w_trackInteractionEvents =function(evt,details) {\n helper.w_trackInteractionEvents (evt,details);\n }\n\tw_live.w_trackErrorCount= function(errorCount) {\n\t\thelper.w_trackErrorCount(errorCount);\n\t\t//s.w_trackErrorCount(errorCount);\n\t}\n w_live.w_trackTargetImpression = function(details) {\n helper.w_trackTargetImpressionObj(details);\n }\n w_live.w_trackTargetDismiss = function(details) {\n helper.w_trackTargetDismissExpand('dismiss', details);\n }\n w_live.w_trackTargetExpanded = function(details) {\n helper.w_trackTargetDismissExpand('expanded', details);\n }\n w_live.w_trackNotification = function(evt, details) {\n helper.w_trackNotification(evt, details);\n }\n w_live.w_intCampaignClickedVal = function(pid) {\n pid = decodeURIComponent(helper.lowerCase(pid));\n if(pid){\n helper.c_w('s_pid', pid, new Date(+new Date() + (60*1000)),'/',helper.cookieDomain());\n }\n return true;\n }\n w_live.w_targetClickedVal = function(ttid, location, action) {\n ttid = decodeURIComponent(helper.lowerCase(ttid));\n location = decodeURIComponent(helper.lowerCase(location));\n action = decodeURIComponent(helper.lowerCase(action));\n if(ttid){\n helper.c_ws('s_ttid', ttid, new Date(+new Date() + (60*1000)),'/',helper.cookieDomain());\n helper.c_ws('s_tloc', location, new Date(+new Date() + (60*1000)),'/',helper.cookieDomain());\n helper.c_ws('s_tAction', action, new Date(+new Date() + (60*1000)),'/',helper.cookieDomain());\n }\n return true;\n }\n*/\n/*\nalloy(\"sendEvent\", {\n \"documentUnloading\": true,\n \"xdm\": {\n \"commerce\": {\n \"order\": {\n \"purchaseID\": \"a8g784hjq1mnp3\",\n \"purchaseOrderNumber\": \"VAU3123\",\n \"currencyCode\": \"USD\",\n \"priceTotal\": 999.98\n }\n }\n },\n \"onBeforeEventSend\": function(content) {\n // Change existing values\n content.xdm.web.webPageDetails.URL = xdm.web.webPageDetails.URL.toLowerCase();\n // Remove existing values\n delete content.xdm.web.webReferrer.URL;\n // Or add new values\n content.xdm._adb3lettersandnumbers.mycustomkey = \"value\";\n //sets a query parameter in XDM\n const queryString = window.location.search;\n const urlParams = new URLSearchParams(queryString);\n content.xdm.marketing.trackingCode = urlParams.get('cid')\n\n }\n}).then(function(result) {\n // Tracking the event succeeded.\n})\n.catch(function(error) {\n // Tracking the event failed.\n});\n\nalloy(\"getLibraryInfo\").then(function(result) {\n console.log(result.libraryInfo.version);\n console.log(result.libraryInfo.commands);\n console.log(result.libraryInfo.configs);\n});\n\nalloy(\"sendEvent\", {\n xdm: {\n \"identityMap\": {\n \"ID_NAMESPACE\": [ // Notice how each namespace can contain multiple identifiers.\n {\n \"id\": \"1234\",\n \"authenticatedState\": \"ambiguous\",\n \"primary\": true\n }\n ]\n }\n }\n});\n\nalloy(\"getIdentity\")\n .then(function(result) {\n // The command succeeded.\n console.log(\"ECID:\", result.identity.ECID);\n console.log(\"RegionId:\", result.edge.regionId);\n })\n .catch(function(error) {\n // The command failed.\n // \"error\" will be an error object with additional information.\n });\n\n\n*/\nhelper.w_targetImpression = function(data){\n var targetContent = helper.qSA(document,\".target-container\", 'span', 'class', (/target-container/i)),\n tntlist = [],\n lp = targetContent.length;
16\n while (lp--) {\n var\n targetItem = targetContent[lp],\n tntVar=targetItem.getAttribute('data-target-var')\n if(tntVar){\n tntlist.push(tntVar.replace(/,/g, '%2C'));\n }\n }\n if(data){\n var campaigns = data.split(','),\n ln = campaigns.length\n while (ln--) {\n tntlist.push(campaigns[ln]);\n }\n }\n if (tntlist && tntlist.length>0) {\n //window.console && console.log('s.w_trackImprs to send = ' + arrImprs.join(','));\n //console.log(tntlist);\n //return tntlist[0];\n return tntlist.join(',');\n } else{\n return \"\";\n }\n };\n helper.prepareProposition = function (strObj){\n if(strObj){\n var obj = helper.cloneObject(strObj)\n obj.scopeDetails = JSON.parse(obj.scopeDetails);\n } else {\n return strObj;\n }\n return obj;\n }\nhelper.w_trackTargetImpressionObj = function(data){\n window.xdm = {};\n xdm = helper.prepareIdentity(xdm);\n var targetList = decodeURIComponent(helper.lowerCase(data.targetCampaignViewed)),\n tergetLoc = decodeURIComponent(helper.lowerCase(data.targetLocationId)),\n targetMod = helper.lowerCase(data.pageModules);\n \n if(window.serverState && window.visitor){ \n visitor.resetState(window.serverState);\n delete window.serverState;\n }\n if(data.proposition){ \n //delete xdm._experience.decisioning; //deleting previous proposition \n console.log('proposition exist');\n helper.xdmPut(xdm,'_experience.decisioning.propositions[]',helper.prepareProposition(data.proposition));\n helper.xdmPut(xdm,'_experience.decisioning.propositionEventType.display', 1 )\n delete data.proposition;\n }\n if(targetList){ \n //pageDetails[\"targetCampaignViewed\"] = targetList;\n // s3.events = 'event8';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event8',{ value: 1 });\n // s3.linkTrackVars = s3.w_ltv +',prop32,prop41,list3,events';\n // s3.list3 = targetList; // record ttid name only\n //helper.xdmPut(xdm,'_experience.analytics.customDimensions.lists.list3.list',targetList);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar79',helper.lowerCase(targetList));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop29',helper.lowerCase(targetList));\n // s3.linkTrackEvents = s3.events;\n // s3.eVar6=s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\t\n // s3.eVar1=s3.prop1 ='target:impression';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','target:impression');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','target:impression');\n // s3.prop41 = targetMod;\n // s3.prop32 = tergetLoc;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop41',targetMod);\n\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop32',tergetLoc);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar52',tergetLoc);\n // s3.tl(true, 'o', 'target:impression:'+ targetList);\n \n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name','target:impression:'+ targetList);\n helper.xdmPut(xdm,'web.webInteraction.type','other');\n // s3.tl(true, 'o', 'target:impression:'+ targetList);\n //console.log('w_trackTargetImpressionObj');\n alloy(\"sendEvent\", {\n \"xdm\": xdm//,\n //\"data\": data\n }).then(function(result) {\n //helper.w_endTrcking();\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n helper.evList = '';\n delete pageDetails.targetCampaignViewed; \n delete pageDetails.targetLocationId;\n delete pageDetails.pageModules;\n \n return true;\n }\n};\nhelper.w_trackTargetImpression = function(data){\n window.xdm ={};\n xdm = helper.prepareIdentity(xdm); \n var intCamp = decodeURIComponent(helper.lowerCase(typeof(data) == 'object' ? data.internalCampaignViewed:pageDetails.internalCampaignViewed)),\n targetList = decodeURIComponent(helper.lowerCase(typeof(data) == 'object' ? data.targetCampaignViewed:pageDetails.targetCampaignViewed)),\n pCode = decodeURIComponent(helper.lowerCase(typeof(data) == 'object' ? data.promoCode:pageDetails.promoCode)),\n CCode = decodeURIComponent(helper.lowerCase(typeof(data) == 'object' ? data.campaignCode:pageDetails.campaignCode))\n ;\n if(targetList && (data && typeof(data)!= 'object')){\n targetList = targetList+','+data;\n //pageDetails[\"targetCampaignViewed\"] = targetList;\n }else if(data && typeof(data)=='string'){\n targetList = data\n }\n let tList = helper.targetImpression(targetList);\n if(window.serverState && window.visitor){\n visitor.resetState(window.serverState);\n delete window.serverState;\n }\n if(data.proposition){ \n //delete xdm._experience.decisioning; //deleting previous proposition \n helper.xdmPut(xdm,'_experience.decisioning.propositions[]',helper.prepareProposition(data.proposition));\n helper.xdmPut(xdm,'_experience.decisioning.propositionEventType.display', 1 )\n delete data.proposition;\n }\n if(intCamp){\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.lists.list2.list',intCamp);\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event11',{ value: 1 });\n }\n if(tList){\n // s3.events = 'event8';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event8',{ value: 1 });\n // s3.linkTrackVars = s3.w_ltv +',prop32,prop41,list3,events';\n // s3.list3 = s3.targetImpression(targetList); // record ttid name only\n //helper.xdmPut(xdm,'_experience.analytics.customDimensions.lists.list3.list', helper.lowerCase(tList));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar79', helper.lowerCase(tList));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop29', helper.lowerCase(tList));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n // s3.eVar1=s3.prop1 ='target:impression';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','target:impression');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','target:impression');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop41',helper.lowerCase(pageDetails.pageModules||''));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop32',helper.lowerCase(pageDetails.targetL
16ocationId||''));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar52',helper.lowerCase(pageDetails.targetLocationId||''));\n\n // s3.tl(true, 'o', 'target:impression:'+ targetList+ (intCamp?'|'+intCamp:'') ); // 'eTarg' assumes this function only called from link clicks\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name','target:impression:'+ targetList);\n helper.xdmPut(xdm,'web.webInteraction.type','other');\n }\n if(pCode || CCode){\n // s3.events = s3.events + ',event6'\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event6',{ value: 1 });\n // s3.linkTrackVars = s3.linkTrackVars + ',eVar11'\n // s3.eVar11 = helper.lowerCase((pageDetails.campaignCode?'cc:'+pageDetails.campaignCode:'')+(pageDetails.promoCode?'|pc:'+pageDetails.promoCode:''));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar11',helper.lowerCase((pageDetails.campaignCode?'cc:'+pageDetails.campaignCode:'')+(pageDetails.promoCode?'|pc:'+pageDetails.promoCode:'')));\n }\n // s3.tl(true, 'o', 'target:impression:'+ targetList);\n //console.log('w_trackTargetImpression');\n alloy(\"sendEvent\", {\n \"xdm\": xdm//,\n //\"data\": data\n }).then(function(result) {\n //helper.w_endTrcking();\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n\n helper.evList = '';\n //console.log('tl() target:impression:'+targetList);\n //delete pageDetails.internalCampaignViewed;\n //delete pageDetails.targetCampaignViewed;\n //helper.w_endTrcking();\n delete pageDetails.targetCampaignViewed; \n delete pageDetails.targetLocationId;\n delete pageDetails.pageModules;\n \n return true;\n};\nhelper.w_trackTargetDismissExpand = function(evt,data){\n window.xdm ={};\n xdm = helper.prepareIdentity(xdm);\n var targetList = decodeURIComponent(helper.lowerCase(typeof(data) == 'object' ? data.targetCampaignViewed : pageDetails.targetCampaignViewed)),\n targetAction = decodeURIComponent(helper.lowerCase(typeof(data) == 'object' ? data.action : pageDetails.action)),\n targetModule = decodeURIComponent(helper.lowerCase(typeof(data) == 'object' ? data.pageModules : pageDetails.pageModules))\n targetLocation = decodeURIComponent(helper.lowerCase(typeof(data) == 'object' ? data.targetLocationId : pageDetails.targetLocationId))\n ;\n /*if(targetList && (data && typeof(data)!= 'object')){\n targetList = targetList+','+data;\n pageDetails[\"targetCampaignViewed\"] = targetList;\n }*/\n if(targetList){\n //pageDetails[\"targetCampaignViewed\"] = targetList;\n if(evt){\n if(evt == 'dismiss'){\n // s3.events = 'event4';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event4',{ value: 1 });\n }else if(evt == 'expanded'){\n // s3.events = 'event31';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event31',{ value: 1 });\n }\n // s3.linkTrackVars = s3.w_ltv +',prop32,prop41,list3,events';\n // s3.list3 = targetList; // record ttid name only\n //helper.xdmPut(xdm,'_experience.analytics.customDimensions.lists.list3.list', targetList);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar79', targetList);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop29', targetList);\n }\n if(targetAction){\n // s3.linkTrackVars = s3.linkTrackVars + ',eVar53,prop53'\n // s3.eVar53= targetAction ; \n // s3.prop53 = targetAction ;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop53',targetAction);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar53',targetAction);\n }\n // s3.linkTrackEvents = s3.events;\n // s3.eVar6=s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n // s3.eVar1=s3.prop1 ='target:'+evt;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','target:'+evt);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','target:'+evt);\n // s3.prop41 = targetModule||'';\n // s3.prop32 = targetLocation||'';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop41',targetModule||'');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop32',targetLocation||'');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar52',targetLocation||'');\n\n // s3.tl(true, 'o', 'target:'+evt + targetList ); // 'eTarg' assumes this function only called from link clicks\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', 'target:'+evt + targetList);\n helper.xdmPut(xdm,'web.webInteraction.type','other');\n //helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1)); //Abu to review eTarg.href not available\n\n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //helper.w_endTrcking();\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n helper.evList = '';\n //console.log('tl() target:impression:'+targetList);\n //delete pageDetails.targetCampaignViewed;
16\n //delete pageDetails.targetLocationId;\n //delete pageDetails.pageModules;\n //delete pageDetails.action;\n //helper.w_endTrcking();\n return true;\n }else{\n return false;\n }\n};\nhelper.w_trackNotification = function(evt, data){\n window.xdm ={};\n xdm = helper.prepareIdentity(xdm);\n var pdNotification = (typeof(data) == 'object'? data.notification:''),\n notifications = '';\n if(pdNotification && pdNotification.length>=1){\n for(var i=0; i<pdNotification.length; i++){\n //notifications=s3.apl(notifications,(pdNotification[i].notificationTitle||''),',',2);\n notifications=helper.apl(notifications,(pdNotification[i].notificationTitle||''),',',2);\n }\n }\n if(notifications){\n if(evt==='impression'){\n // s3.events = 'event97';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event97',{ value: 1 });\n \n }else if(evt==='close'){\n // s3.events = 'event99';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event99',{ value: 1 });\n }\n // s3.linkTrackVars = s3.w_ltv +',eVar75,events';\n // s3.eVar75 = notifications; // record ttid name only\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar75',notifications);\n // s3.linkTrackEvents = s3.events;\n // s3.eVar6=s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n // s3.eVar1=s3.prop1 ='impression';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','impression');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','impression');\n // s3.tl(true, 'o', 'notification:'+evt+':'+ notifications); // 'eTarg' assumes this function only called from link clicks\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', 'notification:'+evt+':'+ notifications);\n helper.xdmPut(xdm,'web.webInteraction.type','other');\n //helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1));\n\n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //helper.w_endTrcking();\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n //console.log('tl() target:impression:'+targetList);\n helper.evList = '';\n delete pageDetails.internalCampaignViewed;\n delete pageDetails.targetCampaignViewed;\n //helper.w_endTrcking();\n return true;\n } else{\n return false;\n }\n};\n// YouTube video player tracking Code\nhelper.w_trackMedia = function(data){\n var vId = data.id,\n vTitle = data.title ||'',\n vDuration = data.duration ||'', \n vEvent = data.event ||'',\n ctime = data.currentTime ||'';\n // s3.linkTrackEvents = s3.events = '';\n // s3.linkTrackVars = '';\n // s3.prop20 = '';\t\t\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop20','');\n if (vEvent === 'loaded'){\n // s3.linkTrackEvents=s3.events = 'event81';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event81',{ value: 1 });\n } else if(vEvent === 'open' && vId ){\n // s3.linkTrackEvents=s3.events = 'event82';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event82',{ value: 1 });\n } else if(vEvent === '25' && vId ){\n // s3.linkTrackEvents=s3.events = 'event83';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event83',{ value: 1 });\n } else if(vEvent === '50' && vId){\n // s3.linkTrackEvents=s3.events = 'event84';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event84',{ value: 1 });\n } else if(vEvent === '75' && vId){\n // s3.linkTrackEvents=s3.events = 'event85';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event85',{ value: 1 });\n } else if(vEvent === 'completed'){\n // s3.linkTrackEvents=s3.events = 'event79';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event79',{ value: 1 });\n } else if(vEvent === 'skipping'){\n // s3.prop20 ='video:skipped:'+ctime;
16\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop20','video:skipped:'+ctime);\n // s3.linkTrackEvents = s3.events='event69';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event69',{ value: 1 });\n } else if(vEvent === 'stop'){\n // s3.prop20 ='video:paused:'+ctime;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop20','video:paused:'+ctime);\n // s3.linkTrackEvents = s3.events='event69';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event69',{ value: 1 });\n } \n // s3.linkTrackVars = s3.w_ltv +',eVar80,prop68,prop20,events';\n // s3.eVar80 = s3.prop68 = vDuration + '|' + vTitle; // record ttid name only\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop68',vDuration + '|' + vTitle);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar80',vDuration + '|' + vTitle);\n // s3.eVar6=s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n //s3.eVar1=s3.prop1 ='video';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','video');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','video');\n // s3.tl(true, 'o', 'video:'+vEvent+':'+ vId); // 'eTarg' assumes this function only called from link clicks\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', 'video:'+vEvent+':'+ vId);\n helper.xdmPut(xdm,'web.webInteraction.type','other');\n //helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1));\n\n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //helper.w_endTrcking();\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n //console.log('tl() target:impression:'+targetList);\n helper.evList = '';\n delete data.event;\n delete data.currentTime;\n //helper.w_endTrcking();\n return true;\n};\n// Dynamic video player tracking Code\nhelper.w_trackDynamicMedia = function(data){\n \n //console.log('vTitle:'+data.title+':vDuration:'+data.duration+':vEvent:'+data.eventType+':ctime:'+data.currentTime);\n var vId = data.id,\n vTitle = data.title, //Overwrite video title from URL\n vDuration = data.duration || 0, \n vEvent = data.eventType || '',\n ctime = data.currentTime || 0 ;\n\n helper.w_log('dynamic video:', 'vTitle:'+vTitle+':vDuration:'+vDuration+':vEvent:'+vEvent+':ctime:'+ctime);\n //console.log('vTitle:'+vTitle+':vDuration:'+vDuration+':vEvent:'+vEvent+':ctime:'+ctime);\n // s3.linkTrackEvents = s3.events = '';\n // s3.linkTrackVars = ''; \n // s3.prop20 = '';\n\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props',{});\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars',{});\n helper.xdmPut(xdm,'_experience.analytics.event1to100',{});\n \n\n if (vEvent === 'load'){\n // s3.linkTrackEvents=s3.events = 'event81';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event81',{ value: 1 });\n } else if(vEvent === 'play' && vTitle ){\n // s3.linkTrackEvents=s3.events = 'event82';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event82',{ value: 1 });\n } else if(vEvent === 'milestone25' && vTitle ){\n // s3.linkTrackEvents=s3.events = 'event83';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event83',{ value: 1 });\n } else if(vEvent === 'milestone50' && vTitle){\n // s3.linkTrackEvents=s3.events = 'event84';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event84',{ value: 1 });\n } else if(vEvent === 'milestone75' && vTitle){\n // s3.linkTrackEvents=s3.events = 'event85';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event85',{ value: 1 });\n } else if(vEvent === 'complete'){\n // s3.linkTrackEvents=s3.events = 'event79';\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event79',{ value: 1 });\n } else if(vEvent === 'seek'){\n // s3.prop20 ='video:skipped:'+ctime;
16\n //helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop20','player:skipped:'+ctime);\n // s3.linkTrackEvents = s3.events='event69';\n //helper.xdmPut(xdm,'_experience.analytics.event1to100.event72',{ value: 1 });\n } else if(vEvent === 'stop'){\n // s3.prop20 ='video:paused:'+ctime;\n //helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop20','player:paused:'+ctime);\n // s3.linkTrackEvents = s3.events='event69'; // new video player event 72\n //helper.xdmPut(xdm,'_experience.analytics.event1to100.event72',{ value: 1 });\n } \n // s3.linkTrackVars = s3.w_ltv +',eVar80,prop68,prop20,events';\n // s3.eVar80 = s3.prop68 = vDuration + '|' + vTitle; // record ttid name only\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop68', vTitle);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar80', vTitle);\n // s3.eVar6=s3.prop6 = helper.lowerCase(pageDetails.siteBrand);\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop6',helper.lowerCase(pageDetails.siteBrand));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar6',helper.lowerCase(pageDetails.siteBrand));\n //s3.eVar1=s3.prop1 ='video';\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop1','player');\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar1','player');\n if(pageDetails.targetLocation){\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop32',helper.lowerCase(pageDetails.targetLocation));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar52',helper.lowerCase(pageDetails.targetLocation));\n }\n //new event for the video player 72 & event details in Prop 20\n if(pageDetails.targetCampaign && /^(pause|seek)/i.test(vEvent)){\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop20','player:'+vEvent+':'+ctime);\n } else {\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop20','player:'+vEvent);\n }\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event72',{ value: 1 });\n // s3.tl(true, 'o', 'video:'+vEvent+':'+ vId); // 'eTarg' assumes this function only called from link clicks\n helper.xdmPut(xdm,'web.webInteraction.linkClicks',{ value: 1 });\n helper.xdmPut(xdm,'web.webInteraction.name', 'player:'+ vTitle);\n helper.xdmPut(xdm,'web.webInteraction.type','other');\n //helper.xdmPut(xdm,'web.webInteraction.URL', helper.lowerCase(eTarg.href, 1));\n if(pageDetails.targetCampaign && /^(play|complete|milestone75)/i.test(vEvent)){\n //s3.prop33 = s3.eVar33 = ttIdQuerystring\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop33',helper.lowerCase(pageDetails.targetCampaign));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar33',helper.lowerCase(pageDetails.targetCampaign));\n \n //s3.prop53 = s3.eVar53 = ttAction;\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.props.'+'prop53',helper.lowerCase('player:'+ vEvent));\n helper.xdmPut(xdm,'_experience.analytics.customDimensions.eVars.'+'eVar53',helper.lowerCase('player:'+ vEvent));\n //appendEvent(9) = targetClickThroughs\n helper.xdmPut(xdm,'_experience.analytics.event1to100.event9',{ value: 1 });\n }\n\n alloy(\"sendEvent\", {\n \"xdm\": xdm //,\n //\"data\": data\n }).then(function(result) {\n //helper.w_endTrcking();\n //store data\n }).catch(function(error) {\n // Tracking the event failed.\n console.log(\"SendError:\" + error);\n });\n //console.log('tl() target:impression:'+targetList);\n helper.evList = '';\n //helper.xdmRemove(xdm,'_experience.analytics.event1to100');\n //delete data.eventType;\n //delete data.currentTime;\n //helper.w_endTrcking();\n return true;\n};\nhelper.addHandler(document, 'click', helper.w_linkTracking);\n\n\n\n\n_satellite.logger.info('helper library - local', helper)\n\nif(!window.helper){\n _satellite.logger.info('helpLIbInWinScope')\n window.helper = helper;\n}\n\n_satellite.logger.info('helper library - window', window.helper)\n_satellite.logger.info('helper --> end')", 17language:"javascript"}}]},{id:"RLfc3bbe7c4fa2463690d223080c635e91",name:"Page: cmsservice redirect #92",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:92}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){return"https://www.cmsservices.westpac.com.au/app/native/connect"==document.URL}
17}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{source:'window.location.href = "https://www.westpac.com.au/contact-us/mobile-banking/";',language:"javascript"}}]},{id:"RLfecaffb922e742ba9240cb51eceb6e83",name:"Page: Deeplinking & Cookie placement #80",events:[{modulePath:"core/src/lib/events/libraryLoaded.js",settings:{},ruleOrder:80}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");return"/deeplink-web-redirect"==(e=e.replace(/\/content\/public\/wbc\/en/,""))}}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:'(function() {\n "use strict";\n \n var jsonConfigUrl = "https://www.westpac.com.au/_services/serialiser/deeplink-rule.serialise.json",\n cookieDomain = ".westpac.com.au",\n cookieName = "htsm";\n \n $(function() {\n setTimeout(function(){\n $(document.body).append(\n $(\n \'<div style="position:absolute; top:0; left:0; background-color:#fff; z-index:999999; background-color:#fff; height:100vh; width:100vw;">\' +\n \' <span class="icon icon-size-lg icon-loading " style="position:absolute; left:46%; top:20%;"></span>\' +\n "</div>"\n )\n );\n }, 200);\n });\n \n $.ajax({\n url: jsonConfigUrl,\n dataType: \'json\',\n jsonpCallback: \'callback\',\n success: function (result) {\n if (\n result &&\n result["data"] &&\n result["data"]["redirect-mapping"] &&\n result["data"]["redirect-mapping"]["_array"]\n ) {\n processResult(result["data"]["redirect-mapping"]["_array"]);\n }\n },\n error: function(errorCallback) {\n console.log("Error: ajax call failed!");\n }\n });\n \n function processResult(urlArray) {\n var paramValue = getUrlParameter("key");\n if(paramValue){\n for (var i = 0, len = urlArray.length; i < len; i++) {\n if (decodeURIComponent(urlArray[i].key) === paramValue) {\n if (urlArray[i].key) {\n setCookie(cookieName, urlArray[i].target, "", cookieDomain);\n }\n if (urlArray[i].target) {\n window.location.href = urlArray[i].target;\n }\n break;\n }\n }//end for\n }//end if\n }\n \n function setCookie(name, value, hours, domain) {\n var date, seconds, maxAge, expires;\n \n if (hours) {\n date = new Date();\n seconds = hours * 60 * 60;\n maxAge = seconds > 0 ? seconds : 0;\n date.setTime(date.getTime() + seconds * 1000);\n expires = "; expires=" + date.toGMTString() + ";Max-Age=" + maxAge;\n } else {\n expires = "";\n }\n \n //value = encodeURIComponent(value);\n if (domain) {\n document.cookie = name + "=" + value + expires + ";domain=" + domain + "; path=/";\n } else {\n document.cookie = name + "=" + value + expires + "; path=/";\n }\n }\n \n function getUrlParameter(key) {\n \n var urlParams;\n if(window.location.hash) {\n urlParams = window.location.search.substring(1) + window.location.hash;\n } else {\n urlParams = window.location.search.substring(1);\n }\n var urlParamsArr = urlParams.split("&"),\n urlParam;\n \n //fix for ?webmid as URL parameter\n for(var i=0; i < urlParamsArr.length; i++) {\n var tempUrlParam;\n if((urlParamsArr[i].indexOf("?webmid")) !== -1) {\n var tempArray = urlParamsArr[i].split("?");\n for(var j=0; j<tempArray.length; j++) {\n urlParamsArr[i] = tempArray[j];\n i++;\n }\n }\n }\n\n for (var i = 0; i < urlParamsArr.length; i++) {\n urlParam = urlParamsArr[i].split("=");\n \n if (urlParam[0] === key) {\n return urlParam[1] === undefined ? "" : urlParam[1];\n }\n }\n }\n })();',language:"javascript"}}]},{id:"RLfffb7a76520244eeba1eca0daca456db",name:"Page: Verizon Pixel",events:[{modulePath:"core/src/lib/events/windowLoaded.js",settings:{},ruleOrder:50}],conditions:[{modulePath:"core/src/lib/conditions/customCode.js",settings:{source:function(){var e=window.location.pathname.toLowerCase().replace(/\/$/,"");if(e=(e=e.replace(/\/content\/sbg\/stg\/en/,"")).replace(/\.html$/,""),["/personal-banking/credit-cards/low-rate-cards/westpac-lite-card","/personal-banking/credit-cards/low-rate-cards/low-rate","/personal-banking/credit-cards/reward/altitude-black","/personal-banking/credit-cards/reward/altitude-platinum","/personal-banking/credit-cards/reward/americanexpress-platinum","/personal-banking/credit-cards/reward/americanexpress-black","/personal-banking/credit-cards/reward/americanexpress-platinum-black","/personal-banking/credit-cards/low-fee/low-fee-card","/personal-banking/credit-cards/low-fee/low-fee-platinum-card","/personal-banking/bank-accounts/transaction","/personal-banking/bank-accounts/transaction/choice","/personal-banking/bank-accounts/transaction/choice/under-21","/personal-banking/bank-accounts/transaction/choice/tertiary-student","/personal-banking/bank-accounts/moving-to-australia","/personal-banking/bank-accounts/transaction/choice/international-student","/personal-banking/bank-accounts/transaction/choice/migrants","/personal-banking","/business-banking","/personal-banking/bank-accounts","/personal-banking/credit-cards","/personal-banking/home-loans/calculator/mortgage-repayment","/personal-banking/bank-accounts/term-deposit","/personal-banking/home-loans","/personal-banking/home-loans/calculator","/personal-banking/credit-cards/reward/altitude-black/affiliate","/personal-banking/pers
17onal-loans","/personal-banking/credit-cards/reward","/personal-banking/home-loans/calculator/mortgage-calculator","/personal-banking/bank-accounts/savings-accounts","/personal-banking/home-loans/variable-interest-rates","/personal-banking/bank-accounts/savings-accounts/esaver","/personal-banking/bank-accounts/savings-accounts/reward-saver","/business-banking/bank-accounts","/business-banking/bank-accounts/mybusiness-solutions","/personal-banking/mobile-wallets/paywear","/personal-banking/mobile-wallets/paywear/thank-you","/personal-banking/home-loans/all-interest-rates","/personal-banking/home-loans/fixed-rate-loans-interest-rates","/personal-banking/personal-loans/unsecured-personal-loan","/personal-banking/personal-loans/car-loan","/personal-banking/credit-cards/low-rate","/personal-banking/credit-cards/low-rate/affiliateexclusive","/personal-banking/credit-cards/low-fee/student","/business-banking/credit-cards","/personal-banking/home-loans/first-home","/personal-banking/home-loans/home-loan-package","/personal-banking/credit-cards/reward/altitude","/business-banking/merchant-services","/business-banking/business-loans","/personal-banking/credit-cards/comparison","/personal-banking/personal-loans/flexi-loan","/personal-banking/home-loans/variable","/personal-banking/home-loans/variable/mortgage-offset-accounts","/personal-banking/home-loans/investment-property","/personal-banking/credit-cards/low-fee","/personal-banking/moving-to-australia/migrant-banking","/personal-banking/home-loans/switch-loan","/business-banking/bank-accounts/one-account","/personal-banking/home-loans/fixed","/business-banking/savings-accounts/term-deposits","/business-banking/savings-accounts","/personal-banking/home-loans/variable/first-home-loan","/personal-banking/home-loans/fixed/fixed-home-loan","/personal-banking/home-loans/next-home","/personal-banking/credit-cards/low-fee/55-day-platinum","/personal-banking/home-loans/variable/investment-home-loan","/personal-banking/superannuation","/business-banking/business-loans/small-business-loans","/personal-banking/credit-cards/low-fee/55-day","/business-banking/bank-accounts/flexi-account","/business-banking/merchant-services/online-payments","/business-banking/business-loans/equipment-finance","/business-banking/savings-accounts/cash-reserve","/personal-banking/home-loans/fixed/fixed-rate-home-loan","/business-banking/bank-accounts/business-one-high-plan","/business-banking/credit-cards/rewards-cards","/business-banking/merchant-services/eftpos","/business-banking/merchant-services/mobile-payments","/business-banking/bank-accounts/debit-mastercard","/business-banking/bank-accounts/not-for-profit-community-cheque","/business-banking/credit-cards/rewards-cards/altitude-platinum","/business-banking/credit-cards/rewards-cards/altitude-gold","/business-banking/credit-cards/rewards-cards/businesschoice-rewards","/personal-banking/investments/deposits/term-deposit","/personal-banking/home-loans/variable/first-option-investment-homeloan","/personal-banking/home-loans/first-home/benefits-for-first-home-buyers","/business-banking/business-loans/commercial-loans","/personal-banking/home-loans/wonder","/personal-banking/bank-accounts/tools-calculators-rates/pbba-all-accounts-rates","/personal-banking/bank-accounts/transaction/mathspace","/business-banking/savings-accounts/cash-reserve-bonus-interest","/business-banking/credit-cards/low-rate-card","/business-banking/business-loans/agrifinance","/business-banking/merchant-services/processed-payments","/business-banking/savings-accounts/not-for-profit","/business-banking/savings-accounts/agri-farm-management-deposit","/business-banking/bank-accounts/agri-farm-account","/business-banking/merchant-services/eftpos/westpac-payments","/personal-banking/bank-accounts/savings-accounts/bump","/business-banking/merchant-services/mobile-payments/genie","/business-banking/online-banking/your-business-banking","/business-banking/online-banking","/business-banking/business-loans/small-business-loans/business-overdraft","/business-banking/business-loans/small-business-loans/business-loan","/business-banking/business-loans/small-business-loans/insurance-premium-finance","/business-banking/merchant-services/eftpos/countertop-wireless-terminal","/business-banking/merchant-services/eftpos/mobile","/business-banking/bank-accounts/compare-all","/business-banking/credit-cards/compare-business-cards","/business-banking/bank-accounts/one-account-offer","/business-banking/merchant-services/compare-eftpos-solutions","/business-banking/merchant-services/mobile-payments/meet-genie","/personal-banking/credit-cards/low-rate-cards","/personal-banking/home-loans/first-time-investor","/international-travel","/international-travel/travel-money-card","/international-travel/access-money-overseas","/international-travel/access-money-overseas/atms","/personal-banking/bank-accounts/savings-accounts/life","/business-banking/business-loans/small-business-loans/unsecured-business-overdraft","/personal-banking/bank-accounts/transaction/choice/wallet-dance","/personal-banking/online-banking/making-the-most/estatements","/personal-banking/bank-accounts/transaction-history","/personal-banking/bank-accounts/card-hold","/
17personal-banking/bank-accounts/transaction/debit-mastercard","/personal-banking/credit-cards/smartplan","/personal-banking/credit-cards/low-rate-cards/westpac-lite-card/affiliate","/personal-banking/credit-cards/reward/altitude-platinum/affiliate","/personal-banking/credit-cards/reward/altitude-black/qantas","/personal-banking/bank-accounts/transaction/debit-mastercard/rollmore","/personal-banking/credit-cards/manage/getting-started/activating","/personal-banking/credit-cards/balance-transfer-cards","/personal-banking/home-loans/our-home-loans","/personal-banking/home-loans/first-home/how-much-can-i-borrow","/personal-banking/home-loans/first-home/how-much-i-need-upfront","/personal-banking/online-banking/alexa","/security","/about-westpac/careers","/personal-banking/bank-accounts/under-21s-and-students","/personal-banking/home-loans/first-home/owner-occupied","/help","/personal-banking/credit-cards/low-fee/55-day-platinum/affiliate","/personal-banking/credit-cards/americanexpress/altitude-black/affiliate","/personal-banking/credit-cards/americanexpress/altitude-platinum/affiliate","/security/fraud-and-scams/latest-scams","/security/how-we-protect-you","/security/how-to-protect-yourself","/security/fraud-and-scams","/security/how-to-protect-yourself/online-banking-security","/security/additional-support","/personal-banking/home-loans/variable-rate-home-loans","/business-banking/merchant-services/eftpos/presto-smart","/personal-banking/bank-accounts/savings-accounts/life/savingforahome","/personal-banking/credit-cards/americanexpress/altitude-platinum/affiliate-exclusive","/personal-banking/services/tax-time-lp","/personal-banking/bank-accounts/transaction/choice/migrants/simplified-chinese","/personal-banking/home-loans/velocity","/about-westpac/sustainability/initiatives-for-you/customers-financial-hardship","/international-travel/international-transfers/litepay","/personal-banking/bank-accounts/savings-accounts/esaver/chinese","/personal-banking/mobile-wallets/google-pay","/business-banking/bank-accounts/one-account/media","/about-westpac/careers/veterans","/personal-banking/home-loans/calculator/home-saver","/personal-banking/personal-loans/xl-dm/unsecured-personal-loan","/personal-banking/credit-cards/low-rate/cashback-cp","/international-travel/travel-money-card/black-friday-sales","/business-banking/business-loans/equipment-finance/car-finance","/business-banking/business-loans/equipment-finance/equipment-finance","/security/westpac-protect-centre","/security/how-we-protect-you/westpac-protect","/business-banking/business-loans/equipment-finance-lp","/business-banking/online-banking/your-business-banking/biz-invoice","/personal-banking/bank-accounts/savings-accounts/savings-goals","/personal-banking/bank-accounts/transaction/debit-mastercard/win","/help/lifemoments/separation-divorce/help-with-your-finances","/help/lifemoments/separation-divorce/separation-checklist","/help/lifemoments/separation-divorce","/about-westpac/careers/stem-phd-program","/personal-banking/online-banking/making-the-most/priority-you","/personal-banking/online-banking/popular-features/priority-you-offers","/business-banking/biz-invoice","/business-banking/merchant-services/presto-payments","/business-banking/merchant-services/presto-payments-lp","/personal-banking/bank-accounts/life-choice","/security/westpac-protect-centre","/security/how-to-report","/business-banking/businesshub","/personal-banking/home-loans/manage-home-loan","/personal-banking/home-loans/investing-in-property","/personal-banking/credit-cards/velocity","/personal-banking/credit-cards/manage/rewards/economy-x","/personal-banking/credit-cards/manage/rewards/velocity-faqs","/help/community/million-meals","/business-banking/bank-accounts/one-account/media-offer","/help/community/city2surf","/personal-banking/credit-cards/reward/altitude-platinum/bonusgiftcard","/personal-banking/home-loans/calculator/home-equity-calculator/#/equity-calculator","/personal-banking/online-banking/making-the-most/new-payments-platform","/business-banking/industries/professional-business-services","/help/lifemoments/setting-up-life/getting-married","/help/lifemoments/setting-up-life/getting-married/planning-a-wedding","/help/lifemoments/setting-up-life/getting-married/married-life","/help/lifemoments/setting-up-life/getting-married/engagement-costs","/help/lifemoments/setting-up-life/getting-married/saving-for-a-honeymoon","/personal-banking/home-loans/refinance","/personal-banking/online-banking/making-the-most/contact-us-in-app","/personal-banking/online-banking/ways-to-bank/mobile-banking","/personal-banking/credit-cards/reward/altitude-black/altitude-rewards","/personal-banking/credit-cards/reward/altitude-platinum/altitude-rewards","/brokers/helping","/help/lifemoments/youth/wendy","/about-westpac/sustainability/initiatives-for-you/stem-commitment","/business-banking/small-business-relief","/help/disaster-relief/coronavirus/home-loans","/brokers/home/covid-19-support","/help/disaster-relief/coronavirus/business","/personal-banking/online-banking/getting-started","/personal-banking/online-banking/making-the-most/update-details","/about-westpac/sustainability/initiatives-for-you/customers-financial-hardship/apply-for-assistance","/help/disaster-relief/coronavirus/financially-impacted","/personal-banking/home-loans/split-home-loan","/brokers/covid-19-support","/personal-banking/online-banking/making-the-most/rewards-and-offers/offers","/personal-banking/home-loans/manage-home-loan/repayment-options-to-manage-cashflow","/help/disaster-relief/coronavirus/business/unsecured-business-loans","/personal-banking/home-loans/investing-in-property/managing-and-renewing-a-tenancy","/personal-banking/online-banking/making-the-most/manage-term-deposit","/personal-banking/bank-accounts/spend-save-ntb","/personal-banking/bank-accounts/spend-save-etb","/personal-banking/bank-accounts/spend-save-etb1","/personal-banking/bank-accounts/spend-save-nta","/personal-banking/bank-accounts/spend-save-reward","/business-banking/biz-invoice/features-benefits/bpay","/business-banking/business-loans/sme-unsecured-lending-covid-19-offer","/business-banking/industries/professional-business-services/#feesynergy","/business-banking/industries/professional-business-services/#reports","/personal-banking/investments/share-trading","/personal-banking/superannuation/self-managed-superannuation-accounts","/personal-banking/investments/build-your-own-portfolio","/personal-banking/investments/ready-made-portfolio","/personal-banking/investments","/personal-banking/superannuation/bt-super-invest","/business-banking/superannuation","/business-banking/superannuation/bt-super","/business-banking/superannuation/super-profile","/business-banking/superannuation/bt-super-concierge","/personal-banking/insurance","/personal-banking/insurance/home-insurance/home-and-contents-insurance","/personal-banking/insurance/home-insurance/building-insurance","/personal-banking/insurance/home-insurance/contents-insurance","/personal-banking/insurance/home-insurance/landlord-insurance","/personal-banking/insurance/home-insurance/landlord-insurance/building","/personal-banking/insurance/home-insurance/landlord-insurance/contents","/personal-banking/insurance/home-insurance/renters-insurance","/personal-banking/insurance/car-insurance","/personal-banking/insurance/travel-insurance","/personal-banking/insurance/home-insurance","/personal-banking/insurance/rahic","/personal-banking/insurance/home-insurance/make-a-claim","/personal-banking/investments/share-trading/start-online-investing","/personal-banking/credit-cards/interest-free/flex-card","/personal-banking/credit-cards/low-rate-cards/low-rate/cashback-summary","/personal-banking/credit-cards/low-rate-cards/low-rate/summary","/personal-banking/credit-cards/low-rate-cards/westpac-lite-card/summary","/personal-banking/credit-cards/low-fee/summary","/personal-banking/credit-cards/reward/altitude-platinum/summary","/personal-banking/credit-cards/reward/altitude-black/summary","/personal-banking/credit-cards/reward/altitude-qantas-platinum/summary","/personal-banking/credit-cards/reward/altitude-qantas-black/summary","/personal-banking/credit-cards/reward/altitude-velocity-platinum/summary","/personal-banking/credit-cards/reward/altitude-velocity-black/summary","/personal-banking/credit-cards/reward/altitude-platinum/package-summary","/business-banking/merchants-and-payments/eftpos/eftpos-now","/business-banking/merchants-and-payments/eftpos/eftpos-fees","/business-banking/merchants-and-payments/flat-rate-pricing","/home-loans/all-interest-rates","/home-loans/calculator/home-equity-calculator/#/equity-calculator","/home-loans/calculator/mortgage-calculator","/home-loans/calculator/mortgage-repayment"].indexOf(e)>=0)return!0}}},{modulePath:"core/src/lib/conditions/valueComparison.js",settings:{comparison:{operator:"isTrue"},leftOperand:"%is3rdPartyAllowed%"}}],actions:[{modulePath:"core/src/lib/actions/customCode.js",settings:{global:!0,source:"/content/dam/public/dtm/wbc/launch-EN05fb55e8cfed49ba8f881781f47d5522/cf63e89810c4/c4e4fe46a295/a79cb573dcb4/RC137677587de141bc9e632888e304cc8e-source.min.js",language:"javascript",isExternal:!0}}]}]};var _satellite=function(){"use strict";
17function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function n(){return ae?te:(ae=1,te=function(e){return e})}function t(){if(se)return re;se=1;var e={LOG:"log",INFO:"info",DEBUG:"debug",WARN:"warn",ERROR:"error"},n="\ud83d\ude80",t=10===parseInt((/msie (\d+)/.exec(navigator.userAgent.toLowerCase())||[])[1])?"[Launch]":n,a=!1,r=100,s=new Set,i=function(n){if(a&&window.console){var r=Array.prototype.slice.call(arguments,1);r.unshift(t),n!==e.DEBUG||window.console[n]||(n=e.INFO),window.console[n].apply(window.console,r)}},o=i.bind(null,e.LOG),c=i.bind(null,e.INFO),l=i.bind(null,e.DEBUG),d=i.bind(null,e.WARN),p=i.bind(null,e.ERROR),u=function(){var n=arguments[0];if("string"!=typeof n&&(n=String(n)),a)i.apply(null,[e.WARN].concat(Array.prototype.slice.call(arguments)));else if(!s.has(n)){if(s.add(n),s.size>r){var t=s.values().next().value;s.delete(t)}var o=a;a=!0,i.apply(null,[e.WARN].concat(Array.prototype.slice.call(arguments))),a=o}},g={log:o,info:c,debug:l,warn:d,error:p,deprecation:u,createPrefixedLogger:function(e){var n="["+e+"]";return{log:o.bind(null,n),info:c.bind(null,n),debug:l.bind(null,n),warn:d.bind(null,n),error:p.bind(null,n)}}};return Object.defineProperty(g,"outputEnabled",{get:function(){return a}
17,set:function(e){!1===a&&!0===e&&s.clear(),a=e},enumerable:!0,configurable:!0}),re=g}function a(){return oe?ie:(oe=1,ie=document)}function r(){return le?ce:(le=1,ce=Object.assign)}function s(){return pe?de:(pe=1,de=window)}function i(){function e({window:e}){return function(n,t,a,r){var s,i=Boolean(t&&Array.isArray(a)),o=Boolean(i&&n),c=document.createElement("a");if(i){var l=function(){var e=new Error("Unable to find the Library Embed Code for Dynamic Host Resolution.");throw e.code="dynamic_host_resolver_constructor_error",e};if(n&&(/^((https?:)?\/\/).+/.test(n)||l(),/^\/\/.+/.test(n)?c.href=e.location.protocol+n:c.href=n),c.hostname||l(),-1===a.indexOf(c.hostname)){var d=new Error("This library is not authorized for this domain. Please contact your CSM for more information.");throw d.code="dynamic_host_not_allowed",d}}var p=function(){if(null!=s)return s;if(o){var e=c.host;/:80$/.test(e)?e=e.replace(":80",""):/:80\/$/.test(e)?e=e.replace(":80/",""):/:443$/.test(e)?e=e.replace(":443",""):/:443\/$/.test(e)&&(e=e.replace(":443/","")),s=c.protocol+"//"+e}else s="";return s},u=function(e){return o&&"string"==typeof e?[p(),"/"===e.charAt(0)?e.slice(1):e].join("/"):e},g={getTurbineHost:p,decorateWithDynamicHost:u,get isDynamicEnforced(){return i}};if(e){function m(n){n?e.dynamicHostResolver=g:delete e.dynamicHostResolver}r.onDebugChanged(m),m(r.getDebugEnabled())}return g}}if(ge)return ue;ge=1;const t=n()(e);return ue=t({window:s()})}function o(){return be?me:(be=1,me=function(e){var n=[];return e.forEach((function(e){e.events&&e.events.forEach((function(t){n.push({rule:e,event:t})}))})),n.sort((function(e,n){return e.event.ruleOrder-n.event.ruleOrder}))})}function c(){if(fe)return he;fe=1;var e="debug";return he=function(n,t){var a=function(){return"true"===n.getItem(e)},r=function(t){n.setItem(e,t)},s=[],i=function(e){s.push(e)};return t.outputEnabled=a(),{onDebugChanged:i,getDebugEnabled:a,setDebugEnabled:function(e){a()!==e&&(r(e),t.outputEnabled=e,s.forEach((function(n){n(e)})))}}},he}function l(){if(ye)return ve;ye=1;var e="Module did not export a function.";return ve=function(n,t,a){return function(r,s,i){i=i||[];var o=n.getModuleExports(r.modulePath);if("function"!=typeof o)throw new Error(e);var c=n.getModuleDefinition(r.modulePath),l=r.settings||{};!r.hasTransformedFilePaths&&c.filePaths&&(a(l,c.filePaths,r.modulePath),r.hasTransformedFilePaths=!0);var d=t(l,s);return o.bind(null,d).apply(null,i)}}}function d(){return we?ke:(we=1,ke=function(e){return"string"==typeof e?e.replace(/\s+/g," ").trim():e})}function p(){function e({window:e}){var n="com.adobe.reactor.";return function(t,a){var r=n+(a||"");return{getItem:function(n){try{return e[t].getItem(r+n)}catch(e){return null}},setItem:function(n,a){try{return e[t].setItem(r+n,a),!0}catch(e){return!1}}}}}if(Pe)return xe;Pe=1;const t=n()(e);return xe=t({window:s()})}function u(){if(_e)return Ce;_e=1;var e=p(),n="dataElements.",t=e("sessionStorage",n),a=e("localStorage",n),r={PAGEVIEW:"pageview",SESSION:"session",VISITOR:"visitor"},s={},i=function(e){var n;try{n=JSON.stringify(e)}catch(e){}return n};return Ce={setValue:function(e,n,o){var c;switch(n){case r.PAGEVIEW:return void(s[e]=o);case r.SESSION:return void((c=i(o))&&t.setItem(e,c));case r.VISITOR:return void((c=i(o))&&a.setItem(e,c))}},getValue:function(e,n){var i;switch(n){case r.PAGEVIEW:return s.hasOwnProperty(e)?s[e]:null;case r.SESSION:return null===(i=t.getItem(e))?i:JSON.parse(i);case r.VISITOR:return null===(i=a.getItem(e))?i:JSON.parse(i)}}}}function g(){function e({cleanText:e,dataElementSafe:n,logger:t}){return function(a,s,i,o,c){return function(l,d){var p=s(l);if(!p)return o?"":void 0;var u,g,m=p.storageDuration;try{u=a.getModuleExports(p.modulePath),g=a.getModuleDefinition(p.modulePath)}catch(e){return void t.error(r(p,l,e.message,e.stack))}if("function"==typeof u){var b,h=p.settings||{};!p.hasTransformedFilePaths&&g.filePaths&&(c(h,g.filePaths,p.modulePath),p.hasTransformedFilePaths=!0);try{b=u(i(h,d),d)}catch(e){return void t.error(r(p,l,e.message,e.stack))}return m&&(null!=b?n.setValue(l,m,b):b=n.getValue(l,m)),null==b&&null!=p.defaultValue&&(b=p.defaultValue),"string"==typeof b&&(p.cleanText&&(b=e(b)),p.forceLowerCase&&(b=b.toLowerCase())),b}
17t.error(r(p,l,"Module did not export a function."))}}}if(De)return Te;De=1;var a=n(),r=function(e,n,t,a){return"Failed to execute data element module "+e.modulePath+" for data element "+n+". "+t+(a?"\n"+a:"")};const s=a(e);return Te=s({cleanText:d(),logger:t(),dataElementSafe:u()})}function m(){if(Ie)return Se;Ie=1;var e=d(),n={text:function(e){return e.textContent},cleanText:function(n){return e(n.textContent)}},t=function(e,t,a){for(var r,s=e,i=0,o=t.length;i<o;i++){if(null==s)return;var c=t[i];if(a&&"@"===c.charAt(0)){var l=c.slice(1);s=n[l](s)}else if(s.getAttribute&&(r=c.match(/^getAttribute\((.+)\)$/))){var d=r[1];s=s.getAttribute(d)}else s=s[c]}return s};return Se=function(e,n,a){return function(r,s){var i;if(n(r))i=a(r,s);else{var o=r.split("."),c=o.shift();"this"===c?s&&(i=t(s.element,o,!0)):"event"===c?s&&(i=t(s,o)):"target"===c?s&&(i=t(s.target,o)):i=t(e[c],o)}return i}}}function b(){return Ve?Ee:(Ve=1,Ee=function(e,n){return function(t){var a=t.split(".")[0];return Boolean(n(t)||"this"===a||"event"===a||"target"===a||e.hasOwnProperty(a))}})}function h(){return Ne?Re:(Ne=1,Re=function(e,n,t){var a={exports:{}};return e.call(a.exports,a,a.exports,n,t),a.exports})}function f(){function e({extractModuleExports:e,logger:n}){return function(){var t={},a=function(e){var n=t[e];if(!n)throw new Error("Module "+e+" not found.");return n},r=function(){Object.keys(t).forEach((function(e){try{s(e)}catch(a){var t="Error initializing module "+e+". "+a.message+(a.stack?"\n"+a.stack:"");n.error(t)}}))},s=function(n){var t=a(n);return t.hasOwnProperty("exports")||(t.exports=e(t.definition.script,t.require,t.turbine)),t.exports};return{registerModule:function(e,n,a,r,s){var i={definition:n,extensionName:a,require:r,turbine:s};i.require=r,t[e]=i},hydrateCache:r,getModuleExports:s,getModuleDefinition:function(e){return a(e).definition},getModuleExtensionName:function(e){return a(e).extensionName}}}}if(je)return Oe;je=1;const a=n()(e);return Oe=a({extractModuleExports:h(),logger:t()})}function v(){function e({logger:e}){return function(n){var t=!1;return function(a,r){var s=n._monitors;s&&(t||(e.warn("The _satellite._monitors API may change at any time and should only be used for debugging."),t=!0),s.forEach((function(e){e[a]&&e[a](r)})))}}}if(Le)return Ae;Le=1;const a=n()(e);return Ae=a({logger:t()})}function y(){function e({logger:e}){return function(n,t,a){var r,s,i,o,c=[],l=function(e,r,s){if(!n(r))return e;c.push(r);var i=t(r,s);return c.pop(),null==i&&a?"":i};return r=function(e,n){var t=/^%([^%]+)%$/.exec(e);return t?l(e,t[1],n):e.replace(/%(.+?)%/g,(function(e,t){return l(e,t,n)}))},s=function(e,n){for(var t={},a=Object.keys(e),r=0;r<a.length;r++){var s=a[r],i=e[s];t[s]=o(i,n)}return t},i=function(e,n){for(var t=[],a=0,r=e.length;a<r;a++)t.push(o(e[a],n));return t},o=function(e,n){return"string"==typeof e?r(e,n):Array.isArray(e)?i(e,n):"object"==typeof e&&null!==e?s(e,n):e},function(n,t){return c.length>10?(e.error("Data element circular reference detected: "+c.join(" -> ")),n):o(n,t)}}}if(Me)return qe;Me=1;const a=n()(e);return qe=a({logger:t()})}function k(){return Be||(Be=1,Fe=function(e){return function(){if("string"==typeof arguments[0])e[arguments[0]]=arguments[1];else if(arguments[0]){var n=arguments[0];for(var t in n)e[t]=n[t]}}}),Fe}function w(){return $e?Ue:($e=1,Ue="undefined"!=typeof window&&window.Promise||void 0!==tt&&tt.Promise)}function x(){if(Ke)return He;Ke=1;var e=w();return He=function(n,t,a){return function(r,s,i,o){return o.then((function(){var o,c=r.delayNext;return new e((function(t,a){var s=n(r,i,[i]);if(!c)return t();var l=r.timeout,d=new e((function(e,n){o=setTimeout((function(){n(new Error("A timeout occurred because the action took longer than "+l/1e3+" seconds to complete. "))}),l)}));e.race([s,d]).then(t,a)})).catch((function(n){return clearTimeout(o),n=t(n),a(r,s,n),e.reject(n)})).then((function(){clearTimeout(o)}))}))}},He}function P(){if(We)return ze;We=1;var e=w();return ze=function(n,t,a,r,s){return function(i,o,c,l){return l.then((function(){var l;return new e((function(t,a){var r=n(i,c,[c]),s=i.timeout,o=new e((function(e,n){l=setTimeout((function(){n(new Error("A timeout occurred because the condition took longer than "+s/1e3+" seconds to complete. "))}),s)}));e.race([r,o]).then(t,a)})).catch((function(n){return clearTimeout(l),n=t(n),r(i,o,n),e.reject(n)})).then((function(n){if(clearTimeout(l),!a(i,n))return s(i,o),e.reject()}))}))}},ze}function C(){if(Qe)return Ge;Qe=1;var e=w().resolve();return Ge=function(n,t,a){return function(r,s){return r.conditions&&r.conditions.forEach((function(t){e=n(t,r,s,e)})),r.actions&&r.actions.forEach((function(n){e=t(n,r,s,e)})),e=(e=e.then((function(){a(r)}))).catch((function(){}))}}}function _(){return Ze?Je:(Ze=1,Je=function(e){return Boolean(e&&"object"==typeof e&&"function"==typeof e.then)})}function T(){if(Ye)return Xe;Ye=1;var e=_();return Xe=function(n,t,a,r){return function(s,i){var o;if(s.conditions)for(var c=0;c<s.conditions.length;c++){o=s.conditions[c];try{var l=n(o,i,[i]);if(e(l))throw new Error("Rule component sequencing must be enabled on the property for this condition to function properly.");if(!t(o,l))return a(o,s),!1}catch(e){return r(o,s,e),!1}}return!0}},Xe}function D(){return nn?en:(nn=1,en=function(e,n){return function(t,a){e(t,a)&&n(t,a)}})}function S(){return an?tn:(an=1,tn=function(e){return function(n){var t=e.getModuleDefinition(n.modulePath);return t&&t.displayName||n.modulePath}})}function I(){return sn?rn:(sn=1,rn=function(e){return function(n){var t=n.rule,a=n.event,r=e.getModuleDefinition(a.modulePath).name;return{$type:e.getModuleExtensionName(a.modulePath)+"."+r,$rule:{id:t.
17id,name:t.name}}}})}function E(){return cn||(cn=1,on=function(e,n,t,a,r,s){return function(i,o){var c=o.rule,l=o.event;l.settings=l.settings||{};try{var d=r(o);n(l,null,[function(n){var a=t(d,n);i((function(){e(a,c)}))}])}catch(e){s.error(a(l,c,e))}}}),on}function V(){return dn||(dn=1,ln=function(e,n,t,a){return function(r,s,i){var o=n(r);t.error(e(o,s.name,i)),a("ruleActionFailed",{rule:s,action:r})}}),ln}function R(){return un||(un=1,pn=function(e,n,t,a){return function(r,s,i){var o=n(r);t.error(e(o,s.name,i)),a("ruleConditionFailed",{rule:s,condition:r})}}),pn}function N(){return mn||(mn=1,gn=function(e,n,t){return function(a,r){var s=e(a);n.log('Condition "'+s+'" for rule "'+r.name+'" was not met.'),t("ruleConditionFailed",{rule:r,condition:a})}}),gn}function O(){return hn||(hn=1, 18bn=function(e,n){return function(t){e.log('Rule "'+t.name+'" fired.'),n("ruleCompleted",{rule:t})}}),bn}function j(){return vn?fn:(vn=1,fn=function(e,n,t){return function(a,r){var s;if(a.actions)for(var i=0;i<a.actions.length;i++){s=a.actions[i];try{e(s,r,[r])}catch(e){return void n(s,a,e)}}t(a)}})}function A(){return kn?yn:(kn=1,yn=function(e,n,t,a){return function(r,s){a("ruleTriggered",{rule:s}),e?t(s,r):n(s,r)}})}function L(){return xn?wn:(xn=1,wn=function(e,n,t){return'Failed to execute "'+e+'" for "'+n+'" rule. '+t.message+(t.stack?"\n"+t.stack:"")})}function q(){return Cn?Pn:(Cn=1,Pn=function(e,n){return n&&!e.negate||!n&&e.negate})}function M(){if(Tn)return _n;Tn=1;var e=[],n=!1,t=function(t){n?t():e.push(t)};return _n=function(a,r,s){a(r).forEach((function(e){s(t,e)})),n=!0,e.forEach((function(e){e()})),e=[]},_n}function F(){return Sn?Dn:(Sn=1,Dn=function(e){if(e||(e=new Error("The extension triggered an error, but no error information was provided.")),!(e instanceof Error)){var n="object"==typeof e?JSON.stringify(e):String(e);e=new Error(n)}return e})}function B(){function e(e){return"[object Object]"===Object.prototype.toString.call(e)}function n(n){var t,a;return!1!==e(n)&&(void 0===(t=n.constructor)||!1!==e(a=t.prototype)&&!1!==a.hasOwnProperty("isPrototypeOf"))}return In||(In=1,Object.defineProperty(rt,"__esModule",{value:!0}),rt.isPlainObject=n),rt}function U(){function e({objectAssign:e,isPlainObject:n,logger:t}){return function(a,r){return n(r=r||{})?r=e({},r,a):e(r,a),r.hasOwnProperty("type")||Object.defineProperty(r,"type",{get:function(){return t.deprecation("Accessing event.type in Adobe Launch has been deprecated and will be removed soon. Please use event.$type instead."),r.$type}}),r}}if(Vn)return En;Vn=1;const a=n()(e);return En=a({objectAssign:r(),isPlainObject:B().isPlainObject,logger:t()})}function $(){function e({logger:e}){return function(n,t){return function(a,r){var s=n[a];if(s){var i=s.modules;if(i){for(var o=Object.keys(i),c=0;c<o.length;c++){var l=o[c],d=i[l];if(d.shared&&d.name===r)return t.getModuleExports(l)}e.error(`The module "${r}" does not exist in the shared modules of the "${a}" extension`)}}else e.error(`The extension "${a}" is not bundled with the library."`)}}}if(Nn)return Rn;Nn=1;const a=n()(e);return Rn=a({logger:t()})}function H(){return jn?On:(jn=1,On=function(e,n){return function(){return n?e(n):{}}})}function K(){return Ln?An:(Ln=1,An=function(e,n,t){return function(a){if(t){var r=a.split(".");r.splice(r.length-1||1,0,"min"),a=r.join(".")}return e(n)+a}})}function z(){if(Mn)return qn;Mn=1;var e=".js",n=function(e){return e.substr(0,e.lastIndexOf("/"))},t=function(e,n){return-1!==e.indexOf(n,e.length-n.length)};return qn=function(a,r){t(r,e)||(r+=e);var s=r.split("/"),i=n(a).split("/");return s.forEach((function(e){e&&"."!==e&&(".."===e?i.length&&i.pop():i.push(e))})),i.join("/")}}function W(){return Fn||(Fn=1,e=function(){function e(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)"__proto__"!==a&&(e[a]=t[a])}return e}function n(t,a){function r(n,r,s){if("undefined"!=typeof document){"number"==typeof(s=e({},a,s)).expires&&(s.expires=new Date(Date.now()+864e5*s.expires)),s.expires&&(s.expires=s.expires.toUTCString()),n=encodeURIComponent(n).replace(/%(2[346B]|5E|60|7C)/g,decode
18URIComponent).replace(/[()]/g,escape);var i="";for(var o in s)s[o]&&(i+="; "+o,!0!==s[o]&&(i+="="+s[o].split(";")[0]));return document.cookie=n+"="+t.write(r,n)+i}}function s(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var n=document.cookie?document.cookie.split("; "):[],a={},r=0;r<n.length;r++){var s=n[r].split("="),i=s.slice(1).join("=");try{var o=decodeURIComponent(s[0]);if(o in a||(a[o]=t.read(i,o)),e===o)break}catch(e){}}return e?a[e]:a}}return Object.create({set:r,get:s,remove:function(n,t){r(n,"",e({},t,{expires:-1}))},withAttributes:function(t){return n(this.converter,e({},this.attributes,t))},withConverter:function(t){return n(e({},this.converter,t),this.attributes)}},{attributes:{value:Object.freeze(a)},converter:{value:Object.freeze(t)}})}return n({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"})},st.exports=e()),st.exports;var e}function G(){function e(e,t,a){try{var r=JSON.stringify(t);/^[{[]/.test(r)&&(t=r)}catch(e){console.error("error when testing string for setting cookie",e)}return n.set(e,t,a)}if(Un)return Bn;Un=1;var n=W();return Bn={get:n.get,set:e,remove:n.remove}}function Q(){if(Hn)return $n;Hn=1;var e=w(),n=function(n,t){return new e((function(e,a){t.onload=function(){e(t)},t.onerror=function(){a(new Error("Failed to load script "+n))}}))};return $n=function(e){var t=document.createElement("script");t.src=e,t.async=!0;var a=n(e,t);return document.getElementsByTagName("head")[0].appendChild(t),a}}function J(){if(zn)return Kn;zn=1;var e=function(e){var n={};if(!e||"string"!=typeof e)return n;var t=e.trim().replace(/^[?#&]/,""),a=new URLSearchParams(t),r=a.keys();do{var s=r.next(),i=s.value;if(i){var o=a.getAll(i);1===o.length?n[i]=o[0]:n[i]=o}}while(!1===s.done);return n},n=function(e){var n="{{space}}",t=new URLSearchParams;return Object.keys(e).forEach((function(a){var r=e[a];"string"==typeof e[a]?r=r.replace(/ /g,n):["object","undefined"].includes(typeof r)&&!Array.isArray(r)&&(r=""),Array.isArray(r)?r.forEach((function(e){t.append(a,e)})):t.append(a,r)})),t.toString().replace(new RegExp(encodeURIComponent(n),"g"),"%20")};return Kn={parse:function(n){return e(n)},stringify:function(e){return n(e)}}}function Z(){function e({moduleMap:e}){return e=e||{},function(n){var t="@adobe/reactor-";return function(a){if(0===a.indexOf(t)){var r=a.substr(t.length);if(e.hasOwnProperty(r))return e[r]}if(0===a.indexOf("./")||0===a.indexOf("../"))return n(a);throw new Error('Cannot resolve module "'+a+'".')}}}if(Gn)return Wn;Gn=1;const t=n()(e);return Wn=t({moduleMap:{cookie:G(),document:a(),"load-script":Q(),"object-assign":r(),promise:w(),"query-string":J(),window:s()}})}function X(){function e({createGetSharedModuleExports:e,createGetExtensionSettings:n,createGetHostedLibFileUrl:t,resolveRelativePath:a,createPublicRequire:r,logger:s}){return function(i,o,c,l,d,p,u){var g=i.extensions,m=i.buildInfo,b=i.environment,h=i.property.settings;if(g){var f=e(g,o);Object.keys(g).forEach((function(e){var v=g[e],y=v.settings;Array.isArray(v.filePaths)&&(y=p(y,v.filePaths));var k=n(l,y);if(v.modules){var w=s.createPrefixedLogger(v.displayName),x=t(u,v.hostedLibFilesBaseUrl,m.minified),P={buildInfo:m,environment:b,property:{name:i.property.name,id:i.property.id},getDataElementValue:d,getExtensionSettings:k,getHostedLibFileUrl:x,getSharedModule:f,logger:w,propertySettings:h,replaceTokens:l,onDebugChanged:c.onDebugChanged,get debugEnabled(){return c.getDebugEnabled()}};Object.keys(v.modules).forEach((function(n){var t=v.modules[n],s=r((function(e){var t=a(n,e);return o.getModuleExports(t)}));o.registerModule(n,t,e,s,P)}))}})),o.hydrateCache()}return o}}if(Jn)return Qn;Jn=1;const a=n()(e);return Qn=a({createGetSharedModuleExports:$(),createGetExtensionSettings:H(),createGetHostedLibFileUrl:K(),resolveRelativePath:z(),createPublicRequire:Z(),logger:t()})}function Y(){function e({cookie:e,logger:n}){return function(t,a,r,s,i){var o=n.createPrefixedLogger("Custom Script");t.track=function(e){n.log('"'+e+'" does not match any direct call identifiers.')},t.getVisitorId=function(){return null},t.property={name:a.property.name,id:a.property.id},t.company=a.company,t.buildInfo=a.buildInfo,t.environment=a.environment,t.logger=o,t.notify=function(e,t){switch(n.deprecation("_satellite.notify is deprecated. Please use the `_satellite.logger` API."),t){case 3:o.info(e);break;case 4:o.warn(e);break;case 5:o.error(e);break;default:o.log(e)}},t.getVar=s,t.setVar=i,t.setCookie=function(t,a,r){var s="",i={};r&&(s=", { expires: "+r+" }",i.expires=r);var o='_satellite.setCookie is deprecated. Please use _satellite.cookie.set("'+t+'", "'+a+'"'+s+").";n.deprecation(o),e.set(t,a,i)},t.readCookie=function(t){return n.deprecation('_satellite.readCookie is deprecated. Please use _satellite.cookie.get("'+t+'").'),e.get(t)},t.removeCookie=function(t){n.deprecation('_satellite.removeCookie is deprecated. Please use _satellite.cookie.remove("'+t+'").'),e.remove(t)},t.cookie=e,t.pageBottom=function(){},t.setDebug=r;var c=!1;Object.defineProperty(t,"_container",{get:function(){return c||(n.warn("_satellite._container may change at any time and should only be used for debugging."),c=!0),a}})}}if(Xn)return Zn;Xn=1;const a=n()(e);return Zn=a({cookie:G(),logger:t()})}function ee(){function e(e){return"string"==typeof e&&-1!==e.indexOf("[")&&-1!==e.indexOf("]")}function n(e){return e.substr(0,e.indexOf("["))}function t(r,s,i){if(r.length&&a(s)){var o=r[0];if(1!==r.length){var c=r.slice(1);if(!e(o))return t(c,s[o],i);var l=s[o=n(o)];Array.isArray(l)&&l.forEach((function(e){return t(c,e,i)}))}else s.hasOwnProperty(o)&&"string"==typeof s[o]&&(s[o]=i(s[o]))}}if(et)return Yn;et=1;var{isPlainObject:a}=B();return Yn=function(e,n){return function(r,s,i){return e&&a(r)&&Object.keys(r).length&&Array.isArray(s)&&s.length?(s.forEach((function(e){Boolean(null!=i&&/^core\/.*actions.*\/customCode\.js$/.test(i))&&"source"===e&&!r.isExternal||t(e.split("."),r,n)})),r):r}}}function ne(){function e({logger:e,document:n,objectAssign:t,createDynamicHostResolver:a,buildRuleExecutionOrder:r,createDebugController:s,createExecuteDelegateModule:i,createGetDataElementValue:o,createGetVar:c,createIsVar:l,createModuleProvider:d,createNotifyMonitors:p,createReplaceTokens:u,createSetCustomVar:g,createAddActionToQueue:m,createAddConditionToQueue:b,createAddRuleToQueue:h,createEvaluateConditions:f,createExecuteRule:v,createGetModuleDisplayNameByRuleComponent:y,createGetSyntheticEventMeta:k,createInitEventModule:w,createLogActionError:x,createLogConditionError:P,createLogConditionNotMet:C,createLogRuleCompleted:_,createRu
18nActions:T,createTriggerRule:D,getRuleComponentErrorMessage:S,isConditionMet:I,initRules:E,normalizeRuleComponentError:V,normalizeSyntheticEvent:R,getNamespacedStorage:N,hydrateModuleProvider:O,hydrateSatelliteObject:j,createSettingsFileTransformer:A}){return function(L){if(L&&!window.__satelliteLoaded){window.__satelliteLoaded=!0;var q=L.container;delete L.container;var M=t({},q.buildInfo);Object.defineProperty(M,"environment",{get:function(){return e.deprecation("container.buildInfo.environment is deprecated.Please use `container.environment.stage` instead"),q.environment.stage}}),q.buildInfo=M;var F,B=N("localStorage"),U=s(B,e),$="";n.currentScript&&n.currentScript.getAttribute("src")&&($=n.currentScript.getAttribute("src"));try{F=a($,Boolean(q.company.dynamicCdnEnabled),q.company.cdnAllowList,U)}catch(n){throw e.warn("Please review the following error:"),n}var H,K=A(F.isDynamicEnforced,F.decorateWithDynamicHost),z=d(),W=q.property.settings.undefinedVarsReturnEmpty,G=q.property.settings.ruleComponentSequencingEnabled,Q=q.dataElements||{},J=function(e){return Q[e]},Z=function(){return H.apply(null,arguments)},X=o(z,J,Z,W,K),Y={},ee=g(Y),ne=l(Y,J),te=c(Y,J,X);H=u(ne,te,W),j(L,q,U.setDebugEnabled,te,ee),O(q,z,U,H,X,K,F.decorateWithDynamicHost);var ae=p(L),re=i(z,H,K),se=y(z),ie=C(se,e,ae),oe=P(S,se,e,ae),ce=x(S,se,e,ae),le=_(e,ae),de=f(re,I,ie,oe),pe=T(re,ce,le),ue=v(de,pe),ge=b(re,V,I,oe,ie),me=m(re,V,ce),be=h(ge,me,le),he=D(G,ue,be,ae),fe=k(z),ve=w(he,re,R,S,fe,e);E(r,q.rules||[],ve)}}}if(nt)return at.exports;nt=1;var s=n()(e({logger:t(),document:a(),objectAssign:r(),createDynamicHostResolver:i(),buildRuleExecutionOrder:o(),createDebugController:c(),createExecuteDelegateModule:l(),createGetDataElementValue:g(),createGetVar:m(),createIsVar:b(),createModuleProvider:f(),createNotifyMonitors:v(),createReplaceTokens:y(),createSetCustomVar:k(),createAddActionToQueue:x(),createAddConditionToQueue:P(),createAddRuleToQueue:C(),createEvaluateConditions:T(),createExecuteRule:D(),createGetModuleDisplayNameByRuleComponent:S(),createGetSyntheticEventMeta:I(),createInitEventModule:E(),createLogActionError:V(),createLogConditionError:R(),createLogConditionNotMet:N(),createLogRuleCompleted:O(),createRunActions:j(),createTriggerRule:A(),getRuleComponentErrorMessage:L(),isConditionMet:q(),initRules:M(),normalizeRuleComponentError:F(),normalizeSyntheticEvent:U(),getNamespacedStorage:p(),hydrateModuleProvider:X(),hydrateSatelliteObject:Y(),createSettingsFileTransformer:ee()})),d=window._satellite;return s(d),at.exports=d,at.exports}if(window.atob){var te,ae,re,se,ie,oe,ce,le,de,pe,ue,ge,me,be,he,fe,ve,ye,ke,we,xe,Pe,Ce,_e,Te,De,Se,Ie,Ee,Ve,Re,Ne,Oe,je,Ae,Le,qe,Me,Fe,Be,Ue,$e,He,Ke,ze,We,Ge,Qe,Je,Ze,Xe,Ye,en,nn,tn,an,rn,sn,on,cn,ln,dn,pn,un,gn,mn,bn,hn,fn,vn,yn,kn,wn,xn,Pn,Cn,_n,Tn,Dn,Sn,In,En,Vn,Rn,Nn,On,jn,An,Ln,qn,Mn,Fn,Bn,Un,$n,Hn,Kn,zn,Wn,Gn,Qn,Jn,Zn,Xn,Yn,et,nt,tt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},at={exports:{}},rt={},st={exports:{}};st.exports;return e(ne())}console.warn("Adobe Launch is unsupported in IE 9 and below.")}();
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.