templates/calculator/index.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}
  3.     Kalkulátor – krok 1 | BO!Reality
  4. {% endblock %}
  5. {% block description %}
  6.     Vyplňte základní údaje o své nemovitosti a během pár minut získáte bezplatnou
  7.     kalkulaci její ceny. Stačí odpovědět na 3 otázky.
  8. {% endblock %}
  9. {% block stylesheets %}
  10. {% endblock %}
  11. {% block body %}
  12.     <div class="modal-wrapper">
  13.         <div class="col modal" data-modal-help="rating">
  14.             <svg class="modal-close-btn">
  15.                 <use xlink:href="#modal-close"></use>
  16.             </svg>
  17.             <p>
  18.                 <strong>Neobyvatelný</strong> - Dům je určený k demolici nebo kompletní
  19.                 rekonstrukci.<br /><br />
  20.                 <strong>Před rekonstrukcí</strong> - Nejméně 25 let zde neproběhla žádná
  21.                 rekonstrukce. Modernizaci si zaslouží interiér i exteriér.<br /><br />
  22.                 <strong>Průměrný</strong> - Dům lze pohodlně využívat, přestože v posledních
  23.                 letech neprošel žádnou rekonstrukcí.<br /><br />
  24.                 <strong>Velmi dobrý</strong> - Dům je po kompletní rekonstrukci.<br /><br />
  25.                 <strong>Novostavba</strong> - Nová nebo téměř nová nemovitost ve skvělém
  26.                 stavu, nabízená prvním majitelem nebo developerem.<br /><br />
  27.                 <strong>Luxusní</strong> - Jsou použity velmi drahé technologie a materiály.
  28.                 Cena by měla být mnohem vyšší než u běžných novostaveb v okolí.
  29.             </p>
  30.         </div>
  31.         <div class="col modal" data-modal-help="construction">
  32.             <svg class="modal-close-btn">
  33.                 <use xlink:href="#modal-close"></use>
  34.             </svg>
  35.             <p>
  36.                 Pokud jste nenašli vyhovující materiál, vyberte který je vlastnostmi
  37.                 nejblíže nebo zvolte možnost "Jiné".
  38.             </p>
  39.         </div>
  40.         <div class="col modal" data-modal-help="floor-area">
  41.             <svg class="modal-close-btn">
  42.                 <use xlink:href="#modal-close"></use>
  43.             </svg>
  44.             <p>
  45.                 <strong>Podlahová plocha</strong> - Zadejte pouze rozlohu užitné (obytné)
  46.                 plochy. Rozloha pozemku a jiných součástí se uvádí v bodech níže.
  47.             </p>
  48.         </div>
  49.         <div class="col modal" data-modal-help="garden-area">
  50.             <svg class="modal-close-btn">
  51.                 <use xlink:href="#modal-close"></use>
  52.             </svg>
  53.             <p>
  54.                 <strong>Plocha pozemku</strong> - Uveďte celkovou plochu pozemku, včetně
  55.                 zastavěných ploch.
  56.             </p>
  57.         </div>
  58.         <div class="col modal" data-modal-help="other-area">
  59.             <svg class="modal-close-btn">
  60.                 <use xlink:href="#modal-close"></use>
  61.             </svg>
  62.             <p>
  63.                 <strong>Jiné</strong> - Sklep, dílna, lodžie nebo jiná součást celkové
  64.                 výměry, kterou jste zatím neuvedli v žádném z předchozích bodů.
  65.             </p>
  66.         </div>
  67.         <div class="col modal" data-modal-help="local-type">
  68.             <svg class="modal-close-btn">
  69.                 <use xlink:href="#modal-close"></use>
  70.             </svg>
  71.             <p>
  72.                 Pokud jste nenašli v nabídce ideální dispozici, vyberte tu, která ji
  73.                 je neblíže, nebo zvolte možnost "Jiná".
  74.             </p>
  75.         </div>
  76.     </div>
  77.     {% if flow.getCurrentStepNumber() == 1 %}
  78.         <div class="container">
  79.             <div class="form-header">
  80.                 <h3>
  81.                     Údaje o nemovitosti
  82.                 </h3>
  83.                 <p>
  84.                     Vyplňte základní údaje o vaší stavbě. V případě nejasností
  85.                     použijte nápovědu vedle otázky.
  86.                 </p>
  87.                 <div class="step-vis">
  88.                     <img src="{{ asset('assets/svg/step1.png') }}" alt="" />
  89.                     <img class="link"
  90.                         src="{{ asset('assets/img/link-disabled.png') }}"
  91.                         alt="" />
  92.                     <img src="{{ asset('assets/svg/step2-inactive.png') }}" alt="" />
  93.                     <img class="link"
  94.                         src="{{ asset('assets/img/link-disabled.png') }}"
  95.                         alt="" />
  96.                     <img src="{{ asset('assets/svg/step3-inactive.png') }}" alt="" />
  97.                 </div>
  98.             </div>
  99.         </div>
  100.     {% endif %}
  101.     {% if flow.getCurrentStepNumber() == 2 %}
  102.         <div class="container col">
  103.             <div class="form-header">
  104.                 <h3>
  105.                     Detailní údaje o nemovitosti
  106.                 </h3>
  107.                 <p>
  108.                     Uveďte doplňující informace o nemovitosti, díky kterým bude náš
  109.                     odhad přesnější. Pokud vám stačí pouze orientační cena, můžete
  110.                     tento krok přeskočit.
  111.                 </p>
  112.                 <div class="step-vis">
  113.                     <img src="{{ asset('assets/svg/step1.png') }}" alt="" />
  114.                     <img class="link"
  115.                         src="{{ asset('assets/img/link-enabled.png') }}"
  116.                         alt="" />
  117.                     <img src="{{ asset('assets/svg/step2-active.png') }}" alt="" />
  118.                     <img class="link"
  119.                         src="{{ asset('assets/img/link-disabled.png') }}"
  120.                         alt="" />
  121.                     <img src="{{ asset('assets/svg/step3-inactive.png') }}" alt="" />
  122.                 </div>
  123.             </div>
  124.         </div>
  125.     {% endif %}
  126.     {% if flow.getCurrentStepNumber() == 3 %}
  127.         <div class="container col">
  128.             <div class="form-header">
  129.                 <h3>
  130.                     Kontaktní údaje
  131.                 </h3>
  132.                 <p>
  133.                     Uveďte kontaktní údaje, na které vám zašleme vypracovaný odhad
  134.                     ceny nemovitosti.
  135.                 </p>
  136.                 <div class="step-vis">
  137.                     <img src="{{ asset('assets/svg/step1.png') }}" alt="" />
  138.                     <img class="link"
  139.                         src="{{ asset('assets/img/link-enabled.png') }}"
  140.                         alt="" />
  141.                     <img src="{{ asset('assets/svg/step2-active.png') }}" alt="" />
  142.                     <img class="link"
  143.                         src="{{ asset('assets/img/link-enabled.png') }}"
  144.                         alt="" />
  145.                     <img src="{{ asset('assets/svg/step3-active.png') }}" alt="" />
  146.                 </div>
  147.             </div>
  148.         </div>
  149.     {% endif %}
  150.     {% if flow.getCurrentStepNumber() == 4 %}
  151.         <div class="container col">
  152.             <div class="form-header">
  153.                 <h4>
  154.                     Kalkulace ceny vaší nemovitosti je dokončená. Za pár minut ve
  155.                     vaší e-mailové schránce přistane vypracovaná kalkulace. Děkujeme
  156.                     za důvěru. V případě jakýchkoliv dotazů se na nás neváhejte
  157.                     obrátit na XY.
  158.                 </h4>
  159.             </div>
  160.         </div>
  161.     {% endif %}
  162.     <div class="container col">
  163.         <div class="form-outer-wrapper">
  164.             {{ form_start(form) }}
  165.             {{ form_errors(form) }}
  166.             {% if flow.getCurrentStepNumber() == 1 %}
  167.                 <div class="form-wrapper">
  168.                     <div>
  169.                         {{ form_label(form.property_type) }}
  170.                         <div class="radios-wrapper">
  171.                             {% for child in form.property_type %}
  172.                                 <label class="radio w-33">
  173.                                     <input type="radio"
  174.                                         id="{{ child.vars.id }}"
  175.                                         required
  176.                                         name="{{
  177.                                         form.vars.id ~ '[' ~ form.property_type.vars.name
  178.                                             ~ ']'
  179.                                         }}"
  180.                                             {% if flow.getFormData().property_type is defined and flow.getFormData().property_type == child.vars.value %}
  181.                                                 checked
  182.                                             {% endif %}
  183.                                         class="checkbox"
  184.                                         value="{{ child.vars.value }}" />
  185.                                     <span>{{ child.vars.label|raw }}</span>
  186.                                 </label>
  187.                             {% endfor %}
  188.                         </div>
  189.                     </div>
  190.                     <div id="house-type">
  191.                         {{ form_label(form.house_type) }}
  192.                         <div class="radios-wrapper">
  193.                             {% for child in form.house_type %}
  194.                                 <label class="radio w-33">
  195.                                     <input type="radio"
  196.                                         id="{{ child.vars.id }}"
  197.                                         name="{{
  198.                                         form.vars.id ~ '[' ~ form.house_type.vars.name
  199.                                             ~ ']'
  200.                                         }}"
  201.                                         {% if flow.getFormData().house_type is defined and flow.getFormData().house_type == child.vars.value %}
  202.                                             checked
  203.                                         {% endif %}
  204.                                         class="checkbox"
  205.                                         value="{{ child.vars.value }}" />
  206.                                     <span>{{ child.vars.label|raw }}</span>
  207.                                 </label>
  208.                             {% endfor %}
  209.                         </div>
  210.                     </div>
  211.                     <div>
  212.                         {{ form_label(form.place) }}
  213.                         {{ form_widget(form.place) }}
  214.                     </div>
  215.                     {{ form_widget(form.coordinates) }}
  216.                     <div>
  217.                         <div class="row">
  218.                             {{ form_label(form.floor_area) }}
  219.                             {# <button type="button"
  220.                                 class="tooltip"
  221.                                 data-modal="modal"
  222.                                 data-question="floor-area">
  223.                                 ?
  224.                             </button> #}
  225.                         </div>
  226.                         <p class="small">
  227.                             Zadejte pouze plochu bez balkónu, sklepu a garáže. <br> Rozloha pozemku a jiných součástí se uvádí v bodech níže.
  228.                         </p>
  229.                         {{ form_widget(form.floor_area) }}
  230.                     </div>
  231.                     <div id="garden-area">
  232.                         <div class="row">
  233.                             {{ form_label(form.garden_area) }}
  234.                             <button type="button"
  235.                                 class="tooltip"
  236.                                 data-modal="modal"
  237.                                 data-question="garden-area">
  238.                                 ?
  239.                             </button>
  240.                         </div>
  241.                         {{ form_widget(form.garden_area) }}
  242.                     </div>
  243.                     <div id="ownership-wrapper">
  244.                         {{ form_label(form.ownership) }}
  245.                         <div class="radios-wrapper">
  246.                             {% for child in form.ownership %}
  247.                                 <label class="radio w-33">
  248.                                     <input type="radio"
  249.                                         id="{{ child.vars.id }}"
  250.                                         name="{{
  251.                                         form.vars.id ~ '[' ~ form.ownership.vars.name
  252.                                             ~ ']'
  253.                                         }}"
  254.                                         {% if flow.getFormData().ownership is defined and flow.getFormData().ownership == child.vars.value %}
  255.                                             checked
  256.                                         {% endif %}
  257.                                         class="checkbox"
  258.                                         value="{{ child.vars.value }}" />
  259.                                     <span>{{ child.vars.label|raw }}</span>
  260.                                 </label>
  261.                             {% endfor %}
  262.                         </div>
  263.                     </div>
  264.                         <div id="localType-wrapper">
  265.                             <div class="row">
  266.                                 {{ form_label(form.local_type) }}
  267.                                 <button type="button"
  268.                                         class="tooltip"
  269.                                         data-modal="modal"
  270.                                         data-question="local-type">
  271.                                     ?
  272.                                 </button>
  273.                             </div>
  274.                             <div class="radios-wrapper">
  275.                                 {% for child in form.local_type %}
  276.                                     <label class="radio w-33">
  277.                                         <input type="radio"
  278.                                                id="{{ child.vars.id }}"
  279.                                                name="{{
  280.                                                form.vars.id ~ '[' ~ form.local_type.vars.name
  281.                                                ~ ']'
  282.                                                }}"
  283.                                                 {% if flow.getFormData().local_type is defined and flow.getFormData().local_type == child.vars.value %}
  284.                                                     checked
  285.                                                 {% endif %}
  286.                                                class="checkbox"
  287.                                                value="{{ child.vars.value }}" />
  288.                                         <span>{{ child.vars.label|raw }}</span>
  289.                                     </label>
  290.                                 {% endfor %}
  291.                             </div>
  292.                         </div>
  293.                     <div>
  294.                         {{ form_label(form.kind) }}
  295.                         <div class="radios-wrapper">
  296.                             {% for child in form.kind %}
  297.                                 <label class="radio w-33">
  298.                                     <input type="radio"
  299.                                         id="{{ child.vars.id }}"
  300.                                         required
  301.                                         name="{{
  302.                                         form.vars.id ~ '[' ~ form.kind.vars.name
  303.                                             ~ ']'
  304.                                         }}"
  305.                                         {% if flow.getFormData().kind is defined and flow.getFormData().kind == child.vars.value %}
  306.                                             checked
  307.                                         {% endif %}
  308.                                         class="checkbox"
  309.                                         value="{{ child.vars.value }}" />
  310.                                     <span>{{ child.vars.label|raw }}</span>
  311.                                 </label>
  312.                             {% endfor %}
  313.                         </div>
  314.                     </div>
  315.                     <div class="">
  316.                         <div class="row">
  317.                             {{ form_label(form.rating) }}
  318.                             <button type="button"
  319.                                 class="tooltip"
  320.                                 data-modal="modal"
  321.                                 data-question="rating">
  322.                                 ?
  323.                             </button>
  324.                         </div>
  325.                         <div class="radios-wrapper">
  326.                             {% for child in form.rating %}
  327.                                 <label class="radio w-33">
  328.                                     <input type="radio"
  329.                                         id="{{ child.vars.id }}"
  330.                                         required
  331.                                         name="{{
  332.                                         form.vars.id ~ '[' ~ form.rating.vars.name
  333.                                             ~ ']'
  334.                                         }}"
  335.                                         {% if flow.getFormData().rating is defined and flow.getFormData().rating == child.vars.value %}
  336.                                             checked
  337.                                         {% endif %}
  338.                                         class="checkbox"
  339.                                         value="{{ child.vars.value }}" />
  340.                                     <span>{{ child.vars.label|raw }}</span>
  341.                                 </label>
  342.                             {% endfor %}
  343.                         </div>
  344.                     </div>
  345.                     <div id="garage">
  346.                         {{ form_label(form.garages) }}
  347.                         {{ form_widget(form.garages) }}
  348.                     </div>
  349.                     <div id="parking-space">
  350.                         {{ form_label(form.parking_spaces) }}
  351.                         {{ form_widget(form.parking_spaces) }}
  352.                     </div>
  353.                     <div id="balcony-area">
  354.                         {{ form_label(form.balcony_area) }}
  355.                         {{ form_widget(form.balcony_area) }}
  356.                     </div>
  357.                     <div class="last">
  358.                         <div class="row">
  359.                             {{ form_label(form.other_area) }}
  360.                             <button type="button"
  361.                                 class="tooltip"
  362.                                 data-modal="modal"
  363.                                 data-question="other-area">
  364.                                 ?
  365.                             </button>
  366.                         </div>
  367.                         {{ form_widget(form.other_area) }}
  368.                     </div>
  369.                     {{ form_widget(form.isSkipped) }}
  370.                 </div>
  371.                 <div class="btns-wrapper">
  372.                     <button class="btn" type="submit" id="calculate-btn">
  373.                         Vypočítat cenu
  374.                     </button>
  375.                     {% include '@CraueFormFlow/FormFlow/buttons.html.twig' with {
  376.                         craue_formflow_button_class_last: 'btn btn-first-next btn-reset',
  377.                         craue_formflow_button_render_reset: false,
  378.                         craue_formflow_button_render_finish: true,
  379.                         craue_formflow_button_label_last: 'Chci přesnější cenu',
  380.                         craue_formflow_button_label_back: 'Zpět',
  381.                         craue_formflow_button_label_finish: 'Vypočítat cenu'
  382.                     } %}
  383.                 </div>
  384.             {% endif %}
  385.             {% if flow.getCurrentStepNumber() == 2 %}
  386.                 <div class="form-wrapper">
  387.                     {% if form.local_type is defined %}
  388.                     <div>
  389.                         <div class="row">
  390.                             {{ form_label(form.local_type) }}
  391.                             <button type="button"
  392.                                 class="tooltip"
  393.                                 data-modal="modal"
  394.                                 data-question="local-type">
  395.                                 ?
  396.                             </button>
  397.                         </div>
  398.                         <div class="radios-wrapper">
  399.                             {% for child in form.local_type %}
  400.                                 <label class="radio w-33">
  401.                                     <input type="radio"
  402.                                         id="{{ child.vars.id }}"
  403.                                         name="{{
  404.                                         form.vars.id ~ '[' ~ form.local_type.vars.name
  405.                                             ~ ']'
  406.                                         }}"
  407.                                         {% if flow.getFormData().local_type is defined and flow.getFormData().local_type == child.vars.value %}
  408.                                             checked
  409.                                         {% endif %}
  410.                                         class="checkbox"
  411.                                         value="{{ child.vars.value }}" />
  412.                                     <span>{{ child.vars.label|raw }}</span>
  413.                                 </label>
  414.                             {% endfor %}
  415.                         </div>
  416.                     </div>
  417.                     {% endif %}
  418.                     <div>
  419.                         <div class="row">
  420.                             {{ form_label(form.construction) }}
  421.                             <button type="button"
  422.                                 class="tooltip"
  423.                                 data-modal="modal"
  424.                                 data-question="construction">
  425.                                 ?
  426.                             </button>
  427.                         </div>
  428.                         <div class="radios-wrapper">
  429.                             {% for child in form.construction %}
  430.                                 <label class="radio w-33">
  431.                                     <input type="radio"
  432.                                         id="{{ child.vars.id }}"
  433.                                         name="{{
  434.                                         form.vars.id ~ '[' ~ form.construction.vars.name
  435.                                             ~ ']'
  436.                                         }}"
  437.                                         {% if flow.getFormData().construction is defined and flow.getFormData().construction == child.vars.value %}
  438.                                             checked
  439.                                         {% endif %}
  440.                                         class="checkbox"
  441.                                         value="{{ child.vars.value }}" />
  442.                                     <span>{{ child.vars.label|raw }}</span>
  443.                                 </label>
  444.                             {% endfor %}
  445.                         </div>
  446.                     </div>
  447.                     {% if form.lift is defined %}
  448.                         <div class="checkbox">
  449.                             {{ form_label(form.lift) }}
  450.                             {{ form_widget(form.lift) }}
  451.                         </div>
  452.                     {% endif %}
  453.                     {% if form.floor is defined %}
  454.                         <div>
  455.                             {{ form_label(form.floor) }}
  456.                             {{ form_widget(form.floor) }}
  457.                         </div>
  458.                     {% endif %}
  459.                     {% if form.total_floors is defined %}
  460.                         <div class="last">
  461.                             {{ form_label(form.total_floors) }}
  462.                             {{ form_widget(form.total_floors) }}
  463.                         </div>
  464.                     {% endif %}
  465.                 </div>
  466.                 <div class="btns-wrapper">
  467.                     {% include '@CraueFormFlow/FormFlow/buttons.html.twig' with {
  468.                         craue_formflow_button_class_last: 'btn btn-next',
  469.                         craue_formflow_button_class_back: 'btn-reset',
  470.                         craue_formflow_button_render_reset: false,
  471.                         craue_formflow_button_render_finish: true,
  472.                         craue_formflow_button_label_last: 'Vypočítat cenu',
  473.                         craue_formflow_button_label_back: 'Zpět',
  474.                         craue_formflow_button_label_finish: 'Vypočítat'
  475.                     } %}
  476.                 </div>
  477.             {% endif %}
  478.             {% if flow.getCurrentStepNumber() == 3 %}
  479.                 <div class="form-wrapper middle step-3">
  480.                     <div>
  481.                         {{ form_label(form.name) }}
  482.                         {{ form_widget(form.name) }}
  483.                     </div>
  484.                     <div>
  485.                         {{ form_label(form.email) }}
  486.                         {{ form_widget(form.email) }}
  487.                     </div>
  488.                     <div class="">
  489.                         {{ form_label(form.phone) }}
  490.                         {{ form_widget(form.phone) }}
  491.                     </div>
  492.                     <div class="last checkbox">
  493.                         {{ form_widget(form.gdpr) }}
  494.                         {{
  495.                             form_label(
  496.                                 form.gdpr,
  497.                                 '
  498.                                 Souhlasím se zasíláním marketingových sdělení.
  499.                                 Souhlasím se zpracováním mých osobních údajů dle <a target="_blank" href="'
  500.                                     ~ path('gdpr')
  501.                                     ~ '">GDPR</a>',
  502.                                 {
  503.                                     label_html: true
  504.                                 }
  505.                             )
  506.                         }}
  507.                     </div>
  508.                 </div>
  509.                 {% include '@CraueFormFlow/FormFlow/buttons.html.twig' with {
  510.                     craue_formflow_button_class_last: 'btn',
  511.                     craue_formflow_button_class_back: 'btn-reset',
  512.                     craue_formflow_button_render_reset: false,
  513.                     craue_formflow_button_render_finish: true,
  514.                     craue_formflow_button_label_last: 'Odeslat',
  515.                     craue_formflow_button_label_back: 'Zpět',
  516.                     craue_formflow_button_label_finish: 'Vypočítat'
  517.                 } %}
  518.             {% endif %}
  519.             {{ form_widget(form.flow_calculator_instance) }}
  520.             {{ form_widget(form.flow_calculator_step) }}
  521.             {{ form_widget(form._token) }}
  522.             {{
  523.                 form_end(
  524.                     form,
  525.                     {
  526.                         render_rest: false
  527.                     }
  528.                 )
  529.             }}
  530.         </div>
  531.     </div>
  532. {% endblock %}
  533. {% block javascripts %}
  534.     {{ parent() }}
  535.     <script>
  536.         $('#calculate-btn').on('click', function () {
  537.         $('#calculator_isSkipped').prop("checked", true); });
  538.         $(".btn-first-next").on('click', function () {
  539.         $('#calculator_isSkipped').prop("checked", false); })
  540.     </script>
  541.     {% if flow.getCurrentStepNumber() == 1 %}
  542.         <script src="{{ asset('assets/js/geocoding.js') }}"></script>
  543.         <script async
  544.             src="https://maps.googleapis.com/maps/api/js?key={{ googleApiKey }}&region=CZ&language=cz&callback=initAutocomplete&libraries=places"></script>
  545.     {% endif %}
  546.     <script src="https://unpkg.com/validator@latest/validator.min.js"></script>
  547.     <script>
  548.         var formStepErrors = 0;
  549. $('input').data('hasError', 'false');
  550. $('input').on('focusout', function(e) {
  551.     const inputType = $(this).data('input-type');
  552.     var isValid;
  553.     switch (inputType) {
  554.         case 'int':
  555.             isValid = validator.isInt($(this).val());
  556.             break;
  557.         case 'name':
  558.             const regexp = /[a-zA-Z]+\s+[a-zA-Z]+/g;
  559.             isValid = regexp.test(
  560.                 $(this)
  561.                     .val()
  562.                     .normalize('NFD')
  563.                     .replace(/[\u0300-\u036f]/g, '')
  564.             );
  565.             break;
  566.         case 'email':
  567.             isValid = validator.isEmail($(this).val());
  568.             break;
  569.     }
  570.     if (isValid === false) {
  571.         $(this).css('border', '2px solid red');
  572.         if ($(this).data('hasError') === 'false') {
  573.             formStepErrors++;
  574.             $(this).data('hasError', 'true');
  575.         }
  576.     } else {
  577.         if ($(this).data('hasError') === 'true') {
  578.             formStepErrors--;
  579.             $(this).css('border', '2px solid');
  580.             $(this).data('hasError', 'false');
  581.         }
  582.     }
  583. });
  584. $('#calculator_place').on('focusout', function(){
  585.     setTimeout(() => {
  586.         if ($('#calculator_coordinates').val() === ''){
  587.             if ($('#calculator_place').data('hasError') === 'false'){
  588.                 formStepErrors++;
  589.                 }
  590.                 $('#calculator_place').css('border', '2px solid red');
  591.                 $('#calculator_place').data('hasError', 'true');
  592.         }else{
  593.             if ($('#calculator_place').data('hasError') === 'true'){
  594.                 formStepErrors--;
  595.             $('#calculator_place').css('border', '2px solid');
  596.             $('#calculator_place').data('hasError', 'false');
  597.             }    
  598.         }
  599.     }, 1000)
  600. })
  601. $('button[type=submit]').click(function(e) {
  602.     if (formStepErrors > 0) {
  603.         //e.preventDefault();
  604.         //alert('V formuláři se nacházejí chyby');
  605.     } else {
  606.         formStepErrors = false;
  607.     }
  608. });
  609.     </script>
  610.     <script src="{{ asset('assets/js/form.js') }}"></script>
  611.     <script src="{{ asset('assets/js/modal.js') }}"></script>
  612. {% endblock %}