-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')?>
    
         
    
        
	        	            
Cécile Gattulli 
	                   
	    
	© IMMO9
		
			Courtière en immobilier neuf indépendante à Montpellier Métropole et en Hérault
		
		
Votre projet immobilier, ma priorité ! 
Animée depuis toujours par la satisfaction client et passionnée par le secteur de l'immobilier, j’ai fait le choix en 2020 de réorienter ma carrière vers la promotion immobilière, un domaine en parfaite adéquation avec mon sens du service.
Issue du secteur des Ressources Humaines, où l’humain est au cœur de chaque interaction, j’ai naturellement retrouvé cette même dimension relationnelle dans le métier de courtière en immobilier neuf. Avec plus de 20 ans d’ancrage à Montpellier, je mets à votre service mon expertise du marché local (Hérault & Gard), associée à ma parfaite maîtrise des spécificités de l’immobilier neuf : avantages fiscaux, dispositifs en vigueur, et cadres réglementaires.
Mon rôle est de vous accompagner à chaque étape de votre projet, que ce soit pour l'achat de votre résidence principale, résidence secondaire, ou pour un investissement locatif. Définition de vos besoins, présentation des offres, montage financier... Je serai également avec vous lors de la signature chez le notaire et jusqu'à la livraison de votre bien.
Mon métier, c'est votre tranquillité : Je serai à l'écoute, pour comprendre vos attentes et y répondre avec justesse, et ferai preuve de ténacité et d'engagement pour défendre vos intérêts.
Parce qu’un achat immobilier est une étape clé dans une vie, je mets tout en œuvre pour que vous puissiez acheter en toute confiance et en toute sérénité.
 
Présentez-moi votre projet !  
À très bientôt.
 
		
	 
     
            
        
    
	
	
	
		
			En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour la réalisation de statistiques de visites.
		
		
			J'accepte