{"id":1479,"date":"2026-02-09T15:40:27","date_gmt":"2026-02-09T14:40:27","guid":{"rendered":"https:\/\/gus.gumstaging.fr\/?page_id=1479"},"modified":"2026-05-05T19:28:46","modified_gmt":"2026-05-05T17:28:46","slug":"find-a-temporary-housing","status":"publish","type":"page","link":"https:\/\/gus.gumstaging.fr\/en\/find-a-temporary-housing\/","title":{"rendered":"Find a Temporary Housing"},"content":{"rendered":"  \n<section is=\"bubble-block-listing-locator\"   data-bg=\"white\"  class=\"   bg-bb-white   mt-0 mb-0   pt-0 pb-14 md:pb-28 \"  >\n\n\t\n\t\t<div class=\"\">\n\n<div class=\"component\" id=\"listingLocator\">\n\t<div class=\"main_container\">\n\t\t<div class=\"main__content\">\n\t\t\t<div class=\"form__container\">\n\t\t\t\t<div class=\"form\">\n\t\t\t\t\t<div class=\"form__title\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"content--title\">\n\t\t\t\t\t\t\t\t    <h1 class=\" text-bb-black\"\n     \n        data-sal=\"slide-up\" \n        data-sal-delay=\"200\"\n        data-sal-duration=\"500\" \n        data-sal-easing=\"ease-out-quint\"\n    >\n            Temporary accommodation after disaster\n    <\/h1>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t<div class=\"form__inputs\">\n\t\t\t\t\t\t<form id=\"listingLocatorForm\" class=\"flex flex-col lg:flex-row gap-4 items-end\">\n\t\t\t\t\t\t\t<div class=\"w-full lg:w-1\/3\">\n\t\t\t\t\t\t\t\t<label class=\"font-bold text-sm lg:text-lg block mb-2\">City<\/label>\n\t\t\t\t\t\t\t\t<input type=\"text\" \n\t\t\t\t\t\t\t\t\tid=\"listingLocatorCity\"\n\t\t\t\t\t\t\t\t\tplaceholder=\"Search a city\"\n\t\t\t\t\t\t\t\t\tclass=\"w-full text-base p-4 font-normal border border-transparent placeholder:text-bb-black text-bb-black bg-bb-white rounded-full focus:text-bb-black focus:border-bb-orange\">\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"w-full lg:w-1\/4\">\n\t\t\t\t\t\t\t\t<label class=\"font-bold text-sm lg:text-lg block mb-2\">Rooms<\/label>\n\t\t\t\t\t\t\t\t<select id=\"listingLocatorBedrooms\"\n\t\t\t\t\t\t\t\t\tclass=\"w-full text-base p-4 font-normal border border-transparent text-bb-black bg-bb-white rounded-full focus:border-bb-orange\">\n\t\t\t\t\t\t\t\t\t<option value=\"1\">1<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"2\">2<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"3\">3<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"4\">4<\/option>\n\t\t\t\t\t\t\t\t\t<option value=\"5\">5+<\/option>\n\t\t\t\t\t\t\t\t<\/select>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"w-full lg:w-auto\">\n\t\t\t\t\t\t\t\t<button type=\"submit\" \n\t\t\t\t\t\t\t\t\tid=\"listingLocatorSubmit\"\n\t\t\t\t\t\t\t\t\tclass=\"block py-3 px-5 lg:py-4 mb-0 lg:px-5 font-bold text-white hover:opacity-100 hover:bg-bb-brown transition-all duration-150 ease-in-out bg-bb-orange rounded-full text-xs md:text-sm uppercase\">\n\t\t\t\t\t\t\t\t\t<span class=\"js-label-default\">Search<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"js-label-loading hidden\">Search...<\/span>\n\t\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/form>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"map \">\n\t\t\t\t<div class=\"map__results\" id=\"listingLocatorResults\"><\/div>\n\t\t\t\t<div class=\"map__container\" id=\"listingLocatorMap\"><\/div>\n\t\t\t<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n<script>\n(function() {\n\tfunction loadGoogleMaps(callback) {\n\t\tif (typeof google !== 'undefined' && google.maps && google.maps.places) {\n\t\t\tcallback();\n\t\t\treturn;\n\t\t}\n\t\t\t\tvar callbackName = 'initListingLocatorCb_' + Date.now();\n\t\twindow[callbackName] = function() {\n\t\t\tdelete window[callbackName];\n\t\t\tcallback();\n\t\t};\n\t\tvar script = document.createElement('script');\n\t\tscript.src = 'https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyAj7oDTUWzVb0zLuDDSXsoWOzGnF_YpflY&libraries=places&callback=' + callbackName;\n\t\tscript.async = true;\n\t\tscript.defer = true;\n\t\tdocument.head.appendChild(script);\n\t\t\t}\n\n\tfunction initListingLocator() {\n\tvar ajaxUrl = 'https:\/\/gus.gumstaging.fr\/wp-admin\/admin-ajax.php';\n\tvar lang = 'En';\n\tvar displayMode = 'both';\n\tvar resultsPageUrl = '';\n\tvar listingDetailPageUrl = '';\n\tvar listingIconsBase = 'https:\/\/gus.gumstaging.fr\/wp-content\/themes\/bubble\/components\/subcomponents_website\/BlockListingLocator\/icons';\n\tvar defaultCenter = { lat: 46.8139, lng: -71.2080 };\n\tvar query = { city: '', provinceCode: '', numberOfBedrooms: '', latitude: 0, longitude: 0 };\n\tvar map = null;\n\tvar markers = [];\n\tvar autocomplete = null;\n\n\tvar cityInput = document.getElementById('listingLocatorCity');\n\tvar bedroomsSelect = document.getElementById('listingLocatorBedrooms');\n\tvar form = document.getElementById('listingLocatorForm');\n\tvar mapWrapper = document.querySelector('#listingLocator .map');\n\tvar resultsContainer = document.getElementById('listingLocatorResults');\n\tvar mapContainer = document.getElementById('listingLocatorMap');\n\tvar submitBtn = document.getElementById('listingLocatorSubmit');\n\n\tfunction getQueryParam(name) {\n\t\tvar params = new URLSearchParams(window.location.search);\n\t\treturn params.get(name) || '';\n\t}\n\n\tfunction parseInitialQueryFromUrl() {\n\t\tquery.city = getQueryParam('city');\n\t\tquery.provinceCode = getQueryParam('provinceCode');\n\t\tquery.numberOfBedrooms = getQueryParam('numberOfBedrooms');\n\t\tquery.latitude = parseFloat(getQueryParam('latitude') || '0');\n\t\tquery.longitude = parseFloat(getQueryParam('longitude') || '0');\n\n\t\tif (query.city) {\n\t\t\tcityInput.value = query.city;\n\t\t}\n\t\tif (query.numberOfBedrooms) {\n\t\t\tbedroomsSelect.value = query.numberOfBedrooms;\n\t\t}\n\t}\n\n\tfunction hasSearchParamsInUrl() {\n\t\treturn !!(\n\t\t\tgetQueryParam('city') ||\n\t\t\tgetQueryParam('provinceCode') ||\n\t\t\tgetQueryParam('numberOfBedrooms') ||\n\t\t\tgetQueryParam('latitude') ||\n\t\t\tgetQueryParam('longitude')\n\t\t);\n\t}\n\n\tfunction buildResultsUrl() {\n\t\tvar target = resultsPageUrl || window.location.href;\n\t\tvar url = new URL(target, window.location.origin);\n\t\turl.searchParams.set('city', query.city || cityInput.value || '');\n\t\turl.searchParams.set('provinceCode', query.provinceCode || '');\n\t\turl.searchParams.set('numberOfBedrooms', bedroomsSelect.value || '');\n\t\turl.searchParams.set('latitude', String(query.latitude || 0));\n\t\turl.searchParams.set('longitude', String(query.longitude || 0));\n\t\treturn url.toString();\n\t}\n\n\tfunction toSlug(value) {\n\t\treturn String(value || '')\n\t\t\t.toLowerCase()\n\t\t\t.normalize('NFD')\n\t\t\t.replace(\/[\\u0300-\\u036f]\/g, '')\n\t\t\t.replace(\/[^a-z0-9]+\/g, '-')\n\t\t\t.replace(\/(^-|-$)\/g, '');\n\t}\n\n\tfunction getListingIdentifier(listing) {\n\t\treturn listing.id || listing.listingId || listing.listingID || listing.propertyId || listing.propertyID || '';\n\t}\n\n\tfunction getListingSlug(listing) {\n\t\treturn listing.slug || listing.urlSlug || listing.listingSlug || toSlug((lang === 'En' ? (listing.titleEn || '') : (listing.titleFr || '')) || listing.title || listing.address || '');\n\t}\n\n\tfunction ensureWpmlLangPrefix(url) {\n\t\tvar currentPathParts = window.location.pathname.split('\/').filter(Boolean);\n\t\tvar currentLangPrefix = currentPathParts.length > 0 ? currentPathParts[0].toLowerCase() : '';\n\n\t\tif (currentLangPrefix !== 'en') {\n\t\t\treturn url;\n\t\t}\n\n\t\tif (url.origin !== window.location.origin) {\n\t\t\treturn url;\n\t\t}\n\n\t\tvar targetPathParts = url.pathname.split('\/').filter(Boolean);\n\t\tif (targetPathParts.length > 0 && targetPathParts[0].toLowerCase() === 'en') {\n\t\t\treturn url;\n\t\t}\n\n\t\ttargetPathParts.unshift('en');\n\t\turl.pathname = '\/' + targetPathParts.join('\/');\n\t\treturn url;\n\t}\n\n\tfunction buildListingDetailUrl(listing) {\n\t\tif (listing.url && \/^https?:\\\/\\\/\/.test(listing.url)) {\n\t\t\tvar directUrl = new URL(listing.url, window.location.origin);\n\t\t\tdirectUrl = ensureWpmlLangPrefix(directUrl);\n\t\t\treturn directUrl.toString();\n\t\t}\n\n\t\tvar listingId = getListingIdentifier(listing);\n\t\tvar listingSlug = getListingSlug(listing);\n\t\tvar target = listingDetailPageUrl || window.location.origin + '\/';\n\t\tvar url = new URL(target, window.location.origin);\n\n\t\tif (listingId) {\n\t\t\turl.searchParams.set('listing_id', String(listingId));\n\t\t}\n\t\tif (listingSlug) {\n\t\t\turl.searchParams.set('listing_slug', String(listingSlug));\n\t\t}\n\t\turl.searchParams.set('lang', lang.toLowerCase());\n\t\turl = ensureWpmlLangPrefix(url);\n\n\t\treturn url.toString();\n\t}\n\n\tfunction initAutocomplete() {\n\t\tif (typeof google === 'undefined' || !google.maps || !google.maps.places) return;\n\n\t\tautocomplete = new google.maps.places.Autocomplete(cityInput, {\n\t\t\ttypes: ['(cities)'],\n\t\t\tcomponentRestrictions: { country: 'ca' },\n\t\t});\n\n\t\tautocomplete.addListener('place_changed', function() {\n\t\t\tvar place = autocomplete.getPlace();\n\t\t\tif (place.geometry) {\n\t\t\t\tquery.latitude = place.geometry.location.lat();\n\t\t\t\tquery.longitude = place.geometry.location.lng();\n\n\t\t\t\tvar components = place.address_components || [];\n\t\t\t\tfor (var i = 0; i < components.length; i++) {\n\t\t\t\t\tvar comp = components[i];\n\t\t\t\t\tif (comp.types.indexOf('locality') !== -1) {\n\t\t\t\t\t\tquery.city = comp.long_name;\n\t\t\t\t\t}\n\t\t\t\t\tif (comp.types.indexOf('administrative_area_level_1') !== -1) {\n\t\t\t\t\t\tquery.provinceCode = comp.short_name;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction setLoading(state) {\n\t\tvar labelDefault = submitBtn.querySelector('.js-label-default');\n\t\tvar labelLoading = submitBtn.querySelector('.js-label-loading');\n\t\tsubmitBtn.disabled = state;\n\t\tlabelDefault.classList.toggle('hidden', state);\n\t\tlabelLoading.classList.toggle('hidden', !state);\n\t}\n\n\tfunction escapeHtml(str) {\n\t\tif (!str) return '';\n\t\tvar div = document.createElement('div');\n\t\tdiv.appendChild(document.createTextNode(str));\n\t\treturn div.innerHTML;\n\t}\n\n\tvar activeIndex = -1;\n\tvar infoWindows = [];\n\n\tfunction highlightCard(index) {\n\t\tvar cards = resultsContainer.querySelectorAll('[data-index]');\n\t\tfor (var i = 0; i < cards.length; i++) {\n\t\t\tcards[i].classList.remove('is-active');\n\t\t}\n\t\tactiveIndex = index;\n\t\tif (index >= 0 && cards[index]) {\n\t\t\tcards[index].classList.add('is-active');\n\t\t\tcards[index].scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n\t\t}\n\t}\n\n\tfunction openMarkerFromCard(index) {\n\t\thighlightCard(index);\n\t\tif (markers[index] && map) {\n\t\t\tfor (var i = 0; i < infoWindows.length; i++) {\n\t\t\t\tinfoWindows[i].close();\n\t\t\t}\n\t\t\tif (infoWindows[index]) {\n\t\t\t\tinfoWindows[index].open(map, markers[index]);\n\t\t\t}\n\t\t\tmap.panTo(markers[index].getPosition());\n\t\t}\n\t}\n\n\tfunction renderResults(listings) {\n\t\tif (!listings || listings.length === 0) {\n\t\t\tvar noResultMsg = lang === 'En' ? 'No listings found for this search.' : 'Aucun logement trouv\u00e9 pour cette recherche.';\n\t\t\tresultsContainer.innerHTML = '<div class=\"col-span-2 flex items-center justify-center py-12\"><span class=\"font-medium text-gray-500\">' + noResultMsg + '<\/span><\/div>';\n\t\t\treturn;\n\t\t}\n\n\t\tconsole.log('GUSZone Listings response:', listings);\n\n\t\tvar html = '';\n\t\tfor (var i = 0; i < listings.length; i++) {\n\t\t\tvar l = listings[i];\n\t\t\tvar listingTitle = (lang === 'En' ? (l.titleEn || '') : (l.titleFr || '')) || l.title || l.name || l.description || '';\n\t\t\tvar listingAddress = l.address || l.officeAddress || l.streetAddress || l.fullAddress || '';\n\t\t\tvar listingCity = l.city || l.cityName || '';\n\t\t\tvar listingBedrooms = l.numberOfBedrooms || l.bedrooms || l.nbBedrooms || '';\n\t\t\tvar listingBathrooms = l.numberOfBathrooms || l.bathrooms || l.nbBathrooms || '';\n\t\t\tvar listingSize = l.sizeSqFt || l.surfaceSqFt || '';\n\t\t\tvar listingType = (l.type && ((lang === 'En' ? l.type.nameEn : l.type.nameFr) || l.type.code)) || (lang === 'En' ? l.typeEn : l.typeFr) || '';\n\t\t\tvar listingImage = l.image800Url || l.image480Url || l.imageUrl || l.mainImageUrl || l.thumbnailUrl || ((l.gallery800Urls && l.gallery800Urls[0]) ? l.gallery800Urls[0] : '');\n\t\t\tvar iconBed = '<img decoding=\"async\" class=\"map__results__icon\" src=\"' + listingIconsBase + '\/Bed.svg\" alt=\"\" aria-hidden=\"true\">';\n\t\t\tvar iconBath = '<img decoding=\"async\" class=\"map__results__icon\" src=\"' + listingIconsBase + '\/Bathtub.svg\" alt=\"\" aria-hidden=\"true\">';\n\t\t\tvar iconSize = '<img decoding=\"async\" class=\"map__results__icon\" src=\"' + listingIconsBase + '\/Expand.svg\" alt=\"\" aria-hidden=\"true\">';\n\t\t\tvar iconType = '<img decoding=\"async\" class=\"map__results__icon\" src=\"' + listingIconsBase + '\/Home%20Page.svg\" alt=\"\" aria-hidden=\"true\">';\n\n\t\t\thtml += '<div class=\"map__results__card bg-bb-grey-pale rounded-2xl w-full cursor-pointer transition-all duration-200\" data-index=\"' + i + '\">';\n\t\t\tif (listingImage) {\n\t\t\t\thtml += '<div class=\"map__results__thumb\"><img decoding=\"async\" src=\"' + escapeHtml(listingImage) + '\" alt=\"' + escapeHtml(listingTitle) + '\" loading=\"lazy\"><\/div>';\n\t\t\t}\n\t\t\thtml += '<div class=\"map__results__content\">';\n\n\t\t\thtml += '<div class=\"map__results__address\">';\n\t\t\tif (listingTitle) {\n\t\t\t\thtml += '<h5>' + escapeHtml(listingTitle) + '<\/h5>';\n\t\t\t}\n\t\t\tif (listingAddress) {\n\t\t\t\thtml += '<span>' + escapeHtml(listingAddress) + '<\/span>';\n\t\t\t}\n\t\t\tif (listingCity) {\n\t\t\t\thtml += '<span>' + escapeHtml(listingCity) + '<\/span>';\n\t\t\t}\n\t\t\thtml += '<\/div>';\n\n\t\t\thtml += '<div class=\"map__results__details\">';\n\t\t\thtml += '<div class=\"map__results__details_row\">';\n\t\t\tif (listingBedrooms) {\n\t\t\t\thtml += '<div class=\"map__results__metric\">' + iconBed + '<span>' + escapeHtml(String(listingBedrooms)) + '<\/span><\/div>';\n\t\t\t}\n\t\t\tif (listingBathrooms) {\n\t\t\t\thtml += '<div class=\"map__results__metric\">' + iconBath + '<span>' + escapeHtml(String(listingBathrooms)) + '<\/span><\/div>';\n\t\t\t}\n\t\t\thtml += '<\/div>';\n\t\t\thtml += '<div class=\"map__results__details_row\">';\n\t\t\tif (listingSize) {\n\t\t\t\thtml += '<div class=\"map__results__metric\">' + iconSize + '<span>' + escapeHtml(String(listingSize)) + (lang === 'En' ? ' sq ft' : ' pi\u00b2') + '<\/span><\/div>';\n\t\t\t}\n\t\t\thtml += '<\/div>';\n\t\t\thtml += '<div class=\"map__results__details_row\">';\n\t\t\tif (listingType) {\n\t\t\t\thtml += '<div class=\"map__results__metric\">' + iconType + '<span>' + escapeHtml(String(listingType)) + '<\/span><\/div>';\n\t\t\t}\n\t\t\thtml += '<\/div>';\n\t\t\thtml += '<\/div>';\n\n\t\t\tvar detailUrl = buildListingDetailUrl(l);\n\t\t\thtml += '<div class=\"mt-5\">';\n\t\t\thtml += '<a href=\"' + escapeHtml(detailUrl) + '\" class=\"map__results__cta\">' + (lang === 'En' ? 'SEE MORE' : 'VOIR PLUS') + '<\/a>';\n\t\t\thtml += '<\/div>';\n\n\t\t\thtml += '<\/div>';\n\t\t\thtml += '<\/div>';\n\t\t}\n\n\t\tresultsContainer.innerHTML = html;\n\n\t\tvar cards = resultsContainer.querySelectorAll('[data-index]');\n\t\tfor (var c = 0; c < cards.length; c++) {\n\t\t\t(function(idx) {\n\t\t\t\tcards[idx].addEventListener('click', function() {\n\t\t\t\t\topenMarkerFromCard(idx);\n\t\t\t\t});\n\t\t\t})(c);\n\t\t}\n\t}\n\n\tfunction updateMap(listings) {\n\t\tif (typeof google === 'undefined' || !google.maps) return;\n\n\t\tfor (var i = 0; i < markers.length; i++) {\n\t\t\tif (markers[i]) markers[i].setMap(null);\n\t\t}\n\t\tmarkers = [];\n\t\tinfoWindows = [];\n\t\tactiveIndex = -1;\n\n\t\tif (!map) {\n\t\t\tmap = new google.maps.Map(mapContainer, {\n\t\t\t\tzoom: (query.latitude && query.longitude) ? 10 : 6,\n\t\t\t\tcenter: (query.latitude && query.longitude) ? { lat: query.latitude, lng: query.longitude } : defaultCenter,\n\t\t\t});\n\t\t}\n\n\t\tif (!listings || listings.length === 0) {\n\t\t\tmap.setCenter((query.latitude && query.longitude) ? { lat: query.latitude, lng: query.longitude } : defaultCenter);\n\t\t\treturn;\n\t\t}\n\n\t\tvar bounds = new google.maps.LatLngBounds();\n\t\tvar geocoder = new google.maps.Geocoder();\n\t\tvar pending = 0;\n\n\t\tfunction fitBoundsWhenReady() {\n\t\t\tvar placed = markers.filter(function(m) { return !!m; });\n\t\t\tif (pending === 0 && placed.length > 0) {\n\t\t\t\tif (placed.length === 1) {\n\t\t\t\t\tmap.setCenter(placed[0].getPosition());\n\t\t\t\t\tmap.setZoom(12);\n\t\t\t\t} else {\n\t\t\t\t\tmap.fitBounds(bounds);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction addMarker(position, listing, index) {\n\t\t\tvar listingTitle = (lang === 'En' ? (listing.titleEn || '') : (listing.titleFr || '')) || listing.title || listing.name || listing.description || '';\n\t\t\tvar listingAddress = listing.address || listing.officeAddress || listing.streetAddress || listing.fullAddress || '';\n\t\t\tvar listingBedrooms = listing.numberOfBedrooms || listing.bedrooms || listing.nbBedrooms || '';\n\t\t\tvar listingPrice = listing.price || listing.rent || listing.monthlyRent || listing.rentAmount || '';\n\n\t\t\tvar marker = new google.maps.Marker({\n\t\t\t\tposition: position,\n\t\t\t\tmap: map,\n\t\t\t\ttitle: listingTitle,\n\t\t\t\ticon: {\n\t\t\t\t\tpath: 'M15 0C6.716 0 0 6.742 0 15.058c0 3.804 1.438 7.427 3.348 10.386 2.832 4.387 9.522 14.65 11.243 17.289.193.296.625.296.818 0 1.72-2.639 8.411-12.902 11.243-17.289C28.562 22.485 30 18.862 30 15.058 30 6.742 23.284 0 15 0zm0 23.478c-4.632 0-8.387-3.77-8.387-8.42 0-4.65 3.755-8.42 8.387-8.42s8.387 3.77 8.387 8.42c0 4.65-3.755 8.42-8.387 8.42z',\n\t\t\t\t\tfillColor: '#FE8502',\n\t\t\t\t\tfillOpacity: 1,\n\t\t\t\t\tstrokeWeight: 0,\n\t\t\t\t\tscale: 0.8,\n\t\t\t\t\tanchor: new google.maps.Point(15, 43),\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tvar infoContent = '<div style=\"max-width:220px\">';\n\t\t\tif (listingTitle) infoContent += '<strong>' + escapeHtml(listingTitle) + '<\/strong><br>';\n\t\t\tif (listingAddress) infoContent += '<span>' + escapeHtml(listingAddress) + '<\/span>';\n\t\t\tif (listingBedrooms) infoContent += '<br><span>' + escapeHtml(String(listingBedrooms)) + (lang === 'En' ? ' bedroom(s)' : ' chambre(s)') + '<\/span>';\n\t\t\tif (listingPrice) infoContent += '<br><strong>' + escapeHtml(String(listingPrice)) + ' $<\/strong>';\n\t\t\tinfoContent += '<\/div>';\n\n\t\t\tvar infoWindow = new google.maps.InfoWindow({ content: infoContent });\n\t\t\t(function(idx) {\n\t\t\t\tmarker.addListener('click', function() {\n\t\t\t\t\tfor (var w = 0; w < infoWindows.length; w++) {\n\t\t\t\t\t\tif (infoWindows[w]) infoWindows[w].close();\n\t\t\t\t\t}\n\t\t\t\t\tinfoWindow.open(map, marker);\n\t\t\t\t\thighlightCard(idx);\n\t\t\t\t});\n\t\t\t})(index);\n\n\t\t\tmarkers[index] = marker;\n\t\t\tinfoWindows[index] = infoWindow;\n\t\t\tbounds.extend(position);\n\t\t}\n\n\t\tfor (var i = 0; i < listings.length; i++) {\n\t\t\tvar l = listings[i];\n\t\t\tvar lat = parseFloat(l.latitude || l.officeLatitude || l.lat || 0);\n\t\t\tvar lng = parseFloat(l.longitude || l.officeLongitude || l.lng || l.lon || 0);\n\t\t\tvar addr = l.address || l.officeAddress || l.streetAddress || l.fullAddress || '';\n\n\t\t\tif (lat && lng) {\n\t\t\t\taddMarker({ lat: lat, lng: lng }, l, i);\n\t\t\t} else if (addr) {\n\t\t\t\tpending++;\n\t\t\t\t(function(listing, address, idx) {\n\t\t\t\t\tgeocoder.geocode({ address: address + ', Canada' }, function(results, status) {\n\t\t\t\t\t\tpending--;\n\t\t\t\t\t\tif (status === 'OK' && results[0]) {\n\t\t\t\t\t\t\taddMarker(results[0].geometry.location, listing, idx);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfitBoundsWhenReady();\n\t\t\t\t\t});\n\t\t\t\t})(l, addr, i);\n\t\t\t}\n\t\t}\n\n\t\tfitBoundsWhenReady();\n\t}\n\n\tfunction search() {\n\t\tquery.numberOfBedrooms = bedroomsSelect.value;\n\t\tquery.city = cityInput.value || query.city;\n\n\t\tif (displayMode === 'form' && resultsPageUrl) {\n\t\t\twindow.location.href = buildResultsUrl();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!query.latitude || !query.longitude) {\n\t\t\talert(lang === 'En' ? 'Please select a city from the suggestions list.' : 'Veuillez s\u00e9lectionner une ville dans la liste de suggestions.');\n\t\t\treturn;\n\t\t}\n\n\t\tsetLoading(true);\n\t\tresultsContainer.innerHTML = '<div class=\"col-span-2 flex items-center justify-center py-12\"><span class=\"text-bb-orange font-bold\">' + (lang === 'En' ? 'Loading...' : 'Chargement...') + '<\/span><\/div>';\n\n\t\tfetch(ajaxUrl + '?action=guszone_search_listings', {\n\t\t\tmethod: 'POST',\n\t\t\theaders: { 'Content-Type': 'application\/json' },\n\t\t\tbody: JSON.stringify(query),\n\t\t})\n\t\t.then(function(response) { return response.json(); })\n\t\t.then(function(data) {\n\t\t\tvar listings = Array.isArray(data) ? data : [];\n\t\t\trenderResults(listings);\n\t\t\tupdateMap(listings);\n\t\t})\n\t\t.catch(function(error) {\n\t\t\tconsole.error('GUSZone API error:', error);\n\t\t\trenderResults([]);\n\t\t})\n\t\t.finally(function() {\n\t\t\tsetLoading(false);\n\t\t});\n\t}\n\n\tform.addEventListener('submit', function(e) {\n\t\te.preventDefault();\n\t\tsearch();\n\t});\n\n\tinitAutocomplete();\n\tparseInitialQueryFromUrl();\n\tvar shouldSearchFromUrl = hasSearchParamsInUrl();\n\n\tif (shouldSearchFromUrl && mapWrapper) {\n\t\tmapWrapper.classList.remove('hidden');\n\t}\n\n\tif ((displayMode === 'results' || displayMode === 'both' || shouldSearchFromUrl) && query.latitude && query.longitude) {\n\t\tsearch();\n\t}\n}\n\n\tloadGoogleMaps(initListingLocator);\n})();\n<\/script>\n\n\n\n        <\/div> \n    \n<\/section>\n\n\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1479","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/gus.gumstaging.fr\/en\/wp-json\/wp\/v2\/pages\/1479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gus.gumstaging.fr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gus.gumstaging.fr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gus.gumstaging.fr\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gus.gumstaging.fr\/en\/wp-json\/wp\/v2\/comments?post=1479"}],"version-history":[{"count":7,"href":"https:\/\/gus.gumstaging.fr\/en\/wp-json\/wp\/v2\/pages\/1479\/revisions"}],"predecessor-version":[{"id":1498,"href":"https:\/\/gus.gumstaging.fr\/en\/wp-json\/wp\/v2\/pages\/1479\/revisions\/1498"}],"wp:attachment":[{"href":"https:\/\/gus.gumstaging.fr\/en\/wp-json\/wp\/v2\/media?parent=1479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}