www.velo-bruche.fr Open in urlscan Pro
91.121.41.111  Public Scan

Submitted URL: http://velo-bruche.fr/
Effective URL: https://www.velo-bruche.fr/
Submission: On July 17 via api from US — Scanned from FR

Form analysis 2 forms found in the DOM

Name: bookingPOST /fr/nos-plus-belles-randos.html?1=1

<form name="booking" data-dnc-nummoteur="1" data-dnc-urlbase_ajax="https://www.rando-bruche.fr/index.php" data-dnc-urlbase_ajax-communes="" data-dnc-paramsurl_ajax="&amp;option=com_joomlei&amp;view=listeproduits&amp;layout=liste&amp;format=json"
  action="/fr/nos-plus-belles-randos.html?1=1" method="post" id="booking" class="" onsubmit="return joomlei_validation_moteurbooking('booking');">
  <input type="hidden" name="id" value="">
  <input type="hidden" name="task" value="poste">
  <input type="hidden" name="calctot" id="calctot" value="0">
  <input type="hidden" name="multimoteur_ouvert" id="multimoteur_ouvert" value="">
  <input type="hidden" name="dncdebug" value="">
  <input type="hidden" name="produit" value="">
  <input type="hidden" data-dnc-flag="" name="limitstart" value="">
  <input type="hidden" name="filter_order" value="">
  <input type="hidden" name="filter_order_dir" value="">
  <script type="text/javascript">
    var jleim_serialiser = function(idmoteur) {
      jQuery("#" + idmoteur).find('input[name^="modalidad"]').each(function() {
        var letemp;
        var letemp2;
        var letemp3;
        // Si le critère est non vide, on met des DNCNULL dans moda minimo et maximo pour empecher leur suppression et le décalage
        letemp = jQuery(this).attr('id');
        letemp2 = letemp.indexOf('modalidad');
        letemp3 = jQuery("#" + letemp.substring(0, letemp2) + 'champ');
        // Si c'est un critère coché, on met des dncnull
        if (letemp3.attr('name') == 'elcriterio[]' && letemp3.val() != '') {
          // console.log('TROUVE');
          if (jQuery("#" + letemp.substring(0, letemp2) + 'modalidad').val() == '') jQuery("#" + letemp.substring(0, letemp2) + 'modalidad').val('DNCNULL!!');
          if (jQuery("#" + letemp.substring(0, letemp2) + 'minimo').val() == '') jQuery("#" + letemp.substring(0, letemp2) + 'minimo').val('DNCNULL!!');
          if (jQuery("#" + letemp.substring(0, letemp2) + 'maximo').val() == '') jQuery("#" + letemp.substring(0, letemp2) + 'maximo').val('DNCNULL!!');
        } else {
          // Si vide, On marque son minimo et ùmaximo pour suppression en effacant la valeur à toutes fins utiles
          jQuery("#" + letemp.substring(0, letemp2) + 'modalidad').val('');
          jQuery("#" + letemp.substring(0, letemp2) + 'minimo').val('');
          jQuery("#" + letemp.substring(0, letemp2) + 'maximo').val('');
        }
      });
      // On récupère les infos avec DNCNULL dans tabparams
      var tabparams = jQuery("#" + idmoteur).serializeArray();
      // Puis on remet les vides en place
      jQuery("#" + idmoteur).find('input').each(function() { // [name^="modalidad"]
        // console.log(jQuery(this).attr('id') + '-' + this.value);
        if (this.value == 'DNCNULL!!') this.value = '';
        // console.log(jQuery(this).attr('id') + '-' + this.value);
      });
      var lurl = "";
      var lenom = "";
      jQuery.each(tabparams, function(i, leparam) {
        lenom = leparam.name;
        if (lenom != 'limitstart' && lenom != 'produit' && lenom != 'limit' && lenom.substring(0, 3) != 'hid' && lenom != 'task' && lenom != 'jleimoteur_groupe')
          if (leparam.value != '')
            if (leparam.value == 'DNCNULL!!') lurl += "&" + leparam.name + "=";
            else lurl += "&" + leparam.name + "=" + leparam.value;
      });
      // Cas particulier de la rech par dispo => on force un tsdispo=N
      if (lurl.indexOf("dispodu") >= 0 && lurl.indexOf("tsdispo") < 0) lurl += "&inputlei_tsdispo=N";
      return lurl;
    };
    var jleim_soustot_reqs = [];
    jQuery(document).ready(function() {
      // On calcule le moteur au chargement
      joomlei_calcule_moteur("booking");
    });
    // Patch 10/2017 : optimisation : on retarde ce calcul
    // jQuery(document).ready(function () {
    jQuery(window).load(function() {
      // Dispos et tsdispo
      // On regarde s'il existe un champ caché tsdispo
      // S'il n'existe pas, on le créé si le moteur contient des champs de disspos
      // -> on le mettra à N lors du post s'il y a des dispos recherchées
      if (jQuery('#pnames_dispodu').length != 0)
        if (jQuery('#inputlei_tsdispo').length == 0) jQuery('#letsdispos').html('<input type="hidden" name="inputlei_tsdispo" id="inputlei_tsdispo" value=""/>');
      // On calcule le moteur au chargement
      joomlei_calcule_moteur();
      // On gère le js des multimoteurs
      // cas du groupe en liste select qui gère le multimoteur
      jQuery('select[data-dnc-gestionmultimoteur="combo"]').change(function() {
        var lenum = this.selectedIndex;
        var idmoteur = "#div_globaljoomleimoteur_" + jQuery(this).attr('data-dnc-nummoteur');
        var montre = false; // pour voir si on a montre qqchose (1er coup)
        // On masque toutes les rubriques > 1
        var lstdiv = jQuery(idmoteur).find('.joomlei_moteur_rubrique');
        for (var i = 1; i < lstdiv.length; i++) {
          if (jQuery(lstdiv[i]).css('display') == 'block') jQuery(lstdiv[i]).slideUp('slow', function() {
            // jQuery(lstdiv[i]).css('display','none');
            // On affiche la rubrique à  montrer
            jQuery(lstdiv[lenum]).slideDown(function() {
              joomlei_calcule_moteur();
            }, 'slow'); //('display','block')
            montre = true;
          });
          viderChamps(lstdiv[i]);
        }
        if (!montre) jQuery(lstdiv[lenum]).slideDown(); //('display','block')
        // On met le numéro de la rubrique ouverte en hidden field
        // Afin de pouvoir la réafficher après le post
        jQuery(idmoteur).find('#multimoteur_ouvert').val(lenum);
      });
      // cas du groupe en option group radio qui gère le multimoteur
      jQuery('input[data-dnc-gestionmultimoteur="radio"]').change(function() {
        var lenum = jQuery(this).attr('data-dnc-numrubrique');
        var idmoteur = "#div_globaljoomleimoteur_" + jQuery(this).attr('data-dnc-nummoteur');
        var montre = false; // pour voir si on a montre qqchose (1er coup)
        // On masque toutes les rubriques > 1
        var lstdiv = jQuery(idmoteur).find('.joomlei_moteur_rubrique');
        for (var i = 1; i < lstdiv.length; i++) {
          if (jQuery(lstdiv[i]).css('display') == 'block') jQuery(lstdiv[i]).slideUp('slow', function() {
            // jQuery(lstdiv[i]).css('display','none');
            // On affiche la rubrique à  montrer
            jQuery(lstdiv[lenum]).slideDown('slow'); //('display','block')
            montre = true;
          });
          viderChamps(lstdiv[i]);
        }
        if (!montre) jQuery(lstdiv[lenum]).slideDown(function() {
          joomlei_calcule_moteur();
        }); //('display','block')
        // On met le numéro de la rubrique ouverte en hidden field
        // Afin de pouvoir la réafficher après le post
        jQuery(idmoteur).find('#multimoteur_ouvert').val(lenum);
      });
    });
    //permet de vider tous les champs enfants du moteur
    function viderChamps(champs) {
      //traitement des checkbox
      jQuery(champs).find('input:checked').each(function() {
        jQuery(this).attr('checked', false);
      });
      //traitement des select
      jQuery(champs).find('option:selected').each(function() {
        if (console && console.log) console.log(this);
        jQuery(this).attr('selected', false);
      });
      //traitement des input text (dates)
      jQuery(champs).find('input[type=text]').each(function() {
        if (console && console.log) console.log(this);
        jQuery(this).val('');
      });
    }
    // Fonction pour le moteur SIMPLE / AVANCE
    function joomleimoteur_afficherplusdecriteres(nummoteur) {
      var idmoteur = "#div_globaljoomleimoteur_" + nummoteur;
      var lstdiv = jQuery(idmoteur).find('div.cached');
      if (lstdiv.length > 0) {
        for (var i = 1; i < lstdiv.length; i++) jQuery(lstdiv[i]).slideDown('slow', function() {
          //jQuery(this).removeClass('uk-hidden');
        });
        jQuery(idmoteur).find('#multimoteur_ouvert').val('1');
        jQuery('.joomleimoteur_plusdecriteres').addClass('uk-hidden');
        jQuery('.joomleimoteur_moinsdecriteres, hr.cached').removeClass('uk-hidden');
      } else {
        // Mode legacy
        lstdiv = jQuery(idmoteur).find('.joomlei_moteur_rubrique');
        for (var i = 1; i < lstdiv.length; i++) jQuery(lstdiv[i]).slideDown('slow');
        jQuery(idmoteur).find('#multimoteur_ouvert').val('1');
        jQuery(idmoteur).find('.joomleimoteur_moinsdecriteres').css('display', 'block');
        jQuery(idmoteur).find('.joomleimoteur_plusdecriteres').css('display', 'none');
      }
    }
    //Fonction pour le moteur SIMPLE / AVANCE
    function joomleimoteur_affichermoinsdecriteres(nummoteur) {
      var idmoteur = "#div_globaljoomleimoteur_" + nummoteur;
      var lstdiv = jQuery(idmoteur).find('div.cached');
      if (lstdiv.length > 0) {
        for (var i = 1; i < lstdiv.length; i++) jQuery(lstdiv[i]).slideUp('slow', function() {
          //jQuery(this).addClass('uk-hidden');
        });
        jQuery(idmoteur).find('#multimoteur_ouvert').val('0');
        jQuery('.joomleimoteur_plusdecriteres').removeClass('uk-hidden');
        jQuery('.joomleimoteur_moinsdecriteres, hr.cached').addClass('uk-hidden');
      } else {
        // Mode Legacy
        lstdiv = jQuery(idmoteur).find('.joomlei_moteur_rubrique');
        for (var i = 1; i < lstdiv.length; i++) jQuery(lstdiv[i]).slideUp('slow');
        jQuery(idmoteur).find('#multimoteur_ouvert').val('0');
        jQuery(idmoteur).find('.joomleimoteur_moinsdecriteres').css('display', 'none');
        jQuery(idmoteur).find('.joomleimoteur_plusdecriteres').css('display', 'block');
      }
    }

    function joomlei_majtot_moteur(total) {
      alert(total);
    }

    function joomlei_calcule_moteur(idmoteur) {
      var el;
      var lechk;
      var lavaleur;
      var letemp;
      var lavaleur = "";
      var lamodalidad = "";
      var lemini = 999999999999;
      var lemaxi = 0;
      var cmptmoda = 0;
      var cmptval = 0;
      var lechamp = "";
      var gp;
      var idgroupe;
      var idchamp;
      var lstel;
      var j;
      var str_url_form;
      // On récupère la liste de tous les groupes du moteur
      var lstgp = jQuery('input[name=jleimoteur_groupe]');
      if (!idmoteur) var idmoteur = "form_joomleimoteur";
      // On parcours la liste des groupes
      for (var i = 0; i < lstgp.length; i++) {
        gp = lstgp[i];
        idgroupe = gp.value;
        lavaleur = "";
        lutilisador = "";
        lamodalidad = "";
        lemini = 999999999999; // ""
        lemaxi = 0; // ""
        cmptmoda = 0;
        cmptval = 0;
        // On retrouve le nom du champ du groupe
        //		alert(idgroupe + ': ' + lechamp);
        lechamp = jQuery('#groupe_' + idgroupe + '_champ').attr('name');
        // On parcours toutes les cases à cocher du groupe
        lstel = jQuery('input[id^=chkjelm_' + idgroupe + '_]');
        for (j = 0; j < lstel.length; j++) {
          el = lstel[j];
          // Si case cochée, on comptabilise les modalités valeurs
          if (el.checked == true) {
            // Si le champ est un critère
            if (lechamp == "elcriterio[]") {
              // On ne concatène pas le num de crit
              lavaleur = jQuery('#hid' + el.id + '_valeur').val();
              // Si critère non Quantitatif : on concatène les modalités
              letemp = jQuery('#hid' + el.id + '_minimo').val() + '';
              if (letemp == '') {
                // C'est pas la première moda chéckée, on met un |
                if (cmptmoda > 0) lamodalidad += "|";
                lamodalidad += jQuery('#hid' + el.id + '_modalidad').val();
                cmptmoda++;
              } else {
                // Quantitatif : pas de concat de la moda
                // mais un calcul mini maxi absolu des cases cochées
                lamodalidad = jQuery('#hid' + el.id + '_modalidad').val();
                if (jQuery('#hid' + el.id + '_minimo').val() != '' && jQuery('#hid' + el.id + '_minimo').val() != '@') lemini = Math.min(lemini, parseInt(jQuery('#hid' + el.id + '_minimo').val()));
                else lemini = jQuery('#hid' + el.id + '_minimo').val();
                if (jQuery('#hid' + el.id + '_maximo').val() != '' && jQuery('#hid' + el.id + '_maximo').val() != '@') lemaxi = Math.max(lemaxi, parseInt(jQuery('#hid' + el.id + '_maximo').val()));
                else lemaxi = jQuery('#hid' + el.id + '_maximo').val();
              }
            } else {
              // Pas un crit : on concatène la valeur et on s'occupe pas du reste
              // On ne concatène pas le num de crit
              if (cmptval > 0) lavaleur += "|";
              lavaleur += jQuery('#hid' + el.id + '_valeur').val();
              // Cas particulier du secteur : il faut aussi metre à jour le hidden utilisadoe
              lutilisador = jQuery('#hid' + el.id + '_valeur').attr('data-dnc-utilisador');
              // alert(lutilisador + ' - ' + '#hid' + el.id + '_valeur');
              cmptval++;
            }
          }
        }
        // Cas du groupe en liste déroulante
        lstel = jQuery('input[id=lstjelm_' + idgroupe + ']');
        var laliste = document.getElementById('lstjelm_' + idgroupe); // jQuery('#lstjelm_' + idgroupe );
        if (laliste + '' != 'null' && laliste + '' != 'undefined') {
          // 10/2016 : support du mode multiple
          var selectedvalues = [];
          var selectedtexts = [];
          var seloptions = [];
          var lesoptions = laliste && laliste.options;
          var opt;
          var txtsel = '';
          for (var cmptopt = 0, iLen = lesoptions.length; cmptopt < iLen; cmptopt++) {
            opt = lesoptions[cmptopt];
            if (opt.selected) {
              seloptions.push(cmptopt);
              selectedvalues.push(opt.value);
              selectedtexts.push(opt.text);
            }
          }
          // var lesel = laliste.selectedIndex;
          var lid = null;
          lamodalidad = '';
          // Patch 12/2016 : bug minimo sur listes deroulantes multiples
          lemini = 999999999999; // ""
          lemaxi = 0; // ""
          //            lemini = '';
          //            lemaxi = '';
          cmptmoda = 0;
          if (selectedvalues.length > 0) {
            for (cmptopt = 0, iLen = selectedvalues.length; cmptopt < iLen; cmptopt++) {
              // lid = laliste.options[seloptions[cmptopt]].value;
              lid = selectedvalues[cmptopt];
              // Si le champ est un critère
              if (lechamp == "elcriterio[]") {
                // On ne concatène rien car un seul élément checkable
                lavaleur = jQuery('#hid' + lid + '_valeur').val();
                // lamodalidad = jQuery('#hid' + lid + '_modalidad').val();
                // Si critère non Quantitatif : on concatène les modalités
                letemp = jQuery('#hid' + lid + '_minimo').val() + '';
                if (letemp == '') {
                  // C'est pas la première moda chéckée, on met un |
                  if (cmptmoda > 0) lamodalidad += "|";
                  lamodalidad += jQuery('#hid' + lid + '_modalidad').val();
                  cmptmoda++;
                } else {
                  // Quantitatif : pas de concat de la moda
                  // mais un calcul mini maxi absolu des cases cochées
                  lamodalidad = jQuery('#hid' + lid + '_modalidad').val();
                  if (jQuery('#hid' + lid + '_minimo').val() != '' && jQuery('#hid' + lid + '_minimo').val() != '@') lemini = Math.min(lemini, parseInt(jQuery('#hid' + lid + '_minimo').val()));
                  else lemini = jQuery('#hid' + lid + '_minimo').val();
                  if (jQuery('#hid' + lid + '_maximo').val() != '' && jQuery('#hid' + lid + '_maximo').val() != '@') lemaxi = Math.max(lemaxi, parseInt(jQuery('#hid' + lid + '_maximo').val()));
                  else lemaxi = jQuery('#hid' + lid + '_maximo').val();
                }
                // alert(lamodalidad);
              } else {
                // if(idgroupe='42000077')
                // 	alert('cououc');
                lavaleur = jQuery('#hid' + lid + '_valeur').val();
                // Cas particulier du secteur : il faut aussi metre à jour le hidden utilisadoe
                lutilisador = jQuery('#hid' + lid + '_valeur').attr('data-dnc-utilisador');
              }
            }
          }
        }
        // Quel que soit le type d'affichage, on termine ainsi :
        // On met à jour le champ valeur du groupe et vide le reste
        jQuery('#groupe_' + idgroupe + '_champ').val(lavaleur);
        // Cas particulier du secteur : il faut mettre à jour le deuxième hidden utilisador
        if (lutilisador != '') jQuery('#groupe_' + idgroupe + '_utilisador').val(lutilisador);
        // if(idgroupe='42000077')
        //	alert('valeur du ctrl du groupe ' + idgroupe + ' après : ' + lavaleur);
        // 	On met à jour les éléments du groupe relatifs au cas critère
        if (lechamp == 'elcriterio[]') {
          jQuery('#groupe_' + idgroupe + '_modalidad').val('');
          jQuery('#groupe_' + idgroupe + '_minimo').val('');
          jQuery('#groupe_' + idgroupe + '_maximo').val('');
          jQuery('#groupe_' + idgroupe + '_modalidad').val(lamodalidad);
          if (lemini != 0 && lemini != 999999999999) jQuery('#groupe_' + idgroupe + '_minimo').val(lemini);
          if (lemaxi != 0) jQuery('#groupe_' + idgroupe + '_maximo').val(lemaxi);
          // alert('modalité(s) : ' + lamodalidad);
        }
      }
      // Calcul Ajax du nombre total de fiches si nécessaire
      var lemoteur = document.getElementById(idmoteur);
      //        if(console && console.log) console.log(lemoteur);
      var calcul_total = 0;
      if (lemoteur != null) calcul_total = lemoteur.calctot.value;
      if (calcul_total == "1") {
        // portion d'url avec les paramètres uniquement
        var lurl = jleim_serialiser(idmoteur);
        urlbase = jQuery('#' + idmoteur).attr('data-dnc-urlbase_ajax'); // '';
        lurl = jQuery('#' + idmoteur).attr('data-dnc-paramsurl_ajax') + lurl; // '' + lurl ;
        // alert(urlbase + '?' + lurl);
        // console.log(urlbase + '?' + lurl);
        jleim_lasturl = urlbase + '&' + lurl;
        jQuery.ajax({
          url: urlbase,
          data: lurl,
          dataType: 'json'
        }).done(function(lejson) {
          // alert(lejson['TOTAL']);
          var nummoteur = jQuery("#" + idmoteur).attr('data-dnc-nummoteur');
          jQuery('#joomlei_moteur_' + nummoteur + '_total span').replaceWith('<span>' + lejson['TOTAL'] + '</span>');
        });
        // Patch 10/2017 : on annule toutes les requtes en cours
        if (!jleim_soustot_reqs) window.jleim_soustot_reqs = [];
        for (var i = jleim_soustot_reqs.length - 1; i >= 0; i--) {
          jleim_soustot_reqs[i].abort();
          jleim_soustot_reqs.splice(i);
        }
        // Ici on va recalculer tous les totaux devant les cases à cocher
        jQuery("#" + idmoteur + " input[name^='chkjelm_']").each(function() {
          var obj = jQuery(this);
          var jleim_idobj = obj.attr('id');
          var lurltemp = lurl;
          var xhrtemp;
          if (obj.attr('data-dnc-champ') != '') {
            lurltemp = lurl + '&' + obj.attr('data-dnc-champ') + "=" + jQuery("#hid" + jleim_idobj + "_valeur").val();
            if (obj.attr('data-dnc-champ') == 'elcriterio[]') {
              lurltemp += '&modalidad[]=' + jQuery("#hid" + jleim_idobj + "_modalidad").val();
              lurltemp += '&minimo[]=' + jQuery("#hid" + jleim_idobj + "_minimo").val();
              lurltemp += '&maximo[]=' + jQuery("#hid" + jleim_idobj + "_maximo").val();
            }
            xhrtemp = jQuery.ajax({
              url: urlbase,
              data: lurltemp,
              dataType: 'json'
            }).done(function(lejson) {
              // alert(lejson['TOTAL']);
              var nummoteur = jQuery("#" + idmoteur).attr('data-dnc-nummoteur');
              console.log("jleim_idobj : " + jleim_idobj);
              jQuery('#' + idmoteur + ' #' + jleim_idobj).parent().find('.jleim_soustotal').html('<span>' + lejson['TOTAL'] + '</span>');
              /*if (lejson['TOTAL'] == 0)
                  jQuery('#' + idmoteur + ' #' + jleim_idobj).parent().find('input[type=checkbox],input[type=radio], label').attr('disabled', 'disabled');
              else
                  jQuery('#' + idmoteur + ' #' + jleim_idobj).parent().find('input[type=checkbox],input[type=radio], label').removeAttr('disabled');*/
            });
            jleim_soustot_reqs.push(xhrtemp);
          }
        });
      }
    }
  </script>
