PageSourceSearch

https://danatec.com/contact

html danatec.com collected 2026-10-01 07:59:27 UTC 66,757 bytes, 1,510 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4<link rel="prefetch" href="https://cdn.files.rapidlms.com/view/57/f0/4c/9d/e0/e1/7d/80/d0/53/86/ae/53/34/c2/65/original/homepage-hero-image.png">
5
6  
6<script type="text/javascript">
7  /*! js-cookie v3.0.1 | MIT */
8    (function (global, factory) {
9      typeof exports === "object" && typeof module !== "undefined" ?
10        (module.exports = factory()) :
11        typeof define === "function" && define.amd ?
12          define(factory) :
13          ((global = global || self),
14            (function () {
15              var current = global.Cookies;
16              var exports = (global.Cookies = factory());
17              exports.noConflict = function () {
18                global.Cookies = current;
19                return exports;
20              };
21            })());
22  })(this, function () {
23      "use strict";
24    /* eslint-disable no-var */
25    function assign(target) {
26      for (var i = 1; i < arguments.length; i++) {
27        var source = arguments[i];
28    for (var key in source) {
29      target[key] = source[key];
30        }
31      }
32    return target;
33    }
34    /* eslint-enable no-var */
35    /* eslint-disable no-var */
36    var defaultConverter = {
37      read: function (value) {
38        if (value[0] === '"') {
39      value = value.slice(1, -1);
40        }
41    return value.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent);
42      },
43    write: function (value) {
44        return encodeURIComponent(value).replace(
45    /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,
46    decodeURIComponent
47    );
48      },
49    };
50    /* eslint-enable no-var */
51    /* eslint-disable no-var */
52    function init(converter, defaultAttributes) {
53      function set(key, value, attributes) {
54        if (typeof document === "undefined") {
55          return;
56        }
57        attributes = assign({}, defaultAttributes, attributes);
58        if (typeof attributes.expires === "number") {
59          attributes.expires = new Date(
60            Date.now() + attributes.expires * 864e5
61          );
62        }
63        if (attributes.expires) {
64          attributes.expires = attributes.expires.toUTCString();
65        }
66        key = encodeURIComponent(key)
67          .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)
68          .replace(/[()]/g, escape);
69        var stringifiedAttributes = "";
70        for (var attributeName in attributes) {
71          if (!attributes[attributeName]) {
72            continue;
73          }
74          stringifiedAttributes += "; " + attributeName;
75          if (attributes[attributeName] === true) {
76            continue;
77          }
78          // Considers RFC 6265 section 5.2:
79          // ...
80          // 3.  If the remaining unparsed-attributes contains a %x3B (";")
81          //     character:
82          // Consume the characters of the unparsed-attributes up to,
83          // not including, the first %x3B (";") character.
84          // ...
85          stringifiedAttributes +=
86            "=" + attributes[attributeName].split(";")[0];
87        }
88        return (document.cookie =
89          key + "=" + converter.write(value, key) + stringifiedAttributes);
90      }
91
92      function get(key) {
93        if (typeof document === "undefined" || (arguments.length && !key)) {
94          return;
95        }
96    // To prevent the for loop in the first place assign an empty array
97    // in case there are no cookies at all.
98    var cookies = document.cookie ? document.cookie.split("; ") : [];
99    var jar = { };
100    for (var i = 0; i < cookies.length; i++) {
101          var parts = cookies[i].split("=");
102    var value = parts.slice(1).join("=");
103    try {
104            var foundKey = decodeURIComponent(parts[0]);
105    jar[foundKey] = converter.read(value, foundKey);
106    if (key === foundKey) {
107              break;
108            }
109          } catch (e) { }
110        }
111    return key ? jar[key] : jar;
112      }
113    return Object.create({
114      set: set,
115    get: get,
116    remove: function (key, attributes) {
117      set(
118        key,
119        "",
120        assign({}, attributes, {
121          expires: -1,
122        })
123      );
124        },
125    withAttributes: function (attributes) {
126          return init(
127    this.converter,
128    assign({ }, this.attributes, attributes)
129    );
130        },
131    withConverter: function (converter) {
132          return init(assign({ }, this.converter, converter), this.attributes);
133        },
134      }, {
135      attributes: {
136      value: Object.freeze(defaultAttributes)
137        },
138    converter: {
139      value: Object.freeze(converter)
140        },
141      });
142    }
143    var api = init(defaultConverter, {
144      path: "/"
145    });
146    /* eslint-enable no-var */
147    return api;
148  });
149  </script>
149
150
151  
151<script>
152    document.addEventListener('DOMContentLoaded', function() {
153      const product_ids = [8617, 8616, 8615, 8614, 8613];
154      product_ids.forEach(product_id => {
155        const p = document.querySelector(`.container[product-id="${product_id}"] .product-features-container`);
156        
157        if (p) {
158          const xpath = './/strong[text()="Certification:"]/following-sibling::span';
159          const span = document.evaluate(xpath, p, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
160          if (span) {
161            span.textContent = "Yes";
162          }
163        }
164      });
165    });
166  </script>
166
167
168
169  
169<script>
170    document.addEventListener('DOMContentLoaded', function() {
171      const toggleButton = document.getElementById('toggleButton');
172      const section = document.getElementById('set-up-account');
173
174      if (toggleButton) {
175        toggleButton.addEventListener('click', function() {
176          if (section.classList.contains('hidden')) {
177            section.classList.remove('hidden');
178            toggleButton.textContent = 'Set Up Account'; 
179          } else {
180            section.classList.add('hidden');
181            toggleButton.textContent = 'Set Up Account'; 
182          }
183        });
184      }
185    });
186  </script>
186
187
188
189  
189<script>
190    document.addEventListener("DOMContentLoaded", function() {
191      const viewMoreButton = document.getElementById('view-more');
192
193      if (!viewMoreButton) {
194        return;
195      }
196
197      viewMoreButton.addEventListener('click', function() {
198          const hiddenWidgets = document.querySelectorAll('#widget-39756, #widget-39759, #widget-39760, #widget-39762, #widget-39779, #widget-39780, #widget-39781, #widget-39782, #widget-39783');
199
200        // Check if hidden widgets are currently hidden
201        if (hiddenWidgets[0].style.display === 'none') {
202          // Show hidden widgets
203          hiddenWidgets.forEach(widget => {
204            widget.style.display = 'block'; // Show the hidden widgets
205          });
206          this.textContent = 'View Less Modules'; 
207        } else {
208          // Hide widgets again
209          hiddenWidgets.forEach(widget => {
210            widget.style.display = 'none'; // Hide the widgets
211          });
212          this.textContent = 'View More Modules'; 
213        }
214      });
215    });
216  </script>
216
217
218
219
220
221<script>
222  window.dataLayer = window.dataLayer || [];
223  function gtag(){dataLayer.push(arguments);}
224  gtag('consent', 'default', {
225    ad_storage: 'denied',
226    ad_user_data: 'denied',
227    ad_personalization: 'denied',
228    analytics_storage: 'denied',
229    wait_for_update: 500
230  });
231</script>
231
232
233<!-- Google Tag Manager -->
234<script data-cookie-consent="tracking">
235//<![CDATA[
vendor: 339 bytes, lines 235-241
235
236
237  (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
238  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
239  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
240  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
241  })(window,document,'script','dataLayer',"
241GTM-KWQKRDC
vendor: 5 bytes, lines 241-242
241");
242
243//]]>
244</script>
244<script data-cookie-consent="tracking">
245//<![CDATA[
vendor: 339 bytes, lines 245-251
245
246
247  (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
248  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
249  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
250  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
251  })(window,document,'script','dataLayer',"
251GTM-T6ZT69J
vendor: 5 bytes, lines 251-252
251");
252
253//]]>
254</script>
254<!-- End Google Tag Manager -->
255
256<meta content="false" name="turbo-prefetch">
257<meta content="width=device-width, initial-scale=1, user-scalable=0" name="viewport">
258<meta name="csrf-param" content="authenticity_token" />
259<meta name="csrf-token" content="NkP0PITd-xCwNZM9VPpUbKNImuRYP9KseSnh01D8lQFxAiwAnfsXZz1wNEN3e_Haau0eSEtbJ1OZfHuR7HCzlw" />
260<link rel="icon" type="image/png" href="https://cdn.files.rapidlms.com/view/34/8b/06/94/e3/98/aa/1f/e0/90/77/54/20/2b/37/7e/48x48%3E/danatec-icon.png" />
261<link rel="stylesheet" href="https://cdn.assets.rapidlms.com/assets/fontawesome-fonts-7c2d238744ff7f56c895e443356f401eaeba0d2e495359b42ecb27659f411bd3.css" media="all" data-turbo-track="reload" />
262<link rel="stylesheet" href="https://cdn.assets.rapidlms.com/assets/fontawesome-classes-8d5f7096fe7706a2fe940378c660b563892be8be4dd99cb6cee0632c3a3a8651.css" media="print" data-turbo-track="reload" onload="this.media=&#39;all&#39;" />
263<noscript><link rel="stylesheet" href="https://cdn.assets.rapidlms.com/assets/fontawesome-classes-8d5f7096fe7706a2fe940378c660b563892be8be4dd99cb6cee0632c3a3a8651.css" media="all" data-turbo-track="reload" /></noscript>
264<style>@layer base, sections, widgets;</style>
265<link rel="stylesheet" href="https://cdn.assets.rapidlms.com/assets/page-layered-1427cf85bf06b9e9fda21792bb78c9b9bb8755371a25195488ffa5a7f1373e16.css" media="all" data-turbo-track="reload" />
266<link rel="stylesheet" href="https://cdn.assets.rapidlms.com/assets/print-layered-b166e22f10443325dcfc0a0ce73014d6d0e84855a11085e374e905f8256edbad.css" media="print" data-turbo-track="reload" />
267<link crossorigin="true" href="https://cdn.assets.rapidlms.com" rel="preconnect">
268<link crossorigin="true" href="https://fonts.gstatic.com" rel="preconnect">
269<link as="style" crossorigin="true" href="https://fonts.googleapis.com/css?family=Montserrat:400,500,600,700&amp;display=swap" rel="preload">
270<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:400,500,600,700&amp;display=swap" media="print" reloadable="true" data-turbo-track="reload" onload="this.media=&quot;all&quot;" />
271<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:400,500,600,700&amp;display=swap" media="all" reloadable="true" data-turbo-track="reload" /></noscript>
272<style>
273  body, button, input, select, textarea {
274    font-family: "Montserrat", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important;
275  }
276  
277  html, body {
278    color: #333333;
279    background: #ffffff;
280  }
281</style>
282<link rel="stylesheet" href="https://danatec.com/stylesheets/3679.css" media="all" reloadable="true" data-turbo-track="reload" />
283<link rel="stylesheet" href="https://cdn.assets.rapidlms.com/assets/protected-82d1ef8d9ef37530cba87ea47d52d09692039a77c9fa636d1f288e4904cfe662.css" media="all" data-turbo-track="reload" />
284
285
286<script src="https://cdn.assets.rapidlms.com/assets/translations-ebe6e3ca8cead927cdfeb1d05f2ee6b5078c7c053fc828dcfe3ab6a98898f888.js"></script>
vendor: 1 bytes, line 286
286
287<script>
288//<![CDATA[
289I18n.defaultLocale = "en";
290I18n.locale = "en";
291I18n.availableLocales = ["en", "fr", "es", "pa", "pt"];
292
293//]]>
294</script>
vendor: 1 bytes, line 294
294
295<script src="https://cdn.assets.rapidlms.com/assets/page_libs-888971a3489bd6f9bce874fdd79127097b771ec2b9a9139bb4852985738919b4.js" data-cookie-consent="strictly-necessary"></script>
vendor: 1 bytes, line 295
295
296<script src="https://cdn.assets.rapidlms.com/assets/im_shim-452b6840370e2efb2d149917404fc3eb0a55d1734d610b9f9880f9011afd4d11.js" data-cookie-consent="strictly-necessary"></script>
vendor: 1 bytes, line 296
296
297<script type="importmap" data-turbo-track="reload">{
298  "imports": {
299    "@rails/request.js": "https://cdn.assets.rapidlms.com/assets/requestjs-1bf707251186c966aab06cc66da90858ce9ffc09b3e866ea7c8e73377c80d0b2.js",
300    "im_application": "https://cdn.assets.rapidlms.com/assets/im_application-aa8a4186ed6ff96df268cc47bba7aa6ced9c44c8c08e96000d92f6e24d49f5f9.js",
301    "@hotwired/turbo-rails": "https://cdn.assets.rapidlms.com/assets/turbo.min-eb73648d459b381664c55223c766b5d546a14bfe9aa58ee9755a626884dcb622.js",
302    "@hotwired/stimulus": "https://cdn.assets.rapidlms.com/assets/stimulus.min-429fc329533681b24900fa4f44f31ae4bed48e78fe9093e4d787db7bf0655b03.js",
303    "@hotwired/stimulus-loading": "https://cdn.assets.rapidlms.com/assets/stimulus-loading-25bf9d9fa64457bd6c50eeea0e22e761c986662c73b15d29201d380a28dea872.js",
304    "slick-carousel": "https://cdn.assets.rapidlms.com/assets/slick-carousel-dcfe891d6caac59bafa4b5cd29d00134950a2f6a1f0b9b64b6a7b7e7c98716e3.js",
305    "wow.js": "https://cdn.assets.rapidlms.com/assets/wow.js-84e4d81b336353fb191f7624780a5b1ed0bd381f4288c8a4fa8c262bf1c1d792.js",
306    "zxcvbn": "https://cdn.assets.rapidlms.com/assets/zxcvbn-f1a8533621700d8d30d2311a5fdca1910ee8fb9c197e1cfb6fa6ea98c41879ef.js",
307    "@rails/actioncable": "https://cdn.assets.rapidlms.com/assets/@rails--actioncable-027a7169da1258047b753eb099daa6fb54aacdc141a0667c0fe119b5ecca19e4.js",
308    "underscore": "https://cdn.assets.rapidlms.com/assets/underscore/underscore-esm-432399347b2d66d9dbf7103bc8cbe5e760832939fe85e9c9992f6918ccf2dade.js",
309    "controllers/ace_controller": "https://cdn.assets.rapidlms.com/assets/controllers/ace_controller-b9cece669dd972388dac4db7b5705072142a95a97b93e5f2ee9d30385d101cfc.js",
310    "controllers/add_to_cart_controller": "https://cdn.assets.rapidlms.com/assets/controllers/add_to_cart_controller-42199d0cf87c162c89b3270d781c4f2d6ca76301be17373cdcb50fd8df69f5ab.js",
311    "controllers/address_controller": "https://cdn.assets.rapidlms.com/assets/controllers/address_controller-17ab382705d15e204034ae4bf882e3ee36b5ca390df7596108c81919e81e16c1.js",
312    "controllers/admin/autocomplete_controller": "https://cdn.assets.rapidlms.com/assets/controllers/admin/autocomplete_controller-9f47c10d233302af63ec7d3d3603178293e1631514c1484f9a48d37d02c6b947.js",
313    "controllers/application": "https://cdn.assets.rapidlms.com/assets/controllers/application-7053e605fe0bf7bcec405a97237a075accbc231295412d0c41f95b23a7999af0.js",
314    "controllers/attache_controller": "https://cdn.assets.rapidlms.com/assets/controllers/attache_controller-41442909e31be9262b6149da9a021f2d88bb37085091b305d62d4e459b009143.js",
315    "controllers/broadcast_event_controller": "https://cdn.assets.rapidlms.com/assets/controllers/broadcast_event_controller-6aad3eb02be9ef9b75528cd040cfbd51db0b58e583654a699a3dd52a3005cc33.js",
316    "controllers/call_to_action_controller": "https://cdn.assets.rapidlms.com/assets/controllers/call_to_action_controller-86ba87abbd0664fa08ff433934875e13115dcdcb63d1850a8d92c596ee11abf6.js",
317    "controllers/catalog_controller": "https://cdn.assets.rapidlms.com/assets/controllers/catalog_controller-b2c069287f7a4088a3b4eeb1a7651a1d23a7e3ea810785db0dca75e72166a0fe.js",
318    "controllers/checkbox_toggle_controller": "https://cdn.assets.rapidlms.com/assets/controllers/checkbox_toggle_controller-a8c454ca54f168605a3f7af1feb9e61c3a7af8c4a26a22428b4c5d0ec620a377.js",
319    "controllers/checkout_controller": "https://cdn.assets.rapidlms.com/assets/controllers/checkout_controller-3328d42329b8676d897ae6a889d9b26f7b4e7ee7f620530fba4135bc46cf2d5a.js",
320    "controllers/color_picker_controller": "https://cdn.assets.rapidlms.com/assets/controllers/color_picker_controller-26c6684c35aba963de96ae5836ad457fd6383dbbe05776d339113871f151ddd2.js",
321    "controllers/conditional_content_show_controller": "https://cdn.assets.rapidlms.com/assets/controllers/conditional_content_show_controller-8e0a42e35b0c0e83e113bc1c87417ca51af73b955c489e8cd5bc7525970c7e68.js",
322    "controllers/contact_form_controller": "https://cdn.assets.rapidlms.com/assets/controllers/contact_form_controller-491f39edf32362ecbdd5937aacb70c2c7326dc8370207b9bc68c63d9f5599292.js",
323    "controllers/container_toggle_controller": "https://cdn.assets.rapidlms.com/assets/controllers/container_toggle_controller-72d07c5de9efd84224e7cc8fe382221b4ca44051c2921cdd28a3c68b1e5e212a.js",
324    "controllers/content_toggle_controller": "https://cdn.assets.rapidlms.com/assets/controllers/content_toggle_controller-b44e72484b4a1eb8a0d98cea3c45d1f2529bef4f0381b6b5f11f26f78cedce9a.js",
325    "controllers/cookie_consent_controller": "https://cdn.assets.rapidlms.com/assets/controllers/cookie_consent_controller-37e5826a073bd3aae61b15265702480d06e7d1268b1548bb2624a08ed941d498.js",
326    "controllers/coordinate_user_controller": "https://cdn.assets.rapidlms.com/assets/controllers/coordinate_user_controller-2955d5f8c5522b97615bdde5e918bc4561a43eb920e467cabff5024eef5b5657.js",
327    "controllers/coordinate_user_migration_controller": "https://cdn.assets.rapidlms.com/assets/controllers/coordinate_user_migration_controller-3fdc325edd75cb394d
32777ffe78a821f9cb9cc46cc4212e080e6db9ff191c24c2f.js",
328    "controllers/dismiss_controller": "https://cdn.assets.rapidlms.com/assets/controllers/dismiss_controller-ff1a86d214955d193337e91a12114281c78c6db213e5afb3d6d371dfa5cad253.js",
329    "controllers/dual_range_slider_controller": "https://cdn.assets.rapidlms.com/assets/controllers/dual_range_slider_controller-460b995c1537f59bed21d5248e89c9ba53284c1ab310beb75806756f638d8b17.js",
330    "controllers/fa_select_controller": "https://cdn.assets.rapidlms.com/assets/controllers/fa_select_controller-2d8633e776684a5131e098e876ea70d6e42becebcbf9bc7c791d41489687bd68.js",
331    "controllers/form_validation_controller": "https://cdn.assets.rapidlms.com/assets/controllers/form_validation_controller-3f538d03d1b6d1f58ac9e36cb731b4f22c9586431b8f979c45ce25c433c5191e.js",
332    "controllers/ga_controller": "https://cdn.assets.rapidlms.com/assets/controllers/ga_controller-2a830394c4b9085de62991a2e9ffb3f3f1745d9e45907e691c637d224db7e10e.js",
333    "controllers/image_slides_controller": "https://cdn.assets.rapidlms.com/assets/controllers/image_slides_controller-1433ed1c8ebb444f3e88355d9f1419b2adf53cc0b50fc755a7d581867949a292.js",
334    "controllers": "https://cdn.assets.rapidlms.com/assets/controllers/index-029224d129cd1066e14bada3512553d2df176e613b43f7fcdfdd9a1c68c853dc.js",
335    "controllers/lv_system_check_controller": "https://cdn.assets.rapidlms.com/assets/controllers/lv_system_check_controller-f5978abee4d2c89e4f01b299da0a44c1b001c9903c951f58774f67b7e118ac4a.js",
336    "controllers/menu_toggle_controller": "https://cdn.assets.rapidlms.com/assets/controllers/menu_toggle_controller-59368ae2e065c95f97a82f2157d3c50e3497208e1ecb8789c8cc794ab00729fd.js",
337    "controllers/mfa_resend_controller": "https://cdn.assets.rapidlms.com/assets/controllers/mfa_resend_controller-196beb758cf396fe80e429f821a50308c2a00a8e011924d04caaa600a6d1c5cf.js",
338    "controllers/multi_select_controller": "https://cdn.assets.rapidlms.com/assets/controllers/multi_select_controller-a90fa04ae9906e159b6a5d9a78abb84e55451dcb28f9fe25be86e518de09461f.js",
339    "controllers/no_scroll_controller": "https://cdn.assets.rapidlms.com/assets/controllers/no_scroll_controller-c6924af45eb4fef04047a69e960d8ad4835225b12b058e6c3f8226a314c186c1.js",
340    "controllers/overlay_controller": "https://cdn.assets.rapidlms.com/assets/controllers/overlay_controller-095056295e06800e8d14d8932eec60b39517930966de3efbd72605788e068182.js",
341    "controllers/page_editor_controller": "https://cdn.assets.rapidlms.com/assets/controllers/page_editor_controller-6de039726cf12455097ff24e485f8eb8af1c48f1717617f42fbb8e434bb7f627.js",
342    "controllers/page_preview_controller": "https://cdn.assets.rapidlms.com/assets/controllers/page_preview_controller-20350ebd7a5fc0c4a24c83d5819e9b9cc7c22d210fe31a856e112d6ca6210799.js",
343    "controllers/password_complexity_controller": "https://cdn.assets.rapidlms.com/assets/controllers/password_complexity_controller-634815180d1785421194b8e8ae504b6ce155accdc8b065e2b6e0c3908aca33ce.js",
344    "controllers/pricing_table_controller": "https://cdn.assets.rapidlms.com/assets/controllers/pricing_table_controller-720120833a981734b20a6e7c35bf7b111a0bb14ec6db36839c196eff15ec1507.js",
345    "controllers/print_controller": "https://cdn.assets.rapidlms.com/assets/controllers/print_controller-2abe71dc94a8275d14ab863d2f17715c94ddad20e5d127a78075c1c92862ab42.js",
346    "controllers/product_catalog_controller": "https://cdn.assets.rapidlms.com/assets/controllers/product_catalog_controller-d3c14665c4da5b11fde705319217251c321dba53345f39577d6fc0d8909d1bc0.js",
347    "controllers/product_rating_controller": "https://cdn.assets.rapidlms.com/assets/controllers/product_rating_controller-9ccc8e05568275b79a89817a434af5883d9394c23774e5b85ffc26a60891a362.js",
348    "controllers/rapid_events_controller": "https://cdn.assets.rapidlms.com/assets/controllers/rapid_events_controller-910ae070aa69cf1600d40a5e66f55d79e939bc39ff0fe9db5ef39c06a9e2777e.js",
349    "controllers/redactor_controller": "https://cdn.assets.rapidlms.com/assets/controllers/redactor_controller-d201cd01d33a328510beede3704f145f61af44da43ce54bdfa3ca870b2ce887e.js",
350    "controllers/reveal_password_controller": "https://cdn.assets.rapidlms.com/assets/controllers/reveal_password_controller-157127fc71c104fba1165052e7df26c9bb621dff791625be9d1bdf674a3450ba.js",
351    "controllers/show_all_controller": "https://cdn.assets.rapidlms.com/assets/controllers/show_all_controller-dd30966da659707030a4241b4f12a0e7a30f8ef71155d42faae77af6579f8494.js",
352    "controllers/site_nav_controller": "https://cdn.assets.rapidlms.com/assets/controllers/site_nav_controller-f61662cf3a96b083b54a2b0b224ab215ba1487734d1d1237948e6ff760223967.js",
353    "controllers/site_search_controller": "https://cdn.assets.rapidlms.com/assets/controllers/site_search_controller-2bce7acc1a6a1134e8daadd8d5233130e5fd5c187abc179f4012ced24a161d7a.js",
354    "controllers/slick_controller": "https://cdn.assets.rapidlms.com/assets/controllers/slick_controller-8bd3f3a61dba9b45f54b564790b57ed9ba492e1b89fe3934d2d7b3404b829162.js",
355    "controllers/slider_controller": "https://cdn.assets.rapidlms.com/assets/controllers/slider_controller-4f2c9d4c37f3c292d0f77b9fa51b21ca0fda97f296ed80a5dbcab58f98bd4f8f.js",
356    "controllers/stripe_subscription_controller": "https://cdn.assets.rapidlms.com/assets/controllers/stripe_subscription_controller-7fb49d38bc7ad96430103ed21d376ce387f2610a6da838bd5e9587bce34f62b1.js",
357    "controllers/submit_form_controller": "https://cdn.assets.rapidlms.com/assets/controllers/submit_form_controller-ef706bdbe306f962bc9edfae4e444de0f7416d90839fd18b05f3037e8f0953cc.js",
358    "controllers/tabs_controller": "https://cdn.assets.rapidlms.com/assets/controllers/tabs_controller-2f6a3110b7f4f3925663738b611e804ae3b115be882db1cd6f7fd6083be5f1e2.js",
359    "controllers/testimonials_controller": "https://cdn.assets.rapidlms.com/assets/controllers/testimonials_controller-500d5055d5d47db96d809de7cfb89beca3055367683457a17f43881bcb74272f.js",
360    "controllers/tooltip_controller": "https://cdn.assets.rapidlms.com/assets/controllers/tooltip_controller-0ba083a718f8e8076396d41fa495b37ed1c1625d9e4139dce83332506081a446.js",
361    "channels/consumer": "https://cdn.assets.rapidlms.com/assets/channels/consumer-1f32b1fa3d579d7ca3e5b517b397f4984d9e9803744fe8ab7b2a5c27e6427ccc.js"
362  }
363}</script>
363
364<link rel="modulepreload" href="https://cdn.assets.rapidlms.com/assets/im_application-aa8a4186ed6ff96df268cc47bba7aa6ced9c44c8c08e96000d92f6e24d49f5f9.js">
365<link rel="modulepreload" href="https://cdn.assets.rapidlms.com/assets/turbo.min-eb73648d459b381664c55223c766b5d546a14bfe9aa58ee9755a626884dcb622.js">
366<link rel="modulepreload" href="https://cdn.assets.rapidlms.com/assets/stimulus.min-429fc329533681b24900fa4f44f31ae4bed48e78fe9093e4d787db7bf0655b03.js">
367<link rel="modulepreload" href="https://cdn.assets.rapidlms.com/assets/stimulus-loading-25bf9d9fa64457bd6c50eeea0e22e761c986662c73b15d29201d380a28dea872.js">
368<link rel="modulepreload" href="https://cdn.assets.rapidlms.com/assets/slick-carousel-dcfe891d6caac59bafa4b5cd29d00134950a2f6a1f0b9b64b6a7b7e7c98716e3.js">
369<link rel="modulepreload" href="https://cdn.assets.rapidlms.com/assets/wow.js-84e4d81b336353fb191f7624780a5b1ed0bd381f4288c8a4fa8c262bf1c1d792.js">
370<script type="module">import "im_application"</script>
370
371
372<link rel="canonical" href="https://danatec.com/contact">
373<meta content="Contact Us | Danatec Locations and Hours | Danatec.com" property="og:title">
374<meta content="website" property="og:type">
375<meta content="https://danatec.com/contact" property="og:url">
376<meta content="Danatec.com" property="og:site_name">
377<meta content="https://cdn.files.rapidlms.com/view/b5/d3/18/fc/92/1f/ca/e9/c4/f9/38/9b/0e/51/0f/da/original/danatec_preview_link_logojpg.jpg" property="og:image">
378<meta content="Contact Danatec for Safety Training " name="description" property="og:description">
379
380
381<title>Contact Us | Danatec Locations and Hours | Danatec.com</title>
382
383
384</head>
385<body class="regular-header country-unknown" data-action="keydown.esc@document-&gt;overlay#close" data-controller="rapid-events ga overlay " data-ga-debug-value="false" data-page-preview-page-gid-value="Z2lkOi8vZmVuaXgvUGFnZS8zNjc5" data-page-preview-theme-gid-value="Z2lkOi8vZmVuaXgvVGhlbWUvNzcy" id="page_3679">
386<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 386-387
386
387<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
387GTM-KWQKRDC
vendor: 152 bytes, lines 387-389
387"
388  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
389<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
389GTM-T6ZT69J
vendor: 85 bytes, lines 389-390
389"
390  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
391<!-- End Google Tag Manager (noscript) -->
392
393<div class="container">
394<header class="page-header" data-controller="site-nav">
395<nav class="global-nav">
396<ul>
397<li class="sign-in">
398<a href="/users/sign_in"><i aria-hidden="true" class="fa fa-sign-in"></i>
399<span>Log In or Create Account</span>
400</a></li>
401<li class="review-cart">
402<turbo-frame class="cart_header" id="cart_header"><details class="shopping-cart">
403<summary>
404<turbo-frame class="cart_count" id="cart_count"><div class="toggle-review">
405<i aria-hidden="true" class="fa fa-shopping-cart"></i>
406<sup>0</sup>
407<span>Cart</span>
408</div>
409</turbo-frame>
410</summary>
411<div class="review-items">
412<div class="cart-wrap">
413<turbo-frame class="cart_items" id="cart_items"><table class="shopping-cart">
414<thead>
415<tr>
416<th>Item</th>
417<th>Price</th>
418<th>QTY</th>
419<th>Total</th>
420<th></th>
421</tr>
422</thead>
423<tbody>
424
425</tbody>
426</table>
427</turbo-frame>
428</div>
429<turbo-frame class="cart-totals" id="cart_totals"><div class="cart-subtotal"><div>Subtotal:</div><div>$0.00 CAD</div></div>
430<div class="cart-total"><div>Total:</div><div>$0.00 CAD</div></div>
431</turbo-frame>
432<div class="review-actions">
433<a class="button proceed-to-checkout" target="_top" href="/orders/new"><span>Checkout</span>
434<i aria-hidden="true" class="fa fa-chevron-right"></i>
435</a></div>
436</div>
437</details>
438</turbo-frame>
439</li>
440<li class="product-search" data-controller="site-search">
441<a class="toggle-search" data-action="click-&gt;site-search#toggle">
442<i aria-hidden="true" class="fa fa-search"></i>
443<form class="search-form" action="/search" accept-charset="UTF-8" method="get"><input type="text" name="q" id="q" class="search-input" placeholder="Search" data-site-search-target="input" />
444</form></a>
445</li>
446</ul>
447</nav>
448<nav class="site-nav" data-site-nav-target="menu">
449<div class="center-wrap">
450<div class="logo">
451<a href="/"><img src="https://cdn.files.rapidlms.com/view/4f/d9/7a/d0/83/99/7f/bd/ea/87/db/b5/df/50/e7/06/240x75%3E/Danatec_Logo_Two-Colour_RGB+%281%29.png" loading="lazy" />
452</a></div>
453<a class="menu-toggle is-closed" data-controller="menu-toggle">
454<span></span>
455</a>
456<ul class="menu-stack menu-items">
457<li class="">
458<a class="menu-item" href="/industries"><span class="bold">Industries</span>
459<i aria-hidden="true" class="fa fa-caret-down"></i>
460</a><ul class="menu-stack">
461<li class="">
462<a class="menu-item" href="/industries/construction-safety-training">Construction Site Safety Training &amp; Courses for Professionals | Danatec.com</a>
463</li>
464<li class="">
465<a class="menu-item" href="/industries/workplace-safety-training">Workplace Safety Training | Workplace Health &amp; Safety Courses</a>
466</li>
467<li class="">
468<a class="menu-item" href="/industries/energy-utilities-safety-training">Energy &amp; Utilities Training for Professionals and Teams</a>
469</li>
470<li class="">
471<a class="menu-item" href="/industries/manufacturing-safety-training">Manufacturing &amp; Warehousing Safety Training</a>
472</li>
473<li class="">
474<a class="menu-item" href="/industries/mining-safety-training">Mining &amp; Forestry Safety Training for Professionals and Teams</a>
475</li>
476<li class="">
477<a class="menu-item" href="/industries/oil-gas-safety-training">Oil &amp; Gas Safety Training for Professionals and Teams</a>
478</li>
479<li class="">
480<a class="menu-item" href="/industries/hospitality-safety-training">Safety Training for Retail, Hospitality &amp; Public Services Training for Professionals and Teams</a>
481</li>
482<li class="">
483<a class="menu-item" href="/industries/transportation-safety-training">Transportation &amp; Logistics Training</a>
484</li>
485
486</ul>
487</li>
488<li class="">
489<a class="menu-item" href="/courses"><span class="bold">Courses</span>
490<i aria-hidden="true" class="fa fa-caret-down"></i>
491</a><ul class="menu-stack">
492<li class="">
493<a class="menu-item" href="https://danatec.com/courses">All Courses</a>
494</li>
495<li class="">
496<a class="menu-item" href="/courses/instructor-led-courses">Instructor Led Courses</a>
497</li>
498<li class="">
499<a class="menu-item" href="/courses/driver-safety-training">Driver Safety Training</a>
500</li>
501<li class="">
502<a class="menu-item" href="/courses/electrical-safety-courses">Electrical Safety Training</a>
503</li>
504<li class="">
505<a class="menu-item" href="/courses/fall-protection-courses">Fall Protection Training</a>
506</li>
507<li class="">
508<a class="menu-item" href="/courses/ground-disturbance-courses">Ground Disturbance Training</a>
509</li>
510<li class="">
511<a class="menu-item" href="/courses/joint-health-safety-committee-courses">Joint Health and Safety Committee (JHSC) Certification</a>
512</li>
513<li class="">
514<a class="menu-item" href="/courses/lifting-device-courses">Lifting Devices Training</a>
515</li>
516<li class="">
517<a class="menu-item" href="/courses/transportation-dangerous-goods-courses">Transportation of Dangerous Goods (TDG) Training</a>
518</li>
519<li class="">
520<a class="menu-item" href="/courses/whmis">WHMIS Training</a>
521</li>
522
523</ul>
524</li>
525<li class="">
526<a class="menu-item" href="/business-solutions"><span class="bold">Business Solutions</span>
527<i aria-hidden="true" class="fa fa-caret-down"></i>
528</a><ul class="menu-stack">
529<li class="">
530<a class="menu-item" href="/business-solutions/dispatch">SCORM LMS Compliant Training Integration | Dispatch</a>
531</li>
532<li class="">
533<a class="menu-item" href="/business-solutions/train-your-team">Safety Training for Employees – Online &amp; Instructor-Led Programs</a>
534</li>
535<li class="">
536<a class="menu-item" href="/business-solutions/reseller-program">Reseller Program | Partner to Offer Trusted Safety Training</a>
537</li>
538
539</ul>
540</li>
541<li class="">
542<a class="menu-item" href="https://danatec.com/books-materials">Publications</a>
543</li>
544<li class="">
545<a class="menu-item" href="https://danatec.com/contact">Contact Us</a>
546</li>
547
548</ul>
549</div>
550</nav>
551
552</header>
553
554<main class="page-main" data-page-preview-target="sectionContainer">
555<turbo-frame id="flash_message"><div class="dynamic-flash">
556</div>
557</turbo-frame>
558<section class="widget-section" data-section-id="15549" data-wow-delay="0s" id="section_15549">
559
560
561
562<div class="widget-container">
563<div class="widget html" data-widget-id="32370" data-wow-delay="0s" id="widget-32370">
564<div class="widget-elements">
565<div class="hero-header">
566  <div id="breadcrumbs">
567    <ul>
568      <li><a href="/">Home</a></li>
569      <li>Contact</li>
570    </ul>
571  </div>
572  <div class="row">
573    <div class="col">
574      <h1>Contact our Support Team</h1>
575    </div>
576  </div>
577</div>
578</div>
579
580</div>
581
582</div>
583</section>
584<section class="widget-section" data-section-id="15569" data-wow-delay="0s" id="section_15569">
585
586
587
588<div class="widget-container">
589<div class="widget html" data-widget-id="32409" data-wow-delay="0s" id="widget-32409">
590<div class="widget-elements">
591<div class="contact-methods">
592    <div class="row">
593      <div class="col form-wrap">
594        <div class="contact-form">
595          <h2>Send us an email</h2>
596          <div class="description">
597            <p>Our Support Team is available 5 days a week, from Monday to Frid
597ay, from 7:00 AM to 5:00 PM MST.</p>
598            <p>We are closed on Statutory Holidays.</p>
599            <p>You can also reach us by phone at <a href="tel:1-800-465-3366">1-800-465-3366</a>.</p>
600          </div>
601  
602          <p class="note">Fields marked with * are mandatory.</p>
603  
604          <form class="contact-form" id="contact-form" action="https://n8n.sandbox.it.weknowtraining.ca/webhook/contact-form" method="post" novalidate="true">
605            <div class="row">
606              <div class="col">
607                <div class="field-wrap">
608                  <label for="fname">First name*</label>
609                  <input type="text" name="fname" id="fname" required="required" aria-required="true">
610                </div>
611              </div>
612              <div class="col">
613                <div class="field-wrap">
614                  <label for="lname">Last name*</label>
615                  <input type="text" name="lname" id="lname" required="required" aria-required="true">
616                </div>
617              </div>
618            </div>
619  
620            <div class="row">
621              <div class="col">
622                <div class="field-wrap">
623                  <label for="email">Email*</label>
624                  <input id="email" name="email" type="email" required="required" aria-required="true">
625                </div>
626              </div>
627              <div class="col">
628                <div class="field-wrap">
629                  <label for="tel">Phone*</label>
630                  <input id="tel" name="tel" type="tel" required>
631                </div>
632              </div>
633            </div>
634  
635            <div class="field-wrap">
636              <label for="subject">Subject*</label>
637              <input type="text" name="subject" id="subject" required="required">
638            </div>
639  
640            <div class="field-wrap">
641              <label for="message">Question or Comment Details*</label>
642              <p>Please let us know a few details about your question or comment.</p>
643              <textarea name="message" id="message" required="required"></textarea>
644            </div>
645  
646            <input type="hidden" id="ip" name="ip">
647            <input type="hidden" id="gclid" name="gclid" value="" autocomplete="off">
648  
649            <input type="hidden" name="storefront_id" value="Danatec Training" autocomplete="off">
650            <input type="hidden" name="product_id" value="Danatec" autocomplete="off">
651            <input type="hidden" name="redirect_url" value="https://danatec.com/contact/?success=true" autocomplete="off">
652  
653            <input type="hidden" name="utm_term" value="" autocomplete="off">
654            <input type="hidden" name="utm_source" value="adwords" autocomplete="off">
655            <input type="hidden" name="utm_medium" value="ppc" autocomplete="off">
656  
657            <div class="submit-wrap">
658              <button type="submit" name="submit" class="button primary">Submit</button>
659            </div>
660          </form>
661        </div>
662      </div>
663  
664      <div class="col info-wrap">
665        <div class="contact-info">
666          <div class="item">
667            <p class="title">Toll-free:</p>
668            <p class="details"><a href="tel:1-800-465-3366">1-800-465-3366</a></p>
669          </div>
670          <div class="item">
671            <p class="title">Sales inquiry:</p>
672            <p class="details">[email protected]</p>
673          </div>
674          <div class="item address-wrap">
675            <p class="strong">Address</p>
676            <p class="address">15315 123 Ave NW <br>Edmonton, AB<br> T5V 1S6</p>
677            <p class="directions"><a href="https://maps.app.goo.gl/hRFiCorZ9uaZWDWC6" target="_blank" rel="noopener">Get directions</a></p>
678          </div>
679        </div>
680  
681        <div class="contact-help">
682          <h3>Already a Danatec Customer?</h3>
683          <p>Visit our <a href="https://support.danatec.com">Help Center</a> or contact us using the form.</p>
684        </div>
685      </div>
686    </div>
687  </div>
688  
689  <!-- FD Form scripts -->
690  
691  
691<script>
692    document.addEventListener('DOMContentLoaded', function () {
693      fetch('https://api.ipify.org?format=json') // Use 'https://api.ipify64.org?format=json' for IPv6
694        .then(response => {
695          if (!response.ok) {
696            throw new Error(`HTTP error! status: ${response.status}`);
697          }
698          return response.json();
699        })
700        .then(data => {
701          const ipInput = document.getElementById('ip');
702          if (ipInput) {
703            ipInput.value = data.ip;
704            console.log(`IP address: ${ipInput.value}`);
705          } else {
706            console.log(`No IP address was detected.`);
707          }
708        })
709        .catch(error => console.error('Error fetching IP:', error));
710    });
711  </script>
711
712  
713  
713<script type="text/javascript">
714    function waitForElm(selector) {
715      return new Promise((resolve) => {
716        if (document.querySelector(selector)) {
717          return resolve(document.querySelector(selector));
718        }
719  
720        const observer = new MutationObserver(() => {
721          if (document.querySelector(selector)) {
722            resolve(document.querySelector(selector));
723            observer.disconnect();
724          }
725        });
726  
727        observer.observe(document.body, {
728          childList: true,
729          subtree: true,
730        });
731      });
732    }
733  
734    const elements = Array.from(document.querySelectorAll("[id]"));
735  
736    elements.forEach(element => {
737      const id = element.id;
738  
739      if (id.includes("page_")) {
740        console.log("ID found: " + id);
741  
742        const page_id = document.querySelector(`#${id}`);
743        console.log(page_id);
744  
745        const { url, params } = getUrlParams();
746        if (page_id && params.success === "true" && params.ticket_id) {
747          const formContainer = document.querySelector(`#${id} main section:first-of-type .widget-container`);
748          const container = document.createElement("div");
749          container.className = "message";
750          container.textContent = `Thank you for submitting your message. Your ticket ID is: ${params.ticket_id}.`;
751          formContainer.insertAdjacentHTML('afterbegin', container.outerHTML);
752        }
753  
754        console.log(url);
755        console.log(params);
756      }
757    });
758  
759    function getUrlParams() {
760      const urlParams = {};
761      const queryString = window.location.search;
762      if (queryString.length > 0) {
763        queryString
764          .slice(1)
765          .split("&")
766          .forEach((param) => {
767            const keyValue = param.split("=");
768            urlParams[keyValue[0]] = decodeURIComponent(keyValue[1] || "");
769          });
770      }
771  
772      return {
773        url: window.location.href,
774        params: urlParams,
775      };
776    }
777  </script>
777
778  
779  <!-- Form input validation -->
780  
780<script type="text/javascript">
781    function validateForm(form) {
782      var requiredFields = form.querySelectorAll("[required]");
783  
784      var errorMessages = form.querySelectorAll(".error-message");
785      for (var i = 0; i < errorMessages.length; i++) {
786        errorMessages[i].remove();
787      }
788  
789      var inputErrorFields = form.querySelectorAll(".has-error-message");
790      for (var i = 0; i < inputErrorFields.length; i++) {
791        inputErrorFields[i].classList.remove("has-error-message");
792      }
793  
794      var errorSummary = form.querySelector(".error-summary");
795      if (errorSummary) {
796        errorSummary.remove();
797      }
798  
799      var errorList = [];
800  
801      for (var i = 0; i < requiredFields.length; i++) {
802        var field = requiredFields[i];
803        var fieldValue = field.value.trim();
804        if (fieldValue === "") {
805          var errorMessage = document.createElement("div");
806          var inputId = field.getAttribute("id");
807          errorMessage.id = "error-" + inputId;
808          errorMessage.classList.add("error-message");
809          errorMessage.textContent = "This field is required.";
810          field.parentNode.insertBefore(errorMessage, field.nextSibling);
811          field.parentNode.classList.add("has-error-message");
812          field.parentNode.id = "anchor-" + inputId;
813          errorList.push({ inputId: inputId, message: "This field is required" });
814        }
815      }
816  
817      var emailField = form.querySelector("[type='email']");
818      if (emailField && emailField.value.trim() !== "") {
819        var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
820        if (!emailRegex.test(emailField.value.trim())) {
821          var errorMessage = document.createElement("div");
822          var inputId = emailField.getAttribute("id");
823          errorMessage.id = "error-" + inputId;
824          errorMessage.classList.add("error-message");
825          errorMessage.textContent = "Please enter a valid email address.";
826          emailField.parentNode.insertBefore(errorMessage, emailField.nextSibling);
827          emailField.parentNode.classList.add("has-error-message");
828          emailField.parentNode.id = "anchor-" + inputId;
829          errorList.push({ inputId: inputId, message: "Please enter a valid email address" });
830        }
831      }
832  
833      if (errorList.length > 0) {
834        var errorSummary = document.createElement("div");
835        errorSummary.classList.add("error-summary");
836        var errorListHTML = "";
837        for (var i = 0; i < errorList.length; i++) {
838          var inputLabel = form
839            .querySelector("label[for='" + errorList[i].inputId + "']")
840            .textContent.trim()
841            .replace("*", "");
842          errorListHTML +=
843            "<li>" +
844            errorList[i].message +
845            ": <a href='#anchor-" +
846            errorList[i].inputId +
847            "'>" +
848            inputLabel +
849            "</a></li>";
850        }
851        errorSummary.innerHTML =
852          "<p><strong>ERROR:</strong> Please correct the following before continuing</p><ul>" +
853          errorListHTML +
854          "</ul>";
855        form.appendChild(errorSummary);
856        return false;
857      }
858  
859      return true;
860    }
861  </script>
vendor: 66 bytes, lines 861-863
861
862  
863  <script src="https://www.google.com/recaptcha/api.js?render=
8636LcDCDIqAAAAALxvj0be6Eomf1nCycVM63WHcEPx
vendor: 17 bytes, lines 863-865
863"></script>
864  
865  
865<script>
866    function onClick(e) {
867      e.preventDefault();
868      grecaptcha.ready(() => {
869        grecaptcha.execute("6LcDCDIqAAAAALxvj0be6Eomf1nCycVM63WHcEPx", { action: "submit" }).then(token => {
870          const form = document.querySelector(".contact-form form");
871          if (form) {
872            const hiddenInput = document.createElement("input");
873            hiddenInput.type = "hidden";
874            hiddenInput.name = "g-recaptcha-response";
875            hiddenInput.value = token;
876            form.appendChild(hiddenInput);
877  
878            console.log(document.querySelector('input[name="g-recaptcha-response"]').value);
879            if (validateForm(form)) {
880              HTMLFormElement.prototype.submit.call(form);
881            }
882          }
883        });
884      });
885    }
886  
887    document.addEventListener("DOMContentLoaded", () => {
888      const form = document.querySelector(".contact-form form");
889      if (form) {
890        form.setAttribute("novalidate", true);
891        form.addEventListener("submit", onClick);
892      }
893    });
894  
895    waitForElm(".error-summary").then(function () {
896      document.querySelectorAll(".error-summary a[href^='#']").forEach(a =>
897        a.onclick = function (e) {
898          e.preventDefault();
899          var target = document.querySelector(a.getAttribute("href"));
900          if (target) {
901            window.scrollTo({ top: target.offsetTop, behavior: "smooth" });
902          }
903        }
904      );
905    });
906  </script>
906
907  
908<script>
909  (function () {
910    const COOKIE_NAME = "gclid";
911    const COOKIE_DAYS = 90;
912
913    function getParam(name) {
914      const params = new URLSearchParams(window.location.search);
915      const val = params.get(name);
916      return val && val.trim() ? val.trim() : "";
917    }
918
919    function setCookie(name, value, days) {
920      if (!value) return;
921      const date = new Date();
922      date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
923      document.cookie =
924        name +
925        "=" +
926        encodeURIComponent(value) +
927        "; expires=" +
928        date.toUTCString() +
929        "; path=/" +
930        "; SameSite=Lax";
931    }
932
933    function getCookie(name) {
934      const match = document.cookie.match(new RegExp("(^| )" + name + "=([^;]+)"));
935      return match ? decodeURIComponent(match[2]) : "";
936    }
937
938    function getGclidFromGclAwCookie() {
939      // _gcl_aw looks like: _gcl_aw=GCL.<timestamp>.<gclid>
940      const match = document.cookie.match(/(?:^|;\s*)_gcl_aw=GCL\.\d+\.([^;]+)/);
941      return match ? decodeURIComponent(match[1]) : "";
942    }
943
944    function applyGclidToForm(form) {
945      if (!form) return;
946
947      // Precedence:
948      // 1) URL param gclid
949      // 2) _gcl_aw cookie (Google Ads auto-tagging)
950      // 3) our own stored "gclid" cookie
951      const gclidFromUrl = getParam("gclid");
952      if (gclidFromUrl) setCookie(COOKIE_NAME, gclidFromUrl, COOKIE_DAYS);
953
954      const gclidValue = gclidFromUrl || getGclidFromGclAwCookie() || getCookie(COOKIE_NAME);
955      if (!gclidValue) return;
956
957      let input = form.querySelector('input[name="gclid"]');
958      if (!input) {
959        input = document.createElement("input");
960        input.type = "hidden";
961        input.name = "gclid";
962        input.id = "gclid";
963        input.autocomplete = "off";
964        form.appendChild(input);
965      }
966      input.value = gclidValue;
967    }
968
969    document.addEventListener("DOMContentLoaded", function () {
970      waitForElm("form#contact-form").then(function (form) {
971        applyGclidToForm(form);
972        form.addEventListener("submit", function () {
973          applyGclidToForm(form);
974        });
975      });
976    });
977  })();
978</script>
978
979  
980</div>
981
982</div>
983
984</div>
985</section>
986
987</main>
988
989<footer class="page-footer widget-section" custom-footer="true" data-page-preview-target="footer" data-section-id="15415" data-wow-delay="0s" id="section_15415" sectionable-id="772" sectionable-type="Theme">
990
991
992
993<div class="widget-container">
994<div class="widget html" data-widget-id="32147" data-wow-delay="0s" id="widget-32147">
995<div class="widget-elements">
996<div class="footer-wrap">
997  <div class="first-section">
998    <div class="wrap">
999      <div class="row">
1000        <div class="col">
1001          <a href="/contact">
1002            <h4>Questions?</h4>
1003            <h3>Have questions for our expert safety team?</h3>
1004            <p>
1005              <span class="text">Get in touch</span>
1006              <span class="icon"></span>
1007            </p>
1008          </a>
1009        </div>
1010        <div class="col">
1011          <a href="/courses">
1012            <h4>Certification Training</h4>
1013            <h3>Get the certifications you need to keep your team compliant.</h3>
1014            <p>
1015              <span class="text">Find a course</span>
1016              <span class="icon"></span>
1017            </p>
1018          </a>
1019        </div>
1020        <div class="col">
1021          <a href="/books-materials">
1022            <h4>Books &amp; Materials</h4>
1023            <h3>
1023Browse our library of self-study materials, and learn at your own pace.</h3>
1024            <p>
1025              <span class="text">See Books &amp; Materials</span>
1026              <span class="icon"></span>
1027            </p>
1028          </a>
1029        </div>
1030      </div>
1031    </div>
1032  </div>
1033
1034  <div class="second-section">
1035    <div class="wrap">
1036      <div class="row">
1037        <div class="col">
1038          <h4 style="color: white;">Products</h4>
1039          <ul>
1040            <li><a href="/courses">Courses</a></li>
1041            <li><a href="/books-materials">Books &amp; Materials</a></li>
1042          </ul>
1043        </div>
1044        <div class="col">
1045          <h4 style="color: white;">Industries</h4>
1046          <ul>
1047            <li><a href="/construction-safety-training">Construction &amp; Trades</a></li>
1048            <li><a href="/workplace-safety-training">Corporate &amp; General Workplace</a></li>
1049            <li><a href="/energy-safety-training">Energy &amp; Utilities</a></li>
1050            <li><a href="/manufacturing-safety-training">Manufacturing &amp; Warehousing</a></li>
1051            <li><a href="/mining-safety-training">Mining &amp; Forestry</a></li>
1052            <li><a href="/oil-gas-safety-training">Oil &amp; Gas</a></li>
1053            <li><a href="/hospitality-safety-training">Retail, Hospitality &amp; Public Services</a></li>
1054            <li><a href="/transportation-safety-training">Transportation &amp; Logistics</a></li>
1055          </ul>
1056        </div>
1057        <div class="col">
1058          <h4 style="color: white;">Company</h4>
1059          <ul>
1060            <li><a href="/about">About</a></li>
1061            <li><a href="/train-your-team">Train Your Team</a></li>
1062            <li><a href="https://news.danatec.com/">News &amp; Updates</a></li>
1063            <li><a href="/contact">Contact</a></li>
1064            <li><a href="/verify">Verify Certificate</a></li>
1065            <li><a class="light-blue" href="/terms">Terms of Use</a></li>
1066            <li><a class="light-blue" href="/privacy">Privacy Policy</a></li>
1067            <li><a class="light-blue" href="/refunds">Refund Policy</a></li>
1068          </ul>
1069        </div>
1070        <div class="col">
1071          <h4 style="color: white;">Sign Up</h4>
1072          <p>Join our mailing list to learn about new course launches, industry updates, regulatory changes and more.</p>
1073
1074          <form action="https://customerioforms.com/forms/submit_action?site_id=479392e7d19153b5088d&amp;form_id=danatec_footer_newsletter&amp;success_url=https%3A%2F%2Fdanatec.com%2Fthank-you"
1075                method="post"
1076                id="drip-ef-802682065"
1077                class="signup-form">
1078
1079            <div>
1080              <label for="drip-email">Email Address</label>
1081              <input type="email" id="drip-email" name="email"
1082                     placeholder="Email address" value="" required autocomplete="email">
1083            </div>
1084
1085            <div style="display: none;" aria-hidden="true">
1086              <label for="website">Website</label>
1087              <input type="text" id="website" name="website"
1088                     tabindex="-1" autocomplete="off" value="">
1089            </div>
1090
1091            <input type="hidden" name="brand"          value="Danatec">
1092            <input type="hidden" name="brand_danatec"  value="true">
1093            <input type="hidden" name="source"         value="storefront_footer_form">
1094            <input type="hidden" name="consent_status" value="subscribed">
1095            <input type="hidden" name="consent_source" value="danatec_footer_form">
1096            <input type="hidden" name="consent_text"   value="Sign up for Danatec news and course updates.">
1097
1098            <div>
1099              <input type="submit" value="Sign Up" data-drip-attribute="sign-up-button">
1100            </div>
1101          </form>
1102        </div>
1103      </div>
1104    </div>
1105  </div>
1106
1107  <div class="third-section">
1108    <div class="wrap">
1109      <p>Learn more about:</p>
1110      <img src="https://cdn.files.rapidlms.com/view/d3/03/81/d1/9b/54/f9/94/64/72/17/f6/cb/51/68/21/original/WKT_logo_white.png" alt="We Know Training Logo">
1111      <a href="https://weknowtraining.ca">wkt.ca</a>
1112    </div>
1113  </div>
1114</div>
1115
1116</div>
1117
1118</div>
1119<div class="widget html" data-widget-id="32275" data-wow-delay="0s" id="widget-32275">
1120<div class="widget-elements">
1121<div id="footer-scripts" style="width:100%;margin:0;padding:15px;margin-top:-30px;">
1122  
1122<script type="text/javascript">
1123    const IS_ANGULAR = !!document.querySelector('[ng-app]');
1124
1125    function waitForElm(selector) {
1126      return new Promise(resolve => {
1127        if (document.querySelector(selector)) {
1128          return resolve(document.querySelector(selector));
1129        }
1130        const observer = new MutationObserver(mutations => {
1131          if (document.querySelector(selector)) {
1132      resolve(document.querySelector(selector));
1133    observer.disconnect();
1134          }
1135        });
1136    observer.observe(document.body, {
1137      childList: true,
1138    subtree: true
1139        });
1140      });
1141    }
1142
1143    function debounce(func, delay) {
1144      var timeoutId;
1145    return function () {
1146        var args = arguments;
1147    if (timeoutId) {
1148      clearTimeout(timeoutId);
1149        }
1150    timeoutId = setTimeout(function () {
1151      func.apply(null, args);
1152        }, delay);
1153      };
1154    }
1155  </script>
1155
1156
1157  
1157<script type="module">
1158    import 'slick-carousel';
1159    var args = {
1160      prevArrow: '<div class="prev"><span class="label">Prev</span></div>',
1161    nextArrow: '<div class="next"><span class="label">Next</span></div>',
1162    dots: false,
1163    infinite: true,
1164    speed: 300,
1165    slidesToShow: 1,
1166    centerMode: false,
1167    variableWidth: true
1168    };
1169    $('.logos-list').slick(args);
1170    $('.awards-list').slick(args);
1171    $('.testimonials .list').slick({
1172      prevArrow: '<div class="prev"><span class="label">Prev</span></div>',
1173    nextArrow: '<div class="next"><span class="label">Next</span></div>',
1174    dots: true,
1175    });
1176    var signUpText = $('.sign-up-options .learner-content a.toggle-review p').detach();
1177    $('.sign-up-options a.toggle-review').remove();
1178    $('.sign-up-options .learner-content').prepend(signUpText);
1179    $('.sign-up-options .learner-content p, .checkout .learner-content p').not('.bold').html('I need to purchase or have received an Account Activation Code from my employer to take training.');
1180    $('.sign-up-options .tm-content p, .checkout .tm-content p').not('.bold').html('I need to purchase and assign training to people in my organization.');
1181  </script>
1181
1182  
1182<script type="text/javascript">
1183    $('.industries .col').css({
1184      width: "calc(33.33% - 30px)"
1185    });
1186    $('.courses-by-topic .col').css({
1187      width: "calc(33.33% - 30px)"
1188    });
1189    $('.industry-value-add .col').css({
1190      width: "calc(50% - 60px)"
1191    });
1192    $('#section_15554 .widget.feature-product').css({
1193      width: "calc(25% - 30px)"
1194    }).parent().wrap('<div class="products-list" />');
1195    $('.product-discounts table th').first().html('# Licenses');
1196    $('.product-discounts table').after('<p class="disclaimer">For additional information please contact us at 1.800.465.3366.</p>')
1197    $('.product-discounts table').before('<h3 class="title">Bulk Pricing</h3>');
1198  </script>
1198
1199
1200  
1200<script type="text/javascript">
1201    $.get(
1202    'https://api.reviews.io/merchant/reviews?store=danatec-com',
1203    function (response) {
1204        if (typeof response === 'object' && response.hasOwnProperty('stats')) {
1205          var average_rating = response.stats.average_rating;
1206    var star_percentage = (average_rating / 5 * 100) + '%';
1207    var total_reviews = response.stats.total_reviews;
1208    var template = '' +
1209    '<div class="star-rating" style="--star-percent:' + star_percentage + '"></div>' +
1210    '<div class="rating">' +
1211      average_rating + ' Average' + '<span class="pipe">|</span>' + total_reviews + ' Reviews' +
1212      '</div>' +
1213    '<img class="reviewsio-logo" src="https://cdn.files.rapidlms.com/view/d6/20/9a/c2/13/96/28/da/10/44/6a/8a/d0/aa/96/ee/original/reviewsio-logo.svg" alt="REVIEWS.io Logo" width="120" height="19">' +
1214      '';
1215      $('#company-reviews').html(template);
1216          //console.log('The average rating is ' + average_rating + '.');
1217          //console.log('The star rating is ' + starRating + '.');
1218        } else {
1219        console.log('The response does not have the expected format.');
1220        }
1221      }
1222      );
1223  </script>
1223
1224
1225  
1225<script type="text/javascript">
1226    //Social Media Channels
1227    var SocialMedia = function () {
1228      var channels = [{
1229      title: 'LinkedIn',
1230    url: 'https://www.linkedin.com/company/danatec/',
1231    icon: 'fa-linkedin'
1232      },
1233    {
1234      title: 'Facebook',
1235    url: 'https://www.facebook.com/Danatec/',
1236    icon: 'fa-facebook'
1237      },
1238    {
1239      title: 'Instagram',
1240      url: 'https://www.instagram.com/danatec_safety/',
1241      icon: 'fa-instagram'
1242    },
1243    { 
1244      title: 'Youtube',
1245      url: 'https://www.youtube.com/@danatec',
1246      icon: 'fa-youtube'
1247    }
1248  ];
1249
1250    function embedSocialMedia() {
1251        var container = $('.global-nav');
1252    var html = getSocialMediaHTML(channels);
1253    container.prepend(html);
1254      }
1255
1256    function getSocialMediaHTML(channels) {
1257        if (channels.length == 0) {
1258          return;
1259        }
1260    var html = '';
1261    html += '<ul class="social-media">';
1262      for (var i = 0; i < channels.length; i++) {
1263        html += '' +
1264        '<li>' +
1265        '<a href="' + channels[i].url + '" target="_blank">' +
1266        '<span class="icon">' +
1267        '<i class="fa ' + channels[i].icon + '" aria-hidden="true"></i>' +
1268        '</span>' +
1269        '<span class="text">' + channels[i].title + '</span>' +
1270        '</a>' +
1271        '</li>';
1272        }
1273      html += '</ul>';
1274    return html;
1275      }
1276    embedSocialMedia();
1277    };
1278    SocialMedia();
1279  </script>
1279
1280
1281  
1281<script>
1282     /* Change hours to day */
1283    function hoursToDay() {
1284
1285        var course_details_list = document.querySelectorAll('.icon-label-value[label="Course Length:"]');
1286    course_details_list.forEach(function (course_details_list_item) {
1287
1288          var course_length = course_details_list_item.querySelector('span');
1289    var length_content = course_length.textContent;
1290    var text = length_content.trim();
1291    var parts = text.split(" ");
1292    var time = parseInt(parts[0]);
1293    var unit = parts[1];
1294
1295    if (unit === "hours") {
1296            if (time >= 24 && time % 24 === 0) {
1297              var days = time / 24;
1298    var daysText = days === 1 ? " day" : " days";  // Display only days if hours are divisible by 24
1299    // console.log(days + daysText);
1300    course_length.textContent = days + daysText;
1301            } else if (time >= 24 && time % 24 !== 0) {
1302              var days = Math.floor(time / 24);
1303    var remainingHours = time % 24;
1304    var hoursText = remainingHours === 0 ? "" : " " + remainingHours + " hours";
1305    var remainingMinutes = time % 60;
1306    var minutesText = remainingMinutes === 0 ? "" : " " + remainingMinutes + " minutes";
1307    var daysText = days === 1 ? " day" : " days";
1308    // console.log(days + daysText + hoursText);
1309    course_length.textContent = days + daysText + hoursText;
1310            } else if (time < 24 ) {
1311      // console.log(time + " hours");
1312      course_length.textContent = hoursText + minutesText;
1313            }
1314          } else {
1315      // console.log(time + " minutes");
1316      course_length.textContent = time + " minutes";
1317          }
1318        });
1319      }
1320
1321      waitForElm('.container[product-id="8492"] .icon-label-value[label="Course Length:"] span').then(elm => {
1322      hoursToDay();
1323      })
1324  </script>
1324
1325
1326</div>
1327
1328</div>
1329
1330</div>
1331
1332</div>
1333<div class="copyright"><p>Copyright © 2026 Danatec Educational Services All rights reserved · RapidLMS, LearnerVerified, and the LearnerVerified double checkmark logo are trademarks of We Know Training.</p></div>
1334</footer>
1335
1336
1337</div>
1338
1339<style class="inline-css accumulated" data-layer="sections">@layer sections {
1340  #section_15549{color:inherit;background-color:inherit}#section_15549 img.section-background{filter:blur(0px)}#section_15549 .title h2{color:inherit}
1341
1342#section_15569{color:inherit;background-color:inherit}#section_15569 img.section-background{filter:blur(0px)}#section_15569 .title h2{color:inherit}
1343
1344#section_15415{color:inherit;background-color:inherit}#section_15415 img.section-background{filter:blur(0px)}#section_15415 .title h2{color:inherit}
1345
1346
1347}
1348</style><style class="inline-css accumulated" data-layer="widgets">@layer widgets {
1349  
1350
1351
1352
1353
1354}
1355</style>
1356<div class="overlays-container stimulus" data-overlay-target="overlayContainer">
1357<a class="dismiss" data-action="click-&gt;overlay#close">
1358<i aria-hidden="true" class="fa fa-times-circle"></i>
1359</a>
1360<div class="overlay" data-overlay-target="overlay">
1361<div class="overlay-content" data-overlay-target="contentContainer"></div>
1362</div>
1363</div>
1364
1365<script src="https://widget.reviews.io/rating-snippet/dist.js" data-cookie-consent="functionality" type="text/plain"></script>
1365
1366<link rel="stylesheet" href="https://widget.reviews.io/rating-snippet/dist.css" />
1367
1368<!-- REDUXED Scripts -->
1369<script type="text/javascript">
1370  $(document).ready(() => { 
1371    const productContainer = document.querySelector('.container[product-id]');
1372    const revised = document.querySelector('.product-page-revised');
1373    const reduxed = document.querySelector('.product-page-reduxed');
1374    const ratingWrapper = document.querySelector('.product-rating-wrapper');
1375    const heroLeft = document.querySelector('.hero-left');
1376
1377    if (!!reduxed) {
1378      const category = Array.from(reduxed?.classList).pop();
1379      const summaryContainer = document.querySelector('.product-summary-container');
1380      const listContainer = document.querySelector('.product-list-container');
1381      
1382      var summaryHtml, listHtml;
1383      switch (category) {
1384        case 'physical-product':
1385          summaryHtml = '<p>Keep critical information close at hand with our printed books and posters. These invaluable resources can help you learn on your own schedule, and keep information close by whenever you need it.</p>';
1386          listHtml = '<ul class="checkmark"><li>Information at your fingertips</li><li>High-quality printing</li><li>Comprehensive info</li></ul>';
1387          break;
1388        case 'instructor-led-training':
1389          summaryHtml = '<p>Learn from an instructor in real time, and get on-the-spot feedback and immediate answers with our ILT courses. With an instructor-led training course, you\'ll have access to our industry-leading instructors\' extensive real-world experience, and invaluable context about applying what you learn to actual jobsites. Ask questions, get clarity, and go beyond the textbook with ILT courses.</p>';
1390          listHtml = '<ul class="checkmark"><li>Industry-leading instructors</li><li>Real-world experience</li><li>Immediate feedback</li></ul>';
1391          break;
1392        case 'online-training':
1393        case 'blended-training':
1394        default:
1395          summaryHtml = '<p>Get your team the training they need in a convenient online format. This course provides comprehensive, industry-recognized training that will keep your teams safe and your business compliant. All of our courses are designed by industry experts who have decades real-world experience on busy jobsites.</p>';
1396          listHtml = '<ul class="checkmark"><li>Industry-recognized training</li><li>Meets compliance requirements</li><li>Accessible from any device</li></ul>';
1397          break;
1398      }
1399
1400      listContainer.innerHTML = listHtml;
1401      
1402      if (summaryContainer.innerText === '') {  
1403        summaryContainer.innerHTML = summaryHtml;
1404      }
1405
1406      waitForElm('.ruk-rating-snippet-count').then((starRating) => {
1407        starRating.style.color = '#f78c28';
1408        heroLeft.prepend(ratingWrapper);
1409      });
1410    }
1411  });
1412</script>
vendor: 2 bytes, line 1412
1412
1413<script>
1414/*
1415DISABLED
1416document.addEventListener('DOMContentLoaded', () => {
1417  const customHTML = `
1418  <div class="notification-bar">
1419    <strong>Spots still available for our Defensive Driving 3 Demerit Reduction Course on June 10 in Calgary</strong><a href="https://danatec.com/products/11001-defensive-driving-course-3-demerit-reduction-alberta-only-in-person-class">sign up now > </a>
1420  </div>
1421  `;
1422  const pageMains = document.querySelectorAll('.page-main');
1423  pageMains.forEach(mainPage => {
1424    mainPage.insertAdjacentHTML('afterbegin', customHTML);
1425  });
1426});
1427*/
1428</script>
1428
1429
1430
1431
1432<!-- Custom product-list-container content -->
1433<script>
1434  $(document).ready(function () {
1435    const productContainer = document.querySelector('.container[product-id]');
1436    const original = document.querySelector('.product-page-original');
1437
1438    if (productContainer && original) {
1439      const productId = productContainer.getAttribute('product-id');
1440      const productData = {
1441        9284: {
1442          list: `<ul class="checkmark">
1443                  <li>Self-paced learning, expert instruction</li>
1444                  <li>Hands-on, jobsite-tested skills</li>
1445                  <li>Real-time feedback from instructors</li>
1446                </ul>`,
1447        courseLength: '29 hours',
1448        },
1449        // Electrical safety:
1450        7839: {
1451          languages: 'English, French',
1452        },
1453
1454        // TDG Role courses:
1455        8399: {
1456          languages: 'English, French, Punjabi',
1457        },
1458        8402: {
1459          languages: 'English, French, Punjabi',
1460        },
1461        8400: {
1462          languages: 'English, French, Punjabi',
1463        },
1464        8401: {
1465          languages: 'English, French, Punjabi',
1466        },
1467
1468// ###### just add the products here and their required attributes ##########
1469      };
1470      const product = productData[productId];
1471      
1472      const discounts = document.querySelector('.product-discounts');
1473      console.log(discounts);
1474      if (product) {
1475        if (product.list) {
1476          // list container under price
1477          document.querySelector('.product-list-container').innerHTML = product.list;
1478          // document.querySelector('.product-list-container').innerHTML = discounts;
1479      }
1480        if (product.link) {
1481          // custom container under add to cart buttons
1482          document.querySelector('.product-links-container-gtm').innerHTML = product.link;
1483        }
1484        if (product.custom) {
1485          // custom container under product details
1486          document.querySelector('.product-custom-container').innerHTML = product.custom;
1487        }
1488
1489
1490        if (product.courseLength) {
1491          const lengthEl = document.querySelector('.product-features-container .icon-label-value:has(i.fa-clock-o) span');
1492          if (lengthEl) {
1493            lengthEl.textContent = product.courseLength;
1494          }
1495        }
1496
1497        if (product.languages) {
1498          const languages = document.querySelector('.product-features > div:nth-child(3) > .feature-value');
1499          if (languages) {
1500            languages.textContent = product.languages;
1501          }
1502        }
1503      }
1504    }
1505  });
1506</script>
vendor: 1 bytes, line 1506
1506
1507<script src="https://www.termsfeed.com/public/cookie-consent/4.2.0/cookie-consent.js" charset="UTF-8" data-controller="cookie-consent" data-cookie-consent-storefront-name-value="Danatec.com" data-cookie-consent-consent-type-value="express" data-cookie-consent-page-load-consent-levels-value="[&quot;strictly-necessary&quot;]"></script>
1507
1508
1509</body>
1510</html>

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.