var catalog_list; var CATALOG_COOKIE = 'catalog.cart'; var catalogMap = { "1101" : "一条 Links Villa 西郷", "1201" : "i-paletteカタログ", "1301" : "i-tab lite 視聴ご案内リーフレット", "1401" : "ICHIJO meets ACTUS STYLE BOOK", "2000" : "総合免災住宅カタログ", "0101" : "セゾンF", "0102" : "アイ・スマート", "0103" : "アイ・キューブ", "0104" : "セゾンA", "0105" : "ブリアール", "0106" : "セゾン・アシュレ", "0108" : "円熟の家・百年", "0109" : "3階建", "0110" : "グラン・セゾン メロウ ブラウン", "0111" : "グラン・セゾン ジャパン ナチュラル", "0112" : "グラン・セゾン ブロッサム ホワイト", "0113" : "グラン・セゾン コンフォート グレージュ", "0114" : "グラン・スマート メロウ ブラウンン", "0115" : "グラン・スマート ジャパン ナチュラル", "0116" : "グラン・スマート ブロッサム ホワイト", "0117" : "グラン・スマート コンフォート グレージュ", "0201" : "夢の家(I‐HEAD構法)", "0202" : "一条の免震住宅", "0203" : "安全住宅宣言", "0204" : "木質耐震シェルター", "0401" : "全館床暖房", "0402" : "ICHIJO'S SYSTEM KITCHEN", "0403" : "アイ・スマート設備・仕様ガイド", "0404" : "一条の住むだけで地球にやさしい家", "0405" : "i-standard住宅設備カタログ", "0406" : "ICHIJO TILE STYLE", "0407" : "夢発電システム", "0408" : "グラン・セゾン 設備仕様ガイド", "0409" : "ICHIJO 電力大革命", "0410" : "花粉ジェットリーフレット", "0411" : "グラン・スマート 設備仕様ガイド", "0412" : "全館さらぽか空調", "0413" : "防犯ツインLow-Eトリプル樹脂サッシ", "0414" : "ラシック・シリーズ住宅設備カタログ", "0415" : "Home, in Style vol.1", "0416" : "Home, in Style vol.2", "0417" : "「ブラックレーベル」リーフレット", "0205" : "健康へのこだわり", "0601" : "ICHIJO 防災BOOK", "0602" : "夏の不快を0にする家", "0603" : "お願い!ロスガードくん!", "0604" : "奥さま応援BOOK", "0606" : "ICHIJO NEWS", "0607" : "キッズデザインの家", "0608" : "くらしラクカタログ", "0701" : "VOICE of ICHIJO ハイドロテクトタイル特集", "0702" : "VOICE of ICHIJO 収納実例特集", "0703" : "VOICE of ICHIJO 全館床暖房特集", "0705" : "VOICE of ICHIJO 3階建て特集", "0706" : "VOICE of ICHIJO 太陽光発電特集", "0707" : "with ICHIJO vol.2 インテリア実例集", "0708" : "VOICE of ICHIJO ペットと暮らす家特集", "0709" : "VOICE of ICHIJO 二世帯住宅特集", "0704" : "VOICE of ICHIJO 平屋特集", "0711" : "VOICE of ICHIJO ユーティリティ特集", "0712" : "VOICE of ICHIJO 玄関シューズクローク特集", "0713" : "VOICE of ICHIJO キッチン特集", "0714" : "VOICE of ICHIJO 20代の家づくり特集", "0715" : "VOICE of ICHIJO おうち時間特集", "0716" : "VOICE of ICHIJO 太陽光&蓄電池特集", "0717" : "VOICE of ICHIJO 子育て特集", "0718" : "VOICE of ICHIJO 「全館さらぽか空調」特集", "0719" : "iikoto別冊「yukikoが行く!」 vol.1", "0720" : "iikoto別冊「yukikoが行く!」 vol.2", "0721" : "VOICE of ICHIJO 寒冷地での暮らし特集", "0722" : "VOICE of ICHIJO セカンドライフ特集", "0723" : "with ICHIJO インテリア実例集", "0724" : "VOICE of ICHIJO 世界から見た一条特集", "0725" : "VOICE of ICHIJO 地震に強い家特集", "0726" : "iikoto別冊「yukikoが行く!」 vol.3", "0727" : "VOICE of ICHIJO 一条の「リビングスタイル」特集", "0728" : "VOICE of ICHIJO 一条の「耐水害住宅」特集", "0729" : "VOICE of ICHIJO 一条の「省エネ住宅」特集", "0501" : "セゾン・アシュレプラン集", "2058" : "iikoto 2025年1月号", "2059" : "iikoto 2025年2月号", "2060" : "iikoto 2025年3月号", "2061" : "iikoto 2025年4月号", "2062" : "iikoto 2025年5月号", "2063" : "iikoto 2025年6月号", "2064" : "iikoto 2025年7月号", "2065" : "iikoto 2025年8月号", "2066" : "iikoto 2025年9月号", "2067" : "iikoto 2025年10月号", "2068" : "iikoto 2025年11月号", "2069" : "iikoto 2025年12月号", "2070" : "iikoto 2026年1月号", "2999" : "iikoto別冊「デリッシュディッシュ 60レシピ集」" }; const catalogPairs = { "0415": "0416", }; if (!catalog_list) { catalog_list = true; $(function () { //$('div.page-contentsbg-area div.catBlock') // 連動設定用のマップ $(document).on('click', '#catalogArea .catalog-section-button-detail', function (e) { e.stopPropagation(); e.preventDefault(); }); $('#catalogArea li').click(function (e) { if ($(e.target).closest('.catalog-section-button-detail').length) { return; } var c = $(this).find('input[type=checkbox]')[0]; var symbol = c.value.split('_')[0]; // 上限チェック:すでに2冊入っていて、今回チェックしようとしているならNG if (!c.checked && getCart().length >= 3) { $('#max').fadeIn(); return false; } c.checked = !c.checked; markIt(c); checkCheckbox(); // 連動対象が設定されているか → 自動的に追加 if (catalogPairs[symbol]) { var anotherId = catalogPairs[symbol]; var another = $('.catalog_' + anotherId + ' input[type=checkbox]')[0]; if (c.checked && another && !another.checked) { // カートの上限確認(すでに1冊入っている状態で連動追加するならNG) if (getCart().length >= 3) { $('#max').fadeIn(); // 元の選択もキャンセル(連動も含めて無効に) c.checked = false; markIt(c); checkCheckbox(); return false; } another.checked = true; markIt(another); } else if (!c.checked && another && another.checked) { another.checked = false; markIt(another); } checkCheckbox(); } }) .find('input[type=checkbox]').click(function (ev) { markIt(this); //ev.stopPropagation(); }); function updateRecommendModalButtonsForItem(id) { const isSelected = $('.catalog_' + id + ' input[type=checkbox]').prop('checked'); const $btn = $('.catalog-button-request[data-id="' + id + '"]'); if (isSelected) { $btn.addClass('selected'); $btn.text('選択中'); } else { $btn.removeClass('selected'); $btn.text('選択する'); } } function getSelectedCatalog() { const match = document.cookie.match(/selected_catalog=([^;]+)/); return match ? match[1] : null; } function updateSelectedCatalogButton() { const selectedId = getSelectedCatalog(); if (!selectedId) return; document.querySelectorAll('.catalog-button-request').forEach(btn => { btn.classList.remove('selected'); }); const target = document.querySelector(`.catalog-button-request[data-id="${selectedId}"]`); console.log(target) if (target) { target.classList.add('selected'); } } const modal = document.getElementById('catalog-modal'); const observer = new MutationObserver(() => { if (modal.classList.contains('open')) { updateSelectedCatalogButton(); } }); observer.observe(modal, { attributes: true }); window.addEventListener('DOMContentLoaded', updateSelectedCatalogButton); $(document).on('click', '.catalog-button-request', function () { const id = $(this).data('id'); const $targetLi = $('.catalog_' + id); if ($targetLi.length) { $targetLi.trigger('click'); updateRecommendModalButtonsForItem(id); } }); }); } function markIt(c) { var j = $(c).parents('label'); var symbol = c.value.split('_')[0]; var label = c.value.split('_')[1]; if (c.checked) { if (getCart().length >= 3) { $('#max').fadeIn(); c.checked = false; return false; } addToCart(symbol, label); } else { removeFromCart(symbol); } refreshCart(); updateRecommendModalButtons(); } function addToCart(symbol, label) { var cart = $.evalJSON($.cookie(CATALOG_COOKIE)); if (!cart) cart = []; if (cart.length >= 3) return; var found = false; $.each(cart, function (c, v) { if (!v) return; if (v.symbol == symbol) { found = true; return false; } }); if (found) return; cart.push({symbol:symbol, label:label, date:Math.floor(new Date / 1E3)}); setCart(cart); } function removeFromCart(symbol) { var cart = getCart(); // 関連する連動シンボルを取得する関数 function getLinkedSymbol(sym) { for (const key in catalogPairs) { if (key === sym) return catalogPairs[key]; if (catalogPairs[key] === sym) return key; } return null; } // UI側チェックボックスをオフにし、表示からも除去(存在すれば) function uncheckUI(sym) { const checkbox = $('.catalog_' + sym + ' input[type=checkbox]'); if (checkbox.length && checkbox.prop('checked')) { checkbox.prop('checked', false); checkbox.parents("li").removeClass("selected"); } } // 元のsymbolを削除 cart = cart.filter(function (item) { return item && item.symbol !== symbol; }); uncheckUI(symbol); // UI側も解除 // 連動カタログがある場合はそれも削除 const linkedSymbol = getLinkedSymbol(symbol); if (linkedSymbol) { cart = cart.filter(function (item) { return item && item.symbol !== linkedSymbol; }); uncheckUI(linkedSymbol); // 連動相手のUI側も解除 } setCart(cart); } function checkCart() { var cart = getCart(); $.each(cart, function (c, v) { $('#' + v.symbol).attr('checked', 'checked'); }); } function getCart() { var cart = $.evalJSON($.cookie(CATALOG_COOKIE)); return cart === null ? [] : cart; } function setCart(cart) { $.cookie(CATALOG_COOKIE, $.toJSON(cart)); } function resetCart() { // クッキーを確実に削除(path を指定する) try { // jQuery cookie plugin がある前提で両方やる(安全策) $.cookie(CATALOG_COOKIE, '', { expires: -1, path: '/' }); } catch (e) { // ignore } // 内部データも空にして保存(get/set の挙動を安定させるため) try { setCart([]); // setCart は cookie に '[]' を書きます } catch (e) { // ignore } // UI のチェックを全部外して選択クラスも除去 // チェックボックスのコンテナが #catalogArea ならそれを対象にする $('#catalogArea').find('input[type=checkbox]').prop('checked', false).closest('li').removeClass('selected'); // 選択リストの方も空に更新 populate(); } function refreshCart() { populate(); } function populate() { //var ul = $('#selectedCatalog ul.selects'); var ul = $('#selects'); if (ul.size() == 0) return; ul.empty(); var cart = getCart(); var selected00 = $('#selected00'); $.each(cart, function (c, item) { var o = selected00.clone(true); o.attr('id', 'selected0'+ (c + 1)) //o.find('p.name').text(item.label); //o.find('img.catalog_image').attr('src', 'img/cat_'+ item.symbol +'.jpg'); //o.find('img.remove').attr('id', 'select_box_'+ item.symbol); o.find('.catalog_image').attr('src', getCatalogImagePath(item.symbol)); o.find('.remove').attr('id', 'select_box_'+ item.symbol); o.append('') o.appendTo(ul); }); var selected00b = $('#selected00b'); for (var i = 0; i < 3 - cart.length; i++) { var o = selected00b.clone(true); o.attr('id', 'selected0'+ (i + 1 + cart.length)); o.appendTo(ul); } if (typeof updateCatalogBoxVisibility === 'function') updateCatalogBoxVisibility(); } let skipUpdateRecommend = false; function updateRecommendModalButtons() { if (skipUpdateRecommend) return; const cart = getCart(); if (cart.length > 0) { $('.catalog-recommend-modal-button-request').addClass('selected'); } else { $('.catalog-recommend-modal-button-request').removeClass('selected'); } } function getCatalogImagePath(symbol) { const customImageMap = { "0415": "/inquiry/catalog/img/cat_0415/cover.jpg", "0416": "/inquiry/catalog/img/cat_0416/cover.jpg" }; return customImageMap[symbol] || '/inquiry/catalog/img/cat_' + symbol + '/0.jpg?250922'; } function getCatalogImagePath(symbol) { const customImageMap = { "0415": "/inquiry/catalog/img/cat_0415/cover.jpg", "0416": "/inquiry/catalog/img/cat_0416/cover.jpg" }; return customImageMap[symbol] || '/inquiry/catalog/img/cat_' + symbol + '/0.jpg?250922'; } function checkCheckbox() { var cc = $("input[type=checkbox]"); $.each(cc, function(){ if($(this).is(":checked")){ $(this).parents("li").addClass("selected"); }else{ $(this).parents("li").removeClass("selected"); } }); } function updateAllRecommendModalButtons() { $('.catalog-button-request').each(function () { const id = $(this).data('id'); const isSelected = $('.catalog_' + id + ' input[type=checkbox]').prop('checked'); if (isSelected) { $(this).addClass('selected').text('選択中'); } else { $(this).removeClass('selected').text('選択する'); } }); } $(function () { var symbol = window.location.href.slice(window.location.href.indexOf('#') + 1); if (symbol === '0415' || symbol === '0416') { // 0415 または 0416 の場合、両方追加 if (catalogMap['0415']) { addToCart('0415', catalogMap['0415']); } if (catalogMap['0416']) { addToCart('0416', catalogMap['0416']); } } else if (catalogMap[symbol]) { // それ以外は1件のみ追加 addToCart(symbol, catalogMap[symbol]); } //if ($('#selectedCatalog ul.selects').size() == 0) return; if ($('#selects').size() == 0) return; //$('img.remove').click(function () { $('.remove').click(function () { var symbol = $(this).attr('id').replace('select_box_', ''); var c = $("#" + symbol); c.prop('checked', false); c.parents("li").removeClass("selected"); removeFromCart(symbol); refreshCart(); updateRecommendModalButtons(); updateAllRecommendModalButtons(); // ← これを追加 return false; }); populate(); checkCart(); checkCheckbox(); $('.chkreq').click(function(){ var cart = getCart(); if (cart == ""){ $('#empty').fadeIn(); return false; }else{ $(this).submit(); return true; } }); }); $(function () { const catalogSets = { "01": ['.catalog_0606', '.catalog_2000', '.catalog_0715'], "04": ['.catalog_0704', '.catalog_0703', '.catalog_0716'], "05": ['.catalog_0608', '.catalog_0702', '.catalog_0713'], "06": ['.catalog_0604', '.catalog_0607', '.catalog_0717'], "02": ['.catalog_0415', '.catalog_0416', '.catalog_0608'], "03": ['.catalog_0114', '.catalog_0102', '.catalog_0105'], }; function triggerCatalogSet(setId) { const catalogs = catalogSets[setId] || []; catalogs.forEach(selector => { const $el = $(selector); if (!$el.hasClass('selected')) $el.trigger('click'); }); $('input[name="catalog_set"]').val(setId); } function isSetSelected(setId) { const catalogs = catalogSets[setId] || []; return catalogs.every(selector => $(selector).hasClass('selected')); } function resetSelection() { $('#selected03 .remove').trigger('click'); $('#selected02 .remove').trigger('click'); $('#selected01 .remove').trigger('click'); $('.catalog_recommend_button, .catalog-section-list li').removeClass('selected'); $('input[name="catalog_set"]').val(""); } function updateRecommendButton() { $('.catalog_recommend_button').removeClass('selected'); $.each(catalogSets, function (setId, selectors) { if (selectors.some(sel => $(sel).hasClass('selected'))) { if ($('input[name="catalog_set"]').val() === setId) { // $('.catalog_recommend_button[data-catalog="' + setId + '"]').addClass("selected"); } } }); } function syncRecommendButtons() { $.each(catalogSets, function (setId, selectors) { if (selectors.every(sel => $(sel).hasClass('selected'))) { $('.catalog_recommend_button[data-catalog="' + setId + '"]').addClass("selected"); $('input[name="catalog_set"]').val(setId); } }); } $(function () { updateRecommendModalButtons(); }); $('.catalog_recommend_button').on('click', function (e) { const $btn = $(this); const setId = $btn.data('catalog'); if ($('#selected01 input').length) { if ($btn.hasClass('selected')) { resetSelection(); } else { $('#max').fadeIn(); return false; } } else { $btn.addClass('selected'); triggerCatalogSet(setId); $(window).scrollTop(e.pageY - e.clientY); } }); $('.remove').on('click', function () { $('.catalog_recommend_button').removeClass('selected'); updateRecommendButton(); $('input[name="catalog_set"]').val(""); }); syncRecommendButtons(); $('.btFormSubmit').on('click', function () { let matched = false; $.each(catalogSets, function (setId, selectors) { if (selectors.every(sel => $(sel).hasClass('selected'))) { $('.catalog_recommend_button[data-catalog="' + setId + '"]').addClass("selected"); $('input[name="catalog_set"]').val(setId); matched = true; return false; // break } }); if (!matched) { $('input[name="catalog_set"]').val(""); } }); $(function () { $(document).on('click', '.catalog-recommend-button-request', function () { if (getCart().length > 0) { $('#max').fadeIn(); return false; } $('.selectCatalogBox').css('opacity', 0); const setId = $(this).data('set'); const catalogs = catalogSets[setId] || []; if (!catalogs.length) return; catalogs.forEach(selector => { const $li = $(selector); const $checkbox = $li.find('input[type=checkbox]'); if ($checkbox.length && !$checkbox.prop('checked')) { $checkbox.prop('checked', true); markIt($checkbox[0]); } }); refreshCart(); updateRecommendModalButtons(); checkCheckbox(); $('input[name="catalog_set"]').val(setId); $('#selectCatalog').submit(); }); }); $(document).on('click', '.catalog-recommend-modal-button-request', function () { skipUpdateRecommend = true; resetCart(); const setId = $(this).data('set'); const catalogs = catalogSets[setId] || []; if (!catalogs.length) { skipUpdateRecommend = false; return; } catalogs.forEach(selector => { const $li = $(selector); const $checkbox = $li.find('input[type=checkbox]'); if ($checkbox.length) { // reset で既に unchecked になっているはずなので条件付けなくてもOKだが安全のため if (!$checkbox.prop('checked')) { $checkbox.prop('checked', true); markIt($checkbox[0]); // addToCart -> setCart -> refreshCart (内部で) が走る } else { // 既に checked の場合でも念のため markIt で内部に確実に反映する markIt($checkbox[0]); } } }); refreshCart(); checkCheckbox(); $('input[name="catalog_set"]').val(setId); $('#selectCatalog').submit(); skipUpdateRecommend = false; }); });