{% form_theme demande_form 'Form/exacompare.html.twig' %}{{ form_start(demande_form, {'attr': {'class': 'request-form form', 'enctype': "multipart/form-data"}}) }}<div class="inner-form col-sm-12"><div class="table-form request-form-field cat row"><div id="categorie" class="col-sm-12">{{ form_label(demande_form.categorie) }}<div class="form-fields clearfix">{{ form_widget(demande_form.categorie) }}{{ form_errors(demande_form.categorie) }}</div></div></div><fieldset><legend>Votre bien</legend><div class="table-form row"><div class="col-sm-12">{{ form_label(demande_form.bienType) }}<div class="form-fields clearfix">{{ form_widget(demande_form.bienType) }}{{ form_errors(demande_form.bienType) }}</div></div></div><div class="table-form row"><div class="col-sm-12">{{ form_label(demande_form.bienLocalisation) }}<div class="form-fields clearfix localisation-container">{{ form_widget(demande_form.bienLocalisation) }}{{ form_errors(demande_form.bienLocalisation) }}</div></div>{{ form_row(demande_form.bienCodePostal, {'row_attr': {'class': 'col-sm-6'}}) }}{{ form_row(demande_form.bienVille, {'row_attr': {'class': 'col-sm-6'}}) }}</div><div class="table-form row"><div class="col-sm-4">{{ form_label(demande_form.bienNombrePieces) }}<div class="form-fields clearfix">{{ form_widget(demande_form.bienNombrePieces) }}{{ form_errors(demande_form.bienNombrePieces) }}</div></div><div class="col-sm-4">{{ form_label(demande_form.bienSurface) }}<div class="form-fields clearfix">{{ form_widget(demande_form.bienSurface) }}{{ form_errors(demande_form.bienSurface) }}</div></div><div class="col-sm-4" data-groups="diagnostics">{{ form_label(demande_form.bienAnneeConstructionChoice) }}<div class="form-fields clearfix">{{ form_widget(demande_form.bienAnneeConstructionChoice) }}{{ form_errors(demande_form.bienAnneeConstructionChoice) }}</div></div><div class="col-sm-4" data-groups="expertises etudes solutions energies">{{ form_label(demande_form.bienAnneeConstructionFree) }}<div class="form-fields clearfix">{{ form_widget(demande_form.bienAnneeConstructionFree) }}</div>{{ form_errors(demande_form.bienAnneeConstructionFree) }}</div></div><div class="table-form row"><div class="col-sm-4">{{ form_label(demande_form.bienCopropriete) }}<div class="form-fields clearfix">{{ form_widget(demande_form.bienCopropriete) }}{{ form_errors(demande_form.bienCopropriete) }}</div></div><div class="col-sm-4" data-groups="diagnostics">{{ form_label(demande_form.bienGaz) }}<div class="form-fields clearfix">{{ form_widget(demande_form.bienGaz) }}{{ form_errors(demande_form.bienGaz) }}</div></div><div class="col-sm-4" data-groups="diagnostics">{{ form_label(demande_form.bienElectricite) }}<div class="form-fields clearfix">{{ form_widget(demande_form.bienElectricite) }}{{ form_errors(demande_form.bienElectricite) }}</div></div><!-- <div class="col-sm-8"><div class="form-label"><label for="demande_bienPhoto">Joignez une photo (10 Mo max)</label></div><div class="form-fields clearfix"><span class="browse-button row"><span class="col-md-6"><input class="hide" type="file" id="demande_bienPhoto" name="bienPhoto"><button class="browse" type="button">Parcourir</button></span><span class="file col-md-6">Aucun fichier sélectionné.</span></span></div></div> --></div></fieldset><fieldset><legend>Votre projet</legend><div class="table-form row"><!-- <div class="col-sm-4 --><div class="col-sm-4" data-groups="solutions energies"><div class="form-label">{{ form_label(demande_form.prestation) }}</div><div class="form-fields clearfix">{{ form_widget(demande_form.prestation) }}</div>{{ form_errors(demande_form.prestation) }}</div><!-- <div class="col-sm-4 -->{# <div class="col-sm-4"><div class="form-label">{{ form_label(demande_form.expiration) }}</div><div class="form-fields clearfix">{{ form_widget(demande_form.expiration) }}{{ form_errors(demande_form.expiration) }}</div></div> #}<!-- <div class="browse-button col-sm-8 --><!-- <div class="browse-button col-sm-8" data-groups="expertises etudes solutions energies" style=""><div class="form-label"><div class="form-label"><label for="demande_descriptionFile">Joignez un descriptif (10 Mo max)</label></div></div><div class="form-fields clearfix"><span class="browse-button row"><span class="col-md-6"><input class="hide" type="file" id="demande_descriptionFile" name="descriptionFile"><button class="browse" type="button">Parcourir</button></span><span class="file col-md-6">Aucun fichier sélectionné.</span></span></div></div> --><!-- <div class="col-sm-12 --><div class="col-sm-12"><div class="form-label">{{ form_label(demande_form.comment) }}</div><div class="form-fields clearfix">{{ form_widget(demande_form.comment) }}</div>{{ form_errors(demande_form.comment) }}</div></div></fieldset><fieldset><legend>Vous-même</legend><div class="table-form row">{% block warning_privacy %}<p class="form-message col-sm-12">Vos données personnelles (nom, email, téléphone) ne seront pas utilisées à des fins publicitaires.</p><p class="form-message col-sm-12">Attention, si vos informations ci-dessous sont inexactes, votre demande ne sera pas traitée.</p>{% endblock %}<div class="col-sm-4 hidden">{{ form_label(demande_form.clientStatut) }}<div class="form-fields clearfix">{{ form_widget(demande_form.clientStatut) }}{{ form_errors(demande_form.clientStatut) }}</div></div><div class="col-sm-4">{{ form_label(demande_form.clientNom) }}<div class="form-fields clearfix">{{ form_widget(demande_form.clientNom) }}{{ form_errors(demande_form.clientNom) }}</div></div><div class="col-sm-4">{{ form_label(demande_form.clientEmail) }}<div class="form-fields clearfix">{{ form_widget(demande_form.clientEmail) }}{{ form_errors(demande_form.clientEmail) }}</div></div><div class="col-sm-4">{{ form_label(demande_form.clientTelephone) }}<div class="form-fields clearfix">{{ form_widget(demande_form.clientTelephone) }}{{ form_errors(demande_form.clientTelephone) }}</div></div></div></fieldset><div class="row"><!-- <div class="estimation declaration"><div class="form-fields col-sm-12"><input type="checkbox" id="estimation" name="estimation" {% if demande is defined and demande.estimation %}value="on" checked{% endif %}><label id="label_estimation" for="estimation" class=""><p>De plus, je souhaite faire estimer gratuitement mon bien par un agent immobilier<p></label></div></div> -->{% block warning %}<p class="form-message col-sm-12">En validant ce formulaire, j'accepte que jusqu'à 3 prestataires me contactent pour me fournir un devis gratuit.</p>{% endblock %}<p class="form-required-legend form-message col-sm-12"><span class="required form-required-mark">*</span> Champ obligatoire.</p></div><div class="request-form-submit clearfix row">{{ form_row(demande_form.submit, {'type': 'button', 'attr': {'onclick': 'requiredVerification()'}}) }}</div></div>{{ form_end(demande_form) }}<script>$('#demande_clientTelephone').on('keyup', function () {var phone = $(this).val();$('#demande_clientTelephone').val(phone.replace(/[^0-9]/g, ''));});$('select#demande_categorie').removeAttr('required')var form_demande_validated = false;$("form").submit(function(e){if (!form_demande_validated) {e.preventDefault(e);requiredVerification();}});function requiredVerification() {form_demande_validated = true;$("form ul.form-errors").remove();$('#categorie select:visible, #demande_bienType').each(function () {if (!$(this).val() || $(this).val() == '') {$(this).parent(".select-background").after("<ul class='form-errors'><li>Veuillez renseigner ce champ.</li></ul>");if (form_demande_validated) {this.setCustomValidity("Veuillez renseigner ce champ.");$(this).focus();$('html, body').animate({ scrollTop: $(this).parent(".select-background").offset().top - 110}, 50);}form_demande_validated = false;} else {this.setCustomValidity("");}})if (!$('.auto_cp').val() || $('.auto_cp').val() == '' || !$('.auto_ville').val() || $('.auto_ville').val() == '') {if ($(".localisation").val() == '' || !$('.localisation').val()) {$(".localisation").after("<ul class='form-errors'><li>Veuillez renseigner ce champ.</li></ul>");} else {$(".localisation").after("<ul class='form-errors'><li>Veuillez sélectionner une ville et un code postal valides.</li></ul>");}if (form_demande_validated) {console.log('.localisation')$(".localisation").focus();$('html, body').animate({ scrollTop: $('.localisation').offset().top - 110}, 50);}form_demande_validated = false;}$("form select[required]:visible:not(#demande_bienType)").each(function () {if (!$(this).val() || $(this).val() == '') {$(this).parent(".select-background").after("<ul class='form-errors'><li>Veuillez renseigner ce champ.</li></ul>");if (form_demande_validated) {console.log("element select", this)this.setCustomValidity("Veuillez renseigner ce champ.");$(this).focus();$('html, body').animate({ scrollTop: $(this).parent(".select-background").offset().top - 110}, 50);}form_demande_validated = false;} else {this.setCustomValidity("");}})$("form input[required]:visible").each(function () {if (!$(this).is(".localisation")&& (!$(this).val()|| $(this).val() == ''|| ($(this).is('checkbox') && !$(this).is(':checked')))){$(this).after("<ul class='form-errors'><li>Veuillez renseigner ce champ.</li></ul>");if (form_demande_validated) {this.setCustomValidity("Veuillez renseigner ce champ.");$(this).focus();$('html, body').animate({ scrollTop: $(this).offset().top - 110}, 50);}form_demande_validated = false;} else { this.setCustomValidity(""); }});if ($("#demande_clientEmail").val() && $("#demande_clientEmail").val() != "") {var regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;if (!regex.test($("#demande_clientEmail").val())) {$("#demande_clientEmail").after("<ul class='form-errors'><li>Veuillez saisir un email valide.</li></ul>");if (form_demande_validated) {$("#demande_clientEmail").focus();$('html, body').animate({ scrollTop: $("#demande_clientEmail").offset().top - 110}, 50);}form_demande_validated = false;}}var phone = $("#demande_clientTelephone").val();phone = phone.replaceAll(" ", "");$('#demande_clientTelephone').val(phone);phone = $("#demande_clientTelephone").val();// Supprimer les espaces et les caractères spéciauxconst numeroNettoye = phone.replace(/[^0-9]/g, '');// Liste noire de numéros spécifiques (Set pour des performances optimales)const blacklist = new Set(['0000000000', '1111111111', '2222222222','3333333333', '4444444444', '5555555555','6666666666', '7777777777', '8888888888','9999999999', '0123456789', '0987654321']);// Liste des motifs spéciaux interditsconst motifsSpeciaux = ['0101010101', '0202020202', '0303030303','0404040404', '0505050505', '0606060606','0707070707', '0909090909'];// Vérifier la longueur (10 chiffres)if (blacklist.has(numeroNettoye)|| (numeroNettoye.length !== 0 && numeroNettoye.length !== 10)|| (numeroNettoye.length !== 0 && !/^0[1-79]/.test(numeroNettoye))|| motifsSpeciaux.includes(numeroNettoye)|| /(\d)\1{7,}|^(\d)\1{9}$/.test(numeroNettoye)|| /(\d{2})\1{3,}/.test(numeroNettoye)) {$("#demande_clientTelephone").after("<ul class='form-errors'><li>Veuillez saisir un téléphone valide.</li></ul>");if (form_demande_validated) {$('#demande_clientTelephone').focus();$('html, body').animate({ scrollTop: $('#demande_clientTelephone').offset().top - 110}, 50);}form_demande_validated = false;}const submitButton = $("form button");if (form_demande_validated) {submitButton.prop('disabled', true);submitButton.text('Envoi en cours…');$('form').submit();}return form_demande_validated;}</script>