-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");
        if (!container) return;
        capture_original_constraint(container);
        const is_open = unwrap_elements_custom.includes(wrapper);
        if (is_open) {
            // Collapse
            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 = options.more;
        } else {
            // Expand
            remove_constraint(container);
            unwrap_elements_custom.push(wrapper);
            wrapper.classList.add("unwrap_custom");
            btn.setAttribute("aria-expanded", "true");
            if (help_text) help_text.innerHTML = 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;
            capture_original_constraint(container);
            const collapse_height = read_collapse_height(wrapper);
            if (collapse_height != null) {
                // Fixed-height mode
                apply_collapse_height(container, collapse_height);
            } else {
                // CSS-clamp mode (keep your CSS max-height/height/line-clamp)
                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 = options.more;
                wrapper.classList.remove("unwrap_custom");
            } else {
                remove_constraint(container);
                btn.style.display = "none";
                wrapper.classList.add("unwrap_custom");
            }
            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 = options.more;
                    restore_collapsed_state(container, wrapper, collapse_height);
                } else {
                    remove_constraint(container);
                    btn.style.display = "none";
                    wrapper.classList.add("unwrap_custom");
                }
            });
        });
    }
    /* === Helpers === */
    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; // e.g. "300px" or "none"
        container.dataset._orig_height = cs.height;        // computed px string
        container.dataset._orig_overflow = cs.overflow;    // "hidden", etc.
        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;
        // Only restore height if it was explicitly fixed in CSS; otherwise leave "auto"
        if (orig_height !== "auto") container.style.height = orig_height;
        container.style.overflow = orig_overflow;
    }
    function apply_collapse_height(container, height_px) {
        container.style.height = "";          // prefer max-height for transitions
        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");
    }
    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);
    }
    /* DOM ready */
    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 € 
         
        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 
     
 
	▾
//=base64_encode('/contact')?>
	
		
		
			
        
    
    Les appartements neufs livraison 2027 à Bordeaux Métropole 
    Consultez l’ensemble des programmes immobiliers neufs livrables en 2027 à Bordeaux Métropole (Talence, Bègles, Pessac...) . Comparez les appartements et maisons en VEFA, commercialisés par l'ensemble des promoteurs locaux et nationaux selon leur surface, leur prix et leur plan. Avec Immo9, bénéficiez d’un accompagnement personnalisé, sans frais supplémentaires et de prix d'achat strictement identiques à ceux des promoteurs, offres incluses.
 
    
	
        	        7 programmes immobiliers neufs  correspondent à votre recherche
             
	
    
    
	
     
    
        
    
	Pourquoi nous choisir ?  
	
		
			
				
					🗺
					+1000  programmes
				 
				
					🏘
					Prix garantis direct 
				 
				
					🤝
					98%  des promoteurs
				 
				
					🌟
					Un interlocuteurunique 
				 
				
					🏗
					250  promoteurs
				 
				
					📊
					20 ans  d'expertise enBordeaux 
				 
			 
		 
	 
 
		 
		
		
		
	
    
	 
	
	
		
			En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour la réalisation de statistiques de visites.
		
		
			J'accepte