101-review-lsi-439-ad-xj0qwo-common-db.studio-net.fr Open in urlscan Pro
51.75.241.127  Public Scan

URL: https://101-review-lsi-439-ad-xj0qwo-common-db.studio-net.fr/
Submission: On June 20 via api from US — Scanned from FR

Form analysis 1 forms found in the DOM

GET /recherche

<form id="form" action="/recherche"
  x-data="{ alertLocation : false, showExtended : false,hasChanged : false,   email : '', types : ['maison','appartement'] , maxprice:[] ,opened: false, isModalOpen: false, checked: 'acheter', extendValue: '-1', value: '', locations: [], minrooms: [],  show: false, suggestions: [], histories: [] }"
  x-init="$watch('locations', locations => value = locations.join(','))" method="GET" class="sm:pr-10 sm:pt-10 sm:pl-10 sm:pb-6 sm:mb-0 p-4 sm:w-full ">
  <label>
    <input type="text" name="filter[type]" value="maison,appartement" class="hidden">
  </label>
  <div class="flex mb-6 sm:mb-8 container-fields">
    <label class="w-full inline-flex items-center" for="filter-transaction-acheter" x-on:click="$el.setAttribute('action', '/recherche'); locations = [];">
      <input aria-labelledby="label-acheter" class="sr-only" type="radio" name="filter[transaction]" id="filter-transaction-acheter" value="acheter" x-model="checked">
      <span id="label-acheter" :class="[ checked === 'acheter' ? 'bg-red-600 text-white' : 'bg-gray-100 text-gray-800' ]"
        class="w-full flex justify-center p-3 text-center capitalize border-r border-gray-200 rounded-bl-lg rounded-tl-lg cursor-pointer sm:text-lg bg-red-600 text-white">Acheter</span>
    </label>
    <label class="w-full inline-flex items-center" for="filter-transaction-louer" x-on:click="$el.setAttribute('action', '/recherche'); locations = [];">
      <input aria-labelledby="label-louer" class="sr-only" type="radio" name="filter[transaction]" id="filter-transaction-louer" value="louer" x-model="checked">
      <span id="label-louer" :class="[ checked === 'louer' ? 'bg-red-600 text-white' : 'bg-gray-100 text-gray-800 border-l' ]"
        class="w-full flex justify-center border-r border-gray-200 p-3 text-center capitalize cursor-pointer sm:text-lg bg-gray-100 text-gray-800 border-l">Louer</span>
    </label>
    <label class="w-full inline-flex items-center" for="filter-transaction-estimer" x-on:click="$el.setAttribute('action', '/estimation-immobiliere'); locations = [];">
      <input aria-labelledby="label-estimer" class="sr-only" type="radio" name="filter[transaction]" id="filter-transaction-estimer" value="estimer" x-model="checked">
      <span id="label-estimer" :class="[ checked === 'estimer' ? 'bg-red-600 text-white' : 'bg-gray-100 text-gray-800' ]"
        class="w-full flex justify-center p-3 text-center capitalize rounded-br-lg rounded-tr-lg cursor-pointer sm:text-lg bg-gray-100 text-gray-800">Estimer</span>
    </label>
  </div>
  <div x-on:click.away="show = false" class="container-fields items-center justify-center w-full">
    <input type="text" class="hidden" name="filter[location]" x-model="locations">
    <template x-if="checked !== 'estimer'">
      <div>
        <div class="w-full flex flex-col justify-center">
          <div class="mb-6 sm:mb-8 ">
            <div :class="{'border-red-600': suggestions.length > 0 &amp;&amp; locations.length === 0}" class="w-full flex-column  relative flex-1 text-gray-800" ref="search">
              <div class="items-center" :class="[showExtended &amp;&amp; locations.length > 0  &amp;&amp; extendValue < 0  ? 'rounded-tl-lg rounded-tr-lg bg-gray-100  border-t border-r border-l border-gray-300' : '']">
                <div class="container" x-on:click="showExtended = !showExtended" x-on:click.away="show = false">
                  <template x-for="(location, i) in locations" :key="i">
                    <div class=" flex justify-between bg-gray-100 rounded-lg relative p-3" x-on:click="showExtended = !showExtended">
                      <button type="button" class="flex items-center  mt-1 bg-gray-100 rounded-lg cursor-pointer" x-on:click="extendValue = -1 ; locations = [...locations.slice(0, i), ...locations.slice(i + 1)]">
                        <span class="text-gray-700 sm:text-lg" x-text="location + (extendValue >= 0 ? ' | ' + extendValue/1000 + ' km' : '')"></span>
                        <svg class="w-4 h-4 ml-2 text-gray-700" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                          <line x1="18" y1="6" x2="6" y2="18"></line>
                          <line x1="6" y1="6" x2="18" y2="18"></line>
                        </svg> </button>
                      <i class="fas fa-map-marker-alt self-center pr-3 absolute right-1" style="color: #252F3F"></i>
                    </div>
                  </template>
                  <div class="flex justify-between rounded-tl-lg rounded-tr-lg bg-gray-100 relative" x-on:click="showExtended = true" x-show="locations.length == 0"
                    :class="[locations.length == 0 ? 'rounded-br-lg rounded-bl-lg ' : 'border-t border-r border-l border-gray-300 border-b-0 !important']">
                    <input type="text" class="town bg-gray-100 flex-1 sm:text-lg w-full p-2 lg:p-3 placeholder-gray-700 rounded-lg" x-bind:placeholder="'Dans quelle ville recherchez-vous ?'" x-ref="input" x-on:focus="show = true"
                      x-on:change="hasChanged = true" x-on:keydown.enter.prevent="locations = suggestions.length > 0 ? locations.concat([suggestions[0].name]) : locations.concat([$event.target.value]); $event.target.value = '';"
                      x-on:input.debounce="axios.get('/api/localizations/autocomplete', { params: { token: $event.target.value } }).then(function (response) { suggestions = response.data.slice(0, 10); })">
                    <i class="fas fa-map-marker-alt self-center pr-2 absolute right-1" style="color: #252F3F"></i>
                  </div>
                </div>
              </div>
              <div x-cloak="" x-show="show &amp;&amp; suggestions.length > 0" class="suggestions-container absolute inset-x-0 z-20 w-full p-4 bg-white rounded-b-lg">
                <template x-for="suggestion in suggestions" :key="suggestion.id">
                  <button type="button" class="flex justify-between w-full py-1 cursor-pointer" x-on:click="locations = locations.concat([suggestion.name]); suggestions = []; showExtended = true; $refs.input.value = ''; $refs.input.focus();">
                    <div class="font-semibold" x-text="suggestion.label"></div>
                    <div class="text-gray-500" x-text="suggestion.type"></div>
                  </button>
                </template>
              </div>
              <div x-cloak="" class="suggestions-history" x-show="show &amp;&amp; histories.length >= 1 &amp;&amp; suggestions.length === 0 &amp;&amp; locations.length === 0">
                <div class="bg-cool-gray-100 py-2 px-4 text-sm font-semibold"> Recherches récentes </div>
                <div class="p-4">
                  <template x-for="history in histories" :key="history.id">
                    <button type="button" class="flex justify-between w-full cursor-pointer py-1" x-on:click="locations = locations.concat([history.name]); showExtended = true;histories = []; $refs.input.value = ''; $refs.input.focus();">
                      <div class="font-semibold" x-text="history.label"></div>
                      <div class="text-gray-500" x-text="history.type"></div>
                    </button>
                  </template>
                </div>
              </div>
            </div>
            <div class=" block mt-0 rounded-bl-lg border-t-0 rounded-br-lg bg-gray-100  border-b border-r border-l border-gray-300  w-full" x-show="showExtended &amp;&amp; locations.length > 0 &amp;&amp; extendValue < 0"
              style="top: 43px; z-index: 1;">
              <div class="text-center bg-gray-100">
                <hr style="margin-left:15%; width: 70%; border-top: 1px solid rgb(220,220,220);">
              </div>
              <label>
                <select class="w-full p-2 sm:p-3 form-select bg-gray-100 text-gray-700 border-none sm:text-lg" wire:model="filter.extend" name="filter[extend]" x-model="extendValue">
                  <option value=""> Étendre la recherche ? </option>
                  <option value="5000"> 5 kilomètres </option>
                  <option value="15000"> 15 kilomètres </option>
                  <option value="20000"> 20 kilomètres </option>
                  <option value="0"> Ne pas étendre ma recherche </option>
                </select>
              </label>
            </div>
          </div>
          <div class="container-fields mb-6 sm:mb-8">
            <div class="panels flex justify-between flex-col sm:flex-row">
              <div class="w-full sm:w-5/12">
                <div class="h-full"
                  x-data="{ hasChanged: false, mask: null, initMask: function(el) { this.mask = IMask(el, { mask: Number, min: 1, max: 100000000, thousandsSeparator: ' ' }); if(el.dataset.initialValue) { this.mask.value = el.dataset.initialValue; } },resetMask: function(el) {this.mask.value = ''; } }"
                  x-init="initMask($refs.inputElement)">
                  <label class="w-full h-full flex justify-between bg-gray-100 rounded-lg relative">
                    <input x-ref="inputElement" x-on:change="hasChanged = true" wire:model.lazy="filter.maxprice" name="filter[maxprice]" @reset-input.window="resetMask($refs.inputElement)"
                      class="sm:text-lg placeholder-gray-700 bg-gray-100 text-gray-700 border-none block w-full p-2 lg:p-3 form-input sm:text-lg sm:leading-5" placeholder="Budget maximum" data-initial-value="">
                    <i class="fas fa-euro-sign self-center mr-3 absolute right-1" style="color: #252F3F"></i>
                  </label>
                </div>
              </div>
              <div class="right-panel relative w-full sm:w-5/12 mt-6 sm:mt-0" x-on:click.away="opened = false" x-on:click="opened = !opened" x-bind:class="{ 'active': opened }">
                <div class="relative flex bg-gray-100 text-gray-700 justify-between p-2 lg:p-3 text-md rounded-lg" :class="{'border-solid border-t border-r border-l border-gray-300' : opened == true}">
                  <span id="piece-minimum-title" class="sm:text-lg">Nb de pièce minimum</span>
                  <i x-show="!opened" class="fas fa-chevron-down self-center absolute right-3" style="color: #252F3F"></i>
                  <i x-show="opened" class="fas fa-chevron-up absolute right-3" style="color: #252F3F"></i>
                </div>
                <input type="hidden" id="hiddenRooms" name="filter[rooms]" wire:model="filter.rooms">
                <div class="rooms hidden-content rounded-b-lg p-2 lg:p-3 flex bg-gray-100" x-show="opened">
                  <!-- Button 1 -->
                  <div class="ck-button">
                    <label class="w-8 h-8 rounded-lg block">
                      <input :checked="minrooms.includes('1')" x-on:change="opened = false; hasChanged = true;" type="checkbox" class="hidden" value="1" onchange="updateTitle(this); updateHiddenInput()" name="filter[minrooms][]"
                        wire:model="filter.minrooms">
                      <span class="rounded-lg">1</span>
                    </label>
                  </div>
                  <!-- Button 2 -->
                  <div class="ck-button">
                    <label class="w-8 h-8 rounded-lg block">
                      <input :checked="minrooms.includes('2')" x-on:change="opened = false; hasChanged = true;" type="checkbox" class="hidden" value="2" onchange="updateTitle(this); updateHiddenInput()" name="filter[minrooms][]"
                        wire:model="filter.minrooms">
                      <span class="rounded-lg">2</span>
                    </label>
                  </div>
                  <!-- Button 3 -->
                  <div class="ck-button">
                    <label class="w-8 h-8 rounded-lg block">
                      <input :checked="minrooms.includes('3')" x-on:change="opened = false; hasChanged = true;" type="checkbox" class="hidden" value="3" onchange="updateTitle(this); updateHiddenInput()" name="filter[minrooms][]"
                        wire:model="filter.minrooms">
                      <span class="rounded-lg">3</span>
                    </label>
                  </div>
                  <!-- Button 4 -->
                  <div class="ck-button">
                    <label class="w-8 h-8 rounded-lg block">
                      <input :checked="minrooms.includes('4')" x-on:change="opened = false; hasChanged = true;" type="checkbox" class="hidden" value="4" onchange="updateTitle(this); updateHiddenInput()" name="filter[minrooms][]"
                        wire:model="filter.minrooms">
                      <span class="rounded-lg">4</span>
                    </label>
                  </div>
                  <!-- Button 5+ -->
                  <div class="ck-button">
                    <label class="w-8 h-8 rounded-lg block">
                      <input :checked="minrooms.includes('5')" x-on:change="opened = false; hasChanged = true;" type="checkbox" class="hidden" value="5" onchange="updateTitle(this); updateHiddenInput()" name="filter[minrooms][]"
                        wire:model="filter.minrooms">
                      <span class="rounded-lg">5+</span>
                    </label>
                  </div>
                </div>
              </div>
            </div>
          </div>
          <div id="container-types" class="container-fields flex flex-col sm:justify-between sm:w-full mb-6 sm:mb-8">
            <div class="flex justify-between  sm:justify-between sm:w-full">
              <div class="dk-button">
                <label class="rounded-lg bg-slate-400 flex">
                  <input x-on:change="hasChanged = true" x-bind:checked="types.includes('appartement')" type="checkbox" x-model="types" class="hidden" value="maison" wire:model="filter.type" name="filter[type][]">
                  <span class="types cursor-pointer rounded-lg bg-gray-100 flex sm:text-lg px-6 py-3" style="min-width: 100px">Maison <i class="fas fa-plus ml-3" x-show="!types.includes('maison')"></i>
                    <i class="fas fa-check ml-3" x-show="types.includes('maison')"></i>
                  </span>
                </label>
              </div>
              <div class="dk-button">
                <label class="rounded-lg bg-slate-400 flex">
                  <input x-on:change="hasChanged = true" x-bind:checked="types.includes('appartement')" type="checkbox" x-model="types" class="hidden" value="appartement" wire:model="filter.type" name="filter[type][]">
                  <span class="types cursor-pointer rounded-lg bg-gray-100 flex sm:text-lg px-6 py-3" style="min-width: 100px">Appartement <i class="fas fa-plus ml-3" x-show="!types.includes('appartement')"></i>
                    <i class="fas fa-check ml-3" x-show="types.includes('appartement')"></i>
                  </span>
                </label>
              </div>
              <div class="hidden sm:block dk-button" x-show="checked == 'acheter'">
                <label class="rounded-lg bg-slate-400 flex">
                  <input x-on:change="hasChanged = true" x-bind:checked="types.includes('terrain')" type="checkbox" x-model="types" class="hidden" value="terrain" wire:model="filter.type" name="filter[type][]">
                  <span class="types cursor-pointer rounded-lg bg-gray-100 flex sm:text-lg px-6 py-3" style="min-width: 100px">Terrain <i class="fas fa-plus ml-3" x-show="!types.includes('terrain')"></i>
                    <i class="fas fa-check ml-3" x-show="types.includes('terrain')"></i>
                  </span>
                </label>
              </div>
              <div class="dk-button">
                <label class="hidden sm:block  rounded-lg flex bg-slate-400">
                  <input x-on:change="hasChanged = true" x-bind:checked="types.includes('parking')" type="checkbox" x-model="types" class="hidden" value="parking" wire:model="filter.type" name="filter[type][]">
                  <span class="types cursor-pointer rounded-lg bg-gray-100 flex sm:text-lg px-6 py-3" style="min-width: 100px;">Parking <i class="fas fa-plus ml-3" x-show="!types.includes('parking')"></i>
                    <i class="fas fa-check ml-3" x-show="types.includes('parking')"></i>
                  </span>
                </label>
              </div>
              <button type="button" onclick="toggleAdditionalTypes()" id="showButton" class="sm:hidden">
                <i class="fas fa-plus rounded-full h-6 w-6 flex justify-center items-center" style="background-color: #252F3F; display: flex;justify-content: center;align-items: center;">
														</i>
                <span class="hidden">Afficher plus</span>
              </button>
            </div>
            <div id="additionalTypes" style="display: none" class="mt-3 sm:mt-0 hidden">
              <div class="dk-button mr-8 sm:mr-0" x-show="checked == 'acheter'">
                <label class="rounded-lg bg-slate-400 flex">
                  <input x-on:change="hasChanged = true" x-bind:checked="types.includes('terrain')" type="checkbox" x-model="types" class="hidden" value="terrain" wire:model="filter.type" name="filter[type][]">
                  <span class="ttypes cursor-pointer rounded-lg bg-gray-100 flex sm:text-lg px-6 py-3">Terrain <i class="fas fa-plus ml-3" x-show="!types.includes('terrain')"></i>
                    <i class="fas fa-check ml-3" x-show="types.includes('terrain')"></i>
                  </span>
                </label>
              </div>
              <div class="dk-button">
                <label class="rounded-lg flex bg-slate-400">
                  <input x-bind:checked="types.includes('parking')" type="checkbox" x-model="types" class="hidden" value="parking" wire:model="filter.type" name="filter[type][]">
                  <span class="types cursor-pointer rounded-lg bg-gray-100 flex sm:text-lg px-6 py-3">Parking <i class="fas fa-plus ml-3" x-show="!types.includes('parking')"></i>
                    <i class="fas fa-check ml-3" x-show="types.includes('parking')"></i>
                  </span>
                </label>
              </div>
            </div>
          </div>
          <button x-show="locations.length > 0" type="button" class="lg:w-auto sm:mt-4 2xl:mt-10 flex items-center px-3 py-3 font-semibold text-red-100 bg-red-600 border-b-2 border-red-600 self-center border-1 rounded-lg space-x-2 justify-center"
            x-on:click="isModalOpen = true;">
            <svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
              <circle cx="11" cy="11" r="8"></circle>
              <line x1="21" y1="21" x2="16.65" y2="16.65"></line>
            </svg> <span class="text-white sm:text-lg">Voir les annonces</span>
          </button>
          <button x-show="locations.length === 0" class="lg:w-auto sm:mt-4 2xl:mt-10 flex items-center px-3 py-3 font-semibold text-red-100 bg-red-600 border-b-2 border-red-600 self-center border-1 rounded-lg space-x-2 justify-center" type="button"
            x-on:click="alertLocation = true;">
            <svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
              <circle cx="11" cy="11" r="8"></circle>
              <line x1="21" y1="21" x2="16.65" y2="16.65"></line>
            </svg> <span class="text-white sm:text-lg">Voir les annonces</span>
          </button>
          <div class="modal" role="dialog" tabindex="-1" x-show="isModalOpen" x-cloak="" x-transition="">
            <div class="modal-content">
              <button type="submit" aria-label="Close" class="close" x-on:click="isModalOpen=false;  $gaEvent('HP_V4', 'Clic', 'Bouton_Recherche_HP')"><i class="fas fa-times w-4 h-4 text-gray-600"></i></button>
              <div x-data="{isValidEmail : false , email:''}">
                <div class="text-center text-red-500 text-2xl font-semibold">Activez votre alerte</div>
                <div class="mt-4 text-gray-700 font-normal"> Recevez par mail et en temps réel les nouvelles annonces qui correspondent à votre recherche : <div class="mt-4">
                    <label>
                      <input type="email" name="email" x-model="email" wire:model="email" x-on:input="isValidEmail = /(?![0-9]+@)[a-zA-Z0-9.-]+@[a-zA-Z0-9-_]+\.[a-zA-Z]+/.test(email)" :class=" isValidEmail  ? 'border-blue-500':  'border-red-500' "
                        class="w-full mt-2 text-gray-800 form-input" placeholder="jacques.dupond@tld.com">
                    </label>
                  </div>
                  <div class="mt-4 text-sm text-gray-600"> En cliquant sur le bouton ci-dessous, je reconnais avoir pris connaissance et accepter sans réserves les
                    <a href="/cgu-politique-de-confidentialite-cookies" class="underline" target="_blank">Conditions Générales d’Utilisation</a> du site. </div>
                </div>
                <div class="flex items-center justify-center mt-4 -mx-2">
                  <div class="px-2 mt-2">
                    <button type="submit" class="text-sm px-3 py-2 font-semibold text-white rounded-lg" :class="!isValidEmail ? 'cursor-not-allowed disabled bg-gray-300' : ' bg-red-500'"> Créer une alerte pour cette recherche </button>
                  </div>
                </div>
              </div>
            </div>
          </div>
          <div class="modal-without-bg" role="dialog" tabindex="-1" x-show="alertLocation" x-cloak="" x-transition="">
            <div class="modal-location rounded-lg p-8 alert-content border-lg bg-slate-400" x-on:click.away="alertLocation = false">
              <div class="flex justify-between">
                <i class="fas fa-exclamation-circle text-2xl rounded-full mr-2"></i>
                <span class="text-lg"> Merci d'indiquer la ville dans laquelle vous cherchez un bien </span>
                <span class="self-center" aria-label="Close" style="top: unset" x-on:click="alertLocation=false;">
                  <i class="relative float-right cursor-pointer fas fa-times w-4 h-4 text-gray-600"></i>
                </span>
              </div>
            </div>
          </div>
          <style>
            .modal-location {
              margin: auto;
              padding: 15px;
              background-color: #f4f4f4;
              color: #717477;
              width: 80%;
              max-width: 600px;
              position: relative;
              border-radius: 5px;
            }
          </style>
          <div class="mt-4 2xl:mt-10 text-center">
            <div>
              <a href="/recherche-avancee" x-on:click="$gaEvent('HP_V4', 'Clic', 'Recherche_Avancee_HP');" class="text-gray-600 sm:text-lg underline">
															+ de critères
														</a>
            </div>
          </div>
        </div>
      </div>
    </template>
    <div>
      <div class="w-full flex flex-col justify-center">
        <div class="mb-6 sm:mb-8 ">
          <div :class="{'border-red-600': suggestions.length > 0 &amp;&amp; locations.length === 0}" class="w-full flex-column relative flex-1 text-gray-800" ref="search">
            <div class="items-center " :class="[showExtended &amp;&amp; locations.length > 0  &amp;&amp; extendValue < 0  ? 'rounded-tl-lg rounded-tr-lg bg-gray-100  border-t border-r border-l border-gray-300' : '']">
              <div class="container" x-on:click="showExtended = !showExtended" x-on:click.away="show = false">
                <template x-for="(location, i) in locations" :key="i">
                  <div class=" flex justify-between bg-gray-100 rounded-lg relative p-3" x-on:click="showExtended = !showExtended">
                    <button type="button" class="flex items-center  mt-1 bg-gray-100 rounded-lg cursor-pointer" x-on:click="extendValue = -1 ; locations = [...locations.slice(0, i), ...locations.slice(i + 1)]">
                      <span class="text-gray-700 sm:text-lg" x-text="location + (extendValue >= 0 ? ' | ' + extendValue/1000 + ' km' : '')"></span>
                      <svg class="w-4 h-4 ml-2 text-gray-700" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                        <line x1="18" y1="6" x2="6" y2="18"></line>
                        <line x1="6" y1="6" x2="18" y2="18"></line>
                      </svg> </button>
                    <i class="fas fa-map-marker-alt self-center pr-3 absolute right-1" style="color: #252F3F"></i>
                  </div>
                </template>
                <div class="flex justify-between rounded-tl-lg rounded-tr-lg bg-gray-100 relative rounded-br-lg rounded-bl-lg " x-on:click="showExtended = true" x-show="locations.length == 0"
                  :class="[locations.length == 0 ? 'rounded-br-lg rounded-bl-lg ' : 'border-t border-r border-l border-gray-300 border-b-0 !important']">
                  <input type="text" class="town bg-gray-100 flex-1 sm:text-lg w-full p-2 lg:p-3 placeholder-gray-700 rounded-lg" x-bind:placeholder="'Dans quelle ville recherchez-vous ?'" x-ref="input" x-on:focus="show = true"
                    x-on:change="hasChanged = true" x-on:keydown.enter.prevent="locations = suggestions.length > 0 ? locations.concat([suggestions[0].name]) : locations.concat([$event.target.value]); $event.target.value = '';"
                    x-on:input.debounce="axios.get('/api/localizations/autocomplete', { params: { token: $event.target.value } }).then(function (response) { suggestions = response.data.slice(0, 10); })"
                    placeholder="Dans quelle ville recherchez-vous ?">
                  <i class="fas fa-map-marker-alt self-center pr-2 absolute right-1" style="color: #252F3F" aria-hidden="true"></i>
                </div>
              </div>
            </div>
            <div x-show="show &amp;&amp; suggestions.length > 0" class="suggestions-container absolute inset-x-0 z-20 w-full p-4 bg-white rounded-b-lg" style="display: none;">
              <template x-for="suggestion in suggestions" :key="suggestion.id">
                <button type="button" class="flex justify-between w-full py-1 cursor-pointer" x-on:click="locations = locations.concat([suggestion.name]); suggestions = []; showExtended = true; $refs.input.value = ''; $refs.input.focus();">
                  <div class="font-semibold" x-text="suggestion.label"></div>
                  <div class="text-gray-500" x-text="suggestion.type"></div>
                </button>
              </template>
            </div>
            <div class="suggestions-history" x-show="show &amp;&amp; histories.length >= 1 &amp;&amp; suggestions.length === 0 &amp;&amp; locations.length === 0" style="display: none;">
              <div class="bg-cool-gray-100 py-2 px-4 text-sm font-semibold"> Recherches récentes </div>
              <div class="p-4">
                <template x-for="history in histories" :key="history.id">
                  <button type="button" class="flex justify-between w-full cursor-pointer py-1" x-on:click="locations = locations.concat([history.name]); showExtended = true;histories = []; $refs.input.value = ''; $refs.input.focus();">
                    <div class="font-semibold" x-text="history.label"></div>
                    <div class="text-gray-500" x-text="history.type"></div>
                  </button>
                </template>
              </div>
            </div>
          </div>
          <div class=" block mt-0 rounded-bl-lg border-t-0 rounded-br-lg bg-gray-100  border-b border-r border-l border-gray-300  w-full" x-show="showExtended &amp;&amp; locations.length > 0 &amp;&amp; extendValue < 0"
            style="top: 43px; z-index: 1; display: none;">
            <div class="text-center bg-gray-100">
              <hr style="margin-left:15%; width: 70%; border-top: 1px solid rgb(220,220,220);">
            </div>
            <label>
              <select class="w-full p-2 sm:p-3 form-select bg-gray-100 text-gray-700 border-none sm:text-lg" wire:model="filter.extend" name="filter[extend]" x-model="extendValue">
                <option value=""> Étendre la recherche ? </option>
                <option value="5000"> 5 kilomètres </option>
                <option value="15000"> 15 kilomètres </option>
                <option value="20000"> 20 kilomètres </option>
                <option value="0"> Ne pas étendre ma recherche </option>
              </select>
            </label>
          </div>
        </div>
        <div class="container-fields mb-6 sm:mb-8">
          <div class="panels flex justify-between flex-col sm:flex-row">
            <div class="w-full sm:w-5/12">
              <div class="h-full"
                x-data="{ hasChanged: false, mask: null, initMask: function(el) { this.mask = IMask(el, { mask: Number, min: 1, max: 100000000, thousandsSeparator: ' ' }); if(el.dataset.initialValue) { this.mask.value = el.dataset.initialValue; } },resetMask: function(el) {this.mask.value = ''; } }"
                x-init="initMask($refs.inputElement)">
                <label class="w-full h-full flex justify-between bg-gray-100 rounded-lg relative">
                  <input x-ref="inputElement" x-on:change="hasChanged = true" wire:model.lazy="filter.maxprice" name="filter[maxprice]" @reset-input.window="resetMask($refs.inputElement)"
                    class="sm:text-lg placeholder-gray-700 bg-gray-100 text-gray-700 border-none block w-full p-2 lg:p-3 form-input sm:text-lg sm:leading-5" placeholder="Budget maximum" data-initial-value="">
                  <i class="fas fa-euro-sign self-center mr-3 absolute right-1" style="color: #252F3F" aria-hidden="true"></i>
                </label>
              </div>
            </div>
            <div class="right-panel relative w-full sm:w-5/12 mt-6 sm:mt-0" x-on:click.away="opened = false" x-on:click="opened = !opened" x-bind:class="{ 'active': opened }">
              <div class="relative flex bg-gray-100 text-gray-700 justify-between p-2 lg:p-3 text-md rounded-lg" :class="{'border-solid border-t border-r border-l border-gray-300' : opened == true}">
                <span id="piece-minimum-title" class="sm:text-lg">Nb de pièce minimum</span>
                <i x-show="!opened" class="fas fa-chevron-down self-center absolute right-3" style="color: #252F3F" aria-hidden="true"></i>
                <i x-show="opened" class="fas fa-chevron-up absolute right-3" style="color: rgb(37, 47, 63); display: none;" aria-hidden="true"></i>
              </div>
              <input type="hidden" id="hiddenRooms" name="filter[rooms]" wire:model="filter.rooms" value="">
              <div class="rooms hidden-content rounded-b-lg p-2 lg:p-3 flex bg-gray-100" x-show="opened" style="display: none;">
                <!-- Button 1 -->
                <div class="ck-button">
                  <label class="w-8 h-8 rounded-lg block">
                    <input :checked="minrooms.includes('1')" x-on:change="opened = false; hasChanged = true;" type="checkbox" class="hidden" value="1" onchange="updateTitle(this); updateHiddenInput()" name="filter[minrooms][]"
                      wire:model="filter.minrooms">
                    <span class="rounded-lg">1</span>
                  </label>
                </div>
                <!-- Button 2 -->
                <div class="ck-button">
                  <label class="w-8 h-8 rounded-lg block">
                    <input :checked="minrooms.includes('2')" x-on:change="opened = false; hasChanged = true;" type="checkbox" class="hidden" value="2" onchange="updateTitle(this); updateHiddenInput()" name="filter[minrooms][]"
                      wire:model="filter.minrooms">
                    <span class="rounded-lg">2</span>
                  </label>
                </div>
                <!-- Button 3 -->
                <div class="ck-button">
                  <label class="w-8 h-8 rounded-lg block">
                    <input :checked="minrooms.includes('3')" x-on:change="opened = false; hasChanged = true;" type="checkbox" class="hidden" value="3" onchange="updateTitle(this); updateHiddenInput()" name="filter[minrooms][]"
                      wire:model="filter.minrooms">
                    <span class="rounded-lg">3</span>
                  </label>
                </div>
                <!-- Button 4 -->
                <div class="ck-button">
                  <label class="w-8 h-8 rounded-lg block">
                    <input :checked="minrooms.includes('4')" x-on:change="opened = false; hasChanged = true;" type="checkbox" class="hidden" value="4" onchange="updateTitle(this); updateHiddenInput()" name="filter[minrooms][]"
                      wire:model="filter.minrooms">
                    <span class="rounded-lg">4</span>
                  </label>
                </div>
                <!-- Button 5+ -->
                <div class="ck-button">
                  <label class="w-8 h-8 rounded-lg block">
                    <input :checked="minrooms.includes('5')" x-on:change="opened = false; hasChanged = true;" type="checkbox" class="hidden" value="5" onchange="updateTitle(this); updateHiddenInput()" name="filter[minrooms][]"
                      wire:model="filter.minrooms">
                    <span class="rounded-lg">5+</span>
                  </label>
                </div>
              </div>
            </div>
          </div>
        </div>
        <div id="container-types" class="container-fields flex flex-col sm:justify-between sm:w-full mb-6 sm:mb-8">
          <div class="flex justify-between  sm:justify-between sm:w-full">
            <div class="dk-button">
              <label class="rounded-lg bg-slate-400 flex">
                <input x-on:change="hasChanged = true" x-bind:checked="types.includes('appartement')" type="checkbox" x-model="types" class="hidden" value="maison" wire:model="filter.type" name="filter[type][]" checked="checked">
                <span class="types cursor-pointer rounded-lg bg-gray-100 flex sm:text-lg px-6 py-3" style="min-width: 100px">Maison <i class="fas fa-plus ml-3" x-show="!types.includes('maison')" aria-hidden="true" style="display: none;"></i>
                  <i class="fas fa-check ml-3" x-show="types.includes('maison')" aria-hidden="true"></i>
                </span>
              </label>
            </div>
            <div class="dk-button">
              <label class="rounded-lg bg-slate-400 flex">
                <input x-on:change="hasChanged = true" x-bind:checked="types.includes('appartement')" type="checkbox" x-model="types" class="hidden" value="appartement" wire:model="filter.type" name="filter[type][]" checked="checked">
                <span class="types cursor-pointer rounded-lg bg-gray-100 flex sm:text-lg px-6 py-3" style="min-width: 100px">Appartement
                  <i class="fas fa-plus ml-3" x-show="!types.includes('appartement')" aria-hidden="true" style="display: none;"></i>
                  <i class="fas fa-check ml-3" x-show="types.includes('appartement')" aria-hidden="true"></i>
                </span>
              </label>
            </div>
            <div class="hidden sm:block dk-button" x-show="checked == 'acheter'">
              <label class="rounded-lg bg-slate-400 flex">
                <input x-on:change="hasChanged = true" x-bind:checked="types.includes('terrain')" type="checkbox" x-model="types" class="hidden" value="terrain" wire:model="filter.type" name="filter[type][]">
                <span class="types cursor-pointer rounded-lg bg-gray-100 flex sm:text-lg px-6 py-3" style="min-width: 100px">Terrain <i class="fas fa-plus ml-3" x-show="!types.includes('terrain')" aria-hidden="true"></i>
                  <i class="fas fa-check ml-3" x-show="types.includes('terrain')" aria-hidden="true" style="display: none;"></i>
                </span>
              </label>
            </div>
            <div class="dk-button">
              <label class="hidden sm:block  rounded-lg flex bg-slate-400">
                <input x-on:change="hasChanged = true" x-bind:checked="types.includes('parking')" type="checkbox" x-model="types" class="hidden" value="parking" wire:model="filter.type" name="filter[type][]">
                <span class="types cursor-pointer rounded-lg bg-gray-100 flex sm:text-lg px-6 py-3" style="min-width: 100px;">Parking <i class="fas fa-plus ml-3" x-show="!types.includes('parking')" aria-hidden="true"></i>
                  <i class="fas fa-check ml-3" x-show="types.includes('parking')" aria-hidden="true" style="display: none;"></i>
                </span>
              </label>
            </div>
            <button type="button" onclick="toggleAdditionalTypes()" id="showButton" class="sm:hidden">
              <i class="fas fa-plus rounded-full h-6 w-6 flex justify-center items-center" style="background-color: #252F3F; display: flex;justify-content: center;align-items: center;" aria-hidden="true">
														</i>
              <span class="hidden">Afficher plus</span>
            </button>
          </div>
          <div id="additionalTypes" style="display: none" class="mt-3 sm:mt-0 hidden">
            <div class="dk-button mr-8 sm:mr-0" x-show="checked == 'acheter'">
              <label class="rounded-lg bg-slate-400 flex">
                <input x-on:change="hasChanged = true" x-bind:checked="types.includes('terrain')" type="checkbox" x-model="types" class="hidden" value="terrain" wire:model="filter.type" name="filter[type][]">
                <span class="ttypes cursor-pointer rounded-lg bg-gray-100 flex sm:text-lg px-6 py-3">Terrain <i class="fas fa-plus ml-3" x-show="!types.includes('terrain')" aria-hidden="true"></i>
                  <i class="fas fa-check ml-3" x-show="types.includes('terrain')" aria-hidden="true" style="display: none;"></i>
                </span>
              </label>
            </div>
            <div class="dk-button">
              <label class="rounded-lg flex bg-slate-400">
                <input x-bind:checked="types.includes('parking')" type="checkbox" x-model="types" class="hidden" value="parking" wire:model="filter.type" name="filter[type][]">
                <span class="types cursor-pointer rounded-lg bg-gray-100 flex sm:text-lg px-6 py-3">Parking <i class="fas fa-plus ml-3" x-show="!types.includes('parking')" aria-hidden="true"></i>
                  <i class="fas fa-check ml-3" x-show="types.includes('parking')" aria-hidden="true" style="display: none;"></i>
                </span>
              </label>
            </div>
          </div>
        </div>
        <button x-show="locations.length > 0" type="button" class="lg:w-auto sm:mt-4 2xl:mt-10 flex items-center px-3 py-3 font-semibold text-red-100 bg-red-600 border-b-2 border-red-600 self-center border-1 rounded-lg space-x-2 justify-center"
          x-on:click="isModalOpen = true;" style="display: none;">
          <svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <circle cx="11" cy="11" r="8"></circle>
            <line x1="21" y1="21" x2="16.65" y2="16.65"></line>
          </svg> <span class="text-white sm:text-lg">Voir les annonces</span>
        </button>
        <button x-show="locations.length === 0" class="lg:w-auto sm:mt-4 2xl:mt-10 flex items-center px-3 py-3 font-semibold text-red-100 bg-red-600 border-b-2 border-red-600 self-center border-1 rounded-lg space-x-2 justify-center" type="button"
          x-on:click="alertLocation = true;">
          <svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <circle cx="11" cy="11" r="8"></circle>
            <line x1="21" y1="21" x2="16.65" y2="16.65"></line>
          </svg> <span class="text-white sm:text-lg">Voir les annonces</span>
        </button>
        <div class="modal" role="dialog" tabindex="-1" x-show="isModalOpen" x-transition="" style="display: none;">
          <div class="modal-content">
            <button type="submit" aria-label="Close" class="close" x-on:click="isModalOpen=false;  $gaEvent('HP_V4', 'Clic', 'Bouton_Recherche_HP')"><i class="fas fa-times w-4 h-4 text-gray-600" aria-hidden="true"></i></button>
            <div x-data="{isValidEmail : false , email:''}">
              <div class="text-center text-red-500 text-2xl font-semibold">Activez votre alerte</div>
              <div class="mt-4 text-gray-700 font-normal"> Recevez par mail et en temps réel les nouvelles annonces qui correspondent à votre recherche : <div class="mt-4">
                  <label>
                    <input type="email" name="email" x-model="email" wire:model="email" x-on:input="isValidEmail = /(?![0-9]+@)[a-zA-Z0-9.-]+@[a-zA-Z0-9-_]+\.[a-zA-Z]+/.test(email)" :class=" isValidEmail  ? 'border-blue-500':  'border-red-500' "
                      class="w-full mt-2 text-gray-800 form-input border-red-500" placeholder="jacques.dupond@tld.com">
                  </label>
                </div>
                <div class="mt-4 text-sm text-gray-600"> En cliquant sur le bouton ci-dessous, je reconnais avoir pris connaissance et accepter sans réserves les
                  <a href="/cgu-politique-de-confidentialite-cookies" class="underline" target="_blank">Conditions Générales d’Utilisation</a> du site. </div>
              </div>
              <div class="flex items-center justify-center mt-4 -mx-2">
                <div class="px-2 mt-2">
                  <button type="submit" class="text-sm px-3 py-2 font-semibold text-white rounded-lg cursor-not-allowed disabled bg-gray-300" :class="!isValidEmail ? 'cursor-not-allowed disabled bg-gray-300' : ' bg-red-500'"> Créer une alerte pour
                    cette recherche </button>
                </div>
              </div>
            </div>
          </div>
        </div>
        <div class="modal-without-bg" role="dialog" tabindex="-1" x-show="alertLocation" x-transition="" style="display: none;">
          <div class="modal-location rounded-lg p-8 alert-content border-lg bg-slate-400" x-on:click.away="alertLocation = false">
            <div class="flex justify-between">
              <i class="fas fa-exclamation-circle text-2xl rounded-full mr-2" aria-hidden="true"></i>
              <span class="text-lg"> Merci d'indiquer la ville dans laquelle vous cherchez un bien </span>
              <span class="self-center" aria-label="Close" style="top: unset" x-on:click="alertLocation=false;">
                <i class="relative float-right cursor-pointer fas fa-times w-4 h-4 text-gray-600" aria-hidden="true"></i>
              </span>
            </div>
          </div>
        </div>
        <style>
          .modal-location {
            margin: auto;
            padding: 15px;
            background-color: #f4f4f4;
            color: #717477;
            width: 80%;
            max-width: 600px;
            position: relative;
            border-radius: 5px;
          }
        </style>
        <div class="mt-4 2xl:mt-10 text-center">
          <div>
            <a href="/recherche-avancee" x-on:click="$gaEvent('HP_V4', 'Clic', 'Recherche_Avancee_HP');" class="text-gray-600 sm:text-lg underline">
															+ de critères
														</a>
          </div>
        </div>
      </div>
    </div>
    <template x-if="checked == 'estimer'">
      <div>
        <div :class="{'sm:rounded-bl-none': show &amp;&amp; suggestions.length, 'border-red-600': suggestions.length > 0 &amp;&amp; locations.length === 0}"
          class="flex flex-col relative flex-1 text-gray-800 bg-white border-gray-300 sm:rounded-tl-lg sm:rounded-l-lg sm:rounded-r-none">
          <span class="sm:text-lg mb-6">Obtenez une estimation fiable de votre maison ou appartement,<br> gratuitement et en quelques clics !</span>
          <div class="flex items-center relative">
            <div class="flex-1">
              <div class="container">
                <template x-for="(location, i) in locations" :key="i">
                  <div class=" flex justify-between bg-gray-100 rounded-lg relative">
                    <button type="button" class="flex items-center px-2 py-1 mt-1 bg-gray-100 rounded-lg cursor-pointer" x-on:click="locations = [...locations.slice(0, i), ...locations.slice(i + 1)]">
                      <span class="p-3" x-text="location"></span>
                      <svg class="w-4 h-4 ml-2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                        <line x1="18" y1="6" x2="6" y2="18"></line>
                        <line x1="6" y1="6" x2="18" y2="18"></line>
                      </svg> </button>
                  </div>
                </template>
                <div class="flex-1 flex-shrink-0 min-w-xs">
                  <input x-show="locations.length < 1" type="text" class=" town bg-gray-100 flex-1 sm:text-lg w-full p-2 lg:p-3 placeholder-gray-700 rounded-lg" placeholder="Quel est l'adresse du bien à estimer ?" x-ref="input"
                    x-on:focus="show = true" x-on:click="showExtended = true" x-on:input.debounce="axios.get('/api/autocomplete/address', { params: { input: $event.target.value } }).then(function (response) { suggestions = response.data })">
                </div>
              </div>
            </div>
            <div x-cloak="" x-show="show &amp;&amp; suggestions.length > 0" class="suggestions-container absolute inset-x-0 z-20 w-full p-4 bg-white rounded-b-lg">
              <template x-for="suggestion in suggestions" :key="suggestion.place_id">
                <button type="button" class="flex justify-between w-full py-1 cursor-pointer" x-on:click="
													axios
														.get('/api/address/' + suggestion.place_id)
														.then(function ({ data }) {
															let result = [];
															let location_result = [];
															const location_fields = {
																'locality': 'short_name',
																'postal_code': 'short_name'
															};
															const fields = {
																'street_number': 'short_name',
																'route': 'short_name'
															};

															for (const component of data.address_components) {
																const addressType = component.types[0];

																if (location_fields[addressType]) {
																	let value = component[location_fields[addressType]];

																	if (addressType == 'postal_code') {
																		value = `(${value})`;
																	}

																	location_result.push(value);
																}

																if (fields[addressType]) {
																	let value = component[fields[addressType]];
																	result.push(value);
																}
															}

															suggestions = [];
															show = false;

															$nextTick(() => {
																locations = locations.concat(result.join(' ') + ', ' + location_result.join(' '));
																show = false;
															});
														})
												">
                  <div class="font-semibold" x-text="suggestion.description"></div>
                </button>
              </template>
            </div>
          </div>
          <button type="submit" x-bind:disabled="locations.length  == 0" :class="{'disabled cursor-not-allowed' : locations.length  == 0 }"
            class="lg:w-2/6 mt-4 lg:mt-10 flex items-center px-3 py-3 sm:text-lg font-semibold text-red-100 bg-red-600 border-b-2 border-red-600 self-center border-1 rounded-lg space-x-2 justify-center"
            x-on:click="$gaEvent('HP_V4', 'Clic', 'Bouton_Recherche_HP')">
            <span x-cloak="">Estimer</span>
          </button>
        </div>
      </div>
    </template>
  </div>
