window.addEventListener("load", function(event) {
if(document.getElementById("field_adresse")){
$('#field_adresse').autocomplete({
clearButton: false,
source:function( request, response ) {
$.ajax({
url: "https://data.geopf.fr/geocodage/search?q="+request.term+"&autocomplete=0",
dataType: "json",
success: function( data ) {
response( $.map( data.features, function(item, i) {
if(item.properties){
return {
name: item.properties.name,
value: item.properties.label,
label: item.properties.label,
postcode: item.properties.postcode,
city: item.properties.city,
coord0: item.geometry.coordinates[0],
coord1: item.geometry.coordinates[1]
}
}
}));
}
});
},
selectFirst: true,
minLength: 4,
delay: 100,
select: function( event, ui ) {
console.log( ui.item ?
"Selected: " + ui.item.coord1 :
"Nothing selected, input was " + this.value);
document.getElementById("field_ville").value = ui.item.city;
document.getElementById("field_code_postal").value = ui.item.postcode;
document.getElementById("field_coord0").value = ui.item.coord0;
document.getElementById("field_coord1").value = ui.item.coord1;
var dptArray = [];
dptArray["971"] = 98;dptArray["972"] = 99;dptArray["973"] = 100;dptArray["974"] = 101;dptArray["75"] = 77;dptArray["77"] = 79;dptArray["78"] = 80;dptArray["91"] = 93;dptArray["92"] = 94;dptArray["93"] = 95;dptArray["94"] = 96;dptArray["95"] = 97;dptArray["18"] = 19;dptArray["28"] = 30;dptArray["36"] = 38;dptArray["37"] = 39;dptArray["41"] = 43;dptArray["45"] = 47;dptArray["44"] = 46;dptArray["49"] = 51;dptArray["53"] = 55;dptArray["72"] = 74;dptArray["85"] = 87;dptArray["22"] = 24;dptArray["29"] = 31;dptArray["35"] = 37;dptArray["56"] = 58;dptArray["04"] = 5;dptArray["05"] = 6;dptArray["06"] = 7;dptArray["13"] = 14;dptArray["83"] = 85;dptArray["84"] = 86;dptArray["2A"] = 21;dptArray["2B"] = 22;dptArray["21"] = 23;dptArray["25"] = 27;dptArray["39"] = 41;dptArray["58"] = 60;dptArray["70"] = 72;dptArray["71"] = 73;dptArray["89"] = 91;dptArray["90"] = 92;dptArray["14"] = 15;dptArray["27"] = 29;dptArray["50"] = 52;dptArray["61"] = 63;dptArray["76"] = 78;dptArray["02"] = 3;dptArray["59"] = 61;dptArray["60"] = 62;dptArray["62"] = 64;dptArray["80"] = 82;dptArray["08"] = 9;dptArray["10"] = 11;dptArray["51"] = 53;dptArray["52"] = 54;dptArray["54"] = 56;dptArray["55"] = 57;dptArray["57"] = 59;dptArray["67"] = 69;dptArray["68"] = 70;dptArray["88"] = 90;dptArray["16"] = 17;dptArray["17"] = 18;dptArray["19"] = 20;dptArray["23"] = 25;dptArray["24"] = 26;dptArray["33"] = 35;dptArray["40"] = 42;dptArray["47"] = 49;dptArray["64"] = 66;dptArray["79"] = 81;dptArray["86"] = 88;dptArray["87"] = 89;dptArray["09"] = 10;dptArray["11"] = 12;dptArray["12"] = 13;dptArray["30"] = 32;dptArray["31"] = 33;dptArray["32"] = 34;dptArray["34"] = 36;dptArray["46"] = 48;dptArray["48"] = 50;dptArray["65"] = 67;dptArray["66"] = 68;dptArray["81"] = 83;dptArray["82"] = 84;dptArray["01"] = 2;dptArray["03"] = 4;dptArray["07"] = 8;dptArray["15"] = 16;dptArray["26"] = 28;dptArray["38"] = 40;dptArray["42"] = 44;dptArray["43"] = 45;dptArray["63"] = 65;dptArray["69"] = 71;dptArray["73"] = 75;dptArray["74"] = 76;
cp1 = document.getElementById("field_code_postal").value.substring(0,3);
if(dptArray[cp1]){
document.getElementById("field_departement").value = dptArray[cp1];
}else{
cp1 = document.getElementById("field_code_postal").value.substring(0,2);
document.getElementById("field_departement").value = dptArray[cp1];
}
var __errAdr = document.getElementById("err_field_adresse");
if(__errAdr){ __errAdr.remove(); }
}
});
}
});
function getFileSize(id){
var el = document.getElementById(id);
return (el && el.files && el.files[0]) ? el.files[0].size : 0;
}
function hasFile(id){
var el = document.getElementById(id);
return !!(el && el.files && el.files[0]);
}
function showFieldError(fieldId, message){
var existing = document.getElementById("err_" + fieldId);
if(existing){ existing.remove(); }
var span = document.createElement("span");
span.setAttribute("id", "err_" + fieldId);
span.innerHTML = "
" + message;
var container = document.getElementById("div_" + fieldId);
if(container){ container.appendChild(span); }
var field = document.getElementById(fieldId);
if(field){ field.focus(); }
}
function testFiles(){
var sizefile = 2097152;
var sizemax = 8388608;
var fields = [
{id: 'field_carte_didentite', label: "carte d'identite"},
{id: 'field_photographie', label: "photographie"},
{id: 'field_justificatif_de_domicile', label: "justificatif de domicile"},
{id: 'field_k_bis', label: "K-bis"},
{id: 'field_doc_rib', label: "RIB"}
];
// 1) Presence : tous les fichiers doivent etre selectionnes
for(var i = 0; i < fields.length; i++){
if(!hasFile(fields[i].id)){
showFieldError(fields[i].id, "Veuillez selectionner un fichier pour : " + fields[i].label);
return false;
}
}
// 2) Taille par fichier
for(var j = 0; j < fields.length; j++){
if(getFileSize(fields[j].id) > sizefile){
showFieldError(fields[j].id, "Ce fichier est trop volumineux (maximum : " + Math.round(sizefile/1048576) + " Mo)");
return false;
}
}
// 3) Taille cumulee (garde-fou post_max_size)
var cumul = 0;
for(var k = 0; k < fields.length; k++){
cumul += getFileSize(fields[k].id);
}
if(cumul > sizemax){
showFieldError(fields[0].id, "Taille totale des documents trop elevee (" + Math.round(cumul/1048576) + " Mo). Maximum autorise : " + Math.round(sizemax/1048576) + " Mo. Veuillez reduire la taille de vos fichiers.");
return false;
}
return true;
}
function testCoordonnees(){
if(document.getElementById("field_coord0").value == "" || document.getElementById("field_coord1").value == ""){
var span = document.createElement("span");
span.innerHTML = "
Adresse non vérifiée, veuillez la resaisir et en sélectionner une en cliquant dans les propositions";
span.setAttribute("id", "err_field_adresse");
document.getElementById("div_field_adresse").appendChild(span);
document.getElementById('field_adresse').focus();
return false;
}else{
return true;
}
}
if(document.getElementById("field_doc_rib")){
document.getElementById('field_doc_rib').addEventListener("click", (event) => {
if(document.getElementById("err_field_doc_rib")){
document.getElementById("err_field_doc_rib").remove();
}
});
}
if(document.getElementById("field_k_bis")){
document.getElementById('field_k_bis').addEventListener("click", (event) => {
if(document.getElementById("err_field_k_bis")){
document.getElementById("err_field_k_bis").remove();
}
});
}
if(document.getElementById("field_justificatif_de_domicile")){
document.getElementById('field_justificatif_de_domicile').addEventListener("click", (event) => {
if(document.getElementById("err_field_justificatif_de_domicile")){
document.getElementById("err_field_justificatif_de_domicile").remove();
}
});
}
if(document.getElementById("field_photographie")){
document.getElementById('field_photographie').addEventListener("click", (event) => {
if(document.getElementById("err_field_photographie")){
document.getElementById("err_field_photographie").remove();
}
});
}
if(document.getElementById("field_carte_didentite")){
document.getElementById('field_carte_didentite').addEventListener("click", (event) => {
if(document.getElementById("err_field_carte_didentite")){
document.getElementById("err_field_carte_didentite").remove();
}
});
}
window.addEventListener("load", function(event) {
if(localStorage.getItem("easysap_adh_forms1")){
var i = 0;
var frm = JSON.parse(localStorage.getItem("easysap_adh_forms1"));
while(frm[i]){
var id = frm[i].id;
var value = frm[i].value;
var el = document.getElementById(id);
// ne pas restaurer les inputs de type file (interdit par le navigateur)
if(el && el.type !== 'file'){
el.value = value;
}
i++;
}
}
});
if(document.getElementById("pfg-form-1")){
document.getElementById('pfg-form-1').addEventListener("submit", function (event){
event.preventDefault();
localStorage.removeItem("easysap_adh_forms1");
var frmelem = [];
var i = 0;
var form = document.getElementById('pfg-form-1');
while(form.elements[i]){
var el = form.elements[i];
// ne jamais stocker les inputs de type file dans le localStorage
if(el.type !== 'file'){
frmelem.push({id: el.id, value: el.value});
}
i++;
}
localStorage.setItem("easysap_adh_forms1", JSON.stringify(frmelem));
if(testFiles() && testCoordonnees()){
form.submit();
}else{
return false;
}
});
}