</form>

Name: bookingGET //www.booking.com/searchresults.html

<form name="booking" action="//www.booking.com/searchresults.html" method="get" target="_blank" id="form_booking_booking" onsubmit="return joomlei_validation_booking_booking('booking');" class="uk-form uk-form-horizontal">
  <input type="hidden" name="aid" value="389588">
  <input type="hidden" name="selected_currency" value="EUR">
  <input type="hidden" name="lang" value="fr">
  <input type="hidden" name="checkin_monthday" id="checkin_monthday_booking" value="23">
  <input type="hidden" name="checkin_year_month" id="checkin_year_month_booking" value="2022-11">
  <input type="hidden" name="checkout_monthday" id="checkout_monthday_booking" value="24">
  <input type="hidden" name="checkout_year_month" id="checkout_year_month_booking" value="2022-11">
  <input type="hidden" name="do_availability_check" value="1">
  <input type="hidden" name="city" value="-1470025">
  <div uk-grid="" class="uk-flex-middle uk-grid">
    <div class="rubrique uk-width-small-1-1 uk-width-2-3@m uk-first-column">
      <div id="joomlei_moteur_1_1" class="joomlei_moteur_rubrique ">
        <div class="joomlei_moteur_contenurubrique ">
          <div class="joomlei_moteur_sousrubrique jleimoteur">
            <div class="joomlei_moteur_contenusousrubrique">
              <script type="text/javascript">
                var date_du = new Date();
                var date_au = new Date();
                jQuery(document).ready(function($) {
                  //on récupère les dates qui sont dans l'url si GET précédent
                  //f_recup_dates_booking();
                });
                //permet de mettre à jour les dates avec la vérification.
                function f_verif_dates_booking(id_parent) {
                  //on récupère les dates du et au
                  var tmp_date_du = jQuery('#booking_dispodu_booking').val();
                  jour_du = tmp_date_du.split('.')[0];
                  mois_du = tmp_date_du.split('.')[1] - 1;
                  annee_du = tmp_date_du.split('.')[2];
                  var tmp_date_au = jQuery('#booking_dispoau_booking').val();
                  jour_au = tmp_date_au.split('.')[0];
                  mois_au = tmp_date_au.split('.')[1] - 1;
                  annee_au = tmp_date_au.split('.')[2];
                  if (jour_du != '' && mois_du != '') {
                    date_du.setFullYear(annee_du);
                    date_du.setMonth(mois_du);
                    date_du.setDate(jour_du);
                  }
                  if (jour_au != '' && mois_au != '') {
                    date_au.setFullYear(annee_au);
                    date_au.setMonth(mois_au);
                    date_au.setDate(jour_au);
                  }
                  //si date_du valide et que l'appel de la fonction vient de la date_du
                  if ((id_parent == 'jour_du' || id_parent == 'mois_du' || id_parent == 'calendar_du') && mois_du != '' && jour_du != '') {
                    //ici on change date_au = date_du + 1 jour si inférieure à date_du
                    //si les deux dates existent
                    if (mois_au != '' && jour_au != '') {
                      if (date_du > date_au) {
                        date_au.setFullYear(annee_du);
                        date_au.setMonth(mois_du);
                        date_au.setDate((parseInt(jour_du) + 1));
                        jour_au = parseInt(jour_du) + 1;
                        mois_au = mois_du;
                        annee_au = annee_du;
                        //f_jour_au_booking();
                        //jQuery('#liste_mois_au_booking .'+date_au.getMonth()+date_au.getFullYear()).prop('selected', 'selected');
                      }
                      //else rien
                    } else {
                      date_au.setFullYear(annee_du);
                      date_au.setMonth(mois_du);
                      date_au.setDate((parseInt(jour_du) + 1));
                      jour_au = parseInt(jour_du) + 1;
                      mois_au = mois_du;
                      annee_au = annee_du;
                      //f_jour_au_booking();
                      //jQuery('#liste_mois_au_booking .'+date_au.getMonth()+date_au.getFullYear()).prop('selected', 'selected');
                    }
                  }
                  //si date_au valide et que l'appel vient de la date_au et que date_du vide
                  if ((id_parent == 'jour_au' || id_parent == 'mois_au' || id_parent == 'calendar_au') && mois_au != '' && jour_au != '' && (mois_du == '' || jour_du == '')) {
                    date_du.setFullYear(annee_au);
                    date_du.setMonth(mois_au);
                    date_du.setDate((parseInt(jour_au) - 1));
                    jour_du = parseInt(jour_au) - 1;
                    mois_du = mois_au;
                    annee_du = annee_au;
                    //f_jour_du_booking();
                    //jQuery('#liste_mois_du_booking .'+date_du.getMonth()+date_du.getFullYear()).prop('selected', 'selected');
                  }
                  //si le mois est séléctionné alors on actualise la liste des jours en conséquence
                  if (mois_du != '' && annee_du != '') {
                    //f_jour_du_booking();
                  }
                  //si la date est complète on peut stocker la date dans pnames
                  if (jour_du != '' && mois_du != '') {
                    mois = parseInt(date_du.getMonth()) + 1;
                    if (mois < 10) mois = '0' + mois;
                    var letemp = parseInt(date_du.getDate());
                    if (letemp < 10) letemp = '0' + letemp;
                    jQuery('#booking_dispodu_booking').val(letemp + '.' + mois + '.' + date_du.getFullYear());
                    //			console.log(date_du.getDate()+'.'+mois+'.'+date_du.getFullYear());
                  }
                  //si le mois est séléctionné alors on actualise la liste des jours en conséquence
                  if (mois_au != '' && annee_au != '') {
                    //f_jour_au_booking();
                  }
                  //si la date est complète on peut stocker la date dans pnames
                  if (jour_au != '' && mois_au != '') {
                    mois = parseInt(date_au.getMonth()) + 1;
                    if (mois < 10) mois = '0' + mois;
                    var letemp2 = parseInt(date_au.getDate());
                    if (letemp2 < 10) letemp2 = '0' + letemp2;
                    jQuery('#booking_dispoau_booking').val(letemp2 + '.' + mois + '.' + date_au.getFullYear());
                    //			console.log(date_au.getDate()+'.'+mois+'.'+date_au.getFullYear());
                  }
                  if (jour_du != '' && mois_du != '' && jour_au != '' && mois_au != '') {
                    if (!f_verif_chrono_booking()) {}
                  }
                }
                // permet de verifier si la chronologies des dates est cohérente.
                function f_verif_chrono_booking() {
                  //on vérifie si les dates sont biend des dates
                  if (date_du > date_au) {
                    alert('dates incorrectes');
                    return false;
                  } else {
                    return true;
                  }
                }
                //permet d'actualiser la liste des dates selon le calendrier
                function f_actu_date_du_booking() {
                  var tmp_date = jQuery('#booking_dispodu_booking').val();
                  jour_du = tmp_date.split('.')[0];
                  mois_du = tmp_date.split('.')[1] - 1;
                  annee_du = tmp_date.split('.')[2];
                  date_du.setFullYear(annee_du);
                  date_du.setMonth(mois_du);
                  date_du.setDate(jour_du);
                  //f_jour_du_booking();
                  //jQuery('#liste_mois_du_booking .'+date_du.getMonth()+date_du.getFullYear()).prop('selected', 'selected');
                  f_verif_dates_booking('calendar_du');
                }
                //permet d'actualiser la liste des dates selon le calendrier
                function f_actu_date_au_booking() {
                  var tmp_date = jQuery('#booking_dispoau_booking').val();
                  jour_au = tmp_date.split('.')[0];
                  mois_au = tmp_date.split('.')[1] - 1;
                  annee_au = tmp_date.split('.')[2];
                  date_au.setFullYear(annee_au);
                  date_au.setMonth(mois_au);
                  date_au.setDate(jour_au);
                  //f_jour_au_booking();
                  //jQuery('#liste_mois_au_booking .'+date_au.getMonth()+date_au.getFullYear()).prop('selected', 'selected');
                  f_verif_dates_booking('calendar_au');
                }
                // permet de mettre à jour les dates selon les dates passées dans la recherche
                function f_recup_dates_booking() {
                  var tab_date_du = jQuery('#booking_dispodu_booking').val().split('.');
                  var tab_date_au = jQuery('#booking_dispoau_booking').val().split('.');
                  if (tab_date_du[0] != '' && tab_date_au[0] != '') {
                    date_du.setFullYear(tab_date_du[2]);
                    date_du.setMonth(tab_date_du[1] - 1);
                    date_du.setDate(tab_date_du[0]);
                    date_au.setFullYear(tab_date_au[2]);
                    date_au.setMonth(tab_date_au[1] - 1);
                    date_au.setDate(tab_date_au[0]);
                    jour_du = date_du.getDate();
                    mois_du = date_du.getMonth();
                    annee_du = date_du.getFullYear();
                    jour_au = date_au.getDate();
                    mois_au = date_au.getMonth();
                    annee_au = date_au.getFullYear();
                    f_verif_dates_booking('get');
                  }
                }
                //-->
              </script>
              <div class="joomlei_moteur_groupe moteur_booking" id="joomlei_moteur_groupe_booking__booking fr-FR">
                <div uk-grid="" class="uk-grid">
                  <div class="uk-width-1-2 uk-form-row spec uk-first-column">
                    <div class="uk-inline uk-width-1-1">
                      <a class="uk-form-icon uk-form-icon-flip uk-icon" uk-icon="icon: calendar"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> <path d="M 2,3 2,17 18,17 18,3 2,3 Z M 17,16 3,16 3,8 17,8 17,16 Z M 17,7 3,7 3,4 17,4 17,7 Z"></path> <rect width="1" height="3" x="6" y="2"></rect> <rect width="1" height="3" x="13" y="2"></rect></svg></a>
                      <span class="uk-form-icon">DU</span>
                      <input name="booking_dispodu_booking" data-toggle="datepicker" type="text" class="uk-form-large uk-width-1-1 uk-input" id="booking_dispodu_booking" value="17.07.2024" placeholder="DU" readonly="readonly">
                    </div>
                  </div>
                  <div class="uk-width-1-2 spec">
                    <div class="uk-inline uk-width-1-1">
                      <a class="uk-form-icon uk-form-icon-flip uk-icon" uk-icon="icon: calendar"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> <path d="M 2,3 2,17 18,17 18,3 2,3 Z M 17,16 3,16 3,8 17,8 17,16 Z M 17,7 3,7 3,4 17,4 17,7 Z"></path> <rect width="1" height="3" x="6" y="2"></rect> <rect width="1" height="3" x="13" y="2"></rect></svg></a>
                      <span class="uk-form-icon">AU</span>
                      <input type="text" name="booking_dispoau_booking" data-toggle="datepicker" class="uk-form-large uk-width-1-1 uk-input" id="booking_dispoau_booking" value="18.07.2024" placeholder="AU" readonly="readonly">
                    </div>
                  </div>
                </div>
                <div id="erreur_dates" style="color: red; display: none;">DATES_ERROR</div>
                <div id="letsdispos"></div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="uk-margin uk-width-small-1-1 uk-width-1-3@m uk-text-center btnsubmit">
      <a class="uk-button uk-button-primary uk-button-large uk-width-1-1 submitbooking" onclick="ga('send', 'event', 'Home', 'clic', 'Booking');" id="btnsubmitbooking">Réserver</a>
    </div>
  </div>
  <script type="text/javascript">
    jQuery(document).ready(function() {
      jQuery('#booking_dispodu_booking, #booking_dispoau_booking').attr('readonly', '');
      jQuery('#btnsubmitbooking').click(function() {
        console.log("valid booking");
        jQuery("#form_booking_booking").submit();
      });
    })
  </script>