</form>

Text Content

 * Acheter
    * Maison / Villa
    * Appartement
    * Terrain
    * Garage / Parking
    * Bureau
    * Commerce
    * Appartements neufs
    * Immeuble

 * Louer
    * Maison / Villa
    * Appartement
    * Garage / Parking
    * Bureau
    * Commerce
    * Immeuble

 * Vendre
 * Estimer Gratuit
 * Professionnels de l’immobilier
    * Agences Immobilières
    * Agents Commerciaux

 * 0
   Mes favoris

 * Acheter
 * Louer
 * Vendre
 * Estimer (gratuit)
 * Agences immobilières
 * Agents commerciaux

 * Mes favoris


QUEL EST VOTRE PROJET IMMOBILIER ?

Acheter Louer Estimer
Recherches récentes


--------------------------------------------------------------------------------

Étendre la recherche ? 5 kilomètres 15 kilomètres 20 kilomètres Ne pas étendre
ma recherche
Nb de pièce minimum
1
2
3
4
5+
Maison
Appartement
Terrain
Parking
Afficher plus
Terrain
Parking
Voir les annonces Voir les annonces
Activez votre alerte
Recevez par mail et en temps réel les nouvelles annonces qui correspondent à
votre recherche :

En cliquant sur le bouton ci-dessous, je reconnais avoir pris connaissance et
accepter sans réserves les Conditions Générales d’Utilisation du site.
Créer une alerte pour cette recherche
Merci d'indiquer la ville dans laquelle vous cherchez un bien
+ de critères
Recherches récentes


