{"version":3,"file":"gtmtracking-07c311c1.js","names":["define","Moduler","create","defaults","debugMode","init","self","this","document","querySelectorAll","forEach","link","i","path","pathname","toLowerCase","ext","indexOf","length","addEventListener","e","track","splitPath","pop","err","handleError","pathParts","href","innerText","window","location","form","target","elements","checked","querySelector","referrer","shareLink","buttonLink","buttonType","classList","contains","genericLink","host","action","closest","$$epiforms","on","title","officeMapLink","officeDirectionLink","detail","event","id","value","error","console","debug","replace","split","trackData","data","options","log","dataLayer","push","category","label","eventCategory","eventAction","eventLabel","eventValue"],"sources":["gtmtracking.js"],"mappings":"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","sourcesContent":["define(['moduler'], function (Moduler) {\r\n 'use strict';\r\n\r\n // google tag manager tracking\r\n\r\n return Moduler.create({\r\n defaults: {\r\n debugMode: false\r\n },\r\n\r\n\t\tinit: function () {\r\n var self = this;\r\n\r\n document.querySelectorAll('a').forEach(function (link, i) {\r\n var path = link.pathname.toLowerCase();\r\n\r\n // #1. PDF/PNG Downloads\r\n var ext = path.indexOf('.pdf') == path.length - 4 ? 'PDF' : path.indexOf('.png') == path.length - 4 ? 'PNG' : null;\r\n if (ext != null) {\r\n link.addEventListener('click', function (e) {\r\n try {\r\n self.track('Download', ext, self.splitPath(path).pop());\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n });\r\n }\r\n\r\n // #2. contact us links (/xx/contact/)\r\n var contactUrls = ['contact', 'kontakt', 'contactez-nous', 'contatti', 'bize-ulasin', 'contacto', 'contato'];\r\n var pathParts = self.splitPath(path);\r\n if (link.href.indexOf('#') == -1 && pathParts.length > 1 && contactUrls.indexOf(pathParts[1]) > -1) {\r\n link.addEventListener('click', function (e) {\r\n try {\r\n self.track('Contact Button', 'Contact', link.innerText);\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n });\r\n }\r\n });\r\n\r\n document.querySelectorAll('.js-contactPage a').forEach(function (link, i) {\r\n // #3. telephone clicks\r\n if (link.href.toLowerCase().indexOf('tel:') == 0) {\r\n link.addEventListener('click', function (e) {\r\n try {\r\n self.track('Telephone Contact', window.location.pathname);\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n });\r\n }\r\n // #4. email clicks\r\n if (link.href.toLowerCase().indexOf('mailto:') == 0) {\r\n link.addEventListener('click', function (e) {\r\n try {\r\n self.track('Email Contact', window.location.pathname);\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n });\r\n }\r\n });\r\n\r\n document.querySelectorAll('form.js-newsSubscribeForm').forEach(function (form, i) {\r\n form.addEventListener('submit', function (e) {\r\n try {\r\n // #16. Subscribe to our newsfeed (cision news)\r\n if (e.target.elements[\"SubscribeCisionNews\"] && e.target.elements[\"SubscribeCisionNews\"].checked) {\r\n self.track('Subscription', 'Press & News');\r\n }\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n });\r\n });\r\n\r\n // #6. 404 error page\r\n if (document.querySelector('.js-notFoundPage')) {\r\n try {\r\n self.track('404 Error', window.location.pathname, document.referrer);\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n }\r\n\r\n // #7. share buttons\r\n document.querySelectorAll('a.Share-link').forEach(function (shareLink, i) {\r\n shareLink.addEventListener('click', function (e) {\r\n try {\r\n self.track('Share buttons', window.location.pathname, shareLink.href);\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n });\r\n });\r\n\r\n document.querySelectorAll('a.Button').forEach(function (buttonLink, i) {\r\n buttonLink.addEventListener('click', function (e) {\r\n try {\r\n if (buttonLink.href.indexOf('#') > -1) {\r\n // #8. anchor click\r\n self.track('Anchor click', buttonLink.innerText, buttonLink.href);\r\n }\r\n // #9. button click\r\n var buttonType = buttonLink.classList.contains('Button--bordered') ? 'Outlined' : 'Solid';\r\n self.track('Button click', buttonType, buttonLink.innerText);\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n });\r\n });\r\n\r\n document.querySelectorAll('a:not(.Button)').forEach(function (genericLink, i) {\r\n if (genericLink.href.indexOf('#') != genericLink.href.length - 1) {\r\n genericLink.addEventListener('click', function (e) {\r\n try {\r\n if (window.location.host == genericLink.host) {\r\n // #10. internal link click\r\n self.track('Text Link', genericLink.innerText, genericLink.href);\r\n } else {\r\n // #11. outbound link click\r\n var action = genericLink.closest('footer') ? 'Footer' : 'Not in footer';\r\n self.track('Outbound Link', action, genericLink.href);\r\n }\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n });\r\n }\r\n });\r\n\r\n // #12. contact form submitted, custom logic as form.submit event is not triggered for epiforms\r\n if (typeof $$epiforms !== 'undefined') {\r\n //$$epiforms(document).ready(function () {\r\n $$epiforms('.EPiServerForms').on('formsSubmitted', function (e) {\r\n try {\r\n self.track('Form Submit', document.title, window.location.href);\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n });\r\n //});\r\n }\r\n\r\n // #13. Google Maps - Window Interactions\r\n document.querySelectorAll('.OfficeList-map a').forEach(function (officeMapLink, i) {\r\n officeMapLink.addEventListener('click', function (e) {\r\n try {\r\n self.track('Google Maps', 'Window Interaction');\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n });\r\n });\r\n\r\n // #14. Google Maps - Get Directions\r\n document.querySelectorAll('.js-officeDirection').forEach(function (officeDirectionLink, i) {\r\n officeDirectionLink.addEventListener('click', function (e) {\r\n try {\r\n self.track('Google Maps', 'Get Directions Click');\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n });\r\n });\r\n\r\n // #15 wistia video events\r\n document.addEventListener('getinge-wistia', function (e) {\r\n try {\r\n if (e.detail.event == 'percentwatchedchanged') {\r\n self.track('Wistia Video', 'Percent Watched', e.detail.id, e.detail.value);\r\n } else if (e.detail.event == 'play') {\r\n self.track('Wistia Video', 'Play', e.detail.id);\r\n }\r\n } catch (err) {\r\n self.handleError(err);\r\n }\r\n });\r\n },\r\n\r\n handleError: function (error) {\r\n console.debug('gtm tracking error: ' + error);\r\n },\r\n\r\n splitPath: function (path) {\r\n return path.replace(/^\\/+/, '').replace(/\\/+$/, '').split('/');\r\n },\r\n\r\n trackData: function (data) {\r\n var self = this;\r\n if (self.options.debugMode) {\r\n console.log(data);\r\n } else {\r\n console.debug(data);\r\n dataLayer.push(data);\r\n }\r\n },\r\n\r\n track: function (category, action, label, value) {\r\n var self = this;\r\n self.trackData({\r\n 'eventCategory': category,\r\n 'eventAction': action,\r\n 'eventLabel': label,\r\n 'eventValue': value,\r\n 'event': 'GAEvent'\r\n });\r\n }\r\n });\r\n});"]}