</form>

Text Content

Aller au contenu

📢 Nouveau ! “Hel’eau la Bruche”, un réseau géolocalisé de points d’eau pour
remplir votre gourde !

📢 Nouveau ! “Hel’eau la Bruche”, un réseau géolocalisé de points d’eau pour
remplir votre gourde !


Revenir à l'accueil

Téléchargement de documents

Webcams

Météo

Visiter notre boutique

Rando Bruche

Coups de cœur

Découvrir la destination
Rechercher un itinéraire

 * La vallée sans voiture
   * La Vélo Bruche
   * Carte interactive
   * Hel’eau la Bruche
 * VTC
   * Culture
   * Famille
   * Fraicheur
   * Altitude
   * Incontournable
   * Panoramique
 * VTT
   * Culture
   * Famille
   * Fraicheur
   * Altitude
   * Incontournable
   * Panoramique
 * Vélo route
   * Culture
   * Famille
   * Fraicheur
   * Altitude
   * incontournable
   * Panoramique
 * Pour tous
   * Tricycle, poussette, fauteuil…
   * Poussette 4×4
   * En itinérance
 * Infos pratiques
   * A table
   * Dormir
   * Bivouac
   * L’Alsace à vélo
   * Services vélos
   * Accueil vélo
   * Utilisation des fichiers GPX/KML
   * Bonnes pratiques et zones protégées
 * Offres en ligne
   * Offres vélo gourmandes
   * Offres vélo sport & bien-être
   * Offres de location de vélos à assistance électrique
   * Vente de cartes et accessoires

