PageSourceSearch

https://www.northwestokhomes.com/wp-content/plugins/bt-google-analytics/resources/javascript/btga4.js?v=4

js northwestokhomes.com collected 2026-10-04 21:36:53 UTC 5,755 bytes, 276 lines download raw bytes

1/**
2 * Does not use webpack because of needless dependancy support causing it not to load.
3 * Also every modern browser supports ES6 classes.
4 */
5class BoomTownGA4 {
6  /** Debug Mode **/
7  _debug = false;
8
9  /**
10   * Class Constructor
11   * @param {bool} debug
12   */
13  constructor(debug) {
14    this._debug = debug;
15  }
16
17  /**
18   * Send Event
19   * @param {string} name Event Name
20   * @param {object} params Event Optional Params
21   * @return {void}
22   */
23  _sendEvent(name, params = {}) {
24    params = {...window.btGlobalAnalyticsParams, ...params};
25
26    if (this._debug) {
27      console.log('BTGA4 Debug', name, params);
28    }
29
30    try {
31      gtag('event', name, params);
32    } catch (e) {
33      console.error('BTGA4 Exception', e);
34    }
35  }
36
37  /**
38   * Legacy Form Events
39   * @param {string} type Form Type
40   * @param {bool} registered User Has Registered
41   * @return {void}
42   */
43  eventFormSubmitLegacy(type, registered) {
44    if (type === undefined) {
45      return;
46    }
47
48    type = type.toLowerCase();
49
50    switch (type) {
51      case 'buy':
52        this.eventFormBuy(registered);
53        break;
54      case 'finance':
55        this.eventFormFinance(registered);
56        break;
57      case 'sell':
58        this.eventFormSell(registered);
59        break;
60      case 'office':
61        this.eventFormContact(registered);
62        break;
63      case 'agent':
64        this.eventFormAgent(registered);
65        break;
66      default:
67        if (this._debug) {
68          console.warn('BTGA4 Warning: Invalid Legacy Form Type', type);
69        }
70    }
71  }
72
73  //////////////////////////////
74  // Home Valuation Page
75  //////////////////////////////
76
77  /**
78   * Event: Home Valuation Search
79   * @param {bool} found Valid property or unique property?
80   * @return {void}
81   */
82  eventFormHomeValuationSearch(found = false) {
83    this._sendEvent('bt_form_homeval_search');
84    if (found) {
85      this._sendEvent('bt_form_homeval_search_valid');
86    } else {
87      this._sendEvent('bt_form_homeval_search_invalid');
88    }
89  }
90
91  /**
92   * Event: Home Valuation
93   * @param {bool} registered User Has Registered
94   * @return {void}
95   */
96  eventFormHomeValuation(registered = false) {
97    this._sendEvent('bt_form_homeval');
98
99    if (registered) {
100      this.eventFormHomeValuationReg();
101    }
102  }
103
104  /**
105   * Event: Home Valuation Registration
106   * @return {void}
107   */
108  eventFormHomeValuationReg() {
109    this._sendEvent('bt_form_homeval_registration');
110    this._sendEventAdWords();
111  }
112
113  //////////////////////////////
114  // Seller Form
115  //////////////////////////////
116
117  /**
118   * Event: Sell Form
119   * @param {bool} registered User Has Registered
120   * @return {void}
121   */
122  eventFormSell(registered = false) {
123    this._sendEvent('bt_form_sell');
124
125    if (registered) {
126      this.eventFormSellReg();
127    }
128  }
129
130  /**
131   * Event: Sell Form Registration
132   * @return {void}
133   */
134  eventFormSellReg() {
135    this._sendEvent('bt_form_sell_registration');
136    this._sendEventAdWords();
137  }
138
139  //////////////////////////////
140  // Buyer Page
141  //////////////////////////////
142
143  /**
144   * Event: Buy Form
145   * @param {bool} registered User Has Registered
146   * @return {void}
147   */
148  eventFormBuy(registered = false) {
149    this._sendEvent('bt_form_buy');
150
151    if (registered) {
152      this.eventFormBuyReg();
153    }
154  }
155
156  /**
157   * Event: Buy Form Registration
158   * @return {void}
159   */
160  eventFormBuyReg() {
161    this._sendEvent('bt_form_buy_registration');
162    this._sendEventAdWords();
163  }
164
165  //////////////////////////////
166  // Login Modal
167  //////////////////////////////
168
169  /**
170   * Event: Login Modal
171   * @param {bool} registered User Has Registered
172   * @return {void}
173   */
174  eventFormLogin(registered = false) {
175    this._sendEvent('bt_form_login');
176
177    if (registered) {
178      this.eventFormLoginRegistration();
179    }
180  }
181
182  /**
183   * Event: Login Modal Registration
184   * @return {void}
185   */
186  eventFormLoginRegistration() {
187    this._sendEvent('bt_form_login_registration');
188    this._sendEventAdWords();
189  }
190
191  //////////////////////////////
192  // Contact Us Page
193  //////////////////////////////
194
195  /**
196   * Event: Contact Form
197   * @param {bool} registered User Has Registered
198   * @return {void}
199   */
200  eventFormContact(registered = false) {
201    this._sendEvent('bt_form_contact');
202
203    if (registered) {
204      this.eventFormContactReg();
205    }
206  }
207
208  /**
209   * Event: Contact Form Registration
210   * @return {void}
211   */
212  eventFormContactReg() {
213    this._sendEvent('bt_form_contact_registration');
214    this._sendEventAdWords();
215  }
216
217  //////////////////////////////
218  // Finance Page
219  //////////////////////////////
220
221  /**
222   * Event: Finance Form
223   * @param {bool} registered User Has Registered
224   * @return {void}
225   */
226  eventFormFinance(registered = false) {
227    this._sendEvent('bt_form_finance');
228
229    if (registered) {
230      this.eventFormFinanceReg();
231    }
232  }
233
234  /**
235   * Event: Finance Form Registration
236   * @return {void}
237   */
238  eventFormFinanceReg() {
239    this._sendEvent('bt_form_finance_registration');
240    this._sendEventAdWords();
241  }
242
243  //////////////////////////////
244  // Contact Agent Page
245  //////////////////////////////
246
247  /**
248   * Event: Agent Form
249   * @param {bool} registered User Has Registered
250   * @return {void}
251   */
252  eventFormAgent(registered = false) {
253    this._sendEvent('bt_form_agent');
254
255    if (registered) {
256      this.eventFormAgentReg();
257    }
258  }
259
260  /**
261   * Event: Agent Form Registration
262   * @return {void}
263   */
264  eventFormAgentReg() {
265    this._sendEvent('bt_form_agent_registration');
266    this._sendEventAdWords();
267  }
268
269  /**
270   * Event: Adwords Conversion
271   * @return {void}
272   */
273  _sendEventAdWords() {
274    this._sendEvent('conversion', {'send_to': 'AW-1050553015/KTDZCN3y3gcQt9X49AM'});
275  }
276}

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.