(function (win, doc, $, utils) { 'use strict'; win.AnalyticsViews = {}; win.AnalyticsViews.getSubLangType = function () { var subLangType = location.pathname.match(win.suz_LanguagePath); if (subLangType === null) { subLangType = ''; } else { subLangType = subLangType[0].replace('/', ''); } return subLangType; }; win.AnalyticsViews.Utility = {}; win.AnalyticsViews.Utility.Location = (function () { var Location = {}; Location.matchPathname = function (patternList) { var len = patternList.length; var i; var pathname = win.location.pathname; var pattern; var result = false; pathname = pathname.replace(win.suz_LanguagePath, ''); for (i = 0; i < len; i++) { pattern = new RegExp(patternList[i]); if (pattern.test(pathname)) { result = true; break; } } return result; }; Location.getDomain = function () { return win.location.protocol + '//' + win.location.hostname; }; return Location; }()); win.AnalyticsViews.Utility.Form = (function () { var Form = {}; Form.getLabelPrefix = function () { var FormFilter = win.KeyenceForm.FormFilter; var isRootElement = FormFilter.General.checkRootElement(); var prefix = ''; var formType = ''; var formSignInType = ''; if (!isRootElement) { prefix = 'ready-' } else { formType = FormFilter.General.getFormType(); formSignInType = FormFilter.SignIn.getFormType(); if (formType === FormFilter.General.FORM_TYPE.MOBILE_NUMBER) { if (formSignInType === FormFilter.SignIn.FORM_TYPE.ASU) { prefix = 'asu-'; } else { prefix = 'mobile-'; } } else if (formType === FormFilter.General.FORM_TYPE.EMAIL) { if (formSignInType === FormFilter.SignIn.FORM_TYPE.ASU) { prefix = 'asu-'; } else { prefix = 'email-'; } } } return prefix; }; return Form; }()); win.AnalyticsViews.Utility.messageNames = (function () { return { backLink: 'backLink', nextForm: 'nextForm', generalForm: 'generalForm', forwardLink: 'forwardLink', }; }()); win.AnalyticsViews.MultiStepForm = (function () { var Utility = win.AnalyticsViews.Utility; var idNames = { regArea: 'suz_regArea', root: 'js-multiStepForm', backEmail: 'js-regForm-btnBackToEmail', backEmailSignIn: 'js-signinForm-btnBackToEmail', backMobileSignIn: 'js-signinForm-btnBackToMobile', backMobileRegister: 'js-regForm-btnBackToMobile', preForm: 'js-multiStepForm-signinOrRegister', signin: 'js-multiStepForm-signin', registration: 'js-multiStepForm-registration', loginPassword: 'loginPassword', pwdAssistanceLink: 'suz-pwdAssistanceLink', countryNumber: 'checkCountryNumber', showNextButton: 'js-form-btnCheckRegistered', mobileTag: 'js-formFilterGeneral-mobileNumber', emailTag: 'js-formFilterGeneral-email', changeEmail: 'js-formDescriptionFilter-email', sendVerificationEmailButton: 'js-form-btnCheckSendMail', backSignIn: 'js-sendEmail-btnBackToSignin', backAutoSignUp: 'js-sendEmail-btnBackToAutoSignup', forwardRegister: 'js-signinForm-btnForwardToRegister', sendVerificationAutoSignUpEmailButton: 'js-form-btnCheckSendAutoSignupMail', }; var classNames = { btnPrev: 'js-regForm-btnPrevious', btnNext: 'js-regForm-btnNext', formGroup: 'prd-inputGroup', errorText: 'suz_errorMsg', regPanel: 'js-multiStep-target', regFlat: 'is-register-flat', isCurrent: 'is-current', }; var MultiStepForm = function () { this.analytics = new win.KeyenceAnalytics.Form(); this.$rootElement = null; this.observers = { errText: null, }; }; MultiStepForm.prototype.init = function () { var self = this; self.$rootElement = $('#' + idNames.root); if (!self.$rootElement.length) { return; } self.trackInputErrorAll(); self.attachTrackFocus(); self.attachTrackClickInput(); self.attachTrackPrevious(); self.attachTrackNext(); self.attachTrackClickLink(); self.observers.errText = self.attachInputErrorObserver(); self.attachRegFormObserver(function () { if (self.observers.errText) { self.observers.errText.disconnect(); } self.attachInputErrorObserver(); }); }; MultiStepForm.prototype.attachTrackFocus = function () { var self = this; var selector = 'input, select'; var targetIds = [ idNames.countryNumber, ]; var FormSignIn = win.KeyenceForm.FormFilter.SignIn; var prefix = ''; self.$rootElement.on('focus', selector, function () { var element = this; if (element) { // When you click the back link on the auto signup screen, the country number on the login screen is focused, so give it a mobile prefix instead of auto signup prefix. if (element.id === idNames.countryNumber && FormSignIn.getFormType() === FormSignIn.FORM_TYPE.ASU) { prefix = 'mobile-'; } else { prefix = Utility.Form.getLabelPrefix(); } self.analytics.noticeEvent( self.analytics.getEventType('SIGNIN_FOCUS'), element, prefix ); } }); }; MultiStepForm.prototype.attachTrackClickInput = function () { var self = this; var selector = 'button, input'; var targetIds = [ idNames.backEmail, idNames.backEmailSignIn, idNames.backMobileSignIn, idNames.backMobileRegister, idNames.sendVerificationEmailButton, idNames.backSignIn, idNames.backAutoSignUp, idNames.sendVerificationAutoSignUpEmailButton, ]; var backLinkIds = [ idNames.backEmailSignIn, idNames.backMobileSignIn, ]; var showNextIds = [ idNames.showNextButton, ]; var generalIds = [ idNames.mobileTag, idNames.emailTag, idNames.changeEmail, ]; var forwardIds = [ idNames.forwardRegister, ]; targetIds.forEach(function (id) { selector += ', #' + id; }); self.$rootElement.on('click', selector, function () { var element = this; if ((element && self.isVisible(element)) || targetIds.includes(element.id)) { self.analytics.noticeEvent( self.analytics.getEventType('SIGNIN_CLICK'), element, Utility.Form.getLabelPrefix() ); if (backLinkIds.includes(element.id)) { win.postMessage(Utility.messageNames.backLink, Utility.Location.getDomain()); } else if (showNextIds.includes(element.id)) { win.postMessage(Utility.messageNames.nextForm, Utility.Location.getDomain()); } else if (generalIds.includes(element.id)) { win.postMessage(Utility.messageNames.generalForm, Utility.Location.getDomain()); } else if (forwardIds.includes(element.id)) { win.postMessage(Utility.messageNames.forwardLink, Utility.Location.getDomain()); } } }); }; MultiStepForm.prototype.attachTrackClickLink = function () { var self = this; var selector = 'a:not(#' + idNames.pwdAssistanceLink + ')'; self.$rootElement.on('click', selector, function () { var element = this; if (element && !self.isRegisterationPagination(this)) { self.analytics.noticeEvent( self.analytics.getEventType('SIGNIN_CLICK'), element, Utility.Form.getLabelPrefix() ); } }); }; MultiStepForm.prototype.attachTrackPrevious = function () { var self = this; var selector = '.' + classNames.btnPrev; self.$rootElement.on('mousedown keydown touchend', selector, function () { var element = this; if (element) { self.analytics.noticeEvent( self.analytics.getEventType('SIGNIN_CLICK'), element, Utility.Form.getLabelPrefix() ); } }); }; MultiStepForm.prototype.attachTrackNext = function () { var self = this; var selector = '.' + classNames.btnNext; self.$rootElement.on('mousedown keydown touchend', selector, function () { var element = this; if (element) { self.analytics.noticeEvent( self.analytics.getEventType('SIGNIN_CLICK'), element, Utility.Form.getLabelPrefix() ); } }); }; MultiStepForm.prototype.attachRegFormObserver = function (handler) { var obs; if (typeof handler !== 'function') { return null; } obs = new MutationObserver(handler); obs.observe(doc.getElementById(idNames.regArea), { childList: true, }); return obs; }; MultiStepForm.prototype.attachInputErrorObserver = function () { var self = this; var obs; var callback; var selector = '.' + classNames.formGroup + ' .' + classNames.errorText; callback = function (records) { var $target = $(self.getObservationTarget(records)); var $parentElement; if ($target && $target.length) { $parentElement = $target.parents('.' + classNames.formGroup); } if ($parentElement && $parentElement.length) { self.trackInputError($parentElement.get(0)); } }; obs = new MutationObserver(callback); self.$rootElement.find(selector).each(function () { obs.observe(this, { childList: true, }); }); return obs; }; MultiStepForm.prototype.isRegisterationPagination = function (element) { var result = false; if (!element) { return result; } if ( element.classList.contains(classNames.btnNext) || element.classList.contains(classNames.btnPrev) ) { result = true; } return result; }; MultiStepForm.prototype.getObservationTarget = function (records) { var target = null; var $recordItem = null; var editedRecordsArray = []; var i = 0; if (records.length >= 2) { for (i; i < records.length; i++) { $recordItem = $(records[i].target); if ($recordItem.is(':visible')) { editedRecordsArray.push(records[i]); } } records = editedRecordsArray; } if (Array.isArray(records) && (records[0] && records[0].target)) { target = records[0].target; } return target; }; MultiStepForm.prototype.trackInputErrorAll = function () { var self = this; var $formGroups = this.$rootElement.find('.' + classNames.formGroup); if ($formGroups.length) { $formGroups.each(function () { self.trackInputError(this); }); } }; MultiStepForm.prototype.trackInputError = function (formGroupElement) { var self = this; var $formGroup; var $errorText; var $targetElement; var element; var inputSelector = 'input, select'; if (!formGroupElement) { return; } $formGroup = $(formGroupElement); $errorText = $formGroup.find('.' + classNames.errorText); if ($errorText.is(':visible') && $errorText.text().length) { $targetElement = $formGroup.find('#' + idNames.loginPassword); if (!$targetElement.length) { $targetElement = $formGroup.find(inputSelector); } } if ($targetElement && $targetElement.length) { element = $targetElement.get(0); if (element) { self.analytics.noticeEvent( self.analytics.getEventType('SIGNIN_ERROR'), element, Utility.Form.getLabelPrefix() ); } } }; MultiStepForm.prototype.isRegisterElement = function (element) { var $element = $(element); if ($element.length && $element.parents('.' + classNames.regPanel).length) { return true; } return false; }; MultiStepForm.prototype.isVisible = function (element) { var $element = $(element); var $regPanel; var result; if (!$element || !$element.length) { return false; } if (this.isRegisterElement($element)) { $regPanel = $element.parents('.' + classNames.regPanel); if ($('#' + idNames.registration).hasClass(classNames.regFlat)) { result = true; } else { if ($regPanel.hasClass(classNames.isCurrent)) { result = true; } else { result = false; } } return result; } return $element.is(':visible'); }; return MultiStepForm; }()); win.AnalyticsViews.PasswordAssistance = (function () { var Utility = win.AnalyticsViews.Utility; var idNames = { emailAddress: 'js-reset-EmailAddress', sendEmail: 'js-reset-sendMail', histBackPwd: 'js-reset-histBackPwd', pwd: 'js-reset-Pwd', editPwd: 'js-reset-editPwd', mobileNumber: 'remindMobileNumber', verificationCode: 'remindVerificationCode', showPassword: 'resetPassword-showPassword', mobileTag: 'js-formFilterGeneral-mobileNumber', emailTag: 'js-formFilterGeneral-email', getVerificationCode: 'remindVerificationCode-getCode', }; var classNames = { isError: 'is-error', formGroup: 'prd-inputGroup', errorText: 'suz_errorMsg', }; var names = { passwordAssistanceActionForm: 'user_passwordAssistanceActionForm', passwordAssistanceResetActionForm: 'user_passwordAssistance_resetPasswordActionForm', }; var PasswordAssistance = function () { this.analytics = new win.KeyenceAnalytics.Form(); this.urlPatternList = [ /^\/user\/passwordAssistance\//, /^\/user\/passwordAssistance\/resetPassword\//, ]; this.$form = null; }; PasswordAssistance.prototype.init = function () { var self = this; self.$form = $('form[name="' + names.passwordAssistanceActionForm + '"]'); self.$resetForm = $('form[name="' + names.passwordAssistanceResetActionForm + '"]'); if (!this.canStartTracking()) { return; } self.trackInputErrorAll(); self.attachTrackFocusEvent(); self.attachTrackClickEvent(); self.attachInputErrorObserver(); }; PasswordAssistance.prototype.canStartTracking = function () { var len = this.urlPatternList.length; var i; var pathname = win.location.pathname; var pattern; var result = false; for (i = 0; i < len; i++) { pattern = new RegExp(this.urlPatternList[i]); if (pattern.test(pathname)) { result = true; break; } } return result; }; PasswordAssistance.prototype.attachTrackFocusEvent = function () { var self = this; var selector = [ '#' + idNames.emailAddress, '#' + idNames.pwd, '#' + idNames.mobileNumber, '#' + idNames.verificationCode, ].join(', '); var elements = document.querySelectorAll(selector); Array.prototype.forEach.call(elements, function (elm) { elm.addEventListener('focus', function () { self.analytics.noticeEvent( self.analytics.getEventType('RESET_FOCUS'), elm, Utility.Form.getLabelPrefix() ); }); }); }; PasswordAssistance.prototype.attachTrackClickEvent = function () { var self = this; var selector = [ '#' + idNames.sendEmail, '#' + idNames.histBackPwd, '#' + idNames.editPwd, '#' + idNames.showPassword, '#' + idNames.mobileTag, '#' + idNames.emailTag, '#' + idNames.getVerificationCode, ].join(', '); var elements = document.querySelectorAll(selector); var generalIds = [ idNames.mobileTag, idNames.emailTag, ]; Array.prototype.forEach.call(elements, function (elm) { elm.addEventListener('click', function () { self.analytics.noticeEvent( self.analytics.getEventType('RESET_CLICK'), elm, Utility.Form.getLabelPrefix() ); if (generalIds.includes(elm.id)) { win.postMessage(Utility.messageNames.generalForm, Utility.Location.getDomain()); } }); }); }; PasswordAssistance.prototype.attachRegFormObserver = function (handler) { var obs; if (typeof handler !== 'function') { return null; } obs = new MutationObserver(handler); obs.observe(this.$form.get(0), { childList: true, }); return obs; }; PasswordAssistance.prototype.attachInputErrorObserver = function () { var self = this; var obs; var callback; var selector = '.' + classNames.formGroup + ' .' + classNames.errorText; callback = function (records) { var $target = $(self.getObservationTarget(records)); var $parentElement; if ($target && $target.length) { $parentElement = $target.parents('.' + classNames.formGroup); } if ($parentElement && $parentElement.length) { self.trackInputError($parentElement.get(0)); } }; obs = new MutationObserver(callback); self.$form.find(selector).each(function () { obs.observe(this, { childList: true, }); }); return obs; }; PasswordAssistance.prototype.getObservationTarget = function (records) { var target = null; if (Array.isArray(records) && (records[0] && records[0].target)) { target = records[0].target; } return target; }; PasswordAssistance.prototype.trackInputErrorAll = function () { var self = this; var $formGroups = this.$form.find('.' + classNames.formGroup); if ($formGroups.length) { $formGroups.each(function () { self.trackInputError(this); }); } }; PasswordAssistance.prototype.trackInputErrorAll = function () { var self = this; var $formGroups = this.$form.find('.' + classNames.formGroup); var $resetFormGroups = this.$resetForm.find('.' + classNames.formGroup); if ($formGroups.length) { $formGroups.each(function () { self.trackInputError(this); }); } else if ($resetFormGroups.length) { $resetFormGroups.each(function () { self.trackInputError(this); }); } }; PasswordAssistance.prototype.trackInputError = function (formGroupElement) { var self = this; var $formGroup; var $errorText; var $targetElement; var element; var inputSelector = 'input, select'; if (!formGroupElement) { return; } $formGroup = $(formGroupElement); $errorText = $formGroup.find('.' + classNames.errorText); if ($errorText.is(':visible') && $errorText.text().length) { $targetElement = $formGroup.find(inputSelector); } if ($targetElement && $targetElement.length) { element = $targetElement.get(0); if (element) { self.analytics.noticeEvent( self.analytics.getEventType('RESET_ERROR'), element, Utility.Form.getLabelPrefix() ); } } }; return PasswordAssistance; }()); win.AnalyticsViews.GroupTypeNavi = (function () { var classNames = { listGroup: 'prd-categoryNavigation-parentList', linkGroup: 'prd-categoryNavigation-parentLink', listType: 'prd-categoryNavigation-childList', linkType: 'prd-inlineLink', }; var GroupTypeNavi = function () { this.analytics = new win.KeyenceAnalytics.Analytics(); this.urlPatternList = [ /^\/products\/[a-zA-Z0-9-_]+\/$/, /^\/products\/[a-zA-Z0-9-_]+\/[a-zA-Z0-9-_]+\/$/, ]; }; GroupTypeNavi.prototype.init = function () { if (!this.canStartTracking()) { return; } this.initLinkClassNames(); this.attachTrackClickNav(); this.attachTrackClickChildNav(); }; GroupTypeNavi.prototype.initLinkClassNames = function () { var subLangType = win.AnalyticsViews.getSubLangType(); if (subLangType.length) { classNames.linkGroup = classNames.linkGroup + '[href^="/' + subLangType + '/product"]'; classNames.linkType = classNames.linkType + '[href^="/' + subLangType + '/product"]'; } else { classNames.linkGroup += '[href^="/product"]'; classNames.linkType += '[href^="/product"]'; } }; GroupTypeNavi.prototype.canStartTracking = function () { var len = this.urlPatternList.length; var i; var pathname = win.location.pathname; var pattern; var result = false; pathname = pathname.replace(win.suz_LanguagePath, ''); for (i = 0; i < len; i++) { pattern = new RegExp(this.urlPatternList[i]); if (pattern.test(pathname)) { result = true; break; } } return result; }; GroupTypeNavi.prototype.attachTrackClickNav = function () { var self = this; var selector = [ '.' + classNames.listGroup + ' .' + classNames.linkGroup, ].join(', '); var groupNavLinkList = document.querySelectorAll(selector); Array.prototype.forEach.call(groupNavLinkList, function (navLink) { navLink.addEventListener('click', function () { self.analytics.noticeEvent( win.KeyenceAnalytics.GroupTypeLeftNavi.name, win.KeyenceAnalytics.GeneralMeasure.EVENT_TYPES.CLICK, navLink ); }); }); }; GroupTypeNavi.prototype.attachTrackClickChildNav = function () { var self = this; var selector = [ '.' + classNames.listType + '> li .' + classNames.linkType, ].join(', '); var typeNavLinkList = document.querySelectorAll(selector); Array.prototype.forEach.call(typeNavLinkList, function (typeLink) { typeLink.addEventListener('click', function () { self.analytics.noticeEvent( win.KeyenceAnalytics.GroupTypeLeftNavi.name, win.KeyenceAnalytics.GeneralMeasure.EVENT_TYPES.CLICK, typeLink ); }); }); }; return GroupTypeNavi; }()); win.AnalyticsViews.DownloadFilter = (function () { var Utility = win.AnalyticsViews.Utility; var idNames = { modelsList: 'js-setModelsList', fileTypesList: 'js-filterFileTypes', }; var classList = { modelsListChild: 'js-setModelsList-child', modelsCheckbox: 'js-setModelsList-checkbox', modelsListLabel: 'js-setModelsList-label', }; var DownloadFilter = function () { this.analytics = new win.KeyenceAnalytics.Analytics(); this.urlPatternList = [ /^\/products\/[a-zA-Z0-9-_]+\/[a-zA-Z0-9-_]+\/[a-zA-Z0-9-_]+\/downloads\/$/, /^\/downloads\/$/, ]; }; DownloadFilter.prototype.init = function () { if (!Utility.Location.matchPathname(this.urlPatternList)) { return; } this.attachTrackAddModels(); this.attachTrackAddFileTypes(); }; DownloadFilter.prototype.attachTrackAddModels = function () { var self = this; doc.addEventListener('click', function (event) { var targetElement = event.target; if (targetElement && targetElement.classList.contains(classList.modelsCheckbox)) { self.analytics.noticeEvent( win.KeyenceAnalytics.DownloadFilter.name, win.KeyenceAnalytics.DownloadFilter.EVENT_TYPES.CLICK_MODELS, targetElement ); } }); }; DownloadFilter.prototype.attachTrackAddFileTypes = function () { var self = this; var selector = [ '#' + idNames.fileTypesList + ' label input[type="checkbox"]', ].join(', '); var elements = document.querySelectorAll(selector); Array.prototype.forEach.call(elements, function (checkbox) { checkbox.addEventListener('click', function () { self.analytics.noticeEvent( win.KeyenceAnalytics.DownloadFilter.name, win.KeyenceAnalytics.DownloadFilter.EVENT_TYPES.CLICK_FILE_TYPES, checkbox ); }); }); }; return DownloadFilter; }()); win.AnalyticsViews.CTABanner = (function () { var CTABanner = function () { this.analytics = new win.KeyenceAnalytics.Analytics(); }; CTABanner.prototype.init = function () { var self = this; win.addEventListener('message', function (event) { self.attachTrackShow(event); self.attachTrackClickLink(event); self.attachTrackClickClose(event); }); }; CTABanner.prototype.attachTrackShow = function (event) { var self = this; var eventType = ''; if (event.data.schema === 'image') { eventType = win.KeyenceAnalytics.CTABanner.EVENT_TYPES.SHOW_IMAGE_SCHEMA; } if (event.data.schema === 'video') { eventType = win.KeyenceAnalytics.CTABanner.EVENT_TYPES.SHOW_MOVIE_SCHEMA; } self.analytics.noticeEvent( win.KeyenceAnalytics.CTABanner.name, eventType, doc.body ); }; CTABanner.prototype.attachTrackClickLink = function (event) { var self = this; var selector = [ '[data-cta-measure]', ].join(', '); var links = doc.querySelectorAll(selector); var eventType = ''; Array.prototype.forEach.call(links, function (link) { link.addEventListener('click', function () { if (event.data.schema === 'image') { eventType = win.KeyenceAnalytics.CTABanner.EVENT_TYPES.CLICK_IMAGE_SCHEMA_LINK; } if (event.data.schema === 'video') { eventType = win.KeyenceAnalytics.CTABanner.EVENT_TYPES.CLICK_MOVIE_SCHEMA_LINK; } self.analytics.noticeEvent( win.KeyenceAnalytics.CTABanner.name, eventType, link ); }); }); }; CTABanner.prototype.attachTrackClickClose = function (event) { var self = this; var selector = [ '#js-ctaBanner-closeButton', ].join(', '); var closeTriggers = doc.querySelectorAll(selector); var eventType = ''; Array.prototype.forEach.call(closeTriggers, function (trigger) { trigger.addEventListener('click', function () { if (event.data.schema === 'image') { eventType = win.KeyenceAnalytics.CTABanner.EVENT_TYPES.CLICK_IMAGE_SCHEMA_CLOSE; } if (event.data.schema === 'video') { eventType = win.KeyenceAnalytics.CTABanner.EVENT_TYPES.CLICK_MOVIE_SCHEMA_CLOSE; } self.analytics.noticeEvent( win.KeyenceAnalytics.CTABanner.name, eventType, doc.body ); }); }); }; return CTABanner; }()); win.AnalyticsViews.SideCTA = (function () { var classNames = { link: 'js-menuConversion-link', removeButton: 'js-menuConversion-removeButton' }; var SideCTA = function () { this.analytics = new win.KeyenceAnalytics.Analytics(); }; SideCTA.prototype.init = function () { this.attachTrackClickSideCTALink(); this.attachTrackClickSideCTARemoveButton(); }; SideCTA.prototype.attachTrackClickSideCTALink = function () { var self = this; var $doc = $(doc); $doc.on('click', '.' + classNames.link, function () { var element = this; if (element) { self.analytics.noticeEvent( win.KeyenceAnalytics.SideCTA.name, win.KeyenceAnalytics.SideCTA.EVENT_TYPES.CLICK_LINK, element ); } }); }; SideCTA.prototype.attachTrackClickSideCTARemoveButton = function () { var self = this; var $doc = $(doc); $doc.on('click', '.' + classNames.removeButton, function () { var element = this; if (element) { self.analytics.noticeEvent( win.KeyenceAnalytics.SideCTA.name, win.KeyenceAnalytics.SideCTA.EVENT_TYPES.CLICK_REMOVE_BUTTON, element ); } }); }; return SideCTA; }()); win.AnalyticsViews.MykDeqwasModal = (function () { var MykDeqwasModal = function () { this.analytics = new win.KeyenceAnalytics.Analytics(); }; MykDeqwasModal.prototype.init = function () { var self = this; win.addEventListener('message', function (event) { self.attachTrackShow(event); self.attachTrackClose(event); }); }; MykDeqwasModal.prototype.attachTrackShow = function (event) { var self = this; var eventType = ''; if (event.data.myKDeqwasModalState === win.KeyenceAnalytics.MykDeqwasModal.EVENT_TYPES.SHOW) { eventType = win.KeyenceAnalytics.MykDeqwasModal.EVENT_TYPES.SHOW; self.attachTrackClickAssetLink(); } if (eventType) { self.analytics.noticeEvent( win.KeyenceAnalytics.MykDeqwasModal.name, eventType, doc.body ); } }; MykDeqwasModal.prototype.attachTrackClose = function (event) { var self = this; var eventType = ''; if (event.data.myKDeqwasModalState === win.KeyenceAnalytics.MykDeqwasModal.EVENT_TYPES.CLOSE) { eventType = win.KeyenceAnalytics.MykDeqwasModal.EVENT_TYPES.CLOSE; } if (eventType) { self.analytics.noticeEvent( win.KeyenceAnalytics.MykDeqwasModal.name, eventType, doc.body ); } }; MykDeqwasModal.prototype.attachTrackClickAssetLink = function () { var self = this; var assetLinks = doc.querySelectorAll('.js-myKeyenceModalRecommend-assetLink'); if (assetLinks.length) { assetLinks.forEach((assetLink) => { assetLink.addEventListener('click', function () { var element = this; self.analytics.noticeEvent( win.KeyenceAnalytics.MykDeqwasModal.name, win.KeyenceAnalytics.MykDeqwasModal.EVENT_TYPES.CLICK_ASSET_LINK, element ); }); }); }; }; return MykDeqwasModal; }()); win.AnalyticsViews.MykOneMorePRBanner = (function () { var MykOneMorePRBanner = function () { this.analytics = new win.KeyenceAnalytics.Analytics(); }; MykOneMorePRBanner.prototype.init = function () { var self = this; win.addEventListener('message', function (event) { self.attachTrackShow(event); }); }; MykOneMorePRBanner.prototype.attachTrackShow = function (event) { var self = this; var eventType = ''; var video = null; if (event.data.mykOneMorePRBannerState === win.KeyenceAnalytics.MykOneMorePRBanner.EVENT_TYPES.SHOW) { eventType = win.KeyenceAnalytics.MykOneMorePRBanner.EVENT_TYPES.SHOW; self.attachTrackClickLink(); } if (eventType) { video = doc.querySelector('.js-myKeyenceOneMorePR-video'); if (video) { self.analytics.noticeEvent( win.KeyenceAnalytics.MykOneMorePRBanner.name, eventType, video ); } } }; MykOneMorePRBanner.prototype.attachTrackClickLink = function () { var self = this; var link = doc.querySelector('.js-myKeyenceOneMorePR-link'); if (link) { link.addEventListener('click', function () { var element = this; self.analytics.noticeEvent( win.KeyenceAnalytics.MykOneMorePRBanner.name, win.KeyenceAnalytics.MykOneMorePRBanner.EVENT_TYPES.CLICK, element ); }); } }; return MykOneMorePRBanner; }()); win.AnalyticsViews.init = function () { if (win.KeyenceAnalytics) { new win.AnalyticsViews.MultiStepForm().init(); new win.AnalyticsViews.PasswordAssistance().init(); new win.AnalyticsViews.GroupTypeNavi().init(); new win.AnalyticsViews.DownloadFilter().init(); new win.AnalyticsViews.CTABanner().init(); new win.AnalyticsViews.SideCTA().init(); new win.AnalyticsViews.MykDeqwasModal().init(); new win.AnalyticsViews.MykOneMorePRBanner().init(); } }; doc.addEventListener('DOMContentLoaded', () => { if (win.analyticsViewsComplete === true) { return; } win.AnalyticsViews.init(); win.analyticsViewsComplete = true; }); }(window, document, this.jQuery, { closest: function (nodeArg, selector) { 'use strict'; var node = nodeArg; return (node.closest || function (_selector) { do { if ((node.matches || node.msMatchesSelector).call(node, _selector)) { return node; } node = node.parentElement || node.parentNode; } while (node !== null && node.nodeType === 1); return null; }).call(node, selector); }, }));