Menu
 * La vallée sans voiture
   * La Vélo Bruche
   * Carte interactive
   * Hel’eau la Bruche
 * VTC
   * Culture
   * Famille
   * Fraicheur
   * Altitude
   * Incontournable
   * Panoramique
 * VTT
   * Culture
   * Famille
   * Fraicheur
   * Altitude
   * Incontournable
   * Panoramique
 * Vélo route
   * Culture
   * Famille
   * Fraicheur
   * Altitude
   * incontournable
   * Panoramique
 * Pour tous
   * Tricycle, poussette, fauteuil…
   * Poussette 4×4
   * En itinérance
 * Infos pratiques
   * A table
   * Dormir
   * Bivouac
   * L’Alsace à vélo
   * Services vélos
   * Accueil vélo
   * Utilisation des fichiers GPX/KML
   * Bonnes pratiques et zones protégées
 * Offres en ligne
   * Offres vélo gourmandes
   * Offres vélo sport & bien-être
   * Offres de location de vélos à assistance électrique
   * Vente de cartes et accessoires

Circuits incontournables
Voir les fiches
Parcours de saison
Voir les itinéraires
Offres en ligne
Voir les randonnées
Activités nature
Voir les activités
Circuits incontournables
Voir les fiches
Parcours de saison
Voir les itinéraires
Offres en ligne
Voir les randonnées
Activités nature
Voir les activités
Circuits incontournables
Voir les fiches
Parcours de saison
Voir les itinéraires
Offres en ligne
Voir les randonnées
Activités nature
Voir les activités
Diapositive précédente
Diapositive suivante


