var/cache/dev/twig/70/703da944487e37e56b121ba2dcdfa79a50a63a7ed43fe28dfe416846d9d4b46e.php line 209

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. /* front/acheter/index.html.twig */
  14. class __TwigTemplate_7b363b3502ec142f6859e8fb7eb139fcbe4756a74fa182256d23b18e52edfc64 extends 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.             'title' => [$this, 'block_title'],
  24.             'meta_description' => [$this, 'block_meta_description'],
  25.             'metas' => [$this, 'block_metas'],
  26.             'header_bottom' => [$this, 'block_header_bottom'],
  27.             'content' => [$this, 'block_content'],
  28.             'footer' => [$this, 'block_footer'],
  29.             'stylesheets' => [$this, 'block_stylesheets'],
  30.             'javascripts' => [$this, 'block_javascripts'],
  31.         ];
  32.     }
  33.     protected function doGetParent(array $context)
  34.     {
  35.         // line 1
  36.         return "base.html.twig";
  37.     }
  38.     protected function doDisplay(array $context, array $blocks = [])
  39.     {
  40.         $macros = $this->macros;
  41.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  42.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "front/acheter/index.html.twig"));
  43.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  44.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "front/acheter/index.html.twig"));
  45.         $this->parent = $this->loadTemplate("base.html.twig", "front/acheter/index.html.twig", 1);
  46.         $this->parent->display($context, array_merge($this->blocks, $blocks));
  47.         
  48.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  49.         
  50.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  51.     }
  52.     // line 3
  53.     public function block_title($context, array $blocks = [])
  54.     {
  55.         $macros = $this->macros;
  56.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  57.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "title"));
  58.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  59.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "title"));
  60.         echo " - Annonces immobilières";
  61.         
  62.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  63.         
  64.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  65.     }
  66.     // line 4
  67.     public function block_meta_description($context, array $blocks = [])
  68.     {
  69.         $macros = $this->macros;
  70.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  71.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "meta_description"));
  72.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  73.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "meta_description"));
  74.         echo "Trouvez votre futur nid douillet en Bretagne. Maison, appartement, bien de prestige et terrain sont mis en valeur pour vous aider dans votre choix";
  75.         
  76.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  77.         
  78.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  79.     }
  80.     // line 5
  81.     public function block_metas($context, array $blocks = [])
  82.     {
  83.         $macros = $this->macros;
  84.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  85.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "metas"));
  86.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  87.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "metas"));
  88.         // line 6
  89.         echo "    ";
  90.         if (twig_in_filter(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, twig_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.', 6, $this->source); })()), "request", [], "any", false, false, false, 6), "attributes", [], "any", false, false, false, 6), "get", [0 => "_route"], "method", false, false, false, 6), [0 => "acheter_estate", 1 => "commerces_estate"])) {
  91.             // line 7
  92.             echo "        <meta property=\"og:locale\" content=\"fr_FR\" />
  93.         <meta property=\"og:type\" content=\"article\" />
  94.         <meta property=\"og:title\" content=\"Annonce Sublimons - ";
  95.             // line 9
  96.             echo twig_escape_filter($this->env, twig_capitalize_string_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["estate"]) || array_key_exists("estate", $context) ? $context["estate"] : (function () { throw new RuntimeError('Variable "estate" does not exist.', 9, $this->source); })()), "libelle", [], "any", false, false, false, 9)), "html", null, true);
  97.             echo "\" />
  98.         <meta property=\"og:description\" content=\"";
  99.             // line 10
  100.             echo twig_escape_filter($this->env, twig_striptags(twig_get_attribute($this->env, $this->source, (isset($context["estate"]) || array_key_exists("estate", $context) ? $context["estate"] : (function () { throw new RuntimeError('Variable "estate" does not exist.', 10, $this->source); })()), "descriptifCourt", [], "any", false, false, false, 10)), "html", null, true);
  101.             echo "\" />
  102.         <meta property=\"og:url\" content=\"";
  103.             // line 11
  104.             echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\HttpFoundationExtension']->generateAbsoluteUrl($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("acheter_estate", ["refannonce" => twig_get_attribute($this->env, $this->source, (isset($context["estate"]) || array_key_exists("estate", $context) ? $context["estate"] : (function () { throw new RuntimeError('Variable "estate" does not exist.', 11, $this->source); })()), "refannonce", [], "any", false, false, false, 11)])), "html", null, true);
  105.             echo "/\" />
  106.         <meta property=\"og:site_name\" content=\"Sublimons\" />
  107.         <meta property=\"article:publisher\" content=\"https://www.facebook.com/sublimons\" />
  108.         <meta property=\"og:image\" content=\"";
  109.             // line 14
  110.             echo twig_escape_filter($this->env, $this->extensions['Liip\ImagineBundle\Templating\FilterExtension']->filter(twig_get_attribute($this->env, $this->source, (isset($context["estate"]) || array_key_exists("estate", $context) ? $context["estate"] : (function () { throw new RuntimeError('Variable "estate" does not exist.', 14, $this->source); })()), "cover", [], "any", false, false, false, 14), "stream_estate_share"), "html", null, true);
  111.             echo "\" />
  112.         <meta property=\"og:image:secure_url\" content=\"";
  113.             // line 15
  114.             echo twig_escape_filter($this->env, $this->extensions['Liip\ImagineBundle\Templating\FilterExtension']->filter(twig_get_attribute($this->env, $this->source, (isset($context["estate"]) || array_key_exists("estate", $context) ? $context["estate"] : (function () { throw new RuntimeError('Variable "estate" does not exist.', 15, $this->source); })()), "cover", [], "any", false, false, false, 15), "stream_estate_large"), "html", null, true);
  115.             echo "\" />
  116.         <meta property=\"og:image:width\" content=\"1200\" />
  117.         <meta property=\"og:image:height\" content=\"630\" />
  118.         <meta name=\"twitter:card\" content=\"summary\" />
  119.         <meta name=\"twitter:description\" content=\"";
  120.             // line 19
  121.             echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["estate"]) || array_key_exists("estate", $context) ? $context["estate"] : (function () { throw new RuntimeError('Variable "estate" does not exist.', 19, $this->source); })()), "descriptifCourt", [], "any", false, false, false, 19), "html", null, true);
  122.             echo "\" />
  123.         <meta name=\"twitter:title\" content=\"Annonce Sublimons - ";
  124.             // line 20
  125.             echo twig_escape_filter($this->env, twig_capitalize_string_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["estate"]) || array_key_exists("estate", $context) ? $context["estate"] : (function () { throw new RuntimeError('Variable "estate" does not exist.', 20, $this->source); })()), "libelle", [], "any", false, false, false, 20)), "html", null, true);
  126.             echo "\" />
  127.         <meta name=\"twitter:site\" content=\"@Sublimonsimmo\" />
  128.         <meta name=\"twitter:image\" content=\"";
  129.             // line 22
  130.             echo twig_escape_filter($this->env, $this->extensions['Liip\ImagineBundle\Templating\FilterExtension']->filter(twig_get_attribute($this->env, $this->source, (isset($context["estate"]) || array_key_exists("estate", $context) ? $context["estate"] : (function () { throw new RuntimeError('Variable "estate" does not exist.', 22, $this->source); })()), "cover", [], "any", false, false, false, 22), "stream_estate_share"), "html", null, true);
  131.             echo "\" />
  132.         <meta name=\"twitter:creator\" content=\"@Sublimonsimmo\" />
  133.     ";
  134.         }
  135.         
  136.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  137.         
  138.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  139.     }
  140.     // line 27
  141.     public function block_header_bottom($context, array $blocks = [])
  142.     {
  143.         $macros = $this->macros;
  144.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  145.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "header_bottom"));
  146.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  147.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "header_bottom"));
  148.         // line 28
  149.         echo "    <div id=\"header_bottom\" class=\"container-fluid d-none d-lg-block\">
  150.         ";
  151.         // line 29
  152.         echo twig_include($this->env, $context, "front/acheter/_filter.html.twig");
  153.         echo "
  154.     </div>
  155.     <div id=\"header_bottom_mobile\" class=\"bg-dark border-top border-white container-fluid d-lg-none  text-center p-2\">
  156.         <button id=\"btn_open_search\" class=\"btn btn-primary btn-sm flex-grow-1\"><i class=\"icon-search\"></i> Rechercher</button>
  157.         <button class=\"btn_save_search btn btn-primary btn-sm mx-0 flex-grow-1\"><i class=\"icon-floppy\"></i> Sauvegarder</button>
  158.         ";
  159.         // line 34
  160.         $this->loadTemplate("front/acheter/_sort.html.twig", "front/acheter/index.html.twig", 34)->display(twig_array_merge($context, ["context" => "select", "class" => "btn btn-primary btn-sm flex-grow-1", "sort_by" => twig_get_attribute($this->env, $this->source, (isset($context["datas"]) || array_key_exists("datas", $context) ? $context["datas"] : (function () { throw new RuntimeError('Variable "datas" does not exist.', 34, $this->source); })()), "sort_by", [], "any", false, false, false, 34)]));
  161.         // line 35
  162.         echo "    </div>
  163.     <!-- Témoin de chargement-->
  164.     <div id=\"loader\">    
  165.         <div class=\"overlay\">
  166.             <div class=\"loader\"></div>
  167.         </div>
  168.     </div>
  169. ";
  170.         
  171.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  172.         
  173.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  174.     }
  175.     // line 46
  176.     public function block_content($context, array $blocks = [])
  177.     {
  178.         $macros = $this->macros;
  179.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  180.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "content"));
  181.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  182.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "content"));
  183.         // line 47
  184.         echo "
  185.     <section id=\"estates\" class=\"container-fluid\">
  186.         <div class=\"row\">
  187.             ";
  188.         // line 50
  189.         if ((isset($context["with_map"]) || array_key_exists("with_map", $context) ? $context["with_map"] : (function () { throw new RuntimeError('Variable "with_map" does not exist.', 50, $this->source); })())) {
  190.             // line 51
  191.             echo "            <div class=\"col-lg-6 p-0 d-none d-lg-block \">
  192.                 <div class=\"map_full bg-light\">    
  193.                     <div id=\"estates_map\" class=\"map_container\"></div>
  194.                 </div>
  195.             </div>
  196.             <div id=\"list_sidebar\" class=\"with_map col-lg-6 px-0\">
  197.             ";
  198.         } else {
  199.             // line 58
  200.             echo "            <div id=\"list_sidebar\" class=\"col-lg-12 px-0\">
  201.             ";
  202.         }
  203.         // line 60
  204.         echo "                <div class=\"p-3 p-lg-4 px-xxl-5 \">
  205.                     <div class=\"d-none d-lg-block\">
  206.                         <div class=\"d-flex justify-content-between pl-3 pr-0 mb-2\">
  207.                             <div  style=\"visibility: hidden;\"><span id=\"visible_estates\"></span>/<span id=\"total_estates\"></span> résultats</div>
  208.                             <div id=\"estastes_sort\">Trier : ";
  209.         // line 64
  210.         $this->loadTemplate("front/acheter/_sort.html.twig", "front/acheter/index.html.twig", 64)->display(twig_array_merge($context, ["context" => "select", "class" => "select-unstyle", "sort_by" => twig_get_attribute($this->env, $this->source, (isset($context["datas"]) || array_key_exists("datas", $context) ? $context["datas"] : (function () { throw new RuntimeError('Variable "datas" does not exist.', 64, $this->source); })()), "sort_by", [], "any", false, false, false, 64)]));
  211.         echo "</div>
  212.                         </div>
  213.                     </div>
  214.                     <div id=\"estates_container\" class=\"row align-items-stretch\"></div>
  215.                     <div id=\"no_estate\" class=\"banner_no_content banner_container text-white col-md-6 col-lg-12 col-xl-9 mx-auto\" style=\"display:none;\">
  216.                         <div class=\"bloc_txt_image\">
  217.                             <div class=\"bg_image\" style=\"background-image: url(/assets/media/acheter/no_content_L.jpg);\"></div>
  218.                             <div class=\"overlay\"></div>
  219.                             <div class=\"content py-5 \">
  220.                                 <div class=\"mt-5 px-4 py-5 mt-xl-0  d-flex align-items-center  text-center\">
  221.                                     <div class=\"pt-5\">
  222.                                         <h4 class=\"mb-2\">Aucun bien ne correspond à votre recherche</h4>
  223.                                         <p>Contactez le conseiller proche de chez vous</p>
  224.                                     </div>
  225.                                 </div>
  226.                             </div>
  227.                             <div class=\"btn_container\">
  228.                                 <a class=\"btn-horn\" href=\"";
  229.         // line 81
  230.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("agents");
  231.         echo "\" target=\"_blank\"><span>Je contacte !</span></a>
  232.                             </div>
  233.                         </div>
  234.                     </div>
  235.                 </div>
  236.             </div>
  237.         </div>
  238.     </section>
  239.     <div id=\"contactForm_source\" style=\"display: none;\">";
  240.         // line 90
  241.         echo $this->env->getRuntime('Symfony\Bridge\Twig\Extension\HttpKernelRuntime')->renderFragment(Symfony\Bridge\Twig\Extension\HttpKernelExtension::controller("App\\Controller\\Front\\MessageController::contactForm", ["context" => "agent", "display" => "agent_modal"]));
  242.         echo "</div>
  243.     ";
  244.         // line 92
  245.         echo twig_source($this->env, "front/acheter/estates-template.html");
  246.         echo "
  247.     ";
  248.         // line 93
  249.         echo twig_source($this->env, "front/acheter/estate-infobox-template.html");
  250.         echo "
  251.     ";
  252.         // line 94
  253.         echo twig_source($this->env, "front/acheter/modal-template.html");
  254.         echo "
  255.     ";
  256.         // line 95
  257.         echo twig_include($this->env, $context, "front/acheter/modal-save_search.html.twig");
  258.         echo "  
  259. ";
  260.         
  261.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  262.         
  263.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  264.     }
  265.     // line 98
  266.     public function block_footer($context, array $blocks = [])
  267.     {
  268.         $macros = $this->macros;
  269.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  270.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "footer"));
  271.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  272.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "footer"));
  273.         
  274.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  275.         
  276.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  277.     }
  278.     // line 101
  279.     public function block_stylesheets($context, array $blocks = [])
  280.     {
  281.         $macros = $this->macros;
  282.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  283.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheets"));
  284.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  285.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheets"));
  286.         // line 102
  287.         echo "    ";
  288.         $this->displayParentBlock("stylesheets", $context, $blocks);
  289.         echo "
  290.     <link rel=\"stylesheet\" href=\"";
  291.         // line 103
  292.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/vendor/OwlCarousel2-2.3.4/dist/assets/owl.carousel.min.css"), "html", null, true);
  293.         echo "\"/>
  294.     <link rel=\"stylesheet\" href=\"";
  295.         // line 104
  296.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/vendor/OwlCarousel2-2.3.4/dist/assets/owl.theme.default.min.css"), "html", null, true);
  297.         echo "\"/>
  298.     <link rel=\"stylesheet\" href=\"";
  299.         // line 106
  300.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/vendor/bootstrap-4-master/build/css/tempusdominus-bootstrap-4.min.css"), "html", null, true);
  301.         echo "\"/>
  302.     <link rel=\"stylesheet\" href=\"https://unpkg.com/leaflet@1.7.1/dist/leaflet.css\" />
  303.     ";
  304.         // line 109
  305.         echo "    <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/gh/tomik23/autocomplete@1.6.8/dist/css/autocomplete.min.css\"/>
  306.     <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css\" />
  307.     <link rel=\"stylesheet\" href=\"";
  308.         // line 111
  309.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/css/dpe_ges.css"), "html", null, true);
  310.         echo "\"/>
  311. ";
  312.         
  313.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  314.         
  315.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  316.     }
  317.     // line 114
  318.     public function block_javascripts($context, array $blocks = [])
  319.     {
  320.         $macros = $this->macros;
  321.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  322.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascripts"));
  323.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  324.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascripts"));
  325.         // line 115
  326.         echo "    ";
  327.         $this->displayParentBlock("javascripts", $context, $blocks);
  328.         echo "
  329. ";
  330.         // line 117
  331.         echo "
  332.     <script src=\"";
  333.         // line 118
  334.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("bundles/fosjsrouting/js/router.min.js"), "html", null, true);
  335.         echo "\"></script>
  336.     <script src=\"";
  337.         // line 119
  338.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("fos_js_routing_js", ["callback" => "fos.Router.setData"]);
  339.         echo "\"></script>
  340.     <script src=\"";
  341.         // line 120
  342.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/vendor/OwlCarousel2-2.3.4/dist/owl.carousel.min.js"), "html", null, true);
  343.         echo "\"></script>
  344.     <script src=\"https://cdn.jsdelivr.net/npm/lazyload@2.0.0-rc.2/lazyload.js\"></script>
  345.     <script src=\"";
  346.         // line 123
  347.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/vendor/swag.min.js"), "html", null, true);
  348.         echo "\"></script>
  349.     <script src=\"https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js\"></script>
  350.     <script src=\"https://unpkg.com/leaflet@1.7.1/dist/leaflet.js\"></script>
  351.     <script src=\"https://leaflet.github.io/Leaflet.markercluster/dist/leaflet.markercluster-src.js\"></script>
  352.     <script src=\"";
  353.         // line 129
  354.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/vendor/Leaflet.SmoothMarkerBouncing.js"), "html", null, true);
  355.         echo "\"></script>
  356.     <script src=\"https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js\" integrity=\"sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==\" crossorigin=\"anonymous\"></script>
  357.     <script src=\"https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/locale/fr.min.js\" integrity=\"sha512-RAt2+PIRwJiyjWpzvvhKAG2LEdPpQhTgWfbEkFDCo8wC4rFYh5GQzJBVIFDswwaEDEYX16GEE/4fpeDNr7OIZw==\" crossorigin=\"anonymous\"></script>
  358.     <script src=\"";
  359.         // line 132
  360.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/vendor/bootstrap-4-master/build/js/tempusdominus-bootstrap-4.js"), "html", null, true);
  361.         echo "\"></script>
  362.     <script src=\"https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js\"></script>
  363.     <script src=\"";
  364.         // line 134
  365.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/vendor/jquery.serialize-object.min.js"), "html", null, true);
  366.         echo "\"></script>
  367.     <script src=\"";
  368.         // line 135
  369.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/autocomplete.js"), "html", null, true);
  370.         echo "\"></script>
  371.     <script src=\"";
  372.         // line 137
  373.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/base_map.js?v1.0"), "html", null, true);
  374.         echo "\"></script>
  375.     <script src=\"";
  376.         // line 138
  377.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/estates_map.js?v1.3"), "html", null, true);
  378.         echo "\"></script>
  379.     <script src=\"";
  380.         // line 139
  381.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/rrose.js"), "html", null, true);
  382.         echo "\"></script>
  383.     <script src=\"";
  384.         // line 141
  385.         echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/js/auto_complete_geosearch.js"), "html", null, true);
  386.         echo "\"></script>
  387.     <script>
  388.         var current_page = '";
  389.         // line 144
  390.         echo twig_escape_filter($this->env, (isset($context["current_route"]) || array_key_exists("current_route", $context) ? $context["current_route"] : (function () { throw new RuntimeError('Variable "current_route" does not exist.', 144, $this->source); })()), "html", null, true);
  391.         echo "'; 
  392.         var current_route = Routing.generate('";
  393.         // line 145
  394.         echo twig_escape_filter($this->env, (isset($context["current_route"]) || array_key_exists("current_route", $context) ? $context["current_route"] : (function () { throw new RuntimeError('Variable "current_route" does not exist.', 145, $this->source); })()), "html", null, true);
  395.         echo "'); 
  396.         var datas  = ";
  397.         // line 146
  398.         echo json_encode((isset($context["datas"]) || array_key_exists("datas", $context) ? $context["datas"] : (function () { throw new RuntimeError('Variable "datas" does not exist.', 146, $this->source); })()));
  399.         echo ";
  400.         var banners  = ";
  401.         // line 147
  402.         echo json_encode((isset($context["banners"]) || array_key_exists("banners", $context) ? $context["banners"] : (function () { throw new RuntimeError('Variable "banners" does not exist.', 147, $this->source); })()));
  403.         echo ";
  404.         var col_class  = datas.col_class;
  405.         var with_map  = ";
  406.         // line 149
  407.         echo twig_escape_filter($this->env, (isset($context["with_map"]) || array_key_exists("with_map", $context) ? $context["with_map"] : (function () { throw new RuntimeError('Variable "with_map" does not exist.', 149, $this->source); })()), "html", null, true);
  408.         echo ";
  409.         var with_carrousel  = ";
  410.         // line 150
  411.         echo twig_escape_filter($this->env, (isset($context["with_carrousel"]) || array_key_exists("with_carrousel", $context) ? $context["with_carrousel"] : (function () { throw new RuntimeError('Variable "with_carrousel" does not exist.', 150, $this->source); })()), "html", null, true);
  412.         echo ";
  413.         var current_banner = 0;
  414.         var next_estates = ";
  415.         // line 152
  416.         echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["datas"]) || array_key_exists("datas", $context) ? $context["datas"] : (function () { throw new RuntimeError('Variable "datas" does not exist.', 152, $this->source); })()), "next", [], "any", false, false, false, 152), "html", null, true);
  417.         echo ";
  418.         // console.log(datas.estates);
  419.         var source_estate;
  420.         var template_estate;
  421.         var source_btn_next;
  422.         var template_btn_next;
  423.         var source_infobox;
  424.         var template_infobox;
  425.         var source_modal;
  426.         var template_modal;
  427.         var source_banner;
  428.         var template_banner;
  429.         jQuery(document).ready(function(){ 
  430.             initHandlebars();
  431.             source_estates   = \$(\"#estates-template\").html();
  432.             template_estates  = Handlebars.compile(source_estates);
  433.             source_btn_next   = \$(\"#btn_next-template\").html();
  434.             template_btn_next  = Handlebars.compile(source_btn_next);
  435.             source_infobox   = \$(\"#infobox-template\").html();
  436.             template_infobox  = Handlebars.compile(source_infobox);
  437.             source_modal   = \$(\"#modal-template\").html();
  438.             template_modal  = Handlebars.compile(source_modal);
  439.             source_banner   = \$(\"#banner-template\").html();
  440.             template_banner  = Handlebars.compile(source_banner);
  441.             //Initialisation de la sauvegarde des recherche
  442.             if(\$('#search_form').length > 0){
  443.                 initSaveSearchForm();
  444.             }
  445.             
  446.             //Ouverture par url
  447.             var parts = window.location.pathname.split('/');
  448.             if( parts.length == 3 ) {
  449.                 var refannonce = parts[2];
  450.                 var estate = datas.estates.find(estate => String(estate.refannonce) === String(refannonce));
  451.                 if( estate === undefined){ //ajax
  452.                     getEstate(refannonce);
  453.                 }
  454.                 else{
  455.                     displayEstate(estate); 
  456.                 }
  457.             }
  458.             
  459.             if(with_map){
  460.                 setMap( 'estates_map', 9, 7, 16 );
  461.                 geoSearch('geosearch', map);
  462.             }
  463.             else{
  464.                 geoSearch('geosearch', false);
  465.             }
  466.             //gestion du filtre
  467.             \$('#filter form').submit(function(e){
  468.                 e.preventDefault();
  469.             });
  470.             //Filtre à zero
  471.             \$('#filter form').trigger(\"reset\");
  472.             //Tri
  473.             \$(\".sort_estate\").change(\"change\", function(){
  474.                 \$('#filter form #sort_by').val(\$(this).val());
  475.                 searchEstates( 0 , 'filter');
  476.             });
  477.          \$('.dropdown-item').click(function(e) {
  478.                 e.preventDefault(); // empêcher le lien de naviguer
  479.                 var value = \$(this).data('value'); // nouvelle valeur
  480.                 var label = \$(this).text();        // texte à afficher
  481.                 // Mettre à jour le champ caché
  482.                 \$('#sort_by').val(value);
  483.                 \$('#filter form #sort_by').val(value);
  484.                 // Mettre à jour le texte du bouton
  485.                 \$('#dropdownSort').text(label);
  486.                 // Mettre à jour l'option active
  487.                 \$('.dropdown-item').removeClass('active text-white bg-primary');
  488.                 \$(this).addClass('active text-white bg-primary');
  489.             });
  490.             //Ajout des parametres d'url dans le filtre ---------------------------------------------------------
  491.             //Ajout des parametres d'url dans le filtre
  492.             // const queryString = window.location.search;
  493.             // const urlParams = new URLSearchParams(window.location);
  494.             const url = new URL(window.location);
  495.             const urlParams = url.searchParams;
  496.             \$('#estate_filter_nue_propriete').val(0);
  497.             \$('#estate_filter_neuf').val(0);
  498.             if(urlParams.size > 0){
  499.                 if(urlParams.has('type')){
  500.                     var typebien = urlParams.get('type'); 
  501.                     var checkbox = \$('#estate_filter_typebien').find(':checkbox[value=\"'+typebien+'\"]');
  502.                     checkbox.prop(\"checked\",\"true\");
  503.                 }
  504.                 else if(urlParams.has('nue_propriete')){
  505.                     \$('#estate_filter_nue_propriete').val(urlParams.get('nue_propriete'));
  506.                 }
  507.                 else if(urlParams.has('neuf')){
  508.                     \$('#estate_filter_neuf').val(urlParams.get('neuf'));
  509.                 }
  510.                 else if(urlParams.has('autres')){
  511.                     var not_types = ['maison/villa', 'appartement', 'terrain'];
  512.     
  513.                     \$('#estate_filter_typebien input:checkbox').each(function(){
  514.                         if(\$.inArray(\$(this).val(), not_types) == -1){
  515.                             \$(this).prop(\"checked\",\"true\");
  516.                         }
  517.                     });
  518.                     
  519.                 }
  520.             }
  521.             
  522.             \$(\"#filter [data-toggle=popover]\").popover({
  523.                 // trigger: 'focus',
  524.                 customClass: \$(\"#filter [data-toggle=popover]\").data('popover_class'),
  525.                 html: true, 
  526.                 sanitize: false,
  527.                 content: function() {
  528.                     return \$(this).next().html();
  529.                 }
  530.             });
  531.             //fermeture de tous les popover avant l'ouverture 
  532.             \$('#filter [data-toggle=popover]').on('show.bs.popover', function (event) {
  533.                 \$('#filter [data-toggle=popover]').popover('hide');
  534.             });
  535.             //synchro avec les input du filtre 
  536.             \$('#filter [data-toggle=popover]').on('inserted.bs.popover', function (event) {
  537.                 var button =  \$(event.target)
  538.                 var popover_source = button.next();
  539.                 // Affichage des valeurs de la source cachée
  540.                 //input text
  541.                 popover_source.find('input[type=text]').each(function(){
  542.                     \$('.popover').find('#'+\$(this).attr(\"id\")).val( \$(this).val() );
  543.                 });
  544.                 //check radio
  545.                 popover_source.find('input[type=radio]').each(function(){
  546.                     \$('.popover').find('#'+\$(this).attr(\"id\")).prop('checked', \$(this).is(':checked'));
  547.                 });
  548.                 //check checkbox
  549.                 popover_source.find('input[type=checkbox]').each(function(){
  550.                     \$('.popover').find('#'+\$(this).attr(\"id\")).prop('checked', \$(this).is(':checked'));
  551.                 });
  552.                 //survol des checkbox_icone
  553.                 \$('.popover').find('[data-toggle=\"tooltip\"]').tooltip();
  554.                 // A la saisie on synchronise les champs -----------------------------------------
  555.                 // input text
  556.                 \$('.popover input[type=text]').change(function() {
  557.                     popover_source.find('#'+\$(this).attr(\"id\")).val( \$(this).val() ).trigger('change');
  558.                 });
  559.                 //input radio in popover
  560.                 \$('.popover input[type=radio]').change(function() {
  561.                     popover_source.find('#'+\$(this).attr(\"id\")).prop('checked', \$(this).is(':checked'));
  562.                     popover_source.find('#'+\$(this).attr(\"id\")).trigger('change');
  563.                 });
  564.                 //input radio in popover
  565.                 \$('.popover input[type=checkbox]').change(function() {
  566.                     popover_source.find('#'+\$(this).attr(\"id\")).prop('checked', \$(this).is(':checked'));
  567.                     popover_source.find('#'+\$(this).attr(\"id\")).trigger('change');
  568.                 });
  569.                 //input radio in source : marche à l'envers à cause de l'id
  570.                 popover_source.find('input[type=radio]').change(function() {
  571.                     \$('.popover').find('#'+\$(this).attr(\"id\")).prop('checked', \$(this).is(':checked'));
  572.                    //pour le statut on change le texte du bouton
  573.                     // if(\$(this).attr('name') == \"estate_filter[statut]\"){
  574.                     //     changeButtonStatut(\$(this).next().text());
  575.                     // }
  576.                 });
  577.                 //input checkbox : : marche à l'envers à cause de l'id
  578.                 popover_source.find('input[type=checkbox]').change(function() {
  579.                     \$('.popover').find('#'+\$(this).attr(\"id\")).prop('checked', \$(this).is(':checked'));
  580.                 });
  581.                 //range_prices click
  582.                 \$('.popover #range_prices a.price_min').click( function(e) {
  583.                     e.preventDefault();
  584.                     \$('.popover #estate_filter_prix_left_number').val(\$(this).data('price')).trigger('change');
  585.                 });
  586.                 \$('.popover #range_prices a.price_max').click( function(e) {
  587.                     e.preventDefault();
  588.                     \$('.popover #estate_filter_prix_right_number').val(\$(this).data('price')).trigger('change');
  589.                 });
  590.                 //
  591.                 \$('.popover .btn_apply').click( function(e) {
  592.                     e.preventDefault();
  593.                     changeButton(true); 
  594.                     button.popover('hide');
  595.                     searchEstates( 0 , 'filter');
  596.                 });
  597.                 \$('.popover .btn_cancel').click( function(e) {
  598.                     e.preventDefault();
  599.                        
  600.                     \$('.popover').find('input[type=text]').each(function(){
  601.                         \$(this).val('').trigger('change');
  602.                     });
  603.                     \$('.popover').find('input[type=checkbox]').each(function(){
  604.                         \$(this).prop('checked', false).trigger('change');
  605.                     });                    
  606.                     changeButton(true);
  607.                     searchEstates( 0 , 'filter');
  608.                 });
  609.             });
  610.             \$('.btn_reset').click( function(e) {
  611.                 e.preventDefault();
  612.                 \$('#filter form').trigger(\"reset\");
  613.                 \$('#estate_filter_geo_name').val('');
  614.                 \$('#estate_filter_geo_bbox').val('');
  615.                 \$('#estate_filter_geo_position').val('');
  616.                 changeButton(true);
  617.                 searchEstates( 0 , 'filter');
  618.                 // map.flyTo([47.803644, -2.416665], 16,{animate: true,duration: 1.5 });//Saint Marcel
  619.                  map.setView([47.803644, -2.416665], 9);/*/Saint Marcel*/
  620.             });
  621.             //Modale  save search
  622.             \$('.btn_save_search').click( function(e) {
  623.                 e.preventDefault();
  624.                 //Initialisation de la saugarde des recherche
  625.                 displaySaveSearchModal();
  626.             });
  627.             \$('#btn_open_search').click( function(e) {
  628.                 \$('#header_bottom').removeClass('d-none');
  629.                 \$('#header_bottom').addClass('full_height');
  630.                 // var H = \$(document).height() - \$('#header_top').height();
  631.                 // \$('#header_bottom').height(H);
  632.                 \$('#content').addClass('d-none');
  633.                 \$('#header_bottom_mobile').hide();
  634.                 // window.scroll(0, 0);
  635.             });
  636.             \$('#btn_close_search').click( function(e) {
  637.                 closeMobileSearch();
  638.             });
  639.             
  640.             \$('#btn_load_search').click( function(e) {
  641.                 searchEstates( 0 , 'filter');
  642.             });
  643.             //Encien code
  644.             // \$('#filter input').change(function() {
  645.             //     var has_btn_apply = \$(this).parents('.popover_content').find('.btn_apply').length;
  646.             //     if(has_btn_apply == 0 && \$(this).attr('id') != 'geosearch'){
  647.             //         changeButton(false);  
  648.             //         if(!isMobile() ){
  649.             //             searchEstates( 0 , 'filter');
  650.             //         }
  651.             //     }
  652.             // });
  653.             //  nouveau code ------------------------------------------------------------------------------------------
  654.                 // Fix Safari : empêche les faux \"blur\" et déclenchements change
  655.                 \$('#filter input[type=\"text\"]').on('focus', function (e) {
  656.                     e.stopPropagation();
  657.                     \$(this).data('old-value', \$(this).val());
  658.                 });
  659.                 // Pour les champs texte : Safari iOS bug avec change.  Émulation  de \"change\"   → blur + changement de valeur
  660.                 \$('#filter input[type=\"text\"]').on('blur', function () {
  661.                     var oldValue = \$(this).data('old-value');
  662.                     var newValue = \$(this).val();
  663.                     if (oldValue !== newValue) {
  664.                         handleFilterInput(\$(this));  // Comme un vrai \"change\"
  665.                     }
  666.                 });
  667.                 // Pour tous les autres inputs
  668.                 \$('#filter input:not([type=\"text\"])').on('change', function () {
  669.                     handleFilterInput(\$(this));
  670.                 });
  671.             // fin du nouveau code ------------------------------------------------------------------------------------------
  672.             \$('#contact_form').trigger(\"reset\");
  673.             //création du cookie
  674.             var params = \$('#filter form').serialize();
  675.             createCookie('sublimons_search_save' , params, 1, current_route );
  676.             //assignation du filtre si il existe ---------------------------------------------------------
  677.             var sublimons_search_save = readCookie('sublimons_search_save');
  678.             if(sublimons_search_save != null && false){
  679.                 // console.log('FILTRE');
  680.                 \$('#filter form').deserialize(sublimons_search_save);
  681.                 // console.log(\$('#filter form').serializeArray());
  682.                 //lance la recherche
  683.                 changeButton(true);
  684.                 searchEstates( 0 , 'filter');
  685.                 //si il existe une localisation 
  686.                 var geo_name = \$('#estate_filter_geo_name').val();
  687.                 var geo_bbox = \$('#estate_filter_geo_bbox').val();
  688.                 if( geo_name.length > 0 && geo_bbox.length > 0){
  689.                     \$('#geosearch').val(geo_name);                        
  690.                     geo_bbox =  JSON.parse(geo_bbox);
  691.                     bbox = [[geo_bbox[3], geo_bbox[2]],[geo_bbox[1], geo_bbox[0]]];
  692.                     if(with_map){ 
  693.                         map.fitBounds( bbox, {padding: [20, 20], maxzoom: 16});
  694.                     }
  695.                 }
  696.             }
  697.             else{
  698.                 // console.log('DIRECT');
  699.                 displayEstates( datas , 'init');
  700.             }
  701.             //deplacement de la map
  702.             if(with_map){    
  703.                 map.on('moveend', function(e) {
  704.                     setTimeout( getVisibleClusters, 500);
  705.                 });
  706.             }
  707.         });
  708. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  709.         function handleFilterInput(\$input) {
  710.             var has_btn_apply = \$input.parents('.popover_content').find('.btn_apply').length;
  711.             if (has_btn_apply == 0 && \$input.attr('id') !== 'geosearch') {
  712.                 changeButton(false);
  713.                 if (!isMobile()) {
  714.                     searchEstates(0, 'filter');
  715.                 }
  716.             }
  717.         }
  718.         function closeMobileSearch() {
  719.             if(isMobile() &&  \$('#header_bottom').is(\":visible\")){
  720.                 \$('#header_bottom').removeClass('full_height');
  721.                 \$('#header_bottom').addClass('d-none');
  722.                 \$('#content').removeClass('d-none');
  723.                 \$('#header_bottom_mobile').show();
  724.             }
  725.         }
  726.         function changeButton(with_apply) {
  727.             console.log(\"CHANGE \" + with_apply);
  728.             //Statut 
  729.             var statut_is_checked = \$('#estate_filter_statut').find('input:checked');
  730.             var label = statut_is_checked.next(\"label\").text();   
  731.             \$('#btn_estate_filter_statut').text(label);
  732.               if(label == \"Vendu\"){
  733.                 \$('#btn_estate_filter_statut').removeClass('btn-";
  734.         // line 567
  735.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 567, $this->source); })()), "html", null, true);
  736.         echo "').addClass('btn-danger');
  737.                     //on vide les champs prix
  738.                     \$('#estate_filter_prix input').val('');
  739.                     //on desactive le bouton prox
  740.                     \$('#btn_estate_filter_prix').prop('disabled', true);
  741.             }
  742.             else{
  743.                 \$('#btn_estate_filter_statut').removeClass('btn-danger').addClass('btn-";
  744.         // line 574
  745.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 574, $this->source); })()), "html", null, true);
  746.         echo "');
  747.                 //on active le bouton prix
  748.                 \$('#btn_estate_filter_prix').prop('disabled', false );
  749.             }  
  750.             //Type de bien 
  751.             var typebien_is_checked = \$('#estate_filter_typebien').find('input:checked').length;
  752.             var sous_type_is_checked = \$('#estate_filter_sous_type').find('input:checked').length;
  753.             if(typebien_is_checked > 0 || sous_type_is_checked){
  754.                 \$(\"#btn_estate_filter_typebien\") .removeClass('btn-outline-";
  755.         // line 583
  756.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 583, $this->source); })()), "html", null, true);
  757.         echo "').addClass('btn-";
  758.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 583, $this->source); })()), "html", null, true);
  759.         echo "');  
  760.             }
  761.             else{
  762.                 \$(\"#btn_estate_filter_typebien\") .removeClass('btn-";
  763.         // line 586
  764.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 586, $this->source); })()), "html", null, true);
  765.         echo "').addClass('btn-outline-";
  766.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 586, $this->source); })()), "html", null, true);
  767.         echo "');  
  768.             }
  769.             //Nombre de chambre 
  770.             var nbchambres_is_checked = \$('#estate_filter_nbchambres').find('input:checked:not(#estate_filter_nbchambres_0)').length ;
  771.             if(nbchambres_is_checked> 0 ){
  772.                 \$(\"#btn_estate_filter_nbchambres\") .removeClass('btn-outline-";
  773.         // line 592
  774.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 592, $this->source); })()), "html", null, true);
  775.         echo "').addClass('btn-";
  776.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 592, $this->source); })()), "html", null, true);
  777.         echo "');  
  778.             }
  779.             else{
  780.                 \$(\"#btn_estate_filter_nbchambres\") .removeClass('btn-";
  781.         // line 595
  782.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 595, $this->source); })()), "html", null, true);
  783.         echo "').addClass('btn-outline-";
  784.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 595, $this->source); })()), "html", null, true);
  785.         echo "');  
  786.             }
  787.             if(with_apply == true){
  788.                 //Prix
  789.                 var prix_is_not_empty =  0;   
  790.                 \$(\"#filter #estate_filter_prix input\").each(function(){
  791.                     if(\$(this).val() != ''){
  792.                         prix_is_not_empty++;
  793.                     }
  794.                 });
  795.                 if( prix_is_not_empty > 0 ){
  796.                     \$(\"#btn_estate_filter_prix\") .removeClass('btn-outline-";
  797.         // line 607
  798.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 607, $this->source); })()), "html", null, true);
  799.         echo "').addClass('btn-";
  800.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 607, $this->source); })()), "html", null, true);
  801.         echo "');  
  802.                 }
  803.                 else{
  804.                     \$(\"#btn_estate_filter_prix\") .removeClass('btn-";
  805.         // line 610
  806.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 610, $this->source); })()), "html", null, true);
  807.         echo "').addClass('btn-outline-";
  808.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 610, $this->source); })()), "html", null, true);
  809.         echo "');  
  810.                 }
  811.                 // + de critères
  812.                 var more_text_is_not_empty =  0;   
  813.                 \$(\"#filter #more_text input\").each(function(){
  814.                    if(\$(this).val() != ''){
  815.                     more_text_is_not_empty++;
  816.                    }
  817.                 });
  818.                 var more_picto_is_checked = \$('#more_picto').find('input:checked').length;
  819.                 if( more_text_is_not_empty > 0 ||  more_picto_is_checked > 0){
  820.                    \$(\"#btn_more\") .removeClass('btn-outline-";
  821.         // line 622
  822.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 622, $this->source); })()), "html", null, true);
  823.         echo "').addClass('btn-";
  824.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 622, $this->source); })()), "html", null, true);
  825.         echo "');  
  826.                 }
  827.                 else{
  828.                     \$(\"#btn_more\") .removeClass('btn-";
  829.         // line 625
  830.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 625, $this->source); })()), "html", null, true);
  831.         echo "').addClass('btn-outline-";
  832.         echo twig_escape_filter($this->env, (isset($context["theme_class"]) || array_key_exists("theme_class", $context) ? $context["theme_class"] : (function () { throw new RuntimeError('Variable "theme_class" does not exist.', 625, $this->source); })()), "html", null, true);
  833.         echo "');  
  834.                 }
  835.             }
  836.         }
  837.         function centerMe_(e) {
  838.             e.target.openOn(map);
  839.             return;
  840.             //https://github.com/erictheise/rrose
  841.             //http://jsfiddle.net/asleepwalker/6m81vtad/
  842.             //http://erictheise.com/rrose/
  843.             var marker = e.target;
  844.             var pixelPosition = map.latLngToLayerPoint(marker.getLatLng());
  845.             var marker_rose = new L.Rrose({ offset: new L.Point(0, 0), closeButton: true, autoPan: false})
  846.             .setContent(template_infobox(marker.location))
  847.             .setLatLng(e.target.getLatLng())
  848.             .openOn(map);
  849.             return;
  850.             var element = document.getElementById(marker.slug);
  851.             element.scrollIntoView({behavior: \"smooth\", block: \"center\"});
  852.             map.setView(e.target.getLatLng());
  853.             marker.setBouncingOptions(bouncing_options);
  854.             marker.bounce();
  855.         }
  856.         function centerMe(e) {
  857.             var marker = e.target;
  858.             //Positionne la liste des biens sur le marker cliqué
  859.             var element = document.getElementById(marker.slug);
  860.             element.scrollIntoView({behavior: \"smooth\", block: \"center\"});
  861.             //centre le marker au milieu de la carte
  862.             // map.setView(e.target.getLatLng());
  863.             //marker.setBouncingOptions(bouncing_options);
  864.             marker.bounce();
  865.             marker.getPopup().on('remove', function() {
  866.                 marker.stopBouncing(); 
  867.             });
  868.         }
  869.         function geoSearchOnSearch(map) {
  870.             map.closePopup();
  871.         }
  872.         
  873.         function geoSearchOnSubmit(map, object ) {
  874.             // closeMobileSearch();
  875.             if(map != false){
  876.                 map.closePopup();
  877.             }
  878.             var geo_name = \$('#geosearch').val();
  879.             var geo_bbox = JSON.stringify(object.bbox);
  880.             var geo_position = JSON.stringify(object.geometry.coordinates);
  881.             \$('#estate_filter_geo_name').val(geo_name);
  882.             \$('#estate_filter_geo_bbox').val(geo_bbox);
  883.             \$('#estate_filter_geo_position').val(geo_position);
  884.             console.log(geo_position);
  885.             searchEstates( 0 , 'filter');
  886.         }
  887.         function geoSearchOnReset(map, element) {
  888.             \$('#estate_filter_geo_name').val('');
  889.             \$('#estate_filter_geo_bbox').val('');
  890.             \$('#estate_filter_geo_position').val('');
  891.             searchEstates( 0 , 'filter');
  892.             if(map != false){
  893.                 map.setView([47.803644, -2.416665], 8); //Saint Marcel
  894.             }
  895.         }    
  896.         </script>
  897. ";
  898.         
  899.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  900.         
  901.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  902.     }
  903.     public function getTemplateName()
  904.     {
  905.         return "front/acheter/index.html.twig";
  906.     }
  907.     public function isTraitable()
  908.     {
  909.         return false;
  910.     }
  911.     public function getDebugInfo()
  912.     {
  913.         return array (  992 => 625,  984 => 622,  967 => 610,  959 => 607,  942 => 595,  934 => 592,  923 => 586,  915 => 583,  903 => 574,  893 => 567,  475 => 152,  470 => 150,  466 => 149,  461 => 147,  457 => 146,  453 => 145,  449 => 144,  443 => 141,  438 => 139,  434 => 138,  430 => 137,  425 => 135,  421 => 134,  416 => 132,  410 => 129,  401 => 123,  395 => 120,  391 => 119,  387 => 118,  384 => 117,  379 => 115,  369 => 114,  357 => 111,  353 => 109,  348 => 106,  343 => 104,  339 => 103,  334 => 102,  324 => 101,  306 => 98,  294 => 95,  290 => 94,  286 => 93,  282 => 92,  277 => 90,  265 => 81,  245 => 64,  239 => 60,  235 => 58,  226 => 51,  224 => 50,  219 => 47,  209 => 46,  191 => 35,  189 => 34,  181 => 29,  178 => 28,  168 => 27,  154 => 22,  149 => 20,  145 => 19,  138 => 15,  134 => 14,  128 => 11,  124 => 10,  120 => 9,  116 => 7,  113 => 6,  103 => 5,  84 => 4,  65 => 3,  42 => 1,);
  914.     }
  915.     public function getSourceContext()
  916.     {
  917.         return new Source("{% extends 'base.html.twig' %}
  918. {% block title %} - Annonces immobilières{% endblock %}
  919. {% block meta_description %}Trouvez votre futur nid douillet en Bretagne. Maison, appartement, bien de prestige et terrain sont mis en valeur pour vous aider dans votre choix{% endblock %}
  920. {% block metas %}
  921.     {% if  app.request.attributes.get('_route')  in ['acheter_estate', 'commerces_estate'] %}
  922.         <meta property=\"og:locale\" content=\"fr_FR\" />
  923.         <meta property=\"og:type\" content=\"article\" />
  924.         <meta property=\"og:title\" content=\"Annonce Sublimons - {{ estate.libelle|capitalize }}\" />
  925.         <meta property=\"og:description\" content=\"{{ estate.descriptifCourt|striptags }}\" />
  926.         <meta property=\"og:url\" content=\"{{ absolute_url(path( 'acheter_estate' , {refannonce:estate.refannonce})) }}/\" />
  927.         <meta property=\"og:site_name\" content=\"Sublimons\" />
  928.         <meta property=\"article:publisher\" content=\"https://www.facebook.com/sublimons\" />
  929.         <meta property=\"og:image\" content=\"{{ estate.cover|imagine_filter('stream_estate_share') }}\" />
  930.         <meta property=\"og:image:secure_url\" content=\"{{ estate.cover|imagine_filter('stream_estate_large') }}\" />
  931.         <meta property=\"og:image:width\" content=\"1200\" />
  932.         <meta property=\"og:image:height\" content=\"630\" />
  933.         <meta name=\"twitter:card\" content=\"summary\" />
  934.         <meta name=\"twitter:description\" content=\"{{ estate.descriptifCourt }}\" />
  935.         <meta name=\"twitter:title\" content=\"Annonce Sublimons - {{ estate.libelle|capitalize }}\" />
  936.         <meta name=\"twitter:site\" content=\"@Sublimonsimmo\" />
  937.         <meta name=\"twitter:image\" content=\"{{ estate.cover|imagine_filter('stream_estate_share') }}\" />
  938.         <meta name=\"twitter:creator\" content=\"@Sublimonsimmo\" />
  939.     {% endif %}
  940. {% endblock %}
  941. {% block  header_bottom %}
  942.     <div id=\"header_bottom\" class=\"container-fluid d-none d-lg-block\">
  943.         {{ include('front/acheter/_filter.html.twig') }}
  944.     </div>
  945.     <div id=\"header_bottom_mobile\" class=\"bg-dark border-top border-white container-fluid d-lg-none  text-center p-2\">
  946.         <button id=\"btn_open_search\" class=\"btn btn-primary btn-sm flex-grow-1\"><i class=\"icon-search\"></i> Rechercher</button>
  947.         <button class=\"btn_save_search btn btn-primary btn-sm mx-0 flex-grow-1\"><i class=\"icon-floppy\"></i> Sauvegarder</button>
  948.         {% include 'front/acheter/_sort.html.twig' with{'context': 'select', 'class': 'btn btn-primary btn-sm flex-grow-1', sort_by: datas.sort_by} %}
  949.     </div>
  950.     <!-- Témoin de chargement-->
  951.     <div id=\"loader\">    
  952.         <div class=\"overlay\">
  953.             <div class=\"loader\"></div>
  954.         </div>
  955.     </div>
  956. {% endblock %}
  957. {% block content %}
  958.     <section id=\"estates\" class=\"container-fluid\">
  959.         <div class=\"row\">
  960.             {% if with_map %}
  961.             <div class=\"col-lg-6 p-0 d-none d-lg-block \">
  962.                 <div class=\"map_full bg-light\">    
  963.                     <div id=\"estates_map\" class=\"map_container\"></div>
  964.                 </div>
  965.             </div>
  966.             <div id=\"list_sidebar\" class=\"with_map col-lg-6 px-0\">
  967.             {% else %}
  968.             <div id=\"list_sidebar\" class=\"col-lg-12 px-0\">
  969.             {% endif %}
  970.                 <div class=\"p-3 p-lg-4 px-xxl-5 \">
  971.                     <div class=\"d-none d-lg-block\">
  972.                         <div class=\"d-flex justify-content-between pl-3 pr-0 mb-2\">
  973.                             <div  style=\"visibility: hidden;\"><span id=\"visible_estates\"></span>/<span id=\"total_estates\"></span> résultats</div>
  974.                             <div id=\"estastes_sort\">Trier : {% include 'front/acheter/_sort.html.twig' with {'context': 'select', 'class': 'select-unstyle', sort_by: datas.sort_by} %}</div>
  975.                         </div>
  976.                     </div>
  977.                     <div id=\"estates_container\" class=\"row align-items-stretch\"></div>
  978.                     <div id=\"no_estate\" class=\"banner_no_content banner_container text-white col-md-6 col-lg-12 col-xl-9 mx-auto\" style=\"display:none;\">
  979.                         <div class=\"bloc_txt_image\">
  980.                             <div class=\"bg_image\" style=\"background-image: url(/assets/media/acheter/no_content_L.jpg);\"></div>
  981.                             <div class=\"overlay\"></div>
  982.                             <div class=\"content py-5 \">
  983.                                 <div class=\"mt-5 px-4 py-5 mt-xl-0  d-flex align-items-center  text-center\">
  984.                                     <div class=\"pt-5\">
  985.                                         <h4 class=\"mb-2\">Aucun bien ne correspond à votre recherche</h4>
  986.                                         <p>Contactez le conseiller proche de chez vous</p>
  987.                                     </div>
  988.                                 </div>
  989.                             </div>
  990.                             <div class=\"btn_container\">
  991.                                 <a class=\"btn-horn\" href=\"{{ path( 'agents' ) }}\" target=\"_blank\"><span>Je contacte !</span></a>
  992.                             </div>
  993.                         </div>
  994.                     </div>
  995.                 </div>
  996.             </div>
  997.         </div>
  998.     </section>
  999.     <div id=\"contactForm_source\" style=\"display: none;\">{{ render(controller('App\\\\Controller\\\\Front\\\\MessageController::contactForm', { 'context': 'agent' , 'display' : 'agent_modal'}))  }}</div>
  1000.     {{ source('front/acheter/estates-template.html') }}
  1001.     {{ source('front/acheter/estate-infobox-template.html') }}
  1002.     {{ source('front/acheter/modal-template.html') }}
  1003.     {{ include('front/acheter/modal-save_search.html.twig') }}  
  1004. {% endblock %}
  1005. {% block footer %}
  1006. {% endblock %}
  1007. {% block stylesheets %}
  1008.     {{ parent() }}
  1009.     <link rel=\"stylesheet\" href=\"{{ asset('assets/vendor/OwlCarousel2-2.3.4/dist/assets/owl.carousel.min.css') }}\"/>
  1010.     <link rel=\"stylesheet\" href=\"{{ asset('assets/vendor/OwlCarousel2-2.3.4/dist/assets/owl.theme.default.min.css') }}\"/>
  1011.     <link rel=\"stylesheet\" href=\"{{ asset('assets/vendor/bootstrap-4-master/build/css/tempusdominus-bootstrap-4.min.css') }}\"/>
  1012.     <link rel=\"stylesheet\" href=\"https://unpkg.com/leaflet@1.7.1/dist/leaflet.css\" />
  1013.     {# <link rel=\"stylesheet\" href=\"{{ asset('assets/vendor/leaflet-control-geocoder/Control.Geocoder.css') }}\"/> #}
  1014.     <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/gh/tomik23/autocomplete@1.6.8/dist/css/autocomplete.min.css\"/>
  1015.     <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css\" />
  1016.     <link rel=\"stylesheet\" href=\"{{ asset('assets/css/dpe_ges.css') }}\"/>
  1017. {% endblock %}
  1018. {% block javascripts %}
  1019.     {{ parent() }}
  1020. {# <script src=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js\"></script> #}
  1021.     <script src=\"{{ asset('bundles/fosjsrouting/js/router.min.js') }}\"></script>
  1022.     <script src=\"{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}\"></script>
  1023.     <script src=\"{{ asset('assets/vendor/OwlCarousel2-2.3.4/dist/owl.carousel.min.js') }}\"></script>
  1024.     <script src=\"https://cdn.jsdelivr.net/npm/lazyload@2.0.0-rc.2/lazyload.js\"></script>
  1025.     <script src=\"{{ asset('assets/vendor/swag.min.js') }}\"></script>
  1026.     <script src=\"https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js\"></script>
  1027.     <script src=\"https://unpkg.com/leaflet@1.7.1/dist/leaflet.js\"></script>
  1028.     <script src=\"https://leaflet.github.io/Leaflet.markercluster/dist/leaflet.markercluster-src.js\"></script>
  1029.     <script src=\"{{ asset('assets/vendor/Leaflet.SmoothMarkerBouncing.js') }}\"></script>
  1030.     <script src=\"https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js\" integrity=\"sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==\" crossorigin=\"anonymous\"></script>
  1031.     <script src=\"https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/locale/fr.min.js\" integrity=\"sha512-RAt2+PIRwJiyjWpzvvhKAG2LEdPpQhTgWfbEkFDCo8wC4rFYh5GQzJBVIFDswwaEDEYX16GEE/4fpeDNr7OIZw==\" crossorigin=\"anonymous\"></script>
  1032.     <script src=\"{{ asset('assets/vendor/bootstrap-4-master/build/js/tempusdominus-bootstrap-4.js') }}\"></script>
  1033.     <script src=\"https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js\"></script>
  1034.     <script src=\"{{ asset('assets/vendor/jquery.serialize-object.min.js') }}\"></script>
  1035.     <script src=\"{{ asset('assets/js/autocomplete.js') }}\"></script>
  1036.     <script src=\"{{ asset('assets/js/base_map.js?v1.0') }}\"></script>
  1037.     <script src=\"{{ asset('assets/js/estates_map.js?v1.3') }}\"></script>
  1038.     <script src=\"{{ asset('assets/js/rrose.js') }}\"></script>
  1039.     <script src=\"{{ asset('assets/js/auto_complete_geosearch.js') }}\"></script>
  1040.     <script>
  1041.         var current_page = '{{ current_route }}'; 
  1042.         var current_route = Routing.generate('{{ current_route }}'); 
  1043.         var datas  = {{ datas|json_encode()|raw }};
  1044.         var banners  = {{ banners|json_encode()|raw }};
  1045.         var col_class  = datas.col_class;
  1046.         var with_map  = {{ with_map }};
  1047.         var with_carrousel  = {{ with_carrousel }};
  1048.         var current_banner = 0;
  1049.         var next_estates = {{ datas.next }};
  1050.         // console.log(datas.estates);
  1051.         var source_estate;
  1052.         var template_estate;
  1053.         var source_btn_next;
  1054.         var template_btn_next;
  1055.         var source_infobox;
  1056.         var template_infobox;
  1057.         var source_modal;
  1058.         var template_modal;
  1059.         var source_banner;
  1060.         var template_banner;
  1061.         jQuery(document).ready(function(){ 
  1062.             initHandlebars();
  1063.             source_estates   = \$(\"#estates-template\").html();
  1064.             template_estates  = Handlebars.compile(source_estates);
  1065.             source_btn_next   = \$(\"#btn_next-template\").html();
  1066.             template_btn_next  = Handlebars.compile(source_btn_next);
  1067.             source_infobox   = \$(\"#infobox-template\").html();
  1068.             template_infobox  = Handlebars.compile(source_infobox);
  1069.             source_modal   = \$(\"#modal-template\").html();
  1070.             template_modal  = Handlebars.compile(source_modal);
  1071.             source_banner   = \$(\"#banner-template\").html();
  1072.             template_banner  = Handlebars.compile(source_banner);
  1073.             //Initialisation de la sauvegarde des recherche
  1074.             if(\$('#search_form').length > 0){
  1075.                 initSaveSearchForm();
  1076.             }
  1077.             
  1078.             //Ouverture par url
  1079.             var parts = window.location.pathname.split('/');
  1080.             if( parts.length == 3 ) {
  1081.                 var refannonce = parts[2];
  1082.                 var estate = datas.estates.find(estate => String(estate.refannonce) === String(refannonce));
  1083.                 if( estate === undefined){ //ajax
  1084.                     getEstate(refannonce);
  1085.                 }
  1086.                 else{
  1087.                     displayEstate(estate); 
  1088.                 }
  1089.             }
  1090.             
  1091.             if(with_map){
  1092.                 setMap( 'estates_map', 9, 7, 16 );
  1093.                 geoSearch('geosearch', map);
  1094.             }
  1095.             else{
  1096.                 geoSearch('geosearch', false);
  1097.             }
  1098.             //gestion du filtre
  1099.             \$('#filter form').submit(function(e){
  1100.                 e.preventDefault();
  1101.             });
  1102.             //Filtre à zero
  1103.             \$('#filter form').trigger(\"reset\");
  1104.             //Tri
  1105.             \$(\".sort_estate\").change(\"change\", function(){
  1106.                 \$('#filter form #sort_by').val(\$(this).val());
  1107.                 searchEstates( 0 , 'filter');
  1108.             });
  1109.          \$('.dropdown-item').click(function(e) {
  1110.                 e.preventDefault(); // empêcher le lien de naviguer
  1111.                 var value = \$(this).data('value'); // nouvelle valeur
  1112.                 var label = \$(this).text();        // texte à afficher
  1113.                 // Mettre à jour le champ caché
  1114.                 \$('#sort_by').val(value);
  1115.                 \$('#filter form #sort_by').val(value);
  1116.                 // Mettre à jour le texte du bouton
  1117.                 \$('#dropdownSort').text(label);
  1118.                 // Mettre à jour l'option active
  1119.                 \$('.dropdown-item').removeClass('active text-white bg-primary');
  1120.                 \$(this).addClass('active text-white bg-primary');
  1121.             });
  1122.             //Ajout des parametres d'url dans le filtre ---------------------------------------------------------
  1123.             //Ajout des parametres d'url dans le filtre
  1124.             // const queryString = window.location.search;
  1125.             // const urlParams = new URLSearchParams(window.location);
  1126.             const url = new URL(window.location);
  1127.             const urlParams = url.searchParams;
  1128.             \$('#estate_filter_nue_propriete').val(0);
  1129.             \$('#estate_filter_neuf').val(0);
  1130.             if(urlParams.size > 0){
  1131.                 if(urlParams.has('type')){
  1132.                     var typebien = urlParams.get('type'); 
  1133.                     var checkbox = \$('#estate_filter_typebien').find(':checkbox[value=\"'+typebien+'\"]');
  1134.                     checkbox.prop(\"checked\",\"true\");
  1135.                 }
  1136.                 else if(urlParams.has('nue_propriete')){
  1137.                     \$('#estate_filter_nue_propriete').val(urlParams.get('nue_propriete'));
  1138.                 }
  1139.                 else if(urlParams.has('neuf')){
  1140.                     \$('#estate_filter_neuf').val(urlParams.get('neuf'));
  1141.                 }
  1142.                 else if(urlParams.has('autres')){
  1143.                     var not_types = ['maison/villa', 'appartement', 'terrain'];
  1144.     
  1145.                     \$('#estate_filter_typebien input:checkbox').each(function(){
  1146.                         if(\$.inArray(\$(this).val(), not_types) == -1){
  1147.                             \$(this).prop(\"checked\",\"true\");
  1148.                         }
  1149.                     });
  1150.                     
  1151.                 }
  1152.             }
  1153.             
  1154.             \$(\"#filter [data-toggle=popover]\").popover({
  1155.                 // trigger: 'focus',
  1156.                 customClass: \$(\"#filter [data-toggle=popover]\").data('popover_class'),
  1157.                 html: true, 
  1158.                 sanitize: false,
  1159.                 content: function() {
  1160.                     return \$(this).next().html();
  1161.                 }
  1162.             });
  1163.             //fermeture de tous les popover avant l'ouverture 
  1164.             \$('#filter [data-toggle=popover]').on('show.bs.popover', function (event) {
  1165.                 \$('#filter [data-toggle=popover]').popover('hide');
  1166.             });
  1167.             //synchro avec les input du filtre 
  1168.             \$('#filter [data-toggle=popover]').on('inserted.bs.popover', function (event) {
  1169.                 var button =  \$(event.target)
  1170.                 var popover_source = button.next();
  1171.                 // Affichage des valeurs de la source cachée
  1172.                 //input text
  1173.                 popover_source.find('input[type=text]').each(function(){
  1174.                     \$('.popover').find('#'+\$(this).attr(\"id\")).val( \$(this).val() );
  1175.                 });
  1176.                 //check radio
  1177.                 popover_source.find('input[type=radio]').each(function(){
  1178.                     \$('.popover').find('#'+\$(this).attr(\"id\")).prop('checked', \$(this).is(':checked'));
  1179.                 });
  1180.                 //check checkbox
  1181.                 popover_source.find('input[type=checkbox]').each(function(){
  1182.                     \$('.popover').find('#'+\$(this).attr(\"id\")).prop('checked', \$(this).is(':checked'));
  1183.                 });
  1184.                 //survol des checkbox_icone
  1185.                 \$('.popover').find('[data-toggle=\"tooltip\"]').tooltip();
  1186.                 // A la saisie on synchronise les champs -----------------------------------------
  1187.                 // input text
  1188.                 \$('.popover input[type=text]').change(function() {
  1189.                     popover_source.find('#'+\$(this).attr(\"id\")).val( \$(this).val() ).trigger('change');
  1190.                 });
  1191.                 //input radio in popover
  1192.                 \$('.popover input[type=radio]').change(function() {
  1193.                     popover_source.find('#'+\$(this).attr(\"id\")).prop('checked', \$(this).is(':checked'));
  1194.                     popover_source.find('#'+\$(this).attr(\"id\")).trigger('change');
  1195.                 });
  1196.                 //input radio in popover
  1197.                 \$('.popover input[type=checkbox]').change(function() {
  1198.                     popover_source.find('#'+\$(this).attr(\"id\")).prop('checked', \$(this).is(':checked'));
  1199.                     popover_source.find('#'+\$(this).attr(\"id\")).trigger('change');
  1200.                 });
  1201.                 //input radio in source : marche à l'envers à cause de l'id
  1202.                 popover_source.find('input[type=radio]').change(function() {
  1203.                     \$('.popover').find('#'+\$(this).attr(\"id\")).prop('checked', \$(this).is(':checked'));
  1204.                    //pour le statut on change le texte du bouton
  1205.                     // if(\$(this).attr('name') == \"estate_filter[statut]\"){
  1206.                     //     changeButtonStatut(\$(this).next().text());
  1207.                     // }
  1208.                 });
  1209.                 //input checkbox : : marche à l'envers à cause de l'id
  1210.                 popover_source.find('input[type=checkbox]').change(function() {
  1211.                     \$('.popover').find('#'+\$(this).attr(\"id\")).prop('checked', \$(this).is(':checked'));
  1212.                 });
  1213.                 //range_prices click
  1214.                 \$('.popover #range_prices a.price_min').click( function(e) {
  1215.                     e.preventDefault();
  1216.                     \$('.popover #estate_filter_prix_left_number').val(\$(this).data('price')).trigger('change');
  1217.                 });
  1218.                 \$('.popover #range_prices a.price_max').click( function(e) {
  1219.                     e.preventDefault();
  1220.                     \$('.popover #estate_filter_prix_right_number').val(\$(this).data('price')).trigger('change');
  1221.                 });
  1222.                 //
  1223.                 \$('.popover .btn_apply').click( function(e) {
  1224.                     e.preventDefault();
  1225.                     changeButton(true); 
  1226.                     button.popover('hide');
  1227.                     searchEstates( 0 , 'filter');
  1228.                 });
  1229.                 \$('.popover .btn_cancel').click( function(e) {
  1230.                     e.preventDefault();
  1231.                        
  1232.                     \$('.popover').find('input[type=text]').each(function(){
  1233.                         \$(this).val('').trigger('change');
  1234.                     });
  1235.                     \$('.popover').find('input[type=checkbox]').each(function(){
  1236.                         \$(this).prop('checked', false).trigger('change');
  1237.                     });                    
  1238.                     changeButton(true);
  1239.                     searchEstates( 0 , 'filter');
  1240.                 });
  1241.             });
  1242.             \$('.btn_reset').click( function(e) {
  1243.                 e.preventDefault();
  1244.                 \$('#filter form').trigger(\"reset\");
  1245.                 \$('#estate_filter_geo_name').val('');
  1246.                 \$('#estate_filter_geo_bbox').val('');
  1247.                 \$('#estate_filter_geo_position').val('');
  1248.                 changeButton(true);
  1249.                 searchEstates( 0 , 'filter');
  1250.                 // map.flyTo([47.803644, -2.416665], 16,{animate: true,duration: 1.5 });//Saint Marcel
  1251.                  map.setView([47.803644, -2.416665], 9);/*/Saint Marcel*/
  1252.             });
  1253.             //Modale  save search
  1254.             \$('.btn_save_search').click( function(e) {
  1255.                 e.preventDefault();
  1256.                 //Initialisation de la saugarde des recherche
  1257.                 displaySaveSearchModal();
  1258.             });
  1259.             \$('#btn_open_search').click( function(e) {
  1260.                 \$('#header_bottom').removeClass('d-none');
  1261.                 \$('#header_bottom').addClass('full_height');
  1262.                 // var H = \$(document).height() - \$('#header_top').height();
  1263.                 // \$('#header_bottom').height(H);
  1264.                 \$('#content').addClass('d-none');
  1265.                 \$('#header_bottom_mobile').hide();
  1266.                 // window.scroll(0, 0);
  1267.             });
  1268.             \$('#btn_close_search').click( function(e) {
  1269.                 closeMobileSearch();
  1270.             });
  1271.             
  1272.             \$('#btn_load_search').click( function(e) {
  1273.                 searchEstates( 0 , 'filter');
  1274.             });
  1275.             //Encien code
  1276.             // \$('#filter input').change(function() {
  1277.             //     var has_btn_apply = \$(this).parents('.popover_content').find('.btn_apply').length;
  1278.             //     if(has_btn_apply == 0 && \$(this).attr('id') != 'geosearch'){
  1279.             //         changeButton(false);  
  1280.             //         if(!isMobile() ){
  1281.             //             searchEstates( 0 , 'filter');
  1282.             //         }
  1283.             //     }
  1284.             // });
  1285.             //  nouveau code ------------------------------------------------------------------------------------------
  1286.                 // Fix Safari : empêche les faux \"blur\" et déclenchements change
  1287.                 \$('#filter input[type=\"text\"]').on('focus', function (e) {
  1288.                     e.stopPropagation();
  1289.                     \$(this).data('old-value', \$(this).val());
  1290.                 });
  1291.                 // Pour les champs texte : Safari iOS bug avec change.  Émulation  de \"change\"   → blur + changement de valeur
  1292.                 \$('#filter input[type=\"text\"]').on('blur', function () {
  1293.                     var oldValue = \$(this).data('old-value');
  1294.                     var newValue = \$(this).val();
  1295.                     if (oldValue !== newValue) {
  1296.                         handleFilterInput(\$(this));  // Comme un vrai \"change\"
  1297.                     }
  1298.                 });
  1299.                 // Pour tous les autres inputs
  1300.                 \$('#filter input:not([type=\"text\"])').on('change', function () {
  1301.                     handleFilterInput(\$(this));
  1302.                 });
  1303.             // fin du nouveau code ------------------------------------------------------------------------------------------
  1304.             \$('#contact_form').trigger(\"reset\");
  1305.             //création du cookie
  1306.             var params = \$('#filter form').serialize();
  1307.             createCookie('sublimons_search_save' , params, 1, current_route );
  1308.             //assignation du filtre si il existe ---------------------------------------------------------
  1309.             var sublimons_search_save = readCookie('sublimons_search_save');
  1310.             if(sublimons_search_save != null && false){
  1311.                 // console.log('FILTRE');
  1312.                 \$('#filter form').deserialize(sublimons_search_save);
  1313.                 // console.log(\$('#filter form').serializeArray());
  1314.                 //lance la recherche
  1315.                 changeButton(true);
  1316.                 searchEstates( 0 , 'filter');
  1317.                 //si il existe une localisation 
  1318.                 var geo_name = \$('#estate_filter_geo_name').val();
  1319.                 var geo_bbox = \$('#estate_filter_geo_bbox').val();
  1320.                 if( geo_name.length > 0 && geo_bbox.length > 0){
  1321.                     \$('#geosearch').val(geo_name);                        
  1322.                     geo_bbox =  JSON.parse(geo_bbox);
  1323.                     bbox = [[geo_bbox[3], geo_bbox[2]],[geo_bbox[1], geo_bbox[0]]];
  1324.                     if(with_map){ 
  1325.                         map.fitBounds( bbox, {padding: [20, 20], maxzoom: 16});
  1326.                     }
  1327.                 }
  1328.             }
  1329.             else{
  1330.                 // console.log('DIRECT');
  1331.                 displayEstates( datas , 'init');
  1332.             }
  1333.             //deplacement de la map
  1334.             if(with_map){    
  1335.                 map.on('moveend', function(e) {
  1336.                     setTimeout( getVisibleClusters, 500);
  1337.                 });
  1338.             }
  1339.         });
  1340. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1341.         function handleFilterInput(\$input) {
  1342.             var has_btn_apply = \$input.parents('.popover_content').find('.btn_apply').length;
  1343.             if (has_btn_apply == 0 && \$input.attr('id') !== 'geosearch') {
  1344.                 changeButton(false);
  1345.                 if (!isMobile()) {
  1346.                     searchEstates(0, 'filter');
  1347.                 }
  1348.             }
  1349.         }
  1350.         function closeMobileSearch() {
  1351.             if(isMobile() &&  \$('#header_bottom').is(\":visible\")){
  1352.                 \$('#header_bottom').removeClass('full_height');
  1353.                 \$('#header_bottom').addClass('d-none');
  1354.                 \$('#content').removeClass('d-none');
  1355.                 \$('#header_bottom_mobile').show();
  1356.             }
  1357.         }
  1358.         function changeButton(with_apply) {
  1359.             console.log(\"CHANGE \" + with_apply);
  1360.             //Statut 
  1361.             var statut_is_checked = \$('#estate_filter_statut').find('input:checked');
  1362.             var label = statut_is_checked.next(\"label\").text();   
  1363.             \$('#btn_estate_filter_statut').text(label);
  1364.               if(label == \"Vendu\"){
  1365.                 \$('#btn_estate_filter_statut').removeClass('btn-{{theme_class }}').addClass('btn-danger');
  1366.                     //on vide les champs prix
  1367.                     \$('#estate_filter_prix input').val('');
  1368.                     //on desactive le bouton prox
  1369.                     \$('#btn_estate_filter_prix').prop('disabled', true);
  1370.             }
  1371.             else{
  1372.                 \$('#btn_estate_filter_statut').removeClass('btn-danger').addClass('btn-{{theme_class }}');
  1373.                 //on active le bouton prix
  1374.                 \$('#btn_estate_filter_prix').prop('disabled', false );
  1375.             }  
  1376.             //Type de bien 
  1377.             var typebien_is_checked = \$('#estate_filter_typebien').find('input:checked').length;
  1378.             var sous_type_is_checked = \$('#estate_filter_sous_type').find('input:checked').length;
  1379.             if(typebien_is_checked > 0 || sous_type_is_checked){
  1380.                 \$(\"#btn_estate_filter_typebien\") .removeClass('btn-outline-{{theme_class }}').addClass('btn-{{theme_class }}');  
  1381.             }
  1382.             else{
  1383.                 \$(\"#btn_estate_filter_typebien\") .removeClass('btn-{{theme_class }}').addClass('btn-outline-{{theme_class }}');  
  1384.             }
  1385.             //Nombre de chambre 
  1386.             var nbchambres_is_checked = \$('#estate_filter_nbchambres').find('input:checked:not(#estate_filter_nbchambres_0)').length ;
  1387.             if(nbchambres_is_checked> 0 ){
  1388.                 \$(\"#btn_estate_filter_nbchambres\") .removeClass('btn-outline-{{theme_class }}').addClass('btn-{{theme_class }}');  
  1389.             }
  1390.             else{
  1391.                 \$(\"#btn_estate_filter_nbchambres\") .removeClass('btn-{{theme_class }}').addClass('btn-outline-{{theme_class }}');  
  1392.             }
  1393.             if(with_apply == true){
  1394.                 //Prix
  1395.                 var prix_is_not_empty =  0;   
  1396.                 \$(\"#filter #estate_filter_prix input\").each(function(){
  1397.                     if(\$(this).val() != ''){
  1398.                         prix_is_not_empty++;
  1399.                     }
  1400.                 });
  1401.                 if( prix_is_not_empty > 0 ){
  1402.                     \$(\"#btn_estate_filter_prix\") .removeClass('btn-outline-{{theme_class }}').addClass('btn-{{theme_class }}');  
  1403.                 }
  1404.                 else{
  1405.                     \$(\"#btn_estate_filter_prix\") .removeClass('btn-{{theme_class }}').addClass('btn-outline-{{theme_class }}');  
  1406.                 }
  1407.                 // + de critères
  1408.                 var more_text_is_not_empty =  0;   
  1409.                 \$(\"#filter #more_text input\").each(function(){
  1410.                    if(\$(this).val() != ''){
  1411.                     more_text_is_not_empty++;
  1412.                    }
  1413.                 });
  1414.                 var more_picto_is_checked = \$('#more_picto').find('input:checked').length;
  1415.                 if( more_text_is_not_empty > 0 ||  more_picto_is_checked > 0){
  1416.                    \$(\"#btn_more\") .removeClass('btn-outline-{{theme_class }}').addClass('btn-{{theme_class }}');  
  1417.                 }
  1418.                 else{
  1419.                     \$(\"#btn_more\") .removeClass('btn-{{theme_class }}').addClass('btn-outline-{{theme_class }}');  
  1420.                 }
  1421.             }
  1422.         }
  1423.         function centerMe_(e) {
  1424.             e.target.openOn(map);
  1425.             return;
  1426.             //https://github.com/erictheise/rrose
  1427.             //http://jsfiddle.net/asleepwalker/6m81vtad/
  1428.             //http://erictheise.com/rrose/
  1429.             var marker = e.target;
  1430.             var pixelPosition = map.latLngToLayerPoint(marker.getLatLng());
  1431.             var marker_rose = new L.Rrose({ offset: new L.Point(0, 0), closeButton: true, autoPan: false})
  1432.             .setContent(template_infobox(marker.location))
  1433.             .setLatLng(e.target.getLatLng())
  1434.             .openOn(map);
  1435.             return;
  1436.             var element = document.getElementById(marker.slug);
  1437.             element.scrollIntoView({behavior: \"smooth\", block: \"center\"});
  1438.             map.setView(e.target.getLatLng());
  1439.             marker.setBouncingOptions(bouncing_options);
  1440.             marker.bounce();
  1441.         }
  1442.         function centerMe(e) {
  1443.             var marker = e.target;
  1444.             //Positionne la liste des biens sur le marker cliqué
  1445.             var element = document.getElementById(marker.slug);
  1446.             element.scrollIntoView({behavior: \"smooth\", block: \"center\"});
  1447.             //centre le marker au milieu de la carte
  1448.             // map.setView(e.target.getLatLng());
  1449.             //marker.setBouncingOptions(bouncing_options);
  1450.             marker.bounce();
  1451.             marker.getPopup().on('remove', function() {
  1452.                 marker.stopBouncing(); 
  1453.             });
  1454.         }
  1455.         function geoSearchOnSearch(map) {
  1456.             map.closePopup();
  1457.         }
  1458.         
  1459.         function geoSearchOnSubmit(map, object ) {
  1460.             // closeMobileSearch();
  1461.             if(map != false){
  1462.                 map.closePopup();
  1463.             }
  1464.             var geo_name = \$('#geosearch').val();
  1465.             var geo_bbox = JSON.stringify(object.bbox);
  1466.             var geo_position = JSON.stringify(object.geometry.coordinates);
  1467.             \$('#estate_filter_geo_name').val(geo_name);
  1468.             \$('#estate_filter_geo_bbox').val(geo_bbox);
  1469.             \$('#estate_filter_geo_position').val(geo_position);
  1470.             console.log(geo_position);
  1471.             searchEstates( 0 , 'filter');
  1472.         }
  1473.         function geoSearchOnReset(map, element) {
  1474.             \$('#estate_filter_geo_name').val('');
  1475.             \$('#estate_filter_geo_bbox').val('');
  1476.             \$('#estate_filter_geo_position').val('');
  1477.             searchEstates( 0 , 'filter');
  1478.             if(map != false){
  1479.                 map.setView([47.803644, -2.416665], 8); //Saint Marcel
  1480.             }
  1481.         }    
  1482.         </script>
  1483. {% endblock %}        ", "front/acheter/index.html.twig", "/home/pofr4524/sites/dev.sublimons.com/templates/front/acheter/index.html.twig");
  1484.     }
  1485. }