--------------------------------------------------------------------------------

Étendre la recherche ? 5 kilomètres 15 kilomètres 20 kilomètres Ne pas étendre
ma recherche
Nb de pièce minimum
1
2
3
4
5+
Maison
Appartement
Terrain
Parking
Afficher plus
Terrain
Parking
Voir les annonces Voir les annonces
Activez votre alerte
Recevez par mail et en temps réel les nouvelles annonces qui correspondent à
votre recherche :

En cliquant sur le bouton ci-dessous, je reconnais avoir pris connaissance et
accepter sans réserves les Conditions Générales d’Utilisation du site.
Créer une alerte pour cette recherche
Merci d'indiquer la ville dans laquelle vous cherchez un bien
+ de critères
Obtenez une estimation fiable de votre maison ou appartement,
gratuitement et en quelques clics !

Estimer
Un pere avec son enfant sur les épaules tenant un cerf-volant

Estimez gratuitement la
valeur de votre bien !
Trouvez un professionnel
expert de l'immobilier


LES ANNONCES IMMOBILIÈRES


LES ANNONCES DE VENTE

 * Vente maison Marseille (13000)
 * Vente maison Marseille (13000)
 * Vente maison Bordeaux (33)
 * Vente maison Bordeaux (33)
 * Vente maison Toulouse (31)
 * Vente maison Toulouse (31)
 * Vente maison Marmande (47200)
 * Vente maison Marmande (47200)
 * Vente maison Uzès (30700)
 * Vente maison Uzès (30700)
 * Vente appartement Marseille (13000)
 * Vente appartement Marseille (13000)
 * Vente appartement Nice (06)
 * Vente appartement Nice (06)
 * Vente appartement Montpellier (34)
 * Vente appartement Montpellier (34)
 * Vente appartement Paris (75000)
 * Vente appartement Paris (75000)
 * Vente appartement Lyon (69000)
 * Vente appartement Lyon (69000)