TROUVER UN ITINÉRAIRE

Pratique
VTC (51) VTT (63) Vélo route (33) Poussette 4x4 (2) Tricyle, poussette, fauteuil
(1) En Itinérance (6)
Thématiques
Culture (41) Famille (30) Fraicheur (64) En altitude (60) Incontournable (36)
Panoramique (71)
Longueur, durée,...

LONGUEUR DU PARCOURS (KM)

0 155

DÉNIVELÉ POSITIF CUMULÉ (M)

0 5300
- de 2h (27) 1/2 journée (8) Journée (57) Plus d'une journée (2)
Condition physique
Tout public (37) Moyen (40) Sportif (25) Expert (26)
Lieux d'intérêt
Champ du feu (15) Donon (6) Salm (21) Perheux -Struthof (13) Hohbuhl - Guirbaden
(3) Rocher de Mutzig - Nideck (6) Le Hang - Climont (5)
Géolocalisation
Distance : 5 km
à partir d'une gare (48)
Mots clés


128 résultats
Rechercher


THÉMATIQUES CIRCUITS

Incontournables
Fermes auberges
En famille
Fraicheur
Panoramiques
En altitude
Culture
En itinérance


L’AVENTURE À VÉLO DANS LA VALLÉE DE LA BRUCHE

Au cœur du Massif des Vosges, la vallée de la Bruche conjugue les attraits de
l’Alsace avec ceux des montagnes vosgiennes… Station de ski en hiver, forêts
profondes en automne, berges verdoyantes, pâturages des hautes chaumes… La
vallée de la Bruche, c’est tout cela à la fois et en toute saison !

