templates/home/index.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}TripUp{% endblock %}
  3. {% block stylesheets %}
  4.       <!-- <link rel="stylesheet" type="text/css" charset="UTF-8" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.css" /> -->
  5.         <link rel="stylesheet" type="text/css" charset="UTF-8" href="{{ asset('css/slick.min.css') }}" />
  6.  <!-- <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick-theme.min.css" /> -->
  7. <link rel="stylesheet" type="text/css" href="{{ asset('css/slick-theme.min.css') }}" />
  8.         <link rel="stylesheet" href="{{ asset('css/multirange.css') }}">  
  9.         <link rel="stylesheet" href="{{ asset('css/default.css') }}">  
  10.         <link rel="stylesheet" href="{{ asset('css/styles.css') }}">   
  11.         <link rel="manifest" href="{{ asset('build/manifest.json') }}">  
  12.         <link rel="manifest" href="{{ asset('build/entrypoints.json') }}">  
  13. {% endblock %}
  14. {% block body %}
  15. <div id="infomodal">
  16.     <div class="infos">
  17.     <span class="buttclose">X</span>
  18.     <div class="sepa" >
  19.        <div class="image" ><img class="lazy" data-src="{{ asset('img/triporteur.jpg') }}" alt="" /></div>
  20.        <div class="texte" >
  21.     <h4 id="info_triporteur">Triporteurs chargement avant </h4>
  22.     <p>il s’agit de tricycles, avec une caisse devant et dans laquelle on peut transporter des marchandises, mais aussi présenter des produits…La plupart de nos triporteurs sont équipés de tonnelles. On peut aussi écrire tri-porteurs </p></div>
  23.     </div>
  24.     <div class="sepa" >
  25.        <div class="image" ><img class="lazy" data-src="{{ asset('img/chariot.jpg') }}" alt="" /></div>
  26.        <div class="texte" >
  27.         <h4 id="info_chariot">Chariot</h4> 
  28.         <p></p>
  29.         </div>
  30.     </div>
  31.     <div class="sepa" >
  32.        <div class="image" ><img class="lazy" data-src="{{ asset('img/triporteurar.jpg') }}" alt="" /></div>
  33.        <div class="texte" >
  34.        <h4 id="info_Cargo">Triporteurs cargo </h4>
  35.         <p>il s’agit de tricycles, avec une caisse à l’arrière, et dans laquelle on peut transporter des marchandises, mais aussi présenter des produits… </p>
  36.         </div>
  37.     </div>
  38.     <div class="sepa" >
  39.        <div class="image" ><img class="lazy" data-src="{{ asset('img/remorque.jpg') }}" alt="" /></div>
  40.        <div class="texte" >
  41.        <h4 id="info_Remorque">Remorque publicitaires</h4>
  42.         <p>il s’agit de remorques publicitaires</p>
  43.         </div>
  44.     </div>
  45.     <div class="sepa" >
  46.        <div class="image" ><img class="lazy" data-src="{{ asset('img/rosalie.jpg') }}" alt="" /></div>
  47.        <div class="texte" >
  48.        <h4 id="info_Rosalies">Rosalie</h4>
  49.         <p>Il s’agit de tricycles ou quadricycles dont les passagers peuvent pédaler cotes à côtes. Nous en avons pouvant contenir 2 adultes et 2 enfants et d’autres de 4 adultes et 2 enfants. </p>
  50.         </div>
  51.     </div>
  52.     <div class="sepa" >
  53.        <div class="image" ><img class="lazy" data-src="{{ asset('img/velotaxi.jpg') }}" alt="" /></div>
  54.        <div class="texte" >
  55.        <h4 id="info_VeloTaxi">Vélos-taxis</h4>
  56.         <p>Il s’agit d’un tricycle dont la cabine est généralement à l’arrière, et pouvant transporter, généralement, 2 adultes et 1 enfant</p>
  57.         </div>
  58.     </div>
  59.     <div class="sepa" >
  60.        <div class="image" ><img class="lazy" data-src="{{ asset('img/velo.jpg') }}" alt="" /></div>
  61.        <div class="texte" >
  62.        <h4 id="info_Velo">Vélos 2 roues</h4>
  63.         <p></p>
  64.         </div>
  65.     </div>  
  66.     
  67.     <div class="sepa" >
  68.        <div class="image" ><img class="lazy" data-src="{{ asset('img/quadriporteur.jpg') }}" alt="" /></div>
  69.        <div class="texte" >
  70.        <h4 id="info_quadriporteur">Quadriporteurs</h4>
  71.         <p>Il s’agit d’un quadricycle pouvant transporter, à l’avant, ou à l’arrière, une caisse</p>
  72.         </div>
  73.     </div>  
  74.     <div class="sepa" >
  75.        <div class="image" ><img class="lazy" data-src="{{ asset('img/triporteurcollecte.jpg') }}" alt="" /></div>
  76.        <div class="texte" >
  77.        <h4 id="info_triporteurcollecte">Triporteurs collecte de déchets</h4>
  78.         <p></p>
  79.         </div>
  80.     </div>  
  81.     <div class="sepa" >
  82.        <div class="image" ><img class="lazy" data-src="{{ asset('img/triporteurenfant.jpg') }}" alt="" /></div>
  83.        <div class="texte" >
  84.        <h4 id="info_triporteurenfant">Triporteurs enfants/animaux</h4>
  85.         <p></p>
  86.         </div>
  87.     </div>  
  88.     <div class="sepa" >
  89.        <div class="image" ><img class="lazy" data-src="{{ asset('img/tandem.jpg') }}" alt="" /></div>
  90.        <div class="texte" >
  91.        <h4 id="info_tandems">Tandems</h4>
  92.         <p></p>
  93.         </div>
  94.     </div>   
  95.      <div class="sepa" >
  96.        <div class="image" ><img class="lazy" data-src="{{ asset('img/velocaleche.jpg') }}" alt="" /></div>
  97.        <div class="texte" >
  98.        <h4 id="info_velocaleche">Vélos-caleches</h4>
  99.         <p></p>
  100.         </div>
  101.     </div>   
  102.      <div class="sepa" >
  103.        <div class="image" ><img class="lazy" data-src="{{ asset('img/velovoiture.jpg') }}" alt="" /></div>
  104.        <div class="texte" >
  105.        <h4 id="info_velovoiture">Vélos-voitures</h4>
  106.         <p></p>
  107.         </div>
  108.     </div>  
  109.     </div>
  110. </div>
  111.     
  112. <div id="divfilter" class="filterside">
  113. <div id="filtres">
  114.     <div id="validfilter" onClick="showfiltre()">Valider</div>
  115.     <div class="bloctop2"> 
  116.         <img class="lazy" data-src="{{ asset('/img/filtre.png') }}" onclick="afffiltre()" alt="afficher les filtres"> 
  117.     </div>
  118.     <div id="filtresel">
  119.         <div class="bloctop">
  120.         <label id="remfiltre" onClick="showfiltre()" for="masquerfiltre">Masquer les filtres</label>
  121.     </div>
  122.     <div id="filtresel1" class="blocfiltre">
  123.     <!-- <div id="gestmodal" onClick="showfiltre()">
  124.     <span>Filtres</span>
  125.     <svg id="afffiltre" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><path d="M 25 7 C 23.148438 7 21.59375 8.285156 21.144531 10 L 3 10 C 2.640625 9.996094 2.304688 10.183594 2.121094 10.496094 C 1.941406 10.808594 1.941406 11.191406 2.121094 11.503906 C 2.304688 11.816406 2.640625 12.003906 3 12 L 21.144531 12 C 21.59375 13.714844 23.148438 15 25 15 C 26.851563 15 28.40625 13.714844 28.855469 12 L 47 12 C 47.359375 12.003906 47.695313 11.816406 47.878906 11.503906 C 48.058594 11.191406 48.058594 10.808594 47.878906 10.496094 C 47.695313 10.183594 47.359375 9.996094 47 10 L 28.855469 10 C 28.40625 8.285156 26.851563 7 25 7 Z M 25 9 C 26.085938 9 26.941406 9.835938 26.988281 10.910156 C 26.984375 10.96875 26.984375 11.03125 26.988281 11.09375 C 26.941406 12.164063 26.085938 13 25 13 C 23.914063 13 23.058594 12.164063 23.011719 11.089844 C 23.015625 11.03125 23.015625 10.96875 23.011719 10.90625 C 23.058594 9.835938 23.914063 9 25 9 Z M 39 21 C 37.148438 21 35.59375 22.285156 35.144531 24 L 3 24 C 2.640625 23.996094 2.304688 24.183594 2.121094 24.496094 C 1.941406 24.808594 1.941406 25.191406 2.121094 25.503906 C 2.304688 25.816406 2.640625 26.003906 3 26 L 35.144531 26 C 35.59375 27.714844 37.148438 29 39 29 C 40.851563 29 42.40625 27.714844 42.855469 26 L 47 26 C 47.359375 26.003906 47.695313 25.816406 47.878906 25.503906 C 48.058594 25.191406 48.058594 24.808594 47.878906 24.496094 C 47.695313 24.183594 47.359375 23.996094 47 24 L 42.855469 24 C 42.40625 22.285156 40.851563 21 39 21 Z M 39 23 C 40.085938 23 40.941406 23.835938 40.988281 24.910156 C 40.984375 24.96875 40.984375 25.03125 40.988281 25.09375 C 40.941406 26.164063 40.085938 27 39 27 C 37.914063 27 37.058594 26.164063 37.011719 25.089844 C 37.015625 25.03125 37.015625 24.96875 37.011719 24.90625 C 37.058594 23.835938 37.914063 23 39 23 Z M 14 35 C 12.148438 35 10.59375 36.285156 10.144531 38 L 3 38 C 2.640625 37.996094 2.304688 38.183594 2.121094 38.496094 C 1.941406 38.808594 1.941406 39.191406 2.121094 39.503906 C 2.304688 39.816406 2.640625 40.003906 3 40 L 10.144531 40 C 10.59375 41.714844 12.148438 43 14 43 C 15.851563 43 17.40625 41.714844 17.855469 40 L 47 40 C 47.359375 40.003906 47.695313 39.816406 47.878906 39.503906 C 48.058594 39.191406 48.058594 38.808594 47.878906 38.496094 C 47.695313 38.183594 47.359375 37.996094 47 38 L 17.855469 38 C 17.40625 36.285156 15.851563 35 14 35 Z M 14 37 C 15.085938 37 15.941406 37.835938 15.988281 38.910156 C 15.984375 38.96875 15.984375 39.03125 15.988281 39.09375 C 15.941406 40.164063 15.085938 41 14 41 C 12.914063 41 12.058594 40.164063 12.011719 39.089844 C 12.015625 39.03125 12.015625 38.96875 12.011719 38.90625 C 12.058594 37.835938 12.914063 37 14 37 Z"></path></svg>
  126.             </div> -->
  127.         <h3 onclick="sfil(1)">Service</h3>
  128.         <div id="isfilter1" class="">
  129.         <input type="radio" class="hide" name="filtre_location" id="filtre_location" value="Location" checked="checked"/><label class="servbutton filtre_location" for="filtre_location">Location</label>
  130.         <input type="radio" class="hide" name="filtre_location" id="filtre_achat"value="Achat"/><label class="servbutton filtre_achat" for="filtre_achat">Achat</label>
  131.         </div>
  132.     </div>
  133.     <div id="filtresel5" class="blocfiltre" style="text-align: center;">
  134.         <h3  onclick="sfil(2)">Catégorie</h3>
  135.         <div id="isfilter2" class="">
  136.         <input type="checkbox" class="hide" name="filtre_neuf" id="filtre_neuf" value="Neuf" checked="checked"/><label class="servbutton filtre_neuf" for="filtre_neuf">Neuf</label>
  137.         <input type="checkbox" class="hide" name="filtre_occasion" id="filtre_occasion"value="Achat" checked="checked"/><label class="servbutton filtre_occasion" for="filtre_occasion" >Occasion</label>
  138.         </div>
  139.     </div>
  140.     <div id="filtresel4" class="blocfiltre" style="text-align: center;">
  141.         <h3  onclick="sfil(3)">Trier par prix</h3>
  142.         <div id="isfilter3" class="">
  143.         <label class="filtre_location" for="prix_min">Prix min</label>
  144.         <input type="number" class="prixmod" name="prix_min" id="prix_min"value=""/>€<br /><br />
  145.         <label class="filtre_location" for="prix_max">Prix max</label>
  146.         <input type="number" class="prixmod" name="prix_max" id="prix_max"value=""/>€<br />
  147.         </div>
  148.     </div>
  149.     <div  class="blocfiltre"  >
  150.         <h3 onclick="sfil(4)">Agences</h3>
  151.         <div id="isfilter4" class="">
  152.         <div class="aligncenter">
  153.         <select id="filtre_vehicule_partout" name="" class="intext">
  154.         {% for Agence in Agences %}
  155.                 <option value="{{Agence.id}}" {% if Agence.id == 1 %}  selected="selected" {% endif %}
  156.                 >{{Agence.Nom}}</option>
  157.         {% endfor %}
  158.         </select> </div>
  159.         
  160.         <br />
  161.         <span>Nous pouvons louer partout, cependant la distance entre le lieu de votre évènement et nos centres de stockage est susceptible d'engendrer des coûts supplémentaires.</span>
  162.         </div>
  163.     </div>
  164.     <div  class="blocfiltre"  >
  165.         <h3 onclick="sfil(10)">Dates ou Nb jours</h3>
  166.         <div id="isfilter10" class="demiflex"> 
  167.     <div class="demiflexl">
  168.     <label>Date de début</label>
  169.     <label>Date de fin</label>   
  170.      <br /> 
  171.         <label>Nombre de jours </label> 
  172.     </div>
  173.     <div class="demiflexd">
  174.         <input type="date" id="datedebut" value=""/> <br /> 
  175.         <input type="date" id="datefin" value=""/> <br /> <br /> 
  176.         <input type="number" id="nbjourssel" min="1" value=""/> <br /> 
  177.     </div>
  178.          
  179.         <br /> 
  180.         </div>
  181.     </div>
  182.     <div  class="blocfiltre" > 
  183.         <h3 onclick="sfil(14)">Réduction</h3>
  184.         <div id="isfilter14" class="">
  185.         <div class="alileft">
  186.          {% set nbred = 0 %}
  187.         {% for Reduction in Reductions %}
  188.         {% set nbred = nbred + 1 %}  
  189.         {% if Reduction.type ==  "Réducmax"%}
  190.          {% set detail = Reduction.detail | json_decode %}
  191.             <input type="hidden" id="reducmax" val="{{detail.reduc}}" />
  192.         {% endif %}
  193.         {% if Reduction.type ==  "Sélection"%}
  194.         <div class="blocradio radioelem">
  195.          {% set detail = Reduction.detail | json_decode %}
  196.          {% set nbopt = 0 %} 
  197.         {% for det in detail %}
  198. <input type="radio" data-inf="{{Reduction.id}}" data-applicable="{{Reduction.applicable}}" data-nom="{{det.nom}}" class="radioactif2 radio_reduc" name="reduc_{{nbred}}" id="reduc_{{nbred}}_{{nbopt}}" /><label for="reduc_{{nbred}}_{{nbopt}}">{{det.nom}} ({{det.reduc}}{{det.type}})</label> <br />
  199. {% set nbopt = nbopt + 1 %}
  200.         {% endfor %}
  201.         </div>
  202.         {% endif %}
  203.         {% if Reduction.type ==  "Unique"%}
  204.         {% set detail = Reduction.detail | json_decode %} 
  205. <div class="bloccheck nomarg">
  206.         <input type="radio" class="radioactif2 radio_reduc" data-applicable="{{Reduction.applicable}}" data-inf="{{Reduction.id}}" data-nom="" name="reduc_{{nbred}}" id="reduc_{{nbred}}" /><label for="reduc_{{nbred}}">{{detail.nom}} ({{detail.reduc}}{{detail.type}})</label>
  207.         </div>
  208.  
  209.         {% endif %}
  210.                 
  211.         {% endfor %}
  212.          </div>
  213.          
  214.         <br />
  215.         <span id="recapremise"> </span>
  216.         </div>
  217.     </div>
  218.     <div class="blocfiltre aligncenter" >
  219.         <h3 onclick="sfil(5)">Véhicules</h3>   
  220.         <div id="isfilter5" class="">
  221.         <div id="filtresel2" class="aligncenter">
  222.             <div id="div_vehicule_tous" class="blocradio aligncenter ">
  223.                 <input type="checkbox" name="filtre_vehicule_tous" id="filtre_vehicule_tous" checked="checked"/><label id="filtre_tousveh" for="filtre_vehicule_tous">Tous les véhicules</label><br />
  224.             </div>
  225.             <div id="div_vehicule_triporteur" class="typevehicule">
  226.         <input type="checkbox" class="hide" name="filtre_vehicule_triporteur" id="filtre_vehicule_triporteur" checked="checked"/><label id="filtre_Triporteur" for="filtre_vehicule_triporteur" class="stylebutton">Triporteurs chargement avant <span id="infnb_triporteur"></span><span id="minfo_triporteur" class="hovertxt"></span></label>
  227.             </div>
  228.             <div id="div_vehicule_chariot" class="typevehicule">
  229.         <input type="checkbox" class="hide" name="filtre_vehicule_chariot" id="filtre_vehicule_chariot" checked="checked"/><label id="filtre_Chariot" for="filtre_vehicule_chariot" class="stylebutton">Chariots <span id="infnb_chariot"></span><span id="minfo_chariot" class="hovertxt"></span></label>
  230.             </div>
  231.             <div id="div_vehicule_cargo" class="typevehicule">
  232.         <input type="checkbox" class="hide" name="filtre_vehicule_cargo" id="filtre_vehicule_cargo" checked="checked"/><label id="filtre_Cargo" for="filtre_vehicule_cargo" class="stylebutton">Triporteurs cargo <span id="infnb_cargo"></span><span id="minfo_cargo" class="hovertxt"></span></label>
  233.             </div>
  234.             <div id="div_vehicule_remorque" class="typevehicule">
  235.         <input type="checkbox" class="hide" name="filtre_vehicule_remorque" id="filtre_vehicule_remorque" checked="checked"/><label id="filtre_Remorque" for="filtre_vehicule_remorque" class="stylebutton">Remorques publicitaires <span id="infnb_remorque"></span><span id="minfo_remorque" class="hovertxt"></span></label>
  236.             </div>
  237.             <div id="div_vehicule_rosalie" class="typevehicule">
  238.         <input type="checkbox" class="hide" name="filtre_vehicule_rosalie" id="filtre_vehicule_rosalie" checked="checked"/><label id="filtre_Rosalie" for="filtre_vehicule_rosalie" class="stylebutton">Rosalies <span id="infnb_rosalie"></span><span id="minfo_rosalie" class="hovertxt"></span></label>
  239.             </div>
  240.             <div id="div_vehicule_velotaxi" class="typevehicule">
  241.         <input type="checkbox" class="hide" name="filtre_vehicule_velotaxi" id="filtre_vehicule_velotaxi" checked="checked"/><label id="filtre_VeloTaxi" for="filtre_vehicule_velotaxi" class="stylebutton">Vélos-taxis<span id="infnb_velotaxi"></span><span id="minfo_velotaxi" class="hovertxt"></span></label>
  242.             </div>
  243.             <div id="div_vehicule_velo" class="typevehicule">
  244.         <input type="checkbox" class="hide" name="filtre_vehicule_velo" id="filtre_vehicule_velo" checked="checked"/><label id="filtre_Velo" for="filtre_vehicule_velo" class="stylebutton">Vélos 2 roues<span id="infnb_velo"></span><span id="minfo_velo" class="hovertxt"></span></label>
  245.             </div>
  246.             <div id="div_vehicule_quadriporteur" class="typevehicule">
  247.         <input type="checkbox" class="hide" name="filtre_vehicule_quadriporteur" id="filtre_vehicule_quadriporteur" checked="checked"/><label id="filtre_quadriporteur" for="filtre_vehicule_quadriporteur" class="stylebutton">Quadriporteurs <span id="infnb_quadriporteur"></span><span id="minfo_quadriporteur" class="hovertxt"></span></label>
  248.             </div>
  249.             <div id="div_vehicule_triporteurcollecte" class="typevehicule">
  250.         <input type="checkbox" class="hide" name="filtre_vehicule_triporteurcollecte" id="filtre_vehicule_triporteurcollecte" checked="checked"/><label id="filtre_triporteurcollecte" for="filtre_vehicule_triporteurcollecte" class="stylebutton">Triporteurs collecte de déchets <span id="infnb_triporteurcollecte"></span><span id="minfo_triporteurcollecte" class="hovertxt"></span></label>
  251.             </div>
  252.             <div id="div_vehicule_triporteurenfant" class="typevehicule">
  253.         <input type="checkbox" class="hide" name="filtre_vehicule_triporteurenfant" id="filtre_vehicule_triporteurenfant" checked="checked"/><label id="filtre_triporteurenfant" for="filtre_vehicule_triporteurenfant" class="stylebutton">Triporteurs enfants/animaux <span id="infnb_triporteurenfant"></span><span id="minfo_triporteurenfant" class="hovertxt"></span></label>
  254.             </div>
  255.             <div id="div_vehicule_tandems" class="typevehicule">
  256.         <input type="checkbox" class="hide" name="filtre_vehicule_tandems" id="filtre_vehicule_tandems" checked="checked"/><label id="filtre_tandems" for="filtre_vehicule_tandems" class="stylebutton">Tandems<span id="infnb_tandems"></span><span id="minfo_tandems" class="hovertxt"></span></label>
  257.             </div>
  258.             <div id="div_vehicule_velocaleche" class="typevehicule">
  259.         <input type="checkbox" class="hide" name="filtre_vehicule_velocaleche" id="filtre_vehicule_velocaleche" checked="checked"/><label id="filtre_velocaleche" for="filtre_vehicule_velocaleche" class="stylebutton">Vélos-calèches <span id="infnb_velocaleche"></span><span id="minfo_velocaleche" class="hovertxt"></span></label>
  260.             </div>
  261.             <div id="div_vehicule_velovoiture" class="typevehicule">
  262.         <input type="checkbox" class="hide" name="filtre_vehicule_velovoiture" id="filtre_vehicule_velovoiture" checked="checked"/><label id="filtre_velovoiture" for="filtre_vehicule_velovoiture" class="stylebutton">Vélos-voitures <span id="infnb_velovoiture"></span><span id="minfo_velovoiture" class="hovertxt"></span></label>
  263.             </div>
  264.         </div>
  265.         <br />
  266.         <button id="infovehicules" class="buttinfo">> Liste de tous nos véhicules avec quantités </button>
  267.         </div>
  268.     </div>
  269.     <div class="blocfiltre" style="display:none;">
  270.         <h3 onclick="sfil(6)">Disponibilités</h3>
  271.         <div id="isfilter6" class="isfilter">
  272.         <p>Période de location</p>
  273.         <div class="aligncenter">
  274.         <input type="date" name="filtre_date_debut" id="filtre_date_debut" class="datediplay"/>
  275.         <input type="date" name="filtre_date_fin" id="filtre_date_fin" class="datediplay"/>
  276.         </div>
  277.         <p>Nombre de véhicule identiques :</p>
  278.         <div class="aligncenter">
  279.         <input type="text" name="filtre_nb_vehicule" id="filtre_nb_vehicule" class="nbjours"/>
  280.         </div>
  281.         <p>Tarif selon la durée et la quantité</p>
  282.         <input type="range" onchange="affiche()" name="filtre_prix" id="filtre_prix"  multiple value="10,80" />
  283.         
  284.         
  285.         
  286.         <script>
  287.         
  288.         function affiche(){
  289.         var range = document.getElementById("filtre_prix").value;
  290.             console.log(range)
  291.         }
  292.         </script>
  293. </div>
  294.     </div>
  295.     <div  id="filtresel3" class="blocfiltre">
  296.         <h3 onclick="sfil(7)">Caractéristiques</h3>
  297.         <div id="isfilter7" class="">
  298.         <p class="pbold">Assistance électrique</p>
  299.         <div class="blocradio radioelem">
  300.         <input type="radio" class="radioactif" name="filtre_assistance_elect" id="filtre_assistance_elect_sans"/><label id="0#assistElect" for="filtre_assistance_elect_sans">Sans</label>
  301.         <input type="radio" class="radioactif" name="filtre_assistance_elect" id="filtre_assistance_elect_avec"/><label id="1#assistElect" for="filtre_assistance_elect_avec">Avec</label>
  302.         </div>
  303.         <p class="pbold">Coque protectrice du conducteur</p>
  304.         <div class="blocradio radioelem">
  305.         <input type="radio" class="radioactif" name="filtre_coqueprotect" id="filtre_coqueprotect_sans"/><label id="0#coque" for="filtre_coqueprotect_sans">Sans</label>
  306.         <input type="radio" class="radioactif" name="filtre_coqueprotect" id="filtre_coqueprotect_avec"/><label id="1#coque" for="filtre_coqueprotect_avec">Avec</label>
  307.         </div>
  308.         <p class="pbold">Couleur cadre</p>
  309.         <div class="floatleft">
  310.         {% for Couleur in CouleursRep %}
  311.         <div id="Cadre_par_{{Couleur.id}}" class="bloccheck demi">
  312.         <input type="checkbox" class="radioactif3 colorcadresel" name="filtre_cadre_{{Couleur.id}}" id="filtre_cadre_{{Couleur.id}}" data-color="{{Couleur.id}}" /><label class="colordisplay" id="Cadre_{{Couleur.id}}" for="filtre_cadre_{{Couleur.id}}"><span class="roundel" style="background-color:{{Couleur.Hexa}}"></span><span id="Cadre_span_{{Couleur.id}}" >{{Couleur.Nom}}</span></label>
  313.         </div>
  314.         {% endfor %}
  315.         </div> 
  316.         <p class="pbold">Couleur caisse</p>
  317.         <div class="floatleft">
  318.         {% for Couleur in CouleursRep %}
  319.         <div id="Couleur_par_{{Couleur.id}}" class="bloccheck demi">
  320.         <input type="checkbox" class="radioactif3 colorsel" name="filtre_couleur_{{Couleur.id}}" id="filtre_couleur_{{Couleur.id}}" data-color="{{Couleur.id}}" /><label class="colordisplay" id="Couleur_{{Couleur.id}}" for="filtre_couleur_{{Couleur.id}}"><span class="roundel" style="background-color:{{Couleur.Hexa}}"></span><span id="Couleur_span_{{Couleur.id}}" >{{Couleur.Nom}}</span></label>
  321.         </div>
  322.         {% endfor %}
  323.         </div> 
  324.         <p class="pbold">Conservation</p> 
  325.         <div class="bloccheck">
  326.         <input type="radio" class="radioactif" name="filtre_conservation_iso" id="filtre_conservation_iso"/><label id="1#Isotherme" for="filtre_conservation_iso">Véhicules isothermes</label>
  327.         </div>
  328.         <div class="bloccheck" style="display:none;">
  329.         <input type="radio" class="radioactif" name="filtre_conservation_deuxcompartiments" id="filtre_conservation_deuxcompartiments"/><label id="1#compartimentposinega" for="filtre_conservation_deuxcompartiments">1 compartiment en froid positif + 1 autre en froid négatif</label>
  330.         </div>
  331.         <div class="bloccheck">
  332.         <input type="radio" class="radioactif" name="filtre_conservation_froid_iso" id="filtre_conservation_froid_iso"/><label id="1#compartimentisotherme" for="filtre_conservation_froid_iso">A double compartiment : 1 réfrigéré + <span class="nowrap">1 isotherme</span></label>
  333.         </div>
  334.         <div class="bloccheck">
  335.         <input type="radio" class="radioactif" name="filtre_conservation_froid_positif" id="filtre_conservation_froid_positif"/><label id="1#froidPositif" class="asinbul" for="filtre_conservation_froid_positif">Réfrigérés à froid positif</label>
  336.         </div>
  337.         <div class="bloccheck">
  338.         <input type="radio" class="radioactif" name="filtre_conservation_froid_negatif" id="filtre_conservation_froid_negatif"/><label id="1#froidNegatif" class="asinbul" for="filtre_conservation_froid_negatif">Réfrigérés à froid négatif</label>
  339.         </div> 
  340.         <div class="bloclabel">
  341.         <label>Véhicules pouvant contenir :</label>
  342.         </div>
  343.         <div class="bloccheck">
  344.         <input type="radio" class="radioactif" name="filtre_conservation_avec_frigo" id="filtre_conservation_avec_frigo"/><label id="1#frigo40l" for="filtre_conservation_avec_frigo">1 réfrigérateur (de -18 à +3 °C) de 40L</label>
  345.         </div>
  346.         <div class="bloccheck">
  347.         <input type="radio" class="radioactif" name="filtre_conservation_avec_frigo_70" id="filtre_conservation_avec_frigo_70"/><label id="1#frigo70l" for="filtre_conservation_avec_frigo_70">1 réfrigérateur (de -18 à +3 °C) de 70L</label>
  348.         </div>
  349.         <div class="bloccheck">
  350.         <input type="radio" class="radioactif" name="filtre_conservation_avec_frigo_105" id="filtre_conservation_avec_frigo_105"/><label id="1#frigo105l" for="filtre_conservation_avec_frigo_105">1 réfrigérateur (de -18 à +3 °C) de 105L</label>
  351.         </div>
  352.         <div class="bloccheck">
  353.         <input type="radio" class="radioactif" name="filtre_conservation_iso_60" id="filtre_conservation_iso_60"/><label id="1#iso60l" for="filtre_conservation_iso_60">1 caisse isotherme de 60L</label>
  354.         </div>
  355.         <div class="bloccheck nomarg">
  356.         <input type="radio" class="radioactif" name="filtre_conservation_avec_glace_77" id="filtre_conservation_avec_glace_77"/><label id="1#iso77l" for="filtre_conservation_avec_glace_77">1 caisse isotherme de 77L</label>
  357.         </div>
  358.         <p class="pbold">Les usages</p>
  359.         <div class="blocradio">
  360.         <input type="radio" class="radioactif" name="filtre_spe" id="filtre_conservation_spe_mariage"/><label id="1#mariage" for="filtre_conservation_spe_mariage">Spécial mariage</label>
  361.         </div>
  362.         <div class="blocradio">
  363.         <input type="radio" class="radioactif" name="filtre_tournage" id="filtre_conservation_spe_tournage"/><label id="1#tournage" for="filtre_conservation_spe_tournage">Spécial tournage de films</label>
  364.         </div>
  365.         <div class="blocradio">
  366.         <input type="radio" class="radioactif" name="filtre_mobilitereduite" id="filtre_mobilitereduite"/><label id="1#mobilitereduite" for="filtre_mobilitereduite">Adapté pour les personnes à mobilité réduite</label>
  367.         </div>
  368.         <div class="blocradio">
  369.         <input type="radio" class="radioactif" name="filtre_comptoir" id="filtre_comptoir"/><label id="1#Comptoir" for="filtre_comptoir">Possède un comptoir amovible</label>
  370.         </div>
  371.         <div class="blocradio">
  372.         <input type="radio" class="radioactif" name="filtre_CompatibleRemorque" id="filtre_CompatibleRemorque"/><label id="1#CompatibleRemorque" for="filtre_CompatibleRemorque">Véhicule compatible avec les remorques</label>
  373.         </div>
  374.         <div class="blocradio">
  375.         <input type="radio" class="radioactif" name="filtre_Ptspe" id="filtre_Ptspe"/><label id="1#Ptspe" for="filtre_Ptspe">Spécial grand plan de travail</label>
  376.         </div>
  377.         
  378.         <p class="pbold">Surface d'espace pub du véhicule</p>
  379.         <div id="div_filtre_surface">
  380.             <input type="range" onmousemove="filtre_surface()"  name="filtre_surface" id="filtre_surface" multiple value="0,100" />
  381.             <p class="pcolor">Entre <span id="lowsurval"></span> et <span id="higsurval"></span> m²</p>
  382.             <input type="hidden" name="filtre_surface_min" id="filtre_surface_min" value="0">
  383.             <input type="hidden" name="filtre_surface_max" id="filtre_surface_max" value="100">
  384.         </div>
  385.         
  386.         <p class="pbold">Volume de la caisse du véhicule</p> 
  387.         <div id="div_filtre_volume">
  388.             <input type="range" onmousemove="filtre_volume()"  name="filtre_volume" id="filtre_volume" multiple value="0,100" />
  389.             <p class="pcolor">Entre <span id="lowval"></span> et <span id="higval"></span> L</p>
  390.             <input type="hidden" name="filtre_volume_min" id="filtre_volume_min" value="0">
  391.             <input type="hidden" name="filtre_volume_max" id="filtre_volume_max" value="100">
  392.         </div>
  393.         <p class="pbold">Largeur du véhicule</p> 
  394.         <div id="div_filtre_largeur">
  395.             <input type="range" onmousemove="filtre_largeur()"  name="filtre_largeur" id="filtre_largeur" multiple value="0,100" />
  396.             <p class="pcolor">Entre <span id="lowvalar"></span> et <span id="higvalar"></span> cm</p>
  397.             <input type="hidden" name="filtre_largeur_min" id="filtre_largeur_min" value="0">
  398.             <input type="hidden" name="filtre_largeur_max" id="filtre_largeur_max" value="100">
  399.         </div>
  400.         <p class="pbold">Longueur du véhicule</p> 
  401.         <div id="div_filtre_longueur">
  402.             <input type="range" onmousemove="filtre_longueur()"  name="filtre_longueur" id="filtre_longueur" multiple value="0,100" />
  403.             <p class="pcolor">Entre <span id="lowvalong"></span> et <span id="higvalong"></span> cm</p>
  404.             <input type="hidden" name="filtre_longueur_min" id="filtre_longueur_min" value="0">
  405.             <input type="hidden" name="filtre_longueur_max" id="filtre_longueur_max" value="100">
  406.         </div>
  407.         <p class="pbold">Hauteur du véhicule</p> 
  408.         <div id="div_filtre_hauteur">
  409.             <input type="range" onmousemove="filtre_hauteur()"  name="filtre_hauteur" id="filtre_hauteur" multiple value="0,100" />
  410.             <p class="pcolor">Entre <span id="lowvalhau"></span> et <span id="higvalhau"></span> cm</p>
  411.             <input type="hidden" name="filtre_hauteur_min" id="filtre_hauteur_min" value="0">
  412.             <input type="hidden" name="filtre_hauteur_max" id="filtre_hauteur_max" value="100">
  413.         </div>
  414.         
  415.         <p class="pbold">Surface plan de travail</p> 
  416.         <div id="div_filtre_Surfacept">
  417.             <input type="range" onmousemove="filtre_Surfacept()"  name="filtre_Surfacept" id="filtre_Surfacept" multiple value="0,100" />
  418.             <p class="pcolor">Entre <span id="lowvalSurfacept"></span> et <span id="higvalSurfacept"></span> m²</p>
  419.             <input type="hidden" name="filtre_Surfacept_min" id="filtre_Surfacept_min" value="0">
  420.             <input type="hidden" name="filtre_Surfacept_max" id="filtre_Surfacept_max" value="100">
  421.         </div></div>
  422.     </div>
  423.     </div>
  424.     
  425.      
  426. </div>
  427. </div>
  428. <div id="formulaire"></div>
  429.       
  430. {% endblock %}
  431.         {% block javascripts %}
  432.         <script src="{{ asset('js/multirange.js') }}"></script>  
  433. <script src="//d2wy8f7a9ursnm.cloudfront.net/v7/bugsnag.min.js"></script>
  434.          {{ encore_entry_script_tags('app') }}
  435.          {{ encore_entry_script_tags('formulaire') }}
  436.      <!--   
  437. <script src="{{ asset('build/runtime.js') }}"></script>
  438.   <script src="{{ asset('build/vendors~app~formulaire~tinyapp.js') }}"></script>
  439.   <script src="{{ asset('build/vendors~app~formulaire.js') }}"></script>
  440.   <script src="{{ asset('build/vendors~formulaire~tinyapp.js') }}"></script>
  441.   <script src="{{ asset('build/vendors~formulaire.js') }}"></script>
  442.  <script src="{{ asset('build/formulaire.js') }}"></script>
  443.  -->
  444. <script >
  445. document.getElementById('datedebut').min = new Date().toISOString().split("T")[0];
  446. document.getElementById('datefin').min = new Date().toISOString().split("T")[0];
  447. function sfil(trg){
  448.     let targ = document.getElementById('isfilter'+trg)
  449.     
  450.     if( targ.classList.contains('isfilter') ){
  451.     targ.classList.remove('isfilter')
  452.     }else{
  453.         targ.classList.add('isfilter')
  454.     }
  455. }
  456. async function filtre_volume(){
  457.             let valmax = 3000
  458.         let range = document.getElementById("filtre_volume").value;
  459.         let lowval = document.getElementById("lowval")
  460.         let higval = document.getElementById("higval")
  461.         let splitrange = range.split(',')
  462.         let minval = 0
  463.         if( splitrange[0] == '0.1'){
  464.          minval = 0
  465.         }else{
  466.          minval = Math.floor( ( valmax / 100 ) * splitrange[0] ) 
  467.         }
  468.           let maxval = Math.floor( ( valmax / 100 ) * splitrange[1] ) 
  469.          lowval.innerText =  minval
  470.          higval.innerText = maxval 
  471.          document.getElementById("filtre_volume_min").value =  minval
  472.          document.getElementById("filtre_volume_max").value =  maxval
  473.         }
  474. async function filtre_largeur(){
  475.             let valmax = 300
  476.         let range = document.getElementById("filtre_largeur").value;
  477.         let lowval = document.getElementById("lowvalar")
  478.         let higval = document.getElementById("higvalar")
  479.         let splitrange = range.split(',')
  480.         let minval = 0
  481.         if( splitrange[0] == '0.1'){
  482.          minval = 0
  483.         }else{
  484.          minval = Math.floor( ( valmax / 100 ) * splitrange[0] ) 
  485.         }
  486.           let maxval = Math.floor( ( valmax / 100 ) * splitrange[1] ) 
  487.          lowval.innerText =  minval
  488.          higval.innerText = maxval 
  489.          document.getElementById("filtre_largeur_min").value =  minval
  490.          document.getElementById("filtre_largeur_max").value =  maxval
  491.         }
  492. async function filtre_longueur(){
  493.             let valmax = 400
  494.         let range = document.getElementById("filtre_longueur").value;
  495.         let lowval = document.getElementById("lowvalong")
  496.         let higval = document.getElementById("higvalong")
  497.         let splitrange = range.split(',')
  498.         let minval = 0
  499.         if( splitrange[0] == '0.1'){
  500.          minval = 0
  501.         }else{
  502.          minval = Math.floor( ( valmax / 100 ) * splitrange[0] ) 
  503.         }
  504.           let maxval = Math.floor( ( valmax / 100 ) * splitrange[1] ) 
  505.          lowval.innerText =  minval
  506.          higval.innerText = maxval 
  507.          document.getElementById("filtre_longueur_min").value =  minval
  508.          document.getElementById("filtre_longueur_max").value =  maxval
  509.         }
  510. async function filtre_hauteur(){
  511.             let valmax = 300
  512.         let range = document.getElementById("filtre_hauteur").value;
  513.         let lowval = document.getElementById("lowvalhau")
  514.         let higval = document.getElementById("higvalhau")
  515.         let splitrange = range.split(',')
  516.         let minval = 0
  517.         if( splitrange[0] == '0.1'){
  518.          minval = 0
  519.         }else{
  520.          minval = Math.floor( ( valmax / 100 ) * splitrange[0] ) 
  521.         }
  522.           let maxval = Math.floor( ( valmax / 100 ) * splitrange[1] ) 
  523.          lowval.innerText =  minval
  524.          higval.innerText = maxval 
  525.          document.getElementById("filtre_hauteur_min").value =  minval
  526.          document.getElementById("filtre_hauteur_max").value =  maxval
  527.         }
  528. async function filtre_Surfacept(){
  529.             let valmax = 3
  530.         let range = document.getElementById("filtre_Surfacept").value;
  531.         let lowval = document.getElementById("lowvalSurfacept")
  532.         let higval = document.getElementById("higvalSurfacept")
  533.         let splitrange = range.split(',')
  534.         let minval = 0
  535.         if( splitrange[0] == '0.1'){
  536.          minval = 0
  537.         }else{
  538.          minval = Math.floor( ( valmax / 10 ) * splitrange[0] )  / 10
  539.         }
  540.           let maxval = Math.floor( ( valmax / 10 ) * splitrange[1] ) / 10
  541.          lowval.innerText =  minval
  542.          higval.innerText = maxval 
  543.          document.getElementById("filtre_Surfacept_min").value =  minval
  544.          document.getElementById("filtre_Surfacept_max").value =  maxval
  545.         }
  546. async function filtre_surface(){
  547.             let valmax = 20
  548.         let range = document.getElementById("filtre_surface").value;
  549.         let lowval = document.getElementById("lowsurval")
  550.         let higval = document.getElementById("higsurval")
  551.         let splitrange = range.split(',')
  552.         let minval = 0
  553.         if( splitrange[0] == '0.1'){
  554.          minval = 0
  555.         }else{
  556.          minval = Math.floor( ( valmax / 100 ) * splitrange[0] ) 
  557.         }
  558.           let maxval = Math.floor( ( valmax / 100 ) * splitrange[1] ) 
  559.          lowval.innerText =  minval
  560.          higval.innerText = maxval 
  561.          document.getElementById("filtre_surface_min").value =  minval
  562.          document.getElementById("filtre_surface_max").value =  maxval
  563.         }
  564. function afffiltre(){
  565.     let filtres =  document.getElementById("divfilter")
  566.         filtres.classList.remove('showoff') 
  567.         document.getElementById("validfilter").style.position = "fixed"
  568.         document.getElementById("validfilter").style.display = "block"
  569.         document.getElementById("formulaire").classList.remove('grandwidth')
  570. }
  571. function showfiltre(){
  572.     let filtres =  document.getElementById("divfilter")
  573.     
  574.     if(  filtres.classList.contains('showoff') ){
  575.         filtres.classList.remove('showoff') 
  576.         document.getElementById("validfilter").style.position = "fixed"
  577.         document.getElementById("validfilter").style.display = "block"
  578.         document.getElementById("formulaire").classList.remove('grandwidth')
  579.     }else{
  580.         filtres.classList.add('showoff') 
  581.         document.getElementById("validfilter").style.position = "absolute"
  582.         document.getElementById("validfilter").style.display = "none"
  583.         document.getElementById("formulaire").classList.add('grandwidth') 
  584.         document.getElementById("formulaire").scrollIntoView({block: "start", behavior: "smooth"});
  585.     }
  586. }
  587. function reordervéhic(){    
  588.     listel = document.getElementById('filtresel2')
  589.         fetch (location.protocol +'//'+window.location.host +`/api/guide`, {
  590.           method: 'GET', 
  591.           credentials: 'include'
  592.           })
  593.         .then (res => res.json())
  594.         .then (json =>{ 
  595.           let obj = json 
  596.           obj.forEach(element => {
  597.             if( element.NumQ == 9999  ){
  598.             const sortOrder = [];
  599.             
  600.           element.Reponse.forEach(rep => {
  601.             if(rep.Filtres){
  602.             let filt = Object.values(rep.Filtres)
  603.             filt.forEach(ilt => {
  604.                 if( ilt.Nomfiltre ){
  605.                     let nomfiltre = 'div_' + ilt.Nomfiltre 
  606.             sortOrder.push( nomfiltre )
  607.                 }
  608.             });
  609.             }
  610.           
  611.           })
  612.                 const parent = document.getElementById('filtresel2')
  613.             const children = Array.from(parent.children);
  614.             // Définir la liste de valeurs pour le tri
  615.             // Créer une fonction de tri personnalisée
  616.             function customSort(a, b) {
  617.             const aValue = a.id; 
  618.             const bValue = b.id;
  619.             const aIndex = sortOrder.indexOf(aValue);
  620.             const bIndex = sortOrder.indexOf(bValue);
  621.             return aIndex - bIndex;
  622.             }
  623.             // Trier les éléments enfants en utilisant la fonction de tri personnalisée
  624.             children.sort(customSort);
  625.             // Réinsérer les éléments triés dans le document
  626.             children.forEach(child => {
  627.             parent.appendChild(child);
  628.             });
  629.             }
  630.           });
  631.         }) 
  632. }
  633. document.addEventListener("DOMContentLoaded", function(event) {
  634.     // Your code to run since DOM is loaded and ready
  635.     seltyp()
  636.     filtre_longueur()
  637.     filtre_volume()
  638.     filtre_hauteur()
  639.     filtre_largeur()
  640.     filtre_surface()
  641.     filtre_Surfacept() 
  642.     let gesmodal = document.getElementById("gestmodal")
  643.  
  644.   if( window.innerWidth <= 992){ 
  645.         let filtres =  document.getElementById("divfilter")
  646.         filtres.classList.add('showoff') 
  647.     }
  648.     myScript()
  649.     document.getElementById("filtre_location").addEventListener("change", myScript);
  650.     document.getElementById("filtre_achat").addEventListener("change", myScript);
  651.     if( window.innerWidth >= 768){ 
  652.  setTimeout(() => {
  653.      if(document.documentElement.scrollTop > document.getElementById("formulaire").offsetTop){
  654.         divfilter.style.top = '0px';
  655.         // gesmodal.style.top = '60px';
  656.     }else{
  657.         divfilter.style.top = (document.getElementById("formulaire").offsetTop - document.documentElement.scrollTop) + 'px';
  658.         let heiggest = document.getElementById("formulaire").offsetTop - document.documentElement.scrollTop + 60
  659.         // gesmodal.style.top = heiggest + 'px';
  660.     }
  661.     }, 200);
  662.     setTimeout(() => {
  663.      if(document.documentElement.scrollTop > document.getElementById("formulaire").offsetTop){
  664.         divfilter.style.top = '0px';
  665.         // gesmodal.style.top = '60px';
  666.     }else{
  667.         divfilter.style.top = (document.getElementById("formulaire").offsetTop - document.documentElement.scrollTop) + 'px';
  668.         let heiggest = document.getElementById("formulaire").offsetTop - document.documentElement.scrollTop + 60
  669.         // gesmodal.style.top = heiggest + 'px';
  670.     }
  671.     }, 800);
  672.     setTimeout(() => {
  673.      if(document.documentElement.scrollTop > document.getElementById("formulaire").offsetTop){
  674.         divfilter.style.top = '0px';
  675.         // gesmodal.style.top = '60px';
  676.     }else{
  677.         divfilter.style.top = (document.getElementById("formulaire").offsetTop - document.documentElement.scrollTop) + 'px';
  678.         let heiggest = document.getElementById("formulaire").offsetTop - document.documentElement.scrollTop + 60
  679.         // gesmodal.style.top = heiggest + 'px';
  680.     }
  681.     }, 1600);
  682.     
  683.      
  684.     window.onscroll = function () { 
  685.         if(document.documentElement.scrollTop > document.getElementById("formulaire").offsetTop){
  686.         divfilter.style.top = '0px';
  687.         // gesmodal.style.top = '60px';
  688.     }else{
  689.         divfilter.style.top = (document.getElementById("formulaire").offsetTop - document.documentElement.scrollTop) + 'px';
  690.         let heiggest = document.getElementById("formulaire").offsetTop - document.documentElement.scrollTop + 60
  691.         // gesmodal.style.top = heiggest + 'px';
  692.     }
  693. };
  694.     }else{
  695.         divfilter.style.top = '0px';
  696.      //   gesmodal.style.top = '60px';
  697.     }
  698.  
  699. reordervéhic()
  700.   
  701. });
  702.    document.getElementById("afffiltre").addEventListener("click",  function (){
  703.     let filtres =  document.getElementById("divfilter") 
  704.     if( filtres.classList.contains('showoff') == true ){
  705.         filtres.classList.add('showoff') 
  706.         document.getElementById("validfilter").style.position = "absolute"
  707.         document.getElementById("validfilter").style.display = "none"
  708.         document.getElementById("formulaire").classList.add('grandwidth') 
  709.         document.getElementById("formulaire").scrollIntoView({block: "start", behavior: "smooth"});
  710.     }else{
  711.         filtres.classList.remove('showoff') 
  712.         document.getElementById("validfilter").style.position = "fixed"
  713.         document.getElementById("validfilter").style.display = "block"
  714.         document.getElementById("formulaire").classList.remove('grandwidth')
  715.     }
  716.    } );
  717. function myScript(){
  718.     let filtre_location = document.getElementById("filtre_location")
  719.     let filtre_achat = document.getElementById("filtre_achat")
  720.     if( filtre_achat.checked == true){
  721.          document.getElementById("filtresel4").style.display = 'block'
  722.          document.getElementById("filtresel5").style.display = 'block'
  723.          
  724.     }else{
  725.          document.getElementById("filtresel4").style.display = 'none' 
  726.          document.getElementById("filtresel5").style.display = 'none' 
  727.     }
  728. }
  729. let doc = document;
  730. let filter = document.getElementById('filtres') 
  731. function getScrollPosition()
  732. {
  733.     return Array((document.documentElement && document.documentElement.scrollLeft) || window.pageXOffset || self.pageXOffset || document.body.scrollLeft,(document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop);
  734. }
  735. let  hauteur = window.innerHeight;
  736. doc.onscroll = function(){ 
  737.     var s = getScrollPosition();
  738.     let scrollnav = s[1] 
  739.     if( scrollnav >= filter.offsetTop ){
  740.       //  filter.style.position  = 'fixed' 
  741.     }else{
  742.       //   filter.style.position  = 'relative'
  743.     }
  744. </script>  
  745.         {% endblock %}