LES ANNONCES DE LOCATION

 * Location maison Guéret (23000)
 * Location maison Guéret (23000)
 * Location maison Toulouse (31)
 * Location maison Toulouse (31)
 * Location maison Poitiers (86000)
 * Location maison Marseille (13000)
 * Location maison Poitiers (86000)
 * Location maison Marseille (13000)
 * Location maison Aix-en-Provence (13090)
 * Location maison Castres (81100)
 * Location appartement Toulouse (31)
 * Location appartement Toulouse (31)
 * Location appartement Marseille (13000)
 * Location appartement Marseille (13000)
 * Location appartement Poitiers (86000)
 * Location appartement Poitiers (86000)
 * Location appartement Montpellier (34)
 * Location appartement Nice (06)
 * Location appartement Montpellier (34)
 * Location appartement Nice (06)


LES VILLES LES PLUS CONSULTÉES

 * Nice (06)
 * Nice (06)
 * Marseille (13000)
 * Marseille (13000)
 * Montpellier (34)
 * Montpellier (34)
 * Toulouse (31)
 * Toulouse (31)
 * Paris (75000)
 * Paris (75000)
 * Lyon (69000)
 * Lyon (69000)
 * Bordeaux (33)
 * Bordeaux (33)
 * Cannes (06400)
 * Cannes (06400)
 * Nîmes (30)
 * Nîmes (30)
 * Nantes (44)
 * Nantes (44)

Lesiteimmo
 * Qui sommes-nous ?
 * CGU et politique de confidentialité
 * Nous contacter
 * Logos
 * Suivez-nous

Tout l'immobilier
 * Le marché de l'immobilier
 * Toutes les régions
 * Tous les départements
 * Toutes les villes
 * Maisons à vendre
 * Appartements à vendre
 * Les annonces par type
 * Conseils pratiques
 * Investir
 * Financement
 * Actualité immobilière

Professionnels
 * Gagnez des contacts et des mandats
 * Extranet professionnel

@ lesiteimmo.com