Amateurs de balades à vélo en famille, de promenades sur routes forestières, de
circuits vélo route, sportifs, contemplatifs ou petits trotteurs en culotte
courte, en solo ou en tribu… A tous ceux qui aiment bouger, ce site est le vôtre
! Circuit vélo en boucle ou en itinérance, infos pratiques, offres alliant vélo,
spa ou gourmandises, bons plans…

Vous rêvez de vous évader sans les contraintes de la voiture ? La vallée de la
Bruche est l’endroit idéal pour des vacances éco-responsables ! Venez en train
ou laissez votre véhicule et explorez la région à vélo, à pied : accueil à la
gare, carte de rando location de VAe, pain frais …. on a pensé à tout  avec
l’offre “Bruche tout doux” des vacances sans ma voiture !

Rejoignez la communauté des passionnés de vélo dans la vallée de la Bruche.

Cliquez, on s’occupe de tout


PROFITEZ DE NOS OFFRES EN LIGNE


OFFRES DE LOCATION DE VÉLOS À ASSISTANCE ÉLECTRIQUE

Découvrir


OFFRES VÉLO & BIENÊTRE

Découvrir


OFFRES VÉLO GOURMANDES

Découvrir


CARTES & ACCESSOIRES

Découvrir


OFFRES DE LOCATION DE VÉLOS À ASSISTANCE ÉLECTRIQUE

