var/cache/dev/twig/9c/9c13f324b038ca603a3457810376eb97.php line 697

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\SandboxExtension;
  6. use Twig\Markup;
  7. use Twig\Sandbox\SecurityError;
  8. use Twig\Sandbox\SecurityNotAllowedTagError;
  9. use Twig\Sandbox\SecurityNotAllowedFilterError;
  10. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  11. use Twig\Source;
  12. use Twig\Template;
  13. /* Drive/detail.twig */
  14. class __TwigTemplate_668607686dd0e2aa06e593ac62ba9ea8 extends \Eccube\Twig\Template
  15. {
  16.     private $source;
  17.     private $macros = [];
  18.     public function __construct(Environment $env)
  19.     {
  20.         parent::__construct($env);
  21.         $this->source $this->getSourceContext();
  22.         $this->blocks = [
  23.             'stylesheet' => [$this'block_stylesheet'],
  24.             'javascript' => [$this'block_javascript'],
  25.             'main' => [$this'block_main'],
  26.         ];
  27.     }
  28.     protected function doGetParent(array $context)
  29.     {
  30.         // line 72
  31.         return "default_frame.twig";
  32.     }
  33.     protected function doDisplay(array $context, array $blocks = [])
  34.     {
  35.         $macros $this->macros;
  36.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  37.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Drive/detail.twig"));
  38.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  39.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Drive/detail.twig"));
  40.         // line 61
  41.         $context["visual_options"] = ["loupe" => 0"popup" => 1];
  42.         // line 68
  43.         $context["clone_cartin"] = true;
  44.         // line 74
  45.         $context["body_class"] = "product_page";
  46.         // line 72
  47.         $this->parent $this->loadTemplate("default_frame.twig""Drive/detail.twig"72);
  48.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  49.         
  50.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  51.         
  52.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  53.     }
  54.     // line 76
  55.     public function block_stylesheet($context, array $blocks = [])
  56.     {
  57.         $macros $this->macros;
  58.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  59.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  60.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  61.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  62.         // line 77
  63.         echo "\t<link rel=\"stylesheet\" href=\"//unpkg.com/flatpickr/dist/flatpickr.min.css\">
  64. \t<!-- カスタムテーマ -->
  65. \t<link rel=\"stylesheet\" href=\"//unpkg.com/flatpick/dist/themes/airbnb.css\">
  66. \t<link rel=\"stylesheet\" href=\"";
  67.         // line 80
  68.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/css/drive_detail.css"), "html"nulltrue);
  69.         echo "?";
  70.         echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getEnv("CSS_PARAM"), "html"nulltrue);
  71.         echo "\">
  72. ";
  73.         
  74.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  75.         
  76.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  77.     }
  78.     // line 84
  79.     public function block_javascript($context, array $blocks = [])
  80.     {
  81.         $macros $this->macros;
  82.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  83.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  84.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  85.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  86.         // line 85
  87.         echo "    <script>
  88.         eccube.classCategories = ";
  89.         // line 86
  90.         echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson((isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'86$this->source); })()));
  91.         echo ";
  92.         // 規格2に選択肢を割り当てる。
  93.         function fnSetClassCategories(form, classcat_id2_selected) {
  94.             var \$form = \$(form);
  95.             var product_id = \$form.find('input[name=product_id]').val();
  96.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  97.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  98.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  99.         }
  100.         ";
  101.         // line 97
  102.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse97)) {
  103.             // line 98
  104.             echo "        fnSetClassCategories(
  105.             \$('#form1'), ";
  106.             // line 99
  107.             echo json_encode(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'99$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse99), "vars", [], "any"falsefalsefalse99), "value", [], "any"falsefalsefalse99));
  108.             echo "
  109.         );
  110.         ";
  111.         } elseif (twig_get_attribute($this->env$this->source,         // line 101
  112. ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse101)) {
  113.             // line 102
  114.             echo "        eccube.checkStock(\$('#form1'), ";
  115.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'102$this->source); })()), "id", [], "any"falsefalsefalse102), "html"nulltrue);
  116.             echo ", ";
  117.             echo json_encode(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'102$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse102), "vars", [], "any"falsefalsefalse102), "value", [], "any"falsefalsefalse102));
  118.             echo ", null);
  119.         ";
  120.         }
  121.         // line 104
  122.         echo "    </script>
  123.     <script>
  124.         \$(function() {
  125.             // bfcache無効化
  126.             \$(window).bind('pageshow', function(event) {
  127.                 if (event.originalEvent.persisted) {
  128.                     location.reload(true);
  129.                 }
  130.             });
  131.         });
  132.     </script>
  133.     <script>
  134.         \$(function() {
  135.             \$('.add-cart').on('click', function(event) {
  136.                 ";
  137.         // line 118
  138.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse118)) {
  139.             // line 119
  140.             echo "                // 規格1フォームの必須チェック
  141.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  142.                     \$('#classcategory_id1')[0].setCustomValidity('";
  143.             // line 121
  144.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html"nulltrue);
  145.             echo "');
  146.                     return true;
  147.                 } else {
  148.                     \$('#classcategory_id1')[0].setCustomValidity('');
  149.                 }
  150.                 ";
  151.         }
  152.         // line 127
  153.         echo "
  154.                 ";
  155.         // line 128
  156.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse128)) {
  157.             // line 129
  158.             echo "                // 規格2フォームの必須チェック
  159.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  160.                     \$('#classcategory_id2')[0].setCustomValidity('";
  161.             // line 131
  162.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html"nulltrue);
  163.             echo "');
  164.                     return true;
  165.                 } else {
  166.                     \$('#classcategory_id2')[0].setCustomValidity('');
  167.                 }
  168.                 ";
  169.         }
  170.         // line 137
  171.         echo "
  172.                 // 個数フォームのチェック
  173.                 if (\$('#quantity').val() < 1) {
  174.                     \$('#quantity')[0].setCustomValidity('";
  175.         // line 140
  176.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("1以上で入力してください。"), "html"nulltrue);
  177.         echo "');
  178.                     return true;
  179.                 } else {
  180.                     \$('#quantity')[0].setCustomValidity('');
  181.                 }
  182.                 event.preventDefault();
  183.                 \$form = \$('#form1');
  184.                 \$.ajax({
  185.                     url: \$form.attr('action'),
  186.                     type: \$form.attr('method'),
  187.                     data: \$form.serialize(),
  188.                     dataType: 'json',
  189.                     beforeSend: function(xhr, settings) {
  190.                         // Buttonを無効にする
  191.                         \$('.add-cart').prop('disabled', true);
  192.                     }
  193.                 }).done(function(data) {
  194.                     // レスポンス内のメッセージをalertで表示
  195.                     \$.each(data.messages, function() {
  196.                         \$('#ec-modal-header').text(this);
  197.                     });
  198.                     \$('.ec-modal').show()
  199.                     // カートブロックを更新する
  200.                     \$.ajax({
  201.                         url: \"";
  202.         // line 167
  203.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("block_cart");
  204.         echo "\",
  205.                         type: 'GET',
  206.                         dataType: 'html'
  207.                     }).done(function(html) {
  208.                         //\$('.ec-headerRole__cart').html(html);
  209.                         \$('.ec-cartNavi__detail').html(html);
  210.                     });
  211.                 }).fail(function(data) {
  212.                     alert('";
  213.         // line 175
  214.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへの追加に失敗しました。"), "html"nulltrue);
  215.         echo "');
  216.                 }).always(function(data) {
  217.                     // Buttonを有効にする
  218.                     \$('.add-cart').prop('disabled', false);
  219.                 });
  220.             });
  221.         });
  222.         \$('.ec-modal-wrap').on('click', function(e) {
  223.             // モーダル内の処理は外側にバブリングさせない
  224.             e.stopPropagation();
  225.         });
  226.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  227.             \$('.ec-modal').hide()
  228.         });
  229.     </script>
  230.     <script type=\"application/ld+json\">
  231.     {
  232.         \"@context\": \"https://schema.org/\",
  233.         \"@type\": \"Product\",
  234.         \"name\": \"";
  235.         // line 195
  236.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'195$this->source); })()), "name", [], "any"falsefalsefalse195), "html"nulltrue);
  237.         echo "\",
  238.         \"image\": [
  239.             ";
  240.         // line 197
  241.         $context['_parent'] = $context;
  242.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'197$this->source); })()), "ProductImage", [], "any"falsefalsefalse197));
  243.         $context['_iterated'] = false;
  244.         $context['loop'] = [
  245.           'parent' => $context['_parent'],
  246.           'index0' => 0,
  247.           'index'  => 1,
  248.           'first'  => true,
  249.         ];
  250.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  251.             $length count($context['_seq']);
  252.             $context['loop']['revindex0'] = $length 1;
  253.             $context['loop']['revindex'] = $length;
  254.             $context['loop']['length'] = $length;
  255.             $context['loop']['last'] = === $length;
  256.         }
  257.         foreach ($context['_seq'] as $context["_key"] => $context["img"]) {
  258.             // line 198
  259.             echo "                \"";
  260.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'198$this->source); })()), "request", [], "any"falsefalsefalse198), "schemeAndHttpHost", [], "any"falsefalsefalse198), "html"nulltrue);
  261.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["img"], "save_image"), "html"nulltrue);
  262.             echo "\"";
  263.             if ( !twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse198)) {
  264.                 echo ",";
  265.             }
  266.             // line 199
  267.             echo "
  268.             ";
  269.             $context['_iterated'] = true;
  270.             ++$context['loop']['index0'];
  271.             ++$context['loop']['index'];
  272.             $context['loop']['first'] = false;
  273.             if (isset($context['loop']['length'])) {
  274.                 --$context['loop']['revindex0'];
  275.                 --$context['loop']['revindex'];
  276.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  277.             }
  278.         }
  279.         if (!$context['_iterated']) {
  280.             // line 201
  281.             echo "                \"";
  282.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'201$this->source); })()), "request", [], "any"falsefalsefalse201), "schemeAndHttpHost", [], "any"falsefalsefalse201), "html"nulltrue);
  283.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html"nulltrue);
  284.             echo "\"
  285.             ";
  286.         }
  287.         $_parent $context['_parent'];
  288.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['img'], $context['_parent'], $context['loop']);
  289.         $context array_intersect_key($context$_parent) + $_parent;
  290.         // line 203
  291.         echo "        ],
  292.         \"description\": \"";
  293.         // line 204
  294.         echo twig_escape_filter($this->envtwig_slice($this->envtwig_replace_filter(((twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"truetruefalse204)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"falsefalsefalse204), twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'204$this->source); })()), "description_detail", [], "any"falsefalsefalse204))) : (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'204$this->source); })()), "description_detail", [], "any"falsefalsefalse204))), ["
  295. => """ " => ""]), 0300), "html"nulltrue);
  296.         echo "\",
  297.         ";
  298.         // line 205
  299.         if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'205$this->source); })()), "code_min", [], "any"falsefalsefalse205)) {
  300.             // line 206
  301.             echo "        \"sku\": \"";
  302.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'206$this->source); })()), "code_min", [], "any"falsefalsefalse206), "html"nulltrue);
  303.             echo "\",
  304.         ";
  305.         }
  306.         // line 208
  307.         echo "        \"offers\": {
  308.             \"@type\": \"Offer\",
  309.             \"url\": \"";
  310.         // line 210
  311.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_detail", ["id" => twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'210$this->source); })()), "id", [], "any"falsefalsefalse210)]), "html"nulltrue);
  312.         echo "\",
  313.             \"priceCurrency\": \"";
  314.         // line 211
  315.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["eccube_config"]) || array_key_exists("eccube_config"$context) ? $context["eccube_config"] : (function () { throw new RuntimeError('Variable "eccube_config" does not exist.'211$this->source); })()), "currency", [], "any"falsefalsefalse211), "html"nulltrue);
  316.         echo "\",
  317.             \"price\": ";
  318.         // line 212
  319.         ((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'212$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse212)) ? (print (twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'212$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse212), "html"nulltrue))) : (print (0)));
  320.         echo ",
  321.             \"availability\": \"";
  322.         // line 213
  323.         echo ((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'213$this->source); })()), "stock_find", [], "any"falsefalsefalse213)) ? ("InStock") : ("OutOfStock"));
  324.         echo "\"
  325.         }
  326.     }
  327.     </script>
  328.     ";
  329.         // line 219
  330.         echo "
  331.     ";
  332.         // line 221
  333.         echo "    <script src=\"";
  334.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/drift/Drift.min.js"), "html"nulltrue);
  335.         echo "\"></script>
  336.     ";
  337.         // line 224
  338.         echo "    <script src=\"";
  339.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/luminous/Luminous.min.js"), "html"nulltrue);
  340.         echo "\"></script>
  341.     <script>
  342.         //------------------------------
  343.         // 商品ビジュアル(slick使用)
  344.         //------------------------------
  345.         // slick適用コンテナ
  346.         var \$ecSlickContainer = \$( '.ec-productVisualMain .ec-slickContainer' );
  347.         // キャプションの準備
  348.         /** 商品詳細ページのslickアイテムは動的に出力されますのでキャプションを入れられませんが、
  349.          * フリーエリア内にてキャプション要素を記述しておき、javascirptで各キャプションを各画像アイテム内に挿入させます。
  350.          * ※EC-CUBE4.2.0ではフリーエリアに記述したHTMLがサニタイズ(data属性が削除)されてしまい、この機能が動作しませんのでコメントアウトします。
  351.          */
  352.         /*
  353.         var \$visualCaption = \$( '.visual_caption' );// キャプション要素ラッパー
  354.         \$visualCaption.find( '.caption' ).each(function(){
  355.             var \$this = \$(this);
  356.             // index 1つ目の画像用キャプションは「data-caption=\"1\"」としていますので、-1してindex値にします
  357.             var _index = parseInt( \$this.data('caption'),10 ) - 1;
  358.             // 該当slickアイテム
  359.             var \$slideItem = \$ecSlickContainer.find( '.slide-item' ).eq( _index );
  360.             if ( \$slideItem.length ) {
  361.                 // 該当slickアイテムにキャプションを挿入
  362.                 \$slideItem.append(\$this);
  363.             } else {
  364.                 // 該当slickアイテムが存在しない場合はキャプションを破棄します
  365.                 \$this.remove();
  366.             }
  367.         });
  368.         */
  369.         // slick準備完了時の処理
  370.         \$ecSlickContainer.on('init', function(){
  371.             setTimeout(function(){
  372.                 //
  373.             }, 0);
  374.         });
  375.         // slick適用
  376.         \$ecSlickContainer.slick({
  377.             fade: true,
  378.             speed: 600,
  379.             dots: false,
  380.             arrows: true,
  381.             prevArrow: '<div class=\"slick-prev\"><i class=\"jeiafont jeia-arrow-left\"></i></div>',
  382.             nextArrow: '<div class=\"slick-next\"><i class=\"jeiafont jeia-arrow\"></i></div>',
  383.             asNavFor: '.ec-productVisualNav.desktop',
  384.             responsive: [
  385.                 {
  386.                     breakpoint: 768,//768px未満(スマホ時)
  387.                     settings: {
  388.                         fade: false,
  389.                         infinit: true
  390.                     }
  391.                 }
  392.             ]
  393.         });
  394.         // ビジュアルナビ(デスクトップ・タブレット用:縦スライド)
  395.         var \$visualNavDesktop = \$( '.ec-productVisualNav.desktop' );
  396.         \$visualNavDesktop.slick({
  397.             asNavFor: '.ec-productVisualMain .ec-slickContainer',
  398.             vertical: true,
  399.             verticalSwiping: true,
  400.             slidesToShow: 5,
  401.             slidesToScroll: 1,
  402.             //swipeToSlide: true,// ※verticalでは効かない様子
  403.             focusOnSelect: true,
  404.             speed: 600,
  405.             arrows: true,
  406.             prevArrow: '<div class=\"slick-prev\"><i class=\"jeiafont jeia-arrow\"></i></div>',
  407.             nextArrow: '<div class=\"slick-next\"><i class=\"jeiafont jeia-arrow\"></i></div>'
  408.         });
  409.         // ビジュアルナビの高さをメインビジュアルの高さと揃えます(デスクトップ・タブレット時)
  410.         // これは見た目の調整と、ナビ送りのnextボタンの配置を正しくする目的もあります
  411.         if ( window.innerWidth >= 768 ) {
  412.             // slick生成が完了してから実行します。イベント「slick_all_readiness」はjeia_function.jsによってslick生成完了後に発火されます。
  413.             \$(window).on('slick_all_readiness jeia_resize', function(){
  414.                 var _height = \$ecSlickContainer.height();
  415.                 // ビジュアルナビの高さを適用
  416.                 \$visualNavDesktop.height( _height );
  417.                 // ブラウザのリサイズ時に.slick-listの高さが追随しない事があるのでこちらも高さを揃えます
  418.                 \$visualNavDesktop.find( '.slick-list' ).height( _height );
  419.             });
  420.         }
  421.         // ビジュアルナビ(スマホ用)
  422.         var \$productRoleVisual =  \$( '.ec-productRole__visual' );// ※ビジュアル画像拡大機能でもこの取得要素を使います
  423.         var \$visualNavSphone =    \$( '.ec-productVisualNav.sphone' );// ビジュアルナビ(スマホ用)
  424.         var \$sideInNavToggleBtn = \$( '.sideInNavToggleBtn' );// ビジュアルナビ開閉ボタン
  425.         // ビジュアルナビ(スマホ)開閉ボタン
  426.         \$sideInNavToggleBtn.on('click', function(){
  427.             // 開状態となるclassをON/OFF
  428.             \$productRoleVisual.toggleClass( 'is-navOpen' );
  429.         });
  430.         // ビジュアルナビ(スマホ)サムネイルタップでメインビジュアル画像を切替え
  431.         \$visualNavSphone.on('click', '.slideThumb', function() {
  432.             var index = \$(this).attr( 'data-index' );
  433.             \$ecSlickContainer.slick( 'slickGoTo', index, false );// slickGoTo: indexで指定したスライドへ移動
  434.             // ページ上部にスクロールする処理を入れておきます(ページトップボタンのイベントを発火)
  435.             \$( '.ec-blockTopBtn' ).trigger( 'click' );
  436.             // ナビをCLOSE
  437.             \$productRoleVisual.removeClass( 'is-navOpen' );
  438.         });
  439.         // サムネイル以外をタップした場合はナビをCLOSE
  440.         \$visualNavSphone.on('click', function() {
  441.             // ナビをCLOSE
  442.             \$productRoleVisual.removeClass( 'is-navOpen' );
  443.         });
  444.         // スライド切り替え完了後のイベント(開閉ボタンのカレント値を更新)
  445.         \$ecSlickContainer.on('afterChange', function(e, slick, currentSlide){
  446.             \$sideInNavToggleBtn.find( '.currentNum' ).text( currentSlide + 1 );
  447.         });
  448.         //------------------------------
  449.         // ビジュアル画像 ルーペ拡大表示(Drift)&ポップアップ拡大表示(Luminous)
  450.         //------------------------------
  451.         // ・Drift
  452.         // ルーペ拡大表示には「Drift」を使用しています(Drift was made by imgix.)
  453.         // https://github.com/imgix/drift
  454.         //------------------------------
  455.         // ・Luminous
  456.         // ポップアップ拡大表示には「Luminous」を使用しています(Luminous was made by imgix.)
  457.         // https://github.com/imgix/luminous
  458.         //------------------------------
  459.         // 商品ビジュアルの拡大機能ON/OFF
  460.         var visual_loupe = Boolean( ";
  461.         // line 364
  462.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["visual_options"]) || array_key_exists("visual_options"$context) ? $context["visual_options"] : (function () { throw new RuntimeError('Variable "visual_options" does not exist.'364$this->source); })()), "loupe", [], "any"falsefalsefalse364), "html"nulltrue);
  463.         echo " );// ルーペ拡大
  464.         var visual_popup = Boolean( ";
  465.         // line 365
  466.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["visual_options"]) || array_key_exists("visual_options"$context) ? $context["visual_options"] : (function () { throw new RuntimeError('Variable "visual_options" does not exist.'365$this->source); })()), "popup", [], "any"falsefalsefalse365), "html"nulltrue);
  467.         echo " );// ポップアップ拡大
  468.         // slick生成が完了してから実行します。イベント「slick_all_readiness」はjeia_function.jsによってslick生成完了後に発火されます。
  469.         \$(window).on('slick_all_readiness', function(){
  470.             // ルーペ拡大表示
  471.             // 画像ズームはデスクトップ・タブレット時のみとします(スマホではあまり実用的ではないと思われますので)
  472.             if ( visual_loupe && window.innerWidth >= 768 ) {
  473.                 // 拡大表示パネルの大きさを決めます(リサイズ時も算出し直します)
  474.                 \$(window).on('on_pane_size jeia_resize', function(){
  475.                     // パネル表示の基点(サムネイル枠の左端)
  476.                     var pane_origin = \$(' .ec-productVisualNav' ).offset().left;
  477.                     // パネル幅 →ブラウザ幅から表示基点を引いて(スクロールバー分の幅も調整)、パネル領域を広く設定
  478.                     var pane_w = window.innerWidth - pane_origin - 50;
  479.                     // パネル高さ →ビジュアル上位置からブラウザ下まで、少しだけ余白を差し引き
  480.                     var pane_h = \$(window).height() - \$productRoleVisual.offset().top - 50;
  481.                     \$( '.drift-pane' ).css({
  482.                         'width':  pane_w,
  483.                         'height': pane_h,
  484.                         'left':   \$( '.ec-productVisualMain' ).width() + 1// メインビジュアルの右端 + 余白
  485.                     });
  486.                 }).trigger('on_pane_size');
  487.                 // メインビジュアル ルーペ拡大表示(ライブラリ「Drift」)
  488.                 var pane = document.querySelector( '.drift-pane' );
  489.                 \$( '.drift-img' ).each(function(){
  490.                     new Drift(this, {
  491.                         paneContainer:  pane,
  492.                         inlinePane:     1279,//1280px以上でパネル表示、それ未満はルーペ表示
  493.                         containInline:  false,// ルーペを画像の端からはみ出させない場合はtrue
  494.                         inlineOffsetY:  -85,
  495.                         touchDelay:     300
  496.                     });
  497.                 })
  498.             }
  499.             // ポップアップ拡大表示
  500.             // 画像ポップアップはデスクトップ・タブレット時のみとします(スマホではあまり実用的ではないと思われますので)
  501.             if ( visual_popup && window.innerWidth >= 768 ) {
  502.                 new LuminousGallery(document.querySelectorAll( '.luminous-gallery' ));
  503.             } else {
  504.                 // ポップアップ拡大を使用しない →画像がクリックされてもa要素が動作しないようにイベントを組んでおきます
  505.                 \$productRoleVisual.find( '.luminous-gallery' ).on('click', function(){
  506.                     return false;
  507.                 });
  508.             }
  509.         });
  510.         // どちらの拡大機能も使用しない場合はカーソルを矢印に戻しておきます(通常はCSS側でzoom-inにしています)
  511.         if ( !visual_loupe && !visual_popup ) {
  512.             \$productRoleVisual.find( '.slide-item > a' ).css( 'cursor', 'default' );
  513.         }
  514.         //------------------------------
  515.         // お気に入り処理
  516.         //------------------------------
  517.         /* 当テンプレートではお気に入りボタンをカートボタンの横に配置するデザインとなっておりますが、
  518.             * このエリアはカートインのform要素領域の中に入っていますので、お気に入り追加用formとボタンとを分離させ、
  519.             * ボタンをカート横に配置し、ボタンクリック時に当スクリプトお気に入りフォーム送信を発生させています。
  520.             */
  521.         \$( '#favorite' ).on('click', function(e){
  522.             e.preventDefault();
  523.             \$( '#form_favorite' ).submit();
  524.         });
  525.         //------------------------------
  526.         // シェアボタン(サブウィンドウ表示)
  527.         //------------------------------
  528.         \$( '.shareBtn' ).on('click', function(){
  529.             // ウィンドウを開かないタイプはスルー
  530.             if ( \$(this).hasClass( 'no-window' ) ) {
  531.                 return true;
  532.             }
  533.             var this_url = \$(this).attr( 'href' ) + location.href;
  534.             window.open( this_url, 'sns_win', 'width=650, height=470, personalbar=0, toolbar=0, scrollbars=1, sizable=1' );
  535.             return false;
  536.         });
  537.         //------------------------------
  538.         // フリーエリア:タブ切り替えコンテンツ
  539.         //------------------------------
  540.         /* フリーエリア内にコードを記述することでタブ切り替えコンテンツを実装します。
  541.          * タブ切り替えが不要な場合は当スクリプトを削除してください。
  542.          * ※EC-CUBE4.2.0ではフリーエリアに記述したHTMLがサニタイズ(data属性が削除)されてしまい、この機能が動作しませんのでコメントアウトします。
  543.          */
  544.         /*
  545.         var \$ecProductDetailTab =        \$( '.ec-productDetailTab' );
  546.         var \$ecProductDetailTabNav =     \$ecProductDetailTab.find( '.ec-productDetailTab__nav' )
  547.         var \$ecProductDetailTabContent = \$ecProductDetailTab.find( '.ec-productDetailTab__content' );
  548.         \$ecProductDetailTabNav.on('click', 'li', function(){
  549.             var \$this = \$(this);
  550.             var _index = '.tab-' + \$this.data('tab');
  551.             // コンテンツのアクティブ化
  552.             \$ecProductDetailTabContent.filter(_index).addClass('is-active').siblings().removeClass('is-active');
  553.             // タブのアクティブ化
  554.             \$this.addClass('is-active').siblings().removeClass('is-active');
  555.         });
  556.         // 初回は1番目のタブコンテンツを表示
  557.         \$ecProductDetailTabNav.find('li:eq(0)').trigger('click');
  558.         */
  559.     </script>
  560.     ";
  561.         // line 482
  562.         echo "    ";
  563.         if ((isset($context["clone_cartin"]) || array_key_exists("clone_cartin"$context) ? $context["clone_cartin"] : (function () { throw new RuntimeError('Variable "clone_cartin" does not exist.'482$this->source); })())) {
  564.             // line 483
  565.             echo "    <script src=\"";
  566.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/clone_cartin.js"), "html"nulltrue);
  567.             echo "\"></script>
  568.     ";
  569.         }
  570.         // line 485
  571.         echo "
  572. \t<script src=\"//unpkg.com/flatpickr\"></script>
  573. \t<!-- 日本語の言語ファイル -->
  574. \t<script src=\"//unpkg.com/flatpickr/dist/l10n/ja.js\"></script>
  575. \t<script>
  576. \t\t//Googleカレンダー予約状況
  577. \t\treservedInfo=";
  578.         // line 491
  579.         echo (isset($context["events"]) || array_key_exists("events"$context) ? $context["events"] : (function () { throw new RuntimeError('Variable "events" does not exist.'491$this->source); })());
  580.         echo ";
  581. /*
  582. \t\tfor (let key in reservedInfo) {
  583. \t\t  console.log('key:' + key);
  584. \t\t  console.log(reservedInfo[key].length);
  585. \t\t}
  586. */
  587. \t\tcalendar_start_date=\"";
  588.         // line 500
  589.         echo twig_escape_filter($this->env, (isset($context["calendar_start_date"]) || array_key_exists("calendar_start_date"$context) ? $context["calendar_start_date"] : (function () { throw new RuntimeError('Variable "calendar_start_date" does not exist.'500$this->source); })()), "html"nulltrue);
  590.         echo "\";
  591. \t</script>
  592. \t<script src=\"";
  593.         // line 502
  594.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/hotelinfo].js"), "html"nulltrue);
  595.         echo "?";
  596.         echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getEnv("CSS_PARAM"), "html"nulltrue);
  597.         echo "\"></script>
  598. \t<script src=\"";
  599.         // line 503
  600.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/rental_common.js"), "html"nulltrue);
  601.         echo "?";
  602.         echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getEnv("CSS_PARAM"), "html"nulltrue);
  603.         echo "\"></script>
  604. \t<script src=\"";
  605.         // line 504
  606.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/drive_detail.js"), "html"nulltrue);
  607.         echo "?";
  608.         echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getEnv("CSS_PARAM"), "html"nulltrue);
  609.         echo "\"></script>
  610. ";
  611.         
  612.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  613.         
  614.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  615.     }
  616.     // line 511
  617.     public function block_main($context, array $blocks = [])
  618.     {
  619.         $macros $this->macros;
  620.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  621.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  622.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  623.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  624.         // line 512
  625.         echo "
  626. ";
  627.         // line 513
  628.         $context["carflg"] = false;
  629.         // line 514
  630.         echo "
  631. ";
  632.         // line 515
  633.         $context['_parent'] = $context;
  634.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'515$this->source); })()), "ProductCategories", [], "any"falsefalsefalse515));
  635.         foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
  636.             // line 516
  637.             echo "     ";
  638.             if ((== twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["ProductCategory"], "Category", [], "any"falsefalsefalse516), "id", [], "any"falsefalsefalse516))) {
  639.                 // line 517
  640.                 echo "\t\t";
  641.                 $context["carflg"] = true;
  642.                 // line 518
  643.                 echo "\t";
  644.             }
  645.         }
  646.         $_parent $context['_parent'];
  647.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
  648.         $context array_intersect_key($context$_parent) + $_parent;
  649.         // line 520
  650.         echo "
  651.     <div class=\"ec-productRole\">
  652.         <div class=\"ec-productRole__grid\">
  653.             <div class=\"ec-productRole__gridCell cellLeft\">
  654.                 ";
  655.         // line 527
  656.         echo "                <div class=\"ec-productRole__visual\">
  657.                     ";
  658.         // line 530
  659.         echo "                    <div class=\"ec-productVisualMain\">
  660.                         ";
  661.         // line 532
  662.         echo "                        <div class=\"ec-slickContainer\">
  663.     ";
  664.         // line 533
  665.         $context['_parent'] = $context;
  666.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'533$this->source); })()), "ProductImage", [], "any"falsefalsefalse533));
  667.         $context['_iterated'] = false;
  668.         $context['loop'] = [
  669.           'parent' => $context['_parent'],
  670.           'index0' => 0,
  671.           'index'  => 1,
  672.           'first'  => true,
  673.         ];
  674.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  675.             $length count($context['_seq']);
  676.             $context['loop']['revindex0'] = $length 1;
  677.             $context['loop']['revindex'] = $length;
  678.             $context['loop']['length'] = $length;
  679.             $context['loop']['last'] = === $length;
  680.         }
  681.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  682.             // line 534
  683.             echo "                            <div class=\"slide-item\">
  684.                                 <a class=\"luminous-gallery\" data-iteration=\"<!--{\$num}-->\" href=\"";
  685.             // line 535
  686.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  687.             echo "\" target=\"_blank\">
  688.                                     <img class=\"drift-img\" src=\"";
  689.             // line 536
  690.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  691.             echo "\" data-zoom=\"";
  692.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  693.             echo "\" alt=\"";
  694.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse536)) ? (print (twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'536$this->source); })()), "name", [], "any"falsefalsefalse536), "html"nulltrue))) : (print ("")));
  695.             echo "  ";
  696.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse536)) ? (print (twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'536$this->source); })()), "search_word", [], "any"falsefalsefalse536), "html"nulltrue))) : (print ("")));
  697.             echo "\" ";
  698.             if ((twig_get_attribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse536) > 1)) {
  699.                 echo " loading=\"lazy\"";
  700.             }
  701.             echo ">
  702.                                 </a>
  703.                             </div>
  704.     ";
  705.             $context['_iterated'] = true;
  706.             ++$context['loop']['index0'];
  707.             ++$context['loop']['index'];
  708.             $context['loop']['first'] = false;
  709.             if (isset($context['loop']['length'])) {
  710.                 --$context['loop']['revindex0'];
  711.                 --$context['loop']['revindex'];
  712.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  713.             }
  714.         }
  715.         if (!$context['_iterated']) {
  716.             // line 540
  717.             echo "                            <div class=\"slide-item\"><img src=\"";
  718.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html"nulltrue);
  719.             echo "\" alt=\"";
  720.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse540)) ? (print (twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'540$this->source); })()), "name", [], "any"falsefalsefalse540), "html"nulltrue))) : (print ("")));
  721.             echo "  ";
  722.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse540)) ? (print (twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'540$this->source); })()), "search_word", [], "any"falsefalsefalse540), "html"nulltrue))) : (print ("")));
  723.             echo "\"></div>
  724.     ";
  725.         }
  726.         $_parent $context['_parent'];
  727.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  728.         $context array_intersect_key($context$_parent) + $_parent;
  729.         // line 542
  730.         echo "                        </div>
  731.                     </div>
  732. ";
  733.         // line 553
  734.         echo "                    ";
  735.         // line 554
  736.         echo "                    <div class=\"ec-productVisualNav desktop\">
  737.     ";
  738.         // line 555
  739.         $context['_parent'] = $context;
  740.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'555$this->source); })()), "ProductImage", [], "any"falsefalsefalse555));
  741.         $context['loop'] = [
  742.           'parent' => $context['_parent'],
  743.           'index0' => 0,
  744.           'index'  => 1,
  745.           'first'  => true,
  746.         ];
  747.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  748.             $length count($context['_seq']);
  749.             $context['loop']['revindex0'] = $length 1;
  750.             $context['loop']['revindex'] = $length;
  751.             $context['loop']['length'] = $length;
  752.             $context['loop']['last'] = === $length;
  753.         }
  754.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  755.             // line 556
  756.             echo "                        ";
  757.             // line 559
  758.             echo "                        <div class=\"slideThumb\" data-index=\"";
  759.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsefalse559), "html"nulltrue);
  760.             echo "\"><img src=\"";
  761.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  762.             echo "\" alt=\"\"></div>
  763.     ";
  764.             ++$context['loop']['index0'];
  765.             ++$context['loop']['index'];
  766.             $context['loop']['first'] = false;
  767.             if (isset($context['loop']['length'])) {
  768.                 --$context['loop']['revindex0'];
  769.                 --$context['loop']['revindex'];
  770.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  771.             }
  772.         }
  773.         $_parent $context['_parent'];
  774.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  775.         $context array_intersect_key($context$_parent) + $_parent;
  776.         // line 561
  777.         echo "                    </div>
  778.                     ";
  779.         // line 564
  780.         echo "                    <div class=\"ec-productVisualNav sphone\">
  781.                         <div class=\"sideInNavShelf\">
  782.         ";
  783.         // line 566
  784.         $context['_parent'] = $context;
  785.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'566$this->source); })()), "ProductImage", [], "any"falsefalsefalse566));
  786.         $context['loop'] = [
  787.           'parent' => $context['_parent'],
  788.           'index0' => 0,
  789.           'index'  => 1,
  790.           'first'  => true,
  791.         ];
  792.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  793.             $length count($context['_seq']);
  794.             $context['loop']['revindex0'] = $length 1;
  795.             $context['loop']['revindex'] = $length;
  796.             $context['loop']['length'] = $length;
  797.             $context['loop']['last'] = === $length;
  798.         }
  799.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  800.             // line 567
  801.             echo "                            <div class=\"slideThumb\" data-index=\"";
  802.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsefalse567), "html"nulltrue);
  803.             echo "\"><img src=\"";
  804.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  805.             echo "\" alt=\"\" loading=\"lazy\"></div>
  806.         ";
  807.             ++$context['loop']['index0'];
  808.             ++$context['loop']['index'];
  809.             $context['loop']['first'] = false;
  810.             if (isset($context['loop']['length'])) {
  811.                 --$context['loop']['revindex0'];
  812.                 --$context['loop']['revindex'];
  813.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  814.             }
  815.         }
  816.         $_parent $context['_parent'];
  817.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  818.         $context array_intersect_key($context$_parent) + $_parent;
  819.         // line 569
  820.         echo "                        </div>
  821.                     </div>
  822.                     ";
  823.         // line 573
  824.         echo "                    <div class=\"sideInNavToggleBtn\">
  825.                         <i class=\"jeiafont jeia-grid\"></i>
  826.                         <span class=\"currentNum\">1</span>
  827.                         <span class=\"ceparate\">/</span>
  828.                         <span class=\"totalNum\">";
  829.         // line 577
  830.         echo twig_escape_filter($this->envtwig_length_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'577$this->source); })()), "ProductImage", [], "any"falsefalsefalse577)), "html"nulltrue);
  831.         echo "</span>
  832.                     </div>
  833.                 </div>
  834.                 ";
  835.         // line 582
  836.         echo "                <div class=\"drift-pane\"></div>
  837. \t    ";
  838.         // line 583
  839.         if ((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'583$this->source); })()), "id", [], "any"falsefalsefalse583) == 16)) {
  840.             // line 584
  841.             echo "\t\t\t\t<video poster=\"/awd/html/upload/save_image/poster_aquariva34.webp\" controls=\"\" muted=\"\" width=\"100%\" src=\"/awd/html/upload/save_image/IMG_5774.mp4\" style=\"margin-top: 10px;\"></video>
  842.         ";
  843.         }
  844.         // line 586
  845.         echo "\t\t\t\t<div class=\"ec-productRole__description pcOnly\">
  846.                 \t";
  847.         // line 587
  848.         echo twig_nl2br(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'587$this->source); })()), "description_detail", [], "any"falsefalsefalse587));
  849.         echo "
  850.                 </div>
  851.             </div>
  852.             <div class=\"ec-productRole__gridCell cellRight\">
  853.                 ";
  854.         // line 594
  855.         echo "                <div class=\"ec-productRole__profile\">
  856. ";
  857.         // line 602
  858.         echo "                    ";
  859.         // line 603
  860.         echo "                    <div class=\"ec-productRole__title\">
  861.                         <h1>";
  862.         // line 604
  863.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'604$this->source); })()), "name", [], "any"falsefalsefalse604), "html"nulltrue);
  864.         echo "</h1>
  865.                     </div>
  866.                     ";
  867.         // line 627
  868.         echo "
  869.                     ";
  870.         // line 629
  871.         echo "                    <div class=\"ec-productRole__price\">
  872.                         <div class=\"ec-price\">
  873. ";
  874.         // line 631
  875.         if ((isset($context["carflg"]) || array_key_exists("carflg"$context) ? $context["carflg"] : (function () { throw new RuntimeError('Variable "carflg" does not exist.'631$this->source); })())) {
  876.             // line 632
  877.             $context["course"] = $this->extensions['Customize\Twig\Extension\jsonDecodeTwigExtension']->jsonDecodeFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'632$this->source); })()), "item14", [], "any"falsefalsefalse632));
  878.         } else {
  879.             // line 634
  880.             echo "                            <span class=\"ec-price__price\">Price ASK</span>
  881. ";
  882.         }
  883.         // line 636
  884.         echo "                        </div>
  885.                     </div>
  886.                     ";
  887.         // line 640
  888.         echo "                    <div class=\"ec-productRole__description spOnly\">
  889.                         ";
  890.         // line 641
  891.         echo twig_nl2br(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'641$this->source); })()), "description_detail", [], "any"falsefalsefalse641));
  892.         echo "
  893.                     </div>
  894. ";
  895.         // line 644
  896.         if ((isset($context["carflg"]) || array_key_exists("carflg"$context) ? $context["carflg"] : (function () { throw new RuntimeError('Variable "carflg" does not exist.'644$this->source); })())) {
  897.             // line 645
  898.             echo "                    <div class=\"ec-productRole__description\">
  899. \t\t\t\t\t\t<details class=\"accordion-006 spec\" open>
  900. \t\t\t\t\t\t\t<summary><h3>Car Experience Price (JPN)</h3></summary>
  901. \t";
  902.             // line 648
  903.             if (((((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'648$this->source); })()), "id", [], "any"falsefalsefalse648) != 40) && (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'648$this->source); })()), "id", [], "any"falsefalsefalse648) != 57)) && (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'648$this->source); })()), "id", [], "any"falsefalsefalse648) != 48)) && (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'648$this->source); })()), "id", [], "any"falsefalsefalse648) != 49))) {
  904.                 // line 649
  905.                 echo "\t\t\t\t\t\t\t<ul class=\"spec__item\">
  906. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  907. \t\t\t\t\t\t\t\t  <span>1hour  </span>&yen ";
  908.                 // line 651
  909.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["course"]) || array_key_exists("course"$context) ? $context["course"] : (function () { throw new RuntimeError('Variable "course" does not exist.'651$this->source); })()), 20, [], "any"falsefalsefalse651)), "html"nulltrue);
  910.                 echo "</li>
  911. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  912. \t\t\t\t\t\t\t\t  <span>2hour  </span>&yen ";
  913.                 // line 653
  914.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["course"]) || array_key_exists("course"$context) ? $context["course"] : (function () { throw new RuntimeError('Variable "course" does not exist.'653$this->source); })()), 40, [], "any"falsefalsefalse653)), "html"nulltrue);
  915.                 echo "</li>
  916. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  917. \t\t\t\t\t\t\t\t  <span>3hour  </span>&yen ";
  918.                 // line 655
  919.                 echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["course"]) || array_key_exists("course"$context) ? $context["course"] : (function () { throw new RuntimeError('Variable "course" does not exist.'655$this->source); })()), 80, [], "any"falsefalsefalse655)), "html"nulltrue);
  920.                 echo "</li>
  921. \t\t\t\t\t\t\t</ul>
  922. \t";
  923.             } else {
  924.                 // line 658
  925.                 echo "\t\t\t\t\t\t\t<ul class=\"spec__item\">
  926. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  927. \t\t\t\t\t\t\t\t  <span>1hour  </span>ASK</li>
  928. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  929. \t\t\t\t\t\t\t\t  <span>2hour  </span>ASK</li>
  930. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  931. \t\t\t\t\t\t\t\t  <span>3hour  </span>ASK</li>
  932. \t\t\t\t\t\t\t</ul>
  933. \t";
  934.             }
  935.             // line 667
  936.             echo "\t\t\t\t\t\t</details>
  937. \t\t\t\t\t\t<details class=\"accordion-006\">
  938. \t\t\t\t\t\t\t<summary>SPEC</summary>
  939. \t\t\t\t\t\t\t<ul class=\"spec__item\">
  940. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  941. \t\t\t\t\t\t\t\t  <span>Year    </span>";
  942.             // line 673
  943.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'673$this->source); })()), "item1", [], "any"falsefalsefalse673)), "html"nulltrue);
  944.             echo "</li>
  945. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  946. \t\t\t\t\t\t\t\t  <span>HP         </span>";
  947.             // line 675
  948.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'675$this->source); })()), "item21", [], "any"falsefalsefalse675)), "html"nulltrue);
  949.             echo "</li>
  950. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  951. \t\t\t\t\t\t\t\t  <span>Steering Wheel </span>";
  952.             // line 677
  953.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'677$this->source); })()), "item2", [], "any"falsefalsefalse677)), "html"nulltrue);
  954.             echo "</li>
  955. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  956. \t\t\t\t\t\t\t\t  <span>Seater   </span>";
  957.             // line 679
  958.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'679$this->source); })()), "item3", [], "any"falsefalsefalse679)), "html"nulltrue);
  959.             echo "</li>
  960. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  961. \t\t\t\t\t\t\t\t  <span>Doors   </span>";
  962.             // line 681
  963.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'681$this->source); })()), "item4", [], "any"falsefalsefalse681)), "html"nulltrue);
  964.             echo "</li>
  965. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  966. \t\t\t\t\t\t\t\t  <span>Mission </span>";
  967.             // line 683
  968.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'683$this->source); })()), "item5", [], "any"falsefalsefalse683)), "html"nulltrue);
  969.             echo "</li>
  970. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  971. \t\t\t\t\t\t\t\t  <span>Fuel   </span>";
  972.             // line 685
  973.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'685$this->source); })()), "item6", [], "any"falsefalsefalse685)), "html"nulltrue);
  974.             echo "</li>
  975. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  976. \t\t\t\t\t\t\t\t  <span>Drive type </span>";
  977.             // line 687
  978.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'687$this->source); })()), "item7", [], "any"falsefalsefalse687)), "html"nulltrue);
  979.             echo "</li>
  980. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  981. \t\t\t\t\t\t\t\t  <span>Displacement  </span>";
  982.             // line 689
  983.             echo twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'689$this->source); })()), "item8", [], "any"falsefalsefalse689)), "html"nulltrue);
  984.             echo "cc        </li>
  985. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  986. \t\t\t\t\t\t\t\t  <span>Equipment   </span>";
  987.             // line 691
  988.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'691$this->source); })()), "item9", [], "any"falsefalsefalse691)), "html"nulltrue);
  989.             echo "</li>
  990. \t\t\t\t\t\t\t</ul>
  991. \t\t\t\t\t\t</details>
  992.                     </div>
  993. ";
  994.         }
  995.         // line 696
  996.         echo "
  997. \t\t<form name=\"reserveForm\" action=\"";
  998.         // line 698
  999.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("drive_reserved");
  1000.         echo "\" method=\"post\" class=\"reserveForm\">
  1001. \t\t\t<input type=\"hidden\" name=\"calendarId\" id=\"calendarId\" value=\"";
  1002.         // line 699
  1003.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'699$this->source); })()), "item13", [], "any"falsefalsefalse699)), "html"nulltrue);
  1004.         echo "\">
  1005. \t\t\t<input type=\"hidden\" name=\"carname\" value=\"";
  1006.         // line 700
  1007.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'700$this->source); })()), "name", [], "any"falsefalsefalse700), "html"nulltrue);
  1008.         echo "\">
  1009. \t\t\t<input type=\"hidden\" name=\"referralhotel\" class=\"referralhotel\" value=\"\">
  1010.             <p class=\"ec-para-normal\">
  1011.             Select your date, time, and preferred prefix menu, then provide your information. After submission, your temporary reservation will be secured. We look forward to your booking.
  1012.             </p>
  1013.             <p class=\"reserevedError\" style=\"display:none;\">Reservation information is not set correctly</p>
  1014. \t\t\t<div class=\"Form-Item name\">
  1015. \t\t\t\t<p class=\"Form-Item-Label\">Date</p>
  1016. \t\t\t\t<input name=\"date\" type=\"text\" class=\"Form-Item-Input flatpickr flatpickr-input date\" placeholder=\"2024-01-01\" id=\"myCal\" value=\"\">
  1017. \t\t\t\t<span class=\"Form-Item-Error date\" style=\"display: none;\">*Please select</span>
  1018. \t\t\t</div>
  1019. \t\t\t<div class=\"Form-Item\">
  1020. \t\t\t\t<p class=\"Form-Item-Label block-line\">Start Time</p>
  1021. \t\t        <select name=\"starttime\" class=\"Form-Item-Input\">
  1022. \t\t\t\t\t<option value=\"8:00\">8:00</option>
  1023. \t\t\t\t\t<option value=\"8:30\">8:30</option>
  1024. \t\t\t\t\t<option value=\"9:00\">9:00</option>
  1025. \t\t\t\t\t<option value=\"9:30\">9:30</option>
  1026. \t\t\t\t\t<option value=\"10:00\" selected>10:00</option>
  1027. \t\t\t\t\t<option value=\"10:30\">10:30</option>
  1028. \t\t\t\t\t<option value=\"11:00\">11:00</option>
  1029. \t\t\t\t\t<option value=\"11:30\">11:30</option>
  1030. \t\t\t\t\t<option value=\"12:00\">12:00</option>
  1031. \t\t\t\t\t<option value=\"12:30\">12:30</option>
  1032. \t\t\t\t\t<option value=\"13:00\">13:00</option>
  1033. \t\t\t\t\t<option value=\"13:30\">13:30</option>
  1034. \t\t\t\t\t<option value=\"14:00\">14:00</option>
  1035. \t\t\t\t\t<option value=\"14:30\">14:30</option>
  1036. \t\t\t\t\t<option value=\"15:00\">15:00</option>
  1037. \t\t\t\t\t<option value=\"15:30\">15:30</option>
  1038. \t\t\t\t\t<option value=\"16:00\">16:00</option>
  1039. \t\t\t\t\t<option value=\"16:30\">16:30</option>
  1040. \t\t\t\t\t<option value=\"17:00\">17:00</option>
  1041. \t\t\t\t\t<option value=\"17:30\">17:30</option>
  1042. \t\t\t\t\t<option value=\"18:00\">18:00</option>
  1043. \t\t\t\t\t<option value=\"18:30\">18:30</option>
  1044. \t\t\t\t\t<option value=\"19:00\">19:00</option>
  1045. \t\t\t\t\t<option value=\"19:30\">19:30</option>
  1046. \t\t\t\t</select>
  1047. \t\t\t\t<span class=\"Form-Item-Error starttime\" style=\"display: none;\">*Please select</span>
  1048. \t\t\t</div>
  1049. ";
  1050.         // line 757
  1051.         echo "\t\t\t<div class=\"Form-Item name\">
  1052. \t\t\t\t<p class=\"Form-Item-Label\">Car Experience time</p>
  1053. \t\t\t\t<div class=\"timelist\">
  1054. \t\t\t\t\t<input type=\"radio\" name=\"time\" class=\"time\" value=\"1\" id=\"1H\" >
  1055. \t\t\t\t\t<label for=\"1H\" class=\"label\">1H</label>
  1056. \t\t\t\t\t<input type=\"radio\" name=\"time\" class=\"time\" value=\"2\" id=\"2H\" >
  1057. \t\t\t\t\t<label for=\"2H\" class=\"label\">2H</label>
  1058. \t\t\t\t\t<input type=\"radio\" name=\"time\" class=\"time\" value=\"3\" id=\"3H\">
  1059. \t\t\t\t\t<label for=\"3H\" class=\"label\">3H</label>
  1060. \t\t\t\t</div>
  1061. \t\t\t\t<span class=\"Form-Item-Error timelist\" style=\"display: none;\">*Please select</span>
  1062. \t\t\t</div>
  1063. \t\t\t<div class=\"Form-Item\">
  1064. \t\t\t\t<p class=\"Form-Item-Label block-line\">Number of Participants</p>
  1065. \t\t        <select name=\"participants\" class=\"Form-Item-Input participants\">
  1066. \t\t\t\t\t<option value=\"1\">1</option>
  1067. \t\t\t\t\t<option value=\"2\">2</option>
  1068. \t\t\t\t\t<option value=\"3\">3</option>
  1069. \t\t\t\t\t<option value=\"4\">4</option>
  1070. \t\t\t\t\t<option value=\"5\">5</option>
  1071. \t\t\t\t\t<option value=\"6\">6</option>
  1072. \t\t\t\t\t<option value=\"7\">7</option>
  1073. \t\t\t\t\t<option value=\"8\">8</option>
  1074. \t\t\t\t\t<option value=\"9\">9</option>
  1075. \t\t\t\t\t<option value=\"10\">10</option>
  1076. \t\t\t\t</select>
  1077. \t\t\t</div>
  1078. \t\t\t<div class=\"Form-Item\">
  1079. \t\t\t\t<p class=\"Form-Item-Label block-line\">Desired Prefix Menu</p>
  1080. \t\t\t\t<span class=\"note\">*Please refer to the <a class=\"\" href=\"/awd/drive#prefixmenu\" target=\"_blank\">Desired Prefix Menu.</a></span>
  1081. \t\t        <select name=\"shootinglocation\" class=\"Form-Item-Input shootinglocation\">
  1082. \t\t\t\t\t<option value=\"1.Heritage\">1.Heritage</option>
  1083. \t\t\t\t\t<option value=\"2.Metropolis\">2.Metropolis</option>
  1084. \t\t\t\t\t<option value=\"3.Nature Escape\">3.Nature Escape</option>
  1085. \t\t\t\t\t<option value=\"\">4.Other</option>
  1086. \t\t\t\t</select>
  1087. \t\t\t\t<div class=\"location-note\">
  1088. \t\t\t\t\t<input name=\"shootinglocationname\" type=\"text\" class=\"Form-Item-Input shootinglocationname\" placeholder=\"Please enter your Desired location\" value=\"\" style=\"display: none;\">
  1089. \t\t\t\t</div>
  1090. \t\t\t\t<span class=\"Form-Item-Error shootinglocationname\" style=\"display: none;\">*Please enter</span>
  1091. \t\t\t</div>
  1092. \t\t\t<div class=\"Form-Item\">
  1093. \t\t\t\t<p class=\"Form-Item-Label block-line\">Photo Shoot Option by photographer?</p>
  1094. \t\t\t\t<span class=\"note\">*option price &yen50,000~</span>
  1095. \t\t        <select name=\"option\" class=\"Form-Item-Input participants\">
  1096. \t\t\t\t\t<option value=\"No\">No</option>
  1097. \t\t\t\t\t<option value=\"Yes\">Yes</option>
  1098. \t\t\t\t</select>
  1099. \t\t\t</div>
  1100. \t\t\t<div class=\"Form-Item name\">
  1101. \t\t\t\t<p class=\"Form-Item-Label\">Name</p>
  1102. \t\t\t\t<input name=\"name\" type=\"text\" class=\"Form-Item-Input name\" placeholder=\"John Smith\" value=\"\">
  1103. \t\t\t\t<span class=\"Form-Item-Error name\" style=\"display: none;\">*Please enter</span>
  1104. \t\t\t</div>
  1105. \t\t\t<div class=\"Form-Item name\">
  1106. \t\t\t\t<p class=\"Form-Item-Label\">Country</p>
  1107. \t\t\t\t<input name=\"country\" type=\"text\" class=\"Form-Item-Input country\" placeholder=\"Australia\" value=\"\">
  1108. \t\t\t\t<span class=\"Form-Item-Error country\" style=\"display: none;\">*Please enter</span>
  1109. \t\t\t</div>
  1110. \t\t\t<div class=\"Form-Item email\">
  1111. \t\t\t\t<p class=\"Form-Item-Label\">Mail</p>
  1112. \t\t\t\t<input name=\"email\" type=\"email\" class=\"Form-Item-Input email\" placeholder=\"example@gmail.com\" value=\"\">
  1113. \t\t\t\t<span class=\"Form-Item-Error email\" style=\"display: none;\">*Please enter</span>
  1114. \t\t\t</div>
  1115. \t\t\t<div class=\"Form-Item tel\">
  1116. \t\t\t\t<p class=\"Form-Item-Label\">Tel</p>
  1117. \t\t\t\t<input name=\"tel\" type=\"tel\" class=\"Form-Item-Input tel\" placeholder=\"+810000000000\" value=\"\">
  1118. \t\t\t\t<span class=\"Form-Item-Error tel\" style=\"display: none;\">*Please enter</span>
  1119. \t\t\t</div>
  1120. \t\t\t<div class=\"Form-Item tel\">
  1121. \t\t\t\t<p class=\"Form-Item-Label\">Pickup / DropOff Location</p>
  1122. \t\t\t\t<span class=\"note\">*Pickup/DropOff to SHIBUYA \"Cerulean Tower Tokyu Hotel\", &yen;10,000 discount</span>
  1123. \t\t        <select name=\"pickup_dropoff\" class=\"Form-Item-Input pickup_dropoff\">
  1124. \t\t\t\t\t<option value=\"SHIBUYA\">SHIBUYA</option>
  1125. \t\t\t\t\t<option value=\"other\">Specify pickup and dropout locations.</option>
  1126. \t\t\t\t</select>
  1127.             </div>
  1128. \t\t\t<div class=\"Form-Item\">
  1129. \t\t\t\t<p class=\"Form-Item-Label\">PickUp Location</p>
  1130. \t\t\t\t<input name=\"pickup\" type=\"text\" class=\"Form-Item-Input pickup\" placeholder=\"hotel aman tokyo\" value=\"\">
  1131. \t\t\t\t<span class=\"Form-Item-Error pickup\" style=\"display: none;\">*Please enter</span>
  1132. \t\t\t\t<span class=\"w100 shibuya\">*Cannot enter</span>
  1133. \t\t\t</div>
  1134. \t\t\t<div class=\"Form-Item\">
  1135. \t\t\t\t<p class=\"Form-Item-Label\">DropOff Location</p>
  1136. \t\t\t\t<input name=\"dropoff\" type=\"text\" class=\"Form-Item-Input dropoff\" placeholder=\"hotel aman tokyo\" value=\"\">
  1137. \t\t\t\t<span class=\"Form-Item-Error dropoff\" style=\"display: none;\">*Please enter</span>
  1138. \t\t\t\t<span class=\"w100 shibuya\">*Cannot enter</span>
  1139. \t\t\t</div>
  1140. \t\t\t<div class=\"Form-Item\">
  1141. \t\t\t\t<p class=\"Form-Item-Label\">Comment</p>
  1142. \t\t\t\t<span class=\"note\">*If you have any requests, please enter them.</span>
  1143. \t\t\t\t<textarea rows=\"5\" class=\"Form-Item-Textarea\" name=\"message\"></textarea>
  1144. \t\t\t\t<span class=\"Form-Item-Error\" style=\"display: none;\">*Please enter</span>
  1145. \t\t\t</div>
  1146. \t\t\t<a class=\"ec-shopCollectionBtn submit\" href=\"javascript:void(0)\">Reserve</a>
  1147. \t\t</form>
  1148.                     ";
  1149.         // line 856
  1150.         echo "                    <div class=\"ec-productRole__share\">
  1151.                         <p class=\"shareLabel\">SHARE</p>
  1152.                         <ul class=\"shareBtnList\">
  1153.                         ";
  1154.         // line 859
  1155.         ob_start();
  1156.         // line 860
  1157.         echo "                            ";
  1158.         // line 861
  1159.         echo "                            <li>
  1160.                                 <a class=\"shareBtn x-twitter\" href=\"https://twitter.com/share?url=\">
  1161.                                     <i class=\"jeiafont jeia-x-twitter\"></i><span>Twitter</span>
  1162.                                 </a>
  1163.                             </li>
  1164.                             ";
  1165.         // line 867
  1166.         echo "                            <li>
  1167.                                 <a class=\"shareBtn facebook\" href=\"https://www.facebook.com/sharer/sharer.php?u=\">
  1168.                                     <i class=\"jeiafont jeia-facebook\"></i><span>Facebook シェア</span>
  1169.                                 </a>
  1170.                             </li>
  1171.                             ";
  1172.         // line 873
  1173.         echo "                            <li>
  1174.                                 <a class=\"shareBtn line\" href=\"https://social-plugins.line.me/lineit/share?url=\">
  1175.                                     <i class=\"jeiafont jeia-line2\"></i><span>LINE</span>
  1176.                                 </a>
  1177.                             </li>
  1178.                             ";
  1179.         // line 879
  1180.         echo "                            <li>
  1181.                                 <a class=\"shareBtn pocket\" href=\"http://getpocket.com/edit?url=\">
  1182.                                     <i class=\"jeiafont jeia-get-pocket\"></i><span>Pocket</span>
  1183.                                 </a>
  1184.                             </li>
  1185.                             ";
  1186.         // line 885
  1187.         echo "                            <li>
  1188.                                 <a class=\"shareBtn hatena\" href=\"http://b.hatena.ne.jp/add?mode=confirm&url=\">
  1189.                                     <i class=\"jeiafont jeia-hatenabookmark\"></i><span>はてなブックマーク</span>
  1190.                                 </a>
  1191.                             </li>
  1192.                             ";
  1193.         // line 891
  1194.         echo "                            <li>
  1195.                                 <a class=\"shareBtn no-window pinterest\" data-pin-do=\"buttonBookmark\" data-pin-custom=\"true\" data-pin-lang=\"ja\" data-pin-save=\"false\" href=\"//jp.pinterest.com/pin/create/button/\">
  1196.                                     <i class=\"jeiafont jeia-pinterest\"></i><span>Pinterest</span>
  1197.                                 </a>
  1198.                                 <script async defer src=\"//assets.pinterest.com/js/pinit.js\"></script>
  1199.                             </li>
  1200.                         ";
  1201.         echo trim(preg_replace('/>\s+</''><'ob_get_clean()));
  1202.         // line 898
  1203.         echo "                        </ul>
  1204.                     </div>
  1205.                 </div>";
  1206.         // line 903
  1207.         echo "            </div>";
  1208.         // line 904
  1209.         echo "        </div>";
  1210.         // line 905
  1211.         echo "
  1212.     ";
  1213.         // line 906
  1214.         if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'906$this->source); })()), "freearea", [], "any"falsefalsefalse906)) {
  1215.             // line 907
  1216.             echo "        <div class=\"ec-productRole__freearea\">
  1217.             ";
  1218.             // line 908
  1219.             echo twig_include($this->env$contexttwig_template_from_string($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'908$this->source); })()), "freearea", [], "any"falsefalsefalse908)));
  1220.             echo "
  1221.         </div>
  1222.     ";
  1223.         }
  1224.         // line 911
  1225.         echo "
  1226.     </div>";
  1227.         
  1228.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1229.         
  1230.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1231.     }
  1232.     public function getTemplateName()
  1233.     {
  1234.         return "Drive/detail.twig";
  1235.     }
  1236.     public function isTraitable()
  1237.     {
  1238.         return false;
  1239.     }
  1240.     public function getDebugInfo()
  1241.     {
  1242.         return array (  1327 => 911,  1321 => 908,  1318 => 907,  1316 => 906,  1313 => 905,  1311 => 904,  1309 => 903,  1303 => 898,  1294 => 891,  1287 => 885,  1280 => 879,  1273 => 873,  1266 => 867,  1259 => 861,  1257 => 860,  1255 => 859,  1250 => 856,  1150 => 757,  1103 => 700,  1099 => 699,  1095 => 698,  1091 => 696,  1083 => 691,  1078 => 689,  1073 => 687,  1068 => 685,  1063 => 683,  1058 => 681,  1053 => 679,  1048 => 677,  1043 => 675,  1038 => 673,  1030 => 667,  1019 => 658,  1013 => 655,  1008 => 653,  1003 => 651,  999 => 649,  997 => 648,  992 => 645,  990 => 644,  984 => 641,  981 => 640,  976 => 636,  972 => 634,  969 => 632,  967 => 631,  963 => 629,  960 => 627,  954 => 604,  951 => 603,  949 => 602,  945 => 594,  936 => 587,  933 => 586,  929 => 584,  927 => 583,  924 => 582,  917 => 577,  911 => 573,  906 => 569,  887 => 567,  870 => 566,  866 => 564,  862 => 561,  843 => 559,  841 => 556,  824 => 555,  821 => 554,  819 => 553,  814 => 542,  801 => 540,  774 => 536,  770 => 535,  767 => 534,  749 => 533,  746 => 532,  743 => 530,  739 => 527,  731 => 520,  724 => 518,  721 => 517,  718 => 516,  714 => 515,  711 => 514,  709 => 513,  706 => 512,  696 => 511,  678 => 504,  672 => 503,  666 => 502,  661 => 500,  649 => 491,  641 => 485,  635 => 483,  632 => 482,  513 => 365,  509 => 364,  365 => 224,  359 => 221,  356 => 219,  348 => 213,  344 => 212,  340 => 211,  336 => 210,  332 => 208,  326 => 206,  324 => 205,  319 => 204,  316 => 203,  306 => 201,  292 => 199,  284 => 198,  266 => 197,  261 => 195,  238 => 175,  227 => 167,  197 => 140,  192 => 137,  183 => 131,  179 => 129,  177 => 128,  174 => 127,  165 => 121,  161 => 119,  159 => 118,  143 => 104,  135 => 102,  133 => 101,  128 => 99,  125 => 98,  123 => 97,  109 => 86,  106 => 85,  96 => 84,  82 => 80,  77 => 77,  67 => 76,  56 => 72,  54 => 74,  52 => 68,  50 => 61,  37 => 72,);
  1243.     }
  1244.     public function getSourceContext()
  1245.     {
  1246.         return new Source("{#
  1247. ///////////////////////////////////////////////////////////////////////
  1248. This template is part of EC-CUBE Design template.
  1249. Copyright(c) JAPAN ELECTRONIC INDUSTRIAL ARTS CO.LTD.
  1250. http://www.jeia.co.jp/
  1251. For the full copyright and license information, please view the LICENSE
  1252. file that was distributed with this source code.
  1253. 本テンプレートの著作権は、「株式会社日本電子工藝社」に帰属いたします。
  1254. ※本テンプレートを譲渡・再頒布・転用・第三者へ開示することは禁止いたします。
  1255. ただし、事業者によるショップ運営者への設置代行を禁止するものではございません。
  1256. ※本テンプレートを申請されたご利用サイトへの設置以外の目的で複製することは禁止いたします。
  1257. ※本テンプレートデータ内のライセンス条項、および著作権に関する記述を削除することはできません。
  1258. ※ご利用サイトを変更することはできません。申請と異なるサイトにてご利用になる場合は、
  1259. 別途、ご利用費用をお支払いただく必要がございます。
  1260. ※本テンプレートの改変にあたり、一切のサポートはいたしかねます。
  1261. ※本テンプレートは、すべての設置環境で動作する事は保証しておりません。
  1262. ///////////////////////////////////////////////////////////////////////
  1263. #}
  1264. {#
  1265. drift
  1266. https://github.com/imgix/drift
  1267. Copyright (c) 2015-2018, Zebrafish Labs All rights reserved.
  1268. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
  1269. 1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  1270. 2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  1271. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  1272. luminous
  1273. https://github.com/imgix/luminous
  1274. Copyright (c) 2015-2018, Zebrafish Labs All rights reserved.
  1275. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
  1276. 1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  1277. 2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  1278. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  1279. #}
  1280. {#
  1281. 商品詳細ページ
  1282. ビジュアル画像にはルーペ型とポップアップ型の拡大表示機能を実装しています。
  1283. もし機能が不要な場合は下記のTwig変数「visual_options」を設定してください。
  1284. * loupe: ルーペ拡大機能(0=無効、1=有効)
  1285. * popup: ポップアップ拡大機能(0=無効、1=有効)
  1286. 常駐カートイン機能をON/OFF切り替えできます。
  1287. * clone_cartin (0,false=無効、1,true=有効)
  1288. #}
  1289. {# ----------▼ 商品詳細機能設定 ▼---------- #}
  1290. {# ビジュアル画像拡大機能のON/OFF設定 #}
  1291. {% set visual_options =
  1292.     {
  1293.         loupe: 0,
  1294.         popup: 1
  1295.     }
  1296. %}
  1297. {# 常駐カートインのON/OFF設定 #}
  1298. {% set clone_cartin = true %}
  1299. {# ----------▲ 商品詳細機能設定 ▲---------- #}
  1300. {% extends 'default_frame.twig' %}
  1301. {% set body_class = 'product_page' %}
  1302. {% block stylesheet %}
  1303. \t<link rel=\"stylesheet\" href=\"//unpkg.com/flatpickr/dist/flatpickr.min.css\">
  1304. \t<!-- カスタムテーマ -->
  1305. \t<link rel=\"stylesheet\" href=\"//unpkg.com/flatpick/dist/themes/airbnb.css\">
  1306. \t<link rel=\"stylesheet\" href=\"{{ asset('assets/css/drive_detail.css') }}?{{ env('CSS_PARAM') }}\">
  1307. {% endblock %}
  1308. {% block javascript %}
  1309.     <script>
  1310.         eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
  1311.         // 規格2に選択肢を割り当てる。
  1312.         function fnSetClassCategories(form, classcat_id2_selected) {
  1313.             var \$form = \$(form);
  1314.             var product_id = \$form.find('input[name=product_id]').val();
  1315.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  1316.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  1317.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  1318.         }
  1319.         {% if form.classcategory_id2 is defined %}
  1320.         fnSetClassCategories(
  1321.             \$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
  1322.         );
  1323.         {% elseif form.classcategory_id1 is defined %}
  1324.         eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
  1325.         {% endif %}
  1326.     </script>
  1327.     <script>
  1328.         \$(function() {
  1329.             // bfcache無効化
  1330.             \$(window).bind('pageshow', function(event) {
  1331.                 if (event.originalEvent.persisted) {
  1332.                     location.reload(true);
  1333.                 }
  1334.             });
  1335.         });
  1336.     </script>
  1337.     <script>
  1338.         \$(function() {
  1339.             \$('.add-cart').on('click', function(event) {
  1340.                 {% if form.classcategory_id1 is defined %}
  1341.                 // 規格1フォームの必須チェック
  1342.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  1343.                     \$('#classcategory_id1')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  1344.                     return true;
  1345.                 } else {
  1346.                     \$('#classcategory_id1')[0].setCustomValidity('');
  1347.                 }
  1348.                 {% endif %}
  1349.                 {% if form.classcategory_id2 is defined %}
  1350.                 // 規格2フォームの必須チェック
  1351.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  1352.                     \$('#classcategory_id2')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  1353.                     return true;
  1354.                 } else {
  1355.                     \$('#classcategory_id2')[0].setCustomValidity('');
  1356.                 }
  1357.                 {% endif %}
  1358.                 // 個数フォームのチェック
  1359.                 if (\$('#quantity').val() < 1) {
  1360.                     \$('#quantity')[0].setCustomValidity('{{ '1以上で入力してください。'|trans }}');
  1361.                     return true;
  1362.                 } else {
  1363.                     \$('#quantity')[0].setCustomValidity('');
  1364.                 }
  1365.                 event.preventDefault();
  1366.                 \$form = \$('#form1');
  1367.                 \$.ajax({
  1368.                     url: \$form.attr('action'),
  1369.                     type: \$form.attr('method'),
  1370.                     data: \$form.serialize(),
  1371.                     dataType: 'json',
  1372.                     beforeSend: function(xhr, settings) {
  1373.                         // Buttonを無効にする
  1374.                         \$('.add-cart').prop('disabled', true);
  1375.                     }
  1376.                 }).done(function(data) {
  1377.                     // レスポンス内のメッセージをalertで表示
  1378.                     \$.each(data.messages, function() {
  1379.                         \$('#ec-modal-header').text(this);
  1380.                     });
  1381.                     \$('.ec-modal').show()
  1382.                     // カートブロックを更新する
  1383.                     \$.ajax({
  1384.                         url: \"{{ url('block_cart') }}\",
  1385.                         type: 'GET',
  1386.                         dataType: 'html'
  1387.                     }).done(function(html) {
  1388.                         //\$('.ec-headerRole__cart').html(html);
  1389.                         \$('.ec-cartNavi__detail').html(html);
  1390.                     });
  1391.                 }).fail(function(data) {
  1392.                     alert('{{ 'カートへの追加に失敗しました。'|trans }}');
  1393.                 }).always(function(data) {
  1394.                     // Buttonを有効にする
  1395.                     \$('.add-cart').prop('disabled', false);
  1396.                 });
  1397.             });
  1398.         });
  1399.         \$('.ec-modal-wrap').on('click', function(e) {
  1400.             // モーダル内の処理は外側にバブリングさせない
  1401.             e.stopPropagation();
  1402.         });
  1403.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  1404.             \$('.ec-modal').hide()
  1405.         });
  1406.     </script>
  1407.     <script type=\"application/ld+json\">
  1408.     {
  1409.         \"@context\": \"https://schema.org/\",
  1410.         \"@type\": \"Product\",
  1411.         \"name\": \"{{ Product.name }}\",
  1412.         \"image\": [
  1413.             {% for img in Product.ProductImage %}
  1414.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(img, 'save_image') }}\"{% if not loop.last %},{% endif %}
  1415.             {% else %}
  1416.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(''|no_image_product, 'save_image') }}\"
  1417.             {% endfor %}
  1418.         ],
  1419.         \"description\": \"{{ Product.description_list | default(Product.description_detail) | replace({'\\n': '', '\\r': ''}) | slice(0,300) }}\",
  1420.         {% if Product.code_min %}
  1421.         \"sku\": \"{{ Product.code_min }}\",
  1422.         {% endif %}
  1423.         \"offers\": {
  1424.             \"@type\": \"Offer\",
  1425.             \"url\": \"{{ url('product_detail', {'id': Product.id}) }}\",
  1426.             \"priceCurrency\": \"{{ eccube_config.currency }}\",
  1427.             \"price\": {{ Product.getPrice02IncTaxMin ? Product.getPrice02IncTaxMin : 0}},
  1428.             \"availability\": \"{{ Product.stock_find ? \"InStock\" : \"OutOfStock\" }}\"
  1429.         }
  1430.     }
  1431.     </script>
  1432.     {# JEIA #}
  1433.     {# Drift(画像ルーペ拡大表示ライブラリ) Drift用CSSは「_14.4.product_zoom.scss」に含めています #}
  1434.     <script src=\"{{ asset('assets/js/drift/Drift.min.js') }}\"></script>
  1435.     {# Luminous(画像ポップアップ拡大表示ライブラリ) Luminous用CSSは「_14.4.product_zoom.scss」に含めています #}
  1436.     <script src=\"{{ asset('assets/js/luminous/Luminous.min.js') }}\"></script>
  1437.     <script>
  1438.         //------------------------------
  1439.         // 商品ビジュアル(slick使用)
  1440.         //------------------------------
  1441.         // slick適用コンテナ
  1442.         var \$ecSlickContainer = \$( '.ec-productVisualMain .ec-slickContainer' );
  1443.         // キャプションの準備
  1444.         /** 商品詳細ページのslickアイテムは動的に出力されますのでキャプションを入れられませんが、
  1445.          * フリーエリア内にてキャプション要素を記述しておき、javascirptで各キャプションを各画像アイテム内に挿入させます。
  1446.          * ※EC-CUBE4.2.0ではフリーエリアに記述したHTMLがサニタイズ(data属性が削除)されてしまい、この機能が動作しませんのでコメントアウトします。
  1447.          */
  1448.         /*
  1449.         var \$visualCaption = \$( '.visual_caption' );// キャプション要素ラッパー
  1450.         \$visualCaption.find( '.caption' ).each(function(){
  1451.             var \$this = \$(this);
  1452.             // index 1つ目の画像用キャプションは「data-caption=\"1\"」としていますので、-1してindex値にします
  1453.             var _index = parseInt( \$this.data('caption'),10 ) - 1;
  1454.             // 該当slickアイテム
  1455.             var \$slideItem = \$ecSlickContainer.find( '.slide-item' ).eq( _index );
  1456.             if ( \$slideItem.length ) {
  1457.                 // 該当slickアイテムにキャプションを挿入
  1458.                 \$slideItem.append(\$this);
  1459.             } else {
  1460.                 // 該当slickアイテムが存在しない場合はキャプションを破棄します
  1461.                 \$this.remove();
  1462.             }
  1463.         });
  1464.         */
  1465.         // slick準備完了時の処理
  1466.         \$ecSlickContainer.on('init', function(){
  1467.             setTimeout(function(){
  1468.                 //
  1469.             }, 0);
  1470.         });
  1471.         // slick適用
  1472.         \$ecSlickContainer.slick({
  1473.             fade: true,
  1474.             speed: 600,
  1475.             dots: false,
  1476.             arrows: true,
  1477.             prevArrow: '<div class=\"slick-prev\"><i class=\"jeiafont jeia-arrow-left\"></i></div>',
  1478.             nextArrow: '<div class=\"slick-next\"><i class=\"jeiafont jeia-arrow\"></i></div>',
  1479.             asNavFor: '.ec-productVisualNav.desktop',
  1480.             responsive: [
  1481.                 {
  1482.                     breakpoint: 768,//768px未満(スマホ時)
  1483.                     settings: {
  1484.                         fade: false,
  1485.                         infinit: true
  1486.                     }
  1487.                 }
  1488.             ]
  1489.         });
  1490.         // ビジュアルナビ(デスクトップ・タブレット用:縦スライド)
  1491.         var \$visualNavDesktop = \$( '.ec-productVisualNav.desktop' );
  1492.         \$visualNavDesktop.slick({
  1493.             asNavFor: '.ec-productVisualMain .ec-slickContainer',
  1494.             vertical: true,
  1495.             verticalSwiping: true,
  1496.             slidesToShow: 5,
  1497.             slidesToScroll: 1,
  1498.             //swipeToSlide: true,// ※verticalでは効かない様子
  1499.             focusOnSelect: true,
  1500.             speed: 600,
  1501.             arrows: true,
  1502.             prevArrow: '<div class=\"slick-prev\"><i class=\"jeiafont jeia-arrow\"></i></div>',
  1503.             nextArrow: '<div class=\"slick-next\"><i class=\"jeiafont jeia-arrow\"></i></div>'
  1504.         });
  1505.         // ビジュアルナビの高さをメインビジュアルの高さと揃えます(デスクトップ・タブレット時)
  1506.         // これは見た目の調整と、ナビ送りのnextボタンの配置を正しくする目的もあります
  1507.         if ( window.innerWidth >= 768 ) {
  1508.             // slick生成が完了してから実行します。イベント「slick_all_readiness」はjeia_function.jsによってslick生成完了後に発火されます。
  1509.             \$(window).on('slick_all_readiness jeia_resize', function(){
  1510.                 var _height = \$ecSlickContainer.height();
  1511.                 // ビジュアルナビの高さを適用
  1512.                 \$visualNavDesktop.height( _height );
  1513.                 // ブラウザのリサイズ時に.slick-listの高さが追随しない事があるのでこちらも高さを揃えます
  1514.                 \$visualNavDesktop.find( '.slick-list' ).height( _height );
  1515.             });
  1516.         }
  1517.         // ビジュアルナビ(スマホ用)
  1518.         var \$productRoleVisual =  \$( '.ec-productRole__visual' );// ※ビジュアル画像拡大機能でもこの取得要素を使います
  1519.         var \$visualNavSphone =    \$( '.ec-productVisualNav.sphone' );// ビジュアルナビ(スマホ用)
  1520.         var \$sideInNavToggleBtn = \$( '.sideInNavToggleBtn' );// ビジュアルナビ開閉ボタン
  1521.         // ビジュアルナビ(スマホ)開閉ボタン
  1522.         \$sideInNavToggleBtn.on('click', function(){
  1523.             // 開状態となるclassをON/OFF
  1524.             \$productRoleVisual.toggleClass( 'is-navOpen' );
  1525.         });
  1526.         // ビジュアルナビ(スマホ)サムネイルタップでメインビジュアル画像を切替え
  1527.         \$visualNavSphone.on('click', '.slideThumb', function() {
  1528.             var index = \$(this).attr( 'data-index' );
  1529.             \$ecSlickContainer.slick( 'slickGoTo', index, false );// slickGoTo: indexで指定したスライドへ移動
  1530.             // ページ上部にスクロールする処理を入れておきます(ページトップボタンのイベントを発火)
  1531.             \$( '.ec-blockTopBtn' ).trigger( 'click' );
  1532.             // ナビをCLOSE
  1533.             \$productRoleVisual.removeClass( 'is-navOpen' );
  1534.         });
  1535.         // サムネイル以外をタップした場合はナビをCLOSE
  1536.         \$visualNavSphone.on('click', function() {
  1537.             // ナビをCLOSE
  1538.             \$productRoleVisual.removeClass( 'is-navOpen' );
  1539.         });
  1540.         // スライド切り替え完了後のイベント(開閉ボタンのカレント値を更新)
  1541.         \$ecSlickContainer.on('afterChange', function(e, slick, currentSlide){
  1542.             \$sideInNavToggleBtn.find( '.currentNum' ).text( currentSlide + 1 );
  1543.         });
  1544.         //------------------------------
  1545.         // ビジュアル画像 ルーペ拡大表示(Drift)&ポップアップ拡大表示(Luminous)
  1546.         //------------------------------
  1547.         // ・Drift
  1548.         // ルーペ拡大表示には「Drift」を使用しています(Drift was made by imgix.)
  1549.         // https://github.com/imgix/drift
  1550.         //------------------------------
  1551.         // ・Luminous
  1552.         // ポップアップ拡大表示には「Luminous」を使用しています(Luminous was made by imgix.)
  1553.         // https://github.com/imgix/luminous
  1554.         //------------------------------
  1555.         // 商品ビジュアルの拡大機能ON/OFF
  1556.         var visual_loupe = Boolean( {{ visual_options.loupe }} );// ルーペ拡大
  1557.         var visual_popup = Boolean( {{ visual_options.popup }} );// ポップアップ拡大
  1558.         // slick生成が完了してから実行します。イベント「slick_all_readiness」はjeia_function.jsによってslick生成完了後に発火されます。
  1559.         \$(window).on('slick_all_readiness', function(){
  1560.             // ルーペ拡大表示
  1561.             // 画像ズームはデスクトップ・タブレット時のみとします(スマホではあまり実用的ではないと思われますので)
  1562.             if ( visual_loupe && window.innerWidth >= 768 ) {
  1563.                 // 拡大表示パネルの大きさを決めます(リサイズ時も算出し直します)
  1564.                 \$(window).on('on_pane_size jeia_resize', function(){
  1565.                     // パネル表示の基点(サムネイル枠の左端)
  1566.                     var pane_origin = \$(' .ec-productVisualNav' ).offset().left;
  1567.                     // パネル幅 →ブラウザ幅から表示基点を引いて(スクロールバー分の幅も調整)、パネル領域を広く設定
  1568.                     var pane_w = window.innerWidth - pane_origin - 50;
  1569.                     // パネル高さ →ビジュアル上位置からブラウザ下まで、少しだけ余白を差し引き
  1570.                     var pane_h = \$(window).height() - \$productRoleVisual.offset().top - 50;
  1571.                     \$( '.drift-pane' ).css({
  1572.                         'width':  pane_w,
  1573.                         'height': pane_h,
  1574.                         'left':   \$( '.ec-productVisualMain' ).width() + 1// メインビジュアルの右端 + 余白
  1575.                     });
  1576.                 }).trigger('on_pane_size');
  1577.                 // メインビジュアル ルーペ拡大表示(ライブラリ「Drift」)
  1578.                 var pane = document.querySelector( '.drift-pane' );
  1579.                 \$( '.drift-img' ).each(function(){
  1580.                     new Drift(this, {
  1581.                         paneContainer:  pane,
  1582.                         inlinePane:     1279,//1280px以上でパネル表示、それ未満はルーペ表示
  1583.                         containInline:  false,// ルーペを画像の端からはみ出させない場合はtrue
  1584.                         inlineOffsetY:  -85,
  1585.                         touchDelay:     300
  1586.                     });
  1587.                 })
  1588.             }
  1589.             // ポップアップ拡大表示
  1590.             // 画像ポップアップはデスクトップ・タブレット時のみとします(スマホではあまり実用的ではないと思われますので)
  1591.             if ( visual_popup && window.innerWidth >= 768 ) {
  1592.                 new LuminousGallery(document.querySelectorAll( '.luminous-gallery' ));
  1593.             } else {
  1594.                 // ポップアップ拡大を使用しない →画像がクリックされてもa要素が動作しないようにイベントを組んでおきます
  1595.                 \$productRoleVisual.find( '.luminous-gallery' ).on('click', function(){
  1596.                     return false;
  1597.                 });
  1598.             }
  1599.         });
  1600.         // どちらの拡大機能も使用しない場合はカーソルを矢印に戻しておきます(通常はCSS側でzoom-inにしています)
  1601.         if ( !visual_loupe && !visual_popup ) {
  1602.             \$productRoleVisual.find( '.slide-item > a' ).css( 'cursor', 'default' );
  1603.         }
  1604.         //------------------------------
  1605.         // お気に入り処理
  1606.         //------------------------------
  1607.         /* 当テンプレートではお気に入りボタンをカートボタンの横に配置するデザインとなっておりますが、
  1608.             * このエリアはカートインのform要素領域の中に入っていますので、お気に入り追加用formとボタンとを分離させ、
  1609.             * ボタンをカート横に配置し、ボタンクリック時に当スクリプトお気に入りフォーム送信を発生させています。
  1610.             */
  1611.         \$( '#favorite' ).on('click', function(e){
  1612.             e.preventDefault();
  1613.             \$( '#form_favorite' ).submit();
  1614.         });
  1615.         //------------------------------
  1616.         // シェアボタン(サブウィンドウ表示)
  1617.         //------------------------------
  1618.         \$( '.shareBtn' ).on('click', function(){
  1619.             // ウィンドウを開かないタイプはスルー
  1620.             if ( \$(this).hasClass( 'no-window' ) ) {
  1621.                 return true;
  1622.             }
  1623.             var this_url = \$(this).attr( 'href' ) + location.href;
  1624.             window.open( this_url, 'sns_win', 'width=650, height=470, personalbar=0, toolbar=0, scrollbars=1, sizable=1' );
  1625.             return false;
  1626.         });
  1627.         //------------------------------
  1628.         // フリーエリア:タブ切り替えコンテンツ
  1629.         //------------------------------
  1630.         /* フリーエリア内にコードを記述することでタブ切り替えコンテンツを実装します。
  1631.          * タブ切り替えが不要な場合は当スクリプトを削除してください。
  1632.          * ※EC-CUBE4.2.0ではフリーエリアに記述したHTMLがサニタイズ(data属性が削除)されてしまい、この機能が動作しませんのでコメントアウトします。
  1633.          */
  1634.         /*
  1635.         var \$ecProductDetailTab =        \$( '.ec-productDetailTab' );
  1636.         var \$ecProductDetailTabNav =     \$ecProductDetailTab.find( '.ec-productDetailTab__nav' )
  1637.         var \$ecProductDetailTabContent = \$ecProductDetailTab.find( '.ec-productDetailTab__content' );
  1638.         \$ecProductDetailTabNav.on('click', 'li', function(){
  1639.             var \$this = \$(this);
  1640.             var _index = '.tab-' + \$this.data('tab');
  1641.             // コンテンツのアクティブ化
  1642.             \$ecProductDetailTabContent.filter(_index).addClass('is-active').siblings().removeClass('is-active');
  1643.             // タブのアクティブ化
  1644.             \$this.addClass('is-active').siblings().removeClass('is-active');
  1645.         });
  1646.         // 初回は1番目のタブコンテンツを表示
  1647.         \$ecProductDetailTabNav.find('li:eq(0)').trigger('click');
  1648.         */
  1649.     </script>
  1650.     {# 常駐カートイン #}
  1651.     {% if clone_cartin %}
  1652.     <script src=\"{{ asset('assets/js/clone_cartin.js') }}\"></script>
  1653.     {% endif %}
  1654. \t<script src=\"//unpkg.com/flatpickr\"></script>
  1655. \t<!-- 日本語の言語ファイル -->
  1656. \t<script src=\"//unpkg.com/flatpickr/dist/l10n/ja.js\"></script>
  1657. \t<script>
  1658. \t\t//Googleカレンダー予約状況
  1659. \t\treservedInfo={{ events|raw }};
  1660. /*
  1661. \t\tfor (let key in reservedInfo) {
  1662. \t\t  console.log('key:' + key);
  1663. \t\t  console.log(reservedInfo[key].length);
  1664. \t\t}
  1665. */
  1666. \t\tcalendar_start_date=\"{{ calendar_start_date }}\";
  1667. \t</script>
  1668. \t<script src=\"{{ asset('assets/js/hotelinfo].js') }}?{{ env('CSS_PARAM') }}\"></script>
  1669. \t<script src=\"{{ asset('assets/js/rental_common.js') }}?{{ env('CSS_PARAM') }}\"></script>
  1670. \t<script src=\"{{ asset('assets/js/drive_detail.js') }}?{{ env('CSS_PARAM') }}\"></script>
  1671. {% endblock %}
  1672. {% block main %}
  1673. {% set carflg = false %}
  1674. {% for ProductCategory in Product.ProductCategories %}
  1675.      {% if 7== ProductCategory.Category.id %}
  1676. \t\t{% set carflg = true %}
  1677. \t{% endif %}
  1678. {% endfor %}
  1679.     <div class=\"ec-productRole\">
  1680.         <div class=\"ec-productRole__grid\">
  1681.             <div class=\"ec-productRole__gridCell cellLeft\">
  1682.                 {# 商品ビジュアル表示 #}
  1683.                 <div class=\"ec-productRole__visual\">
  1684.                     {# メインビジュアル格納枠 #}
  1685.                     <div class=\"ec-productVisualMain\">
  1686.                         {# slick適用要素 #}
  1687.                         <div class=\"ec-slickContainer\">
  1688.     {% for ProductImage in Product.ProductImage %}
  1689.                             <div class=\"slide-item\">
  1690.                                 <a class=\"luminous-gallery\" data-iteration=\"<!--{\$num}-->\" href=\"{{ asset(ProductImage, 'save_image') }}\" target=\"_blank\">
  1691.                                     <img class=\"drift-img\" src=\"{{ asset(ProductImage, 'save_image') }}\" data-zoom=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}  {{ loop.first ? Product.search_word : '' }}\" {% if loop.index > 1 %} loading=\"lazy\"{% endif %}>
  1692.                                 </a>
  1693.                             </div>
  1694.     {% else %}
  1695.                             <div class=\"slide-item\"><img src=\"{{ asset(''|no_image_product, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}  {{ loop.first ? Product.search_word : '' }}\"></div>
  1696.     {% endfor %}
  1697.                         </div>
  1698.                     </div>
  1699. {#
  1700.                     ----------------------------------------------------------------------------------
  1701.                     デスクトップ・タブレット時はビジュアルナビをメインビジュアルの横に配置して縦スライド機能をつけています。
  1702.                     スマホ時はスライド機能は使わずに展開ボタンにより一覧ビューがサイドインする動作になります。
  1703.                     レスポンシブにおいて、スライド機能のON/OFFやレイアウト変更はロジックが煩雑になるかと思いましたので、
  1704.                     ビジュアルナビは、あらかじめデスクトップ用のナビと、モバイル用のナビをそれぞれ組み込んでおきレスポンシブで表示を切り替えています。
  1705.                     ----------------------------------------------------------------------------------
  1706. #}
  1707.                     {# ビジュアルナビ(デスクトップ・タブレット用) #}
  1708.                     <div class=\"ec-productVisualNav desktop\">
  1709.     {% for ProductImage in Product.ProductImage %}
  1710.                         {# 当テンプレートの構造上、loading=\"lazy\"は入れないほうがいいかも?
  1711.                         <div class=\"slideThumb\" data-index=\"{{ loop.index0 }}\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"\" loading=\"lazy\"></div>
  1712.                         #}
  1713.                         <div class=\"slideThumb\" data-index=\"{{ loop.index0 }}\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"\"></div>
  1714.     {% endfor %}
  1715.                     </div>
  1716.                     {# ビジュアルナビ(スマホ用) #}
  1717.                     <div class=\"ec-productVisualNav sphone\">
  1718.                         <div class=\"sideInNavShelf\">
  1719.         {% for ProductImage in Product.ProductImage %}
  1720.                             <div class=\"slideThumb\" data-index=\"{{ loop.index0 }}\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"\" loading=\"lazy\"></div>
  1721.         {% endfor %}
  1722.                         </div>
  1723.                     </div>
  1724.                     {# ビジュアルナビ(スマホ用)開閉ボタン #}
  1725.                     <div class=\"sideInNavToggleBtn\">
  1726.                         <i class=\"jeiafont jeia-grid\"></i>
  1727.                         <span class=\"currentNum\">1</span>
  1728.                         <span class=\"ceparate\">/</span>
  1729.                         <span class=\"totalNum\">{{ Product.ProductImage|length }}</span>
  1730.                     </div>
  1731.                 </div>
  1732.                 {# 商品画像ルーペ拡大表示用パネル(デスクトップ時のみ) #}
  1733.                 <div class=\"drift-pane\"></div>
  1734. \t    {% if Product.id==16 %}
  1735. \t\t\t\t<video poster=\"/awd/html/upload/save_image/poster_aquariva34.webp\" controls=\"\" muted=\"\" width=\"100%\" src=\"/awd/html/upload/save_image/IMG_5774.mp4\" style=\"margin-top: 10px;\"></video>
  1736.         {% endif %}
  1737. \t\t\t\t<div class=\"ec-productRole__description pcOnly\">
  1738.                 \t{{ Product.description_detail|raw|nl2br }}
  1739.                 </div>
  1740.             </div>
  1741.             <div class=\"ec-productRole__gridCell cellRight\">
  1742.                 {# 商品プロフィール #}
  1743.                 <div class=\"ec-productRole__profile\">
  1744. {#
  1745. {% set price = Product.item16 | json_decode %}
  1746. {{ dump(price) }}
  1747. {{ dump(price.price|number_format) }}
  1748. {{ dump(price.km) }}
  1749. #}
  1750.                     {# 商品タイトル #}
  1751.                     <div class=\"ec-productRole__title\">
  1752.                         <h1>{{ Product.name }}</h1>
  1753.                     </div>
  1754.                     {# 通常価格 #}
  1755. {#
  1756.                     <div class=\"ec-productRole__priceRegular\">
  1757.                         <div class=\"ec-price\">
  1758.                             <span class=\"ec-price__label\">通常価格</span>
  1759.     {% if Product.hasProductClass -%}
  1760.         {% if Product.getPrice01Min is not null and Product.getPrice01IncTaxMin == Product.getPrice01IncTaxMax %}
  1761.                             <span class=\"ec-price__price price01-default\">>&yen;{{ Product.getPrice01IncTaxMin|number_format }}~</span>
  1762.         {% elseif Product.getPrice01Min is not null and Product.getPrice01Max is not null %}
  1763.                             <span class=\"ec-price__price price01-default\">{{ Product.getPrice01IncTaxMin|number_format }} ~ {{ Product.getPrice01IncTaxMax|number_format }}円</span>
  1764.         {% endif %}
  1765.     {% else %}
  1766.         {% if Product.getPrice01Max is not null %}
  1767.                             <span class=\"ec-price__price price01-default\">&yen;{{ Product.getPrice01IncTaxMin|number_format }}~</span>
  1768.         {% endif %}
  1769.     {% endif %}
  1770.                             <span class=\"ec-price__tax\">({{ '税込'|trans }})</span>
  1771.                         </div>
  1772.                     </div>
  1773. #}
  1774.                     {# 販売価格 #}
  1775.                     <div class=\"ec-productRole__price\">
  1776.                         <div class=\"ec-price\">
  1777. {% if carflg %}
  1778. {% set course = Product.item14 | json_decode %}
  1779. {% else %}
  1780.                             <span class=\"ec-price__price\">Price ASK</span>
  1781. {% endif %}
  1782.                         </div>
  1783.                     </div>
  1784.                     {# 詳細コメント #}
  1785.                     <div class=\"ec-productRole__description spOnly\">
  1786.                         {{ Product.description_detail|raw|nl2br }}
  1787.                     </div>
  1788. {% if carflg %}
  1789.                     <div class=\"ec-productRole__description\">
  1790. \t\t\t\t\t\t<details class=\"accordion-006 spec\" open>
  1791. \t\t\t\t\t\t\t<summary><h3>Car Experience Price (JPN)</h3></summary>
  1792. \t{% if Product.id!=40 and Product.id!=57 and Product.id!=48 and Product.id!=49 %}
  1793. \t\t\t\t\t\t\t<ul class=\"spec__item\">
  1794. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1795. \t\t\t\t\t\t\t\t  <span>1hour  </span>&yen {{ course.20|number_format }}</li>
  1796. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1797. \t\t\t\t\t\t\t\t  <span>2hour  </span>&yen {{ course.40|number_format }}</li>
  1798. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1799. \t\t\t\t\t\t\t\t  <span>3hour  </span>&yen {{ course.80|number_format }}</li>
  1800. \t\t\t\t\t\t\t</ul>
  1801. \t{% else %}
  1802. \t\t\t\t\t\t\t<ul class=\"spec__item\">
  1803. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1804. \t\t\t\t\t\t\t\t  <span>1hour  </span>ASK</li>
  1805. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1806. \t\t\t\t\t\t\t\t  <span>2hour  </span>ASK</li>
  1807. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1808. \t\t\t\t\t\t\t\t  <span>3hour  </span>ASK</li>
  1809. \t\t\t\t\t\t\t</ul>
  1810. \t{% endif %}
  1811. \t\t\t\t\t\t</details>
  1812. \t\t\t\t\t\t<details class=\"accordion-006\">
  1813. \t\t\t\t\t\t\t<summary>SPEC</summary>
  1814. \t\t\t\t\t\t\t<ul class=\"spec__item\">
  1815. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1816. \t\t\t\t\t\t\t\t  <span>Year    </span>{{ Product.item1|trans }}</li>
  1817. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1818. \t\t\t\t\t\t\t\t  <span>HP         </span>{{ Product.item21|trans }}</li>
  1819. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1820. \t\t\t\t\t\t\t\t  <span>Steering Wheel </span>{{ Product.item2|trans }}</li>
  1821. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1822. \t\t\t\t\t\t\t\t  <span>Seater   </span>{{ Product.item3|trans }}</li>
  1823. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1824. \t\t\t\t\t\t\t\t  <span>Doors   </span>{{ Product.item4|trans }}</li>
  1825. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1826. \t\t\t\t\t\t\t\t  <span>Mission </span>{{ Product.item5|trans }}</li>
  1827. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1828. \t\t\t\t\t\t\t\t  <span>Fuel   </span>{{ Product.item6|trans }}</li>
  1829. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1830. \t\t\t\t\t\t\t\t  <span>Drive type </span>{{ Product.item7|trans }}</li>
  1831. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1832. \t\t\t\t\t\t\t\t  <span>Displacement  </span>{{ Product.item8|number_format }}cc        </li>
  1833. \t\t\t\t\t\t\t\t<li class=\"spec__row\">
  1834. \t\t\t\t\t\t\t\t  <span>Equipment   </span>{{ Product.item9|trans }}</li>
  1835. \t\t\t\t\t\t\t</ul>
  1836. \t\t\t\t\t\t</details>
  1837.                     </div>
  1838. {% endif %}
  1839. \t\t<form name=\"reserveForm\" action=\"{{ url('drive_reserved') }}\" method=\"post\" class=\"reserveForm\">
  1840. \t\t\t<input type=\"hidden\" name=\"calendarId\" id=\"calendarId\" value=\"{{ Product.item13|trans }}\">
  1841. \t\t\t<input type=\"hidden\" name=\"carname\" value=\"{{ Product.name }}\">
  1842. \t\t\t<input type=\"hidden\" name=\"referralhotel\" class=\"referralhotel\" value=\"\">
  1843.             <p class=\"ec-para-normal\">
  1844.             Select your date, time, and preferred prefix menu, then provide your information. After submission, your temporary reservation will be secured. We look forward to your booking.
  1845.             </p>
  1846.             <p class=\"reserevedError\" style=\"display:none;\">Reservation information is not set correctly</p>
  1847. \t\t\t<div class=\"Form-Item name\">
  1848. \t\t\t\t<p class=\"Form-Item-Label\">Date</p>
  1849. \t\t\t\t<input name=\"date\" type=\"text\" class=\"Form-Item-Input flatpickr flatpickr-input date\" placeholder=\"2024-01-01\" id=\"myCal\" value=\"\">
  1850. \t\t\t\t<span class=\"Form-Item-Error date\" style=\"display: none;\">*Please select</span>
  1851. \t\t\t</div>
  1852. \t\t\t<div class=\"Form-Item\">
  1853. \t\t\t\t<p class=\"Form-Item-Label block-line\">Start Time</p>
  1854. \t\t        <select name=\"starttime\" class=\"Form-Item-Input\">
  1855. \t\t\t\t\t<option value=\"8:00\">8:00</option>
  1856. \t\t\t\t\t<option value=\"8:30\">8:30</option>
  1857. \t\t\t\t\t<option value=\"9:00\">9:00</option>
  1858. \t\t\t\t\t<option value=\"9:30\">9:30</option>
  1859. \t\t\t\t\t<option value=\"10:00\" selected>10:00</option>
  1860. \t\t\t\t\t<option value=\"10:30\">10:30</option>
  1861. \t\t\t\t\t<option value=\"11:00\">11:00</option>
  1862. \t\t\t\t\t<option value=\"11:30\">11:30</option>
  1863. \t\t\t\t\t<option value=\"12:00\">12:00</option>
  1864. \t\t\t\t\t<option value=\"12:30\">12:30</option>
  1865. \t\t\t\t\t<option value=\"13:00\">13:00</option>
  1866. \t\t\t\t\t<option value=\"13:30\">13:30</option>
  1867. \t\t\t\t\t<option value=\"14:00\">14:00</option>
  1868. \t\t\t\t\t<option value=\"14:30\">14:30</option>
  1869. \t\t\t\t\t<option value=\"15:00\">15:00</option>
  1870. \t\t\t\t\t<option value=\"15:30\">15:30</option>
  1871. \t\t\t\t\t<option value=\"16:00\">16:00</option>
  1872. \t\t\t\t\t<option value=\"16:30\">16:30</option>
  1873. \t\t\t\t\t<option value=\"17:00\">17:00</option>
  1874. \t\t\t\t\t<option value=\"17:30\">17:30</option>
  1875. \t\t\t\t\t<option value=\"18:00\">18:00</option>
  1876. \t\t\t\t\t<option value=\"18:30\">18:30</option>
  1877. \t\t\t\t\t<option value=\"19:00\">19:00</option>
  1878. \t\t\t\t\t<option value=\"19:30\">19:30</option>
  1879. \t\t\t\t</select>
  1880. \t\t\t\t<span class=\"Form-Item-Error starttime\" style=\"display: none;\">*Please select</span>
  1881. \t\t\t</div>
  1882. {#
  1883. \t\t\t<div class=\"timelist\">
  1884. \t\t\t\t<input type=\"radio\" name=\"time\" class=\"time\" value=\"10:00\" id=\"10\" >
  1885. \t\t\t\t<label for=\"10\" class=\"label\">10:00</label>
  1886. \t\t\t\t<input type=\"radio\" name=\"time\" class=\"time\" value=\"12:00\" id=\"12\">
  1887. \t\t\t\t<label for=\"12\" class=\"label\">12:00</label>
  1888. \t\t\t\t<input type=\"radio\" name=\"time\" class=\"time\" value=\"14:00\" id=\"14\">
  1889. \t\t\t\t<label for=\"14\" class=\"label\">14:00</label>
  1890. \t\t\t\t<input type=\"radio\" name=\"time\" class=\"time\" value=\"16:00\" id=\"16\">
  1891. \t\t\t\t<label for=\"16\" class=\"label\">16:00</label>
  1892. \t\t\t\t<span class=\"Form-Item-Error timelist\" style=\"display: none;\">*Please select</span>
  1893. \t\t\t</div>
  1894. #}
  1895. \t\t\t<div class=\"Form-Item name\">
  1896. \t\t\t\t<p class=\"Form-Item-Label\">Car Experience time</p>
  1897. \t\t\t\t<div class=\"timelist\">
  1898. \t\t\t\t\t<input type=\"radio\" name=\"time\" class=\"time\" value=\"1\" id=\"1H\" >
  1899. \t\t\t\t\t<label for=\"1H\" class=\"label\">1H</label>
  1900. \t\t\t\t\t<input type=\"radio\" name=\"time\" class=\"time\" value=\"2\" id=\"2H\" >
  1901. \t\t\t\t\t<label for=\"2H\" class=\"label\">2H</label>
  1902. \t\t\t\t\t<input type=\"radio\" name=\"time\" class=\"time\" value=\"3\" id=\"3H\">
  1903. \t\t\t\t\t<label for=\"3H\" class=\"label\">3H</label>
  1904. \t\t\t\t</div>
  1905. \t\t\t\t<span class=\"Form-Item-Error timelist\" style=\"display: none;\">*Please select</span>
  1906. \t\t\t</div>
  1907. \t\t\t<div class=\"Form-Item\">
  1908. \t\t\t\t<p class=\"Form-Item-Label block-line\">Number of Participants</p>
  1909. \t\t        <select name=\"participants\" class=\"Form-Item-Input participants\">
  1910. \t\t\t\t\t<option value=\"1\">1</option>
  1911. \t\t\t\t\t<option value=\"2\">2</option>
  1912. \t\t\t\t\t<option value=\"3\">3</option>
  1913. \t\t\t\t\t<option value=\"4\">4</option>
  1914. \t\t\t\t\t<option value=\"5\">5</option>
  1915. \t\t\t\t\t<option value=\"6\">6</option>
  1916. \t\t\t\t\t<option value=\"7\">7</option>
  1917. \t\t\t\t\t<option value=\"8\">8</option>
  1918. \t\t\t\t\t<option value=\"9\">9</option>
  1919. \t\t\t\t\t<option value=\"10\">10</option>
  1920. \t\t\t\t</select>
  1921. \t\t\t</div>
  1922. \t\t\t<div class=\"Form-Item\">
  1923. \t\t\t\t<p class=\"Form-Item-Label block-line\">Desired Prefix Menu</p>
  1924. \t\t\t\t<span class=\"note\">*Please refer to the <a class=\"\" href=\"/awd/drive#prefixmenu\" target=\"_blank\">Desired Prefix Menu.</a></span>
  1925. \t\t        <select name=\"shootinglocation\" class=\"Form-Item-Input shootinglocation\">
  1926. \t\t\t\t\t<option value=\"1.Heritage\">1.Heritage</option>
  1927. \t\t\t\t\t<option value=\"2.Metropolis\">2.Metropolis</option>
  1928. \t\t\t\t\t<option value=\"3.Nature Escape\">3.Nature Escape</option>
  1929. \t\t\t\t\t<option value=\"\">4.Other</option>
  1930. \t\t\t\t</select>
  1931. \t\t\t\t<div class=\"location-note\">
  1932. \t\t\t\t\t<input name=\"shootinglocationname\" type=\"text\" class=\"Form-Item-Input shootinglocationname\" placeholder=\"Please enter your Desired location\" value=\"\" style=\"display: none;\">
  1933. \t\t\t\t</div>
  1934. \t\t\t\t<span class=\"Form-Item-Error shootinglocationname\" style=\"display: none;\">*Please enter</span>
  1935. \t\t\t</div>
  1936. \t\t\t<div class=\"Form-Item\">
  1937. \t\t\t\t<p class=\"Form-Item-Label block-line\">Photo Shoot Option by photographer?</p>
  1938. \t\t\t\t<span class=\"note\">*option price &yen50,000~</span>
  1939. \t\t        <select name=\"option\" class=\"Form-Item-Input participants\">
  1940. \t\t\t\t\t<option value=\"No\">No</option>
  1941. \t\t\t\t\t<option value=\"Yes\">Yes</option>
  1942. \t\t\t\t</select>
  1943. \t\t\t</div>
  1944. \t\t\t<div class=\"Form-Item name\">
  1945. \t\t\t\t<p class=\"Form-Item-Label\">Name</p>
  1946. \t\t\t\t<input name=\"name\" type=\"text\" class=\"Form-Item-Input name\" placeholder=\"John Smith\" value=\"\">
  1947. \t\t\t\t<span class=\"Form-Item-Error name\" style=\"display: none;\">*Please enter</span>
  1948. \t\t\t</div>
  1949. \t\t\t<div class=\"Form-Item name\">
  1950. \t\t\t\t<p class=\"Form-Item-Label\">Country</p>
  1951. \t\t\t\t<input name=\"country\" type=\"text\" class=\"Form-Item-Input country\" placeholder=\"Australia\" value=\"\">
  1952. \t\t\t\t<span class=\"Form-Item-Error country\" style=\"display: none;\">*Please enter</span>
  1953. \t\t\t</div>
  1954. \t\t\t<div class=\"Form-Item email\">
  1955. \t\t\t\t<p class=\"Form-Item-Label\">Mail</p>
  1956. \t\t\t\t<input name=\"email\" type=\"email\" class=\"Form-Item-Input email\" placeholder=\"example@gmail.com\" value=\"\">
  1957. \t\t\t\t<span class=\"Form-Item-Error email\" style=\"display: none;\">*Please enter</span>
  1958. \t\t\t</div>
  1959. \t\t\t<div class=\"Form-Item tel\">
  1960. \t\t\t\t<p class=\"Form-Item-Label\">Tel</p>
  1961. \t\t\t\t<input name=\"tel\" type=\"tel\" class=\"Form-Item-Input tel\" placeholder=\"+810000000000\" value=\"\">
  1962. \t\t\t\t<span class=\"Form-Item-Error tel\" style=\"display: none;\">*Please enter</span>
  1963. \t\t\t</div>
  1964. \t\t\t<div class=\"Form-Item tel\">
  1965. \t\t\t\t<p class=\"Form-Item-Label\">Pickup / DropOff Location</p>
  1966. \t\t\t\t<span class=\"note\">*Pickup/DropOff to SHIBUYA \"Cerulean Tower Tokyu Hotel\", &yen;10,000 discount</span>
  1967. \t\t        <select name=\"pickup_dropoff\" class=\"Form-Item-Input pickup_dropoff\">
  1968. \t\t\t\t\t<option value=\"SHIBUYA\">SHIBUYA</option>
  1969. \t\t\t\t\t<option value=\"other\">Specify pickup and dropout locations.</option>
  1970. \t\t\t\t</select>
  1971.             </div>
  1972. \t\t\t<div class=\"Form-Item\">
  1973. \t\t\t\t<p class=\"Form-Item-Label\">PickUp Location</p>
  1974. \t\t\t\t<input name=\"pickup\" type=\"text\" class=\"Form-Item-Input pickup\" placeholder=\"hotel aman tokyo\" value=\"\">
  1975. \t\t\t\t<span class=\"Form-Item-Error pickup\" style=\"display: none;\">*Please enter</span>
  1976. \t\t\t\t<span class=\"w100 shibuya\">*Cannot enter</span>
  1977. \t\t\t</div>
  1978. \t\t\t<div class=\"Form-Item\">
  1979. \t\t\t\t<p class=\"Form-Item-Label\">DropOff Location</p>
  1980. \t\t\t\t<input name=\"dropoff\" type=\"text\" class=\"Form-Item-Input dropoff\" placeholder=\"hotel aman tokyo\" value=\"\">
  1981. \t\t\t\t<span class=\"Form-Item-Error dropoff\" style=\"display: none;\">*Please enter</span>
  1982. \t\t\t\t<span class=\"w100 shibuya\">*Cannot enter</span>
  1983. \t\t\t</div>
  1984. \t\t\t<div class=\"Form-Item\">
  1985. \t\t\t\t<p class=\"Form-Item-Label\">Comment</p>
  1986. \t\t\t\t<span class=\"note\">*If you have any requests, please enter them.</span>
  1987. \t\t\t\t<textarea rows=\"5\" class=\"Form-Item-Textarea\" name=\"message\"></textarea>
  1988. \t\t\t\t<span class=\"Form-Item-Error\" style=\"display: none;\">*Please enter</span>
  1989. \t\t\t</div>
  1990. \t\t\t<a class=\"ec-shopCollectionBtn submit\" href=\"javascript:void(0)\">Reserve</a>
  1991. \t\t</form>
  1992.                     {# シェアボタン #}
  1993.                     <div class=\"ec-productRole__share\">
  1994.                         <p class=\"shareLabel\">SHARE</p>
  1995.                         <ul class=\"shareBtnList\">
  1996.                         {% spaceless %}
  1997.                             {# Twitter #}
  1998.                             <li>
  1999.                                 <a class=\"shareBtn x-twitter\" href=\"https://twitter.com/share?url=\">
  2000.                                     <i class=\"jeiafont jeia-x-twitter\"></i><span>Twitter</span>
  2001.                                 </a>
  2002.                             </li>
  2003.                             {# Facebook #}
  2004.                             <li>
  2005.                                 <a class=\"shareBtn facebook\" href=\"https://www.facebook.com/sharer/sharer.php?u=\">
  2006.                                     <i class=\"jeiafont jeia-facebook\"></i><span>Facebook シェア</span>
  2007.                                 </a>
  2008.                             </li>
  2009.                             {# LINE #}
  2010.                             <li>
  2011.                                 <a class=\"shareBtn line\" href=\"https://social-plugins.line.me/lineit/share?url=\">
  2012.                                     <i class=\"jeiafont jeia-line2\"></i><span>LINE</span>
  2013.                                 </a>
  2014.                             </li>
  2015.                             {# Pocket #}
  2016.                             <li>
  2017.                                 <a class=\"shareBtn pocket\" href=\"http://getpocket.com/edit?url=\">
  2018.                                     <i class=\"jeiafont jeia-get-pocket\"></i><span>Pocket</span>
  2019.                                 </a>
  2020.                             </li>
  2021.                             {# はてなブックマーク #}
  2022.                             <li>
  2023.                                 <a class=\"shareBtn hatena\" href=\"http://b.hatena.ne.jp/add?mode=confirm&url=\">
  2024.                                     <i class=\"jeiafont jeia-hatenabookmark\"></i><span>はてなブックマーク</span>
  2025.                                 </a>
  2026.                             </li>
  2027.                             {# Pinterest #}
  2028.                             <li>
  2029.                                 <a class=\"shareBtn no-window pinterest\" data-pin-do=\"buttonBookmark\" data-pin-custom=\"true\" data-pin-lang=\"ja\" data-pin-save=\"false\" href=\"//jp.pinterest.com/pin/create/button/\">
  2030.                                     <i class=\"jeiafont jeia-pinterest\"></i><span>Pinterest</span>
  2031.                                 </a>
  2032.                                 <script async defer src=\"//assets.pinterest.com/js/pinit.js\"></script>
  2033.                             </li>
  2034.                         {% endspaceless %}
  2035.                         </ul>
  2036.                     </div>
  2037.                 </div>{# end of .ec-productRole__profile #}
  2038.             </div>{# end of .ec-productRole__gridCell #}
  2039.         </div>{# end of .ec-productRole__grid #}
  2040.     {% if Product.freearea %}
  2041.         <div class=\"ec-productRole__freearea\">
  2042.             {{ include(template_from_string(Product.freearea)) }}
  2043.         </div>
  2044.     {% endif %}
  2045.     </div>{# end of .ec-productRole #}
  2046. {% endblock %}
  2047. ""Drive/detail.twig""/home/giftlife-tokyo/www/stg/awd/app/template/osechi/Drive/detail.twig");
  2048.     }
  2049. }