(function (win, doc, util) { 'use strict'; var GLOBAL; var KEYENCE_SEARCH = {}; var K_S = KEYENCE_SEARCH; K_S.init = function () { var self = this; GLOBAL = { SITE_LANG: win.kpi_languageSettings.siteLang, MANUAL_LANG: win.kpi_languageSettings.manualLang ? win.kpi_languageSettings.manualLang : win.kpi_languageSettings.siteLang, SELECT_LANG: win.kpi_languageSettings.lang, SELECT_LANG1: win.kpi_languageSettings.lang1, SELECT_LANG2: win.kpi_languageSettings.lang2, SELECT_FILE_TYPE: win.kpi_fileTypeSettings, ORIGINAL_DOMAIN: win.kpi_originalDomain, TRANSLATION: win.kpi_translation, ASSET_TYPE_ID: win.kpi_assetTypeId ? win.kpi_assetTypeId : '', CURRENT_SERIESE_ID: win.kpi_currentSeriesId ? win.kpi_currentSeriesId : '', WEB_PRODUCT_ID: win.kpi_webProductId ? win.kpi_webProductId : '', }; self.PREFIX = { COOKIE: encodeURIComponent(GLOBAL.ORIGINAL_DOMAIN.split('www.keyence.')[1]), }; self.CONFIG = { SMALL_SCREEN_MQ: win.matchMedia('only screen and (max-width: 768px)'), LARGE_SCREEN_MQ: win.matchMedia('only screen and (max-width: 969px)'), FOCUSABLE: 'a, area, [tabindex], input, button, select, option, textarea, output, summary, video, audio, object, embed', ONE_TIME_DATA_LOAD_MAX_NUM: 12, ONE_TIME_DISPLAY_MAX_NUM: 12, HISTORY_MAX_SAVED_NUM: 5, HIDDEN_ATTR: 'IsHidden', SHOW_ATTR: 'IsShow', OPEN_ATTR: 'IsOpen', LOAD_ATTR: 'IsLoad', ACTIVE_ATTR: 'IsActive', CHECKED_ATTR: 'IsChecked', NORESULT_ATTR: 'IsNoResult', SUGGEST_SHOW_ATTR: 'is-suggest-show', SELECT_LANG_COOKIE_NAME: 'kpi_has_selectLang_' + self.PREFIX.COOKIE, SELECT_MANUAL_LANG_COOKIE_NAME: 'kpi_has_selectLang_' + self.PREFIX.COOKIE + '_ma', SELECT_FILE_COOKIE_NAME: 'kpi_has_selectFile_' + self.PREFIX.COOKIE, SELECT_CATEGORY_COOKIE_NAME: 'kpi_has_selectCategory_' + self.PREFIX.COOKIE, HISTORY_COOKIE_NAME: 'kpi_has_searchHistory_' + self.PREFIX.COOKIE, DISCONTINUED_COOKIE_NAME: 'kpi_has_discontinued_' + self.PREFIX.COOKIE, VIEW_COOKIE_NAME: 'kpi_has_view_' + self.PREFIX.COOKIE, }; self.API_PATH = { PAGE: GLOBAL.ORIGINAL_DOMAIN + '/ajax/search/content/?', ASSET: GLOBAL.ORIGINAL_DOMAIN + '/ajax/search/asset/?', PRODUCT: GLOBAL.ORIGINAL_DOMAIN + '/ajax/search/product/?', CATEGORY: GLOBAL.ORIGINAL_DOMAIN + '/ajax/search/category/?', DATA_SHEET: GLOBAL.ORIGINAL_DOMAIN + '/ajax/search/datasheet/?', SUGGEST_SERIES: GLOBAL.ORIGINAL_DOMAIN + '/ajax/suggest/product_series/?', SUGGEST_MODEL: GLOBAL.ORIGINAL_DOMAIN + '/ajax/suggest/product_model/?', SUGGEST_PAGE: GLOBAL.ORIGINAL_DOMAIN + '/ajax/suggest/keyword/?', SUGGEST_ASSET: GLOBAL.ORIGINAL_DOMAIN + '/ajax/suggest/asset/?', PRODUCT_COMPLETE_MATCH: GLOBAL.ORIGINAL_DOMAIN + '/ajax/search/perfect_match_product/?', DID_YOU_MEAN_MODEL: GLOBAL.ORIGINAL_DOMAIN + '/ajax/didyoumean/product_model?', }; self.getElem = { docElement: doc.documentElement ? doc.documentElement : doc.body, loadMoreBtn: doc.getElementById('JSLoadMoreBtn') ? doc.getElementById('JSLoadMoreBtn') : doc.getElementById('js-loadMoreResults-button'), loadMoreBtnWrap: doc.getElementById('JSSearchMoreBtnWrapper') ? doc.getElementById('JSSearchMoreBtnWrapper') : doc.getElementById('js-loadMoreResults'), loadMoreBtnLabel: doc.getElementById('js-loadMoreResults-label'), searchPageList: doc.getElementById('JSSearchPageList') ? doc.getElementById('JSSearchPageList') : doc.getElementById('js-loadPageList'), searchPageListTemplate: doc.getElementById('JSSearchPageListTemplate'), searchDL: doc.getElementById('JSSearchDownloadList') ? doc.getElementById('JSSearchDownloadList') : doc.getElementById('js-loadAssets'), searchDLCA: doc.getElementById('JSSearchDownloadListCA'), searchDLTG: doc.getElementById('JSSearchDownloadListTG'), searchDLSo: doc.getElementById('js-loadSoAssets'), searchDLCd: doc.getElementById('js-loadCdAssets'), searchDLMa: doc.getElementById('js-loadMaAssets'), searchDLCa: doc.getElementById('js-loadCaAssets'), searchDLTemplate: doc.getElementById('JSSearchDownloadListTemplate'), searchDLSoTemplate: doc.getElementById('JSSearchDownloadSoListTemplate'), searchDLCdTemplate: doc.getElementById('JSSearchDownloadCdListTemplate'), searchDataSheetList: doc.getElementById('js-loadDataSheets'), searchDataSheetListTemplate: doc.getElementById('JSSearchDataSheetListTemplate'), searchSeriesList: doc.getElementById('JSSearchSeriesList'), searchSeriesListTemplate: doc.getElementById('JSSearchSeriesListTemplate'), searchModelList: doc.getElementById('JSSearchModelList'), searchProbablyModelList: doc.getElementById('JSSearchProbablyModelList'), searchModelListTemplate: doc.getElementById('JSSearchModelListTemplate'), searchKISeriesListTemplate: doc.getElementById('JSSearchKISeriesListTemplate'), searchHistoryTemplate: doc.getElementById('JSSearchHistoryTemplate'), suggestKeywordsTemplate: doc.getElementById('JSSuggestKeywordsTemplate'), suggestSeriesTemplate: doc.getElementById('JSSuggestSeriesTemplate'), suggestModelTemplate: doc.getElementById('JSSuggestModelTemplate'), suggestAssetTemplate: doc.getElementById('JSSuggestAssetTemplate'), modelsListTemplate: doc.getElementById('JSModelsListTemplate'), selectedModelsTemplate: doc.getElementById('JSSelectedModelsTemplate'), loadResultsNav: doc.getElementById('js-loadResults-navigation'), changeView: doc.getElementById('JSChangeView'), selectTypes: doc.getElementById('JSSelectTypes'), langSelectWrap: doc.getElementById('js-selectAssetslanguage'), filterModels: doc.getElementById('js-filterModels'), filterModelsBtn: doc.getElementById('js-filterModels-button'), selectModels: doc.getElementById('js-selectModels'), ModelsList: doc.getElementById('js-setModelsList'), filterFileTypes: doc.getElementById('js-filterFileTypes'), filterCategories: doc.getElementById('js-filterCategories'), selectTypesHook: doc.getElementById('JSSelectTypesHook'), selectTypesPulldown: doc.getElementById('JSSelectTypesPulldown'), selectTypesLabel: doc.getElementById('JSSelectTypesLabel'), selectTypesLength: doc.getElementById('JSSelectTypesLength'), selectTypesBox: doc.getElementById('JSSelectTypesBox'), selectTypesBtn: doc.getElementById('JSSelectTypesBtn'), langSelectOpener: doc.getElementById('js-selectAssetslanguage-opener'), langList: doc.getElementById('JSLangList') ? doc.getElementById('JSLangList') : doc.getElementById('js-selectAssetslanguage-list'), allLangTemp: doc.getElementById('JSAllLangTemplate'), lang1Temp: doc.getElementById('JSLang1Template'), lang2Temp: doc.getElementById('JSLang2Template'), discontinuedToggle: doc.getElementById('JSDiscontinuedToggle'), drillDownNav: doc.getElementById('JSDrillDownNav'), groupListTemplate: doc.getElementById('JSDrillDownNavGroupListTemplate'), typeListTemplate: doc.getElementById('JSDrillDownNavTypeListTemplate'), seriesListTemplate: doc.getElementById('JSDrillDownNavSeriesListTemplate'), utilSuggestSeriesList: doc.getElementById('JSUtilSuggestSeriesList'), suggestSeriesListWithPrioritySort: doc.getElementById('js-loadSeriesWithPrioritySort-list'), utilSuggestModelList: doc.getElementById('JSUtilSuggestModelList'), suggestModelsListWithPrioritySort: doc.getElementById('js-loadModelsWithPrioritySort-list'), utilSuggestKeywordsList: doc.getElementById('JSUtilSuggestKeywordsList'), utilSuggestAssetList: doc.getElementById('JSUtilSuggestAssetList'), headerSuggestSeriesList: doc.getElementById('JSHeaderSuggestSeriesList'), headerSuggestModelList: doc.getElementById('JSHeaderSuggestModelList'), headerSuggestKeywordsList: doc.getElementById('JSHeaderSuggestKeywordsList'), mainContForm: doc.getElementById('form0'), productsSuggestFilter: doc.getElementById('IncludeDiscontinuedProducts'), categorySPLabel: doc.getElementById('JSCategorySPLabel'), categoryPCLabel: doc.getElementById('JSCategoryPCLabel'), drillDownSPButtonList: doc.getElementById('JSDrillDownSPButtonList'), drillDownSPSelect: doc.getElementById('JSDrillDownSPSelect'), drillDownSPReset: doc.getElementById('JSDrillDownSPReset'), menuOverlay: doc.getElementById('js-menu-overlay'), }; self.getAttr = { loadStartText: K_S.getElem.loadMoreBtn ? K_S.getElem.loadMoreBtn.getAttribute('data-load-text') : null, loadingText: K_S.getElem.loadMoreBtn ? K_S.getElem.loadMoreBtn.getAttribute('data-loading-text') : null, openText: K_S.getElem.drillDownNav ? K_S.getElem.drillDownNav.getAttribute('data-open-text') : null, closeText: K_S.getElem.drillDownNav ? K_S.getElem.drillDownNav.getAttribute('data-close-text') : null, groupHierarchy: K_S.getElem.groupListTemplate ? K_S.getElem.groupListTemplate.getAttribute('data-hierarchy') : null, typeHierarchy: K_S.getElem.typeListTemplate ? K_S.getElem.typeListTemplate.getAttribute('data-hierarchy') : null, seriesHierarchy: K_S.getElem.seriesListTemplate ? K_S.getElem.seriesListTemplate.getAttribute('data-hierarchy') : null, }; self.polyfill.setChildNodeRemove(); self.polyfill.setNodeListForEach(); self.polyfill.setElemClosest(); self.polyfill.setObjectAssign(); }; doc.addEventListener('DOMContentLoaded', function () { K_S.runDomReady(); }, false); win.addEventListener('popstate', function (e) { if (e.state) { return; } if (!win.location.search && win.location.hash) { return; } if (!win.location.hash && win.location.href.split('#')[1] === '') { return; } win.location.reload(); }, false); win.addEventListener('pageshow', function (e) { var userAgent = win.navigator.userAgent.toLowerCase(); if (userAgent.indexOf('safari') !== -1 && userAgent.indexOf('chrome') === -1 && userAgent.indexOf('edge') === -1) { if (e.persisted) { win.location.reload(); } } }, false); win.addEventListener('load', function () { K_S.runLoad(); }, false); win.addEventListener('unload', function () { }, false); K_S.fn = {}; K_S.fn.setSuggest = {}; K_S.fn.setDrillDown = {}; K_S.runDomReady = function () { var self = this; var promise = Promise.resolve(); K_S.init(); promise.then(function () { self.fn.setChangeSubmitDestination(); self.fn.setSearchQueryTakeover(); self.fn.setLangPulldown(); self.fn.setFilePulldown(); self.fn.setFilterByFileTypes(); self.fn.setFilterByCategories(); self.fn.setFilterByModels(); self.fn.setDiscontinuedCookie(); self.fn.setToggleDiscontinued(); self.fn.setSearchString(); self.fn.setDrillDown.filterClear(); K_S.fn.setDrillDown.selectTarget(); }).then(function () { self.fn.setSelectTypes(); self.fn.updateAssetsByLangSelect(); self.fn.updateAssetsByFileTypeSelect(); self.fn.updateAssetsByCategorySelect(); self.fn.updateAssetsByModelSelect(); self.fn.setLoadAssets(K_S.getElem.searchDL); self.fn.setLoadAssets(K_S.getElem.searchDLCA); self.fn.setLoadAssets(K_S.getElem.searchDLTG); self.fn.setLoadAssets(K_S.getElem.searchDLSo); self.fn.setLoadAssets(K_S.getElem.searchDLCd); self.fn.setLoadAssets(K_S.getElem.searchDLMa); self.fn.setLoadAssets(K_S.getElem.searchDLCa); self.fn.setLoadDataSheets(); self.fn.setLoadSeries(); self.fn.setLoadPages(); self.fn.setLoadModels(); self.fn.setLoadProbablyTheseModels(); self.fn.setSuggest.run(); self.fn.setSubmit(); self.fn.setChangeView(); self.fn.setLoadMore(); self.fn.setSearchModal(); }); }; K_S.runLoad = function () { }; K_S.fn.setChangeSubmitDestination = function () { var root = doc.querySelectorAll('.JSChangeSubmitDestination'); var setWhenClick; if (!root.length) { return; } setWhenClick = function (e) { var self = this; var href = self.href; var form = self.closest('form') ? self.closest('form') : self.closest('.JSSearchSuggest').querySelector('form'); e.preventDefault(); form.setAttribute('action', href); form.submit(); }; root.forEach(function (selector) { selector.querySelectorAll('a').forEach(function (items) { items.addEventListener('click', setWhenClick, false); }); }); }; K_S.fn.setSearchQueryTakeover = function () { var root = doc.querySelectorAll('.JSSearchQueryTakeover'); var assetPageParamElm = doc.getElementById('JSAssetPageParam'); var input; var fn = {}; if (!root.length || !K_S.getElem.mainContForm) { return; } fn.createGroupIDHidden = function (dict) { var groupIDInput = doc.createElement('input'); groupIDInput.type = 'hidden'; groupIDInput.id = 'JSGroupIDPageParam'; groupIDInput.name = 'group_id'; if (dict.group_id) { groupIDInput.value = decodeURIComponent(dict.group_id); K_S.getElem.mainContForm.appendChild(groupIDInput); } }; fn.createTypeIDHidden = function (dict) { var typeIDInput = doc.createElement('input'); typeIDInput.type = 'hidden'; typeIDInput.id = 'JSTypeIDPageParam'; typeIDInput.name = 'type_id'; if (dict.type_id) { typeIDInput.value = decodeURIComponent(dict.type_id); K_S.getElem.mainContForm.appendChild(typeIDInput); } }; fn.createSeriesIDHidden = function (dict) { var seriesIDInput = doc.createElement('input'); seriesIDInput.type = 'hidden'; seriesIDInput.id = 'JSSeriesIDPageParam'; seriesIDInput.name = 'webseries_id'; if (dict.webseries_id) { seriesIDInput.value = decodeURIComponent(dict.webseries_id); K_S.getElem.mainContForm.appendChild(seriesIDInput); } }; input = K_S.getElem.mainContForm.querySelector('.JSSearchSuggestInput'); fn.setWhenClick = function (e) { var self = this; var href = self.href; var dict = util.makeQueryIntoDict(); var pageParam = ''; var value; e.preventDefault(); value = input.value.trim(); if (value) { input.value = value; } else { input.value = ''; } if (href.split('mode=')[1]) { pageParam = href.split('mode=')[1]; pageParam = pageParam.slice(0, 2); if (assetPageParamElm) { assetPageParamElm.value = pageParam; } } else { if (assetPageParamElm) { assetPageParamElm.value = ''; } } fn.createGroupIDHidden(dict); fn.createTypeIDHidden(dict); fn.createSeriesIDHidden(dict); K_S.getElem.mainContForm.setAttribute('action', self.href); K_S.getElem.mainContForm.submit(); }; root.forEach(function (selector) { selector.querySelectorAll('a').forEach(function (items) { items.addEventListener('click', fn.setWhenClick, false); }); }); }; K_S.fn.setLangPulldown = function () { var siteLang = GLOBAL.SITE_LANG ? GLOBAL.SITE_LANG : []; var manualLang = GLOBAL.MANUAL_LANG ? GLOBAL.MANUAL_LANG : []; var lang1Vals = GLOBAL.SELECT_LANG1 ? GLOBAL.SELECT_LANG1 : {}; var lang2Vals = GLOBAL.SELECT_LANG2 ? GLOBAL.SELECT_LANG2 : {}; var allLangVals = GLOBAL.SELECT_LANG ? GLOBAL.SELECT_LANG : {}; var lang1ValsKeys = Object.keys(lang1Vals); var lang2ValsKeys = Object.keys(lang2Vals); var allLangValsKeys = Object.keys(allLangVals); var dict = util.makeQueryIntoDict(); var langCookie = dict.mode === 'ma' ? util.getCookie(K_S.CONFIG.SELECT_MANUAL_LANG_COOKIE_NAME) : util.getCookie(K_S.CONFIG.SELECT_LANG_COOKIE_NAME); var langParam = dict.language_type_id; var optionDefautlVal = null; var fragment = doc.createDocumentFragment(); var defaultOptionElem = doc.createElement('option'); var optionArr = []; var cookieArr = []; var lang1Arr = []; var lang2Arr = []; var langAllArr = []; var fn = {}; var selectedLangLabel = ''; var unselectedLabel = ''; if (!K_S.getElem.langList) { return; } fn.setDefaultLang = function (langValue) { var langArr = util.removeEmptyArr(langValue); langArr.forEach(function (items) { K_S.getElem.langList.querySelectorAll('[value="' + items + '"]').forEach(function (selector) { if (selector.nodeName === 'OPTION') { optionArr.push(selector); } else { selector.checked = true; } }); }); if (optionArr.length) { if (K_S.getElem.selectTypesPulldown) { K_S.getElem.selectTypesPulldown.disabled = false; K_S.getElem.selectTypesPulldown.value = optionArr[0].value; } if (K_S.getElem.langList.querySelector('[value="other"]')) { K_S.getElem.langList.querySelector('[value="other"]').checked = true; } } }; fn.createMainLangElem = function (target, array, callback) { if (!K_S.getElem.lang1Temp) { return; } target.forEach(function (items) { var lang1NodeClone = util.createNodeClone(K_S.getElem.lang1Temp, 'li'); var lang1Selector = lang1NodeClone.querySelector('[name="lang1"]'); var lang1Label = lang1NodeClone.querySelector('.LangLabel'); if (array && array.indexOf(items) > -1) { return; } if (lang1Selector) { lang1Selector.value = items; } if (lang1Label) { lang1Label.textContent = lang1Vals[items] || lang2Vals[items]; } if (langCookie && lang1Selector) { langCookie.forEach(function (cookies) { if (items === cookies) { lang1Selector.checked = true; } }); } fragment.appendChild(lang1NodeClone); if (callback) { callback(items); } }); }; fn.createOtherLangElem = function () { if (!K_S.getElem.lang2Temp) { return; } lang2ValsKeys.forEach(function (items) { var lang2NodeClone = util.createNodeClone(K_S.getElem.lang2Temp, 'div'); var lang2Selector = lang2NodeClone.querySelector('option'); if (lang2Arr.indexOf(items) > -1) { return; } if (lang2Selector) { lang2Selector.value = items; lang2Selector.textContent = lang2Vals[items]; if (langCookie) { langCookie.forEach(function (cookies) { if (items === cookies) { if (K_S.getElem.selectTypesPulldown) { K_S.getElem.selectTypesPulldown.disabled = false; } lang2Selector.selected = true; if (K_S.getElem.langList.querySelector('[value="other"]')) { K_S.getElem.langList.querySelector('[value="other"]').checked = true; } } }); } fragment.appendChild(lang2Selector); } }); }; fn.createAllLangElem = function (target, array, callback) { if (K_S.getElem.lang1Temp || !K_S.getElem.allLangTemp || !K_S.getElem.langSelectWrap || !K_S.getElem.langSelectOpener ) { return; } target.forEach(function (items) { var langNodeClone = util.createNodeClone(K_S.getElem.allLangTemp, 'p'); var langSelector = langNodeClone.querySelector('[name="lang"]'); var langLabel = langNodeClone.querySelector('.js-selectAssetslanguage-label'); if (array && array.indexOf(items) > -1) { return; } if (langSelector) { langSelector.value = items; } if (langLabel) { langLabel.textContent = allLangVals[items]; } if (langCookie && langSelector) { langCookie.forEach(function (cookies) { if (items === cookies) { langSelector.checked = true; selectedLangLabel += ', ' + langLabel.textContent; } }); } fragment.appendChild(langNodeClone); if (callback) { callback(items); } }); selectedLangLabel = selectedLangLabel.replace(/^, /, ''); K_S.getElem.langSelectOpener.textContent = selectedLangLabel; K_S.getElem.langSelectOpener.setAttribute('aria-label', GLOBAL.TRANSLATION.Selected + ': ' + selectedLangLabel); }; fn.setLangArr = function (items) { if (lang1Vals.hasOwnProperty(items)) { lang1Arr.push(items); } if (lang2Vals.hasOwnProperty(items)) { lang2Arr.push(items); } }; fn.setLangAllArr = function (items) { if (allLangVals.hasOwnProperty(items)) { langAllArr.push(items); } }; fn.updateCookies = function () { if (langParam) { langParam.split(',').forEach(function (items) { if (K_S.getElem.lang1Temp && lang1ValsKeys.indexOf(items) > -1) { cookieArr.push(items); } if (K_S.getElem.lang2Temp && lang2ValsKeys.indexOf(items) > -1) { cookieArr.push(items); } if (K_S.getElem.allLangTemp && allLangValsKeys.indexOf(items) > -1) { cookieArr.push(items); } }); if (cookieArr.length) { if (dict.mode === 'ma') { util.setCookie(K_S.CONFIG.SELECT_MANUAL_LANG_COOKIE_NAME, JSON.stringify(cookieArr)); } else { util.setCookie(K_S.CONFIG.SELECT_LANG_COOKIE_NAME, JSON.stringify(cookieArr)); } } else { if (!langCookie) { if (dict.mode === 'ma') { util.setCookie(K_S.CONFIG.SELECT_MANUAL_LANG_COOKIE_NAME, JSON.stringify(manualLang)); } else { util.setCookie(K_S.CONFIG.SELECT_LANG_COOKIE_NAME, JSON.stringify(siteLang)); } } } } else { if (!langCookie) { if (dict.mode === 'ma') { util.setCookie(K_S.CONFIG.SELECT_MANUAL_LANG_COOKIE_NAME, JSON.stringify(manualLang)); } else { util.setCookie(K_S.CONFIG.SELECT_LANG_COOKIE_NAME, JSON.stringify(siteLang)); } } } }; fn.outputElems = function () { langCookie = dict.mode === 'ma' ? util.getCookie(K_S.CONFIG.SELECT_MANUAL_LANG_COOKIE_NAME) : util.getCookie(K_S.CONFIG.SELECT_LANG_COOKIE_NAME); if (langCookie) { langCookie = JSON.parse(langCookie); } if (dict.mode === 'ma') { fn.createMainLangElem(manualLang, null, fn.setLangArr); fn.createAllLangElem(manualLang, null, fn.setLangAllArr); } else { fn.createMainLangElem(siteLang, null, fn.setLangArr); fn.createAllLangElem(siteLang, null, fn.setLangAllArr); } fn.createMainLangElem(Object.keys(lang1Vals), lang1Arr, null); fn.createAllLangElem(Object.keys(allLangVals), langAllArr, null); if (!selectedLangLabel && K_S.getElem.langSelectWrap && K_S.getElem.langSelectWrap.dataset.languagesSelectUnselectedLabelValue ) { unselectedLabel = K_S.getElem.langSelectWrap.dataset.languagesSelectUnselectedLabelValue; K_S.getElem.langSelectOpener.textContent = unselectedLabel; } K_S.getElem.langList.insertBefore(fragment, K_S.getElem.langList.firstChild); fn.createOtherLangElem(); if (K_S.getElem.selectTypesPulldown) { optionDefautlVal = K_S.getElem.selectTypesPulldown.getAttribute('data-default-value'); } defaultOptionElem.value = ''; defaultOptionElem.textContent = optionDefautlVal; if (K_S.getElem.selectTypesPulldown) { K_S.getElem.selectTypesPulldown.appendChild(defaultOptionElem); K_S.getElem.selectTypesPulldown.appendChild(fragment); } }; fn.init = function () { fn.updateCookies(); fn.outputElems(); }; fn.init(); }; K_S.fn.setFilterByModels = function () { var downloadsModels = win.tkt_downloadModels; var listFragment = doc.createDocumentFragment(); var selectedFragment = doc.createDocumentFragment(); var dict = util.makeQueryIntoDict(); var productIDParam = dict.modelId; var fn = {}; var disabledLength = 0; if (!K_S.getElem.modelsListTemplate || !K_S.getElem.selectedModelsTemplate || !K_S.getElem.ModelsList || !K_S.getElem.selectModels || !K_S.getElem.filterModels || !K_S.getElem.filterModelsBtn || !downloadsModels ) { return; } fn.createPseudoFocusElem = function () { var newElem = doc.createElement('div'); var modelList = K_S.getElem.ModelsList; newElem.tabIndex = 0; newElem.style.outline = 0; modelList.parentNode.insertBefore(newElem, modelList); }; fn.createModelsList = function () { if (win.createModelsListCompleted === true) { return; } downloadsModels.models.forEach(function (items) { var modelsNodeClone = util.createNodeClone(K_S.getElem.modelsListTemplate, 'div'); var models = util.checkSupportsTemp() ? modelsNodeClone.querySelector('.js-setModelsList-child') : modelsNodeClone; var modelsCheckbox = modelsNodeClone.querySelector('.js-setModelsList-checkbox'); var modelsLabel = modelsNodeClone.querySelector('.js-setModelsList-label'); var selectedNodeClone = util.createNodeClone(K_S.getElem.selectedModelsTemplate, 'li'); var selected = util.checkSupportsTemp() ? selectedNodeClone.querySelector('.js-selectModels-child') : selectedNodeClone; var selectedLabel = selectedNodeClone.querySelector('.js-selectModels-label'); var deleteButton = selectedNodeClone.querySelector('.js-selectModels-deleteButton'); if (models) { models.setAttribute('data-id', items.id); } if (modelsCheckbox) { modelsCheckbox.value = items.name; if (!items.hasAssets) { modelsCheckbox.disabled = true; disabledLength++; } } if (modelsLabel) { modelsLabel.textContent = items.name; } listFragment.appendChild(modelsNodeClone); if (selected) { selected.setAttribute('data-value', items.name); selected.hidden = true; selected.setAttribute('data-id', items.id); } if (selectedLabel) { selectedLabel.textContent = items.name; } if (deleteButton) { deleteButton.value = items.name; deleteButton.setAttribute('aria-label', deleteButton.dataset.defaultLabel + ': ' + items.name); } selectedFragment.appendChild(selectedNodeClone); }); K_S.getElem.ModelsList.appendChild(listFragment); K_S.getElem.selectModels.appendChild(selectedFragment); if (downloadsModels.models.length === disabledLength) { fn.createPseudoFocusElem(); } win.createModelsListCompleted = true; }; fn.setDefaultLabel = function () { if (K_S.getElem.filterModels.dataset.downloadModelFilterUnselectedLabelValue ) { K_S.getElem.filterModelsBtn.textContent = K_S.getElem.filterModels.dataset.downloadModelFilterUnselectedLabelValue; } }; fn.showSelectedModels = function () { var selectedItems = K_S.getElem.selectModels.querySelectorAll('.js-selectModels-child'); var models = K_S.getElem.ModelsList.querySelectorAll('.js-setModelsList-child'); if (!selectedItems.length || !models.length ) { return; } downloadsModels.selected.forEach(function (items) { selectedItems.forEach(function (lists) { if (items === lists.dataset.id) { lists.hidden = false; } }); models.forEach(function (lists) { if (items === lists.dataset.id) { lists.querySelector('.js-setModelsList-checkbox').checked = true; } }); }); }; fn.initDisplayByParams = function () { var selectedItems = K_S.getElem.selectModels.querySelectorAll('.js-selectModels-child'); var models = K_S.getElem.ModelsList.querySelectorAll('.js-setModelsList-child'); var uncheckAllButton = document.querySelector('[data-download-model-filter-target="uncheckAllButton"]'); var uncheckFlag = false; if (!selectedItems.length || !models.length ) { return; } if (productIDParam) { K_S.getElem.filterModelsBtn.textContent = ''; productIDParam.split(',').forEach(function (items) { selectedItems.forEach(function (lists) { if (items === lists.dataset.id) { lists.hidden = false; } }); models.forEach(function (lists) { if (items === lists.dataset.id) { lists.querySelector('.js-setModelsList-checkbox').checked = true; uncheckFlag = true; } }); }); if (uncheckAllButton) { if (uncheckFlag) { uncheckAllButton.disabled = false; } } } }; fn.setModelsResultsNum = function () { var resultsNumberElm = K_S.getElem.filterModels.querySelectorAll('.js-setModelsList-resultsNumber'); if (!resultsNumberElm.length) { return; } resultsNumberElm.forEach(function (items) { items.textContent = downloadsModels.models.length; }); }; fn.init = function () { fn.createModelsList(); fn.setDefaultLabel(); fn.setModelsResultsNum(); fn.initDisplayByParams(); }; fn.init(); }; K_S.fn.updateAssetsByModelSelect = function () { var observer = null; var observerConfig = { subtree: true, attributes: true, }; var fn = {}; if (!K_S.getElem.selectModels) { return; } fn.update = function () { var dict = util.makeQueryIntoDict(); var selectModelsList = K_S.getElem.selectModels.querySelectorAll('.js-selectModels-child:not([hidden])'); var modelsArr = []; selectModelsList.forEach(function (items) { modelsArr.push(items.dataset.id); }); dict.modelId = modelsArr.join(','); util.updateBrowserHistory(dict); setTimeout(function () { K_S.fn.setLoadAssets(K_S.getElem.searchDL, '&o=0'); }, 200); }; observer = new MutationObserver(function () { fn.update(); }); observer.observe(K_S.getElem.selectModels, observerConfig); }; K_S.fn.setFilterByFileTypes = function () { var defaultFileArr = []; var cookieArr = []; var fileCookie = util.getCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME); var fileTypeKeys = Object.keys(GLOBAL.SELECT_FILE_TYPE); var dict = util.makeQueryIntoDict(); var fileParam = dict.assetdetail_type_id; var fileTypes; var checkedFileTypes; var fileTypesGroup; var checkedCount = 0; if (!K_S.getElem.filterFileTypes) { return; } fileTypes = K_S.getElem.filterFileTypes.querySelectorAll('[name="ft"]'); checkedFileTypes = K_S.getElem.filterFileTypes.querySelectorAll('[name="ft"]:checked'); fileTypesGroup = K_S.getElem.filterFileTypes.querySelector('[name="all"]'); if (fileParam) { fileParam.split(',').forEach(function (items) { if (fileTypeKeys.indexOf(items) > -1) { cookieArr.push(items); } }); if (cookieArr.length) { util.setCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME, JSON.stringify(cookieArr)); } else { if (!fileCookie) { util.setCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME, JSON.stringify([])); } } } else { if (!fileCookie) { util.setCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME, JSON.stringify([])); } } fileCookie = util.getCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME); if (fileCookie) { fileCookie = JSON.parse(fileCookie); if (!fileTypes.length) { return; } fileTypes.forEach(function (items) { items.checked = false; fileCookie.forEach(function (cookies) { if (items.value === cookies) { items.checked = true; checkedCount++; } }); }); if (checkedCount && fileTypesGroup) { fileTypesGroup.indeterminate = true; } if (fileTypes.length === checkedCount && fileTypesGroup) { fileTypesGroup.indeterminate = false; fileTypesGroup.checked = true; } } else { if (checkedFileTypes.length) { checkedFileTypes.forEach(function (items) { defaultFileArr.push(items.value); }); } util.setCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME, JSON.stringify(defaultFileArr)); } }; K_S.fn.setFilePulldown = function () { var defaultFileArr = []; var selectTypesData; var changeElem; var checkedElem; var fileCookie = util.getCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME); var fileTypeKeys = Object.keys(GLOBAL.SELECT_FILE_TYPE); var dict = util.makeQueryIntoDict(); var fileParam = dict.assetdetail_type_id; var cookieArr = []; if (!K_S.getElem.selectTypes) { return; } selectTypesData = K_S.getElem.selectTypes.getAttribute('data-type'); changeElem = K_S.getElem.selectTypes.querySelectorAll('[type="checkbox"]'); checkedElem = K_S.getElem.selectTypes.querySelectorAll(':checked'); if (selectTypesData === 'file') { if (fileParam) { fileParam.split(',').forEach(function (items) { if (fileTypeKeys.indexOf(items) > -1) { cookieArr.push(items); } }); if (cookieArr.length) { util.setCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME, JSON.stringify(cookieArr)); } else { if (!fileCookie) { util.setCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME, JSON.stringify([])); } } } else { if (!fileCookie) { util.setCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME, JSON.stringify([])); } } fileCookie = util.getCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME); if (fileCookie) { fileCookie = JSON.parse(fileCookie); changeElem.forEach(function (items) { items.checked = false; fileCookie.forEach(function (cookies) { if (items.value === cookies) { items.checked = true; } }); }); } else { if (checkedElem.length) { checkedElem.forEach(function (items) { defaultFileArr.push(items.value); }); } util.setCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME, JSON.stringify(defaultFileArr)); } } }; K_S.fn.updateAssetsByFileTypeSelect = function () { var fileTypeCheckbox = null; var observer = null; var observerConfig = { attributes: true, attributeOldValue: true, }; var fn = {}; if (!K_S.getElem.filterFileTypes) { return; } fileTypeCheckbox = K_S.getElem.filterFileTypes.querySelectorAll('[name="ft"]'); fn.writeDataChecked = function () { var fileTypeArr = []; if (!fileTypeCheckbox.length) { return; } K_S.getElem.filterFileTypes.querySelectorAll('[name="ft"]:checked').forEach(function (items) { fileTypeArr.push(items.value); }); K_S.getElem.filterFileTypes.setAttribute('data-checked', fileTypeArr.join(',')); }; fn.update = function () { var dict = util.makeQueryIntoDict(); var checkedFileTypes = K_S.getElem.filterFileTypes.querySelectorAll('[name="ft"]:checked'); var fileArr = []; checkedFileTypes.forEach(function (items) { fileArr.push(items.value); }); util.setCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME, JSON.stringify(fileArr)); dict.assetdetail_type_id = fileArr.join(','); util.updateBrowserHistory(dict); setTimeout(function () { K_S.fn.setLoadAssets(K_S.getElem.searchDL, '&o=0'); }, 200); }; fileTypeCheckbox.forEach(function (items) { items.addEventListener('change', fn.writeDataChecked); }); observer = new MutationObserver(function (e) { if (e[0].oldValue !== e[0].target.dataset.checked) { fn.update(); } }); observer.observe(K_S.getElem.filterFileTypes, observerConfig); }; K_S.fn.setFilterByCategories = function () { var elems = { root: K_S.getElem.filterCategories, }; var categoryCookieName = util.addAssetTypeToString(K_S.CONFIG.SELECT_CATEGORY_COOKIE_NAME); var categoryCookie = util.getCookie(categoryCookieName); var dict = util.makeQueryIntoDict(); var categoryParam = dict.assetdetail_type_id; var cookieArr = []; var categoryValues = []; var checkedCount = 0; var fn = {}; if (!elems.root) { return; } fn.configElems = function () { elems.categories = elems.root.querySelectorAll('[name="category"]'); elems.categoriesGroup = elems.root.querySelector('[name="all"]'); elems.categories.forEach(function (items) { categoryValues.push(items.value); }); }; fn.setCategoryCookie = function () { if (categoryParam) { categoryParam.split(',').forEach(function (items) { if (categoryValues.indexOf(items) > -1) { cookieArr.push(items); } }); if (cookieArr.length) { util.setCookie(categoryCookieName, JSON.stringify(cookieArr)); } else { if (!categoryCookie) { util.setCookie(categoryCookieName, JSON.stringify([])); } } } else { if (!categoryCookie) { util.setCookie(categoryCookieName, JSON.stringify([])); } } }; fn.display = function () { categoryCookie = util.getCookie(categoryCookieName); if (categoryCookie) { categoryCookie = JSON.parse(categoryCookie); elems.categories.forEach(function (items) { items.checked = false; categoryCookie.forEach(function (cookies) { if (items.value === cookies) { items.checked = true; checkedCount++; } }); }); if (checkedCount && elems.categoriesGroup) { elems.categoriesGroup.indeterminate = true; } if (elems.categories.length === checkedCount && elems.categoriesGroup) { elems.categoriesGroup.indeterminate = false; elems.categoriesGroup.checked = true; } } }; fn.init = function () { fn.configElems(); fn.setCategoryCookie(); fn.display(); }; fn.init(); }; K_S.fn.updateAssetsByCategorySelect = function () { var elems = { root: K_S.getElem.filterCategories, }; var categoryCookieName = util.addAssetTypeToString(K_S.CONFIG.SELECT_CATEGORY_COOKIE_NAME); var observer = null; var observerConfig = { attributes: true, attributeOldValue: true, }; var fn = {}; if (!elems.root) { return; } elems.categories = elems.root.querySelectorAll('[name="category"]'); fn.writeDataChecked = function () { var checkedCategories = elems.root.querySelectorAll('[name="category"]:checked'); var categories = []; checkedCategories.forEach(function (items) { categories.push(items.value); }); elems.root.setAttribute('data-checked', categories.join(',')); }; fn.update = function () { var checkedCategories = elems.root.querySelectorAll('[name="category"]:checked'); var dict = util.makeQueryIntoDict(); var categories = []; checkedCategories.forEach(function (items) { categories.push(items.value); }); util.setCookie(categoryCookieName, JSON.stringify(categories)); if (dict.mode === 'ds') { dict.product_type_id = categories.join(','); } else { dict.assetdetail_type_id = categories.join(','); } util.updateBrowserHistory(dict); setTimeout(function () { if (dict.mode === 'ds') { K_S.fn.setLoadDataSheets('&o=0'); } else { K_S.fn.setLoadAssets(K_S.getElem.searchDL, '&o=0'); } }, 200); }; elems.categories.forEach(function (items) { items.addEventListener('change', fn.writeDataChecked); }); observer = new MutationObserver(function (e) { if (e[0].oldValue !== e[0].target.dataset.checked) { fn.update(); } }); observer.observe(elems.root, observerConfig); }; K_S.fn.updateAssetsByLangSelect = function () { var observer = null; var observerConfig = { childList: true, }; var fn = {}; if (!K_S.getElem.langSelectWrap || !K_S.getElem.langSelectOpener ) { return; } fn.update = function () { var dict = util.makeQueryIntoDict(); var checkedLangs = K_S.getElem.langSelectWrap.querySelectorAll('[type="checkbox"]:checked'); var langArr = []; checkedLangs.forEach(function (items) { langArr.push(items.value); }); if (dict.mode === 'ma') { util.setCookie(K_S.CONFIG.SELECT_MANUAL_LANG_COOKIE_NAME, JSON.stringify(langArr)); } else { util.setCookie(K_S.CONFIG.SELECT_LANG_COOKIE_NAME, JSON.stringify(langArr)); } dict.language_type_id = langArr.join(','); util.updateBrowserHistory(dict); setTimeout(function () { K_S.fn.setLoadAssets(K_S.getElem.searchDL, '&o=0'); }, 200); }; observer = new MutationObserver(function () { fn.update(); }); observer.observe(K_S.getElem.langSelectOpener, observerConfig); }; K_S.fn.setSelectTypes = function () { var checkedArr = []; var height = 0; var isAnimate = false; var selectTypesData; var selectTypesDefaultLabel; var checkedElem; var cbOther; var isOpen; var slideToggle; var changeTxt; var updateData; var runForEachScreen; if (!K_S.getElem.selectTypes || !K_S.getElem.selectTypesBtn || !K_S.getElem.selectTypesBox || !K_S.getElem.selectTypesLabel || !K_S.getElem.selectTypesLength || !K_S.getElem.selectTypesHook || !GLOBAL.SELECT_LANG1 || !GLOBAL.SELECT_LANG2 ) { return; } doc.querySelector('body').setAttribute('data-select-types', 'true'); selectTypesData = K_S.getElem.selectTypes.getAttribute('data-type'); selectTypesDefaultLabel = K_S.getElem.selectTypesLabel.getAttribute('data-label'); checkedElem = K_S.getElem.selectTypes.querySelectorAll(':checked'); changeTxt = function (label, checkedLen) { K_S.getElem.selectTypesLabel.textContent = label; K_S.getElem.selectTypesLength.textContent = checkedLen; }; if (!checkedElem.length) { changeTxt(selectTypesDefaultLabel, ''); } checkedElem.forEach(function (items) { if (items.value && items.value !== 'other') { checkedArr.push(items.value); } }); if (checkedArr.length === 1) { if (GLOBAL.SELECT_LANG1[checkedArr[0]]) { changeTxt(GLOBAL.SELECT_LANG1[checkedArr[0]], ''); } else if (GLOBAL.SELECT_LANG2[checkedArr[0]]) { changeTxt(GLOBAL.SELECT_LANG2[checkedArr[0]], ''); } else { changeTxt(checkedArr[0], ''); } } if (checkedArr.length > 1) { changeTxt(selectTypesDefaultLabel, checkedArr.length); K_S.getElem.selectTypesLength.classList.remove(K_S.CONFIG.HIDDEN_ATTR); } if (checkedArr.length === 0) { changeTxt(selectTypesDefaultLabel, ''); } slideToggle = { slideDown: function () { if (K_S.getElem.selectTypesBox.offsetHeight !== 0) { requestAnimationFrame(slideToggle.slideDown); return; } K_S.getElem.selectTypesBox.style.height = height + 'px'; }, slideUp: function () { if (K_S.getElem.selectTypesBox.offsetHeight !== height) { requestAnimationFrame(slideToggle.slideUp); return; } K_S.getElem.selectTypesBox.style.height = 0; }, init: function () { if (isAnimate) { return; } isOpen = K_S.getElem.selectTypes.classList.contains(K_S.CONFIG.OPEN_ATTR); isAnimate = true; if (isOpen) { height = K_S.getElem.selectTypesBox.offsetHeight; K_S.getElem.selectTypesBox.style.height = height + 'px'; slideToggle.slideUp(); return; } K_S.getElem.selectTypes.classList.add(K_S.CONFIG.OPEN_ATTR); height = K_S.getElem.selectTypesBox.offsetHeight; K_S.getElem.selectTypesBox.style.height = 0; slideToggle.slideDown(); }, }; runForEachScreen = function () { if (K_S.CONFIG.LARGE_SCREEN_MQ.matches) { K_S.getElem.selectTypesHook.removeEventListener('click', slideToggle.init, false); } else { K_S.getElem.selectTypesHook.addEventListener('click', slideToggle.init, false); } }; runForEachScreen(); K_S.CONFIG.LARGE_SCREEN_MQ.addListener(runForEachScreen); K_S.getElem.selectTypesBox.addEventListener('transitionend', function () { if (isOpen) { K_S.getElem.selectTypes.classList.remove(K_S.CONFIG.OPEN_ATTR); } K_S.getElem.selectTypesBox.style.height = ''; isAnimate = false; }, false); if (K_S.getElem.selectTypesPulldown) { cbOther = K_S.getElem.selectTypes.querySelector('input[value="other"]'); K_S.getElem.selectTypesPulldown.addEventListener('change', function () { if (this.value) { cbOther.checked = true; } else { cbOther.checked = false; } }, false); } updateData = function (e) { var cbChecked = K_S.getElem.selectTypes.querySelectorAll('[type="checkbox"]:checked'); var cbCheckedLen = cbChecked.length; var promise = Promise.resolve(); var dict = util.makeQueryIntoDict(); var langArr = []; var fileArr = []; e.preventDefault(); cbChecked.forEach(function (items) { if (items.value === 'other') { if (Boolean(K_S.getElem.selectTypesPulldown.value) === false) { if ((cbCheckedLen - 1) > 1) { changeTxt(selectTypesDefaultLabel, (cbCheckedLen - 1)); K_S.getElem.selectTypesLength.classList.remove(K_S.CONFIG.HIDDEN_ATTR); } else if ((cbCheckedLen - 1) === 1) { changeTxt(GLOBAL.SELECT_LANG1[cbChecked[0].value], ''); K_S.getElem.selectTypesLength.classList.add(K_S.CONFIG.HIDDEN_ATTR); } else { changeTxt(selectTypesDefaultLabel, ''); K_S.getElem.selectTypesLength.classList.add(K_S.CONFIG.HIDDEN_ATTR); } } else { if (cbCheckedLen > 1) { changeTxt(selectTypesDefaultLabel, cbCheckedLen); K_S.getElem.selectTypesLength.classList.remove(K_S.CONFIG.HIDDEN_ATTR); } else { changeTxt(GLOBAL.SELECT_LANG2[K_S.getElem.selectTypesPulldown.value], ''); K_S.getElem.selectTypesLength.classList.add(K_S.CONFIG.HIDDEN_ATTR); } if (selectTypesData !== 'file') { langArr.push(K_S.getElem.selectTypesPulldown.value); } } } else { if (cbCheckedLen > 1) { changeTxt(selectTypesDefaultLabel, cbCheckedLen); K_S.getElem.selectTypesLength.classList.remove(K_S.CONFIG.HIDDEN_ATTR); } else { if (GLOBAL.SELECT_LANG1[cbChecked[0].value]) { changeTxt(GLOBAL.SELECT_LANG1[cbChecked[0].value], ''); } else { changeTxt(cbChecked[0].nextElementSibling.textContent, ''); } K_S.getElem.selectTypesLength.classList.add(K_S.CONFIG.HIDDEN_ATTR); } if (selectTypesData === 'file') { fileArr.push(items.value); } else { langArr.push(items.value); } } }); if (!cbCheckedLen) { changeTxt(selectTypesDefaultLabel, ''); K_S.getElem.selectTypesLength.classList.add(K_S.CONFIG.HIDDEN_ATTR); } if (selectTypesData === 'file') { util.setCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME, JSON.stringify(fileArr)); dict.assetdetail_type_id = fileArr.join(','); } else { if (dict.mode === 'ma') { util.setCookie(K_S.CONFIG.SELECT_MANUAL_LANG_COOKIE_NAME, JSON.stringify(langArr)); } else { util.setCookie(K_S.CONFIG.SELECT_LANG_COOKIE_NAME, JSON.stringify(langArr)); } dict.language_type_id = langArr.join(','); } util.updateBrowserHistory(dict); promise.then(function () { if (!doc.body.getAttribute('data-search-modal')) { slideToggle.init(); } }).then(function () { var modalWrapper = doc.getElementById('SearchModal'); var focusTarget = modalWrapper && modalWrapper.childNodes[1] ? doc.querySelector('[data-modal-target="' + modalWrapper.childNodes[1].id + '"]') : null; if (focusTarget) { focusTarget.classList.add(K_S.CONFIG.ACTIVE_ATTR); focusTarget.addEventListener('animationend', function () { this.classList.remove(K_S.CONFIG.ACTIVE_ATTR); }, false); } K_S.fn.closeSearchModal(); setTimeout(function () { K_S.fn.setLoadAssets(K_S.getElem.searchDL, '&o=0'); }, 200); }); }; K_S.getElem.selectTypesBtn.addEventListener('click', updateData, false); }; K_S.fn.setChangeView = function () { var viewAttr = 'data-view'; var viewData1 = 'Grid'; var viewData2 = 'List'; var tabList; var activeHref; var setWhenClick; var changeViewList; var changeViewHook; var viewCookie; var pageParam; var setCtrlColumns; if (!K_S.getElem.changeView || !K_S.getElem.searchDL) { return; } tabList = doc.querySelector('.SearchTabList'); changeViewList = K_S.getElem.changeView.querySelectorAll('#' + K_S.getElem.changeView.id + '>li'); if (tabList) { activeHref = tabList.querySelector('li.' + K_S.CONFIG.ACTIVE_ATTR + '> a').href; pageParam = activeHref.split('mode=')[1].slice(0, 2); viewCookie = util.getCookie(K_S.CONFIG.VIEW_COOKIE_NAME + '_' + pageParam); } setCtrlColumns = function (targetVal) { if (targetVal === viewData1 + '_2') { K_S.getElem.searchDL.classList.remove('Col4'); K_S.getElem.searchDL.classList.add('Col2'); } else if (targetVal === viewData1 + '_4') { K_S.getElem.searchDL.classList.remove('Col2'); K_S.getElem.searchDL.classList.add('Col4'); } }; if (viewCookie && viewCookie !== viewData1) { K_S.getElem.changeView.querySelector('li.' + K_S.CONFIG.ACTIVE_ATTR).classList.remove(K_S.CONFIG.ACTIVE_ATTR); K_S.getElem.changeView.querySelector('[' + viewAttr + '="' + viewCookie + '"]').parentNode.classList.add(K_S.CONFIG.ACTIVE_ATTR); if (viewCookie.indexOf(viewData1) > -1) { setCtrlColumns(viewCookie); viewCookie = viewData1; } K_S.getElem.searchDL.setAttribute(viewAttr, viewCookie); } setWhenClick = function (e) { var self = this; var btnData = self.getAttribute(viewAttr); var activeList = K_S.getElem.changeView.querySelector('.' + K_S.CONFIG.ACTIVE_ATTR); var parent = self.parentNode; e.preventDefault(); if (!parent.classList.contains(K_S.CONFIG.ACTIVE_ATTR)) { activeList.classList.remove(K_S.CONFIG.ACTIVE_ATTR); parent.classList.add(K_S.CONFIG.ACTIVE_ATTR); if (btnData.indexOf(viewData1) > -1) { setCtrlColumns(btnData); K_S.getElem.searchDL.setAttribute(viewAttr, viewData1); } else { K_S.getElem.searchDL.setAttribute(viewAttr, viewData2); } } if (tabList) { util.setCookie(K_S.CONFIG.VIEW_COOKIE_NAME + '_' + pageParam, btnData); } }; changeViewList.forEach(function (items) { changeViewHook = items.querySelector('button'); changeViewHook.addEventListener('click', setWhenClick, false); }); }; K_S.fn.setSuggest.run = function () { var setSuggest = this; var dict = util.makeQueryIntoDict(); var searchSuggest = doc.querySelectorAll('.JSSearchSuggest'); var timer = null; var loadMS = 400; var historyStr = 'History'; var eventFn = {}; var langCookie; var fileCookie; var discontinuedCookie; var loadData; var assetParam; var seriesParam; var modelParam; var keywordsParam; var setParam; var selectLangParam; var selectFileParam; var discontinuedParam; var setFilter; if (!searchSuggest.length) { return; } setFilter = function () { langCookie = dict.mode === 'ma' ? util.getCookie(K_S.CONFIG.SELECT_MANUAL_LANG_COOKIE_NAME) : util.getCookie(K_S.CONFIG.SELECT_LANG_COOKIE_NAME); fileCookie = util.getCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME); discontinuedCookie = util.getCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME); selectLangParam = ''; selectFileParam = ''; if (langCookie) { langCookie = JSON.parse(langCookie); langCookie.forEach(function (cookies) { selectLangParam += cookies + ','; }); selectLangParam = selectLangParam.slice(0, -1); } if (fileCookie) { fileCookie = JSON.parse(fileCookie); fileCookie.forEach(function (cookies) { selectFileParam += GLOBAL.SELECT_FILE_TYPE[cookies] + ','; }); selectFileParam = selectFileParam.slice(0, -1); } if (typeof discontinuedCookie !== 'undefined') { if (discontinuedCookie === '1') { discontinuedParam = 1; } else { discontinuedParam = 0; } } else { discontinuedParam = 0; } if (!K_S.getElem.selectTypes) { if (!K_S.getElem.langSelectWrap) { selectLangParam = ''; if (!K_S.getElem.filterFileTypes) { selectFileParam = ''; } } if (K_S.getElem.langSelectWrap || !K_S.getElem.filterFileTypes) { selectFileParam = ''; } } if (K_S.getElem.selectTypes) { if (K_S.getElem.selectTypes.getAttribute('data-type') === 'file') { selectLangParam = ''; } else { selectFileParam = ''; } } }; setParam = function (trimVal) { setFilter(); assetParam = K_S.API_PATH.SUGGEST_ASSET + 'language_type_id=' + selectLangParam + '&assetdetail_type_id=' + selectFileParam + '&asset_type_id=' + GLOBAL.ASSET_TYPE_ID + '&q=' + trimVal + '&l=' + 4; seriesParam = K_S.API_PATH.SUGGEST_SERIES + 'discontinued_flag=' + discontinuedParam + '&q=' + trimVal; modelParam = K_S.API_PATH.SUGGEST_MODEL + 'discontinued_flag=' + discontinuedParam + '&q=' + trimVal + '&l=' + 10; keywordsParam = K_S.API_PATH.SUGGEST_PAGE + 'q_word=' + trimVal + '&l=' + 10; }; loadData = function (root, suggestTarget) { if (!suggestTarget.classList.contains('SearchAllCategory')) { if (root.classList.contains('JSUtilSuggest')) { setSuggest.loadAssets(K_S.getElem.utilSuggestAssetList, assetParam); setSuggest.loadSeries(K_S.getElem.utilSuggestSeriesList, seriesParam + '&l=4'); setSuggest.loadModels(K_S.getElem.utilSuggestModelList, modelParam); setSuggest.loadSeriesWithPrioritySort(K_S.getElem.suggestSeriesListWithPrioritySort, seriesParam + '&l=3'); setSuggest.loadModelsWithPrioritySort(K_S.getElem.suggestModelsListWithPrioritySort, modelParam); } } else { if (root.classList.contains('JSHeaderSuggest')) { setSuggest.loadSeries(K_S.getElem.headerSuggestSeriesList, seriesParam + '&l=3'); setSuggest.loadModels(K_S.getElem.headerSuggestModelList, modelParam); } if (root.classList.contains('JSUtilSuggest')) { setSuggest.loadSeries(K_S.getElem.utilSuggestSeriesList, seriesParam + '&l=3'); setSuggest.loadModels(K_S.getElem.utilSuggestModelList, modelParam); } } }; searchSuggest.forEach(function (selector) { var suggestInput = selector.querySelector('.JSSearchSuggestInput'); var suggestTarget = selector.querySelector('.JSSearchSuggestTarget'); var suggestHistory = selector.querySelector('.JSSearchHistory'); var suggestHistoryList = selector.querySelector('.JSSearchHistoryList'); var suggestColumn = selector.querySelector('.JSSuggestColumn'); var arrPageX = []; var arrPageY = []; if (suggestInput && suggestInput.placeholder) { suggestInput.setAttribute('data-placeholder', suggestInput.placeholder); } eventFn = { runWhenInput: function (e) { var self = this; if (timer !== null) { clearTimeout(timer); } timer = setTimeout(function () { var trimVal = encodeURIComponent(self.value.trim()); setParam(trimVal); if (!trimVal.length) { if (suggestHistory && util.getCookie(K_S.CONFIG.HISTORY_COOKIE_NAME)) { if (suggestHistoryList && suggestInput) { setSuggest.loadHistory(suggestHistoryList, suggestInput); } if (suggestTarget) { suggestTarget.classList.remove(K_S.CONFIG.HIDDEN_ATTR); suggestTarget.classList.add(historyStr); } if (suggestColumn) { suggestColumn.classList.add(K_S.CONFIG.HIDDEN_ATTR); } suggestHistory.classList.remove(K_S.CONFIG.HIDDEN_ATTR); if (e.target.closest('.JSHeaderSuggest')) { doc.body.classList.add(K_S.CONFIG.SUGGEST_SHOW_ATTR); if (K_S.getElem.menuOverlay) { K_S.getElem.menuOverlay.setAttribute('data-owner', 'suggest'); } } } else { if (suggestTarget) { suggestTarget.classList.add(K_S.CONFIG.HIDDEN_ATTR); } if (suggestColumn) { suggestColumn.classList.add(K_S.CONFIG.HIDDEN_ATTR); } if (e.target.closest('.JSHeaderSuggest')) { doc.body.classList.remove(K_S.CONFIG.SUGGEST_SHOW_ATTR); } if (suggestHistory) { suggestHistory.classList.add(K_S.CONFIG.HIDDEN_ATTR); } } } else { if (suggestTarget) { loadData(selector, suggestTarget); } } }, loadMS); }, runWhenFocusin: function (e) { var self = this; if (timer !== null) { clearTimeout(timer); } self.placeholder = ''; doc.querySelectorAll('.JSSearchSuggestTarget').forEach(function (items) { items.classList.add(K_S.CONFIG.HIDDEN_ATTR); }); timer = setTimeout(function () { var trimVal = encodeURIComponent(self.value.trim()); setParam(trimVal); if (!trimVal.length) { if (suggestHistory && util.getCookie(K_S.CONFIG.HISTORY_COOKIE_NAME)) { if (suggestHistoryList && suggestInput) { setSuggest.loadHistory(suggestHistoryList, suggestInput); } if (suggestTarget) { suggestTarget.classList.remove(K_S.CONFIG.HIDDEN_ATTR); suggestTarget.classList.add(historyStr); } if (suggestColumn) { suggestColumn.classList.add(K_S.CONFIG.HIDDEN_ATTR); } if (suggestHistory) { suggestHistory.classList.remove(K_S.CONFIG.HIDDEN_ATTR); } if (e.target.closest('.JSHeaderSuggest')) { doc.body.classList.add(K_S.CONFIG.SUGGEST_SHOW_ATTR); if (K_S.getElem.menuOverlay) { K_S.getElem.menuOverlay.setAttribute('data-owner', 'suggest'); } } } } else { if (suggestHistory) { if (suggestTarget) { suggestTarget.classList.remove(historyStr); } suggestHistory.classList.add(K_S.CONFIG.HIDDEN_ATTR); } if (suggestTarget) { loadData(selector, suggestTarget); } } }, loadMS); }, closeSuggestBox: function (e) { if (!e.target.closest('.JSSearchSuggestTarget') && !e.target.classList.contains('JSSearchSuggestInput')) { clearTimeout(timer); if (suggestTarget) { suggestTarget.classList.add(K_S.CONFIG.HIDDEN_ATTR); } doc.body.classList.remove(K_S.CONFIG.SUGGEST_SHOW_ATTR); } }, restorePlaceholder: function () { var self = this; var dataPlaceholder = self.getAttribute('data-placeholder'); if (!dataPlaceholder) { return; } if (!encodeURIComponent(self.value.trim()).length) { self.placeholder = dataPlaceholder; } }, onTouchstart: function (e) { arrPageX.length = 0; arrPageY.length = 0; arrPageX.push(e.touches[0].pageX); arrPageY.push(e.touches[0].pageY); }, onTouchend: function (e) { if (e.changedTouches[0].pageX === arrPageX[0] || e.changedTouches[0].pageY === arrPageY[0]) { if (!e.target.closest('.JSSearchSuggestTarget') && !e.target.classList.contains('JSSearchSuggestInput')) { clearTimeout(timer); if (suggestTarget) { suggestTarget.classList.add(K_S.CONFIG.HIDDEN_ATTR); } doc.body.classList.remove(K_S.CONFIG.SUGGEST_SHOW_ATTR); } } }, }; if (suggestInput) { suggestInput.addEventListener('input', eventFn.runWhenInput, false); suggestInput.addEventListener('focusin', eventFn.runWhenFocusin, false); suggestInput.addEventListener('focusout', eventFn.restorePlaceholder, false); } doc.addEventListener('click', eventFn.closeSuggestBox, false); doc.addEventListener('touchstart', eventFn.onTouchstart, false); doc.addEventListener('touchend', eventFn.onTouchend, false); doc.querySelectorAll(K_S.CONFIG.FOCUSABLE).forEach(function (selectors) { selectors.addEventListener('focusin', function (e) { if (!e.target.closest('.JSSearchSuggest')) { clearTimeout(timer); if (suggestTarget) { suggestTarget.classList.add(K_S.CONFIG.HIDDEN_ATTR); } doc.body.classList.remove(K_S.CONFIG.SUGGEST_SHOW_ATTR); } }, false); }); }); }; K_S.fn.setSuggest.loadKeywords = function (outputSelector, loadPath) { var setSuggest = this; var fragment = doc.createDocumentFragment(); var nodeClone; var keywords; var setWhenClick; var suggestBox; if (!K_S.getElem.suggestKeywordsTemplate || !outputSelector) { return; } setWhenClick = function (e) { var self = this; var suggestWrapper = self.closest('.JSSearchSuggest'); e.preventDefault(); setSuggest.saveHistory(self); suggestWrapper.querySelector('.JSSearchSuggestInput').value = self.textContent; suggestWrapper.querySelector('.JSSearchButton').click(); }; suggestBox = outputSelector.closest('.JSSearchSuggestTarget'); outputSelector.querySelectorAll('#' + outputSelector.id + '>li').forEach(function (items) { items.remove(); }); util.getJSON(loadPath).then(function (response) { if (response.length) { console.log('Keywords Suggest API: ' + loadPath); response.forEach(function (items) { nodeClone = util.createNodeClone(K_S.getElem.suggestKeywordsTemplate, 'li'); keywords = nodeClone.querySelector('.Keywords'); if (keywords) { keywords.textContent = items.label; keywords.addEventListener('click', setWhenClick, false); } fragment.appendChild(nodeClone); }); outputSelector.appendChild(fragment); } if (suggestBox) { setSuggest.changeDisplay(response, suggestBox, '.KeywordArea'); } if (!response.length) { if (suggestBox.classList.contains('SearchAllCategory')) { suggestBox.querySelector('.KeywordArea').closest('.Column').classList.add(K_S.CONFIG.HIDDEN_ATTR); } } }).catch(function (error) { console.log(error); }); }; K_S.fn.setSuggest.loadSeries = function (outputSelector, loadPath) { var setSuggest = this; var fragment = doc.createDocumentFragment(); var trackingParam = 'search_sl'; var trackingVal = 1; var nodeClone; var series; var thumbnail; var thumbnailLink; var catalog; var spec; var model; var price; var setWhenClick; var commonName; var name; var disconLabel; var suggestBox; var dlAssetId; if (!K_S.getElem.suggestSeriesTemplate || !outputSelector) { return; } setWhenClick = function (e) { var self = this; e.preventDefault(); setSuggest.saveHistory(self); location.href = self.href; }; suggestBox = outputSelector.closest('.JSSearchSuggestTarget'); util.getJSON(loadPath).then(function (response) { outputSelector.querySelectorAll('#' + outputSelector.id + '>li').forEach(function (items) { items.remove(); }); if (response.result.series.length) { console.log('Series Suggest API: ' + loadPath); suggestBox.querySelectorAll('.JSSuggestSeriesResultNum').forEach(function (items) { items.textContent = response.result.attribute.total; }); response.result.series.forEach(function (items) { nodeClone = util.createNodeClone(K_S.getElem.suggestSeriesTemplate, 'li'); series = nodeClone.querySelector('.Series'); commonName = nodeClone.querySelector('.CommonName'); name = nodeClone.querySelector('.Name'); disconLabel = nodeClone.querySelector('.DisconLabel'); thumbnailLink = nodeClone.querySelector('.ThumbnailLink'); thumbnail = nodeClone.querySelector('.Thumbnail img'); catalog = nodeClone.querySelector('.Catalog'); spec = nodeClone.querySelector('.Spec'); model = nodeClone.querySelector('.Model'); price = nodeClone.querySelector('.Price'); dlAssetId = ''; if (series) { series.href = items.url + '?' + trackingParam + '=' + trackingVal; series.addEventListener('click', setWhenClick, false); } if (commonName) { commonName.textContent = items.webseriescommon_name; } if (name) { name.textContent = ' ' + items.display_name; } if (thumbnail) { thumbnail.src = GLOBAL.ORIGINAL_DOMAIN + '/img/products/series/' + items.product_thumbnail_id + '_M.jpg'; if (thumbnailLink) { thumbnailLink.href = items.url + '?' + trackingParam + '=' + trackingVal; } } if (catalog) { if (items.catalog_id) { items.catalog_id.split(',').forEach(function (assetId) { dlAssetId += 'dlAssetId=' + assetId + '&'; }); catalog.href = GLOBAL.ORIGINAL_DOMAIN + '/download/download/confirmation/?' + dlAssetId.slice(0, -1) + '&' + trackingParam + '=' + trackingVal; } else { catalog.parentNode.remove(); } } if (disconLabel) { disconLabel.remove(); } if (spec) { if (items.spec_url) { spec.href = items.spec_url + '?' + trackingParam + '=' + trackingVal; } else { spec.parentNode.remove(); } } if (model) { if (items.model_url) { model.href = items.model_url + '?' + trackingParam + '=' + trackingVal; } else { model.parentNode.remove(); } } if (price) { price.href = `${items.url}get-pricing/?${trackingParam}=${trackingVal}`; } fragment.appendChild(nodeClone); }); outputSelector.appendChild(fragment); } if (suggestBox) { setSuggest.changeDisplay(response.result.series, suggestBox, '.SeriesArea'); } }).catch(function (error) { console.log(error); }); }; K_S.fn.setSuggest.loadSeriesWithPrioritySort = function (outputSelector, loadPath) { const setSuggest = this; const seriesArea = doc.querySelector('.js-loadSeriesWithPrioritySort-target'); const suggestBox = outputSelector ? outputSelector.closest('.JSSearchSuggestTarget') : null; const template = K_S.getElem.suggestSeriesTemplate; const fragment = doc.createDocumentFragment(); const fn = {}; if (!seriesArea || !template || !outputSelector || !suggestBox) { return; } fn.setWhenClick = function (e) { const self = this; const inputElm = self.closest('.JSSearchSuggest') ? self.closest('.JSSearchSuggest').querySelector('.JSSearchSuggestInput') : null; e.preventDefault(); if (inputElm) { inputElm.value = self.dataset.webseriesName; } suggestBox.classList.add(K_S.CONFIG.HIDDEN_ATTR); const dict = util.makeQueryIntoDict(); const promise = Promise.resolve(); const loadMoreTarget = doc.querySelector('.JSLoadMoreTarget'); const searchLinkList = K_S.getElem.drillDownNav ? K_S.getElem.drillDownNav.querySelector('.SearchLinkList01') : null; const webSeriesId = self.dataset.webseriesId; if (!loadMoreTarget || !searchLinkList) { return; } promise.then(() => { loadMoreTarget.setAttribute('data-group-id', ''); loadMoreTarget.setAttribute('data-type-id', ''); loadMoreTarget.setAttribute('data-series-id', webSeriesId); dict.q = ''; dict.s = 1; dict.group_id = ''; dict.type_id = ''; dict.webseries_id = webSeriesId; util.updateBrowserHistory(dict); if (K_S.getElem.categorySPLabel && K_S.getElem.categoryPCLabel) { K_S.getElem.categorySPLabel.textContent = K_S.getElem.categoryPCLabel.textContent; } }).then(() => { K_S.fn.setSuggest.saveHistory(self); K_S.fn.setLoadAssets(K_S.getElem.searchDL, `&webseries_id=${webSeriesId}&s=1&o=0`, false, false, true); searchLinkList.classList.remove(K_S.CONFIG.HIDDEN_ATTR); }); }; util.getJSON(loadPath).then((response) => { outputSelector.textContent = ''; if (response.result.series.length) { win.console.log(`Series Suggest API: ${loadPath}`); response.result.series.forEach((item) => { const nodeClone = util.createNodeClone(template); const series = nodeClone.querySelector('.Series'); const commonName = nodeClone.querySelector('.CommonName'); const name = nodeClone.querySelector('.Name'); const disconLabel = nodeClone.querySelector('.DisconLabel'); const thumbnail = nodeClone.querySelector('.Thumbnail img'); const catalog = nodeClone.querySelector('.Catalog'); const price = nodeClone.querySelector('.Price'); const list = nodeClone.querySelector('.prd-layout-cluster'); if (series) { series.dataset.webseriesId = item.webseries_id; series.dataset.webseriesName = item.webseries_name; series.addEventListener('click', fn.setWhenClick, false); } if (commonName) { commonName.textContent = item.webseriescommon_name; } if (name) { name.textContent = item.display_name; } if (thumbnail) { thumbnail.src = `${GLOBAL.ORIGINAL_DOMAIN}/img/products/series/${item.product_thumbnail_id}_M.jpg`; } if (disconLabel) { disconLabel.remove(); } if (catalog) { if (catalog.closest('li')) { catalog.closest('li').remove(); } } if (price) { if (price.closest('li')) { price.closest('li').remove(); } } if (list) { if (!list.children.length) { list.remove(); } } fragment.appendChild(nodeClone); }); outputSelector.appendChild(fragment); } setSuggest.changeDisplay(response.result.series, suggestBox, '.js-loadSeriesWithPrioritySort-target'); }).catch((error) => { win.console.log(error); }); }; K_S.fn.setSuggest.loadModels = function (outputSelector, loadPath) { var setSuggest = this; var fragment = doc.createDocumentFragment(); var trackingParam = 'search_sl'; var trackingVal = 1; var nodeClone; var model; var modelName; var setWhenClick; var suggestBox; if (!K_S.getElem.suggestModelTemplate || !outputSelector) { return; } setWhenClick = function (e) { var self = this; e.preventDefault(); setSuggest.saveHistory(self); location.href = self.href; }; suggestBox = outputSelector.closest('.JSSearchSuggestTarget'); util.getJSON(loadPath).then(function (response) { outputSelector.querySelectorAll('#' + outputSelector.id + '>li').forEach(function (items) { items.remove(); }); if (response.result.models.length) { console.log('Model Suggest API: ' + loadPath); suggestBox.querySelectorAll('.JSSuggestModelResultNum').forEach(function (items) { items.textContent = response.result.attribute.total; }); response.result.models.forEach(function (items) { nodeClone = util.createNodeClone(K_S.getElem.suggestModelTemplate, 'li'); model = nodeClone.querySelector('.Model'); modelName = nodeClone.querySelector('.Name'); if (model) { if (!modelName) { model.textContent = items.webproduct_name; } model.href = items.url + '?' + trackingParam + '=' + trackingVal; model.addEventListener('click', setWhenClick, false); } if (modelName) { modelName.textContent = items.webproduct_name; } fragment.appendChild(nodeClone); }); outputSelector.appendChild(fragment); } if (suggestBox) { setSuggest.changeDisplay(response.result.models, suggestBox, '.ModelArea'); } }).catch(function (error) { console.log(error); }); }; K_S.fn.setSuggest.loadModelsWithPrioritySort = function (outputSelector, loadPath) { const setSuggest = this; const modelsArea = doc.querySelector('.js-loadModelsWithPrioritySort-target'); const suggestBox = outputSelector ? outputSelector.closest('.JSSearchSuggestTarget') : null; const template = K_S.getElem.suggestModelTemplate; const fragment = doc.createDocumentFragment(); const fn = {}; if (!modelsArea || !template || !outputSelector || !suggestBox) { return; } fn.setWhenClick = function (e) { const self = this; const inputElm = self.closest('.JSSearchSuggest') ? self.closest('.JSSearchSuggest').querySelector('.JSSearchSuggestInput') : null; const displayName = self.querySelector('.Name').innerHTML; e.preventDefault(); if (inputElm) { inputElm.value = displayName; } suggestBox.classList.add(K_S.CONFIG.HIDDEN_ATTR); const dict = util.makeQueryIntoDict(); const promise = Promise.resolve(); const loadMoreTarget = doc.querySelector('.JSLoadMoreTarget'); const searchLinkList = K_S.getElem.drillDownNav ? K_S.getElem.drillDownNav.querySelector('.SearchLinkList01') : null; const webProductId = self.dataset.webproductId; if (!loadMoreTarget || !searchLinkList) { return; } promise.then(() => { loadMoreTarget.setAttribute('data-group-id', ''); loadMoreTarget.setAttribute('data-type-id', ''); loadMoreTarget.setAttribute('data-series-id', ''); dict.q = ''; dict.s = 2; dict.group_id = ''; dict.type_id = ''; dict.webseries_id = ''; util.updateBrowserHistory(dict); if (K_S.getElem.categorySPLabel && K_S.getElem.categoryPCLabel) { K_S.getElem.categorySPLabel.textContent = K_S.getElem.categoryPCLabel.textContent; } }).then(() => { K_S.fn.setSuggest.saveHistory(self); K_S.fn.setLoadAssets(K_S.getElem.searchDL, `&webproduct_id=${webProductId}&s=2&o=0`, false, false, true); searchLinkList.classList.remove(K_S.CONFIG.HIDDEN_ATTR); }); }; util.getJSON(loadPath).then((response) => { outputSelector.textContent = ''; if (response.result.models.length) { win.console.log(`Model Suggest API: ${loadPath}`); response.result.models.forEach((item) => { const nodeClone = util.createNodeClone(template); const modelLink = nodeClone.querySelector('.Model'); const modelText = nodeClone.querySelector('.Name'); if (modelLink) { modelLink.dataset.webproductId = item.webproduct_id; modelLink.addEventListener('click', fn.setWhenClick, false); } if (modelText) { modelText.textContent = item.webproduct_name; } fragment.appendChild(nodeClone); }); outputSelector.appendChild(fragment); } setSuggest.changeDisplay(response.result.models, suggestBox, '.js-loadModelsWithPrioritySort-target'); }).catch((error) => { win.console.log(error); }); }; K_S.fn.setSuggest.changeDisplay = function (response, suggestBox, selfArea) { var suggestColumn = suggestBox.querySelector('.JSSuggestColumn'); var searchHistory = suggestBox.querySelector('.JSSearchHistory'); var seriesArea = suggestBox.querySelector('.SeriesArea'); var modelArea = suggestBox.querySelector('.ModelArea'); var keywordArea = suggestBox.querySelector('.KeywordArea'); if (keywordArea) { keywordArea.classList.add(K_S.CONFIG.HIDDEN_ATTR); } if (response.length) { suggestBox.classList.remove(K_S.CONFIG.HIDDEN_ATTR); if (suggestColumn) { suggestColumn.classList.remove(K_S.CONFIG.HIDDEN_ATTR); } if (suggestBox.classList.contains('SearchAllCategory')) { if (searchHistory) { suggestBox.classList.remove('History'); searchHistory.classList.add(K_S.CONFIG.HIDDEN_ATTR); } if (suggestBox.querySelector(selfArea)) { suggestBox.querySelector(selfArea).classList.remove(K_S.CONFIG.HIDDEN_ATTR); suggestBox.querySelector(selfArea).closest('.Column').classList.remove(K_S.CONFIG.HIDDEN_ATTR); if (suggestBox.closest('.JSHeaderSuggest')) { doc.body.classList.add(K_S.CONFIG.SUGGEST_SHOW_ATTR); if (K_S.getElem.menuOverlay) { K_S.getElem.menuOverlay.setAttribute('data-owner', 'suggest'); } } } } else { if (suggestBox.querySelector(selfArea)) { suggestBox.querySelector(selfArea).classList.remove(K_S.CONFIG.HIDDEN_ATTR); if (suggestBox.closest('.JSHeaderSuggest')) { doc.body.classList.add(K_S.CONFIG.SUGGEST_SHOW_ATTR); if (K_S.getElem.menuOverlay) { K_S.getElem.menuOverlay.setAttribute('data-owner', 'suggest'); } } } } } else { if (suggestBox.classList.contains('SearchAllCategory')) { if (suggestBox.querySelector(selfArea)) { suggestBox.querySelector(selfArea).classList.add(K_S.CONFIG.HIDDEN_ATTR); } if (seriesArea && seriesArea.classList.contains(K_S.CONFIG.HIDDEN_ATTR) && modelArea && modelArea.classList.contains(K_S.CONFIG.HIDDEN_ATTR)) { seriesArea.closest('.Column').classList.add(K_S.CONFIG.HIDDEN_ATTR); if (suggestBox.closest('.JSHeaderSuggest')) { doc.body.classList.remove(K_S.CONFIG.SUGGEST_SHOW_ATTR); } } if (seriesArea && seriesArea.classList.contains(K_S.CONFIG.HIDDEN_ATTR) && modelArea && modelArea.classList.contains(K_S.CONFIG.HIDDEN_ATTR) && keywordArea && keywordArea.classList.contains(K_S.CONFIG.HIDDEN_ATTR)) { suggestBox.classList.add(K_S.CONFIG.HIDDEN_ATTR); if (suggestColumn) { suggestColumn.classList.add(K_S.CONFIG.HIDDEN_ATTR); } if (suggestBox.closest('.JSHeaderSuggest')) { doc.body.classList.remove(K_S.CONFIG.SUGGEST_SHOW_ATTR); } } } else { if (suggestBox.querySelector(selfArea)) { suggestBox.querySelector(selfArea).classList.add(K_S.CONFIG.HIDDEN_ATTR); } suggestBox.classList.add(K_S.CONFIG.HIDDEN_ATTR); } } }; K_S.fn.setSuggest.loadAssets = function (outputSelector, loadPath) { var setSuggest = this; var fragment = doc.createDocumentFragment(); var nodeClone; var link; var title; var lang; var thumbnail; var setWhenClick; var suggestBox; if (!K_S.getElem.suggestAssetTemplate || !outputSelector) { return; } setWhenClick = function (e) { var self = this; e.preventDefault(); setSuggest.saveHistory(self); location.href = self.href; }; suggestBox = outputSelector.closest('.JSSearchSuggestTarget'); util.getJSON(loadPath).then(function (response) { if (!response.length) { suggestBox.classList.add(K_S.CONFIG.HIDDEN_ATTR); return; } console.log('Asset Suggest API: ' + loadPath); outputSelector.querySelectorAll('#' + outputSelector.id + '>li').forEach(function (items) { items.remove(); }); response.forEach(function (items) { nodeClone = util.createNodeClone(K_S.getElem.suggestAssetTemplate, 'li'); link = nodeClone.querySelector('.Link'); title = nodeClone.querySelector('.Title'); lang = nodeClone.querySelector('.Lang'); thumbnail = nodeClone.querySelector('.Thumbnail img'); if (link) { link.href = GLOBAL.ORIGINAL_DOMAIN + '/download/download/confirmation/' + '?dlAssetId=' + items.asset_id + '&dlSeriesId=' + '&dlModelId=' + '&dlLangId=' + '&dlLangType=' + items.language_type_id; link.addEventListener('click', setWhenClick, false); } if (title) { title.textContent = items.asset_name; } if (lang) { if (GLOBAL.SELECT_LANG1 && GLOBAL.SELECT_LANG1[items.language_type_id]) { lang.textContent = GLOBAL.SELECT_LANG1[items.language_type_id]; } else if (GLOBAL.SELECT_LANG2 && GLOBAL.SELECT_LANG2[items.language_type_id]) { lang.textContent = GLOBAL.SELECT_LANG2[items.language_type_id]; } else if (GLOBAL.SELECT_LANG && GLOBAL.SELECT_LANG[items.language_type_id]) { lang.textContent = GLOBAL.SELECT_LANG[items.language_type_id]; } } if (thumbnail) { thumbnail.src = GLOBAL.ORIGINAL_DOMAIN + '/img/asset/' + items.asset_thumbnail + '.jpg'; } fragment.appendChild(nodeClone); }); outputSelector.appendChild(fragment); suggestBox.classList.remove(K_S.CONFIG.HIDDEN_ATTR); suggestBox.querySelector('.JSSuggestColumn').classList.remove(K_S.CONFIG.HIDDEN_ATTR); }).catch(function (error) { console.log(error); }); }; K_S.fn.setSuggest.loadHistory = function (outputSelector, inputElem) { var setSuggest = this; var fragment = doc.createDocumentFragment(); var cookie = util.getCookie(K_S.CONFIG.HISTORY_COOKIE_NAME); var nodeClone; var history; var historyTxt; var setWhenClick; if (!K_S.getElem.searchHistoryTemplate || !cookie) { return; } setWhenClick = function (e) { var self = this; e.preventDefault(); inputElem.value = this.title; inputElem.focus(); setSuggest.saveHistory(self); }; JSON.parse(cookie).forEach(function (items) { items = decodeURIComponent(items); nodeClone = util.createNodeClone(K_S.getElem.searchHistoryTemplate, 'li'); history = nodeClone.querySelector('.History'); historyTxt = nodeClone.querySelector('.Text'); if (history) { history.title = items; if (!historyTxt) { history.textContent = items; } history.addEventListener('click', setWhenClick, false); } if (historyTxt) { historyTxt.textContent = items; } fragment.appendChild(nodeClone); }); if (!outputSelector) { return; } outputSelector.querySelectorAll('li').forEach(function (items) { items.remove(); }); outputSelector.appendChild(fragment); }; K_S.fn.setSuggest.saveHistory = function (eventElem) { var existingCookie = util.getCookie(K_S.CONFIG.HISTORY_COOKIE_NAME); var historyArr = []; var text; if (existingCookie) { historyArr = JSON.parse(existingCookie); } text = eventElem.textContent; text = encodeURIComponent(text); historyArr.unshift(text); historyArr = util.removeOverlapArr(historyArr); if (historyArr.length > K_S.CONFIG.HISTORY_MAX_SAVED_NUM) { historyArr.pop(); } util.setCookie(K_S.CONFIG.HISTORY_COOKIE_NAME, JSON.stringify(historyArr)); }; K_S.fn.setSearchString = function () { var input; var pageParamInput; var dict; if (!K_S.getElem.mainContForm) { return; } doc.querySelector('body').setAttribute('data-main-suggest', 'true'); input = K_S.getElem.mainContForm.querySelector('.JSSearchSuggestInput'); pageParamInput = doc.getElementById('JSAssetPageParam'); dict = util.makeQueryIntoDict(); if (dict.q) { dict.q = dict.q.replace(/\+/g, ' '); input.value = decodeURIComponent(dict.q); } if (dict.mode) { pageParamInput.value = decodeURIComponent(dict.mode); } }; K_S.fn.setSubmit = function () { var searchButton = doc.querySelectorAll('.JSSearchButton'); var searchLinkList; var setWhenClick; var hasTouchScreen = false; var ua = win.navigator.userAgent; var mQ; if (!searchButton.length) { return; } setWhenClick = function (e) { var self = this; var dict = util.makeQueryIntoDict(); var existingCookie = util.getCookie(K_S.CONFIG.HISTORY_COOKIE_NAME); var historyArr = []; var form = self.closest('form'); var inputElem = self.closest('.JSSearchSuggest').querySelector('.JSSearchSuggestInput'); var trackingParam = 'search_dl'; var disabledClass = 'IsDisabled'; var trackingVal = 1; var value; var loadPath; var activeHref; var legacyTabList; var tabList; e.preventDefault(); value = inputElem.value.trim(); if ('maxTouchPoints' in navigator) { hasTouchScreen = win.navigator.maxTouchPoints > 0; if (ua.indexOf('Edge') !== -1) { if (ua.indexOf('Windows Phone') === -1 && ua.indexOf('IEMobile') === -1) { hasTouchScreen = false; } } } else if ('msMaxTouchPoints' in navigator) { hasTouchScreen = win.navigator.msMaxTouchPoints > 0; } else { mQ = win.matchMedia && matchMedia('(pointer:coarse)'); if (mQ && mQ.media === '(pointer:coarse)') { hasTouchScreen = Boolean(mQ.matches); } else if ('orientation' in win) { hasTouchScreen = true; } else { hasTouchScreen = ( /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(ua) || /\b(Android|Windows Phone|iPad|iPod)\b/i.test(ua) ); } } if (value) { inputElem.value = value; if (existingCookie) { historyArr = JSON.parse(existingCookie); } value = encodeURIComponent(value); historyArr.unshift(value); historyArr = util.removeOverlapArr(historyArr); if (historyArr.length > K_S.CONFIG.HISTORY_MAX_SAVED_NUM) { historyArr.pop(); } util.setCookie(K_S.CONFIG.HISTORY_COOKIE_NAME, JSON.stringify(historyArr)); loadPath = K_S.API_PATH.PRODUCT_COMPLETE_MATCH + 'q=' + value.toUpperCase(); dict.q = value; dict.o = 0; dict.s = 3; if (self.closest('#HeaderSearch') || self.closest('#TopSearchForm')) { util.getJSON(loadPath).then(function (response) { if (response[0].url && /\/all/.test(form.action)) { location.href = response[0].url + '?' + trackingParam + '=' + trackingVal; } else { form.submit(); } }).catch(function (error) { console.log(error); form.submit(); }); } else { if (hasTouchScreen) { inputElem.blur(); } if (self.classList.contains(disabledClass)) { return; } self.classList.add(disabledClass); setTimeout(function () { self.classList.remove(disabledClass); }, 500); util.updateBrowserHistory(dict); if (K_S.getElem.searchDL) { K_S.fn.setLoadAssets(K_S.getElem.searchDL, '&s=3&o=0'); } if (K_S.getElem.searchDLSo) { K_S.fn.setLoadAssets(K_S.getElem.searchDLSo, '&s=3&o=0'); } if (K_S.getElem.searchDLCd) { K_S.fn.setLoadAssets(K_S.getElem.searchDLCd, '&s=3&o=0'); } if (K_S.getElem.searchDLMa) { K_S.fn.setLoadAssets(K_S.getElem.searchDLMa, '&s=3&o=0'); } if (K_S.getElem.searchDLCa) { K_S.fn.setLoadAssets(K_S.getElem.searchDLCa, '&s=3&o=0'); } if (K_S.getElem.searchDLCA) { K_S.fn.setLoadAssets(K_S.getElem.searchDLCA, '&o=0'); } if (K_S.getElem.searchDLTG) { K_S.fn.setLoadAssets(K_S.getElem.searchDLTG, '&o=0'); } K_S.fn.setLoadDataSheets('&s=3&o=0'); K_S.fn.setLoadSeries('&s=3&o=0'); K_S.fn.setLoadPages('&s=3&o=0'); K_S.fn.setLoadModels('&s=3&o=0'); K_S.fn.setLoadProbablyTheseModels(); if (K_S.getElem.drillDownNav) { searchLinkList = K_S.getElem.drillDownNav.querySelector('.SearchLinkList01'); searchLinkList.classList.remove(K_S.CONFIG.HIDDEN_ATTR); } } } else { inputElem.value = ''; if (self.closest('#HeaderSearch') || self.closest('#TopSearchForm')) { form.submit(); } else { legacyTabList = doc.querySelector('.JSSearchQueryTakeover.SearchTabList'); tabList = K_S.getElem.loadResultsNav; if (legacyTabList) { activeHref = legacyTabList.querySelector('li.' + K_S.CONFIG.ACTIVE_ATTR + '> a').href; } if (tabList) { activeHref = tabList.querySelector('a[aria-current="page"]').href; } form.setAttribute('action', activeHref); form.submit(); } } }; searchButton.forEach(function (selector) { selector.addEventListener('click', setWhenClick, false); }); }; K_S.fn.setResultDisplay = function (list) { var promise = Promise.resolve(); var setWhenAnimateEnd = function () { var self = this; self.tabIndex = 0; self.focus(); }; list.forEach(function (items, index) { if (items.classList.contains(K_S.CONFIG.HIDDEN_ATTR)) { items.classList.remove(K_S.CONFIG.HIDDEN_ATTR); if (index > 0 && index % K_S.CONFIG.ONE_TIME_DISPLAY_MAX_NUM === 0 && items.closest('ul').getAttribute('data-filter') !== 'all' ) { if (items.closest('ul').getBoundingClientRect().bottom - items.getBoundingClientRect().height < 0) { promise.then(function () { items.addEventListener('animationend', setWhenAnimateEnd, false); }).then(function () { K_S.getElem.docElement.scrollTop = items.getBoundingClientRect().top + K_S.getElem.docElement.scrollTop; }); } else { items.addEventListener('animationend', setWhenAnimateEnd, false); } } } else { if (index > 0 && index % K_S.CONFIG.ONE_TIME_DISPLAY_MAX_NUM === 0 && items.closest('ul').getAttribute('data-filter') !== 'all' ) { if (items.closest('ul').getBoundingClientRect().bottom - items.getBoundingClientRect().height < 0) { promise.then(function () { items.tabIndex = 0; items.focus(); }).then(function () { K_S.getElem.docElement.scrollTop = items.getBoundingClientRect().top + K_S.getElem.docElement.scrollTop; }); } else { items.tabIndex = 0; items.focus(); } } } }); }; K_S.fn.setLoadPages = function (addOffsetParam, callback) { var dict = util.makeQueryIntoDict(); var displayMaxNum; var fragment; var nodeClone; var list; var loadPath; var outputSelectorGroup; if (!K_S.getElem.searchPageList || !K_S.getElem.searchPageListTemplate) { return; } displayMaxNum = K_S.getElem.searchPageList.getAttribute('data-limit'); fragment = doc.createDocumentFragment(); loadPath = K_S.fn.getPagesLoadPath(); if (typeof dict.o === 'undefined') { dict.o = 0; } if (typeof dict.s === 'undefined') { dict.s = ''; } if (!addOffsetParam) { addOffsetParam = `&o=${dict.o}&s=${dict.s}`; } console.log('Keywords API: ' + loadPath + addOffsetParam); util.getJSON(loadPath + addOffsetParam).then(function (response) { var contentsArr = response.result.contents; var resultTotal = response.result.attribute.total; var resultOffset = response.result.attribute.offset; var updateListStr = '#' + K_S.getElem.searchPageList.id + '>li'; if (resultOffset === 0) { K_S.getElem.searchPageList.querySelectorAll(updateListStr).forEach(function (items) { items.remove(); }); } if (!resultTotal) { K_S.getElem.searchPageList.classList.add(K_S.CONFIG.NORESULT_ATTR); } else { K_S.getElem.searchPageList.classList.remove(K_S.CONFIG.NORESULT_ATTR); } outputSelectorGroup = K_S.getElem.searchPageList.closest('.SearchDownloadListGroup'); if (outputSelectorGroup) { if (resultTotal > 0) { outputSelectorGroup.hidden = false; } else { outputSelectorGroup.hidden = true; } } doc.querySelectorAll('.JSPagesResultNum').forEach(function (items) { items.textContent = resultTotal; }); contentsArr.forEach(function (items, index) { if (displayMaxNum && index > (displayMaxNum - 1)) { return; } nodeClone = util.createNodeClone(K_S.getElem.searchPageListTemplate, 'li'); K_S.fn.setPagesDisplay(nodeClone, items); fragment.appendChild(nodeClone); }); K_S.getElem.searchPageList.appendChild(fragment); list = K_S.getElem.searchPageList.querySelectorAll(updateListStr); K_S.fn.setMoreBtnDisplay(resultOffset, resultTotal); K_S.fn.setResultDisplay(list); }).then(function () { if (callback) { callback(); } }).catch(function (error) { console.log(error); }); }; K_S.fn.getPagesLoadPath = function () { var inputValue; var loadPath; if (K_S.getElem.mainContForm) { inputValue = K_S.getElem.mainContForm.querySelector('.JSSearchSuggestInput').value; inputValue = inputValue.replace(/\+/g, ' '); inputValue = encodeURIComponent(inputValue.trim()); } else { inputValue = ''; } loadPath = K_S.API_PATH.PAGE + 'q=' + inputValue + '&l=' + K_S.CONFIG.ONE_TIME_DATA_LOAD_MAX_NUM; return loadPath; }; K_S.fn.setPagesDisplay = function (nodeClone, JSONItems) { var legacyElems = { title: nodeClone.querySelector('.Title'), description: nodeClone.querySelector('.Description'), url: nodeClone.querySelector('.Url'), }; var elems = { title: legacyElems.title ? legacyElems.title : nodeClone.querySelector('.js-setPagesDisplay-title'), titleUrl: nodeClone.querySelector('.js-setPagesDisplay-titleUrl'), description: legacyElems.description ? legacyElems.description : nodeClone.querySelector('.js-setPagesDisplay-description'), url: legacyElems.url ? legacyElems.url : nodeClone.querySelector('.js-setPagesDisplay-url'), urlText: nodeClone.querySelector('.js-setPagesDisplay-urlText'), }; if (elems.title) { elems.title.textContent = JSONItems.title; elems.title.href = JSONItems.content_url; } if (elems.titleUrl) { elems.titleUrl.href = JSONItems.content_url; } if (elems.description) { if (JSONItems.description) { elems.description.textContent = JSONItems.description; } } if (elems.url) { if (elems.url === legacyElems.url) { elems.url.textContent = JSONItems.content_url; } elems.url.href = JSONItems.content_url; } if (elems.urlText) { elems.urlText.textContent = JSONItems.content_url; } }; K_S.fn.setLoadModels = function (addOffsetParam, callback) { var dict = util.makeQueryIntoDict(); var displayMaxNum; var fragment; var nodeClone; var loadPath; var outputSelectorGroup; var probablyModelGroup; if (!K_S.getElem.searchModelList || !K_S.getElem.searchModelListTemplate) { return; } displayMaxNum = K_S.getElem.searchModelList.getAttribute('data-limit'); fragment = doc.createDocumentFragment(); loadPath = K_S.fn.getModelsLoadPath(); if (typeof dict.o === 'undefined') { dict.o = 0; } if (typeof dict.s === 'undefined') { dict.s = ''; } if (!addOffsetParam) { addOffsetParam = `&o=${dict.o}&s=${dict.s}`; } console.log('Models API: ' + loadPath + addOffsetParam); util.getJSON(loadPath + addOffsetParam).then(function (response) { var modelsArr = response.result.models; var resultTotal = response.result.attribute.total; var resultOffset = response.result.attribute.offset; var updateListStr = '#' + K_S.getElem.searchModelList.id + '>li'; if (resultOffset === 0) { K_S.getElem.searchModelList.querySelectorAll(updateListStr).forEach(function (items) { items.remove(); }); } doc.querySelectorAll('.JSModelsResultNum').forEach(function (items) { items.textContent = resultTotal; }); outputSelectorGroup = K_S.getElem.searchModelList.closest('.SearchDownloadListGroup'); probablyModelGroup = K_S.getElem.searchProbablyModelList.closest('.SearchDownloadListGroup'); if (outputSelectorGroup) { if (resultTotal > 0) { outputSelectorGroup.hidden = false; if (probablyModelGroup.hidden === false) { probablyModelGroup.hidden = true; } } else { outputSelectorGroup.hidden = true; } } modelsArr.forEach(function (items, index) { if (displayMaxNum && index > (displayMaxNum - 1)) { return; } nodeClone = util.createNodeClone(K_S.getElem.searchModelListTemplate, 'li'); K_S.fn.setModelsDisplay(nodeClone, items); fragment.appendChild(nodeClone); }); K_S.getElem.searchModelList.appendChild(fragment); }).then(function () { if (callback) { callback(); } }).catch(function (error) { console.log(error); }); }; K_S.fn.setLoadProbablyTheseModels = function (callback) { var displayMaxNum; var fragment; var nodeClone; var loadPath; var outputSelectorGroup; var modelGroup; if (!K_S.getElem.searchProbablyModelList || !K_S.getElem.searchModelListTemplate) { return; } displayMaxNum = K_S.getElem.searchModelList.getAttribute('data-limit'); fragment = doc.createDocumentFragment(); loadPath = K_S.fn.getProbablyTheseModelsLoadPath(); console.log('Probably These Models API: ' + loadPath); util.getJSON(loadPath).then(function (response) { var modelsArr = response.didyoumean_product_model; var updateListStr = '#' + K_S.getElem.searchProbablyModelList.id + '>li'; var resultTotal = response.didyoumean_product_model.length; K_S.getElem.searchProbablyModelList.querySelectorAll(updateListStr).forEach(function (items) { items.remove(); }); outputSelectorGroup = K_S.getElem.searchProbablyModelList.closest('.SearchDownloadListGroup'); modelGroup = K_S.getElem.searchModelList.closest('.SearchDownloadListGroup'); if (outputSelectorGroup) { if (resultTotal === 0) { outputSelectorGroup.hidden = true; } else { outputSelectorGroup.hidden = false; if (modelGroup.hidden === false) { outputSelectorGroup.hidden = true; } } } modelsArr.forEach(function (items, index) { if (displayMaxNum && index > (displayMaxNum - 1)) { return; } nodeClone = util.createNodeClone(K_S.getElem.searchModelListTemplate, 'li'); K_S.fn.setModelsDisplay(nodeClone, items); fragment.appendChild(nodeClone); }); K_S.getElem.searchProbablyModelList.appendChild(fragment); }).then(function () { if (callback) { callback(); } }).catch(function (error) { console.log(error); }); }; K_S.fn.getModelsLoadPath = function () { var discontinuedCookie = util.getCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME); var inputValue; var loadPath; var discontinuedParam; if (typeof discontinuedCookie !== 'undefined') { if (discontinuedCookie === '1') { discontinuedParam = 1; } else { discontinuedParam = 0; } } else { discontinuedParam = 0; } if (K_S.getElem.mainContForm) { inputValue = K_S.getElem.mainContForm.querySelector('.JSSearchSuggestInput').value; inputValue = inputValue.replace(/\+/g, ' '); inputValue = encodeURIComponent(inputValue.trim()); } else { inputValue = ''; } loadPath = K_S.API_PATH.SUGGEST_MODEL + 'q=' + inputValue + '&l=20' + '&discontinued_flag=' + discontinuedParam; return loadPath; }; K_S.fn.getProbablyTheseModelsLoadPath = function () { var inputValue; var loadPath; if (K_S.getElem.mainContForm) { inputValue = K_S.getElem.mainContForm.querySelector('.JSSearchSuggestInput').value; inputValue = inputValue.replace(/\+/g, ' '); inputValue = encodeURIComponent(inputValue.trim()); } else { inputValue = ''; } loadPath = K_S.API_PATH.DID_YOU_MEAN_MODEL + 'q=' + inputValue + '&l=20' + '&s=70'; return loadPath; }; K_S.fn.setModelsDisplay = function (nodeClone, JSONItems) { var model = nodeClone.querySelector('.Model'); var modelName = nodeClone.querySelector('.ModelName'); var modelUrl = nodeClone.querySelector('.ModelUrl'); if (model) { model.textContent = JSONItems.webproduct_name; model.href = JSONItems.url; } if (modelName) { modelName.textContent = JSONItems.webproduct_name; } if (modelUrl) { modelUrl.href = JSONItems.url; } }; K_S.fn.setLoadAssets = function (outputSelector, addOffsetParam, drilldownNotUpdateFlag, callback, customParam) { var dict = util.makeQueryIntoDict(); var displayMaxNum; var outputSelectorGroup; var searchNotes; var keyDescription; var fragment; var fragmentSo; var fragmentCd; var nodeClone; var nodeCloneSo; var nodeCloneCd; var list; var loadPath; var fn = {}; if (!outputSelector || !K_S.getElem.searchDLTemplate) { return; } displayMaxNum = outputSelector.getAttribute('data-limit'); outputSelectorGroup = outputSelector.closest('.SearchDownloadListGroup'); searchNotes = doc.querySelector('.SearchDownloadNotes'); keyDescription = doc.querySelector('.js-assetsKeyDescription'); fragment = doc.createDocumentFragment(); fragmentSo = doc.createDocumentFragment(); fragmentCd = doc.createDocumentFragment(); loadPath = K_S.fn.getAssetsLoadPath(outputSelector); if (typeof dict.o === 'undefined') { dict.o = 0; } if (typeof dict.s === 'undefined') { dict.s = ''; } if (typeof dict.modelId === 'undefined') { dict.modelId = ''; } if (!addOffsetParam) { addOffsetParam = `&o=${dict.o}&s=${dict.s}`; } if (/^\/products\/[a-zA-Z0-9-_]+\/[a-zA-Z0-9-_]+\/[a-zA-Z0-9-_]+\/downloads\/$/.test(win.location.pathname)) { if (dict.modelId) { addOffsetParam = `&o=${dict.o}&s=2`; } else { addOffsetParam = `&o=${dict.o}&s=1`; } } fn.updateNav = function () { if (K_S.getElem.loadResultsNav && !/all/.test(location.pathname)) { K_S.getElem.loadResultsNav.querySelectorAll('a[data-mode]').forEach(function (items) { items.href = items.pathname + '?mode=' + items.dataset.mode + '&modelId=' + dict.modelId; if (!dict.mode) { dict.mode = 'ca'; } if (dict.mode === items.dataset.mode) { items.setAttribute('aria-current', 'page'); } }); } }; fn.setResultNum = function (selector, resultTotal) { if (selector.querySelectorAll('.JSAssetsResultNum').length) { selector.querySelectorAll('.JSAssetsResultNum').forEach(function (items) { items.textContent = resultTotal; }); } if (selector.querySelectorAll('.js-loadAssets-resultsNumber').length) { selector.querySelectorAll('.js-loadAssets-resultsNumber').forEach(function (items) { items.textContent = resultTotal; }); } }; fn.updateNav(); if (customParam) { const url = new URL(loadPath); const urlParams = url.searchParams; urlParams.delete('q'); urlParams.delete('group_id'); urlParams.delete('type_id'); urlParams.delete('webseries_id'); urlParams.delete('webproduct_id'); loadPath = url.href; } console.log('Asset API: ' + loadPath + addOffsetParam); util.getJSON(loadPath + addOffsetParam).then(function (response) { var seriesID = response.meta.request_params.webseries_id[0]; var assetsArr = response.result.assets; var resultTotal = response.result.attribute.total; var resultOffset = response.result.attribute.offset; var updateListStr = '#' + outputSelector.id + '>li'; if (resultOffset === 0) { outputSelector.querySelectorAll(updateListStr).forEach(function (items) { items.remove(); }); } if (!seriesID) { seriesID = ''; } if (!resultTotal) { outputSelector.classList.add(K_S.CONFIG.NORESULT_ATTR); } else { outputSelector.classList.remove(K_S.CONFIG.NORESULT_ATTR); } if (outputSelectorGroup) { fn.setResultNum(outputSelectorGroup, resultTotal); if (resultTotal > 0) { outputSelectorGroup.hidden = false; } else { outputSelectorGroup.hidden = true; } } else { fn.setResultNum(doc, resultTotal); } assetsArr.forEach(function (items, index) { if (displayMaxNum && index > (displayMaxNum - 1)) { return; } nodeClone = util.createNodeClone(K_S.getElem.searchDLTemplate, 'li'); K_S.fn.setAssetsDisplay(nodeClone, items, seriesID); fragment.appendChild(nodeClone); if (K_S.getElem.searchDLSoTemplate) { nodeCloneSo = util.createNodeClone(K_S.getElem.searchDLSoTemplate, 'li'); K_S.fn.setAssetsDisplay(nodeCloneSo, items, seriesID); fragmentSo.appendChild(nodeCloneSo); } if (K_S.getElem.searchDLCdTemplate) { nodeCloneCd = util.createNodeClone(K_S.getElem.searchDLCdTemplate, 'li'); K_S.fn.setAssetsDisplay(nodeCloneCd, items, seriesID); fragmentCd.appendChild(nodeCloneCd); } }); switch (outputSelector.id) { case 'js-loadSoAssets': outputSelector.appendChild(fragmentSo); break; case 'js-loadCdAssets': outputSelector.appendChild(fragmentCd); break; default: outputSelector.appendChild(fragment); } if (searchNotes) { if (outputSelector.querySelector('.IconKey')) { searchNotes.classList.add(K_S.CONFIG.SHOW_ATTR); } else { searchNotes.classList.remove(K_S.CONFIG.SHOW_ATTR); } } if (outputSelectorGroup) { if (outputSelectorGroup.querySelector('.js-assetsKeyDescription')) { if (outputSelector.querySelector('.js-setAssetsDisplay-keyIcon')) { outputSelectorGroup.querySelector('.js-assetsKeyDescription').hidden = false; } else { outputSelectorGroup.querySelector('.js-assetsKeyDescription').hidden = true; } } } else { if (keyDescription) { if (outputSelector.querySelector('.js-setAssetsDisplay-keyIcon')) { keyDescription.hidden = false; } else { keyDescription.hidden = true; } } } if (outputSelector.getAttribute('data-filter') === 'all') { if (outputSelector.getAttribute('data-card-slider') === 'true') { if (outputSelector.closest('.js-horizontal-scroll')) { outputSelector.closest('.js-horizontal-scroll').classList.toggle( 'is-overflowing', outputSelector.scrollWidth > outputSelector.clientWidth ); } } else { if (K_S.CONFIG.SMALL_SCREEN_MQ.matches) { if (displayMaxNum > 1) { K_S.fn.slider(outputSelector); } } else { if (displayMaxNum > 5) { K_S.fn.slider(outputSelector); } } } } list = outputSelector.querySelectorAll(updateListStr); K_S.fn.setMoreBtnDisplay(resultOffset, resultTotal); K_S.fn.setResultDisplay(list); if (!drilldownNotUpdateFlag) { K_S.fn.setDrillDown.run(response); } }).then(function () { if (callback) { callback(); } }).catch(function (error) { console.log(error); }); }; K_S.fn.getAssetsLoadPath = function (outputSelector) { var dict = util.makeQueryIntoDict(); var langCookie = (dict.mode === 'ma') || ((outputSelector.getAttribute('data-filter') === 'all') && (outputSelector.getAttribute('data-asset-type') === '13')) ? util.getCookie(K_S.CONFIG.SELECT_MANUAL_LANG_COOKIE_NAME) : util.getCookie(K_S.CONFIG.SELECT_LANG_COOKIE_NAME); var fileCookie = util.getCookie(K_S.CONFIG.SELECT_FILE_COOKIE_NAME); var categoryCookieName = util.addAssetTypeToString(K_S.CONFIG.SELECT_CATEGORY_COOKIE_NAME); var categoryCookie = util.getCookie(categoryCookieName); var selectLangParam = ''; var selectFileParam = ''; var selectCategoryParam = ''; var groupIDParam = ''; var typeIDParam = ''; var seriesIDParam = ''; var assetIDParam = ''; var productIDParam = ''; var inputValue; var drilldownFlagParam; var loadPath; var limit = outputSelector.getAttribute('data-limit') ? outputSelector.getAttribute('data-limit') : K_S.CONFIG.ONE_TIME_DATA_LOAD_MAX_NUM; if (!langCookie) { if (outputSelector.getAttribute('data-filter') === 'all') { if (outputSelector.getAttribute('data-asset-type') === '13') { util.setCookie(K_S.CONFIG.SELECT_MANUAL_LANG_COOKIE_NAME, JSON.stringify(GLOBAL.MANUAL_LANG)); langCookie = util.getCookie(K_S.CONFIG.SELECT_MANUAL_LANG_COOKIE_NAME); } else { util.setCookie(K_S.CONFIG.SELECT_LANG_COOKIE_NAME, JSON.stringify(GLOBAL.SITE_LANG)); langCookie = util.getCookie(K_S.CONFIG.SELECT_LANG_COOKIE_NAME); } } } if (langCookie) { langCookie = JSON.parse(langCookie); langCookie.forEach(function (cookies) { selectLangParam += cookies + ','; }); selectLangParam = selectLangParam.slice(0, -1); } if (fileCookie) { fileCookie = JSON.parse(fileCookie); fileCookie.forEach(function (cookies) { selectFileParam += GLOBAL.SELECT_FILE_TYPE[cookies] + ','; }); selectFileParam = selectFileParam.slice(0, -1); } if (categoryCookie) { categoryCookie = JSON.parse(categoryCookie); categoryCookie.forEach(function (cookies) { selectCategoryParam += cookies + ','; }); selectCategoryParam = selectCategoryParam.slice(0, -1); } if (!K_S.getElem.selectTypes) { if (outputSelector.getAttribute('data-filter') !== 'all' && !K_S.getElem.langSelectWrap) { selectLangParam = ''; if (!K_S.getElem.filterFileTypes) { selectFileParam = ''; } } if (outputSelector.getAttribute('data-filter') === 'all' || K_S.getElem.langSelectWrap || !K_S.getElem.filterFileTypes) { selectFileParam = ''; } } if (K_S.getElem.selectTypes) { if (K_S.getElem.selectTypes.getAttribute('data-type') === 'file') { selectLangParam = ''; } else { selectFileParam = ''; } } if (!K_S.getElem.filterCategories) { selectCategoryParam = ''; } if (K_S.getElem.drillDownNav) { if (dict.group_id) { groupIDParam = decodeURIComponent(dict.group_id); } else { groupIDParam = outputSelector.getAttribute('data-group-id'); } if (dict.type_id) { typeIDParam = decodeURIComponent(dict.type_id); } else { typeIDParam = outputSelector.getAttribute('data-type-id'); } if (dict.webseries_id) { seriesIDParam = decodeURIComponent(dict.webseries_id); } else { seriesIDParam = outputSelector.getAttribute('data-series-id'); } drilldownFlagParam = 1; } else { seriesIDParam = GLOBAL.CURRENT_SERIESE_ID; drilldownFlagParam = 0; } if (K_S.getElem.mainContForm) { inputValue = K_S.getElem.mainContForm.querySelector('.JSSearchSuggestInput').value; inputValue = inputValue.replace(/\+/g, ' '); inputValue = encodeURIComponent(inputValue.trim()); } else { inputValue = ''; } if (GLOBAL.ASSET_TYPE_ID) { assetIDParam = GLOBAL.ASSET_TYPE_ID; } else { assetIDParam = outputSelector.getAttribute('data-asset-type') ? outputSelector.getAttribute('data-asset-type') : ''; } if (dict.modelId) { productIDParam = dict.modelId; } else { if (GLOBAL.WEB_PRODUCT_ID) { productIDParam = GLOBAL.WEB_PRODUCT_ID; } } loadPath = K_S.API_PATH.ASSET + 'q=' + inputValue + '&l=' + limit + '&language_type_id=' + selectLangParam + '&asset_type_id=' + assetIDParam + '&webseries_id=' + seriesIDParam + '&group_id=' + groupIDParam + '&type_id=' + typeIDParam + '&webproduct_id=' + productIDParam + '&assetdetail_type_id=' + (K_S.getElem.filterCategories ? selectCategoryParam : selectFileParam) + '&drilldown_flag=' + drilldownFlagParam; return loadPath; }; K_S.fn.setAssetsDisplay = function (nodeClone, JSONItems, seriesID) { var fn = {}; var legacyElems = { downloadListContent: doc.getElementById('DownloadListContent'), title: nodeClone.querySelector('.Title'), titleLink: nodeClone.querySelector('.TitleLink'), dlGroup: nodeClone.querySelector('a.DownloadGroup'), dlBtn: nodeClone.querySelector('.SearchDownloadBtn'), addBtn: nodeClone.querySelector('.SearchAddBtn'), thumbnail: nodeClone.querySelector('.Thumbnail img'), thumbnailLink: nodeClone.querySelector('.ThumbnailLink'), iconKey: nodeClone.querySelector('.IconKey'), fileInfo: nodeClone.querySelector('.FileInfo'), fileFormat: nodeClone.querySelector('.FileFormat'), fileSize: nodeClone.querySelector('.FileSize'), lang: nodeClone.querySelector('.Lang'), os: nodeClone.querySelector('.OS'), version: nodeClone.querySelector('.Version'), updateDate: nodeClone.querySelector('.UpdateDate'), description: nodeClone.querySelector('.Description'), descriptionLink: nodeClone.querySelector('.DescriptionLink'), }; var elems = { downloadListContent: legacyElems.downloadListContent ? legacyElems.downloadListContent : doc.getElementById('js-downloadListPanel-cartList'), title: legacyElems.title ? legacyElems.title : nodeClone.querySelector('.js-setAssetsDisplay-title'), titleLink: legacyElems.titleLink, assetLink: legacyElems.dlGroup ? legacyElems.dlGroup : nodeClone.querySelector('.js-setAssetsDisplay-link'), dlBtn: legacyElems.dlBtn ? legacyElems.dlBtn : nodeClone.querySelector('.js-setAssetsDisplay-download'), addBtn: legacyElems.addBtn ? legacyElems.addBtn : nodeClone.querySelector('.js-setAssetsDisplay-addButton'), thumbnail: legacyElems.thumbnail ? legacyElems.thumbnail : nodeClone.querySelector('.js-setAssetsDisplay-image'), thumbnailLink: legacyElems.thumbnailLink, iconKey: legacyElems.iconKey ? legacyElems.iconKey : nodeClone.querySelector('.js-setAssetsDisplay-keyIcon'), fileInfo: legacyElems.fileInfo ? legacyElems.fileInfo : nodeClone.querySelector('.js-setAssetsDisplay-fileData'), fileFormat: legacyElems.fileFormat ? legacyElems.fileFormat : nodeClone.querySelector('.js-setAssetsDisplay-fileFormat'), assetDetailType: nodeClone.querySelector('.js-setAssetsDisplay-assetDetailType'), fileSize: legacyElems.fileSize ? legacyElems.fileSize : nodeClone.querySelector('.js-setAssetsDisplay-fileSize'), lang: legacyElems.lang ? legacyElems.lang : nodeClone.querySelector('.js-setAssetsDisplay-language'), os: legacyElems.os ? legacyElems.os : nodeClone.querySelector('.js-setAssetsDisplay-os'), version: legacyElems.version ? legacyElems.version : nodeClone.querySelector('.js-setAssetsDisplay-version'), updateDate: legacyElems.updateDate ? legacyElems.updateDate : nodeClone.querySelector('.js-setAssetsDisplay-updateDate'), description: legacyElems.description ? legacyElems.description : nodeClone.querySelector('.js-setAssetsDisplay-description'), descriptionLink: legacyElems.descriptionLink ? legacyElems.descriptionLink : nodeClone.querySelector('.js-setAssetsDisplay-descriptionLink'), descriptionLinkLabel: nodeClone.querySelector('.js-setAssetsDisplay-descriptionLinkLabel'), descriptionTemplate: nodeClone.querySelector('.js-setAssetsDisplay-descriptionTemplate'), }; var thumbnailSize = elems.thumbnail ? elems.thumbnail.getAttribute('data-img-size') : null; var thumbnailSizeStr = ''; var dlHref = GLOBAL.ORIGINAL_DOMAIN + '/download/download/confirmation/' + '?dlAssetId=' + JSONItems.asset_id + '&dlSeriesId=' + seriesID + '&dlModelId=' + '&dlLangId=' + '&dlLangType=' + JSONItems.language_type_id; var hasModalTrigger = elems.descriptionLink ? elems.descriptionLink.getAttribute('data-maodal-trigger') : false; var descriptionTemplateHtml; var descriptionTemplateText; fn.updateThumbnailSize = function () { if (thumbnailSize && /^[SML]$/.test(thumbnailSize)) { if (thumbnailSize !== 'M') { thumbnailSizeStr = '_' + thumbnailSize; } } }; fn.updateThumbnailSize(); if (elems.thumbnail) { elems.thumbnail.src = GLOBAL.ORIGINAL_DOMAIN + '/img/asset/' + JSONItems.asset_thumbnail + thumbnailSizeStr + '.jpg'; } if (elems.thumbnailLink) { elems.thumbnailLink.href = dlHref; } if (elems.title) { if (elems.titleLink) { elems.titleLink.textContent = JSONItems.asset_name; elems.titleLink.href = dlHref; } else { elems.title.textContent = JSONItems.asset_name; } } if (elems.fileFormat) { if (JSONItems.fileformat) { elems.fileFormat.textContent = JSONItems.fileformat; } } if (elems.assetDetailType) { if (JSONItems.assetdetail_type_name) { elems.assetDetailType.textContent = JSONItems.assetdetail_type_name; } } if ((elems.fileFormat && JSONItems.fileformat) || (elems.assetDetailType && JSONItems.assetdetail_type_name)) { if (elems.fileSize) { if (Number(JSONItems.filesize) < 1024 * 1024) { elems.fileSize.textContent = util.convertByteToKB(JSONItems.filesize); } else { elems.fileSize.textContent = util.convertByteToMB(JSONItems.filesize); } } } if ((elems.fileFormat && !JSONItems.fileformat) || (elems.assetDetailType && !JSONItems.assetdetail_type_name)) { if (Number(JSONItems.filesize) < 1024 * 1024) { elems.fileInfo.textContent = '(' + util.convertByteToKB(JSONItems.filesize) + ')'; } else { elems.fileInfo.textContent = '(' + util.convertByteToMB(JSONItems.filesize) + ')'; } } if (elems.assetLink) { elems.assetLink.href = dlHref; } if (elems.dlBtn) { elems.dlBtn.href = dlHref; } if (elems.addBtn) { elems.addBtn.id = JSONItems.asset_id; elems.addBtn.setAttribute('data-seriesid', seriesID); if (elems.downloadListContent) { elems.downloadListContent.querySelectorAll('.js-downloadListPanel-deleteButton').forEach(function (items) { if (JSONItems.asset_id === items.id.split('delete-')[1]) { elems.addBtn.classList.add('Disabled'); elems.addBtn.disabled = true; } }); } } if (elems.lang) { if (elems.lang === legacyElems.lang) { if (GLOBAL.SELECT_LANG1 && GLOBAL.SELECT_LANG1[JSONItems.language_type_id]) { elems.lang.textContent = GLOBAL.SELECT_LANG1[JSONItems.language_type_id]; } else if (GLOBAL.SELECT_LANG2 && GLOBAL.SELECT_LANG2[JSONItems.language_type_id]) { elems.lang.textContent = GLOBAL.SELECT_LANG2[JSONItems.language_type_id]; } } else { if (GLOBAL.SELECT_LANG && GLOBAL.SELECT_LANG[JSONItems.language_type_id]) { elems.lang.textContent = GLOBAL.SELECT_LANG[JSONItems.language_type_id]; } } } if (!JSONItems.softwarepublishlevel_id) { if (elems.iconKey) { elems.iconKey.remove(); } } if (elems.os) { if (JSONItems.softwareos_type_name) { elems.os.textContent = GLOBAL.TRANSLATION.OSLabel + ' ' + JSONItems.softwareos_type_name; } else { elems.os.remove(); } } if (elems.version) { if (JSONItems.softwareversion) { elems.version.textContent = GLOBAL.TRANSLATION.VersionLabel + ' ' + JSONItems.softwareversion; } else { elems.version.remove(); } } if (elems.updateDate) { if (JSONItems.softwarelastupdate_date) { elems.updateDate.textContent = GLOBAL.TRANSLATION.LastUpdateDateLabel + ' ' + JSONItems.softwarelastupdate_date; } else { elems.updateDate.remove(); } } if (elems.descriptionLink) { if (JSONItems.softwaredescriptionurl) { if (/keyence\.co\.jp$/.test(win.location.host)) { elems.descriptionLink.classList.add('js-modal-ajax'); } else if (!hasModalTrigger) { elems.descriptionLink.classList.add('ModalAjax'); elems.descriptionLink.classList.add('js-modalAjax'); } if (elems.descriptionLinkLabel) { elems.descriptionLinkLabel.textContent = GLOBAL.TRANSLATION.DescriptionLabel; } else { elems.descriptionLink.textContent = GLOBAL.TRANSLATION.DescriptionLabel; } if (hasModalTrigger) { descriptionTemplateHtml = elems.descriptionTemplate.innerHTML; descriptionTemplateText = descriptionTemplateHtml.replace(/(data-standalone-content-loader-url-value=)""/g, '$1"' + GLOBAL.ORIGINAL_DOMAIN + JSONItems.softwaredescriptionurl + '"'); elems.descriptionTemplate.innerHTML = descriptionTemplateText; } elems.descriptionLink.href = GLOBAL.ORIGINAL_DOMAIN + JSONItems.softwaredescriptionurl; elems.descriptionLink.target = '_blank'; } else { if (elems.description) { elems.description.remove(); } } } }; K_S.fn.setLoadDataSheets = function (addOffsetParam, drilldownNotUpdateFlag, callback) { var dict = util.makeQueryIntoDict(); var displayMaxNum; var outputSelectorGroup; var fragment; var nodeClone; var list; var loadPath; var fn = {}; if (!K_S.getElem.searchDataSheetList || !K_S.getElem.searchDataSheetListTemplate) { return; } displayMaxNum = K_S.getElem.searchDataSheetList.getAttribute('data-limit'); outputSelectorGroup = K_S.getElem.searchDataSheetList.closest('.SearchDownloadListGroup'); fragment = doc.createDocumentFragment(); loadPath = K_S.fn.getDataSheetsLoadPath(K_S.getElem.searchDataSheetList); if (typeof dict.o === 'undefined') { dict.o = 0; } if (typeof dict.s === 'undefined') { dict.s = ''; } if (typeof dict.modelId === 'undefined') { dict.modelId = ''; } if (!addOffsetParam) { addOffsetParam = `&o=${dict.o}&s=${dict.s}`; } if (/^\/products\/[a-zA-Z0-9-_]+\/[a-zA-Z0-9-_]+\/[a-zA-Z0-9-_]+\/downloads\/$/.test(win.location.pathname)) { if (dict.modelId) { addOffsetParam = `&o=${dict.o}&s=2`; } else { addOffsetParam = `&o=${dict.o}&s=1`; } } fn.updateNav = function () { if (K_S.getElem.loadResultsNav && !/all/.test(location.pathname)) { K_S.getElem.loadResultsNav.querySelectorAll('a[data-mode]').forEach(function (items) { items.href = items.pathname + '?mode=' + items.dataset.mode + '&modelId=' + dict.modelId; if (!dict.mode) { dict.mode = 'ca'; } if (dict.mode === items.dataset.mode) { items.setAttribute('aria-current', 'page'); } }); } }; fn.updateNav(); console.log('Data Sheet API: ' + loadPath + addOffsetParam); util.getJSON(loadPath + addOffsetParam).then(function (response) { var seriesID = response.meta.request_params.webseries_id[0]; var dataSheetsArr = response.result.datasheets; var resultTotal = response.result.attribute.total; var resultOffset = response.result.attribute.offset; var updateListStr = '#' + K_S.getElem.searchDataSheetList.id + '>li'; var dataSheetResultNum = doc.querySelectorAll('.js-loadDataSheets-resultsNumber'); if (resultOffset === 0) { K_S.getElem.searchDataSheetList.querySelectorAll(updateListStr).forEach(function (items) { items.remove(); }); } if (!seriesID) { seriesID = ''; } if (!resultTotal) { K_S.getElem.searchDataSheetList.classList.add(K_S.CONFIG.NORESULT_ATTR); } else { K_S.getElem.searchDataSheetList.classList.remove(K_S.CONFIG.NORESULT_ATTR); } if (outputSelectorGroup) { if (resultTotal > 0) { outputSelectorGroup.hidden = false; } else { outputSelectorGroup.hidden = true; } } dataSheetResultNum.forEach(function (items) { items.textContent = resultTotal; }); dataSheetsArr.forEach(function (items, index) { if (displayMaxNum && index > (displayMaxNum - 1)) { return; } nodeClone = util.createNodeClone(K_S.getElem.searchDataSheetListTemplate, 'li'); K_S.fn.setDataSheetsDisplay(nodeClone, items); fragment.appendChild(nodeClone); }); K_S.getElem.searchDataSheetList.appendChild(fragment); list = K_S.getElem.searchDataSheetList.querySelectorAll(updateListStr); K_S.fn.setMoreBtnDisplay(resultOffset, resultTotal); K_S.fn.setResultDisplay(list); if (!drilldownNotUpdateFlag) { K_S.fn.setDrillDown.run(response); } }).then(function () { if (callback) { callback(); } }).catch(function (error) { console.log(error); }); }; K_S.fn.getDataSheetsLoadPath = function (outputSelector) { var discontinuedCookie = util.getCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME); var categoryCookieName = util.addAssetTypeToString(K_S.CONFIG.SELECT_CATEGORY_COOKIE_NAME); var categoryCookie = util.getCookie(categoryCookieName); var dict = util.makeQueryIntoDict(); var groupIDParam = ''; var typeIDParam = ''; var seriesIDParam = ''; var selectCategoryParam = ''; var inputValue; var drilldownFlagParam; var loadPath; var discontinuedParam; var limit = outputSelector.getAttribute('data-limit') ? outputSelector.getAttribute('data-limit') : K_S.CONFIG.ONE_TIME_DATA_LOAD_MAX_NUM; if (typeof discontinuedCookie !== 'undefined') { if (discontinuedCookie === '1') { discontinuedParam = 1; } else { discontinuedParam = 0; } } else { discontinuedParam = 0; } if (K_S.getElem.drillDownNav) { if (dict.group_id) { groupIDParam = decodeURIComponent(dict.group_id); } else { groupIDParam = outputSelector.getAttribute('data-group-id'); } if (dict.type_id) { typeIDParam = decodeURIComponent(dict.type_id); } else { typeIDParam = outputSelector.getAttribute('data-type-id'); } if (dict.webseries_id) { seriesIDParam = decodeURIComponent(dict.webseries_id); } else { seriesIDParam = outputSelector.getAttribute('data-series-id'); } drilldownFlagParam = 1; } else { seriesIDParam = GLOBAL.CURRENT_SERIESE_ID; drilldownFlagParam = 0; } if (categoryCookie) { categoryCookie = JSON.parse(categoryCookie); categoryCookie.forEach(function (cookies) { selectCategoryParam += cookies + ','; }); selectCategoryParam = selectCategoryParam.slice(0, -1); } if (!K_S.getElem.filterCategories) { selectCategoryParam = ''; } if (K_S.getElem.mainContForm) { inputValue = K_S.getElem.mainContForm.querySelector('.JSSearchSuggestInput').value; inputValue = inputValue.replace(/\+/g, ' '); inputValue = encodeURIComponent(inputValue.trim()); } else { inputValue = ''; } loadPath = K_S.API_PATH.DATA_SHEET + 'q=' + inputValue + '&l=' + limit + '&webseries_id=' + seriesIDParam + '&group_id=' + groupIDParam + '&type_id=' + typeIDParam + '&discontinued_flag=' + discontinuedParam + '&drilldown_flag=' + drilldownFlagParam + '&product_type_id=' + selectCategoryParam; return loadPath; }; K_S.fn.setDataSheetsDisplay = function (nodeClone, JSONItems) { var title = nodeClone.querySelector('.js-setDataSheetsDisplay-title'); var link = nodeClone.querySelector('.js-setDataSheetsDisplay-link'); var commonName = nodeClone.querySelector('.js-setDataSheetsDisplay-commonName'); var dlBtn = nodeClone.querySelector('.js-setDataSheetsDisplay-download'); var addBtn = nodeClone.querySelector('.js-setDataSheetsDisplay-addButton'); var thumbnail = nodeClone.querySelector('.js-setDataSheetsDisplay-thumbnail'); var thumbnailSize = thumbnail ? thumbnail.getAttribute('data-img-size') : null; var thumbnailSizeStr = '_M'; var downloadListContent = doc.getElementById('js-downloadListPanel-cartList'); if (title && JSONItems.webproduct_name) { title.textContent = JSONItems.webproduct_name; } if (link && JSONItems.datasheeturl) { link.href = JSONItems.datasheeturl; } if (commonName) { if (JSONItems.webproductcommon_name) { commonName.textContent = JSONItems.webproductcommon_name; } else { commonName.remove(); } } if (dlBtn && JSONItems.datasheeturl) { dlBtn.href = JSONItems.datasheeturl; } if (addBtn && JSONItems.webproduct_id) { addBtn.id = JSONItems.webproduct_id.replace('PM', 'DS'); if (downloadListContent) { downloadListContent.querySelectorAll('.js-downloadListPanel-deleteButton').forEach(function (items) { if (addBtn.id === items.id.split('delete-')[1]) { addBtn.classList.add('Disabled'); addBtn.disabled = true; } }); } } if (thumbnail && JSONItems.product_thumbnail_id) { if (thumbnailSize && /^[SML]$/.test(thumbnailSize)) { if (thumbnailSize !== 'M') { thumbnailSizeStr = '_' + thumbnailSize; } } thumbnail.src = `${GLOBAL.ORIGINAL_DOMAIN}/img/products/model/${JSONItems.product_thumbnail_id}${thumbnailSizeStr}.jpg` } }; K_S.fn.setLoadSeries = function (addOffsetParam, drilldownNotUpdateFlag, callback) { var dict = util.makeQueryIntoDict(); var displayMaxNum; var fragment; var nodeClone; var list; var loadPath; if (!K_S.getElem.searchSeriesList || !K_S.getElem.searchSeriesListTemplate) { return; } displayMaxNum = K_S.getElem.searchSeriesList.getAttribute('data-limit'); fragment = doc.createDocumentFragment(); loadPath = K_S.fn.getSeriesLoadPath(); if (typeof dict.o === 'undefined') { dict.o = 0; } if (typeof dict.s === 'undefined') { dict.s = ''; } if (!addOffsetParam) { addOffsetParam = '&o=' + `&o=${dict.o}&s=${dict.s}`; } console.log('Series API: ' + loadPath + addOffsetParam); util.getJSON(loadPath + addOffsetParam).then(function (response) { var productsArr = response.result.products; var resultTotal = response.result.attribute.total; var resultOffset = response.result.attribute.offset; var updateListStr = '#' + K_S.getElem.searchSeriesList.id + '>li'; var seriesResultNum = doc.querySelectorAll('.JSSeriesResultNum'); var outputSelectorGroup; if (resultOffset === 0) { K_S.getElem.searchSeriesList.querySelectorAll(updateListStr).forEach(function (items) { items.remove(); }); } if (!resultTotal) { K_S.getElem.searchSeriesList.classList.add(K_S.CONFIG.NORESULT_ATTR); } else { K_S.getElem.searchSeriesList.classList.remove(K_S.CONFIG.NORESULT_ATTR); } outputSelectorGroup = K_S.getElem.searchSeriesList.closest('.SearchDownloadListGroup'); if (outputSelectorGroup) { if (resultTotal > 0) { outputSelectorGroup.hidden = false; } else { outputSelectorGroup.hidden = true; } } seriesResultNum.forEach(function (items) { items.textContent = resultTotal; }); productsArr.forEach(function (items, index) { if (displayMaxNum && index > (displayMaxNum - 1)) { return; } nodeClone = util.createNodeClone(K_S.getElem.searchSeriesListTemplate, 'li'); K_S.fn.setSeriesDisplay(nodeClone, items); fragment.appendChild(nodeClone); }); K_S.getElem.searchSeriesList.appendChild(fragment); list = K_S.getElem.searchSeriesList.querySelectorAll(updateListStr); K_S.fn.setMoreBtnDisplay(resultOffset, resultTotal); K_S.fn.setResultDisplay(list); if (!drilldownNotUpdateFlag) { K_S.fn.setDrillDown.run(response); } }).then(function () { if (callback) { callback(); } }).catch(function (error) { console.log(error); }); }; K_S.fn.getSeriesLoadPath = function () { var discontinuedCookie = util.getCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME); var dict = util.makeQueryIntoDict(); var groupIDParam = ''; var typeIDParam = ''; var loadPath; var discontinuedParam; var inputValue; var drilldownFlagParam; if (typeof discontinuedCookie !== 'undefined') { if (discontinuedCookie === '1') { discontinuedParam = 1; } else { discontinuedParam = 0; } } else { discontinuedParam = 0; } if (K_S.getElem.drillDownNav) { if (dict.group_id) { groupIDParam = decodeURIComponent(dict.group_id); } else { groupIDParam = K_S.getElem.searchSeriesList.getAttribute('data-group-id'); } if (dict.type_id) { typeIDParam = decodeURIComponent(dict.type_id); } else { typeIDParam = K_S.getElem.searchSeriesList.getAttribute('data-type-id'); } drilldownFlagParam = 1; } else { drilldownFlagParam = 0; } if (K_S.getElem.mainContForm) { inputValue = K_S.getElem.mainContForm.querySelector('.JSSearchSuggestInput').value; inputValue = inputValue.replace(/\+/g, ' '); inputValue = encodeURIComponent(inputValue.trim()); } else { inputValue = ''; } loadPath = K_S.API_PATH.PRODUCT + 'q=' + inputValue + '&l=' + K_S.CONFIG.ONE_TIME_DATA_LOAD_MAX_NUM + '&group_id=' + groupIDParam + '&type_id=' + typeIDParam + '&discontinued_flag=' + discontinuedParam + '&drilldown_flag=' + drilldownFlagParam; return loadPath; }; K_S.fn.setSeriesDisplay = function (nodeClone, JSONItems) { var siteLang = GLOBAL.SITE_LANG ? GLOBAL.SITE_LANG[0] : ''; var series = nodeClone.querySelector('.Series'); var commonName = nodeClone.querySelector('.CommonName'); var name = nodeClone.querySelector('.Name'); var description = nodeClone.querySelector('.Description'); var dlBtn = nodeClone.querySelector('.DownloadBtn'); var priceBtn = nodeClone.querySelector('.PriceBtn'); var thumbnail = nodeClone.querySelector('.Thumbnail img'); var thumbnailLink = nodeClone.querySelector('.ThumbnailLink'); var spec = nodeClone.querySelector('.Spec'); var model = nodeClone.querySelector('.Model'); var support = nodeClone.querySelector('.Support'); var maxDescCount = 170; var maxJaDescCount = 62; var minDescCount = 10; var maxCharsData; var seriesDlLink; var dlAssetId = ''; var descText; var targetDescription; if (/^zh-|^ko-/.test(siteLang)) { maxDescCount = Math.floor(maxDescCount / 2); } else if (/^ja-/.test(siteLang)) { maxDescCount = maxJaDescCount; } if (series) { series.href = JSONItems.url; } if (commonName) { commonName.textContent = JSONItems.webseriescommon_name; } if (name) { name.textContent = JSONItems.display_name; } if (description) { maxCharsData = parseFloat(description.getAttribute('data-max-chars')); if (!isNaN(maxCharsData)) { maxDescCount = maxCharsData; } if (maxDescCount < minDescCount) { maxDescCount = minDescCount; } if (JSONItems.description) { targetDescription = JSONItems.description.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gm, ''); if ( description.getAttribute('data-omit') === 'true' && targetDescription.length > maxDescCount ) { descText = targetDescription.substring(0, maxDescCount); description.textContent = descText + '...'; } else { description.textContent = targetDescription; } } else { description.remove(); } } if (dlBtn) { if (JSONItems.catalog_id) { JSONItems.catalog_id.split(',').forEach(function (assetId) { dlAssetId += 'dlAssetId=' + assetId + '&'; }); dlBtn.href = GLOBAL.ORIGINAL_DOMAIN + '/download/download/confirmation/?' + dlAssetId.slice(0, -1); } else { if (/(\/|\/index\.jsp)$/.test(JSONItems.url)) { seriesDlLink = JSONItems.url.replace(/(\/|\/index\.jsp)$/, '/downloads/'); dlBtn.href = seriesDlLink; } } } if (priceBtn) { priceBtn.href = `${JSONItems.url}get-pricing/`; } if (thumbnail) { thumbnail.src = GLOBAL.ORIGINAL_DOMAIN + '/img/products/series/' + JSONItems.product_thumbnail_id + '_M.jpg'; if (thumbnailLink) { thumbnailLink.href = JSONItems.url; } } if (spec) { if (JSONItems.spec_url) { spec.href = JSONItems.spec_url; } else { spec.parentNode.remove(); } } if (model) { if (JSONItems.model_url) { model.href = JSONItems.model_url; } else { model.parentNode.remove(); } } if (support) { if (JSONItems.support_url) { support.href = JSONItems.model_url; } else { support.parentNode.remove(); } } }; K_S.fn.setDrillDown.run = function (response) { var dict = util.makeQueryIntoDict(); var setDrillDown = this; var loadMoreTarget; var searchLinkList; if (!K_S.getElem.drillDownNav) { return; } if (K_S.getElem.drillDownNav.querySelector('.Group')) { K_S.getElem.drillDownNav.querySelector('.Group').remove(); } loadMoreTarget = doc.querySelector('.JSLoadMoreTarget'); searchLinkList = K_S.getElem.drillDownNav.querySelector('.SearchLinkList01'); if (!loadMoreTarget || !searchLinkList) { return; } setDrillDown.display(response, loadMoreTarget); setDrillDown.toggle('.Switch'); setDrillDown.filter(loadMoreTarget, searchLinkList); if (dict.q) { searchLinkList.classList.remove(K_S.CONFIG.HIDDEN_ATTR); } }; K_S.fn.setDrillDown.display = function (response, loadMoreTarget) { var dict = util.makeQueryIntoDict(); var drilldownArr = response.result.drilldown; var fragment = doc.createDocumentFragment(); var groupUL = doc.createElement('ul'); var dataGroupID = loadMoreTarget.getAttribute('data-group-id'); var dataTypeID = loadMoreTarget.getAttribute('data-type-id'); var dataSeriesID = loadMoreTarget.getAttribute('data-series-id'); var searchLinkList = K_S.getElem.drillDownNav.querySelector('.SearchLinkList01'); var parentsClass = 'Parents'; var typeUL; var seriesUL; var groupNodeClone; var typeNodeClone; var seriesNodeClone; var groupList; var groupNav; var groupNavInner; var groupCount; var typeList; var typeNav; var typeNavInner; var typeCount; var seriesList; var seriesNav; var seriesNavInner; var seriesCount; groupUL.classList.add(K_S.getAttr.groupHierarchy); if (!drilldownArr.length) { searchLinkList.classList.remove(K_S.CONFIG.HIDDEN_ATTR); if (K_S.getElem.drillDownSPButtonList) { K_S.getElem.drillDownSPButtonList.classList.remove(K_S.CONFIG.HIDDEN_ATTR); } } drilldownArr.forEach(function (group) { groupNodeClone = util.createNodeClone(K_S.getElem.groupListTemplate, 'li'); if (util.checkSupportsTemp() === true) { groupList = groupNodeClone.querySelector('.GroupList'); } else { groupList = groupNodeClone; } groupNav = groupList.querySelector('.Name'); groupNavInner = groupList.querySelector('.NameInner'); groupCount = groupList.querySelector('.Count'); if (groupNav) { groupNavInner.textContent = group.name; groupNav.setAttribute('data-group-id', group.id); if (dataGroupID === group.id || decodeURIComponent(dict.group_id) === group.id) { groupList.classList.add(K_S.CONFIG.OPEN_ATTR); groupNavInner.classList.add(K_S.CONFIG.ACTIVE_ATTR); searchLinkList.classList.remove(K_S.CONFIG.HIDDEN_ATTR); if (K_S.getElem.categorySPLabel) { K_S.getElem.categorySPLabel.textContent = groupNav.textContent.split('(')[0]; } if (K_S.getElem.drillDownSPButtonList) { K_S.getElem.drillDownSPButtonList.classList.remove(K_S.CONFIG.HIDDEN_ATTR); } } } if (groupCount) { groupCount.textContent = ' (' + group.count + ')'; } typeUL = doc.createElement('ul'); typeUL.classList.add(K_S.getAttr.typeHierarchy); group.children.forEach(function (type) { typeNodeClone = util.createNodeClone(K_S.getElem.typeListTemplate, 'li'); if (util.checkSupportsTemp() === true) { typeList = typeNodeClone.querySelector('.TypeList'); } else { typeList = typeNodeClone; } if (!K_S.getElem.seriesListTemplate) { typeList.classList.add(K_S.CONFIG.OPEN_ATTR); typeList.querySelector('.Switch').disabled = true; } typeNav = typeList.querySelector('.Name'); typeNavInner = typeList.querySelector('.NameInner'); typeCount = typeList.querySelector('.Count'); if (typeNav) { typeNavInner.textContent = type.name; typeNav.setAttribute('data-type-id', type.id); if (dataTypeID === type.id || decodeURIComponent(dict.type_id) === type.id) { groupList.classList.add(K_S.CONFIG.OPEN_ATTR); typeList.classList.add(K_S.CONFIG.OPEN_ATTR); groupList.classList.add(parentsClass); typeNavInner.classList.add(K_S.CONFIG.ACTIVE_ATTR); searchLinkList.classList.remove(K_S.CONFIG.HIDDEN_ATTR); if (K_S.getElem.categorySPLabel) { K_S.getElem.categorySPLabel.textContent = typeNav.textContent.split('(')[0]; } } } if (typeCount) { typeCount.textContent = ' (' + type.count + ')'; } groupList.appendChild(typeUL).appendChild(typeNodeClone); seriesUL = doc.createElement('ul'); seriesUL.classList.add(K_S.getAttr.seriesHierarchy); if (type.children) { type.children.forEach(function (series) { if (K_S.getElem.seriesListTemplate) { seriesNodeClone = util.createNodeClone(K_S.getElem.seriesListTemplate, 'li'); if (util.checkSupportsTemp() === true) { seriesList = seriesNodeClone.querySelector('.SeriesList'); } else { seriesList = seriesNodeClone; } seriesNav = seriesList.querySelector('.Name'); seriesNavInner = seriesList.querySelector('.NameInner'); seriesCount = seriesList.querySelector('.Count'); if (seriesNav) { seriesNavInner.textContent = series.name; seriesNav.setAttribute('data-series-id', series.id); if (dataSeriesID === series.id || decodeURIComponent(dict.webseries_id) === series.id) { groupList.classList.add(K_S.CONFIG.OPEN_ATTR); typeList.classList.add(K_S.CONFIG.OPEN_ATTR); groupList.classList.add(parentsClass); typeList.classList.add(parentsClass); seriesNavInner.classList.add(K_S.CONFIG.ACTIVE_ATTR); seriesNav.classList.add(K_S.CONFIG.OPEN_ATTR); searchLinkList.classList.remove(K_S.CONFIG.HIDDEN_ATTR); if (K_S.getElem.categorySPLabel) { K_S.getElem.categorySPLabel.textContent = seriesNav.textContent.split('(')[0]; } } } if (seriesCount) { seriesCount.textContent = ' (' + series.count + ')'; } typeList.appendChild(seriesUL).appendChild(seriesNodeClone); } }); } }); fragment.appendChild(groupNodeClone); }); K_S.getElem.drillDownNav.insertBefore(groupUL, K_S.getElem.drillDownNav.querySelector('template')).appendChild(fragment); }; K_S.fn.setDrillDown.toggle = function (selector) { if (!K_S.getElem.drillDownNav) { return; } K_S.getElem.drillDownNav.querySelectorAll(selector).forEach(function (items) { var setWhenClick = function (e) { var self = this; var parent = self.parentNode.classList; e.preventDefault(); if (!K_S.getElem.seriesListTemplate) { if (parent.contains('TypeList')) { return; } } if (parent.contains(K_S.CONFIG.OPEN_ATTR)) { parent.remove(K_S.CONFIG.OPEN_ATTR); self.textContent = K_S.getAttr.openText; } else { parent.add(K_S.CONFIG.OPEN_ATTR); self.textContent = K_S.getAttr.closeText; } }; if (!items.disabled) { items.textContent = K_S.getAttr.openText; } items.addEventListener('click', setWhenClick, false); }); }; K_S.fn.setDrillDown.filter = function (loadMoreTarget, filterClearElem) { if (!K_S.getElem.drillDownNav) { return; } K_S.getElem.drillDownNav.querySelectorAll('.Name').forEach(function (items) { var dict = util.makeQueryIntoDict(); var setWhenClick = function (e) { var self = this; var closestList = self.closest('li').classList; var closestGroupId = self.closest('.GroupList').querySelector('[data-group-id]').getAttribute('data-group-id'); var closestTypeId; var promise = Promise.resolve(); e.preventDefault(); promise.then(function () { dict.o = 0; dict.s = 1; if (closestList.contains('GroupList')) { loadMoreTarget.setAttribute('data-group-id', self.getAttribute('data-group-id')); loadMoreTarget.setAttribute('data-type-id', ''); loadMoreTarget.setAttribute('data-series-id', ''); dict.group_id = encodeURIComponent(self.getAttribute('data-group-id')); dict.type_id = ''; dict.webseries_id = ''; if (K_S.getElem.categorySPLabel) { K_S.getElem.categorySPLabel.textContent = self.textContent.split('(')[0]; } } if (closestList.contains('TypeList')) { loadMoreTarget.setAttribute('data-group-id', closestGroupId); loadMoreTarget.setAttribute('data-type-id', self.getAttribute('data-type-id')); loadMoreTarget.setAttribute('data-series-id', ''); dict.group_id = encodeURIComponent(closestGroupId); dict.type_id = encodeURIComponent(self.getAttribute('data-type-id')); dict.webseries_id = ''; if (K_S.getElem.categorySPLabel) { K_S.getElem.categorySPLabel.textContent = self.textContent.split('(')[0]; } } if (closestList.contains('SeriesList')) { closestTypeId = self.closest('.TypeList').querySelector('[data-type-id]').getAttribute('data-type-id'); loadMoreTarget.setAttribute('data-group-id', closestGroupId); loadMoreTarget.setAttribute('data-type-id', closestTypeId); loadMoreTarget.setAttribute('data-series-id', self.getAttribute('data-series-id')); dict.group_id = encodeURIComponent(closestGroupId); dict.type_id = encodeURIComponent(closestTypeId); dict.webseries_id = encodeURIComponent(self.getAttribute('data-series-id')); if (K_S.getElem.categorySPLabel) { K_S.getElem.categorySPLabel.textContent = self.textContent.split('(')[0]; } } util.updateBrowserHistory(dict); filterClearElem.classList.add(K_S.CONFIG.HIDDEN_ATTR); }).then(function () { K_S.fn.setLoadAssets(K_S.getElem.searchDL, '&s=1&o=0'); K_S.fn.setLoadDataSheets('&s=1&o=0'); K_S.fn.setLoadSeries('&s=1&o=0'); setTimeout(function () { filterClearElem.classList.remove(K_S.CONFIG.HIDDEN_ATTR); }, 300); }); }; items.addEventListener('click', setWhenClick, false); }); }; K_S.fn.setDrillDown.selectTarget = function () { var setWhenClick; if (!K_S.getElem.drillDownSPSelect) { return; } setWhenClick = function (e) { var modalWrapper = doc.getElementById('SearchModal'); var focusTarget = modalWrapper && modalWrapper.childNodes[1] ? doc.querySelector('[data-modal-target="' + modalWrapper.childNodes[1].id + '"]') : null; e.preventDefault(); if (focusTarget) { focusTarget.classList.add(K_S.CONFIG.ACTIVE_ATTR); focusTarget.addEventListener('animationend', function () { this.classList.remove(K_S.CONFIG.ACTIVE_ATTR); }, false); } K_S.fn.closeSearchModal(); setTimeout(function () { K_S.fn.setLoadAssets(K_S.getElem.searchDL, '&o=0'); K_S.fn.setLoadDataSheets('&o=0'); K_S.fn.setLoadSeries('&o=0'); }, 200); }; K_S.getElem.drillDownSPSelect.addEventListener('click', setWhenClick, false); }; K_S.fn.setDrillDown.filterClear = function () { var loadMoreTarget = doc.querySelector('.JSLoadMoreTarget'); var dict = util.makeQueryIntoDict(); var searchLinkList; var setWhenClick; if (!loadMoreTarget || !K_S.getElem.drillDownNav) { return; } searchLinkList = K_S.getElem.drillDownNav.querySelector('.SearchLinkList01'); setWhenClick = function (e) { var promise = Promise.resolve(); e.preventDefault(); promise.then(function () { loadMoreTarget.setAttribute('data-group-id', ''); loadMoreTarget.setAttribute('data-type-id', ''); loadMoreTarget.setAttribute('data-series-id', ''); dict.group_id = ''; dict.type_id = ''; dict.webseries_id = ''; dict.q = ''; dict.o = 0; dict.s = ''; util.updateBrowserHistory(dict); doc.querySelectorAll('.JSSearchSuggestInput').forEach(function (items) { items.value = ''; }); if (K_S.getElem.categorySPLabel && K_S.getElem.categoryPCLabel) { K_S.getElem.categorySPLabel.textContent = K_S.getElem.categoryPCLabel.textContent; } }).then(function () { if (doc.body.getAttribute('data-search-modal')) { K_S.fn.setLoadAssets(K_S.getElem.searchDL, '&o=0'); K_S.fn.setLoadDataSheets('&o=0'); K_S.fn.setLoadSeries('&o=0'); if (K_S.getElem.drillDownSPButtonList) { K_S.getElem.drillDownSPButtonList.classList.add(K_S.CONFIG.HIDDEN_ATTR); } } else { K_S.fn.setLoadAssets(K_S.getElem.searchDL, '&o=0'); K_S.fn.setLoadDataSheets('&o=0'); K_S.fn.setLoadSeries('&o=0'); } searchLinkList.classList.add(K_S.CONFIG.HIDDEN_ATTR); }); }; searchLinkList.querySelector('.JSFilterClear').addEventListener('click', setWhenClick, false); if (K_S.getElem.drillDownSPReset) { K_S.getElem.drillDownSPReset.addEventListener('click', setWhenClick, false); } }; K_S.fn.setLoadMore = function () { var setWhenClick; if (!K_S.getElem.loadMoreBtn || !K_S.getElem.loadMoreBtnWrap) { return; } setWhenClick = function (e) { var self = this; var setLoading; var setLoadStart; var addOffsetParam = '&o=' + self.getAttribute('data-offset'); var drilldownNotUpdateFlag = true; var dict = util.makeQueryIntoDict(); e.preventDefault(); dict.o = self.getAttribute('data-offset'); if (dict.s) { addOffsetParam = `${addOffsetParam}&s=${dict.s}`; } setLoadStart = function () { self.classList.remove(K_S.CONFIG.LOAD_ATTR); if (K_S.getElem.loadMoreBtnLabel) { K_S.getElem.loadMoreBtnLabel.textContent = K_S.getAttr.loadStartText; } else { self.textContent = K_S.getAttr.loadStartText; } }; setLoading = function () { self.classList.add(K_S.CONFIG.LOAD_ATTR); if (K_S.getElem.loadMoreBtnLabel) { K_S.getElem.loadMoreBtnLabel.textContent = K_S.getAttr.loadingText; } else { self.textContent = K_S.getAttr.loadingText; } }; util.updateBrowserHistory(dict); if (self.classList.contains(K_S.CONFIG.LOAD_ATTR) === false) { setLoading(); K_S.fn.setLoadAssets(K_S.getElem.searchDL, addOffsetParam, drilldownNotUpdateFlag, function () { setLoadStart(); }); K_S.fn.setLoadDataSheets(addOffsetParam, drilldownNotUpdateFlag, function () { setLoadStart(); }); K_S.fn.setLoadSeries(addOffsetParam, drilldownNotUpdateFlag, function () { setLoadStart(); }); K_S.fn.setLoadPages(addOffsetParam, function () { setLoadStart(); }); } }; K_S.getElem.loadMoreBtn.addEventListener('click', setWhenClick, false); }; K_S.fn.setMoreBtnDisplay = function (resultOffset, resultTotal) { if (K_S.getElem.loadMoreBtn) { if (K_S.getElem.loadMoreBtnLabel) { K_S.getElem.loadMoreBtnLabel.textContent = K_S.getAttr.loadStartText; } else { K_S.getElem.loadMoreBtn.textContent = K_S.getAttr.loadStartText; } if (resultOffset === 0) { K_S.getElem.loadMoreBtn.setAttribute('data-offset', '0'); } if (resultTotal - resultOffset > K_S.CONFIG.ONE_TIME_DISPLAY_MAX_NUM) { if (K_S.getElem.loadMoreBtnLabel) { K_S.getElem.loadMoreBtnWrap.hidden = false; } else { K_S.getElem.loadMoreBtnWrap.classList.remove(K_S.CONFIG.HIDDEN_ATTR); } K_S.getElem.loadMoreBtn.setAttribute('data-offset', resultOffset + K_S.CONFIG.ONE_TIME_DISPLAY_MAX_NUM); } else { if (K_S.getElem.loadMoreBtnLabel) { K_S.getElem.loadMoreBtnWrap.hidden = true; } else { K_S.getElem.loadMoreBtnWrap.classList.add(K_S.CONFIG.HIDDEN_ATTR); } } } }; K_S.fn.setDiscontinuedCookie = function () { var setWhenChange; var discontinuedCookie; var customCheckbox; var setCheckOn; var setCheckOff; if (!K_S.getElem.productsSuggestFilter) { return; } discontinuedCookie = util.getCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME); customCheckbox = K_S.getElem.productsSuggestFilter.closest('label').querySelector('span.CustomCheckbox'); setCheckOn = function () { var promise = Promise.resolve(); promise.then(function () { K_S.getElem.productsSuggestFilter.classList.add(K_S.CONFIG.CHECKED_ATTR); K_S.getElem.productsSuggestFilter.checked = true; }).then(function () { if (customCheckbox) { customCheckbox.classList.add('checked'); } }); }; setCheckOff = function () { var promise = Promise.resolve(); promise.then(function () { K_S.getElem.productsSuggestFilter.classList.remove(K_S.CONFIG.CHECKED_ATTR); K_S.getElem.productsSuggestFilter.checked = false; }).then(function () { if (customCheckbox) { customCheckbox.classList.remove('checked'); } }); }; setWhenChange = function () { if (K_S.getElem.productsSuggestFilter.classList.contains(K_S.CONFIG.CHECKED_ATTR)) { setCheckOff(); util.setCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME, 0); } else { setCheckOn(); util.setCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME, 1); } }; if (typeof discontinuedCookie !== 'undefined') { if (discontinuedCookie === '1') { setCheckOn(); } else { setCheckOff(); } } else { if (K_S.getElem.productsSuggestFilter.checked) { setCheckOn(); util.setCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME, 1); } else { setCheckOff(); util.setCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME, 0); } } K_S.getElem.productsSuggestFilter.addEventListener('change', setWhenChange, false); }; K_S.fn.setToggleDiscontinued = function () { var promise = Promise.resolve(); var checkbox; var button; var cookie; var setWhenChange; var setWhenClick; if (!K_S.getElem.discontinuedToggle) { return; } checkbox = K_S.getElem.discontinuedToggle.querySelector('[type="checkbox"]'); button = K_S.getElem.discontinuedToggle.querySelector('button'); cookie = util.getCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME); if (!cookie) { util.setCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME, 0); } if (cookie) { if (cookie === '1') { if (checkbox) { checkbox.checked = true; } if (button) { button.setAttribute('aria-checked', true); } } else { if (checkbox) { checkbox.checked = false; } if (button) { button.setAttribute('aria-checked', false); } } } setWhenChange = function () { var self = this; promise.then(function () { if (self.checked) { util.setCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME, 1); } else { util.setCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME, 0); } }).then(function () { setTimeout(function () { K_S.fn.setLoadSeries('&o=0'); }, 200); }); }; setWhenClick = function () { var self = this; promise.then(function () { if (self.getAttribute('aria-checked') === 'true') { util.setCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME, 1); } else { util.setCookie(K_S.CONFIG.DISCONTINUED_COOKIE_NAME, 0); } }).then(function () { setTimeout(function () { K_S.fn.setLoadSeries('&o=0'); }, 200); }); }; if (checkbox) { checkbox.addEventListener('change', setWhenChange, false); } if (button) { button.addEventListener('click', setWhenClick, false); } }; K_S.fn.slider = function (outputSelector) { var $slider; var $bxSlider; var setPager; var $pager; var runForEachScreen1; var runForEachScreen2; var setSlider; var removeControls; var removeClones; var removeStyles; var rebuildSlider; var rebuildSliderForOnLoad; var reloadSlider; var overlappingPreventClass1 = 'overlappingPrevent1'; var readyClass = 'IsReady'; var staticClass = 'IsStatic'; var bxSliderWrapperClass = 'search-bx-wrapper'; var bxSliderControlsClass = 'bx-controls'; var bxSliderCloneClass = 'bx-clone'; var bxSliderLoadingClass = 'bx-loading'; var optionForLargeScreen = { minSlides: 5, maxSlides: 5, slideWidth: 186, slideMargin: 10, wrapperClass: bxSliderWrapperClass, }; var optionForSmallScreen = { minSlides: 1, maxSlides: 1, slideWidth: 727, slideMargin: 0, wrapperClass: bxSliderWrapperClass, }; if (typeof $ === 'undefined' || typeof $.fn.bxSlider === 'undefined') { return; } setPager = function () { $pager = $('.bx-default-pager'); if ($pager.length) { $pager.off('mouseover'); $pager.on('click', 'a', function (e) { var $this = $(this); var currentIndex; var targetIndex; e.preventDefault(); currentIndex = $slider.getCurrentSlide(); targetIndex = $this.attr('data-slide-index'); targetIndex = parseInt(targetIndex, 10); if (currentIndex !== targetIndex) { $slider.goToSlide(targetIndex); } }); } }; removeControls = function () { if ($('.' + bxSliderControlsClass).length) { $('.' + bxSliderControlsClass).remove(); } }; removeClones = function () { if ($('.' + bxSliderCloneClass).length) { $('.' + bxSliderCloneClass).remove(); } }; removeStyles = function () { $slider.removeAttr('style'); $slider.find('li').removeAttr('style'); }; rebuildSlider = function (options) { var observer; var target = outputSelector; var config = { attributes: true, attributeFilter: ['style'], }; if ($slider.closest('.' + bxSliderWrapperClass).length) { $slider.removeAttr('style'); $slider.removeClass(readyClass); setTimeout(function () { $slider.unwrap().unwrap(); $slider.bxSlider(options); setPager($slider); }, 200); observer = new MutationObserver(function () { observer.disconnect(); $slider.addClass(readyClass); }); observer.observe(target, config); } else { $slider.removeClass(readyClass); setTimeout(function () { $slider.bxSlider(options); setPager($slider); }, 200); observer = new MutationObserver(function () { observer.disconnect(); $slider.addClass(readyClass); }); observer.observe(target, config); } }; reloadSlider = function (options) { $bxSlider.reloadSlider(options); setPager($slider); $slider.addClass(readyClass); }; rebuildSliderForOnLoad = function (options) { var observer; var target = outputSelector; var config = { attributes: true, attributeFilter: ['style'], }; if ($slider.parents('.' + bxSliderWrapperClass).length > 1) { $('.' + bxSliderWrapperClass).css('opacity', 0); observer = new MutationObserver(function () { observer.disconnect(); removeControls(); $slider.unwrap().unwrap(); $('.' + bxSliderLoadingClass).remove(); $(outputSelector).find('.' + bxSliderCloneClass).remove(); reloadSlider(options); $slider.addClass(readyClass); }); observer.observe(target, config); } }; setSlider = function () { if (!$slider.hasClass(readyClass)) { if ($bxSlider) { return; } if (K_S.CONFIG.SMALL_SCREEN_MQ.matches) { $bxSlider = $slider.bxSlider(optionForSmallScreen); } else { $bxSlider = $slider.bxSlider(optionForLargeScreen); } setPager($slider); if (!K_S.CONFIG.SMALL_SCREEN_MQ.matches) { $slider.addClass(overlappingPreventClass1); } } if (K_S.CONFIG.SMALL_SCREEN_MQ.matches) { if ($slider.find('>li:not(".' + bxSliderCloneClass + '")').length > 1) { $slider.removeClass(staticClass); if ($bxSlider) { removeControls(); removeClones(); reloadSlider(optionForSmallScreen); rebuildSliderForOnLoad(optionForSmallScreen); } else { if ($slider.hasClass(overlappingPreventClass1)) { return; } removeControls(); removeClones(); rebuildSlider(optionForSmallScreen); } } else { $slider.addClass(readyClass); $slider.addClass(staticClass); if ($bxSlider) { removeControls(); removeClones(); if ($slider.closest('.' + bxSliderWrapperClass).length) { $slider.unwrap().unwrap(); } removeStyles(); } else { if ($slider.hasClass(overlappingPreventClass1)) { return; } removeControls(); removeClones(); if ($slider.closest('.' + bxSliderWrapperClass).length) { $slider.unwrap().unwrap(); } removeStyles(); } } } else { if ($slider.find('>li:not(".' + bxSliderCloneClass + '")').length > 5) { $slider.removeClass(staticClass); if ($bxSlider) { removeControls(); removeClones(); reloadSlider(optionForLargeScreen); rebuildSliderForOnLoad(optionForLargeScreen); } else { if (!$slider.hasClass(overlappingPreventClass1)) { return; } removeControls(); removeClones(); rebuildSlider(optionForLargeScreen); } } else { $slider.addClass(readyClass); $slider.addClass(staticClass); if ($bxSlider) { removeControls(); removeClones(); if ($slider.closest('.' + bxSliderWrapperClass).length) { $slider.unwrap().unwrap(); } removeStyles(); } else { if (!$slider.hasClass(overlappingPreventClass1)) { return; } removeControls(); removeClones(); if ($slider.closest('.' + bxSliderWrapperClass).length) { $slider.unwrap().unwrap(); } removeStyles(); } } } }; runForEachScreen1 = function () { setSlider(); }; runForEachScreen2 = function () { if (K_S.CONFIG.SMALL_SCREEN_MQ.matches) { $slider.addClass(overlappingPreventClass1); setTimeout(function () { $slider.removeClass(overlappingPreventClass1); }, 100); } else { $slider.removeClass(overlappingPreventClass1); setTimeout(function () { $slider.addClass(overlappingPreventClass1); }, 100); } }; $(function () { $slider = $(outputSelector); runForEachScreen1(); K_S.CONFIG.SMALL_SCREEN_MQ.addListener(runForEachScreen1); win.matchMedia('only screen and (max-width: 768px)').addListener(runForEachScreen2); }); }; K_S.fn.setSearchModal = function () { var modalTrigger = doc.querySelectorAll('.JSSearchModalTrigger'); var body = doc.body; var modalWrapper; var closeButton; var closeButtonInner; var runClickOpen; var runKeydownOpen; var openModal; var runKeydownClose; var runForEachScreen; var setModal; var runClickClose; if (!modalTrigger.length) { return; } closeButton = doc.createElement('button'); closeButton.id = 'SearchModalCloseButton'; closeButtonInner = doc.createElement('span'); closeButtonInner.textContent = GLOBAL.TRANSLATION.Close; modalWrapper = doc.createElement('div'); modalWrapper.id = 'SearchModal'; modalWrapper.setAttribute('role', 'dialog'); if (!doc.getElementById('JSSearchModal')) { modalWrapper.dataset.oldModal = 'true'; } body.appendChild(modalWrapper); modalWrapper.appendChild(closeButton); closeButton.appendChild(closeButtonInner); openModal = function (trigger) { var target; var targetID; var signpost; if (body.getAttribute('data-search-modal')) { return; } signpost = doc.createElement('div'); signpost.id = 'ModalSignpost'; targetID = trigger.getAttribute('data-modal-target'); target = doc.getElementById(targetID); if (targetID && target) { body.setAttribute('data-search-modal', true); target.parentNode.insertBefore(signpost, target); modalWrapper.appendChild(target); modalWrapper.classList.add('IsOpen'); trigger.tabIndex = -1; setTimeout(function () { closeButton.focus(); }, 200); } }; runClickOpen = function (e) { e.preventDefault(); openModal(this); }; runKeydownOpen = function (e) { if (e.key === 'Spacebar' || e.key === ' ' || e.key === 'Enter') { e.preventDefault(); openModal(this); } }; runClickClose = function (e) { e.preventDefault(); K_S.fn.closeSearchModal(); }; runKeydownClose = function (e) { if (e.key === 'Esc' || e.key === 'Escape') { e.preventDefault(); K_S.fn.closeSearchModal(); } }; setModal = function () { modalTrigger.forEach(function (items) { items.tabIndex = 0; items.addEventListener('click', runClickOpen, false); items.addEventListener('keydown', runKeydownOpen, false); }); body.addEventListener('keydown', runKeydownClose, false); closeButton.addEventListener('click', runClickClose, false); }; runForEachScreen = function () { if (K_S.CONFIG.LARGE_SCREEN_MQ.matches) { setModal(); } else { K_S.fn.closeSearchModal(); modalTrigger.forEach(function (items) { items.removeAttribute('tabindex'); items.removeEventListener('click', runClickOpen, false); items.removeEventListener('keydown', runKeydownOpen, false); }); } }; runForEachScreen(); K_S.CONFIG.LARGE_SCREEN_MQ.addListener(runForEachScreen); }; K_S.fn.closeSearchModal = function () { var signpost = doc.getElementById('ModalSignpost'); var modalWrapper = doc.getElementById('SearchModal'); var body = doc.body; var focusTarget; if (!modalWrapper || !signpost || !body.getAttribute('data-search-modal')) { return; } modalWrapper.classList.remove(K_S.CONFIG.OPEN_ATTR); body.removeAttribute('data-search-modal'); if (modalWrapper.childNodes[1]) { focusTarget = doc.querySelector('[data-modal-target="' + modalWrapper.childNodes[1].id + '"]'); if (focusTarget) { focusTarget.tabIndex = 0; } signpost.parentNode.insertBefore(modalWrapper.childNodes[1], doc.getElementById('ModalSignpost')); } signpost.remove(); if (K_S.getElem.selectTypes) { K_S.getElem.selectTypes.classList.remove(K_S.CONFIG.OPEN_ATTR); } if (K_S.getElem.selectTypesBox) { K_S.getElem.selectTypesBox.removeAttribute('style'); } setTimeout(function () { if (focusTarget) { focusTarget.focus(); } }, 200); }; K_S.polyfill = { setChildNodeRemove: function () { var arr = [Element.prototype, CharacterData.prototype, DocumentType.prototype]; arr.forEach(function (item) { item.remove = item.remove || function () { this.parentNode.removeChild(this); }; }); }, setNodeListForEach: function () { if (win.NodeList && !NodeList.prototype.forEach) { NodeList.prototype.forEach = Array.prototype.forEach; } }, setElemClosest: function () { if (!Element.prototype.matches) { Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; } if (!Element.prototype.closest) { Element.prototype.closest = function (s) { var el = this; if (!doc.documentElement.contains(el)) { return null; } do { if (el.matches(s)) { return el; } el = el.parentElement || el.parentNode; } while (el !== null && el.nodeType === 1); return null; }; } }, setObjectAssign: function () { var to; var nextSource; var index; var nextKey; if (typeof Object.assign !== 'function') { Object.defineProperty(Object, 'assign', { assign: function assign(target) { if (target === null || target === undefined) { throw new TypeError('Cannot convert undefined or null to object'); } to = Object(target); for (index = 1; index < arguments.length; index++) { nextSource = arguments[index]; if (nextSource !== null && nextSource !== undefined) { for (nextKey in nextSource) { if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { to[nextKey] = nextSource[nextKey]; } } } } return to; }, writable: true, configurable: true, }); } }, }; }(window, window.document, (function (win, doc) { 'use strict'; var SetUtility = function () { }; SetUtility.prototype = { checkSupportsTemp: function () { return 'content' in doc.createElement('template'); }, createNodeClone: function (template, selectorForIE) { if (this.checkSupportsTemp() === true) { return doc.importNode(template.content, true); } return doc.importNode(template.querySelector(selectorForIE), true); }, convertByteToMB: function (byte) { return (Math.round(Number(byte) / (1024 * 1024) * 10) / 10) + 'MB'; }, convertByteToKB: function (byte) { return (Math.round(Number(byte) / 1024 * 10) / 10) + 'KB'; }, getJSON: function (loadPath, method, sendData) { return new Promise(function (resolve, reject) { var xhr = new XMLHttpRequest(); if (method && method === 'POST') { xhr.open('POST', loadPath); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); } else { xhr.open('GET', loadPath); } xhr.onload = function () { if (xhr.status === 200) { resolve(JSON.parse(xhr.response)); } else { reject(new Error(xhr.statusText)); } }; xhr.onerror = function () { reject(new Error('Network Error')); }; if (method && method === 'POST' && sendData) { xhr.send(sendData); } else { xhr.send(null); } }); }, setCookie: function (name, value) { var date = new Date(); var path; if (win.suz_LanguagePath) { path = win.suz_LanguagePath + '/'; } else { path = '/'; } date.setDate(date.getDate() + 90); doc.cookie = name + '=' + value + '; expires=' + date.toUTCString() + '; path=' + path; }, getCookie: function (name) { var cookies = doc.cookie.split('; '); var i; var l; var arr = []; for (i = 0, l = cookies.length; i < l; i++) { if (cookies[i].indexOf(name + '=') === 0) { arr.push(cookies[i].substring(name.length + 1)); } } return arr[0]; }, addAssetTypeToString: function (string) { var dict = this.makeQueryIntoDict(); var suffix = ''; if (typeof string !== 'string' || dict.mode === undefined) { return false; } if (dict.mode === '') { suffix = '_ca'; } else { suffix = '_' + dict.mode; } return string + suffix; }, removeOverlapArr: function (array) { return array.filter(function (x, i, self) { return self.indexOf(x) === i; }); }, removeEmptyArr: function (array) { return array.filter(function (x) { return !(x === null || x === undefined || x === ''); }); }, makeQueryIntoDict: function () { var query; var i; var l; var arr = []; var dict = {}; query = location.search.substring(1).split('&'); query = this.removeEmptyArr(query); if (query.length) { for (i = 0, l = query.length; i < l; i++) { arr = query[i].split('='); if (arr[1]) { dict[arr[0]] = arr[1]; } else { dict[arr[0]] = ''; } } } return dict; }, updateBrowserHistory: function (dict) { var objKeyArr = Object.keys(dict); var l = objKeyArr.length; var newParam = ''; var i; for (i = 0; i < l; i++) { newParam += objKeyArr[i] + '=' + dict[objKeyArr[i]] + '&'; } newParam = '?' + newParam.slice(0, -1); win.history.pushState(null, null, newParam + win.location.hash); }, fromHtmlEntities: function (string) { var replace = function (targetString) { return String.fromCharCode(targetString.match(/\d+/gm)[0]); }; var outputString = String(string).replace(/&#\d+;/gm, replace); return outputString.replace(/ /gm, ' '); }, }; return new SetUtility(); }(window, window.document))));