Découvrir


OFFRES VÉLO & BIENÊTRE

Découvrir


OFFRES VÉLO GOURMANDES

Découvrir


CARTES & ACCESSOIRES

Découvrir


OFFRES DE LOCATION DE VÉLOS À ASSISTANCE ÉLECTRIQUE

Découvrir


OFFRES VÉLO & BIENÊTRE

Découvrir


OFFRES VÉLO GOURMANDES

Découvrir


CARTES & ACCESSOIRES

Découvrir




ACTUALITÉS & COUPS DE CŒUR


LA VÉLOBRUCHE – OU COMMENT FAIRE D’UN ITINÉRAIRE CYCLABLE…UNE EXPÉRIENCE À
VÉLO !

 * Sportifs & itinérants

En savoir plus


FEMMES DE TERROIR

 * Rencontres, Vélo & terroir

En savoir plus


LES SENTIERS PLAISIR® : UN ACCUEIL QUI FAIT SON CHEMIN

 * Famille, Insolite, Mémoire & histoire, Nature, Rencontres, Saisonnier

En savoir plus


LA MÉMOIRE DES PETITES CHOSES

 * Famille, Insolite

En savoir plus


NATURA 2000 – UN ATOUT AUTANT QU’UN ENJEU

 * Nature

En savoir plus


