-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 experts IMMO9 
Votre projet immobilier neuf à Rennes ou sur la Côte d'Émeraude mérite le meilleur accompagnement. C'est pourquoi IMMO9 vous propose bien plus qu'un catalogue de biens : un véritable suivi personnalisé et gratuit, de A à Z. Nos experts locaux prennent le temps de vous écouter pour vous aider à naviguer dans toutes les étapes de votre achat, jusqu'à la remise des clés. Que ce soit pour habiter ou pour investir, faites confiance à notre connaissance du marché pour donner vie à votre projet.
Voici l'équipe d'experts en immobilier neuf chez Rennes IMMO9 : 
Les femmes de l'ombre : Le back-office IMMO9  
        
        
     
 
    
	
	
            
        
    
	
	
	
		
			En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour la réalisation de statistiques de visites.
		
		
			J'accepte