app/template/default/Block/Sp/Item/lm_item_info.twig line 1

Open in your IDE?
  1. {{ include('Block/Sp/Item/error_modal.twig') }}
  2. <style>
  3.     #item-detail #shopping-cart ul li {
  4.         padding: 0;
  5.         width: 100%;
  6.     }
  7.     #item-cart-matrix .item-cart-matrix-size-table {
  8.         font-family: 'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro',Osaka,'MS Pゴシック','MS PGothic',sans-serif;
  9.         letter-spacing: normal;
  10.         margin: 0 !important;
  11.     }
  12.     #item-cart-matrix .item-cart-matrix-size-table .item-cart-matrix-sku-sokujitsu-stock-mark > span {
  13.         background-color: #1090DD;
  14.         font-size: 0.98rem;
  15.         letter-spacing: normal;
  16.         box-sizing: content-box;
  17.         padding: 0.245rem 0.8rem;
  18.     }
  19.     #item-cart-matrix .item-cart-matrix-size-table .item-cart-matrix-sales-price {
  20.         font-size: 1.4rem;
  21.     }
  22.     #item-cart-matrix .item-cart-matrix-size-table select {
  23.         font-size: 1.33rem;
  24.     }
  25.     .nyuka-yotei {
  26.         line-height: 120%;
  27.     }
  28. </style>
  29. <div id="item-detail">
  30.     <div id="shopping-cart">
  31.         {% if eccube_config.GoodsSetPurchase.NewUI.Enabled and goods.isGoodsSetPurchase %}
  32.             {% include 'Item/GoodsSetPurchase/main.twig' %}
  33.         {% else %}
  34.         <form id="cart" name="cart" action="/sp/cart-in?id={{ data.goods_id | display_text }}" method="POST">
  35.             <input type="hidden" id="OlToken" name="OlToken" value="{{ OlToken('matrix') }}">
  36.             <div id="cart-link"></div>
  37.             <div id="shopping-cart-title">ショッピングカート(カンタン注文!)</div>
  38.             <ul>
  39.                 <li>
  40.                     <div id="cartInputDiv" class="js-cartInputTableWrap">
  41.                         <div id="tableAddDiv"></div>
  42.                         <div style="margin: 0; text-align:center;">
  43.                             {% set size_list = size %}
  44.                             {% set color_list = color %}
  45.                             {% if data.goods_set_purchase_flg == 1 %}
  46.                                 {% set is_set_purchase = true %}
  47.                             {% else %}
  48.                                 {% set is_set_purchase = false %}
  49.                             {% endif %}
  50.                             {% for _color in color_list %}
  51.                                 {# {% if color_number_map['_color.gcl_id'] %} #}
  52.                                 {# {% color.color_num = color_number_map[_color.gcl_id] %} #}
  53.                                 {# {% endif %} #}
  54.                             {% endfor %}
  55.                             {% set _color = false %}
  56.                             <div id="item-cart-matrix">
  57.                                 <div class="item-cart-matrix-color-select">
  58.                                     <span class="item-cart-matrix-color-select-label">{% if goods.isGoodsSetPurchase %}{{ goods.getAsGoodsSetPurchase(true).main_gsp_name }}の色{% else %}カラー選択{% endif %}</span>
  59.                                     <span class="item-cart-matrix-color-rbg"></span>
  60.                                     <select>
  61.                                         {% if isMobile() and eccube_config.CartMatrix.SP.NewUI.Enabled %}
  62.                                             {% for index, goodsColor in goods.goodsColorList %}
  63.                                                 <option value="{{ goodsColor.gclId }}"
  64.                                                         data-color-rbg="{{ goodsColor.color.colorRgb }}"
  65.                                                         data-color-idx="{{ index }}">
  66.                                                     {{ goodsColor.color.colorName }}{# {% if cellData.shiire_color is not null %} ({{ cellData.shiire_color }}){% endif %} #}
  67.                                                 </option>
  68.                                             {% endfor %}
  69.                                         {% else %}
  70.                                         {% set matrixData = getInventoryMatrix(goods) %}
  71.                                         {% for tableData in matrixData %}
  72.                                             {% for ListData in tableData %}
  73.                                                 {% for cellData in ListData %}
  74.                                                     {% if loop.first %}
  75.                                                         <option value="{{ cellData.color.gcl_id }}"
  76.                                                                 data-color-rbg="{{ cellData.color.color_rgb }}"
  77.                                                                 data-color-idx="{{ loop.parent.loop.index }}">
  78.                                                             {{ cellData.color.color_name }}{% if cellData.shiire_color is not null %} ({{ cellData.shiire_color }}){% endif %}
  79.                                                         </option>
  80.                                                     {% endif %}
  81.                                                 {% endfor %}
  82.                                             {% endfor %}
  83.                                         {% endfor %}
  84.                                         {% endif %}
  85.                                     </select>
  86.                                 </div>
  87.                                 {% if goods.isGoodsSetPurchase %}
  88.                                 {% for child in goods.getAsGoodsSetPurchase %}
  89.                                 {% if child.gsp_type != 0 %}
  90.                                 <div class="item-cart-matrix-color-select">
  91.                                     <span class="item-cart-matrix-color-rbg sub" style="background:#{{ child.color_rgb }};"></span>
  92.                                     <span id="item-cart-matrix-sub-color-select">{{ child.gsp_name }}({{ child.color_name }})</span>
  93.                                 </div>
  94.                                 {% endif %}
  95.                                 {% endfor %}
  96.                                 {% endif %}
  97.                                 <div class="item-cart-matrix-size-select">
  98.                                     <span class="item-cart-matrix-size-select-label">ご希望のサイズの数量を選択してください<br>複数のカラー、サイズもまとめてカートに入れられます。</span>
  99.                                     {% if isMobile() and eccube_config.CartMatrix.SP.NewUI.Enabled %}
  100.                                         {% include 'Item/NewCartArea/style.twig' with {} only %}
  101.                                         {% include 'Item/NewCartArea/script.twig' with {} only %}
  102.                                         {% include 'Item/NewCartArea/cart_matrix.twig' with { loop: { index0: 0 }, parent: null, item: item, NewUI: eccube_config.CartMatrix.SP.NewUI, skuMap: skuMap, visibleSizes: visibleSizes } only %}
  103.                                         <script>
  104.                                             $(function () {
  105.                                                 //
  106.                                                 var $form = $('#shopping-cart form');
  107.                                                 var $matrixBox = $('#item-cart-matrix', $form);
  108.                                                 var $colorSelect = $('.item-cart-matrix-color-select select', $matrixBox);
  109.                                                 var $rgbColorBox = $('.item-cart-matrix-color-rbg:not(.sub)', $matrixBox);
  110.                                                 /**
  111.                                                  * 色選択処理
  112.                                                  */
  113.                                                 $colorSelect.on('change', function () {
  114.                                                     //
  115.                                                     const $currentColor = $(this);
  116.                                                     const $newCartArea = $('.item-cart-matrix-size-select');
  117.                                                     const gclId = $currentColor.val();
  118.                                                     //
  119.                                                     $rgbColorBox.css('background', '#' + $('option:selected', this).attr('data-color-rbg'));
  120.                                                     selectColorByGclId($newCartArea, gclId);
  121.                                                 }).trigger('change');
  122.                                             });
  123.                                         </script>
  124.                                         <style>
  125.                                             .new-cart-area {
  126.                                                 margin-top: 0 !important;
  127.                                                 padding-top: 0 !important;
  128.                                             }
  129.                                         </style>
  130.                                     {% else %}
  131.                                     <table class="item-cart-matrix-size-table">
  132.                                         <thead>
  133.                                         <th>サイズ</th>
  134.                                         <th>販売価格(税込)</th>
  135.                                         <th>数量</th>
  136.                                         <th>在庫状況</th>
  137.                                         </thead>
  138.                                         <tbody>
  139.                                         {% for size_idx, _size in size_list %}
  140.                                             <tr data-gp-id="{{ _size.gp_id }}" data-size-idx="{{ size_idx + 1 }}">
  141.                                                 <td class="item-cart-matrix-size">
  142.                                                     {{ _size.size_name | escape }}
  143.                                                     <div class="item-cart-matrix-sku-sokujitsu-stock-mark">
  144.                                                         <span>即日発送</span></div>
  145.                                                 </td>
  146.                                                 <td class="item-cart-matrix-sales-price">{{ _size.gp_price | number_format }}円(税込)
  147.                                                 </td>
  148.                                                 <td>
  149.                                                     <select>
  150.                                                         <option value="0">数量</option>
  151.                                                         {% for i in range (1, 100) %}
  152.                                                             <option value="{{ i }}">{{ i }}</option>
  153.                                                         {% endfor %}
  154.                                                     </select>
  155.                                                 </td>
  156.                                                 <td>
  157.                                                     <div class="item-cart-matrix-sku-stock-wrap">
  158.                                                         <span class="item-cart-matrix-sku-stock"></span>
  159.                                                         <span class="item-cart-matrix-sku-sokujitsu-stock"></span>
  160.                                                         <span class="item-cart-matrix-sku-stock-msg"></span>
  161.                                                     </div>
  162.                                                 </td>
  163.                                             </tr>
  164.                                         {% endfor %}
  165.                                         </tbody>
  166.                                     </table>
  167.                                     {% endif %}
  168.                                 </div>
  169.                             </div>
  170.                             {% if isMobile() and eccube_config.CartMatrix.SP.NewUI.Enabled %}
  171.                             {% else %}
  172.                             <script>
  173.                                 //
  174.                                 const stockData = {{ goods.getStockListForMatrix | json_encode() | raw }};
  175.                                 //
  176.                                 $(function () {
  177.                                     var goodsId = {{ data.goods_id }};
  178.                                     var $form = $('#shopping-cart form');
  179.                                     var $matrixBox = $('#item-cart-matrix', $form);
  180.                                     var $colorSelect = $('.item-cart-matrix-color-select select', $matrixBox);
  181.                                     console.log($colorSelect)
  182.                                     var $quantitySelect = $('.item-cart-matrix-size-select select', $matrixBox);
  183.                                     var $rgbColorBox = $('.item-cart-matrix-color-rbg:not(.sub)', $matrixBox);
  184.                                     var $sizeTable = $('.item-cart-matrix-size-table', $matrixBox);
  185.                                     // カートの選択状態をリセットしても、フォームデータが消えないように一枚多くラップしておく
  186.                                     // // var selectStatus = {};    // カートの選択状態をもっておく
  187.                                     var selectStatus = {
  188.                                         selectedStatus: {}, // カートの選択状態をもっておく
  189.                                     };
  190.                                     $form.data('selected-item-data', selectStatus);
  191.                                     // 当該商品の在庫情報取得
  192.                                     (function (stockData) {
  193.                                         /**
  194.                                          * 色選択処理
  195.                                          */
  196.                                         $colorSelect.on('change', function () {
  197.                                             // 数量プルダウンをdisableに
  198.                                             disableQuantitySelect();
  199.                                             // 色プルダウン横のカラー変更
  200.                                             $rgbColorBox.css('background', '#' + $('option:selected', this).attr('data-color-rbg'));
  201.                                             var colorId = $colorSelect.val();
  202.                                             if (stockData.stockList[goodsId][colorId] === undefined) return;
  203.                                             // カラーを変更する度にリセットするように
  204.                                             // selectStatus.selectedStatus = {};
  205.                                             // 在庫表に値セット
  206.                                             setStockToTable(stockData.stockList[goodsId][colorId], stockData.janList[colorId]);
  207.                                         }).trigger('change');    // 色プルダウン横の色をセットするため一度キック
  208.                                         /**
  209.                                          * 数量選択処理
  210.                                          * 複数カラー、複数サイズの選択状況を保持する。
  211.                                          */
  212.                                         $matrixBox.on('change', '.item-cart-matrix-size-table select', function () {
  213.                                             var $select = $(this);
  214.                                             var $tr = $select.closest('tr');
  215.                                             var colorIdx = $('option:selected', $colorSelect).attr('data-color-idx');
  216.                                             var sizeIdx = $tr.attr('data-size-idx');
  217.                                             if (selectStatus.selectedStatus[colorIdx] === undefined) selectStatus.selectedStatus[colorIdx] = {};
  218.                                             selectStatus.selectedStatus[colorIdx][sizeIdx] = $select.val();
  219.                                         });
  220.                                     })(stockData);
  221.                                     function disableQuantitySelect() {
  222.                                         $quantitySelect
  223.                                             .attr('disabled', 'disabled')
  224.                                             .removeClass('active ppre-order')
  225.                                             .find('option:selected')
  226.                                             .prop('selected', false)
  227.                                         ;
  228.                                     }
  229.                                     function setStockToTable(stockMap, yoteiMap) {
  230.                                         $('tbody tr', $sizeTable).each(function () {
  231.                                             var $tr = $(this);
  232.                                             var colorId = $colorSelect.val();
  233.                                             var gpId = $tr.attr('data-gp-id');
  234.                                             var stockData = stockMap[gpId];
  235.                                             var yoteiData = yoteiMap[gpId];
  236.                                             if (stockData === undefined) return true;
  237.                                             // selectStatusから、選択状況復元
  238.                                             var colorIdx = $('option:selected', $colorSelect).attr('data-color-idx');
  239.                                             var sizeIdx = $tr.attr('data-size-idx');
  240.                                             if (
  241.                                                 selectStatus.selectedStatus[colorIdx] &&
  242.                                                 selectStatus.selectedStatus[colorIdx][sizeIdx] !== undefined &&
  243.                                                 selectStatus.selectedStatus[colorIdx][sizeIdx] !== '0'
  244.                                             ) {
  245.                                                 $('select', $tr).val(selectStatus.selectedStatus[colorIdx][sizeIdx]);
  246.                                             }
  247.                                             ;
  248.                                             setSizeRow($tr, stockData, yoteiData);
  249.                                         });
  250.                                     }
  251.                                     function setSizeRow($tr, stockData, yoteiData) {
  252.                                         var $stockNumArea = $('.item-cart-matrix-sku-stock', $tr).empty();
  253.                                         var $sokujitsuStockMarkArea = $('.item-cart-matrix-sku-sokujitsu-stock-mark', $tr);
  254.                                         var $sokujitsuStockNumArea = $('.item-cart-matrix-sku-sokujitsu-stock', $tr).empty();
  255.                                         var $stockMsgArea = $('.item-cart-matrix-sku-stock-msg', $tr).empty();
  256.                                         $tr.hide();
  257.                                         if (stockData.nodisp === '1') return;
  258.                                         $tr.show();
  259.                                         // 即日マークを非表示
  260.                                         $sokujitsuStockMarkArea.hide();
  261.                                         if (
  262.                                             stockData.stock !== '*' &&
  263.                                             stockData.stock === 0 &&
  264.                                             (typeof (stockData.comment) === 'undefined' || stockData.comment === '') &&
  265.                                             (typeof (stockData.zdate) === 'undefined' || stockData.zdate === '')
  266.                                         ) {
  267.                                             $stockMsgArea.text('在庫切れ');
  268.                                             return;
  269.                                         }
  270.                                         // 在庫数表示
  271.                                         if (stockData.stock > 0) {
  272.                                             $stockNumArea.text(stockData.stock);
  273.                                         }
  274.                                         if (stockData.stock3 !== undefined) {
  275.                                             var sokujitsuStock = parseInt(stockData.stock3.replace(/^[^\d]*(\d+)[^\d]*$/, '$1'));
  276.                                             if (Number.isFinite(sokujitsuStock) && sokujitsuStock > 0) {
  277.                                                 $sokujitsuStockMarkArea.show();
  278.                                                 $sokujitsuStockNumArea.html('<span>(即日発送 ' + sokujitsuStock + ')</span>');
  279.                                             }
  280.                                         }
  281.                                         $('select option', $tr).removeAttr('disabled');
  282.                                         if (stockData.stock !== '*' && stockData.stock < 100) {
  283.                                             $('select option:gt(' + stockData.stock + ')', $tr).attr('disabled', 'disabled');
  284.                                         }
  285.                                         $stockNumArea.removeClass('item-cart-matrix-sku-stock-rest');
  286.                                         if (stockData.stock <= 10 && stockData.stock > 0) {
  287.                                             $stockNumArea
  288.                                                 .prepend('残り')
  289.                                                 .addClass('item-cart-matrix-sku-stock-rest')
  290.                                             ;
  291.                                         }
  292.                                         $stockNumArea.show();
  293.                                         $stockMsgArea.removeClass('has-arrival-date')
  294.                                         if (
  295.                                             (isNaN(stockData.stock3) || parseInt(stockData.stock3) === 0) &&
  296.                                             (
  297.                                                 stockData.stock === 0 ||
  298.                                                 ((stockData.stock === stockData.stock_other) && !!yoteiData)
  299.                                             )
  300.                                         ) {
  301.                                             var comment = '';
  302.                                             var hasZdate = typeof (stockData.zdate) !== 'undefined' && stockData.zdate !== '';
  303.                                             var hasComment = typeof (stockData.comment) !== 'undefined' && stockData.comment !== '';
  304.                                             if (!!yoteiData) {
  305.                                                 // 予約注文
  306.                                                 $('select', $tr)
  307.                                                     .removeAttr('disabled')
  308.                                                     .addClass('active reservation')
  309.                                                 ;
  310.                                                 $('select option', $tr).removeAttr('disabled');
  311.                                                 var nyuukaDate = new Date(yoteiData);
  312.                                                 var displayDate = new Date(nyuukaDate.getFullYear(), nyuukaDate.getMonth(), nyuukaDate.getDate() + 1);
  313.                                                 var zdate = displayDate.getMonth() + 1 + '月' + displayDate.getDate() + '日';
  314.                                                 comment = '入荷予定日<br>' + zdate;
  315.                                             } else {
  316.                                                 // 赤字(残り0)を非表示にしてcommentを表示
  317.                                                 $stockNumArea.hide();
  318.                                                 // コメントはzdateが優先
  319.                                                 if (hasZdate) {
  320.                                                     comment = '入荷予定日<br>' + stockData.zdate;
  321.                                                 } else if (hasComment) {
  322.                                                     comment = stockData.comment;
  323.                                                 }
  324.                                             }
  325.                                             $stockMsgArea
  326.                                                 .append(comment)
  327.                                                 .addClass('has-arrival-date')
  328.                                             ;
  329.                                             return;
  330.                                         }
  331.                                         $('select', $tr)
  332.                                             .removeAttr('disabled')
  333.                                             .addClass('active')
  334.                                             .removeClass('reservation')
  335.                                         ;
  336.                                     }
  337.                                 });
  338.                             </script>
  339.                             <style>
  340.                                 .reservation {
  341.                                     border: 2px solid red;
  342.                                     border-radius: 2px;
  343.                                     background: white;
  344.                                 }
  345.                             </style>
  346.                             {% endif %}
  347.                             <span class="add-to-cart"><img class="muji" style="width: 95%;" id="cartBtnImg"
  348.                                  src="https://img0.land-mark.biz/ut_img/public_images/image_dt/btn_cart_sp.gif" border="0" alt="カートに入れる"/><img
  349.                                 style="width: 95%;display:none;" id="cartBtnImgDisabled"
  350.                                 src="https://img0.land-mark.biz/ut_img/public_images/image_dt/btn_cart_sp_disabled.png" border="0"/></span><br/>
  351.                             {% if data.goods_naire_print != '2' %}
  352.                                 <span class="add-to-cart"><img class="print" style="margin-top: 5px; width: 95%;" id="mitsumoriCartBtnImg"
  353.                                      src="https://img0.land-mark.biz/ut_img/public_images/image_dt/btn_mitsumori_sp.gif" border="0"
  354.                                      alt="プリント・刺繍して見積・カートに入れる"/><img
  355.                                 style="margin-top: 5px; width: 95%;display:none;" id="mitsumoriCartBtnImgDisabled"
  356.                                 src="https://img0.land-mark.biz/ut_img/public_images/image_dt/btn_mitsumori_sp_disabled.png" border="0"/></span><br/>
  357.                             {% endif %}
  358.                             {% if data.goods_susoage == '1' %}
  359.                                 <span class="add-to-cart"><img class="susoage" style="margin-top: 5px; width: 95%;" id="susoageCartBtnImg"
  360.                                      src="https://img0.land-mark.biz/ut_img/public_images/image_dt/btn_susoage_sp.gif" border="0" alt="裾上げして見積・カートに入れる"/></span>
  361.                                 <br/>
  362.                             {% endif %}
  363.                             {% if data.goods_sample_rental != '0' %}
  364.                                 <span class="add-to-cart"><img class="sample" style="margin-top: 5px; width: 95%;" id="sampleCartBtnImg"
  365.                                      src="https://img0.land-mark.biz/ut_img/public_images/image_dt/btn_sample_sp.gif" border="0" alt="貸出サンプル"/><img
  366.                                 style="margin-top: 5px; width: 95%;display:none;" id="sampleCartBtnImgDisabled"
  367.                                 src="https://img0.land-mark.biz/ut_img/public_images/image_dt/btn_sample_sp_disabled.png" border="0"/></span>
  368.                             {% endif %}
  369.                             {% if isOutOfService %}
  370.                                 <br/>
  371.                                 <span class="add-to-cart"><img class="add-to-cart" style="margin-top: 5px; width: 95%;" id="telOrderBtnImg"
  372.                                                                src="https://img0.land-mark.biz/ut_img/public_images/image_dt/btn_tel_order_sp.jpg" border="0" alt="電話でご相談・ご注文"/></span>
  373.                             {% endif %}
  374.                         </div>
  375.                         {% if stockNyukayoteiList | length %}
  376.                             <span id="blink">★「入荷予定日」のあるものは、電話やFAXで「予約注文」を承ります</span>
  377.                         {% endif %}
  378.                     </div>
  379.                 </li>
  380.             </ul>
  381.             <script>
  382.                 var last_scroll_top_value = 0;
  383.                 function showLoadingOverlay() {
  384.                     if ($('.bg-load-overlay').length === 0) {
  385.                         $('body').append('<div class="bg-load-overlay" style="display: none;"></div>');
  386.                     }
  387.                     $('.bg-load-overlay').fadeIn();
  388.                 }
  389.                 
  390.                 document.addEventListener("DOMContentLoaded", function() {
  391.                     const buttons = [
  392.                         '#cartBtnImg',
  393.                         '#mitsumoriCartBtnImg',
  394.                         '#susoageCartBtnImg',
  395.                         '#sampleCartBtnImg'
  396.                     ];
  397.                     buttons.forEach(buttonId => {
  398.                         $(buttonId).on('click', showLoadingOverlay);
  399.                     });
  400.                 });
  401.                 
  402.                 function showModalWindow() {
  403.                     last_scroll_top_value = $(document).scrollTop();
  404.                     $("body").css("height", $(window).height());
  405.                     $("body").css("overflow", "hidden");
  406.                     $("#overlay").css("visibility", "visible");
  407.                     $("#modal-window").css("visibility", "visible");
  408.                 }
  409.                 function closeModalWindow() {
  410.                     $("body").css("height", "auto");
  411.                     $("body").css("overflow", "auto");
  412.                     $("#overlay").css("visibility", "hidden");
  413.                     $("#modal-window").css("visibility", "hidden");
  414.                     window.scrollTo(0, last_scroll_top_value);
  415.                 }
  416.                 function showModalWindowSample() {
  417.                     last_scroll_top_value = $(document).scrollTop();
  418.                     $("body").css("height", $(window).height());
  419.                     $("body").css("overflow", "hidden");
  420.                     $("#overlay").css("visibility", "visible");
  421.                     $("#modal-window-sample").css("visibility", "visible");
  422.                 }
  423.                 function closeModalWindowSample() {
  424.                     $("body").css("height", "auto");
  425.                     $("body").css("overflow", "auto");
  426.                     $("#overlay").css("visibility", "hidden");
  427.                     $("#modal-window-sample").css("visibility", "hidden");
  428.                     window.scrollTo(0, last_scroll_top_value);
  429.                 }
  430.                 function showAlertWindow(msg) {
  431.                     last_scroll_top_value = $(document).scrollTop();
  432.                     $("#alert-window p.alert-explain").text(msg);
  433.                     $("body").css("height", $(window).height());
  434.                     $("body").css("overflow", "hidden");
  435.                     $("#overlay").css("visibility", "visible");
  436.                     $("#alert-window").css("visibility", "visible");
  437.                 }
  438.                 function closeAlertWindow() {
  439.                     $("body").css("height", "auto");
  440.                     $("body").css("overflow", "auto");
  441.                     $("#overlay").css("visibility", "hidden");
  442.                     $("#alert-window").css("visibility", "hidden");
  443.                     window.scrollTo(0, last_scroll_top_value);
  444.                 }
  445.                 function showModalWindowTelOrder() {
  446.                     $("#overlay").css("visibility", "visible");
  447.                     var $modal = $("#modal-window-tel-order").css("visibility", "visible");
  448.                     var modalHeight = $modal.height();
  449.                     $modal.css('top', $(document).scrollTop() + ($(window).height() / 2) - (modalHeight / 4));
  450.                 }
  451.                 function closeModalWindowTelOrder() {
  452.                     $("#overlay").css("visibility", "hidden");
  453.                     $("#modal-window-tel-order").css("visibility", "hidden");
  454.                 }
  455.                 function showModalWindowSizeChart() {
  456.                     var $overlay = $("#overlay-scrollable").css("visibility", "visible");
  457.                     var $modal = $("#modal-window-size-chart").show().appendTo($overlay);
  458.                 }
  459.                 function closeModalWindowSizeChart() {
  460.                     $("#overlay-scrollable").css("visibility", "hidden");
  461.                     $("#modal-window-size-chart").hide();
  462.                 }
  463.                 function add_to_cart() {
  464.                     send_to_cartin('order');
  465.                 }
  466.                 function add_to_cart_sample(f) {
  467.                     send_to_cartin('sample');
  468.                 }
  469.                 function add_to_cart_print(f) {
  470.                     send_to_cartin('print');
  471.                 }
  472.                 function updateCart(type) {
  473.                     $.ajax({
  474.                         type: "GET",
  475.                         url: '/sp/cart-update',
  476.                         dataTyep: 'json',
  477.                         cache: false,
  478.                         xhrFields: {
  479.                             withCredentials: true
  480.                         },
  481.                         success: function (data) {
  482.                             if (data.err == 0) {
  483.                                 if (type == 'order') {
  484.                                     // showModalWindow();
  485.                                     location.href = '/sp/cart-muji';
  486.                                 } else {
  487.                                     // showModalWindowSample();
  488.                                     location.href = '/sp/cart-sample';
  489.                                 }
  490.                             } else {
  491.                                 showAlertWindow(data.msg);
  492.                             }
  493.                         },
  494.                         error: function (XMLHttpRequest, textStatus, errorThrown) {
  495.                             showAlertWindow('エラー ' + errorThrown);
  496.                         }
  497.                     });
  498.                     return false;
  499.                 }
  500.                 function _send_to_cartin(options, $sendForm) {
  501.                     var $form = $('form[name=cart]');
  502.                     var selectedStatus = $form.data('selected-item-data').selectedStatus;
  503.                     var $matrixBox = $('#item-cart-matrix');
  504.                     // 格納されている選択状態から送信データを作成
  505.                     for (var colorIdx in selectedStatus) {
  506.                         for (var sizeIdx in selectedStatus[colorIdx]) {
  507.                             if (selectedStatus[colorIdx][sizeIdx] === '0') continue;
  508.                             // var $input = $('<input type="hidden">')
  509.                             //     .attr('name', 'cart_['+sizeIdx+'_'+colorIdx)
  510.                             //     .val( selectedStatus[colorIdx][sizeIdx] )
  511.                             // ;
  512.                             var $input = $('input[name^="product_matrix"]')
  513.                                 .filter('[data-color-idx="' + colorIdx + '"]')
  514.                                 .filter('[data-size-idx="' + sizeIdx + '"]').clone()
  515.                                 .val(selectedStatus[colorIdx][sizeIdx])
  516.                             ;
  517.                             $sendForm.append($input);
  518.                         }
  519.                     }
  520.                     options = $.extend({
  521.                         type: "POST",
  522.                         url: $sendForm.attr('action'),
  523.                         data: $sendForm.serialize(),
  524.                         dataTyep: 'text',
  525.                         cache: false,
  526.                         xhrFields: {
  527.                             withCredentials: true
  528.                         }
  529.                     }, options);
  530.                     return $.ajax(options);
  531.                 }
  532.                 function send_to_cartin(type) {
  533.                     let url;
  534.                     switch (type) {
  535.                         case 'print':
  536.                         case 'susoage':
  537.                             url = '{{ url('valid_estimate') }}';
  538.                             break;
  539.                         case 'sample':
  540.                             url = '{{ url('add_sample') }}';
  541.                             break;
  542.                         case 'order':
  543.                         default:
  544.                             url = '{{ url('add_Normal') }}';
  545.                             break;
  546.                     }
  547.                     const $form = $('form[name=cart]').clone().appendTo(document.body);
  548.                     return _send_to_cartin({
  549.                         url
  550.                     }, $form)
  551.                         .done(function (data, textStatus, jqXHR) {
  552.                             console.log(jqXHR.status); // 200
  553.                             console.log(textStatus); // success
  554.                             console.log(data);
  555.                             if (data.status == 'OK') {
  556.                                 console.log(data.data);
  557.                                 if (type == 'print' || type == 'susoage') {
  558.                                     $form.attr('action', '{{ url('estimate') }}');
  559.                                     $form.submit();
  560.                                 } else {
  561.                                     window.location.href = '{{ url('cart') }}';
  562.                                 }
  563.                             }
  564.                             if (data.status == 'Error') {
  565.                                 console.log(data.Errors);
  566.                                 var errorMsg = "";
  567.                                 $.each(data.Errors, function (index, val) {
  568.                                     errorMsg += val.message + "\n";
  569.                                 });
  570.                                 if (data.show_error_modal) {
  571.                                     showErrorModal(errorMsg)
  572.                                 } else {
  573.                                     showAlertWindow(errorMsg);
  574.                                 }
  575.                                 $('#OlToken').val(data.OlToken);
  576.                             }
  577.                         })
  578.                         .fail(function (jqXHR, textStatus, errorThrown) {
  579.                             console.log(jqXHR.status); // 404...
  580.                             console.log(textStatus); // error
  581.                             console.log(errorThrown); // NOT FOUND
  582.                             showAlertWindow('送信エラー:もう一度やり直してください');
  583.                             location.reload();
  584.                         })
  585.                         .always(function () {
  586.                             console.log("complete"); // complete
  587.                             $form.remove();
  588.                         });
  589.                     ;
  590.                 }
  591.             </script>
  592.         </form>
  593.         {% if isMobile() and eccube_config.CartMatrix.SP.NewUI.Enabled %}
  594.         {% else %}
  595.         {% for tableData in matrixData %}
  596.             {% for ListData in tableData %}
  597.                 {% for cellData in ListData %}
  598.                     <input type="hidden" name="product_matrix[{{ cellData.product_id }}]" value=""
  599.                            data-color-idx="{{ loop.parent.loop.index }}" data-size-idx="{{ loop.index }}"/>
  600.                 {% endfor %}
  601.             {% endfor %}
  602.         {% endfor %}
  603.         {% endif %}
  604.     </div>
  605.     <script type="text/javascript" async>
  606.         var GOODS_ID = '{{ data.goods_id }}';
  607.         var GOODS_NAME = '{{ data.goods_name }}';
  608.         var product_ids = GOODS_ID;
  609.         var product_name = GOODS_NAME;
  610.         $(function () {
  611.             init();
  612.             var option_color_id = new Array();
  613.             var option_color_name = new Array();
  614.             {% for _k, _c in color %}
  615.             option_color_id[{{ _k }}] = {{ _c.gcl_id }}
  616.                 option_color_name[{{ _k }}] = "{{ _c.color_name }}"
  617.             {% endfor %}
  618.             var option_size_id = new Array();
  619.             var option_size_name = new Array();
  620.             {% for _k, _size in size %}
  621.             option_size_id[{{ _k }}] = {{ _size.gp_id }}
  622.                 option_size_name[{{ _k }}] = "{{ _size.size_name }}"
  623.             {% endfor %}
  624.             var option_stock_list = new Array();
  625.             var option_stock_flg = new Array();
  626.             {% for _cid, _v in stockList %}
  627.             option_stock_list[{{ _cid }}] = new Array();
  628.             option_stock_flg[{{ _cid }}] = new Array();
  629.             {% for _gid, _stock in _v %}
  630.             {% set matches = [] %}
  631.             {% if stockKeppinList[_cid][_gid] %}
  632.             option_stock_list[{{ _cid }}][{{ _gid }}] = false;
  633.             option_stock_flg[{{ _cid }}][{{ _gid }}] = 0;
  634.             {% elseif preg_match('/^[0-9]+?$/', _stock, matches) %}
  635.             option_stock_list[{{ _cid }}][{{ _gid }}] = false;
  636.             option_stock_flg[{{ _cid }}][{{ _gid }}] = {{ _stock }};
  637.             {% elseif _stock == '*' %}
  638.             option_stock_list[{{ _cid }}][{{ _gid }}] = 1000;
  639.             option_stock_flg[{{ _cid }}][{{ _gid }}] = true;
  640.             {% endif %}
  641.             {% endfor %}
  642.             {% endfor %}
  643.             args = {};
  644.             args['goods'] = {{ data | json_encode() | raw }};
  645.             args['goods']['color'] = {{ color | json_encode() | raw }};
  646.             args['goods']['size'] = {{ size | json_encode() | raw }};
  647.             args['stockList'] = {{ stockList | json_encode() | raw }};
  648.             args['stockKeppinList'] = {{ stockKeppinList | json_encode() | raw }};
  649.             args['option_color_id'] = option_color_id;
  650.             args['option_color_name'] = option_color_name;
  651.             args['option_size_id'] = option_size_id;
  652.             args['option_size_name'] = option_size_name;
  653.             args['option_stock_list'] = option_stock_list;
  654.             args['option_stock_flg'] = option_stock_flg;
  655.             main(args);
  656.         });
  657.     </script>
  658.     <script type="text/javascript">
  659.         $('.kuru2').on('kuru2ed', function (e) {
  660.             $.ajax('/ajax/kuru2ed/', {
  661.                 type: 'post',
  662.                 dataType: 'json',
  663.                 data: {id: GOODS_ID},
  664.                 xhrFields: {withCredentials: true}
  665.             });
  666.         });
  667.     </script>
  668.     <script>
  669.         function moveToTarget(target_no) {
  670.             if (target_no == "prev") {
  671.                 target_no = current_no - 1;
  672.             } else if (target_no == "next") {
  673.                 target_no = current_no + 1;
  674.             }
  675.             img_total_count = {{ imgrow | length }};
  676.             {% if mainUrl is defined and mainUrl %}
  677.             img_total_count++;
  678.             {% endif %}
  679.             if (target_no >= img_total_count) {
  680.                 target_no = 0;
  681.             } else if (target_no < 0) {
  682.                 target_no = img_total_count - 1;
  683.             }
  684.             $("#main_banner").css({"-webkit-transition-duration": "500ms"});
  685.             $("#main_banner").css({"-webkit-transform": "translate3d(-" + (img_width * target_no) + "px, 0, 0)"});
  686.             current_no = target_no;
  687.             $(".control-selected").removeClass("control-selected");
  688.             $(".control").eq(current_no).addClass("control-selected");
  689.             $("#disp_current_no").text(current_no);
  690.         }
  691.         function loop() {
  692.             current_no++;
  693.             moveToTarget(current_no);
  694.             loop_timeout = setTimeout("loop()", 2000);
  695.         }
  696.         function init() {
  697.             img_total_count = {{ imgrow | length }};
  698.             {% if mainUrl is defined and mainUrl %}
  699.             img_total_count++;
  700.             {% endif %}
  701.             img_width = 498;
  702.             if ($(window).width() < img_width) {
  703.                 img_width = $(window).width();
  704.             }
  705.             $("#main_banner_wrapper").css("width", img_width);
  706.             $(".slide-img").css("width", img_width).show();
  707.             $("#main_banner").css("width", img_width * img_total_count);
  708.             $("#main_banner").css({"-webkit-transition-duration": "0ms"});
  709.             $("#main_banner").css({"-webkit-transform": "translate3d(0, 0, 0)"});
  710.             moveToTarget(0);
  711.         }
  712.         function main(args) {
  713.             // 在庫一覧の生成
  714.             var data = args['data'];
  715.             var nyukaYoteibiList = args['nyukaYoteibiList'];
  716.             var stockKeppinList = args['stockKeppinList'];
  717.             var stockList = args['stockList'];
  718.             var goods = args['goods'];
  719.             var colorList = goods['color'];
  720.             var sizeList = goods['size'];
  721.             var sizeCount = sizeList.length;
  722.             var $tbody = $('#size-chart-body');
  723.             for (var i = 0; i < colorList.length; i++) {
  724.                 var color = colorList[i];
  725.                 for (var j = 0; j < sizeList.length; j++) {
  726.                     var size = sizeList[j];
  727.                     var $tr = $('<tr />').appendTo($tbody);
  728.                     var stock;
  729.                     if (j == 0) {
  730.                         var $tdColorLabel = $('<td />')
  731.                             .attr({rowspan: sizeCount})
  732.                             .css({'background-color': color['color_rgb'].replace(/#?([^#]+)/, '#$1')})
  733.                             .html('&nbsp;')
  734.                             .appendTo($tr);
  735.                         var $tdColor = $('<td />')
  736.                             .attr({rowspan: sizeCount})
  737.                             .css({'background-color': '#FFFFFF'})
  738.                             .html(color['color_name'])
  739.                             .appendTo($tr);
  740.                     }
  741.                     var $tdSize = $('<td />')
  742.                         .css({'background-color': '#FFFFFF'})
  743.                         .html(size['size_name'])
  744.                         .appendTo($tr);
  745.                     var $tdStock = $('<td />')
  746.                         .css({'background-color': '#FFFFFF'})
  747.                         .appendTo($tr);
  748.                     if (nyukaYoteibiList && nyukaYoteibiList[color['gcl_id']] && nyukaYoteibiList[color['gcl_id']][size['gp_id']]) {
  749.                         $tdStock.html('入荷予定日' + nyukaYoteibiList[color['gcl_id']][size['gp_id']].zdate);
  750.                     } else if (stockKeppinList[color['gcl_id']][size['gp_id']]) {
  751.                         $tdStock.html('在庫切れ');
  752.                     } else if (stockList[color['gcl_id']][size['gp_id']] == '0') {
  753.                         $tdStock.html('在庫切れ');
  754.                     } else if (stockList[color['gcl_id']][size['gp_id']] == '*') {
  755.                         $tdStock.html('問合せ');
  756.                     } else if (stockList[color['gcl_id']][size['gp_id']] > 0 && stockList[color['gcl_id']][size['gp_id']] <= 10) {
  757.                         $tdStock.html('<span style="color:red;">残り' + stockList[color['gcl_id']][size['gp_id']] + '</span>');
  758.                     } else if ((stock = stockList[color['gcl_id']][size['gp_id']]) !== undefined) {
  759.                         $tdStock.html(stock.toLocaleString());
  760.                     } else {
  761.                         $tdStock.html('在庫切れ');
  762.                     }
  763.                 }
  764.             }
  765.             var option_color_id = args['option_color_id'] || [];
  766.             var option_color_name = args['option_color_name'] || [];
  767.             var option_size_id = args['option_size_id'] || [];
  768.             var option_size_name = args['option_size_name'] || [];
  769.             var option_stock_list = args['option_stock_list'] || [];
  770.             var option_stock_flg = args['option_stock_flg'] || [];
  771.             var no_disp_color = [];
  772.             var no_disp_size = [];
  773.             var t = 1;
  774.             // setInterval(function(){
  775.             //     if(t) {
  776.             //         $("#blink").css('color', '#fff');
  777.             //         t=0;
  778.             //     }else {
  779.             //         $("#blink").css('color', '#f00');
  780.             //         t=1;
  781.             //     }
  782.             // },500);
  783.             dragging = false;
  784.             current_no = 0;
  785.             // diff = 0;
  786.             // loop_timeout = setTimeout("loop()", 2000);
  787.             loop_timeout = null;
  788.             $(window).bind("orientationchange", function () {
  789.                 switch (window.orientation) {
  790.                     case 0:
  791.                         init();
  792.                     case 90:
  793.                         init();
  794.                     case -90:
  795.                         init();
  796.                 }
  797.             });
  798.             $("#main_banner").bind("touchmove", function (e) {
  799.                 if (dragging == true && $("#main_banner").css("-webkit-transition-duration") != "500ms") {
  800.                     diff_x = e.originalEvent.changedTouches[0].pageX - start_x;
  801.                     diff_y = e.originalEvent.changedTouches[0].pageY - start_y;
  802.                     isScroll = Math.abs(diff_y) >= Math.abs(diff_x);    // 縦の移動量の方が多いときはスクロールとみなす
  803.                     if (!isScroll) {
  804.                         e.preventDefault();    // Android 対策
  805.                         $("#main_banner").css({"-webkit-transition-duration": "0ms"});
  806.                         move = (current_no * img_width) - diff_x;
  807.                         if (move < 0) {
  808.                             move = Math.abs(move);
  809.                             $("#main_banner").css({"-webkit-transform": "translate3d(" + move + "px, 0, 0)"});
  810.                         } else {
  811.                             $("#main_banner").css({"-webkit-transform": "translate3d(-" + ((current_no * img_width) - diff_x) + "px, 0, 0)"});
  812.                         }
  813.                     }
  814.                 }
  815.             });
  816.             $("#main_banner").bind("touchstart", function (e) {
  817.                 //e.preventDefault();
  818.                 start_x = e.originalEvent.changedTouches[0].pageX;
  819.                 start_y = e.originalEvent.changedTouches[0].pageY;
  820.                 dragging = true;
  821.                 clearTimeout(loop_timeout);
  822.             });
  823.             $("body").bind("touchend", function () {
  824.                 if (dragging == true) {
  825.                     if (diff_x <= -20 && current_no < $('#control-ul li').length && !isScroll) {
  826.                         current_no++;
  827.                     } else if (diff_x >= 20 && current_no > 0 && !isScroll) {
  828.                         current_no--;
  829.                     }
  830.                     moveToTarget(current_no);
  831.                 }
  832.                 dragging = false;
  833.             });
  834.             function check_nodisp(c, s) {
  835.                 for (k = 0; k < no_disp_color.length; k++) {
  836.                     if ((no_disp_color[k] == c) && (no_disp_size[k] == s)) {
  837.                         return 1;
  838.                     }
  839.                 }
  840.                 return 0;
  841.             }
  842.             function add_color(selectC, size) {
  843.                 for (i = 0; i < option_color_id.length; i++) {
  844.                     if (size != "") {
  845.                         if (check_nodisp(option_color_id[i], size) == 1) {
  846.                             continue;
  847.                         }
  848.                     }
  849.                     selectC.append($('<option>').html(option_color_name[i]).val(option_color_id[i]).attr('data-idx', i + 1));
  850.                 }
  851.             }
  852.             function add_size(selectS, color) {
  853.                 for (i = 0; i < option_size_id.length; i++) {
  854.                     if (color != "") {
  855.                         if (check_nodisp(color, option_size_id[i]) == 1) {
  856.                             continue;
  857.                         }
  858.                     }
  859.                     selectS.append($('<option>').html(option_size_name[i]).val(option_size_id[i]).attr('data-idx', i + 1));
  860.                 }
  861.             }
  862.             function add_quantity(color, size, $cartInputTableWrap) {
  863.                 // オプションを全て消す
  864.                 $('select.quantity > option', $cartInputTableWrap).remove();
  865.                 // 「/在庫数:XX」部分を隠す
  866.                 $('.stock-number-part', $cartInputTableWrap).hide();
  867.                 // 数量はデフォルトで1をセット
  868.                 $('select.quantity', $cartInputTableWrap).append($('<option value="1">1</option>'));
  869.                 // サイズもカラーも選択されている場合
  870.                 if (size && color) {
  871.                     var sizeCount = option_stock_list[color][size];
  872.                     if (sizeCount === '*') {    // 在庫あり
  873.                         $cartInputTableWrap.find('.select-quantity').hide();
  874.                         $cartInputTableWrap.find('.select-quantity-no-stock').hide();
  875.                         $cartInputTableWrap.find('.select-quantity-free').show();
  876.                         $('.stock-number', $cartInputTableWrap).text(sizeCount);
  877.                         $('.stock-number-part', $cartInputTableWrap).show();
  878.                         $('.quantity', $cartInputTableWrap).prop('disabled', true);
  879.                         $('.quantity-free', $cartInputTableWrap).prop('disabled', false);
  880.                     } else if (sizeCount) {    // 在庫あり
  881.                         $cartInputTableWrap.find('.select-quantity').show();
  882.                         $cartInputTableWrap.find('.select-quantity-no-stock').hide();
  883.                         $cartInputTableWrap.find('.select-quantity-free').hide();
  884.                         $('.stock-number', $cartInputTableWrap).text(sizeCount);
  885.                         $('.stock-number-part', $cartInputTableWrap).show();
  886.                         $('.quantity', $cartInputTableWrap).prop('disabled', false);
  887.                         $('.quantity-free', $cartInputTableWrap).prop('disabled', true);
  888.                     } else {        // 在庫なし
  889.                         $cartInputTableWrap.find('.select-quantity').hide();
  890.                         $cartInputTableWrap.find('.select-quantity-no-stock').show();
  891.                         $cartInputTableWrap.find('.select-quantity-free').hide();
  892.                         $('.quantity', $cartInputTableWrap).prop('disabled', true);
  893.                         $('.quantity-free', $cartInputTableWrap).prop('disabled', true);
  894.                     }
  895.                     for (i = 2; i <= sizeCount; i++) {    // 在庫なしの場合、sizeCountが0なので、一度も実行されない
  896.                         $('select.quantity', $cartInputTableWrap).append($('<option>').html(i).val(i));
  897.                     }
  898.                 }
  899.             }
  900.             add_color($('select.color:first'), "");
  901.             add_size($('select.size:first'), "");
  902.             add_quantity();
  903.             $('select.quantity').on('change', function () {
  904.                 checkSelectState();
  905.             });
  906.             // 色、サイズ、数量の選択状況をチェックし、カートに追加できる状況であれば追加ボタンを有効にする
  907.             function checkSelectState() {
  908.                 var isActive = false;
  909.                 $('.cartInputTable').each(function () {
  910.                     var $this = $(this);
  911.                     if (
  912.                         $('select.color', $this).val() !== '' &&
  913.                         $('select.size', $this).val() !== '' &&
  914.                         (!$('select.quantity', $this).prop('disabled')
  915.                             || !$('input.quantity-free', $this).prop('disabled') && $('input.quantity-free', $this).val() !== '')
  916.                     ) {
  917.                         isActive = true;
  918.                         return false;
  919.                     }
  920.                 });
  921.                 // toggleSubmit(isActive);
  922.             }
  923.             toggleSubmit(true);
  924.             function toggleSubmit(isActive) {
  925.                 if (isActive) {
  926.                     $('#cartBtnImg').show();
  927.                     $('#mitsumoriCartBtnImg').show();
  928.                     $('#susoageCartBtnImg').show();
  929.                     $('#sampleCartBtnImg').show();
  930.                     $('#cartBtnImgDisabled').hide();
  931.                     $('#mitsumoriCartBtnImgDisabled').hide();
  932.                     $('#sampleCartBtnImgDisabled').hide();
  933.                 } else {
  934.                     $('#cartBtnImg').hide();
  935.                     $('#mitsumoriCartBtnImg').hide();
  936.                     $('#susoageCartBtnImg').hide();
  937.                     $('#sampleCartBtnImg').hide();
  938.                     $('#cartBtnImgDisabled').show();
  939.                     $('#mitsumoriCartBtnImgDisabled').show();
  940.                     $('#sampleCartBtnImgDisabled').show();
  941.                 }
  942.             }
  943.             $('select.color,select.size,.quantity-free').on('change', function () {
  944.                 var $cartInputTableWrap = $(this).parents('.cartInputTable');
  945.                 add_quantity($('select.color', $cartInputTableWrap).val(), $('select.size', $cartInputTableWrap).val(), $cartInputTableWrap);
  946.                 checkSelectState();
  947.             });
  948.         }
  949.         $(function () {
  950.             $("#toggle-2").click(function () {
  951.                 $(".display-2").toggle();
  952.             });
  953.             $("#toggle-3").click(function () {
  954.                 $(".display-3").toggle();
  955.             });
  956.             // 非セット品番 無地でカートに入れる
  957.             $("#cartBtnImg").click(function () {
  958.                 $('input[name=print]').val('');
  959.                 $('input[name=susoage]').val('');
  960.                 $('input[name=sample]').val('');
  961.                 send_to_cartin('order');
  962.                 // $('#button-add-to-cart').click(add_to_cart);
  963.                 // if ($('#tableAddDiv').find('table').size() == 0) $("#addCartInputRowBtn").click();
  964.             });
  965.             $("#sampleCartBtnImg").click(function () {
  966.                 $('input[name=print]').val('');
  967.                 $('input[name=susoage]').val('');
  968.                 $('input[name=sample]').val('on');
  969.                 send_to_cartin('sample');
  970.                 // $('#button-add-to-cart').click(add_to_cart_sample);
  971.                 // if ($('#tableAddDiv').find('table').size() == 0) $("#addCartInputRowBtn").click();
  972.             });
  973.             $("#mitsumoriCartBtnImg").click(function () {
  974.                 $('input[name=print]').val('on');
  975.                 $('input[name=susoage]').val('');
  976.                 $('input[name=sample]').val('');
  977.                 send_to_cartin('print');
  978.                 // $('#button-add-to-cart').click(add_to_cart_print);
  979.                 // if ($('#tableAddDiv').find('table').size() == 0) $("#addCartInputRowBtn").click();
  980.             });
  981.             // 裾上げ
  982.             /**
  983.              * PCで裾上げはプリントあり、裾上げあり、という情報でPOSTされるので、同じにする。
  984.              */
  985.             $("#susoageCartBtnImg").click(function () {
  986.                 $('input[name=print]').val('on');
  987.                 $('input[name=susoage]').val('on');
  988.                 $('input[name=sample]').val('');
  989.                 send_to_cartin('susoage');
  990.             });
  991.             $('.closeLink').click(function () {
  992.                 $(this).parent().parent().parent().parent().remove();
  993.                 return false;
  994.             });
  995. //電話で注文ボタン
  996.             $("#telOrderBtnImg").click(function () {
  997.                 showModalWindowTelOrder();
  998.             });
  999.             $("#sizeChartLink").click(function () {
  1000.                 showModalWindowSizeChart();
  1001.                 return false;
  1002.             });
  1003.             $('#modal-window-size-chart').click(function () {
  1004.                 closeModalWindowSizeChart();
  1005.                 return false;
  1006.             });
  1007.             $('#modal-window-tel-order a.call-btn').click(function () {
  1008.                 // 即時リクエストだと正常に通信できなかったので少しずらす
  1009.                 setTimeout(function () {
  1010.                     $.ajax({
  1011.                         type: "GET",
  1012.                         url: '/sp/ajax-count-tel-order-btn-click-up',
  1013.                         cache: false,
  1014.                         success: function () {
  1015.                             // クリックカウントの取得のみなので何もしない
  1016.                         },
  1017.                         error: function (XMLHttpRequest, textStatus, errorThrown) {
  1018.                             // 電話発信が行えない可能性があるので何もしない
  1019.                         }
  1020.                     });
  1021.                 }, 1000);
  1022.             });
  1023.         });
  1024.     </script>
  1025.     {% endif %}
  1026. </div>