LA VÉLOBRUCHE – OU COMMENT FAIRE D’UN ITINÉRAIRE CYCLABLE…UNE EXPÉRIENCE À
VÉLO !

 * Sportifs & itinérants

En savoir plus


FEMMES DE TERROIR

 * Rencontres, Vélo & terroir

En savoir plus


LES SENTIERS PLAISIR® : UN ACCUEIL QUI FAIT SON CHEMIN

 * Famille, Insolite, Mémoire & histoire, Nature, Rencontres, Saisonnier

En savoir plus


LA MÉMOIRE DES PETITES CHOSES

 * Famille, Insolite

En savoir plus


NATURA 2000 – UN ATOUT AUTANT QU’UN ENJEU

 * Nature

En savoir plus


LA VÉLOBRUCHE – OU COMMENT FAIRE D’UN ITINÉRAIRE CYCLABLE…UNE EXPÉRIENCE À
VÉLO !

 * Sportifs & itinérants

En savoir plus



RÉSERVER UN HÉBERGEMENT DANS LA VALLÉE DE LA BRUCHE EN ALSACE

DU
AU
DATES_ERROR

Réserver



PRÉPARER VOTRE VOYAGE EN ALSACE

La vallée en images
Météo
Hébergements
Brochures
Comment venir ?
Carte interactive

DONNEZ NOUS VOTRE AVIS

Tripadvisor
Google
Facebook

L'Accueil est dans notre nature

OFFICE DE TOURISME

114, Grand-rue
F-67130 Schirmeck
Tél | +33 3 88 47 18 51






www.valleedelabruche.fr
tourisme@valleedelabruche.fr

HORAIRES D'OUVERTURE

Ouvert toute l’année

 * 1er oct. > 30 avril
   lundi au vendredi : 9h à 12h & 14h à 17h
   (fermé le mardi matin)

 * 2 mai > 30 septembre
   lundi au samedi : 9h à 12h & 14h à 18h30 (jusqu’à 17h le samedi)

 * Dimanches en juillet-août & jours fériés
   8 mai, Ascension, 14 juillet, 15 août, 24 & 31 décembre : 9h à 13h

PARKINGS GRATUITS
VOITURES & VELOS

 * Place du marché à 50m, TLJ. sauf pour les voitures le mercredi de mi-octobre
   à mi-avril  
 * Parking du Bergopré à 350m
 * Parking de la gare à 250 m


 * Mentions légales
 * Données personnelles
 * Réalisation DN Consultants