/* Js for , Version=1778235361 */
 v.lang = {"confirmDelete":"\u672c\u5f53\u306b\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b\uff1f","deleteing":"\u524a\u9664\u4e2d","doing":"\u5904\u7406\u4e2d","loading":"\u52a0\u8f7d\u4e2d","updating":"\u66f4\u65b0\u4e2d...","timeout":"\u7f51\u7edc\u8d85\u65f6,\u8bf7\u91cd\u8bd5","errorThrown":"<h4>\u6267\u884c\u51fa\u9519\uff1a<\/h4>","continueShopping":"\u7ee7\u7eed\u8d2d\u7269","required":"\u5fc5\u586b","back":"\u8fd4\u56de","continue":"\u7ee7\u7eed","importTip":"\u53ea\u5bfc\u5165\u4e3b\u9898\u7684\u98ce\u683c\u548c\u6837\u5f0f","fullImportTip":"\u5c06\u4f1a\u5bfc\u5165\u6d4b\u8bd5\u6570\u636e\u4ee5\u53ca\u66ff\u6362\u7ad9\u70b9\u6587\u7ae0\u3001\u4ea7\u54c1\u7b49\u6570\u636e"};;v.currencySymbol = "\uffe5";;
(function(){
  var refreshHeaderCart = function(){
    fetch('/index.php/cart-count.json', {credentials:'same-origin'})
      .then(function(r){ return r.json(); })
      .then(function(data){
        if(!data || data.result !== 'success') return;
        document.querySelectorAll('.header-cart').forEach(function(btn){ btn.classList.toggle('hide', data.count < 1); });
        document.querySelectorAll('.header-cart .cart-count, .cart-count').forEach(function(node){
          node.textContent = String(data.count);
          node.classList.toggle('hide', data.count < 1);
        });
      })
      .catch(function(){});
  };
  if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', refreshHeaderCart);
  else refreshHeaderCart();
  window.rakugouRefreshHeaderCart = refreshHeaderCart;
})();
;
(function()
{
  var cart = document.querySelector('.my-cart');
  if(!cart) return;

  var normalizeCountValue = function(input)
  {
    if(!input) return 1;
    var value = parseInt(String(input.value || '1').replace(/[^0-9]/g, ''), 10);
    if(!Number.isFinite(value) || value < 1) value = 1;
    input.value = String(value);
    return value;
  };

  var formatAmount = function(value)
  {
    var num = Number(value || 0);
    return String(Math.round(num));
  };

  var recalc = function()
  {
    var total = 0;
    cart.querySelectorAll('tbody tr').forEach(function(row)
    {
      var input = row.querySelector('input.form-control-number');
      var priceInput = row.querySelector('input[type="hidden"][name^="price["]');
      var amountNode = row.querySelector('.amountContainer');
      if(!input || !priceInput || !amountNode) return;
      var count = normalizeCountValue(input);
      var price = parseFloat(priceInput.value || '0');
      var amount = count * price;
      amountNode.textContent = formatAmount(amount);
      total += amount;
    });
    var totalNode = document.getElementById('amount');
    if(totalNode) totalNode.textContent = window.v && window.v.currencySymbol ? window.v.currencySymbol + formatAmount(total) : formatAmount(total);
  };

  cart.addEventListener('click', function(e)
  {
    var addon = e.target.closest('.input-group-addon');
    if(!addon) return;
    var group = addon.closest('.input-group');
    var input = group ? group.querySelector('input.form-control-number') : null;
    if(!input) return;
    e.preventDefault();
    var value = normalizeCountValue(input);
    value += addon.classList.contains('btn-plus') ? 1 : -1;
    input.value = String(Math.max(1, value));
    input.dispatchEvent(new Event('change', {bubbles: true}));
  });

  cart.addEventListener('input', function(e)
  {
    if(e.target.matches('input.form-control-number'))
    {
      e.target.value = String(e.target.value || '').replace(/[^0-9]/g, '');
      recalc();
    }
  });

  cart.addEventListener('change', function(e)
  {
    if(e.target.matches('input.form-control-number')) recalc();
  });

  cart.addEventListener('blur', function(e)
  {
    if(e.target.matches('input.form-control-number')) normalizeCountValue(e.target);
  }, true);

  recalc();
})();
document.querySelector('.menu-btn') && document.querySelector('.menu-btn').addEventListener('click', function(){var nav=document.querySelector('.site-nav'); if(!nav) return; var open=nav.classList.toggle('open'); this.setAttribute('aria-expanded', open ? 'true' : 'false');});