-1) {
let s = strcode.indexOf("", e);
scripts.push(strcode.substring(s_e+1, e));
strcode = strcode.substring(0, s) + strcode.substring(e_e+1);
}
for(let i=0; i 0 ){
donation = form.donation.value;
}
var telephone = form.telephone.value;
var email = form.email.value;
var commune = form.commune.value;
var code_postal = form.code_postal.value;
var message = form.message.value;
if( form.infos !== undefined && form.infos.value !== "" ){
message = form.infos.value + "\n\n" + message;
}
var cnil = form.cnil.value;
var emplacement = form.emplacement.value;
var gsm = form.gsm.value;
var comment = form.comment.value;
let confirm = "page";
if( form.confirmation !== undefined && form.confirmation.value === "popin" ){
confirm = "popin"
}
if( nom != "" && prenom != "" && telephone != "" && email != "" && commune != "" && code_postal != "" ){
chargement.style['display'] = "flex";
setTimeout(function(){
chargement.style['opacity'] = 1;
},10);
var xhr_contact = new XMLHttpRequest();
xhr_contact.overrideMimeType("application/json");
xhr_contact.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
var response = JSON.parse(xhr_contact.responseText);
if (response.results == "OK") {
confirmation_contact(true,confirm);
sending_data = false;
//el.innerHTML = response.html;
} else {
confirmation_contact(true,confirm);
chargement.style['display'] = "none";
console.log( response.results, response.html );
}
}
};
contact_form.append('d', d);
contact_form.append('id_page', id_page);
contact_form.append('projet', projet);
contact_form.append('donation', donation);
contact_form.append('nom', nom);
contact_form.append('prenom', prenom);
contact_form.append('telephone', telephone);
contact_form.append('email', email);
contact_form.append('commune', commune);
contact_form.append('code_postal', code_postal);
contact_form.append('message', message);
contact_form.append('cnil', cnil);
contact_form.append('emplacement', emplacement);
if( guide_du_neuf ){
contact_form.append('guide_du_neuf', true);
}
contact_form.append('gsm', gsm);
contact_form.append('comment', comment);
xhr_contact.open("post", '/contact_xhr.php', true);
xhr_contact.send(contact_form);
} else {
var fields = [
"nom",
"prenom",
"telephone",
"email",
"commune",
"code_postal"
];
for( var f = 0 ; f < fields.length ; f ++ ){
if( form[fields[f]].value == '' ){
form[fields[f]].style['background'] = '#FFCCCC';
} else{
form[fields[f]].style['background'] = 'inherit';
}
}
sending_data = false;
}
}
return false;
}
if (typeof check_projet_contact_form === 'undefined') {
function check_projet_contact_form(form) {
const actives = form.querySelectorAll(".active");
for( let active of actives){
active.classList.remove("active");
}
if (event.target.name === "select_investir") {
form.select_investir.classList.add("active");
form.projet.value = "investir";
form.donation.value = 0;
} else if (event.target.name === "select_habiter") {
form.select_habiter.classList.add("active");
form.projet.value = "habiter";
form.donation.value = 0;
} else if (event.target.name === "select_donation_habiter" || event.target.name === "select_donation_investir" ) {
form.select_donation.classList.add("active");
event.target.classList.add("active");
form.projet.value = "";
form.donation.value = event.target.value;
}
}
}
let dropdown_donation_open = false;
function open_dropdown_donation(el, force){
event.stopPropagation();
if(dropdown_donation_open || force){
el.style['display'] = 'none';
dropdown_donation_open = false;
} else {
el.style['display'] = 'block';
dropdown_donation_open = true;
}
}
if (typeof fill_input === 'undefined') {
function fill_input(form,projet_select) {
let select_projet_title_text = "Sélectionnez votre projet";
switch ( parseInt( projet_select ) ){
default:
case 1 :
form.projet.value = "habiter";
form.donation.value = 0;
select_projet_title_text = "Habiter";
break;
case 2 :
form.projet.value = "investir";
form.donation.value = 0;
select_projet_title_text = "Investir";
break;
case 3 :
form.projet.value = "gestion";
form.donation.value = 0;
select_projet_title_text = "Faire gérer mon bien";
form.message.value = "Je souhaite mettre mon bien en location"
break;
case 4 :
form.projet.value = "gestion";
form.donation.value = 0;
select_projet_title_text = "Trouver une location";
form.message.value = "Je recherche une location"
break;
case 5 :
form.projet.value = "";
form.donation.value = 1;
select_projet_title_text = "Donation pour habiter";
break;
case 6 :
form.projet.value = "";
form.donation.value = 2;
select_projet_title_text = "Donation pour investir";
break;
}
form.select_projet_title.innerText = select_projet_title_text;
}
}
let select_project_open = false;
function open_select_project(el, force){
event.stopPropagation();
if(select_project_open || force){
el.style['display'] = 'none';
select_project_open = false;
el.parentNode.classList.remove("select_opened");
} else {
el.style['display'] = 'flex';
select_project_open = true;
el.parentNode.classList.add("select_opened");
}
}
let unwrap_elements = [];
function unwrap(el){
let wrapper = el.parentNode;
let help_text = el.querySelector('span');
let container = wrapper.querySelector(".wrap_content");
if( unwrap_elements.includes(wrapper) ){
unwrap_elements = unwrap_elements.filter(e => e !== wrapper);
help_text.innerHTML = "Lire plus";
container.style['max-height'] = "300px";
wrapper.classList.remove("unwrap");
el.parentNode.scrollIntoView({ behavior: "smooth", block: "start" });
} else {
unwrap_elements.push(wrapper);
help_text.innerHTML = "Lire moins";
container.style['max-height'] = "20000px";
wrapper.classList.add("unwrap");
}
}
let unwrap_elements_custom = [];
function unwrap_custom(btn, options = { more: "Lire plus", less: "Lire moins" } ) {
const wrapper = btn.parentNode;
const container = wrapper.querySelector(".wrap_custom_content");
const help_text = btn.querySelector(".wrap_help_text");
console.log( wrapper );
if (!container) return;
const dataset_more = btn.dataset.textMore;
const dataset_less = btn.dataset.textLess;
const final_options = {
more: dataset_more || options.more,
less: dataset_less || options.less
};
capture_original_constraint(container);
const is_open = unwrap_elements_custom.includes(wrapper);
if (is_open) {
const collapse_height = read_collapse_height(wrapper);
if (collapse_height != null) {
apply_collapse_height(container, collapse_height);
} else {
restore_original_constraint(container);
}
unwrap_elements_custom = unwrap_elements_custom.filter(n => n !== wrapper);
wrapper.classList.remove("unwrap_custom");
btn.setAttribute("aria-expanded", "false");
if (help_text) help_text.innerHTML = final_options.more;
wrapper.scrollIntoView({ behavior: "smooth", block: "start" });
} else {
remove_constraint(container);
unwrap_elements_custom.push(wrapper);
wrapper.classList.add("unwrap_custom");
btn.setAttribute("aria-expanded", "true");
if (help_text) help_text.innerHTML = final_options.less;
}
}
function init_unwrap_auto(root_node = document, options = { more: "Lire plus", less: "Lire moins" }) {
const wrappers = root_node.querySelectorAll(".wrap_custom");
wrappers.forEach(wrapper => {
const container = wrapper.querySelector(".wrap_custom_content");
const btn = wrapper.querySelector(".wrap_custom_toggle");
const help_text = btn ? btn.querySelector(".wrap_help_text") : null;
if (!container || !btn) return;
unwrap_elements_custom = unwrap_elements_custom.filter(n => n !== wrapper);
const text_more = btn.dataset.textMore || options.more;
capture_original_constraint(container);
const collapse_height = read_collapse_height(wrapper);
if (collapse_height != null) {
apply_collapse_height(container, collapse_height);
} else {
restore_original_constraint(container);
}
const overflowing = is_overflowing(container);
if (overflowing) {
btn.style.display = "";
btn.setAttribute("aria-expanded", "false");
if (help_text) help_text.innerHTML = text_more;
wrapper.classList.remove("unwrap_custom");
} else {
remove_constraint(container);
btn.style.display = "none";
wrapper.classList.add("unwrap_custom");
if (!unwrap_elements_custom.includes(wrapper)) {
unwrap_elements_custom.push(wrapper);
}
}
one_time_resize_recheck(container, () => {
if (collapse_height != null) apply_collapse_height(container, collapse_height);
const now_overflowing = is_overflowing(container);
if (now_overflowing) {
btn.style.display = "";
btn.setAttribute("aria-expanded", "false");
if (help_text) help_text.innerHTML = text_more;
restore_collapsed_state(container, wrapper, collapse_height);
} else {
remove_constraint(container);
btn.style.display = "none";
wrapper.classList.add("unwrap_custom");
if (!unwrap_elements_custom.includes(wrapper)) {
unwrap_elements_custom.push(wrapper);
}
}
});
});
}
function read_collapse_height(wrapper) {
const raw = wrapper.getAttribute("data-collapse_height");
if (!raw) return null;
const n = parse_int_safe(raw, null);
return n != null ? n : null;
}
function parse_int_safe(value, fallback) {
const n = parseInt(value, 10);
return Number.isNaN(n) ? fallback : n;
}
function is_overflowing(el) {
return Math.ceil(el.scrollHeight) > Math.ceil(el.clientHeight);
}
function capture_original_constraint(container) {
if (container.dataset._cap_captured === "1") return;
const cs = window.getComputedStyle(container);
container.dataset._orig_max_height = cs.maxHeight;
container.dataset._orig_height = cs.height;
container.dataset._orig_overflow = cs.overflow;
container.dataset._cap_captured = "1";
}
function restore_original_constraint(container) {
const orig_max = container.dataset._orig_max_height || "none";
const orig_height = container.dataset._orig_height || "auto";
const orig_overflow = container.dataset._orig_overflow || "visible";
container.style.maxHeight = orig_max;
if (orig_height !== "auto") container.style.height = orig_height;
container.style.overflow = orig_overflow;
}
function apply_collapse_height(container, height_px) {
container.style.height = "";
container.style.maxHeight = height_px + "px";
container.style.overflow = "hidden";
}
function remove_constraint(container) {
container.style.maxHeight = "none";
container.style.height = "auto";
container.style.overflow = "visible";
}
function restore_collapsed_state(container, wrapper, collapse_height) {
if (collapse_height != null) {
apply_collapse_height(container, collapse_height);
} else {
restore_original_constraint(container);
}
wrapper.classList.remove("unwrap_custom");
unwrap_elements_custom = unwrap_elements_custom.filter(n => n !== wrapper);
}
function one_time_resize_recheck(container, callback_once) {
if (!("ResizeObserver" in window)) return;
let done = false;
const ro = new ResizeObserver(() => {
if (done) return;
done = true;
callback_once();
ro.disconnect();
});
ro.observe(container);
}
document.addEventListener("DOMContentLoaded", () => {
init_unwrap_auto(document, { more: "Lire plus", less: "Lire moins" });
});
✖
Transformez votre loyer en Patrimoine
M. & Mme Dubois étaient locataires d'un T3 en zone A à 1 000 €/mois
Avec leur revenu fiscal de référence de 35 000 € ils sont éligibles au Prêt à Taux Zéro
🏡
T3 à 310 000 € frais de notaire inclus
◎
PTZ + Prêt Aidé de 165 000 €
💸
Apport de 31 000 €
🏦
Emprunt de 125 000 € à 3.20 % sur 25 ans
Leur nouvelle mensualité s'élève à 1 150 €/mois , ils sont devenus propriétaires de leur résidence principale pour 150 € de plus par mois*
Contactez-nous & obtenez votre simulation gratuite
*Document non contractuel. Voir conditions en agence
▾
Obtenir les informations résumées de cette page :
Responsable Éditoriale & Rédactrice web spécialisée en immobilier
Après 10 ans d’expérience de rédaction freelance à Rennes, j’ai rejoint Toulouse et le pôle de communication digitale de la société Immo9. 5 ans de décorticage de la toile immobilière au service des internautes, clients ou curieux, ont affiné ma maîtrise du secteur, de sa législation, de son évolution et des politiques locales d'urbanisme.
Je pilote désormais une équipe de rédacteurs qui vulgarise au quotidien : les rouages de l’investissement locatif, de la fiscalité immobilière, des marchés locaux, des normes environnementales, mais aussi des architectures et matériaux du futur...
Dans la vie, j'aime l'histoire, les vieilles pierres, la Bretagne et accessoirement... écrire ;)
Articles écrits par Morgane
Louer sans garant : 5 solutions pour étudiants en 2026
Le garant reste le vrai point de blocage pour se loger étudiant à la rentrée 2026. Visale, la caution gratuite de l'État, couvre la plupart des moins de 30 ans, avec des plafonds relevés cette année. Garant privé, caution bancaire, résidence gérée et aides au dépôt prennent le relais dans les autres cas.
Lille IMMO9 : le dernier-né du groupe IMMO9 part à la conquête de la capitale des Flandres
Le groupe IMMO9, spécialiste de l'achat immobilier neuf depuis 2009, ouvre sa nouvelle agence Lille IMMO9 et s'implante pour la première fois dans les Hauts-de-France. Portée par une métropole de 1,2 million d'habitants, l'une des toutes premières villes étudiantes de France, Lille offre un marché du neuf tendu et porteur pour les investisseurs. De la sélection du programme à la gestion locative, Lille IMMO9 accompagne gratuitement acquéreurs et investisseurs sur Lille et toute la MEL.
Catastrophe naturelle : ce que couvre (et ne couvre pas) votre assurance maison
Franchise de 380 € ou 1 520 €, arrêté interministériel obligatoire, exclusions sur le jardin ou la piscine, cas épineux des fissures de sécheresse : le régime CatNat obéit à des règles précises, récemment réformées. Ce guide fait le point, à jour de juillet 2026, sur vos droits et vos démarches.
Une place de parking, ça rapporte combien à Bordeaux ?
Combien rapporte une place de parking à Bordeaux ? Prix de location par quartier, calcul du rendement, fiscalité 2026 et pièges à éviter avant de louer.
Achat d'un logement neuf : Guide chronologique des étapes
De l'étude du budget jusqu'aux formalités administratives après l'emménagement, l'achat d'un logement neuf en VEFA suit un parcours réglementé en 12 étapes. Ce guide détaille chaque phase du projet : réservation, financement, signature chez le notaire, suivi de la construction et garanties légales. Une feuille de route claire pour sécuriser votre acquisition immobilière.
Assurance locataire : 3 niveaux, un seul obligatoire
L'assurance habitation est obligatoire pour tout locataire d'une résidence principale, mais la garantie minimale légale (les risques locatifs) ne protège que le logement du propriétaire, pas vos biens ni vos voisins. Dans les faits, c'est une multirisque habitation qu'on souscrit, et le vrai choix porte sur son niveau et ses plafonds. Ce guide explique ce qui est obligatoire, ce qui vaut le coup d'ajouter et les options sur lesquelles économiser.
Éviter les cambriolages sans se ruiner : 10 gestes à moins de 50 €
Verrous tournés, voisins prévenus, boîte aux lettres sous contrôle : une grande partie de la protection d'un logement repose sur des habitudes qui ne coûtent rien. Démonstration en 10 gestes gratuits ou à moins de 50 €, inspirés des conseils officiels de la police et de la gendarmerie, montants réels à l'appui.
Passoires, Jeanbrun, ANRU 3 : ce que le Sénat a voté le 8 juillet
Passoires thermiques louables sous conditions, amortissement Jeanbrun étendu, ANRU 3 doté de 5 milliards d'euros, permis dérogatoires, maires renforcés sur les attributions HLM : le Sénat a voté le 8 juillet un texte qui touche à tous les étages de la politique du logement. Décryptage mesure par mesure, avant l'examen à l'Assemblée nationale à la rentrée.
Canicule à Bordeaux : Bien choisir son quartier pour un été supportable
À Bordeaux, deux logements au plan identique n'offrent pas le même confort d'été selon leur adresse : Météo-France mesure jusqu'à 4,4 °C d'écart entre la ville et sa campagne les nuits d'été, et les cartes de la Métropole distinguent un centre minéral d'un secteur arboré. Densité du bâti, minéralité, végétation et circulation de l'air font la différence. Un critère de santé et d'achat, alors que les vagues de chaleur se multiplient.
L'équipe rédactionnelle IMMO9
En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour la réalisation de statistiques de visites.
J'accepte