PageSourceSearch

https://dialog.lk/themes/custom/dialog_theme/js/ga360.js?v=1.5

js dialog.lk collected 2026-09-24 08:53:37 UTC 154,011 bytes, 4,441 lines download raw bytes

1/**
2 * @file
3 * Global utilities.
4 *
5 */
6(function ($, Drupal) {
7  window.dataLayer = window.dataLayer || [];
8  ("use strict");
9
10  Drupal.behaviors.ga360 = {
11    productClick: function (
12      list,
13      name,
14      id,
15      price,
16      packages,
17      anyData,
18      nightData,
19      position
20    ) {
21      window.dataLayer.push({
22        event: "productClick",
23        ecommerce: {
24          click: {
25            actionField: {
26              list: list,
27            }, // List name where packages are shown. Possible values are ‘Tailored Packages’, ‘All Packages’, ‘Packages Comparison’, ‘Other Packages’
28            products: [
29              {
30                name: `${name}`, // Name of package e.g. Office Ultra, Booster etc.
31                id: `${id}`, // SKU of package
32                price: `${price}`, // Price of package e.g. 6999.00, 16400.00
33                brand: packages, // HBB Packages
34                category: `Anytime Data - ${anyData}`, // E.g. ‘Anytime Data - 500 GB’
35                variant: `Night Data - ${nightData}`, // E.g. Night Data 500 GB
36                position: position, // Position of item in the list
37              },
38            ],
39          },
40        },
41      });
42    },
43
44    productImpression: function (
45      name,
46      id,
47      price,
48      packages,
49      anyData,
50      nightData,
51      list,
52      position
53    ) {
54      window.dataLayer.push({
55        event: "productImpressions",
56        ecommerce: {
57          impressions: [
58            {
59              name: `${name}`, // Name of package e.g. Office Ultra, Booster etc.
60              id: `${id}`, // SKU of package
61              price: `${price}`, // Price of package e.g. 6999.00, 16400.00
62              brand: packages, // HBB Packages
63              category: `Anytime Data - ${anyData}`, // E.g. ‘Anytime Data - 500 GB’
64              variant:
65                nightData != undefined
66                  ? `Night Data - ${nightData}`
67                  : undefined, // E.g. Night Data 500 GB
68              list: list, // List name where pacs are shown. Possible values are ‘Tailored Packages’, ‘All Packages’, ‘Packages Comparison’, ‘Other Packages’
69              position: position, // Position of item in the list
70              // 'dimension31': undefined, // First month bonus data value
71            },
72          ],
73        },
74      });
75    },
76    item_name_by_lob: function (ga360_lob) {
77      var itemName = "";
78      if (ga360_lob === "GSM") {
79        itemName = "SIM";
80      } else if (ga360_lob === "DTV") {
81        itemName = "DTV";
82      } else if (ga360_lob === "VIU") {
83        itemName = "DTV";
84      } else if (ga360_lob === "HBB") {
85        itemName = "HBB";
86      }
87
88      return itemName;
89    },
90    cartItemWise: function (
91      connection_type,
92      package_name,
93      price,
94      description,
95      identification_type,
96      lob,
97      item_type,
98      offer_name
99    ) {
100      var customer_id = undefined;
101      var cutomer_did_type = undefined;
102      var customer_type = undefined;
103      if (drupalSettings.is_logged_in) {
104        customer_id = $("#id-number-for-ga360").text();
105        cutomer_did_type = $("#login-did-for-ga360").text();
106      } else {
107        customer_type = sessionStorage.getItem("Check_customer_type");
108      }
109
110      var item = {
111        item_name: Drupal.behaviors.ga360.item_name_by_lob(lob), // Product Name. Ex : Sim
112        connection_type: `${connection_type}`, // Prepaid or Postpaid
113        package_name: `${package_name}`, // Name of the selected package. Ex : YouTube & Social Media plan, Work & learn plan
114        price: `${price}`, // Amount of selected package. Ex : 2000
115        description: `${description}`, // Description of the product
116        customer_id: `${customer_id}`, // NIC / Passport Number or Mobile number / Email
117        cutomer_did_type: `${cutomer_did_type}`, // Mobile number or Email // If DID path selected
118        lob: `${lob}`, // Line of business. Ex : Mobile
119        item_category: `${item_type}`, // If it is a sim, Standard Sim or E-Sim. If it is device type of the device
120        offer_name: `${offer_name}`, // Name of the selected offer. // If offer available
121        customer_type:
122          sessionStorage.getItem("customer_type") != "undefined"
123            ? sessionStorage.getItem("customer_type")
124            : undefined,
125      };
126
127      return item;
128    },
129    // viewCart: function (price, items_obj) {
130    //   window.dataLayer.push({
131    //     event: "view_cart",
132    //     ecommerce: {
133    //       currency: "LKR",
134    //       value: price,
135    //       items: items_obj,
136    //     },
137    //   });
138    // },
139
140    viewCart: function (price, items_obj) {
141    var lob = sessionStorage.getItem('ga360_lob');
142      if (lob === 'GSM' || lob === 'DTV' || lob === 'HBB' || lob === 'VIU') {
143        window.dataLayer.push({
144          event: "view_cart",
145          ecommerce: {
146            currency: "LKR",
147            value: price,
148            items: items_obj,
149          }
150        });
151      }
152    },
153
154    // Device view cart
155    // deviceviewCart: function (
156    //   item_id,
157    //   item_name,
158    //   currency_code,
159    //   position,
160    //   item_brand,
161    //   item_category,
162    //   item_list_name,
163    //   item_variant,
164    //   quantity,
165    //   contract_id,
166    //   price,
167    //   primary_number
168    // ) {
169    //   window.dataLayer.push({
170    //     event: "view_cart",
171    //     ecommerce: {
172    //       currency: "LKR", // Currency Code
173    //       value: price,
174    //       items: [
175    //         {
176    //           item_id: item_id,
177    //           item_name: item_name,
178    //           currency: currency_code,
179    //           index: position,
180    //           item_brand: item_brand,
181    //           item_category: item_category,
182    //           item_list_name: item_list_name,
183    //           item_variant: item_variant,
184    //           quantity: quantity,
185    //           contract_id: contract_id,
186    //           price: price,
187    //           primary_number: primary_number,
188    //         },
189    //       ],
190    //     },
191    //   });
192    // },
193
194    addToCart: function (
195      currency,
196      list,
197      name,
198      id,
199      price,
200      packages,
201      anyData,
202      nightData,
203      position,
204      quantity,
205      bonus
206    ) {
207      window.dataLayer.push({
208        event: "addToCart",
209        ecommerce: {
210          currencyCode: currency,
211          add: {
212            actionField: {
213              list: list,
214            }, // List name where packages are shown. Possible values are ‘Tailored Packages’, ‘All Packages’, ‘Packages Comparison’, ‘Other Packages’
215            products: [
216              {
217                name: `${name}`, // Name of package e.g. Office Ultra, Booster etc.
218                id: `${id}`, // SKU of package
219                price: `${price}`, // Price of package e.g. 6999.00, 16400.00
220                brand: packages, // HBB Packages
221                category: `Anytime Data - ${anyData}
221`, // E.g. ‘Anytime Data - 500 GB’
222                variant: `Night Data - ${nightData}`, // E.g. Night Data 500 GB
223                position: position, // Position of item in the list
224                quantity: quantity,
225                dimension31: `${bonus}` != "" ? `${bonus}` : "Not Add", // First month bonus data value
226              },
227            ],
228          },
229        },
230      });
231    },
232
233    dataAddOnProductImpression: function (
234      name,
235      id,
236      price,
237      addonType,
238      category,
239      variant,
240      list,
241      position
242    ) {
243      window.dataLayer.push({
244        event: "productImpressions",
245        ecommerce: {
246          impressions: [
247            {
248              name: `${name}`, // Name of the pack e.g. 500 MB Anytime Data, 30 GB Data Quota etc.
249              id: `${id}`, // SKU of the pack
250              price: `${price}`, // Price of package e.g. 25.00, 120.00 etc.
251              brand: addonType, // HBB Addons
252              category: `${category}`, // E.g. Work and Learn Lite, Anytime Add On etc.
253              variant: `${variant}`, // Validity of pack e.g. ‘7 Days Valid’ etc.
254              list: `${list}`, // List name where packages are shown. Example values are ‘Gift Data Add Ons’, ‘Home Broadband - Data Add Ons’ etc.
255              position: `${position}`, // Position of item in the list
256            },
257          ],
258        },
259      });
260    },
261
262    dataAddOnProductClick: function (
263      list,
264      name,
265      id,
266      price,
267      packages,
268      category,
269      varient,
270      position
271    ) {
272      window.dataLayer.push({
273        event: "productClick",
274        ecommerce: {
275          click: {
276            actionField: {
277              list: list,
278            }, // List name where packages are shown. Possible values are ‘Tailored Packages’, ‘All Packages’, ‘Packages Comparison’, ‘Other Packages’
279            products: [
280              {
281                name: `${name}`, // Name of package e.g. Office Ultra, Booster etc.
282                id: `${id}`, // SKU of package
283                price: `${price}`, // Price of package e.g. 6999.00, 16400.00
284                brand: packages, // HBB Packages
285                category: `${category}`, // E.g. ‘Anytime Data - 500 GB’
286                variant: `${varient}`, // E.g. Night Data 500 GB
287                position: position, // Position of item in the list
288              },
289            ],
290          },
291        },
292      });
293    },
294
295    hbbAddonPromoImpression: function (name, id, creative, position) {
296      window.dataLayer.push({
297        event: "promoImpressions",
298        ecommerce: {
299          promoView: {
300            promotions: [
301              {
302                name: `${name}`, // Addon pack category name e.g. Data Add Ons
303                id: `${id}`, // ID of Addon pack category
304                creative: creative, // Section or Page name where the banner is shown
305                position: `${position}`, // Position
306              },
307            ],
308          },
309        },
310      });
311    },
312
313    // 12.5.4 PROMOTION CLICK - DOR-42137
314    hbbAddonPromotionClick: function (name, id, creative, position) {
315      window.dataLayer.push({
316        event: "promoClick",
317        ecommerce: {
318          promoClick: {
319            promotions: [
320              {
321                name: `${name}`, // Addon pack category name e.g. Data Add Ons
322                id: `${id}`, // ID of Addon pack category
323                creative: creative, // Section or Page name where the banner is shown
324                position: `${position}`, // Position
325              },
326            ],
327          },
328        },
329      });
330    },
331
332    // 9.2.4 DTV SECTIONS - DOR-42150
333    dtvSections: function (
334      action,
335      label,
336      title,
337      channels,
338      price,
339      packName,
340      quicklinkMobile,
341      quicklinkcontractId,
342      quicklinkeMail
343    ) {
344      var quicklinkeMail = $("#my-account-dropdown")
345        .find(".dropdown-content .user-details span#email-for-ga360")
346        .text();
347      var quicklinkMobile = $("#my-account-dropdown")
348        .find(".dropdown-content .user-details span#tele-for-ga360")
349        .text();
350      var quicklinkcontractId = $("#my-account-dropdown")
351        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
352        .text();
353
354      window.dataLayer.push({
355        event: "dtvSections",
356        eventAction: action, // Title of the section from which an item is clicked e.g. ‘Is your area covered?’, ‘Need more channels?’, etc.
357        eventLabel: label, // Clicked items e.g. Data Network, Get Now, Learn More etc.
358        bannerTitle: title, // Name of the banner shown under ‘Latest in Entertainment’ section
359        channels: channels, // Applicable to ‘Packages tailored to give you...’ section. E.g. ‘63 Channels’, ‘128 Channels’
360        price: price, // Applicable to ‘Packages tailored to give you...’ section. E.g. ‘Rs. 799.00 per month’
361        packName: packName, // Applicable to ‘Need more channels?’ section. E.g. ‘Kids Pack’, ‘Education Pack’
362        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
363        ctridprimary:
364          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
365        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
366      });
367    },
368
369    addonListings: function (
370      addonType,
371      label,
372      category,
373      quicklinkMobile,
374      quicklinkcontractId,
375      quicklinkeMail
376    ) {
377      var quicklinkeMail = $("#my-account-dropdown")
378        .find(".dropdown-content .user-details span#email-for-ga360")
379        .text();
380      var quicklinkMobile = $("#my-account-dropdown")
381        .find(".dropdown-content .user-details span#tele-for-ga360")
382        .text();
383      var quicklinkcontractId = $("#my-account-dropdown")
384        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
385        .text();
386
387      window.dataLayer.push({
388        event: "hbbAddon",
389        eventAction: addonType, // ‘Addon Type’, ‘Navigation’, ‘More Details’
390        eventLabel: `${label}`, // Clicked item. For ‘Addon Type’, pass ‘Rental Pack’, ‘Work & Learn’ etc. For ‘Navigation’, pass ‘Left Arrow’, ‘Right Arrow’. For ‘More Details’, pass the title e.g. ‘Anytime Data’
391        addonCategory: category, // Only applicable in case of ‘Navigation’. Pass ‘Anytime Data’, ‘Recurrent Packs’, etc. In other cases, pass undefined
392        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
393        ctridprimary:
394          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
395        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
396      });
397    },
398
399    getContent: function (eId, label) {
400      var action = jQuery("#dtv-all-packages-with-carousal h2").text();
401      jQuery(eId + " div.card.slick-active").each(function (index, element) {
402        var cElement = jQuery(element).children();
403        var packName = jQuery(".badge-container p", cElement).text();
404        var price = jQuery("h5", cElement).text();
405        var channels = jQuery("h4", cElement).text();
406        Drupal.behaviors.ga360.dtvSections(
407          action,
408          label,
409          undefined,
410          channels,
411          price,
412          packName,
413          undefined,
414          undefined,
415          undefined
416        );
417      });
418    },
419
420    pushDataForTopLinkGoButton: function (
421      event,
422      action,
423      label,
424      cNumber,
425      quicklinkMobile,
426      quicklinkcontractId,
427      quicklinkeMail
428    ) {
429      var quicklinkeMail = $("#my-account-dropdown")
430        .find(".dropdown-content .user-details span#email-for-ga360")
431        .text();
432      var quicklinkMobile = $("#my-account-dropdown")
433        .find(".dropdown-content .user-details span#tele-for-ga360")
434        .text();
435      var quicklinkcontractId = $("#my-account-dropdown")
436        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
437        .text();
438
439      window.dataLayer.push({
440        event: event,
441        eventAction: action, // ‘DTV’, ‘In Home’, ‘VIU Mini’, ‘ViU Hub’, ‘HBB Landing’, ‘HBB Prepaid’, ‘HBB Postpaid’
442        eventLabel: label, // Search bar title e.g. Paybill & Reload
443        connectionNumber: cNumber != "" ? cNumber : "Not Add", // Encrypted connection number
444        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
445        ctridprimary:
446          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
447        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
448      });
449    },
450
451    dataPushForTopLinks: function (action) {
452      window.dataLayer.push({
453        event: "dtvTopPanel",
454        eventAction: action, // selected item name e.g. Activate Channel
455        usermsisdn: undefined, // HASHED MSISDN - user level
456        ctridprimary: undefined, // primary contract ID
457        email: undefined, // HASHED email - user level
458      });
459    },
460
461    dataPushForFAQClick: function (
462      action,
463      label,
464      quicklinkMobile,
465      quicklinkcontractId,
466      quicklinkMobile
467    ) {
468      var quicklinkeMail = $("#my-account-dropdown")
469        .find(".dropdown-content .user-details span#email-for-ga360")
470        .text();
471      var quicklinkMobile = $("#my-account-dropdown")
472        .find(".dropdown-content .user-details span#tele-for-ga360")
473        .text();
474      var quicklinkcontractId = $("#my-account-dropdown")
475        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
476        .text();
477
478      window.dataLayer.push({
479        event: "FAQ",
480        eventAction: action,
481        eventLabel: label,
482        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
483        ctridprimary:
484          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
485        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
486      });
487    },
488
489    dataPushForLoginClick: function (action, quicklinkcontractId) {
490      var quicklinkcontractId = $("#my-account-dropdown")
491        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
492        .text();
493
494      window.dataLayer.push({
495        event: action,
496        ctridprimary:
497          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add",
498      });
499    },
500
501    productClickOnDTVPackages: function (
502      list,
503      name,
504      sku,
505      price,
506      category,
507      variant,
508      position
509    ) {
510      window.dataLayer.push({
511        event: "productClick",
512        ecommerce: {
513          click: {
514            actionField: {
515              list: list,
516            }, // List name where packages are shown. Possible values are ‘Tailored Packages’, ‘All Packages’, ‘Packages Comparison’
517            products: [
518              {
519                name: name, // Number of channels e.g. 64 Channels, 94 Channels
520                id: sku, // SKU of channel package
521                price: price, // Price of package e.g. 999.00, 1199.00
522                brand: "DTV Packages", // DTV Packages
523                category: category, // Package type e.g. Thee, Silver, Gold
524                variant: variant, // E.g. ‘Seasonal Offer - 40’ etc.
525                position: position, // Position of item in the list
526                dimension29: undefined, // If Additional Channel Activation is available, pass ‘True’ or else ‘false’
527                dimension30: undefined, // If Special Promotion is available, pass ‘True’ or else ‘false’
528              },
529            ],
530          },
531        },
532      });
533    },
534
535    dtvPackageComparison: function (
536      action,
537      label,
538      pName,
539      price,
540      sOffer,
541      activation,
542      quicklinkMobile,
543      quicklinkcontractId,
544      quicklinkMobile
545    ) {
546      var quicklinkeMail = $("#my-account-dropdown")
547        .find(".dropdown-content .user-details span#email-for-ga360")
548        .text();
549      var quicklinkMobile = $("#my-account-dropdown")
550        .find(".dropdown-content .user-details span#tele-for-ga360")
551        .text();
552      var quicklinkcontractId = $("#my-account-dropdown")
553        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
554        .text();
555
556      window.dataLayer.push({
557        event: "dtvPackageComparison",
558        eventAction: action, // ‘Compare Packages’, ‘Package Dropdown’, ‘More Details’
559        eventLabel: label, // undefined in case of Compare Packages, package name (Silver, Gold etc.) in case of Package Dropdown, number of channels (64 Channels) etc. in case of More Details
560        package: pName, // Applicable to More Details. E.g. Silver, Gold etc. If not applicable, pass undefined
561        price: price, // E.g. ‘Rs. 999.00 per month’. In case of Compare Packages, pass undefined
562        seasonalOffer: sOffer, // E.g. 30, 40, 50 etc. In case of Compare Packages, pass undefined
563        additionalChannelActivation: activation, // E.g. Yes, No. In case of Compare Packages, pass undefined
564        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
565        ctridprimary:
566          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
567        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
568      });
569    },
570
571    dtvPackageChannelComparison: function (
572      action,
573      label,
574      quicklinkMobile,
575      quicklinkcontractId,
576      quicklinkeMail
577    ) {
578      var quicklinkeMail = $("#my-account-dropdown")
579        .find(".dropdown-content .user-details span#email-for-ga360")
580        .text();
581      var quicklinkMobile = $("#my-account-dropdown")
582        .find(".dropdown-content .user-details span#tele-for-ga360")
583        .text();
584      var quicklinkcontractId = $("#my-account-dropdown")
585        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
586        .text();
587
588      window.dataLayer.push({
589        event: "dtvPackageChannelComparison",
590        eventAction: action, // Pass ‘Navigation’ on click of left and right arrow selection. Pass package name (Kids, All Channels etc.) on click of packages.
591        eventLabel: label, // In case of Navigation, pass ‘Left’ or ‘Right. In case of package name, pass number of channels e.g ‘7 Channels’, ‘14 Channels’ etc.
592        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
593        ctridprimary:
594          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
595        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
596      });
597    },
598
599    productImpressionsDTV: function (
600      name,
601      id,
602      price,
603      category,
604      variant,
605      list,
606      position,
607      dimension29,
608      dimension30
609    ) {
610      window.dataLayer.push({
611        event: "productImpression",
612        ecommerce: {
613          impressions: [
614            {
615              name: name, // Number of channels e.g. 64 Channels, 94 Channels
616              id: id, // SKU of channel package
617              price: price, // Price of package e.g. 999.00, 1199.00
618              brand: "DTV Packages", // DTV Packages
619              category: category, // Package type e.g. Thee, Silver, Gold
620              variant: variant, // E.g. ‘Seasonal Offer - 40’ etc.
621              list: list, // List name where packages are shown. Possible values are ‘Tailored Packages’, ‘All Packages’, ‘Packages Comparison’
622              position: position, // Position of item in the list
623              dimension29: dimension29, // If Additional Channel Activation is available, pass ‘True’ or else ‘false’
624              dimension30: dimension30, // If Special Promotion is available, pass ‘True’ or else ‘false’
625            },
626          ],
627        },
628      });
629    },
630
631    // Self Activation Custom Events
632    selfActivationStartPage: function () {
633      if (document.getElementById("tele-for-ga360") != null) {
634        sessionStorage.removeItem('primary_number_ga360');
635      
635  sessionStorage.setItem('primary_number_ga360', document.getElementById("tele-for-ga360").innerHTML);
636      } else {
637        sessionStorage.removeItem('primary_number_ga360');
638        sessionStorage.setItem('primary_number_ga360', "Not Add");
639      }
640      if (document.querySelector('input[id="radio-srilanka"]:checked') != null) {
641        user_type = "sri lankan"
642      } else {
643        user_type = "foreigner"
644      }
645      sessionStorage.setItem("clicked_ga360_user_type", user_type);
646      
647      window.dataLayer.push({
648        event: "self_activation",
649        ecommerce: {
650          items: [
651            {
652              event_category: "Self Activation",
653              event_action: "click",
654              event_label: "start activation",
655              user_type: user_type,
656            },
657          ],
658        },
659      });
660    },
661
662    selfActivationStartPageCompatabilityError: function () {
663      if (document.getElementById('radio-srilanka').checked) {
664        user_type = "sri lankan"
665      } else {
666        user_type = "foreigner"
667      }
668      window.dataLayer.push({
669        event: "self_activation_error",
670        ecommerce: {
671          items: [
672            {
673              event_category: "Self activation",
674              event_action: "click",
675              event_label: "error screen",
676              user_type: user_type,
677              error_detail: "browser isn't compatible",
678            },
679          ],
680        },
681      });
682    },
683
684    selfActivationVideo: function () {
685      if (document.getElementById('radio-srilanka').checked) {
686        user_type = "sri lankan"
687      } else {
688        user_type = "foreigner"
689      }
690      window.dataLayer.push({
691        event: "self_activation_video",
692        ecommerce: {
693          items: [
694            {
695              event_category: "Self activation",
696              event_action: "click",
697              event_label: "how to video",
698              user_type: user_type,
699            },
700          ],
701        },
702      });
703    },
704
705    selfActivationSelectPackage: function (eventParameters) {
706
707      window.dataLayer.push({
708        event: "self_activation_select_package_update",
709        ecommerce: {
710          items: [
711            {
712              event_category: "Self Activation",
713              event_action: "package update",
714              event_label: eventParameters.plan_name,
715              user_type: eventParameters.user_type,
716              package_type: eventParameters.package_type,
717              plan_selected: eventParameters.plan_selected,
718              plan_name: eventParameters.plan_name,
719              plan_cost: eventParameters.plan_cost,
720              add_on: eventParameters.plan_name,
721            },
722          ],
723        },
724      });
725    },
726
727    selfActivationSimDetails: function (eventParameters) {
728      window.dataLayer.push({
729        event: "self_activation_sim_details",
730        ecommerce: {
731          items: [
732            {
733              event_category: "Self Activation",
734              event_action: "Sim details - find button",
735              event_label: eventParameters.plan_name,
736              user_type: eventParameters.user_type,
737              package_type: eventParameters.package_type,
738              plan_selected: eventParameters.plan_selected,
739              plan_name: eventParameters.plan_name,
740              plan_cost: eventParameters.plan_cost,
741              add_on: eventParameters.plan_name,
742            },
743          ],
744        },
745      });
746    },
747
748    selfActivationContactDetails: function () {
749      package_type = (drupalSettings.self_activation_row["paid_mode"]).toLowerCase()
750      plan_selected = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName
751      plan_name = sessionStorage.getItem('packageList')
752      plan_cost = Number(sessionStorage.getItem('price_ga360'))
753
754      if (Drupal.behaviors.global_validations.validateEmail(document.getElementById("validateEmail").value)) {
755        event_label = "button click"
756      } else {
757        event_label = "Error screen"
758      }
759
760      if (document.getElementById("change-contact-details") != null) {
761        event_label = "details changed"
762      }
763
764      if (drupalSettings.self_activation_row["is_foreigner"] == "0") {
765        user_type = "sri lankan"
766      } else {
767        user_type = "foreigner"
768      }
769
770      suffix = "";
771      if (event_label == "Error screen") {
772        suffix = "_details_error";
773      } else if (event_label == "details changed") {
774        suffix = "_change_details";
775      } else {
776        suffix = "_details";
777      }
778      window.dataLayer.push({
779        event: "self_activation_contact".concat(suffix),
780        ecommerce: {
781          items: [
782            {
783              event_category: "Self Activation",
784              event_action: "contact details",
785              event_label: event_label,
786              user_type: user_type,
787              package_type: package_type,
788              plan_selected: plan_selected,
789              plan_name: plan_name,
790              plan_cost: plan_cost,
791              add_on: plan_name,
792            },
793          ],
794        },
795      });
796    },
797
798    selfActivationSelectNumber: function (eventParameters) {
799      suffix = "";
800      if (eventParameters.event_label == "random number") {
801        suffix = "_random";
802      } else if (eventParameters.event_label == "search number") {
803        eventParameters.event_label = event_label
804        Drupal.behaviors.ga360.selfActivationSelectNumberSearch(eventParameters)
805        return
806      }
807      window.dataLayer.push({
808        event: "self_activation_select_number".concat(suffix),
809        ecommerce: {
810          items: [
811            {
812              event_category: "Self Activation",
813              event_action: "select number",
814              event_label: event_label,
815              user_type: eventParameters.user_type,
816              package_type: eventParameters.package_type,
817              plan_selected: eventParameters.plan_selected,
818              plan_name: eventParameters.plan_name,
819              plan_cost: eventParameters.plan_cost,
820              add_on: eventParameters.plan_name,
821            },
822          ],
823        },
824      });
825    },
826
827    selfActivationSelectNumberSearch: function (eventParameters) {
828      if (document.querySelector('input[id="customControlValidation3"]:checked') != null) {
829        filter_selection = "includes"
830      } else if (document.querySelector('input[id="customControlValidation4"]:checked') != null) {
831        filter_selection = "starts with"
832      } else if (document.querySelector('input[id="customControlValidation5"]:checked') != null) {
833        filter_selection = "ends with"
834      }
835      window.dataLayer.push({
836        event: "self_activation_select_number_search",
837        ecommerce: {
838          items: [
839            {
840              event_category: "Self Activation",
841              event_action: "select number",
842              event_label: event_label,
843              user_type: eventParameters.user_type,
844              package_type: eventParameters.package_type,
845              plan_selected: eventParameters.plan_selected,
846              plan_name: eventParameters.plan_name,
847              plan_cost: eventParameters.plan_cost,
848              add_on: eventParameters.plan_name,
849              filter_selection: filter_selection,
850            },
851          ],
852        },
853      });
854    },
855
856    // Self Activation Ecommerce
857
858    SAItems: function (
859
860      // Parents function for events: view_item_list, select_item, view_item, add_to_cart
861      event,
862    ) {
863      
864      // Initializing event parameters common to the four events
865      if (drupalSettings.self_activation_row["is_foreigner"] == "0") {
866        user_type = "sri lankan"
867      } else {
868        user_type = "foreigner"
869      }
870
871      event_label = undefined
872      
873      switch (event) {
874        case "view_item_list":
875          // VIEW_ITEM_LIST LOGIC
876
877          // Defining event parameters plan_selected and plan_name
878          if (document.querySelector('a[id="nav-postpaid-tab"]').ariaSelected == 'true') {
879            item_category = "postpaid"
880            // Postpaid flow
881            // Capturing the selected package
882            if (document.querySelector('div[id="postpaid-tab"] div[class="card main-card border-radius-8 mb-3 active-card"] p[class="type-3 selected-package-name"]') == null) {
883              item_name = undefined
884            } else {
885              item_name = document.querySelector('div[id="postpaid-tab"] div[class="card main-card border-radius-8 mb-3 active-card"] p[class="type-3 selected-package-name"]')
886                .innerHTML.replace("&", "&")
887            }
888            
889            // Initializing price, item_id, index and item_category parameters
890            price = Number((((document.querySelector('div[id="postpaid-tab"] div[class="card main-card border-radius-8 mb-3 active-card"] p[class="type-3 font-weight-700"]')
891              .innerHTML)
892              .replace("\n", "")).trim()).replace("Rs. ", ""))
893            
894            item_id = document.querySelector('div[id="postpaid-tab"] div[class="card main-card border-radius-8 mb-3 active-card"] p[class="pcardID d-none"]')
895              .innerHTML
896
897            // Compiling a list of packages available
898            packList = []
899            packNodeList = document.querySelectorAll('div[id="postpaid-tab"] div[paktype="postpaid"]')
900            packNodeList.forEach((pack) => {
901              // String formatting (converting "&" to "")
902              packList.push((pack.querySelector('p[class="type-3 selected-package-name"]').innerHTML).replace("&", "&"))
903              // Converting packList array to a string
904              packageList = packList.toString()
905            })
906
907            index = packList.indexOf(item_name) + 1
908        
909          } else {
910            item_category = "prepaid"
911            // Prepaid flow
912            // Capturing the selected package
913            if (document.querySelector('div[id="prepaid-tab"] div[class="card main-card border-radius-8 mb-3 active-card"] p[class="type-3 selected-package-name"]') == null) {
914              item_name = undefined
915            } else {
916              item_name = document.querySelector('div[id="prepaid-tab"] div[class="card main-card border-radius-8 mb-3 active-card"] p[class="type-3 selected-package-name')
917                .innerHTML.replace("&", "&")
918            }
919
920            // Initializing price, item_id, index and item_category parameters
921            price = Number(document.querySelector('div[id="prepaid-tab"] div[class="card main-card border-radius-8 mb-3 active-card"] p[class="type-3 font-weight-700"]')
922              .innerHTML
923              .replace("\n", "").trim().replace("Rs. ", ""))
924            
925            item_id = document.querySelector('div[id="prepaid-tab"] div[class="card main-card border-radius-8 mb-3 active-card"] p[class="pcardID d-none"]')
926              .innerHTML
927            
928            // Compiling a list of packages available
929            packList = []
930            packNodeList = document.querySelectorAll('div[id="prepaid-tab"] div[paktype="prepaid"]')
931            packNodeList.forEach((pack) => {
932              // String formatting (converting "&" to "")
933              packList.push((pack.querySelector('p[class="type-3 selected-package-name"]').innerHTML).replace("&", "&"))
934              // Converting packList array to a string
935              packageList = packList.toString()
936              
937              sessionStorage.setItem("clicked_ga360_plan_name", packageList);
938              
939            })
940            
941            index = packList.indexOf(item_name) + 1
942            
943          }
944          sessionStorage.removeItem('price_ga360');
945          sessionStorage.setItem('price_ga360', price);
946          sessionStorage.removeItem('packageList');
947          sessionStorage.setItem('packageList', packageList);
948          // To be passed to customEvents
949          plan_name = sessionStorage.getItem('packageList');
950          sessionStorage.removeItem('index');
951          sessionStorage.setItem('index', index);
952          // Adding primary_number to session storage
953          primary_number = sessionStorage.getItem('primary_number_ga360');
954          break
955        case "select_item":
956          item_id = (drupalSettings.self_activation_row["selected_package"]).toLowerCase()
957          item_name = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName
958          index = Number(sessionStorage.getItem('index'));
959          item_category = (drupalSettings.self_activation_row["paid_mode"]).toLowerCase()
960          price = Number(sessionStorage.getItem('price_ga360'))
961          primary_number = sessionStorage.getItem('primary_number_ga360');
962
963          // To be passed to customEvents
964          plan_name = sessionStorage.getItem('packageList');
965          
966          break
967        case "view_item":
968          item_id = (drupalSettings.self_activation_row["selected_package"]).toLowerCase()
969          item_name = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName
970          index = Number(sessionStorage.getItem('index'));
971          item_category = (drupalSettings.self_activation_row["paid_mode"]).toLowerCase()
972          price = Number(sessionStorage.getItem('price_ga360'))
973          primary_number = sessionStorage.getItem('primary_number_ga360');
974
975          // To be passed to customEvents
976          plan_name = sessionStorage.getItem('packageList');
977          break
978        case "add_to_cart":
979          item_id = (drupalSettings.self_activation_row["selected_package"]).toLowerCase()
980          item_name = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName
981          index = Number(sessionStorage.getItem('index'));
982          item_category = (drupalSettings.self_activation_row["paid_mode"]).toLowerCase()
983          price = Number(sessionStorage.getItem('price_ga360'))
984          primary_number = sessionStorage.getItem('primary_number_ga360');
985         
986          if (document.querySelector('div[class="number-pool-block d-none"]') != null) {
987            event_label = "next button"
988          } else if (document.getElementById("nav-selectN-tab-1").ariaSelected == "true") {
989            event_label = "random number"
990          } else if (document.getElementById("nav-selectN-tab-2").ariaSelected == "true") {
991            event_label = "search number"
992          }
993
994          // To be passed to customEvents
995          plan_name = sessionStorage.getItem('packageList');
996          break
997      }
998      
999      window.dataLayer.push({
1000        event: event,
1001        ecommerce: {
1002          currency: "LKR",
1003          items: [
1004            {
1005              item_id: item_id,
1006              item_name: item_name,
1007              index: index,
1008              item_category: item_category,
1009              item_list_name: "self activation",
1010              primary_number: primary_number,
1011              price: price,
1012              quantity: 1,
1013            },
1014          ],
1015        },
1016      });
1017      // Creating a json of event parameters to pass to the selfActivationSelectPackage
1018      let eventParameters = {
1019        event_label: event_label,
1020        plan_name: plan_name,
1021        user_type: user_type,
1022        package_type: item_category,
1023        plan_selected: item_name,
1024        plan_cost: price
1025      }
1026      return eventParameters
1027    },
1028
1029    SAIdVerification: function () {
1030      item_id = drupalSettings.self_activation_row["selected_package"]
1031      item_category = (drupalSettings.self_activation_row["paid_mode"]).toLowerCase()
1032      item_name = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName
1033      price = Number(sessionStorage.getItem('price_ga360'))
1034
1035      primary_number = sessionStorage.getItem('primary_number_ga360');
1036      index = Number(sessionStorage.getItem('index'));
1037
1038      if (document.querySelector('div[id="nav-tab"] div[id="nav-nic-tab"]').className == "text-center tab-card active") {
1039        verification_method = "nic"
1040      } else if (document.querySelector('div[id="nav-tab"] div[id="nav-nic-tab"]').className == "text-center active tab-card") {
1041        verification_method = "nic"
1042      } else if (document.querySelector('div[id="nav-tab"] div[id="nav-license-tab"]').className == "text-center tab-card active") {
1043        verification_method = "license"
1044      } else {
1045        verification_method = "passport"
1046      }
1047
1048      window.dataLayer.push({
1049        event: "view_cart",
1050        ecommerce: {
1051          currency: "LKR",
1052          items: [
1053            {
1054              item_id: item_id,
1055              item_name: item_name,
1056              index: index,
1057              item_category: item_category,
1058              item_list_name: "self activation",
1059              primary_number: primary_number,
1060              price: price,
1061              quantity: 1,
1062              verification_method: verification_method,
1063            },
1064          ],
1065        },
1066      });
1067    },
1068
1069    SABeginCheckout: function () {
1070      item_id = drupalSettings.self_activation_row["selected_package"]
1071      item_category = (drupalSettings.self_activation_row["paid_mode"]).toLowerCase()
1072      item_name = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName
1073      price = Number(sessionStorage.getItem('price_ga360'))
1074
1075      primary_number = sessionStorage.getItem('primary_number_ga360');
1076      index = Number(sessionStorage.getItem('index'));
1077
1078      verification_method = (document.querySelector('button[data-id="address-verify-local-dropdown"]').title).toLowerCase()
1079      
1080      if (verification_method == "select from the list") {
1081        verification_method == undefined
1082      }
1083      
1084      window.dataLayer.push({
1085        event: "begin_checkout",
1086        ecommerce: {
1087          currency: "LKR",
1088          items: [
1089            {
1090              item_id: item_id,
1091              item_name: item_name,
1092              index: index,
1093              item_category: item_category,
1094              item_list_name: "self activation",
1095              primary_number: primary_number,
1096              price: price,
1097              quantity: 1,
1098              verification_method: verification_method,
1099            },
1100          ],
1101        },
1102      });
1103    },
1104
1105    SAAddShippingInfo: function () {
1106      item_id = drupalSettings.self_activation_row["selected_package"]
1107      item_category = (drupalSettings.self_activation_row["paid_mode"]).toLowerCase()
1108      item_name = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName
1109      price = Number(sessionStorage.getItem('price_ga360'))
1110
1111      primary_number = sessionStorage.getItem('primary_number_ga360');
1112      index = Number(sessionStorage.getItem('index'));
1113      
1114      window.dataLayer.push({
1115        event: "add_shipping_info",
1116        ecommerce: {
1117          currency: "LKR",
1118          items: [
1119            {
1120              item_id: item_id,
1121              item_name: item_name,
1122              index: index,
1123              item_category: item_category,
1124              item_list_name: "self activation",
1125              primary_number: primary_number,
1126              price: price,
1127              quantity: 1,
1128            },
1129          ],
1130        },
1131      });
1132    },
1133
1134    SAAddPaymentInfo: function () {
1135
1136      var SA_value = undefined,
1137      SA_value = document.querySelector('.ga360-value')?.textContent.trim(),
1138      
1139      // Initializing parameters
1140      item_id = drupalSettings.self_activation_row["selected_package"];
1141      item_category = drupalSettings.self_activation_row["paid_mode"];
1142      item_name = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName
1143      price = Number(sessionStorage.getItem('price_ga360'))
1144      index = Number(sessionStorage.getItem('index'));
1145      primary_number = sessionStorage.getItem('primary_number_ga360');
1146      
1147      if (drupalSettings.self_activation_row["paid_mode"] == "postpaid") {
1148        if (document.getElementById("VISA-tab").className =="card border-radius-common payment-button mb-3 p-3 payment-card active-card") {
1149          payment_type = "credit card";
1150        } else if (document.getElementById("AMEX-tab").className =="card border-radius-common payment-button mb-3 p-3 payment-card active-card") {
1151          payment_type = "credit card";
1152        } else {
1153          payment_type = "genie";
1154        }
1155      } else {
1156        payment_type = undefined
1157      }
1158      
1159
1160      window.dataLayer.push({
1161        event: "add_payment_info",
1162        ecommerce: {
1163          currency: "LKR",
1164          value: SA_value,
1165
1166          items: [
1167            {
1168              item_id: item_id,
1169              item_name: item_name,
1170              index: index,
1171              item_category: item_category,
1172              item_list_name: "self activation",
1173              primary_number: primary_number,
1174              price: price,
1175              quantity: 1,
1176              payment_type: payment_type,
1177            },
1178          ],
1179        },
1180      });
1181    },
1182
1183    SAPurchase: function () {
1184
1185      // Initializing paramters
1186      tax = undefined;
1187      shipping = undefined;
1188      item_id = drupalSettings.self_activation_row["selected_package"];
1189      item_name = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName;
1190      index = Number(sessionStorage.getItem('index'));
1191      item_category = drupalSettings.self_activation_row["paid_mode"];
1192      primary_number = sessionStorage.getItem('primary_number_ga360');
1193      price = Number(sessionStorage.getItem('price_ga360'))
1194      value = price
1195
1196      if (drupalSettings.self_activation_row["paid_mode"] == "postpaid") {
1197        payment_type = drupalSettings.self_activation_row["payment_type"];
1198        switch (payment_type) {
1199          case "GENIE":
1200            payment_type = "genie";
1201          case "AMEX":
1202            payment_type = "AMEX";
1203          case "VISA":
1204            payment_type = "VISA";
1205          case "MASTER":
1206            payment_type = "Master Card";
1207            case "CARD_PAYMENT":
1208              payment_type = "CARD PAYMENT";
1209        }
1210        transaction_id = drupalSettings.self_activation_row["ipg_ref"]
1211      } else {
1212        payment_type = undefined
1213        transaction_id = undefined
1214      }
1215
1216      var SA_value = undefined
1217      SA_value = document.querySelector('.SA-ga360-value')?.textContent.trim();
1218      
1219      window.dataLayer.push({
1220        event: "purchase",
1221        ecommerce: {
1222          currency: "LKR",
1223          value: SA_value,
1224          items: [
1225            {
1226              transaction_id: transaction_id,
1227              tax: tax,
1228              shipping: shipping,
1229              item_id: item_id,
1230              item_name: item_name,
1231              index: index,
1232              item_category: item_category,
1233              item_list_name: "self activation",
1234              primary_number: primary_number,
1235              price: price,
1236              quantity: 1,
1237              payment_type: payment_type,
1238            },
1239          ],
1240        },
1241      });
1242    },
1243
1244    listOfChannelsDTV: function (
1245      action,
1246      label,
1247      title,
1248      quicklinkMobile,
1249      quicklinkcontractId,
1250      quicklinkeMail
1251    ) {
1252      var quicklinkeMail = $("#my-account-dropdown")
1253        .find(".dropdown-content .user-details span#email-for-ga360")
1254        .text();
1255      var quicklinkMobile = $("#my-account-dropdown")
1256        .find(".dropdown-content .user-details span#tele-for-ga360")
1257        .text();
1258      var quicklinkcontractId = $("#my-account-dropdown")
1259        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
1260        .text();
1261
1262      window.dataLayer.push({
1263        event: "listOfChannels",
1264        eventAction: action, // Pass ‘Navigation’ on click of left and right arrow selection. Pass package name (Sports, Movies etc.) on click of packages.
1265        eventLabel: label, // In case of Navigation, pass ‘Left’ or ‘Right. In case of package name, pass number of channels e.g ‘5 Channels’, ‘14 Channels’ etc.
1266        bannerTitle: title, // Section title e.g. ‘Channels included in Gold package’
1267        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
1268        ctridprimary:
1269          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1270        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1271      });
1272    },
1273
1274    productClickOurOtherPack: function (
1275      list,
1276      name,
1277      id,
1278      price,
1279      category,
1280      position
1281    ) {
1282      window.dataLayer.push({
1283        event: "productClick",
1284        ecommerce: {
1285          click: {
1286            actionField: {
1287              list: list,
1288            }, // List name where packages are shown. Example values are ‘Bundles that include Rupavahini channel’, ‘Need More Channels’, ‘All Channel Packs’ etc.
1289            products: [
1290              {
1291                name: name, // Number of channels e.g. 8 Channels, 6 Channels
1292                id: id, // SKU of channel pack
1293                price: price, // Price of pack e.g. 199.00
1294                brand: "DTV Channel Packs", // DTV Channel Packs
1295                category: category, // Pack type e.g. Kids Pack, Education Pack
1296                variant: undefined,
1297                position: position, // Position of item in the list
1298              },
1299            ],
1300          },
1301        },
1302      });
1303    },
1304
1305    productImpressionsDTVBundle: function (
1306      name,
1307      id,
1308      price,
1309      category,
1310      list,
1311      position
1312    ) {
1313      window.dataLayer.push({
1314        event: "productImpressions",
1315        ecommerce: {
1316          impressions: [
1317            {
1318              name: name, // Number of channels e.g. 8 Channels, 6 Channels
1319              id: id, // SKU of channel pack
1320              price: price, // Price of pack e.g. 199.00
1321              brand: "DTV Channel Packs", // DTV Channel Packs
1322              category: category, // Pack type e.g. Kids Pack, Education Pack
1323              variant: undefined,
1324              list: list, // List name where packages are shown. Example values are ‘
1324Bundles that include Rupavahini channel’, ‘Need More Channels’, ‘All Channel Packs’ etc.
1325              position: position, // Position of item in the list
1326            },
1327          ],
1328        },
1329      });
1330    },
1331
1332    dtvChannelSearch: function (action) {
1333      window.dataLayer.push({
1334        event: "dtvChannelSearch",
1335        eventAction: action, // Search term
1336        usermsisdn: undefined, // HASHED MSISDN - user level
1337        ctridprimary: undefined, // primary contract ID
1338        email: undefined, // HASHED email - user level
1339      });
1340    },
1341
1342    genericQuickLinkEvent: function (
1343      eventName,
1344      action,
1345      quicklinkMobile,
1346      quicklinkcontractId,
1347      quicklinkeMail
1348    ) {
1349      var quicklinkeMail = $("#my-account-dropdown")
1350        .find(".dropdown-content .user-details span#email-for-ga360")
1351        .text();
1352      var quicklinkMobile = $("#my-account-dropdown")
1353        .find(".dropdown-content .user-details span#tele-for-ga360")
1354        .text();
1355      var quicklinkcontractId = $("#my-account-dropdown")
1356        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
1357        .text();
1358
1359      window.dataLayer.push({
1360        event: eventName,
1361        eventAction: action, // selected item name e.g.Buy ViU Mini
1362        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
1363        ctridprimary:
1364          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1365        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1366      });
1367    },
1368
1369    inHomeSections: function (action, label, title, msisdn, primary, email) {
1370      window.dataLayer.push({
1371        event: "inHomeSections",
1372        eventAction: action, // Title of the section from which an item is clicked e.g. ‘Is your area covered?’,‘For all your entertainment needs’, etc.
1373        eventLabel: label, // Clicked items e.g. Data Network, Buy Now, Learn More etc.
1374        bannerTitle: title, // ‘Latest in Entertainment’, ‘Dialog TV’, ‘ViU Mini’ etc.
1375        usermsisdn: msisdn, // HASHED MSISDN - user level
1376        ctridprimary: primary, // primary contract ID
1377        email: email, // HASHED email - user level
1378      });
1379    },
1380
1381    inHomeMegaMenu: function (action, label, destUrl, msisdn, primary, email) {
1382      window.dataLayer.push({
1383        event: "inHomeMegaMenu",
1384        eventAction: action, // Category e.g. Mobile, Shop, Support etc.
1385        eventLabel: label, // Clicked item e.g. Prepaid, Mobile etc.
1386        destinationUrl: destUrl, // Destination URL
1387        usermsisdn: msisdn, // HASHED MSISDN - user level
1388        ctridprimary: primary, // primary contract ID
1389        email: email, // HASHED email - user level
1390      });
1391    },
1392
1393    hbbPackageSections: function (
1394      action,
1395      label,
1396      packName,
1397      price,
1398      category,
1399      quicklinkMobile,
1400      quicklinkcontractId,
1401      quicklinkeMail
1402    ) {
1403      var quicklinkeMail = $("#my-account-dropdown")
1404        .find(".dropdown-content .user-details span#email-for-ga360")
1405        .text();
1406      var quicklinkMobile = $("#my-account-dropdown")
1407        .find(".dropdown-content .user-details span#tele-for-ga360")
1408        .text();
1409      var quicklinkcontractId = $("#my-account-dropdown")
1410        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
1411        .text();
1412
1413      window.dataLayer.push({
1414        event: "hbbPackageSections",
1415        eventAction: action, // Clicked items e.g. Get Now, Buy Now, Lite Plus, Learn More etc.
1416        eventLabel: label, // Name of the section from which an item is clicked e.g. Wifi Extender
1417        packageName: packName, // Applicable to ‘Special Promotion’ button click. E.g. 200GB Anytime Data Quota
1418        price: price, // Applicable to ‘Special Promotion’ button click. E.g. Rs. 6900.00 per month
1419        packageCategory: category, // Applicable to ‘Special Promotion’ button click. E.g. Office Ultra, Booster, etc.
1420        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
1421        ctridprimary:
1422          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1423        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1424      });
1425    },
1426
1427    // 12.1.4 HBB SECTIONS - DOR-42111
1428    hbbSections: function (
1429      action,
1430      label,
1431      title,
1432      pName,
1433      price,
1434      category,
1435      quicklinkMobile,
1436      quicklinkcontractId,
1437      quicklinkeMail
1438    ) {
1439      var quicklinkeMail = $("#my-account-dropdown")
1440        .find(".dropdown-content .user-details span#email-for-ga360")
1441        .text();
1442      var quicklinkMobile = $("#my-account-dropdown")
1443        .find(".dropdown-content .user-details span#tele-for-ga360")
1444        .text();
1445      var quicklinkcontractId = $("#my-account-dropdown")
1446        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
1447        .text();
1448
1449      window.dataLayer.push({
1450        event: "hbbSections",
1451        eventAction: action != "" ? action : "Not Add", // Title of the section from which an item is clicked e.g. ‘Latest in Broadband’, ‘Child Wi-Fi’, etc.
1452        eventLabel: label, // Clicked items e.g. Get Started, Buy Now, Learn More etc.
1453        bannerTitle: title, // Pass title of the banner wherever applicable e.g. ‘School Package’, ‘Postpaid’
1454        packageName: pName, // Applicable to ‘Special Promotion’ button click. E.g. 200GB Anytime Data Quota
1455        price: price, // Applicable to ‘Special Promotion’ button click. E.g. Rs. 6900.00 per month
1456        packageCategory: category, // Applicable to ‘Special Promotion’ button click. E.g. Office Ultra, Booster, etc.
1457        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
1458        ctridprimary:
1459          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1460        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1461      });
1462    },
1463
1464    hbbPackageComparison: function (
1465      action,
1466      label,
1467      price,
1468      anytimeData,
1469      nightData,
1470      bonusData,
1471      gamerdata,
1472      quicklinkMobile,
1473      quicklinkcontractId,
1474      quicklinkeMail
1475    ) {
1476      var quicklinkeMail = $("#my-account-dropdown")
1477        .find(".dropdown-content .user-details span#email-for-ga360")
1478        .text();
1479      var quicklinkMobile = $("#my-account-dropdown")
1480        .find(".dropdown-content .user-details span#tele-for-ga360")
1481        .text();
1482      var quicklinkcontractId = $("#my-account-dropdown")
1483        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
1484        .text();
1485
1486      window.dataLayer.push({
1487        event: "hbbPackageComparison",
1488        eventAction: action, // Package Dropdown
1489        eventLabel: label, // Package name i.e Office Ultra, Booster etc.
1490        price: price, // E.g. ‘Rs. 6999.00 per month’
1491        anytimeData: anytimeData, // E.g. 500 GB etc.
1492        nightData: nightData, // E.g. 500 GB etc.
1493        firstMonthBonusData: bonusData, // E.g. 100 GB etc.
1494        gamerdata: gamerdata, // E.g. 100 GB etc.
1495        // 'gamerdata': gamerdata, // E.g. 100 GB etc.
1496        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
1497        ctridprimary:
1498          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1499        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1500      });
1501    },
1502
1503    ProductImpressionCommon: function (impressionCards) {
1504      window.dataLayer.push({
1505        event: "productImpression", //static
1506        ecommerce: {
1507          impressions: impressionCards,
1508        },
1509      });
1510    },
1511
1512    // Product click DOR-42159
1513    productClickCommon: function (list, obj) {
1514      window.dataLayer.push({
1515        event: "productClick",
1516        ecommerce: {
1517          click: {
1518            actionField: {
1519              list: list,
1520            }, // List name where packages are shown. Possible values are ‘Tailored Packages’, ‘All Packages’, ‘Packages Comparison’, ‘Other Packages’
1521            products: [obj],
1522          },
1523        },
1524      });
1525    },
1526
1527    productAddToCartCommon: function (currency, list, obj) {
1528      dataLayer.push({
1529        event: "addToCart",
1530        ecommerce: {
1531          currencyCode: currency,
1532          add: {
1533            actionField: {
1534              list: list,
1535            }, // List name where packages are shown. Possible values are ‘Tailored Packages’, ‘All Packages’, ‘Packages Comparison’
1536            products: [obj],
1537          },
1538        },
1539      });
1540    },
1541
1542    productImpressionsDTVBundleCommon: function (obj) {
1543      window.dataLayer.push({
1544        event: "productImpression",
1545        ecommerce: {
1546          impressions: [obj],
1547        },
1548      });
1549    },
1550
1551    // 9.5.2 PRODUCT CLICK DOR-42159
1552    hasNumber: function (myString) {
1553      return /\d/.test(myString);
1554    },
1555
1556    // channelPacks DOR-42761
1557    listOfchannelPacks: function (
1558      action,
1559      label,
1560      package,
1561      quicklinkMobile,
1562      quicklinkcontractId,
1563      quicklinkeMail
1564    ) {
1565      var quicklinkeMail = $("#my-account-dropdown")
1566        .find(".dropdown-content .user-details span#email-for-ga360")
1567        .text();
1568      var quicklinkMobile = $("#my-account-dropdown")
1569        .find(".dropdown-content .user-details span#tele-for-ga360")
1570        .text();
1571      var quicklinkcontractId = $("#my-account-dropdown")
1572        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
1573        .text();
1574
1575      window.dataLayer.push({
1576        event: "channelPacks",
1577        eventAction: action, // ‘8 Channels’, ‘View More Packs’, ‘Prepaid’, ‘Postpaid’
1578        eventLabel: label, // Channels in the pack e.g. 8 Channels. In case of ‘View More Packs’, ‘Prepaid’, ‘Postpaid’, pass undefined
1579        package: package, // Bundle name e.g. Kids Bundle. In case of ‘View More Packs’, ‘Prepaid’, ‘Postpaid’, pass undefined
1580        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
1581        ctridprimary:
1582          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1583        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1584      });
1585    },
1586
1587    // 9.4.3 PRODUCT DETAILS - DOR-42160
1588    productDetailCommon: function (list, obj) {
1589      window.dataLayer.push({
1590        event: "productDetail",
1591        ecommerce: {
1592          detail: {
1593            actionField: {
1594              list: list,
1595            }, // List name where packages are shown. Possible values are ‘Tailored Packages’, ‘All Packages’, ‘Packages Comparison’
1596            products: [obj],
1597          },
1598        },
1599      });
1600    },
1601
1602    // DTV Packages DOR-42154
1603    dtvPackages: function (
1604      action,
1605      label,
1606      pName,
1607      price,
1608      sOffer,
1609      quicklinkMobile,
1610      quicklinkcontractId,
1611      quicklinkeMail
1612    ) {
1613      var quicklinkeMail = $("#my-account-dropdown")
1614        .find(".dropdown-content .user-details span#email-for-ga360")
1615        .text();
1616      var quicklinkMobile = $("#my-account-dropdown")
1617        .find(".dropdown-content .user-details span#tele-for-ga360")
1618        .text();
1619      var quicklinkcontractId = $("#my-account-dropdown")
1620        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
1621        .text();
1622
1623      window.dataLayer.push({
1624        event: "dtvPackages",
1625        eventAction: action, // ‘See Channels’ or ‘View More Packages’
1626        eventLabel: label, // Channels in package e.g. 63 Channels. In case of ‘View More Packages’, pass undefined
1627        package: pName, // Package label shown at the top e.g. Thee, Gold etc. In case of ‘View More Packages’, pass undefined
1628        price: price, // Whole price tag e.g. ‘Rs. 799.00 per month’. In case of ‘View More Packages’, pass undefined
1629        specialPromotion: sOffer, // If available, pass ‘yes’ or else ‘no’. In case of ‘View More Packages’, pass undefined
1630        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
1631        ctridprimary:
1632          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1633        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1634      });
1635    },
1636
1637    // ACTIVATE CHANNEL DOR-42143
1638    activateChannel: function (
1639      action,
1640      predailyrental,
1641      premonthlyrental,
1642      postpadidrental,
1643      quicklinkMobile,
1644      quicklinkcontractId,
1645      quicklinkeMail
1646    ) {
1647      var quicklinkeMail = $("#my-account-dropdown")
1648        .find(".dropdown-content .user-details span#email-for-ga360")
1649        .text();
1650      var quicklinkMobile = $("#my-account-dropdown")
1651        .find(".dropdown-content .user-details span#tele-for-ga360")
1652        .text();
1653      var quicklinkcontractId = $("#my-account-dropdown")
1654        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
1655        .text();
1656
1657      window.dataLayer.push({
1658        event: "activateChannel",
1659        eventAction: action, // Channel name e.g. HBO
1660        prepaidDailyRentalPrice: predailyrental, // E.g. ‘15.00’
1661        prepaidMonthlyRentalPrice: premonthlyrental, // E.g. ‘79.00’
1662        postpaidRentalPrice: postpadidrental, // E.g. ‘59.00’
1663        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
1664        ctridprimary:
1665          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1666        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1667      });
1668    },
1669
1670    // BUNDLE BANNER NAVIGATION DOR-42144
1671    bundleBannerNavigation: function (
1672      action,
1673      label,
1674      quicklinkMobile,
1675      quicklinkcontractId,
1676      quicklinkeMail
1677    ) {
1678      var quicklinkeMail = $("#my-account-dropdown")
1679        .find(".dropdown-content .user-details span#email-for-ga360")
1680        .text();
1681      var quicklinkMobile = $("#my-account-dropdown")
1682        .find(".dropdown-content .user-details span#tele-for-ga360")
1683        .text();
1684      var quicklinkcontractId = $("#my-account-dropdown")
1685        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
1686        .text();
1687
1688      window.dataLayer.push({
1689        event: "bundleBannerNavigation",
1690        eventAction: action, // 'Left' or 'Right' based on the arrow click
1691        eventLabel: label, // Title above the banner e.g. Bundles that...
1692        usermsisdn: quicklinkMobile != "" ? quicklinkMobile : "Not Add", // HASHED MSISDN - user level
1693        ctridprimary:
1694          quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1695        email: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1696      });
1697    },
1698
1699    // Device View Item DOR-59422
1700    deviceViewItem: function (
1701      item_id,
1702      item_name,
1703      position,
1704      item_brand,
1705      item_category,
1706      item_category2,
1707      item_list_name,
1708      item_variant,
1709      quicklinkcontractId,
1710      ga360_price,
1711      quantity,
1712      primary_number
1713    ) {
1714      window.dataLayer.push({
1715        event: "view_item",
1716        ecommerce: {
1717          currency: "LKR", // Currency Code
1718          value: ga360_price,
1719          items: [
1720            {
1721              item_id: item_id,
1722              item_name: item_name, // Name of the product
1723              index: position, // Position of item in list. E.g. 1, 2, 3 etc.
1724              item_brand: item_brand, // Brand category of the product E.g Lenovo
1725              item_category: item_category, // Category of the brand E.g Tablet
1726              item_category2: item_category2, // 2nd category of the product E.g
1727              item_list_name: item_list_name, // List name where the packages are listed. E.g. Phone, Tablets, Smart home etc etc.
1728              item_variant: item_variant,
1729              contract_id:
1730                quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // User property contract ID as a key
1731              price: ga360_price, // price of the product E.g 86069
1732              quantity: quantity, // Quantity of the product E.g 1
1733              primary_number: primary_number,
1734            },
1735          ],
1736        },
1737      });
1738    },
1739
1740    // Device Select Item DOR-59422
1741    deviceSelectItem: function (
1742      item_id,
1743      item_name,
1744      currency_code,
1745      position,
1746      item_brand,
1747      item_category,
1748      item_category2,
1749      item_list_name,
1750      item_variant,
1751      quicklinkcontractId,
1752      ga360_price,
1753      quantity,
1754      primary_number
1755    ) {
1756      window.dataLayer.push({
1757        event: "select_item",
1758        ecommerce: {
1759          currency: currency_code, // Currency Code
1760          items: [
1761            {
1762              item_id: item_id,
1763              item_name: item_name, // Name of the product
1764              index: position, // Position of item in list. E.g. 1, 2, 3 etc.
1765              item_brand: item_brand, // Brand category of the product E.g Lenovo
1766              item_category: item_category, // Category of the brand E.g Tablet
1767              item_category2: item_category2, // 2nd category of the product E.g
1768              item_list_name: item_list_name, // List name where the packages are listed. E.g. Phone, Tablets, Smart home etc etc.
1769              item_variant: item_variant,
1770              contract_id:
1771                quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // User property contract ID as a key
1772              price: ga360_price, // price of the product E.g 86069
1773              quantity: quantity, // Quantity of the product E.g 1
1774              primary_number: primary_number,
1775            },
1776          ],
1777        },
1778      });
1779    },
1780
1781    // Device add to cart DOR-59422
1782    deviceAddtoCart: function (
1783      item_id,
1784      item_name,
1785      currency_code,
1786      position,
1787      item_brand,
1788      item_category,
1789      item_list_name,
1790      item_variant,
1791      quantity,
1792      contract_id,
1793      price,
1794      value,
1795      primary_number
1796    ) {
1797      window.dataLayer.push({
1798        event: "add_to_cart",
1799        ecommerce: {
1800          currency: currency_code,
1801          value: value,
1802          items: [
1803            {
1804              item_id: item_id,
1805              item_name: item_name,
1806              currency: currency_code,
1807              index: position,
1808              item_brand: item_brand,
1809              item_category: item_category,
1810              item_list_name: item_list_name,
1811              item_variant: item_variant,
1812              contract_id: contract_id,
1813              price: price,
1814              quantity: quantity,
1815              primary_number: primary_number,
1816            },
1817          ],
1818        },
1819      });
1820    },
1821
1822    // DOR-60149 Roaming landing page packages and detail page packages
1823    roamingPack: function (eventAction, eventLabel, packageName, price) {
1824
1825      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
1826      var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
1827
1828      window.dataLayer.push({
1829        event: "idd_roaming_pack",
1830        ecommerce: {
1831          currency: "USD",
1832          value: price,
1833          event_params: {
1834            eventCategory: "IDD Roaming Pack",
1835            eventAction: eventAction,
1836            eventLabel: eventLabel,
1837            packageName: packageName,
1838            price: price,
1839          },
1840          user_properties: {
1841            primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1842            eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1843          }
1844        }
1845      });
1846      
1847    },
1848
1849    // DOR-60149 Roaming check Packs
1850    iddroamingcheckPacks: function (eventLabel) {
1851
1852      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
1853      var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
1854
1855      window.dataLayer.push({
1856        event: "idd_roaming_check_packs",
1857        ecommerce: {
1858          event_params: {
1859            eventCategory: "IDD Roaming Pack",
1860            eventAction: "Check click",
1861            eventLabel: eventLabel,
1862          },
1863          user_properties: {
1864            primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1865            eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1866          }
1867        }
1868      });
1869
1870    },
1871
1872    // DOR-60149 Roaming enter number
1873    iddroamingverifyNumber: function (eventAction, packageName, price) {
1874
1875      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
1876      var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
1877
1878      window.dataLayer.push({
1879        event: "idd_roaming_enter_number",
1880        ecommerce: {
1881          currency: "USD",
1882          value: price,
1883          event_params: {
1884            eventCategory: "IDD Roaming Pack",
1885            eventAction: eventAction,
1886            eventLabel: sessionStorage.getItem('idd_roaming_country'),
1887            packageName: packageName,
1888            price: price,
1889          },
1890          user_properties: {
1891            primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1892            eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1893          }
1894        }
1895      });
1896      
1897    },
1898
1899    // DOR-60149 Roaming verify otp and resend pin
1900    iddroamingverifyOtp: function (eventAction, packageName, price) {
1901
1902      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
1903      var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
1904
1905      window.dataLayer.push({
1906        event: "idd_roaming_verify_otp",
1907        ecommerce: {
1908          currency: "USD",
1909          value: price,
1910          event_params: {
1911            eventCategory: "IDD Roaming Pack",
1912            eventAction: eventAction,
1913            eventLabel: sessionStorage.getItem('idd_roaming_country'),
1914            packageName: packageName,
1915            price: price,
1916          },
1917          user_properties: {
1918            primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1919            eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1920          }
1921        }
1922      });
1923
1924    },
1925    
1926    // DOR-60149 Roaming confirm activate
1927    iddroamingconfirmactivate: function (eventAction, packageCategory, packageName, price) {
1928
1929      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
1930      var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
1931
1932      window.dataLayer.push({
1933        event: "idd_roaming_confirm_activate",
1934        ecommerce: {
1935          currency: "USD",
1936          value: price,
1937          event_params: {
1938            eventCategory: "IDD Roaming Pack",
1939            eventAction: eventAction,
1940            eventLabel: sessionStorage.getItem('idd_roaming_country'),
1941            packageCategory: packageCategory,
1942            packageName: packageName,
1943            price: price,
1944          },
1945          user_properties: {
1946            primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1947            eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1948          }
1949        }
1950      });
1951
1952    },
1953
1954    // DOR-60149 Roaming activate success
1955    iddroamingactivateSuccess: function () {
1956
1957      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
1958      var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
1959
1960      window.dataLayer.push({
1961        event: "idd_roaming_activate_success",
1962        ecommerce: {
1963          currency: "USD",
1964          value: sessionStorage.getItem("idd_roaming_package_price"),
1965          event_params: {
1966            eventCategory: "IDD Roaming Pack",
1967            eventAction: sessionStorage.getItem("idd_roaming_package_action"),
1968            eventLabel: sessionStorage.getItem('idd_roaming_country'),
1969            packageCategory: sessionStorage.getItem("idd_roaming_package_category"),
1970            packageName: sessionStorage.getItem("idd_roaming_package_name"),
1971            price: sessionStorage.getItem("idd_roaming_package_price"),
1972            transaction_id: "undefined"
1973          },
1974          user_properties: {
1975            primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
1976            eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
1977          }
1978        }
1979      });
1980
1981    },
1982
1983    // DOR-60149 Roaming error
1984    iddroamingError: function (eventLabel) {
1985
1986      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
1987      var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
1988
1989      window.dataLayer.push({
1990        event: "idd_roaming_error",
1991        ecommerce: {
1992          currency: "USD",
1993          value: sessionStorage.getItem('idd_roaming_package_price'),
1994          event_params: {
1995            eventCategory: "IDD Roaming Pack",
1996            eventAction: "error",
1997            eventLabel: eventLabel,
1998            packageName: sessionStorage.getItem('idd_roaming_package_name'),
1999            price: sessionStorage.getItem('idd_roaming_package_price'),
2000          },
2001          user_properties: {
2002            primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
2003            eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
2004          }
2005        }
2006      });
2007
2008    },
2009
2010    // HBB activation ga360
2011    purchasefailureSuccess: function () {
2012
2013      var quicklinkMobile = $("#my-account-dropdown").find(".dropdown-content .user-details span#tele-for-ga360").text();
2014
2015      jQuery.ajax({
2016        url: "/api/aes-encript-for-ga360",
2017        type: 'POST',
2018
2019        success: function (response) {
2020
2021          var contact_no = "Not Add";
2022          var nic_no = "Not Add";
2023
2024          if (response.encription && response.encription.login_user) {
2025            
2026            contact_no = response.encription.login_user.tele_for_ga360;
2027            nic_no = response.encription.login_user.id_number_for_ga360;
2028          }
2029
2030          window.dataLayer.push({
2031            event: "purchase_failure",
2032            ecommerce: {
2033              currency: "LKR",
2034              value: drupalSettings.data.amountWithTax,
2035              items: [{
2036                item_name: drupalSettings.data.productType,
2037                connection_type: drupalSettings.data.accountType,
2038                conne_number: drupalSettings.data.accountNumber,
2039                lob: "HBB",
2040                price: drupalSettings.data.amountWithTax,
2041                usermsisdn: contact_no,
2042                encrypted_nic: nic_no,
2043                package_name: sessionStorage.getItem("hbb-pname"),
2044                failure_reason: jQuery(".ga360-label").text().trim(),
2045              }]
2046            }
2047          });
2048        }
2049      });
2050
2051    },
2052
2053    // DOR-60149 dtv activation select pack
2054    dtvactivationselectPack: function (eventAction, eventLabel, connection_type, price) {
2055
2056      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
2057      var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
2058
2059      window.dataLayer.push({
2060        event: "dtv_activation_select_pack",
2061        ecommerce: {
2062          currency: "LKR",
2063          value: price,
2064          event_params: {
2065            eventCategory: "DTV Channel Activation",
2066            eventAction: eventAction,
2067            eventLabel: eventLabel,
2068            connection_type: connection_type,
2069            price: price,
2070          },
2071          user_properties: {
2072            primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
2073            eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
2074          }
2075        }
2076
2077      });
2078
2079    },
2080
2081    // DOR-60149 dtv activation enter number
2082    dtvactivationenterNumber: function (eventAction, eventLabel, price) {
2083
2084      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
2085      var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
2086
2087      window.dataLayer.push({
2088        event: "dtv_activation_enter_number",
2089        ecommerce: {
2090          currency: "LKR",
2091          value: sessionStorage.getItem('dtv_activation_price'),
2092          event_params: {
2093            eventCategory: "DTV Channel Activation",
2094            eventAction: eventAction,
2095            eventLabel: eventLabel,
2096            connection_type: sessionStorage.getItem('dtv_activation_connection_type'),
2097            price: sessionStorage.getItem('dtv_activation_price'),
2098          },
2099          user_properties: {
2100            primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
2101            eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
2102          }
2103        }
2104        
2105      });
2106
2107    },
2108
2109    // DOR-60149 dtv activation verify otp and resend pin
2110    dtvactivationverifyotp: function (eventAction) {
2111
2112      var quickli
2112nkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
2113      var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
2114
2115      window.dataLayer.push({
2116        event: "dtv_activation_verify_otp",
2117        ecommerce: {
2118          currency: "LKR",
2119          value: sessionStorage.getItem('dtv_activation_price'),
2120          event_params: {
2121            eventCategory: "DTV Channel Activation",
2122            eventAction: eventAction,
2123            eventLabel: sessionStorage.getItem('dtv_activation_product_title'),
2124            connection_type: sessionStorage.getItem('dtv_activation_connection_type'),
2125            price: sessionStorage.getItem('dtv_activation_price'),
2126          },
2127          user_properties: {
2128            primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
2129            eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
2130          }
2131        }
2132        
2133      });
2134
2135    },
2136
2137    // DOR-60149 dtv activation confirm
2138    dtvactivationConfirm: function (eventactionConfirm) {
2139
2140      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
2141      var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
2142
2143      window.dataLayer.push({
2144        event: "dtv_activation_confirm",
2145        ecommerce: {
2146          currency: "LKR",
2147          value: sessionStorage.getItem('dtv_activation_price'),
2148          event_params: {
2149            eventCategory: "DTV Channel Activation",
2150            eventAction: eventactionConfirm,
2151            eventLabel: sessionStorage.getItem('dtv_activation_product_title'),
2152            connection_type: sessionStorage.getItem('dtv_activation_connection_type'),
2153            price: sessionStorage.getItem('dtv_activation_price'),
2154          },
2155          user_properties: {
2156            primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
2157            eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
2158          }
2159        }
2160        
2161      });
2162
2163    },
2164
2165    // DOR-60149 dtv activation enter pin
2166    // dtvactivationenterpin: function () {
2167     
2168    //   var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
2169    //   var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
2170
2171    //   window.dataLayer.push({
2172    //     event: "dtv_activation_enter_pin",
2173    //     event_params: {
2174    //       eventCategory: "DTV Channel Activation",
2175    //       eventAction: sessionStorage.getItem('dtv_activation_product_title'),
2176    //       eventLabel: eventLabel,
2177    //       price: sessionStorage.getItem('dtv_activation_price'),
2178    //     },
2179    //     user_properties: {
2180    //       primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
2181    //       eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
2182    //     }
2183    //   });
2184
2185    // },
2186
2187    // DOR-60149 dtv activation success
2188    dtvactivationSuccess: function (eventAction) {
2189
2190      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
2191      var quicklinkeMail = $("#my-account-dropdown").find(".dropdown-content .user-details span#email-for-ga360").text();
2192
2193      window.dataLayer.push({
2194        event: "dtv_activation_success",
2195        ecommerce: {
2196          currency: "LKR",
2197          value: sessionStorage.getItem('dtv_activation_price'),
2198          event_params: {
2199            eventCategory: "DTV Channel Activation",
2200            eventAction: eventAction,
2201            eventLabel: sessionStorage.getItem('dtv_activation_product_title'),
2202            package_valid: sessionStorage.getItem('dtv_activation_package_valid_1') + ' ' + sessionStorage.getItem('dtv_activation_package_valid_2'),
2203            connection_type: sessionStorage.getItem('dtv_activation_connection_type'),
2204            price: sessionStorage.getItem('dtv_activation_price'),
2205  
2206          },
2207          user_properties: {
2208            primary_number: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
2209            eid: quicklinkeMail != "" ? quicklinkeMail : "Not Add", // HASHED email - user level
2210          }
2211        }
2212        
2213      });
2214
2215    },
2216
2217    // DOR-60149 Quick Pay add payment info
2218    addpaymentInfo: function (item_id, item_name, index, item_category, price, payment_type) {
2219
2220      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
2221      var quicklinkMobile = $("#my-account-dropdown").find(".dropdown-content .user-details span#tele-for-ga360").text();
2222      var connection_number = jQuery("#con_number").text();
2223
2224      jQuery.ajax({
2225        url: "/api/aes-encript-for-ga360",
2226        type: 'POST',
2227        data: {
2228          'orginal': connection_number,
2229        },
2230        success: function (response) { 
2231          connection_number = response.encription;
2232
2233          window.dataLayer.push({
2234            event: "add_payment_info",
2235            event_params: {
2236              item_id: item_id,
2237              item_name: item_name != "" ? item_name : "undefined",
2238              currency: "LKR",
2239              index: index,
2240              item_category: item_category,
2241              item_list_name: "quickpay",
2242              price: price,
2243              quantity: "1",
2244              payment_type: payment_type,
2245            },
2246            user_properties: {
2247              contract_id: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
2248              primary_number: quicklinkMobile != "" ? quicklinkMobile : connection_number, // HASHED MSISDN - user level
2249            }
2250          });
2251        }
2252      });
2253
2254    },
2255
2256    // DOR-60149 Quick Pay purchase
2257    purchase: function (transaction_id, value) {
2258
2259      var quicklinkcontractId = $("#my-account-dropdown").find(".dropdown-content .user-details span#cid-uuid-for-ga360").text();
2260      var quicklinkMobile = $("#my-account-dropdown").find(".dropdown-content .user-details span#tele-for-ga360").text();
2261      var connection_number = jQuery("#con_number").text();
2262
2263      jQuery.ajax({
2264        url: "/api/aes-encript-for-ga360",
2265        type: 'POST',
2266        data: {
2267          'orginal': connection_number,
2268        },
2269        success: function (response) { 
2270          connection_number = response.encription;
2271
2272          window.dataLayer.push({
2273            event: "purchase",
2274            event_params: {
2275              transaction_id: transaction_id,
2276              value: value,
2277              tax: null,
2278              shipping: null,
2279              item_id: sessionStorage.getItem("quick_pay_item_id"),
2280              item_name: sessionStorage.getItem("quick_pay_item_name"),
2281              currency: "LKR",
2282              index: sessionStorage.getItem("quick_pay_index"),
2283              item_category: sessionStorage.getItem("quick_pay_item_category"),
2284              item_list_name: "quickpay",
2285              price: sessionStorage.getItem("quick_pay_price"),
2286              quantity: "1",
2287              payment_type: sessionStorage.getItem("quick_pay_payment_type"),
2288            },
2289            user_properties: {
2290              contract_id: quicklinkcontractId != "" ? quicklinkcontractId : "Not Add", // primary contract ID
2291              primary_number: quicklinkMobile != "" ? quicklinkMobile : connection_number, // HASHED MSISDN - user level
2292            }
2293          });
2294
2295        }
2296      });
2297    },
2298
2299    // DOR-60149 Quick Pay transaction fail
2300    quickpaytransactionFail: function (event_label, ga360_failure_reason_text) {
2301
2302      window.dataLayer.push({
2303        event: "quickpay_transaction_fail",
2304        event_params: {
2305          event_category: "Quick Pay",
2306          event_action: "transaction",
2307          event_label: event_label,
2308          payment_type: sessionStorage.getItem("quick_pay_payment_type"),
2309          package_type: sessionStorage.getItem("quick_pay_item_category"),
2310          failure_reason: ga360_failure_reason_text ? ga360_failure_reason_text: undefined,
2311        }
2312      })
2313
2314    },
2315
2316    // DOR-60149 Quick Pay view card
2317    quickpayviewCard: function (event_action, payment_type, package_type) {
2318
2319      window.dataLayer.push({
2320        event: "quickpay_view_card",
2321        event_params: {
2322          event_category: "Quick Pay",
2323          event_action: event_action,
2324          event_label: "Click",
2325          payment_type: payment_type,
2326          package_type: package_type,
2327        }
2328      })
2329
2330    },
2331
2332    //Self Activation ID verification - error 
2333    
2334    IDverification: function () {
2335
2336      let event_category = "Self Activation";
2337      let event_action = "id verification";
2338      let event_label = "Error screen";
2339      var user_type = sessionStorage.getItem("clicked_ga360_user_type");
2340      let package_type = drupalSettings.self_activation_row["paid_mode"];
2341      let plan_selected = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName;
2342      let plan_name = sessionStorage.getItem('packageList');
2343      let plan_cost = Number(sessionStorage.getItem('price_ga360'))
2344      let add_on = sessionStorage.getItem('packageList');
2345      let verification_method = document.querySelector('label[for="standardInput"]').textContent.trim().split(' ')[0];
2346      
2347
2348      window.dataLayer.push({
2349        event: "self_activation_id_verification_error",
2350        ecommerce: {
2351          items: [
2352            {
2353              'event_category': event_category,
2354              'event_action': event_action,
2355              'event_label': event_label,
2356              'user_type': user_type,
2357              'package_type': package_type,
2358              'plan_selected': plan_selected,
2359              'plan_name': plan_name,
2360              'plan_cost': plan_cost,
2361              'add_on': add_on,
2362              'verification_method': verification_method
2363            }
2364          ]
2365        }
2366      });
2367    },
2368  
2369
2370    // Self Activation Verify Address
2371    VerifyAddress: function (event_category, event_action, event_label, user_type, package_type, plan_selected, plan_name, plan_cost, add_on, address_type) {
2372
2373      window.dataLayer.push({
2374        event: "self_activation_verify_address",
2375        ecommerce: {
2376          items: [
2377            {
2378              'event_category': event_category,
2379              'event_action': event_action,
2380              'event_label': event_label,
2381              'user_type': user_type,
2382              'package_type': package_type,
2383              'plan_selected': plan_selected,
2384              'plan_name': plan_name,
2385              'plan_cost': plan_cost,
2386              'add_on': add_on,
2387              'address_type': address_type
2388            }
2389          ]
2390        }
2391      });
2392    },
2393
2394    // var paymentstatus = drupalSettings.self_activation_row["payment_status"];
2395
2396    // Self Activation Confirm and Pay
2397    ConfirmPay: function (event_category, event_action, event_label, user_type, package_type, plan_selected, plan_name, plan_cost, add_on, payment_method) {
2398
2399      window.dataLayer.push({
2400        event: "self_activation_conifrm_pay_selection",
2401        ecommerce: {
2402          items: [
2403            {
2404              'event_category': event_category,
2405              'event_action': event_action,
2406              'event_label': event_label,
2407              'user_type': user_type,
2408              'package_type': package_type,
2409              'plan_selected': plan_selected,
2410              'plan_name': plan_name,
2411              'plan_cost': plan_cost,
2412              'add_on': add_on,
2413              'payment_method': payment_method
2414            }
2415          ]
2416        }
2417      });
2418    },
2419
2420    // Self Activation Confirm and Pay - Faild
2421    ConfirmPayFaild: function (event_category, event_action, event_label, user_type, package_type, plan_selected, plan_name, plan_cost, add_on, payment_method, order_id, order_date) {
2422
2423      window.dataLayer.push({
2424        event: "self_activation_failed",
2425        ecommerce: {
2426          items: [
2427            {
2428              'event_category': event_category,
2429              'event_action': event_action,
2430              'event_label': event_label,
2431              'user_type': user_type,
2432              'package_type': package_type,
2433              'plan_selected': plan_selected,
2434              'plan_name': plan_name,
2435              'plan_cost': plan_cost,
2436              'add_on': add_on,
2437              'payment_method': payment_method,
2438              'order_id': order_id,
2439              'order_date': order_date
2440            }
2441          ]           
2442        }
2443      });
2444    },
2445  };
2446
2447  // channelPacks DOR-42761
2448  jQuery(document).on(
2449    "click",
2450    "#dtv-all-channel-bundles-block a.nav-link",
2451    function () {
2452      var title = $(this).text().toLowerCase();
2453      Drupal.behaviors.ga360.listOfchannelPacks(title, title, title);
2454    }
2455  );
2456
2457  // 9.2.4 DTV SECTIONS - DOR-42150
2458  jQuery("body").on(
2459    "click",
2460    "#dtv-all-packages-with-carousal nav a",
2461    function () {
2462      var eId = this.getAttribute("href");
2463      var label = jQuery(this).html();
2464      Drupal.behaviors.ga360.getContent(eId, label);
2465    }
2466  );
2467
2468  // 9.2.4 DTV SECTIONS - DOR-42150
2469  jQuery("body").on(
2470    "click",
2471    "#dtv-all-packages-with-carousal .slick-arrow",
2472    function () {
2473      var eId = jQuery("#dtv-all-packages-with-carousal nav a.active").attr(
2474        "href"
2475      );
2476      var label = jQuery(this).attr("id");
2477      Drupal.behaviors.ga360.getContent(eId, label);
2478    }
2479  );
2480
2481  jQuery("#main-carousel-bottom-quick-links-section a#quick-btn").click(
2482    function () {
2483      var gTagName = jQuery(".g-tag-name").text().trim();
2484      var list = getListValues(gTagName);
2485      var label = jQuery.trim(
2486        jQuery(
2487          "#main-carousel-bottom-quick-links-section .quick-links-label"
2488        ).text()
2489      );
2490      var cNumber = btoa(
2491        jQuery.trim(
2492          jQuery(
2493            "#main-carousel-bottom-quick-links-section .quick-links-input-box input"
2494          ).val()
2495        )
2496      );
2497
2498      Drupal.behaviors.ga360.pushDataForTopLinkGoButton(
2499        list[0],
2500        list[1],
2501        label,
2502        cNumber,
2503        undefined,
2504        undefined,
2505        undefined
2506      );
2507    }
2508  );
2509
2510  jQuery("#faq-content-block .rj-accordion-header").click(function () {
2511    var chk_state = jQuery(
2512      "div.rj-accordion-body",
2513      jQuery(this).parent()
2514    ).hasClass("chk-state");
2515    if (!chk_state) {
2516      var label = jQuery.trim(jQuery(".faq-question", this).text());
2517      Drupal.behaviors.ga360.dataPushForFAQClick("Question", label);
2518    }
2519  });
2520
2521  jQuery("#faq-content-block .rj-accordion-body a.btn").click(function () {
2522    var pElement = jQuery(this).parent().parent().parent().parent().parent();
2523    var label = jQuery.trim(
2524      jQuery(".rj-accordion-header .faq-question", pElement).text()
2525    );
2526    var action = jQuery.trim(jQuery(this).text());
2527    Drupal.behaviors.ga360.dataPushForFAQClick(action, label);
2528  });
2529
2530  jQuery("body").on(
2531    "click",
2532    "#list-of-channels-section button.slick-arrow",
2533    function () {
2534      Drupal.behaviors.ga360.listOfChannelsDTV(
2535        "Navigation",
2536        this.getAttribute("label"),
2537        jQuery("#list-of-channels-section h3").text().trim()
2538      );
2539    }
2540  );
2541
2542  jQuery("body").on(
2543    "click",
2544    "#list-of-channels-section nav .nav-tabs a",
2545    function () {
2546      var label = " Channels";
2547      var count = Number(jQuery("h4", this).text().trim());
2548      label = count + label;
2549      if (count == 1) label = count + " Channel";
2550      Drupal.behaviors.ga360.listOfChannelsDTV(
2551        jQuery("p", this).text().trim(),
2552        label,
2553        jQuery("#list-of-channels-section h3").text().trim()
2554      );
2555    }
2556  );
2557
2558  jQuery("#main-carousel-bottom-quick-links-section .links a").click(
2559    function () {
2560      var gTagName = jQuery(".g-tag-name").text().trim();
2561      var action = jQuery(".link-sub-title p", this).text().trim();
2562
2563      switch (gTagName) {
2564        case "in-home-landing":
2565          Drupal.behaviors.ga360.genericQuickLinkEvent(
2566            "inHomeTopPanel",
2567            action,
2568            undefined,
2569            undefined,
2570            undefined
2571          );
2572          break;
2573        case "dtv-landing":
2574          Drupal.behaviors.ga360.genericQuickLinkEvent(
2575            "dtvTopPanel",
2576            action,
2577            undefined,
2578            undefined,
2579            undefined
2580          );
2581          break;
2582        case "viu-hub-landing":
2583          // Data layer push function
2584          break;
2585        case "viu-mini-landing":
2586          Drupal.behaviors.ga360.genericQuickLinkEvent(
2587            "viuMiniTopPanel",
2588            action,
2589            undefined,
2590            undefined,
2591            undefined
2592          );
2593          break;
2594        case "hbb-landing":
2595          Drupal.behaviors.ga360.genericQuickLinkEvent(
2596            "hbbTopPanel",
2597            action,
2598            undefined,
2599            undefined,
2600            undefined
2601          );
2602          break;
2603        case "hbb-prepaid":
2604          Drupal.behaviors.ga360.genericQuickLinkEvent(
2605            "hbbTopPanel",
2606            action,
2607            undefined,
2608            undefined,
2609            undefined
2610          );
2611          break;
2612        case "hbb-postpaid":
2613          Drupal.behaviors.ga360.genericQuickLinkEvent(
2614            "hbbTopPanel",
2615            action,
2616            undefined,
2617            undefined,
2618            undefined
2619          );
2620          break;
2621      }
2622    }
2623  );
2624
2625  jQuery("#2-container-layout-1 #entetainment-container a.btn").click(
2626    function () {
2627      var topElement = jQuery(this).closest("#2-container-layout-1");
2628      var label = jQuery.trim(jQuery(this).text());
2629      var title = jQuery.trim(jQuery(".main-title div", topElement).text());
2630
2631      pushDataLayer(
2632        undefined,
2633        label,
2634        title,
2635        undefined,
2636        undefined,
2637        undefined,
2638        undefined,
2639        undefined,
2640        undefined
2641      );
2642    }
2643  );
2644
2645  jQuery("#2-container-layout-1 #offer-container a.btn").click(function () {
2646    var topElement = jQuery(this).closest("#2-container-layout-1");
2647    var action = jQuery.trim(
2648      jQuery("#offer-container .title div", topElement).text()
2649    );
2650    var label = jQuery.trim(jQuery(this).text());
2651    var title = jQuery.trim(jQuery(".main-title div", topElement).text());
2652
2653    pushDataLayer(
2654      action,
2655      label,
2656      title,
2657      undefined,
2658      undefined,
2659      undefined,
2660      undefined,
2661      undefined,
2662      undefined
2663    );
2664  });
2665
2666  jQuery(".general-container .section .cta-links a").click(function () {
2667    var topElement = jQuery(this).closest(".general-container");
2668    var action = jQuery.trim(
2669      jQuery(".section .section-header", topElement).text()
2670    );
2671    var label = jQuery.trim(jQuery(this).text());
2672    var title = jQuery.trim(jQuery(".ribbon", topElement).text());
2673
2674    pushDataLayer(
2675      action,
2676      label,
2677      title,
2678      undefined,
2679      undefined,
2680      undefined,
2681      undefined,
2682      undefined,
2683      undefined
2684    );
2685  });
2686
2687  jQuery("body").on(
2688    "click",
2689    "#carousel-container .cap-content .cta-buttons a, #carousel-container nav .slick-arrow",
2690    function () {
2691      var topElement = jQuery(this).closest("#carousel-container");
2692      var action = jQuery.trim(
2693        jQuery(
2694          "div.slick-active .cap-content-section .banner-title",
2695          topElement
2696        ).text()
2697      );
2698      var label = jQuery.trim(jQuery(this).text());
2699
2700      if (jQuery(this).hasClass("slick-arrow"))
2701        label = jQuery.trim(this.getAttribute("aria-label"));
2702
2703      pushDataLayer(
2704        action,
2705        label,
2706        undefined,
2707        undefined,
2708        undefined,
2709        undefined,
2710        undefined,
2711        undefined,
2712        undefined
2713      );
2714    }
2715  );
2716
2717  jQuery(
2718    "#2-container-layout-2 #content-1 a.btn, #2-container-layout-2 #content-2 a.btn"
2719  ).click(function () {
2720    var topElement = jQuery(this).closest("#content-1");
2721
2722    if (jQuery(this).closest("#content-2").length)
2723      topElement = jQuery(this).closest("#content-2");
2724
2725    var action = jQuery.trim(jQuery(".title div", topElement).text());
2726    var label = jQuery.trim(jQuery(this).text());
2727
2728    pushDataLayer(
2729      action,
2730      label,
2731      undefined,
2732      undefined,
2733      undefined,
2734      undefined,
2735      undefined,
2736      undefined,
2737      undefined
2738    );
2739  });
2740
2741  jQuery("#web_mega_menu .card-body a").click(function () {
2742    var topElement = "";
2743    var action = "";
2744    var label = jQuery.trim(jQuery(this).text());
2745    var destUrl = this.getAttribute("href");
2746
2747    if (jQuery(this).hasClass("level-2")) {
2748      action = jQuery(this).text().trim();
2749    } else if (jQuery(this).hasClass("level-3")) {
2750      if (jQuery(this).hasClass("no-child")) {
2751        action = undefined;
2752      } else {
2753        topElement = jQuery(this).closest("li.has-child");
2754        action = jQuery("a.level-2", topElement).text().trim();
2755      }
2756    }
2757
2758    if (jQuery(this).hasClass("mega-menu-in-home"))
2759      Drupal.behaviors.ga360.inHomeMegaMenu(
2760        action,
2761        label,
2762        destUrl,
2763        undefined,
2764        undefined,
2765        undefined
2766      );
2767  });
2768
2769  // 12.1.4 HBB SECTIONS - DOR-42111
2770  jQuery("body").on(
2771    "click",
2772    "#hbb-packages-postpaid-w-wo-carousel .sp-promo",
2773    function () {
2774      var gTagName = jQuery(".g-tag-name").text().trim();
2775      var parentElement = jQuery(this).closest(".card-body");
2776      var action = "";
2777      var label = "";
2778
2779      var packName =
2780        jQuery(".capacity", parentElement).text().trim() +
2781        " " +
2782        jQuery(".subtext-2", parentElement).text().trim();
2783      var price =
2784        jQuery(".price", parentElement).text().trim() +
2785        " " +
2786        jQuery(".duration-label", parentElement).text().trim();
2787      var category = jQuery(".badge-container p", parentElement).text().trim();
2788
2789      if (jQuery(this).hasClass("slick-arrow"))
2790        label = jQuery.trim(this.getAttribute("aria-label"));
2791
2792      if (gTagName == "hbb-all-packages") {
2793        action = jQuery(this).text().trim();
2794        label = jQuery("#hbb-packages-postpaid-w-wo-carousel h2").text().trim();
2795        Drupal.behaviors.ga360.hbbPackageSections(
2796          action,
2797          label,
2798          packName,
2799          price,
2800          category,
2801          undefined,
2802          undefined,
2803          undefined
2804        );
2805      } else {
2806        action = jQuery("#hbb-packages-postpaid-w-wo-carousel h2")
2807          .text()
2808          .trim();
2809        label = jQuery(this).text().trim();
2810        pushDataLayer(
2811          action,
2812          label,
2813          undefined,
2814          packName,
2815          price,
2816          category,
2817          undefined,
2818          undefined,
2819          undefined
2820        );
2821      }
2822    }
2823  );
2824
2825  // 12.1.4 HBB SECTIONS - DOR-42111
2826  jQuery("body").on(
2827    "click",
2828    "#hbb-packages-postpaid-w-wo-carousel .sliding-flex-box .slick-arrow",
2829    function () {
2830      var action = jQuery("#hbb-packages-postpaid-w-wo-carousel h2")
2831        .text()
2832        .trim();
2833      var label = jQuery(this).attr("id").trim();
2834      jQuery(".card.slick-active", jQuery(this).parent()).each(function (
2835        index,
2836        element
2837      ) {
2838        var packName =
2839          jQuery("h4", element).text().trim() +
2840          " " +
2841          jQuery(".subtext-2", element).text().trim();
2842        var price =
2843          jQuery(".price", element).text().trim() +
2844          " " +
2845          jQuery(".duration-label", element).text().trim();
2846        var category = jQuery(".badge-container p", element).text().trim();
2847
2848        pushDataLayer(
2849          action,
2850          label,
2851          undefined,
2852          packName,
2853          price,
2854          category,
2855          undefined,
2856          undefined,
2857          undefined
2858        );
2859      });
2860    }
2861  );
2862
2863  // 12.1.4 HBB SECTIONS - DOR-42111
2864  jQuery("body").on(
2865    "click",
2866    "#hbb-packages-postpaid-w-wo-carousel .view-more-link",
2867    function () {
2868      var action = jQuery("#hbb-packages-postpaid-w-wo-carousel h2")
2869        .text()
2870        .trim();
2871      var label = jQuery(this).text().trim();
2872
2873      pushDataLayer(
2874        action,
2875        label,
2876        undefined,
2877        undefined,
2878        undefined,
2879        undefined,
2880        undefined,
2881        undefined,
2882        undefined
2883      );
2884    }
2885  );
2886
2887  // 12.1.4 HBB SECTIONS - DOR-42111
2888  jQuery("body").on(
2889    "click",
2890    "#hbb_addon_group_all_with_carousal nav .nav-tabs a",
2891    function () {
2892      var id = jQuery(this).attr("href");
2893      var action = jQuery("#hbb_addon_group_all_with_carousal div h2")
2894        .text()
2895        .trim();
2896      var label = jQuery(this).text().trim();
2897
2898      jQuery(".card.slick-active", id).each(function (index, element) {
2899        var title = jQuery(element).attr("pname").trim();
2900        pushDataLayer(
2901          action,
2902          label,
2903          title,
2904          undefined,
2905          undefined,
2906          undefined,
2907          undefined,
2908          undefined,
2909          undefined
2910        );
2911      });
2912    }
2913  );
2914
2915  // 12.1.4 HBB SECTIONS - DOR-42111
2916  jQuery("body").on(
2917    "click",
2918    "#hbb_addon_group_all_with_carousal .tab-pane .slick-arrow",
2919    function () {
2920      var action = jQuery("#hbb_addon_group_all_with_carousal div h2")
2921        .text()
2922        .trim();
2923      var label = jQuery(this).attr("label").trim();
2924      jQuery(
2925        "#hbb_addon_group_all_with_carousal .tab-pane.active .card.slick-active"
2926      ).each(function (index, element) {
2927        var title = jQuery(element).attr("pname").trim();
2928        pushDataLayer(
2929          action,
2930          label,
2931          title,
2932          undefined,
2933          undefined,
2934          undefined,
2935          undefined,
2936          undefined,
2937          undefined
2938        );
2939      });
2940    }
2941  );
2942
2943  // 12.1.4 HBB SECTIONS - DOR-42111
2944  jQuery("body").on(
2945    "click",
2946    "#hbb_addon_group_all_with_carousal .view-more-link",
2947    function () {
2948      var action = jQuery("#hbb_addon_group_all_with_carousal div h2")
2949        .text()
2950        .trim();
2951      var label = jQuery(this).text().trim();
2952
2953      pushDataLayer(
2954        action,
2955        label,
2956        undefined,
2957        undefined,
2958        undefined,
2959        undefined,
2960        undefined,
2961        undefined,
2962        undefined
2963      );
2964    }
2965  );
2966
2967  // 12.1.4 HBB SECTIONS - DOR-42111
2968  jQuery("body").on(
2969    "click",
2970    ".hbb-add-on-group-without-carousal .view-more-link",
2971    function () {
2972      var action = jQuery(".hbb-add-on-group-without-carousal div h2")
2973        .text()
2974        .trim();
2975      var label = jQuery(this).text().trim();
2976
2977      pushDataLayer(
2978        action,
2979        label,
2980        undefined,
2981        undefined,
2982        undefined,
2983        undefined,
2984        undefined,
2985        undefined,
2986        undefined
2987      );
2988    }
2989  );
2990
2991  var w = 1;
2992  jQuery(document).on(
2993    "change",
2994    "#hbb-pack-comparison-web .selectpicker",
2995    function () {
2996      if (w <= 3) {
2997        w++;
2998        return false;
2999      }
3000      pushGADetailsForHBBComparison(this);
3001      w++;
3002    }
3003  );
3004
3005  var m = 1;
3006  jQuery(document).on(
3007    "change",
3008    "#hbb-pack-comparison-mobile .selectpicker",
3009    function () {
3010      if (m <= 2) {
3011        m++;
3012        return false;
3013      }
3014      pushGADetailsForHBBComparison(this);
3015      m++;
3016    }
3017  );
3018
3019  function pushGADetailsForHBBComparison(obj) {
3020    var selectedDropdown = 0;
3021
3022    var label = jQuery(obj).children("option:selected").text().trim();
3023
3024    if (jQuery(obj).hasClass("package-1")) selectedDropdown = 1;
3025    if (jQuery(obj).hasClass("package-2")) selectedDropdown = 2;
3026    if (jQuery(obj).hasClass("package-3")) selectedDropdown = 3;
3027
3028    setTimeout(function () {
3029      var price = jQuery(
3030        "#hbb-pack-comparison-web .monthly-rental-" + selectedDropdown
3031      )
3032        .text()
3033        .trim();
3034      var anyTimeData = jQuery(
3035        "#hbb-pack-comparison-web .anytime-data-" + selectedDropdown
3036      )
3037        .text()
3038        .trim();
3039      var nightTimeData = jQuery(
3040        "#hbb-pack-comparison-web .night-data-" + selectedDropdown
3041      )
3042        .text()
3043        .trim();
3044      var bonusData = jQuery(
3045        "#hbb-pack-comparison-web .bonus-data-" + selectedDropdown
3046      )
3047        .text()
3048        .trim();
3049      var gamerdata = jQuery(
3050        "#hbb-pack-comparison-web .gamer-data-" + selectedDropdown
3051      )
3052        .text()
3053        .trim();
3054
3055      Drupal.behaviors.ga360.hbbPackageComparison(
3056        "Package Dropdown",
3057        label,
3058        price,
3059        anyTimeData,
3060        nightTimeData,
3061        bonusData,
3062        gamerdata
3063      );
3064    }, 0);
3065  }
3066
3067  function pushDataLayer(
3068    action,
3069    label,
3070    title,
3071    pName,
3072    price,
3073    category,
3074    msisdn,
3075    primary,
3076    email
3077  ) {
3078    var gTagName = jQuery(".g-tag-name").text().trim();
3079    switch (gTagName) {
3080      case "in-home-landing":
3081        Drupal.behaviors.ga360.inHomeSections(
3082          action,
3083          label,
3084          title,
3085          msisdn,
3086          primary,
3087          email
3088        );
3089        break;
3090      case "dtv-landing":
3091        Drupal.behaviors.ga360.dtvSections(
3092          action,
3093          label,
3094          undefined,
3095          undefined,
3096          undefined,
3097          undefined,
3098          undefined,
3099          undefined,
3100          undefined
3101        );
3102        break;
3103      case "viu-hub-landing":
3104        // Data layer push function
3105        break;
3106      case "viu-mini-landing":
3107        // Data layer push function
3108        break;
3109      case "hbb-landing":
3110        Drupal.behaviors.ga360.hbbSections(
3111          action,
3112          label,
3113          title,
3114          pName,
3115          price,
3116          category,
3117          msisdn,
3118          primary,
3119          email
3120        );
3121        break;
3122      case "hbb-prepaid":
3123        Drupal.behaviors.ga360.hbbSections(
3124          action,
3125          label,
3126          title,
3127          pName,
3128          price,
3129          category,
3130          msisdn,
3131          primary,
3132          email
3133        );
3134        break;
3135      case "hbb-postpaid":
3136        Drupal.behaviors.ga360.hbbSections(
3137          action,
3138          label,
3139          title,
3140          pName,
3141          price,
3142          category,
3143          msisdn,
3144          primary,
3145          email
3146        );
3147        break;
3148    }
3149  }
3150
3151  function getListValues(gTagName) {
3152    var list = [];
3153    switch (gTagName) {
3154      case "in-home-landing":
3155        list = ["paybillReloadGo", "In Home"];
3156        break;
3157      case "dtv-landing":
3158        list = ["paybillReloadGo", "DTV"];
3159        break;
3160      case "viu-hub-landing":
3161        list = ["paybillReloadGo", "VIU Hub"];
3162        break;
3163      case "viu-mini-landing":
3164        list = ["paybillReloadGo", "VIU Mini"];
3165        break;
3166      case "hbb-landing":
3167        list = ["paybillReloadSearch", "HBB Landing"];
3168        break;
3169      case "hbb-prepaid":
3170        list = ["paybillReloadSearch", "HBB Prepaid"];
3171        break;
3172      case "hbb-postpaid":
3173        list = ["paybillReloadSearch", "HBB Postpaid"];
3174        break;
3175    }
3176    return list;
3177  }
3178
3179  function validateEmail(email) {
3180    var re =
3181      /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
3182    return re.test(String(email).toLowerCase());
3183  }
3184
3185  // 9.6.4 ADD TO CART DOR-42167
3186  //   jQuery(document).ready(function () {
3187  //       var gTagName = jQuery(".g-tag-name").text().trim();
3188  //       alert("text");
3189  //     switch (gTagName) {
3190  //       case 'dtv-product-detail':
3191  //         let objectSession = JSON.parse(sessionStorage.getItem('dtvga_obj'));
3192  //         Drupal.behaviors.ga360.productDetailCommon('All Channel Packs', objectSession);
3193  //         break;
3194  //     }
3195  //});
3196
3197  // Product click DOR-42159
3198  jQuery(document).on(
3199    "click",
3200    "#dtv-all-packages-with-carousal .dtv-card a",
3201    function () {
3202      // $(this).closest('.card').siblings('.card.slick-cloned').remove();
3203
3204      let pElement = jQuery(this).closest(".card-body");
3205
3206      let ga360_position = jQuery(this).closest(".card").index() + 1;
3207      let ga360_dimension30Exists = $(this).prev().attr("style");
3208      let ga360_dimension30 = false;
3209      if (ga360_dimension30Exists == "display: flex") {
3210        ga360_dimension30 = true;
3211      }
3212      let ga360_dimension29 = undefined;
3213      let ga360_price = jQuery(".p-3:eq(0) h5", pElement)
3214        .text()
3215        .trim()
3216        .toLowerCase();
3217      let checkPriceHasNumbers = Drupal.behaviors.ga360.hasNumber(ga360_price); // check digits exists in this string.
3218      if (checkPriceHasNumbers) {
3219        ga360_price = (ga360_price.replace(/\D/g, "") / 100).toFixed(2);
3220      } else {
3221        ga360_price = "0.00";
3222      }
3223      let ga360_name = jQuery(".p-3:eq(0) h4", pElement)
3224        .text()
3225        .trim()
3226        .toLowerCase();
3227      let ga360_id = jQuery(this).attr("href").split("=").pop().toLowerCase();
3228      let ga360_category = jQuery(
3229        ".p-3:eq(0) div.badge-container p:eq(0)",
3230        pElement
3231      )
3232        .text()
3233        .trim()
3234        .toLowerCase();
3235      let ga360_variant = undefined;
3236      let ga360_brand = "dtv packages";
3237
3238      sessionStorage.setItem("clicked_ga360_list", "tailored packages");
3239      sessionStorage.setItem("clicked_ga360_id", ga360_id);
3240      sessionStorage.setItem("clicked_ga360_name", ga360_name);
3241      sessionStorage.setItem("clicked_ga360_price", ga360_price);
3242      sessionStorage.setItem("clicked_ga360_category", ga360_category);
3243      sessionStorage.setItem("clicked_ga360_variant", ga360_variant);
3244      sessionStorage.setItem("clicked_ga360_position", ga360_position);
3245      sessionStorage.setItem("clicked_ga360_dimension29", ga360_dimension29);
3246      sessionStorage.setItem("clicked_ga360_dimension30", ga360_dimension30);
3247
3248      var obj = {
3249        name: ga360_name,
3250        id: ga360_id,
3251        price: ga360_price,
3252        brand: ga360_brand,
3253        category: ga360_category,
3254        variant: ga360_variant,
3255        position: ga360_position,
3256        dimension29: ga360_dimension29,
3257        dimension30: ga360_dimension30,
3258      };
3259      Drupal.behaviors.ga360.productClickCommon(
3260        sessionStorage.getItem("clicked_ga360_list").toLowerCase(),
3261        obj
3262      );
3263    }
3264  );
3265
3266  jQuery(document).on(
3267    "click",
3268    ".channel-details-section a.ga360-click-order-now",
3269    function () {
3270      let currency = $(this).attr("pcurrency").toLowerCase();
3271
3272      var obj = {
3273        name: sessionStorage.getItem("clicked_ga360_name"),
3274        id: sessionStorage.getItem("clicked_ga360_id"),
3275        price: sessionStorage.getItem("clicked_ga360_price"),
3276        brand: sessionStorage.getItem("clicked_ga360_brand"),
3277        category: sessionStorage.getItem("clicked_ga360_category"),
3278        variant: sessionStorage.getItem("clicked_ga360_variant"),
3279        position: sessionStorage.getItem("clicked_ga360_position"),
3280        quantity: 1,
3281        dimension29: sessionStorage.getItem("clicked_ga360_dimension29"),
3282        dimension30: sessionStorage.getItem("clicked_ga360_dimension30"),
3283      };
3284      Drupal.behaviors.ga360.productAddToCartCommon(
3285        currency,
3286        sessionStorage.getItem("clicked_ga360_list").toLowerCase(),
3287        obj
3288      );
3289    }
3290  );
3291
3292  // 9.4.3 PRODUCT DETAILS - DOR-42160
3293  jQuery(document).ready(function () {
3294    var gTagName = jQuery(".g-tag-name").text().trim();
3295    switch (gTagName) {
3296      case "dtv-product-detail":
3297        sessionStorage.setItem("clicked_ga360_brand", "dtv packages");
3298        var obj = {
3299          name: sessionStorage.getItem("clicked_ga360_name"),
3300          id: sessionStorage.getItem("clicked_ga360_id"),
3301          price: sessionStorage.getItem("clicked_ga360_price"),
3302          brand: sessionStorage.getItem("clicked_ga360_brand"),
3303          category: sessionStorage.getItem("clicked_ga360_category"),
3304          variant: sessionStorage.getItem("clicked_ga360_variant"),
3305          position: sessionStorage.getItem("clicked_ga360_position"),
3306          dimension29: sessionStorage.getItem("clicked_ga360_dimension29"),
3307          dimension30: sessionStorage.getItem("clicked_ga360_dimension30"),
3308        };
3309        console.log(sessionStorage.getItem("clicked_ga360_dimension29"));
3310        console.log(sessionStorage.getItem("clicked_ga360_dimension30"));
3311        console.log(sessionStorage.getItem("clicked_ga360_list"));
3312        Drupal.behaviors.ga360.productDetailCommon(
3313          sessionStorage.getItem("clicked_ga360_list"),
3314          obj
3315        );
3316        break;
3317
3318      default:
3319        break;
3320    }
3321  });
3322
3323  // 12.4.2 PRODUCT CLICK HBB - DOR-42124
3324  jQuery(document).on(
3325    "click",
3326    "#hbb-packages-postpaid-w-wo-carousel .dtv-card a",
3327    function () {
3328      // $(this).closest('.card').siblings('.card.slick-cloned').remove();
3329
3330      let pElement = jQuery(this).closest(".card-body");
3331
3332      let ga360_position = jQuery(this).closest(".card").index() + 1;
3333      //let ga360_dimension31Exists = $(this).prev().attr('style');
3334      // let ga360_dimension31 = false;
3335      // if (ga360_dimension31Exists == 'display: flex') {
3336      //   ga360_dimension31 = true;
3337      // }
3338      // let ga360_dimension31 = undefined;
3339      let ga360_price = jQuery(".p-3:eq(0) h5", pElement)
3340        .text()
3341        .trim()
3342        .toLowerCase();
3343      let checkPriceHasNumbers = Drupal.behaviors.ga360.hasNumber(ga360_price); // check digits exists in this string.
3344      if (checkPriceHasNumbers) {
3345        ga360_price = (ga360_price.replace(/\D/g, "") / 100).toFixed(2);
3346      } else {
3347        ga360_price = "0.00";
3348      }
3349      let ga360_name = jQuery(
3350        ".p-3:eq(0) div.badge-container p:eq(0)",
3351        pElement
3352      )
3353        .text()
3354        .trim()
3355        .toLowerCase();
3356      let ga360_id = jQuery(this).attr("href").split("=").pop().toLowerCase();
3357      let ga360_category = jQuery(".p-3:eq(0) h4", pElement)
3358        .text()
3359        .trim()
3360        .toLowerCase();
3361      let ga360_variant = jQuery(this).attr("nightvalues").toLowerCase();
3362      let ga360_brand = "HBB Packages";
3363
3364      if (ga360_variant == "{{ga_data_cap_value}} {{ga_data_cap_unit}}") {
3365        ga360_variant = "N/A";
3366      }
3367
3368      sessionStorage.setItem("clicked_ga360_list", "tailored packages");
3369      sessionStorage.setItem("clicked_ga360_id", ga360_id);
3370      sessionStorage.setItem("clicked_ga360_name", ga360_name);
3371      sessionStorage.setItem("clicked_ga360_price", ga360_price);
3372      sessionStorage.setItem("clicked_ga360_brand", ga360_brand);
3373      sessionStorage.setItem("clicked_ga360_category", ga360_category);
3374      sessionStorage.setItem("clicked_ga360_variant", ga360_variant);
3375      sessionStorage.setItem("clicked_ga360_position", ga360_position);
3376
3377      var obj = {
3378        name: ga360_name,
3379        id: ga360_id,
3380        price: ga360_price,
3381        brand: ga360_brand,
3382        category: "Anytime Data - " + ga360_category,
3383        variant: "Night Data - " + ga360_variant,
3384        position: ga360_position,
3385      };
3386      Drupal.behaviors.ga360.productClickCommon(
3387        sessionStorage.getItem("clicked_ga360_list").toLowerCase(),
3388        obj
3389      );
3390    }
3391  );
3392
3393  // 12.4.3 PRODUCT DETAIL HBB - DOR-42126
3394  jQuery(document).ready(function () {
3395    var gTagName = jQuery(".g-tag-name").text().trim();
3396    switch (gTagName) {
3397      case "hbb-product-detail":
3398        sessionStorage.setItem("clicked_ga360_brand", "HBB Packages");
3399        var obj = {
3400          name: sessionStorage.getItem("clicked_ga360_name"),
3401          id: sessionStorage.getItem("clicked_ga360_id"),
3402          price: sessionStorage.getItem("clicked_ga360_price"),
3403          brand: sessionStorage.getItem("clicked_ga360_brand"),
3404          category:
3405            "Anytime Data - " +
3406            sessionStorage.getItem("clicked_ga360_category"),
3407          variant:
3408            "Night Data - " + sessionStorage.getItem("clicked_ga360_variant"),
3409          position: sessionStorage.getItem("clicked_ga360_position"),
3410        };
3411
3412        Drupal.behaviors.ga360.productDetailCommon(
3413          sessionStorage.getItem("clicked_ga360_list"),
3414          obj
3415        );
3416        break;
3417
3418      default:
3419        break;
3420    }
3421  });
3422
3423  // Product click DOR-42159
3424  jQuery(document).on(
3425    "click",
3426    "#dtv-channel-bundles-prepaid .card a, #dtv-channel-bundles-postpaid .card a",
3427    function () {
3428      $(this).closest(".card").siblings(".card.slick-cloned").remove();
3429
3430      let pElement = jQuery(this).closest(".card-body");
3431      let ga36o_list = jQuery(".dtv-channel-bundles-block h2")
3432        .text()
3433        .trim()
3434        .replace(/\s\s+/g, " ");
3435      let ga360_name = jQuery("h4.pkg-see-channels-popup", pElement)
3436        .text()
3437        .trim()
3438        .replace(/\s\s+/g, " ");
3439      let ga360_id = jQuery("h4.pkg-see-channels-popup", pElement)
3440        .attr("data-id")
3441        .trim()
3442        .replace(/\s\s+/g, " ");
3443      let ga360_price = undefined;
3444      let ga360_brand = "dtv channel packs";
3445      let ga360_category = jQuery("h4.pkg-see-channels-popup", pElement)
3446        .attr("data-title")
3447        .trim()
3448        .replace(/\s\s+/g, " ");
3449      let ga360_variant = undefined;
3450      let ga360_position = jQuery(this).closest(".card").index() + 1;
3451
3452      sessionStorage.setItem("clicked_ga360_list", ga36o_list.toLowerCase());
3453      sessionStorage.setItem("clicked_ga360_name", ga360_name.toLowerCase());
3454      sessionStorage.setItem("clicked_ga360_id", ga360_id);
3455      sessionStorage.setItem("clicked_ga360_price", ga360_price);
3456      sessionStorage.setItem("clicked_ga360_brand", ga360_brand.toLowerCase());
3457      sessionStorage.setItem(
3458        "clicked_ga360_category",
3459        ga360_category.toLowerCase()
3460      );
3461      sessionStorage.setItem("clicked_ga360_variant", ga360_variant);
3462      sessionStorage.setItem("clicked_ga360_position", ga360_position);
3463
3464      var obj = {
3465        name: ga360_name,
3466        id: ga360_id,
3467        price: ga360_price,
3468        brand: ga360_brand,
3469        category: ga360_category,
3470        variant: ga360_variant,
3471        position: ga360_position,
3472      };
3473
3474      Drupal.behaviors.ga360.productClickCommon(ga36o_list.toLowerCase(), obj);
3475    }
3476  );
3477
3478  // DTV Packages DOR-42154
3479  jQuery(document).on("click", ".pkg-see-channels", function () {
3480    var eventaction = $(this).text();
3481    var eventLabel = $(this).prev("h4").text();
3482    var package = $(this).parent().children("div:eq(0)").find("p").text();
3483    var price = $(this).parent().children("h5").text();
3484    var specialPromotion = $(this)
3485      .parent()
3486      .next("div.card-content-section")
3487      .find("div p.sp-promo").length;
3488    var sppromo = "No";
3489    if (specialPromotion > 0) {
3490      sppromo = "Yes";
3491    }
3492    Drupal.behaviors.ga360.dtvPackages(
3493      eventaction,
3494      eventLabel,
3495      package,
3496      price,
3497      sppromo,
3498      undefined,
3499      undefined,
3500      undefined
3501    );
3502  });
3503
3504  // ACTIVATE CHANNEL DOR-42143
3505  jQuery(document).on("click", ".ga-btn", function () {
3506    var prepaidDailyRentalPrice = undefined;
3507    var prepaidMonthlyRentalPrice = undefined;
3508    var postpaidRentalPrice = undefined;
3509    if ($(".prepaid-daily-rental").length > 0) {
3510      prepaidDailyRentalPrice = $(".prepaid-daily-rental").text();
3511    }
3512
3513    if ($(".prepaid-monthly-rental").length > 0) {
3514      prepaidMonthlyRentalPrice = $(".prepaid-monthly-rental").text();
3515    }
3516
3517    if ($(".postpaid-rental").length > 0) {
3518      postpaidRentalPrice = $(".postpaid-rental").text();
3519    }
3520    var eventAction = $(".ga-channel-name").text();
3521
3522    Drupal.behaviors.ga360.activateChannel(
3523      eventAction,
3524      prepaidDailyRentalPrice,
3525      prepaidMonthlyRentalPrice,
3526      postpaidRentalPrice,
3527      undefined,
3528      undefined,
3529      undefined
3530    );
3531  });
3532
3533  // 9.6.4 ADD TO CART DOR-42167
3534  jQuery(document).on(
3535    "click",
3536    "#dtv-all-channel-bundles-block .card-all-channels a",
3537    function () {
3538      var name = $(this).parent().siblings("h4.pkg-see-channels-popup").text();
3539      var id = $(this)
3540        .parent()
3541        .siblings("h4.pkg-see-channels-popup")
3542        .attr("data-id");
3543      var category = $(this)
3544        .parent()
3545        .siblings("h4.pkg-see-channels-popup")
3546        .attr("data-title");
3547      var price = $(this).parent().siblings("h5.price-lbl").text();
3548      var position = $(this).closest(".ga360-card").index() + 1;
3549      var currency = price.split(" ")[0];
3550      var obj = {
3551        name: name,
3552        id: id,
3553        category: category,
3554        price: price,
3555        position: position,
3556        brand: "DTV Channel Packs",
3557        variant: undefined,
3558      };
3559      sessionStorage.setItem("dtvga_currency", currency);
3560      sessionStorage.setItem("dtvga_obj", JSON.stringify(obj));
3561      Drupal.behaviors.ga360.productClickCommon("All Channel Packs", obj);
3562    }
3563  );
3564
3565  // 9.6.4 ADD TO CART DOR-42167
3566  jQuery(document).on(
3567    "click",
3568    ".dtv-channel-bundle-summary-block .ga360-btn",
3569    function () {
3570      let objectSession = JSON.parse(sessionStorage.getItem("dtvga_obj"));
3571      Drupal.behaviors.ga360.productAddToCartCommon(
3572        sessionStorage.getItem("dtvga_currency").toLowerCase(),
3573        "All Channel Packs",
3574        objectSession
3575      );
3576    }
3577  );
3578
3579  // 9.6.4 ADD TO CART DOR-42167
3580  jQuery(document).on(
3581    "click",
3582    "#dtv-channels-bundle-section .ga360-btn",
3583    function () {
3584      let objectSession = JSON.parse(sessionStorage.getItem("dtvga_obj"));
3585      Drupal.behaviors.ga360.productAddToCartCommon(
3586        sessionStorage.getItem("dtvga_currency").toLowerCase(),
3587        "All Channel Packs",
3588        objectSession
3589      );
3590    }
3591  );
3592
3593  // 9.1.3 BUNDLE BANNER NAVIGATION DOR-42144
3594  jQuery(document).on(
3595    "click",
3596    "#dtv-channels-bundle-section button.slick-arrow",
3597    function () {
3598      var eventAction = jQuery(this).attr("label");
3599      var eventLabel = jQuery("h3.main-title").text();
3600      Drupal.behaviors.ga360.bundleBannerNavigation(
3601        eventAction,
3602        eventLabel,
3603        undefined,
3604        undefined,
3605        undefined
3606      );
3607    }
3608  );
3609
3610  // 12.4.2 PRODUCT CLICK - DOR-42124 HBB WEB
3611  jQuery(document).on(
3612    "click",
3613    "#hbb-pack-comparison-web .bottom-button",
3614    function () {
3615      var selectedButton = 0;
3616
3617      if (jQuery(this).hasClass("bottom-button-1")) selectedButton = 1;
3618      if (jQuery(this).hasClass("bottom-button-2")) selectedButton = 2;
3619      if (jQuery(this).hasClass("bottom-button-3")) selectedButton = 3;
3620
3621      var id = jQuery("a.btn-get-package", this).attr("href");
3622      idValue = id.split("&", 2);
3623      idValue = idValue[0].split("=", 2);
3624      idValue = idValue[1];
3625
3626      var name = jQuery("#hbb-pack-comparison-web .package-" + selectedButton)
3627        .children("option:selected")
3628        .text()
3629        .trim();
3630      var price = jQuery(
3631        "#hbb-pack-comparison-web .monthly-rental-" + selectedButton
3632      )
3633        .text()
3634        .trim();
3635      var brand = "HBB Packages";
3636      var anyData = jQuery(
3637        "#hbb-pack-comparison-web .anytime-data-" + selectedButton
3638      )
3639        .text()
3640        .trim();
3641      var nightData = jQuery(
3642        "#hbb-pack-comparison-web .night-data-" + selectedButton
3643      )
3644        .text()
3645        .trim();
3646      var position = jQuery(this).index() + 1;
3647
3648      if (nightData == "-") {
3649        nightData = "N/A";
3650      }
3651
3652      Drupal.behaviors.ga360.productClick(
3653        "Package Comparison",
3654        name,
3655        idValue,
3656        price,
3657        brand,
3658        anyData,
3659        nightData,
3660        position
3661      );
3662    }
3663  );
3664
3665  // 12.4.2 PRODUCT CLICK - DOR-42124 HBB MOB
3666  jQuery(document).on(
3667    "click",
3668    "#hbb-pack-comparison-mobile .bottom-button",
3669    function () {
3670      var selectedButton = 0;
3671
3672      if (jQuery(this).hasClass("bottom-button-1")) selectedButton = 1;
3673      if (jQuery(this).hasClass("bottom-button-2")) selectedButton = 2;
3674      if (jQuery(this).hasClass("bottom-button-3")) selectedButton = 3;
3675
3676      var id = jQuery("a.btn-get-package", this).attr("href");
3677      idValue = id.split("&", 2);
3678      idValue = idValue[0].split("=", 2);
3679      idValue = idValue[1];
3680
3681      var name = jQuery(
3682        "#hbb-pack-comparison-mobile .package-" + selectedButton
3683      )
3684        .children("option:selected")
3685        .text()
3686        .trim();
3687      var price = jQuery(
3688        "#hbb-pack-comparison-mobile .monthly-rental-" + selectedButton
3689      )
3690        .text()
3691        .trim();
3692      var brand = "HBB Packages";
3693      var anyData = jQuery(
3694        "#hbb-pack-comparison-mobile .anytime-data-" + selectedButton
3695      )
3696        .text()
3697        .trim();
3698      var nightData = jQuery(
3699        "#hbb-pack-comparison-mobile .night-data-" + selectedButton
3700      )
3701        .text()
3702        .trim();
3703      var position = jQuery(this).index() + 1;
3704
3705      if (nightData == "-") {
3706        nightData = "N/A";
3707      }
3708
3709      Drupal.behaviors.ga360.productClick(
3710        "Package Comparison",
3711        name,
3712        idValue,
3713        price,
3714        brand,
3715        anyData,
3716        nightData,
3717        position
3718      );
3719    }
3720  );
3721
3722  // 12.4.2 PRODUCT CLICK - DOR-42124 HBB Other Package
3723  jQuery(document).on("click", "#block-hbbotherpackages .card", function () {
3724    var name = jQuery(this).attr("name");
3725    var id = jQuery(this).attr("pid");
3726    var price = undefined;
3727    var brand = "HBB Packages";
3728    var anyData = undefined;
3729    var nightData = undefined;
3730    var position = jQuery(this).index() + 1;
3731
3732    Drupal.behaviors.ga360.productClick(
3733      "Other Packages",
3734      name,
3735      id,
3736      price,
3737      brand,
3738      anyData,
3739      nightData,
3740      position
3741    );
3742  });
3743
3744  // Device View Item DOR-59422
3745  jQuery(document).on(
3746    "click",
3747    "#new-arrivals-list-view-grid .buy-now-button a, .view-shop-most-popular .buy-now-button a, .product-catalog-view .buy-now-button a",
3748    function () {
3749      let pElement = jQuery(this).closest(
3750        ".product-catalog, .product-taeser-view"
3751      );
3752      let item_id = undefined;
3753      let item_name = jQuery("div.field--name-title", pElement).text();
3754      let position = jQuery(this).closest(".views-row").index() + 1;
3755      let item_brand = undefined;
3756      let item_category = undefined;
3757      let item_category2 = undefined;
3758      let item_list_name = jQuery(
3759        ".field--type-viewsreference .viewsreference--view-title"
3760      )
3761        .text()
3762        .trim();
3763
3764      if (jQuery(this).is("#new-arrivals-list-view-grid a")) {
3765        // Element with ID '#new-arrivals-list-view-grid' was clicked
3766        item_list_name = jQuery(
3767          ".field--type-viewsreference .viewsreference--view-title:eq(0)"
3768        )
3769          .text()
3770          .trim();
3771      } else if (jQuery(this).is(".view-shop-most-popular a")) {
3772        // Element with class 'view-shop-most-popular' was clicked
3773        item_list_name = jQuery(
3774          ".field--type-viewsreference .viewsreference--view-title:eq(1)"
3775        )
3776          .text()
3777          .trim();
3778      }
3779
3780      let item_variant = undefined;
3781      let quicklinkcontractId = $("#my-account-dropdown")
3782        .find(".dropdown-content .user-details span#cid-uuid-for-ga360")
3783        .text();
3784      let ga360_price = jQuery("div.field--name-price", pElement).text();
3785      let checkPriceHasNumbers = Drupal.behaviors.ga360.hasNumber(ga360_price); // check digits exists in this string.
3786      if (checkPriceHasNumbers) {
3787        ga360_price = (ga360_price.replace(/\D/g, "") / 100).toFixed(2);
3788      } else {
3789        ga360_price = "0.00";
3790      }
3791      let quantity = "1";
3792      var primary_number = $("#my-account-dropdown").find(".dropdown-content .user-details span#tele-for-ga360").text();
3793
3794      sessionStorage.setItem("item_id", item_id);
3795      sessionStorage.setItem("item_name", item_name);
3796      sessionStorage.setItem("position", position);
3797      sessionStorage.setItem("item_brand", item_brand);
3798      sessionStorage.setItem("item_category", item_category);
3799      sessionStorage.setItem("item_category2", item_category2);
3800      sessionStorage.setItem("item_list_name", item_list_name);
3801      sessionStorage.setItem("item_variant", item_variant);
3802      sessionStorage.setItem("quicklinkcontractId", quicklinkcontractId);
3803      sessionStorage.setItem("item_variant", item_variant);
3804      sessionStorage.setItem("ga360_price", ga360_price);
3805
3806      Drupal.behaviors.ga360.deviceViewItem(
3807        item_id,
3808        item_name,
3809        position,
3810        item_brand,
3811        item_category,
3812        item_category2,
3813        item_list_name,
3814        item_variant,
3815        quicklinkcontractId,
3816        ga360_price,
3817        quantity,
3818        primary_number
3819      );
3820    }
3821  );
3822
3823  // Device Select Item DOR-59422
3824  jQuery(document).on("click", ".commerce-product .add-to-cart", function () {
3825    let sku,
3826      ga360_sku,
3827      item_variant_color,
3828      element,
3829      item_category_type = undefined;
3830    sku = $("input[name=sku]").attr("value");
3831
3832    element = document.querySelector(".color_field__swatch");
3833    // item_variant_color = element.style.backgroundColor;
3834    item_variant_color = drupalSettings.dialog_shop.cart.colour_name;
3835    item_category_type = drupalSettings.dialog_shop.category_type;
3836    item_device_lob = drupalSettings.dialog_shop.cart.lob;
3837
3838    ga360_variant = sessionStorage.setItem("item_variant", item_variant_color);
3839    ga360_sku = sessionStorage.setItem("ga360_sku", sku);
3840    ga360_category = sessionStorage.setItem(
3841      "ga360_category",
3842      item_category_type
3843    );
3844    device_lob = sessionStorage.setItem("device_lob", item_device_lob);
3845
3846    let item_id = sku;
3847    let item_name =
3848      sessionStorage.getItem("item_name") != "undefined"
3849        ? sessionStorage.getItem("item_name")
3850        : undefined;
3851    let currency_code = "LKR";
3852    let position =
3853      sessionStorage.getItem("position") != "undefined"
3854        ? sessionStorage.getItem("position")
3855        : undefined;
3856    let item_brand =
3857      sessionStorage.getItem("item_name") != "undefined"
3858        ? sessionStorage.getItem("item_name")
3859        : undefined;
3860    let item_category = item_category_type;
3861    let item_category2 = sessionStorage.getItem("item_category2");
3862    let item_list_name = sessionStorage.getItem("item_list_name");
3863    let item_variant = item_variant_color;
3864    let contract_id = sessionStorage.getItem("quicklinkcontractId");
3865    let price = sessionStorage.getItem("ga360_price");
3866    let quantity = "1";
3867    let value = sessionStorage.getItem("ga360_price");
3868    var primary_number = $("#my-account-dropdown").find(".dropdown-content .user-details span#tele-for-ga360").text();
3869
3870    Drupal.behaviors.ga360.deviceAddtoCart(
3871      item_id,
3872      item_name,
3873      currency_code,
3874      position,
3875      item_brand,
3876      item_category,
3877      item_list_name,
3878      item_variant,
3879      quantity,
3880      contract_id,
3881      price,
3882      value,
3883      primary_number
3884    );
3885    // Drupal.behaviors.ga360.deviceviewCart(
3886    //   item_id,
3887    //   item_name,
3888    //   currency_code,
3889    //   position,
3890    //   item_brand,
3891    //   item_category,
3892    //   item_category2,
3893    //   item_list_name,
3894    //   item_variant,
3895    //   quantity,
3896    //   contract_id,
3897    //   price
3898    // );
3899  });
3900
3901  // device view cart
3902  // jQuery(document).on("click", ".header-buttons .btn-cart", function () {
3903  // jQuery(document).ready(function () {
3904  //   if (jQuery('.o2a-shopping-cart-container').length) {
3905  //     // console.log("test device");
3906
3907  //     let sku,
3908  //       ga360_sku,
3909  //       item_variant_color,
3910  //       element,
3911  //       item_category_type = undefined;
3912  //     sku = $("input[name=sku]").attr("value");
3913
3914  //     element = document.querySelector(".color_field__swatch");
3915  //     // item_variant_color = element.style.backgroundColor;
3916  //     item_variant_color = drupalSettings.dialog_shop.cart.colour_name;
3917  //     item_category_type = drupalSettings.dialog_shop.category_type;
3918  //     item_device_lob = drupalSettings.dialog_shop.cart.lob;
3919
3920  //     ga360_variant = sessionStorage.setItem("item_variant", item_variant_color);
3921  //     ga360_sku = sessionStorage.setItem("ga360_sku", sku);
3922  //     ga360_category = sessionStorage.setItem(
3923  //       "ga360_category",
3924  //       item_category_type
3925  //     );
3926  //     device_lob = sessionStorage.setItem("device_lob", item_device_lob);
3927
3928  //     let item_id = sku;
3929  //     let item_name =
3930  //       sessionStorage.getItem("item_name") != "undefined"
3931  //         ? sessionStorage.getItem("item_name")
3932  //         : undefined;
3933  //     let currency_code = "LKR";
3934  //     let position =
3935  //       sessionStorage.getItem("position") != "undefined"
3936  //         ? sessionStorage.getItem("position")
3937  //         : undefined;
3938  //     let item_brand =
3939  //       sessionStorage.getItem("item_name") != "undefined"
3940  //         ? sessionStorage.getItem("item_name")
3941  //         : undefined;
3942  //     let item_category = item_category_type;
3943  //     let item_category2 = sessionStorage.getItem("item_category2");
3944  //     let item_list_name = sessionStorage.getItem("item_list_name");
3945  //     let item_variant = item_variant_color;
3946  //     let contract_id = sessionStorage.getItem("quicklinkcontractId");
3947  //     let price = sessionStorage.getItem("ga360_price");
3948  //     let quantity = "1";
3949  //     let value = sessionStorage.getItem("ga360_price");
3950  //     var primary_number = $("#my-account-dropdown").find(".dropdown-content .user-details span#tele-for-ga360").text();
3951
3952  //     Drupal.behaviors.ga360.deviceviewCart(
3953  //       item_id,
3954  //       item_name,
3955  //       currency_code,
3956  //       position,
3957  //       item_brand,
3958  //       item_category,
3959  //       item_list_name,
3960  //       item_variant,
3961  //       quantity,
3962  //       contract_id,
3963  //       price,
3964  //       primary_number
3965  //     );
3966  //   }
3967  // });
3968
3969  // DOR-60149 Roaming check Packs
3970  jQuery(document).on("click", "#country-wise-idd .bootstrap-autocomplete .dropdown-item.active", function () {
3971
3972    var eventLabel= jQuery("#roaming-packs-country-list").val();
3973
3974    Drupal.behaviors.ga360.iddroamingcheckPacks(eventLabel);
3975  });
3976
3977  // DOR-60149 Roaming landing page packages and detail page packages
3978  jQuery(document).on("click", "#ga360-data .roaming-button-text", function () {
3979    
3980    var pElement = jQuery(this).closest(".card");
3981    var eventLabel= jQuery("#roaming-packs-country-list").val();
3982    var packageName = jQuery(".pck-title", pElement).text();
3983    var price = jQuery('.flex-remove-translate h5', pElement).attr('price');
3984    var eventAction = jQuery(".roaming-button-text", pElement).text();
3985
3986    sessionStorage.setItem("idd_roaming_country", eventLabel);
3987
3988    Drupal.behaviors.ga360.roamingPack(eventAction, eventLabel, packageName, price);
3989
3990  });
3991
3992  // DOR-60149 Roaming enter number
3993  jQuery(document).on("click", "#validate-step", function () {
3994
3995    if (jQuery('.roaming-services').length > 0) {
3996
3997      var packageName = jQuery("#product-title").text();
3998      var price = $('#prod-price').attr('price');
3999      var eventAction = jQuery("#validate-step").text();
4000
4001      Drupal.behaviors.ga360.iddroamingverifyNumber(eventAction, packageName, price);
4002      
4003    }
4004    
4005  });
4006
4007  // DOR-60149 Roaming verify otp and resend pin
4008  jQuery(document).on("click", "#o2a-verify-otp, #resend-otp", function () {
4009
4010    if (jQuery('.roaming-services').length > 0) {
4011
4012      var packageName = jQuery("#product-title").text();
4013      var price = $('#prod-price').attr('price');
4014
4015      if (jQuery(this).attr('id') == "o2a-verify-otp" ) {
4016        var eventAction = jQuery("#o2a-verify-otp").text();
4017      } else {
4018        var eventAction = jQuery("#resend-otp").text();
4019      }
4020
4021      Drupal.behaviors.ga360.iddroamingverifyOtp(eventAction, packageName, price);
4022    }
4023
4024  });
4025
4026  // DOR-60149 Roaming confirm activate
4027  jQuery(document).on("click", ".confirm-step", function () {
4028
4029    if (jQuery('.roaming-services').length > 0) {
4030
4031      var eventAction = jQuery(".ga360-name").text();
4032      var packageCategory = jQuery(".connection_type").text();
4033      var packageName = jQuery(".package_name").text();
4034      var price = $('.ga360-price').attr('price');
4035      price = price.replace(/[^0-9.]/g, '');
4036
4037      sessionStorage.setItem("idd_roaming_package_action", eventAction);
4038      sessionStorage.setItem("idd_roaming_package_category", packageCategory);
4039      sessionStorage.setItem("idd_roaming_package_name", packageName);
4040      sessionStorage.setItem("idd_roaming_package_price", price);
4041
4042      Drupal.behaviors.ga360.iddroamingconfirmactivate(eventAction, packageCategory, packageName, price);
4043
4044    }
4045
4046  });
4047
4048  // DOR-60149
4049  jQuery(document).ready(function () {
4050
4051    // DOR-60149 Roaming error
4052    if (jQuery('.ga360-page-load').length > 0) {
4053
4054      var eventLabel = jQuery(".ga360-label").text();
4055
4056      Drupal.behaviors.ga360.iddroamingError(eventLabel);
4057    }
4058
4059    // DOR-60149 Quick Pay purchase
4060    if (jQuery('.quick-pay-Success-page').length > 0) {
4061      
4062      var transaction_id = jQuery(".transaction-id").text();
4063      var value = jQuery(".total-section .total").text();
4064
4065      Drupal.behaviors.ga360.purchase(transaction_id, value);
4066
4067    }
4068
4069    // DOR-60149 Quick Pay transaction fail
4070    if (jQuery('.quick-pay-Fail-page').length > 0) {
4071      
4072      var event_label = jQuery(".payment-failed-title").text();
4073      event_label = event_label.replace("!", "");
4074      var ga360_failure_reason_text = jQuery(".ga360-failure-reason").text();
4075
4076      Drupal.behaviors.ga360.quickpaytransactionFail(event_label, ga360_failure_reason_text);
4077
4078    }
4079
4080    // DOR-60149 dtv activation success
4081    if (jQuery('.success-DTV').length > 0) {
4082
4083      var eventAction = jQuery(".daypass-act-successful-title").text();
4084
4085      Drupal.behaviors.ga360.dtvactivationSuccess(eventAction);
4086
4087    }
4088
4089    if (jQuery('.success-ROAMING').length > 0) {
4090
4091      var eventAction = jQuery(".roaming-act-successful-title").text();
4092
4093
4094      Drupal.behaviors.ga360.iddroamingactivateSuccess();
4095
4096    }
4097
4098    if (drupalSettings.data.productType == 'HBB DATA ADD-ON') {
4099      Drupal.behaviors.ga360.purchasefailureSuccess();
4100    }
4101
4102  });
4103
4104  // DOR-60149 dtv activation select pack
4105  jQuery(document).on("click", ".dtv-day-pass-section .ga360-dtv-pass", function () {
4106
4107    var pElement = jQuery(this).closest(".card");
4108    var eventAction= jQuery(".ga360-dtv-pass", pElement).text();
4109    var eventLabel= jQuery(".pak-name", pElement).text();
4110    var connection_type= jQuery(".common-nav-tab .nav-link.active h5").text();
4111    var price = jQuery(".day-pass-price", pElement).text();
4112
4113    var package_valid_1 = jQuery(".daypass-valid-text-1", pElement).text();
4114    var package_valid_2 = jQuery(".daypass-valid-text-2", pElement).text();
4115
4116    sessionStorage.setItem("dtv_activation_package_valid_1", package_valid_1);
4117    sessionStorage.setItem("dtv_activation_package_valid_2", package_valid_2);
4118
4119    sessionStorage.setItem("dtv_activation_connection_type", connection_type);
4120
4121    Drupal.behaviors.ga360.dtvactivationselectPack(eventAction, eventLabel, connection_type, price);
4122  });
4123
4124  // DOR-60149 dtv activation enter number
4125  jQuery(document).on("click", "#validate-step", function () {
4126
4127    if (jQuery('.dtv-day-pass').length > 0) {
4128
4129      var eventAction = jQuery("#flow-stepper").find(".activation-flow.activated").text();
4130      var eventLabel = jQuery("#product-title").text();
4131      var price = jQuery("#prod-price").text();
4132
4133      sessionStorage.setItem("dtv_activation_product_title", eventLabel);
4134      sessionStorage.setItem("dtv_activation_price", price);
4135
4136      Drupal.behaviors.ga360.dtvactivationenterNumber(eventAction, eventLabel, price);
4137
4138    }
4139
4140  });
4141
4142  // DOR-60149 dtv activation verify otp and resend pin
4143  jQuery(document).on("click", "#o2a-verify-otp, #resend-otp", function () {
4144
4145    if (jQuery('.dtv-day-pass').length > 0) {
4146
4147      if (jQuery(this).attr('id') == "o2a-verify-otp" ) {
4148        var eventAction = jQuery("#o2a-verify-otp").text();
4149      } else {
4150        var eventAction = jQuery("#resend-otp").text();
4151      }
4152
4153      Drupal.behaviors.ga360.dtvactivationverifyotp(eventAction);
4154
4155    }
4156
4157  });
4158
4159  // DOR-60149 dtv activation confirm
4160  jQuery(document).on("click", ".confirm-step", function () {
4161
4162    if (jQuery('.dtv-day-pass').length > 0) {
4163
4164      var eventactionConfirm = jQuery(".dtv-day-pass-confirm").text();
4165
4166      Drupal.behaviors.ga360.dtvactivationConfirm(eventactionConfirm);
4167
4168    }
4169
4170  });
4171
4172  // DOR-60149 Quick Pay add payment info
4173  $('.paybill-reload-page #order-confirm').on('click', function () {
4174
4175    var index = jQuery(".packages-cards .card.active-card").index() + 1;
4176    var price_val = jQuery("#nav-tabContent .active .ga360-price").val();
4177    var price_card = jQuery(".packages-cards .card.active-card .ga360-price").text();
4178
4179    if (price_val) {
4180      var price = price_val;
4181    }
4182    else if (price_card) {
4183      var price = price_card;
4184    }
4185
4186    var tab_name = jQuery("#nav-tab .active").attr("tab-code");
4187
4188    if ((tab_name == 'data_cards') || (tab_name == 'voice')) {
4189      item_id = jQuery("#package-activate-cards-1 .active-card, #package-activate-cards-2 .active-card").attr("pcode");
4190      item_name = jQuery(".packages-cards .card.active-card .ga360-pck-name").text();
4191    } else if (tab_name == 'pay_bill') {
4192      item_name = "Pay Bill - paybill";
4193    }
4194    else if (tab_name == 'reload') {
4195      item_name = "Reload - reload";
4196    } else {
4197      item_name = $('#mobile_lob').val();
4198    }
4199
4200    if (item_id === "null") {
4201      item_id = "undefined";
4202    }
4203
4204    if ((tab_name == 'pay_bill') || (tab_name == 'reload')) {
4205      var staticValue = "id_"; // Replace "id_" with your actual static value
4206      var item_id = staticValue + parseInt(jQuery("#nav-tabContent .tab-pane.active .ga360-price").val());
4207    }
4208
4209    
4210
4211    var item_category = jQuery("#nav-tab .active").text() || $('#mobile_lob').val();
4212    var payment_type = jQuery(".card-payment-method.active-card .ga360-method-name").text();
4213    
4214    sessionStorage.setItem("quick_pay_item_id", item_id);
4215    sessionStorage.setItem("quick_pay_item_name", item_name);
4216    sessionStorage.setItem("quick_pay_index", index);
4217    sessionStorage.setItem("quick_pay_item_category", item_category);
4218    sessionStorage.setItem("quick_pay_price", price);
4219    sessionStorage.setItem("quick_pay_payment_type", payment_type);
4220
4221    Drupal.behaviors.ga360.addpaymentInfo(item_id, item_name, index, item_category, price, payment_type);
4222
4223  });
4224
4225  // DOR-60149 Quick Pay view card
4226  jQuery(document).on("click", ".paybill-reload-page .ga360-view-card", function () {
4227
4228    var package_type = jQuery("#nav-tab .active").text();
4229    var event_action = jQuery("#nav-tabContent .active.show .ga360-view-card").text();
4230
4231    var element = $(".card-payment-method");
4232
4233    if (element.hasClass("active-card")) {
4234      var payment_type = jQuery(".card-payment-method.active .ga360-method-name").text();
4235    } else {
4236      var payment_type = "N/A";
4237    }
4238
4239    Drupal.behaviors.ga360.quickpayviewCard(event_action, payment_type, package_type);
4240    
4241  });
4242  
4243  //Self Activation ID verification - error
4244    // $('#id-verify-btn').on('click', function () {
4245
4246    //   let event_category = "Self Activation";
4247    //   let event_action = "id verification";
4248    //   let event_label = "Error screen";
4249    //   var user_type = sessionStorage.getItem("clicked_ga360_user_type");
4250    //   let package_type = drupalSettings.self_activation_row["paid_mode"];
4251    //   let plan_selected = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName;
4252    //   let plan_name = sessionStorage.getItem('packageList');
4253    //   let plan_cost = Number(sessionStorage.getItem('price_ga360'))
4254    //   let add_on = sessionStorage.getItem('packageList');
4255    //   let verification_method = document.querySelector('label[for="standardInput"]').textContent.trim().split(' ')[0];
4256      
4257    //   Drupal.behaviors.ga360.IDverification(event_category, event_action, event_label, user_type, package_type, plan_selected, plan_name, plan_cost, add_on, verification_method);
4258    // });
4259
4260// Self Activation Verify Address
4261$('#nextButton2').on('click', function () {
4262
4263    let event_category = "Self Activation";
4264    let event_action = "verify address";
4265    var selectedRadioButton = $("input[type='radio'][id='selfactlocal']:checked, input[type='radio'][id='selfactlocal1']:checked");
4266    var event_label = selectedRadioButton.siblings('label.custom-control-label').first().text();
4267    var user_type = sessionStorage.getItem("clicked_ga360_user_type");
4268    let package_type = drupalSettings.self_activation_row["paid_mode"];
4269    let plan_selected = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName;
4270    let plan_name = sessionStorage.getItem('packageList');
4271    let plan_cost = Number(sessionStorage.getItem('price_ga360'));
4272    let add_on = sessionStorage.getItem('packageList');
4273    var selectedRadioButton = $("input[type='radio'][id='selfactlocal']:checked, input[type='radio'][id='selfactlocal1']:checked");
4274    var address_type = selectedRadioButton.siblings('label.custom-control-label').first().text();
4275  
4276  Drupal.behaviors.ga360.VerifyAddress(event_category, event_action, event_label, user_type, package_type, plan_selected, plan_name, plan_cost, add_on, address_type);
4277
4278});
4279
4280// Self Activation Confirm and Pay
4281jQuery(document).on('click', '#submit-confirm-pay', function () {
4282  
4283  let event_category = "Self Activation";
4284  let event_action = "confirm and pay";
4285  let event_label = "payment selection";
4286  var user_type = sessionStorage.getItem("clicked_ga360_user_type");
4287  let package_type = drupalSettings.self_activation_row["paid_mode"];
4288  let plan_selected = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName;
4289  let plan_name = sessionStorage.getItem('packageList');
4290  let plan_cost = Number(sessionStorage.getItem('price_ga360'));
4291  let add_on = sessionStorage.getItem('packageList');
4292  let payment_method = drupalSettings.self_activation_row["payment_type"];
4293  
4294  Drupal.behaviors.ga360.ConfirmPay(event_category,event_action,event_label,user_type, package_type, plan_selected, plan_name, plan_cost, add_on, payment_method);
4295
4296});
4297
4298// Self Activation Confirm and Pay - Faild
4299jQuery(document).ready(function () {
4300  if (drupalSettings.self_activation_row["payment_status"] == "0" ) {
4301
4302      let event_category = "Self Activation";
4303      let event_action = "confirm and pay";
4304      let event_label = "payment failed";
4305      var user_type = sessionStorage.getItem("clicked_ga360_user_type");
4306      let package_type = drupalSettings.self_activation_row["paid_mode"];
4307      let plan_selected = JSON.parse(drupalSettings.self_activation_row["more_data"]).packageName;
4308      let plan_name = sessionStorage.getItem('packageList');
4309      let plan_cost = Number(sessionStorage.getItem('price_ga360'));
4310      let add_on = sessionStorage.getItem('packageList');
4311      let payment_method = drupalSettings.self_activation_row["payment_type"];
4312      let order_id = undefined;
4313      let order_date = jQuery(".ga360-date").text().split('|')[0].trim();
4314
4315      Drupal.behaviors.ga360.ConfirmPayFaild(event_category,event_action,event_label,user_type, package_type, plan_selected, plan_name, plan_cost, add_on, payment_method, order_id, order_date);
4316  }
4317});
4318
4319
4320})(jQuery, Drupal);
4321
4322// Self Activation Global Page Scripting
4323
4324try {
4325  document.getElementById("self-act-start").addEventListener("click", () => {
4326
4327    // Self Activation CustomEvents triggers
4328    Drupal.behaviors.ga360.selfActivationStartPage()
4329  });
4330} catch { }
4331
4332try {
4333  document.getElementById("browser-error-ok-button").addEventListener("click", () => {
4334
4335    // Self Activation CustomEvents triggers
4336    Drupal.behaviors.ga360.selfActivationStartPageCompatabilityError()
4337  });
4338} catch { }
4339
4340try {
4341  document.getElementById("how-to-video").addEventListener("click", () => {
4342
4343    // Self Activation CustomEvents triggers
4344    Drupal.behaviors.ga360.selfActivationVideo()
4345  });
4346} catch {}
4347
4348try {
4349  document.getElementById("next-pack-selection").addEventListener("click", () => {
4350    
4351    // Self Activation Ecommerce triggers
4352    eventParameters = Drupal.behaviors.ga360.SAItems("view_item_list")
4353    
4354    // Self Activation CustomEvents triggers
4355    Drupal.behaviors.ga360.selfActivationSelectPackage(eventParameters)
4356  });
4357} catch {}
4358
4359try {
4360  document.getElementById("next-sim-details").addEventListener("click", () => {
4361    
4362    // Self Activation Ecommerce triggers
4363    eventParameters = Drupal.behaviors.ga360.SAItems("select_item")
4364    
4365    // Self Activation CustomEvents triggers
4366    Drupal.behaviors.ga360.selfActivationSimDetails(eventParameters)
4367  });
4368
4369} catch {}
4370
4371try {
4372  document.getElementById("next-contact-details").addEventListener("click", () => {
4373
4374    // Self Activation CustomEvents triggers
4375    Drupal.behaviors.ga360.selfActivationContactDetails()
4376  });
4377
4378  document.getElementById("change-contact-details").addEventListener("click", () => {
4379
4380    // Self Activation CustomEvents triggers
4381    Drupal.behaviors.ga360.selfActivationContactDetails()
4382  });
4383} catch { }
4384
4385try {
4386  document.getElementById("next-select-number").addEventListener("click", () => {
4387    
4388    // Self Activation Ecommerce triggers
4389    eventParameters = Drupal.behaviors.ga360.SAItems("add_to_cart")
4390
4391    
4392    // Self Activation CustomEvents triggers
4393    Drupal.behaviors.ga360.selfActivationSelectNumber(eventParameters)
4394  });
4395} catch { }
4396
4397try {
4398  document.getElementById("self-activation-verify-otp").addEventListener("click", () => {
4399    
4400    // Self Activation Ecommerce triggers
4401    eventParameters = Drupal.behaviors.ga360.SAItems("view_item")
4402  });
4403} catch { }
4404
4405try {
4406  document.getElementById("id-verification-next").addEventListener("click", () => {
4407    
4408    // Self Activation Ecommerce triggers
4409    Drupal.behaviors.ga360.SAIdVerification()
4410
4411  });
4412} catch { }
4413
4414try {
4415  document.getElementById("nextButton2").addEventListener("click", () => {
4416    
4417    // Self Activation Ecommerce triggers
4418    Drupal.behaviors.ga360.SABeginCheckout()
4419  });
4420} catch { }
4421
4422try {
4423  document.getElementById("verify-yourself-next").addEventListener("click", () => {
4424    
4425    // Self Activation Ecommerce triggers
4426    Drupal.behaviors.ga360.SAAddShippingInfo()
4427  });
4428}catch{}
4429
4430try {
4431
4432  // Self Activation Ecommerce triggers
4433  document.getElementById("submit-confirm-pay").addEventListener("click", Drupal.behaviors.ga360.SAAddPaymentInfo);
4434} catch { }
4435
4436if (document.getElementById("success_icon") != null) {
4437  
4438  // Self Activation Ecommerce triggers
4439  Drupal.behaviors.ga360.SAPurchase();
4440}
4441

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.