PageSourceSearch

https://drugfree.org/wp-content/themes/coa-2020/src/js/datalayer-forms-handler.js?ver=7.1

js drugfree.org collected 2026-09-24 08:34:12 UTC 6,011 bytes, 158 lines download raw bytes

1/**
2 * File datalayer-forms-handler.js
3 *
4 * Additional GA Tags Event posting logic required
5 *  1. email-a-specialist confirmation
6 *  2. email-a-specialist visible on page
7 *  3. contact-us confirmation
8 *  4. contact-us visible on page
9 *  5. newsletter subscribe button clicked in global footer
10 *  6. newsletter subscribe button clicked in page on homepage
11 *  7. newsletter subscribe button clicked in sub-footer on pages
12 *  8. sidebar widget email signup form clicked
13 *  9. search: if search bar is triggered
14 *
15 *
16 * @dependecies javascript
17 * @version 1.6.1
18 * @package coa
19 *
20 */
21
22document.addEventListener("DOMContentLoaded", ()=>{
23
24  if (document.getElementsByClassName('wpforms-confirmation-container')[0]) {
25    //email-a-specialist confirmation
26    if (document.getElementById('wpforms-confirmation-89057')) {
27      console.warn('confirmation for email-a-specialist');
28      dataLayer.push({
29        event: 'formSubmitSuccess',
30        formName: "email a specialist",
31        formType: "in page form",
32        location: 'in page'
33      })
34    }
35    //contact-us confirmation
36    if (document.getElementById('wpforms-confirmation-102832')) {
37      console.warn('confirmation for contact-us');
38      dataLayer.push({
39        event: 'formSubmitSuccess',
40        formName: "general contact",
41        formType: "in page form",
42        location: 'in page'
43      })
44    }
45  }
46
47  //email-a-specialist form on a page
48  if (document.getElementById('wpforms-89057')) {
49    console.warn('Email A Specialist form on page');
50
51    //email-a-specialist when form is in view
52    const emailSpecialist = new IntersectionObserver(function(entries) {
53      if (entries[0].isIntersecting === true) {
54        console.warn('Email A Specialist form viewed on page');
55        dataLayer.push({
56          event: 'formViewed',
57          formName: "email a specialist",
58          formType: "in page form",
59          location: 'in page'
60        })
61      }
62    }, { threshold: [0] });
63    emailSpecialist.observe(document.getElementById('wpforms-form-89057'));
64  }
65
66  //contact-us form on a page
67  if (document.getElementById('wpforms-102832')) {
68    console.warn('Contact Us form on page');
69
70    //contact-us when form is in view
71    const contactUs = new IntersectionObserver(function(entries) {
72      if (entries[0].isIntersecting === true) {
73        console.warn('Contact Us form viewed on page');
74        dataLayer.push({
75          event: 'formViewed',
76          formName: "general contact",
77          formType: "in page form",
78          location: 'in page'
79        })
80      }
81    }, { threshold: [0] });
82    contactUs.observe(document.getElementById('wpforms-form-102832'));
83  }
84
85  //button click on newsletter module button normally found on homepage only
86  if (document.getElementsByClassName('newsletter-module')[0] &&
87    document.getElementsByClassName('newsletter-module')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE')) {
88    document.getElementsByClassName('newsletter-module')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE').addEventListener('click',()=>{
89      console.warn('newsletter module in page on homepage is clicked');
90      dataLayer.push({
91        event: 'formSubmitAttempt',
92        formName: "newsletter signup step 1",
93        formType: "newsletter",
94        location: 'homepage in page'
95      })
96    })
97  }
98
99  //button click on newsletter module button normally found on homepage only
100  if (document.getElementsByClassName('subfooter-newsletter-module')[0] &&
101    document.getElementsByClassName('subfooter-newsletter-module')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE')) {
102    document.getElementsByClassName('subfooter-newsletter-module')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE').addEventListener('click',()=>{
103      console.warn('newsletter module on page is clicked');
104      dataLayer.push({
105        event: 'formSubmitAttempt',
106        formName: "newsletter signup step 1",
107        formType: "newsletter",
108        location: 'in page'
109      })
110    })
111  }
112
113  //button click on newsletter module button in global footer only
114  if (document.getElementsByClassName('footer-menu')[0] &&
115    document.getElementsByClassName('footer-menu')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE')) {
116    document.getElementsByClassName('footer-menu')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE').addEventListener('click',()=>{
117      console.warn('newsletter module in footer is clicked');
118      dataLayer.push({
119        event: 'formSubmitAttempt',
120        formName: "newsletter signup step 1",
121        formType: "footer subscribe",
122        location: 'footer'
123      })
124    })
125  }
126
127  //sidebar widget email signup form clicked
128  if (document.getElementsByClassName('widgets')[0]) {
129    if (document.getElementsByClassName('widgets')[0].getElementsByClassName('email-signup')[0]) {
130      if (document.getElementsByClassName('widgets')[0].getElementsByClassName('email-signup')[0].querySelectorAll('form')[0]) {
131        document.getElementsByClassName('widgets')[0].getElementsByClassName('email-signup')[0].querySelectorAll('form')[0].querySelector('#ACTION_SUBMIT_SURVEY_RESPONSE').addEventListener('click',()=>{
132          console.warn('sidebar email signup form clicked');
133          dataLayer.push({
134            event: 'formSubmitAttempt',
135            formName: 'email-signup',
136            formType: 'sidebar generic form',
137            location: 'sidebar module'
138        });
139        })
140      }
141    }
142  }
143
144  //search page specific
145  if (document.getElementsByClassName('template-search')[0]) {
146    const searchDiv = document.getElementsByClassName('js-search-form')[0];
147
148    //if search bar is triggered
149    searchDiv.querySelector('#searchsubmit').addEventListener('click',()=>{
150      dataLayer.push({
151        event: 'searchInitiated',
152        searchTerm: searchDiv.getElementsByClassName('searchInput')[0].value,
153      //   searchFilters: [<search filter>] // e.g. Array of values
154      // // e.g. ['audience - Policymaker', 'topic - Parenting Skills]
155    });
156    });
157  }
158});

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.