// Fonction de blocage de la saisie si elle n'est pas conforme function bloque(formulaire,champ) { // Creation d'un raccourci pour manipuler le champ var controle = eval('document.' + formulaire + '.' + champ); // On se place sur le champ incrimine controle.focus(); // On selectionne le contenu pour faciliter la reprise de la saisie controle.select(); } // Fonction de controle des champs vides // Debut du message qui sera affiche en cas d'un ou plusieurs champ(s) vide(s) var mess = "Les champs suivants sont necessaires au traitement de votre demande :\n"; // Copie pour reinitialisation var mess_init = "Les champs suivants sont necessaires au traitement de votre demande :\n"; // Variable marquant l'erreur (0 : tout va bien, 1 : blocage demande) var necessaire = 0; function vide(formulaire,champ,alerte) { // Creation d'un raccourci pour manipuler le champ a tester var controle = eval('document.' + formulaire + '.' + champ); // Si c'est un champ 'text' if ( controle.type == 'text' ) { // Et que la valeur du champ comporte moins de 1 caractere (vide) if ( controle.value.length < 1 ) { // On ajoute l'intitule du champ dans le message d'erreur mess += alerte; mess += "\n"; // On marque qu'il ne faut pas valider le formulaire necessaire = 1; } } // Si c'est un champ de type mot de passe if ( controle.type == 'password' ) { if ( controle.value.length < 1 ) { mess += alerte; mess += "\n"; necessaire = 1; } } // Si c'est un champ de type texte multilignes if ( controle.type == 'textarea' ) { if ( controle.value.length < 1 ) { mess += alerte; mess += "\n"; necessaire = 1; } } // Si c'est une liste if ( controle.type == 'select-one' ) { // Si c'est le premier element qui est selectionne (element vide a indiquer dans le HTML) if ( controle.options[0].selected ) { mess += alerte; mess += "\n"; necessaire = 1; } } // Si c'est une case a cocher if ( controle.type == 'checkbox' ) { // Quand elle est cochee, l'etat est 'true', ici on cherche l'inverse (false) if (!controle.status) { mess += alerte; mess += "\n"; necessaire = 1; } } } // Fonction pour le test des boutons radio function vide_radio(formulaire,champ,alerte) { // Creation d'un raccourci pour manipuler le champ a tester var controle = eval('document.' + formulaire + '.' + champ); // On declare par defaut que les champs ne sont pas coches, var non = "hs"; for ( i = 0; i < controle.length; i++ ) { // Si on trouve un bouton coche, on le marque if (controle[i].status) { non = "ok"; } } // Si on n'a pas marque un champ comme 'coche' (ok) if ( non != "ok" ) { mess += alerte; mess += "\n"; necessaire = 1; } } // Fonction de validation du formulaire function resultat(formulaire, reload) { //Si une des dates est inférieure à une autre if ( necessaire == 2 ) { alert('Verifier les dates !'); } // Si on a marque qu'au moins un champ etait vide if ( necessaire == 1 ) { // Affichage du message d'erreur avec tous les champs en erreur alert(mess); } // Si aucun champ n'est vide if ( necessaire == 0 ) { var formu = eval('document.' + formulaire); // Validation du formulaire formu.submit(); if ( reload == 1 ) { document.location.reload();return(false); } } // Quoi qu'il arrive, on re-initialise le message d'erreur pour permettre un autre passage des tests mess = mess_init; necessaire = 0; } // Fonction de controle de validite de la saisie // Creation d'une variable pour marquer s'il y a incoherence de saisie ou pas var probleme = 0; function validite(formulaire,champ,format,mini,maxi) { // Initialisation de la variable probleme = 0; // Les differents tests possibles : // On affecte a la variable 'RE' le test d'expression reguliere souhaite // A : alphabetique if ( format == "A" ) { RE = /^([A-Za-z]+[ ]*[-]*[A-Za-z]*)+$/;} // AN : alphanumerique if ( format == "AN" ) { RE = /^[A-Za-zàâäéèêëîïôùûç\s,'0-9\-]+$/;} // N : numerique if ( format == "N" ) { RE = /^\d+$/;} // CP : code postal francais (5 chiffres) if ( format == "CP" ) { RE = /^\d{5}$/;} // D : Date (xx/xx/xx ou xx/xx/xxxx ou xx-xx-xx ou xx-xx-xxxx) if ( format == "D" ) { RE = /^\d{2}([\/]|[\-])+\d{2}([\/]|[\-])+\d{2}(\d{2})*$/;} // EMAIL : email if ( format == "EMAIL" ) { RE = /^[A-Za-z0-9\.\-_]+[@][A-Za-z0-9\-\.]+[\.][A-Za-z][A-Za-z][A-Za-z]?$/;} // Creation d'un raccourci pour manipuler le champ a tester var controle = eval('document.' + formulaire + '.' + champ); // On ne fera les tests que si le champ est rempli d'au moins un caractere (pas vide) if (controle.value.length > 0) { // Si on ne trouve pas dans le champ l'expression reguliere recherchee if (!RE.test(controle.value)) { // Envoi d'une alerte alert('Votre saisie est incorrecte.'); // On marque que la saisie n'est pas coherente probleme = 1; } // Tests de longueur du champ (nombre de caracteres saisis) // Si il a ete specifie '0', le test n'est pas effectue if ( mini != 0 ) { // Si la longueur de la saisie est inferieure au minimum demande if ( controle.value.length < mini ) { // Envoi d'une alerte alert('Vous devez saisir au moins ' + mini + ' caracteres.'); probleme = 1; } } // Si la longueur de la saisie est superieure au maximum demande if ( maxi != 0 ) { if ( controle.value.length > maxi ) { alert('Vous ne devez pas saisir plus de ' + maxi + ' caracteres.'); probleme = 1; } } // Si on a marque qu'il y avait un probleme if ( probleme == 1 ) { // On active le blocage du champ bloque(formulaire,champ); } } } // Fonction de verification d'une plage de nombres (entre X et Y) function check_num(formulaire,champ,plancher,plafond) { // Creation d'un raccourci pour manipuler le champ a tester var controle = eval('document.' + formulaire + '.' + champ); // Si la valeur de la saisie est inferieure au plancher demande if ( controle.value < plancher ) { // Envoi d'une alerte alert('Votre saisie ne doit pas etre inferieure a ' + plancher + '.'); // On active le blocage du champ bloque(formulaire,champ); } // Si la valeur de la saisie est superieure au plafond demande if ( controle.value > plafond ) { alert('Votre saisie ne doit pas etre superieure a ' + plafond + '.'); bloque(formulaire,champ); } } // Fonction de vérification de la date de déclaration function check_acc(formulaire,champ1) { necessaire=0; // Création du raccourcis pour manipuler le champ var premd = eval('document.' + formulaire + '.' + champ1); var j1 = premd.value.substr(0,2); var m1 = premd.value.substr(3,2); var a1 = premd.value.substr(6); var d1 = a1 + m1 + j1; var d2 = '20050101'; // Si la date de l'accident est antérieure au 01012005 if ( d1 < d2 ) { // Envoi d'une alerte alert('La date de survenance ne peut être antérieure au 1er janvier 2005.'); // On active le blocage du champ bloque(formulaire,champ1); necessaire = 2; } else{ necessaire=0; } } // Fonction de verification d'une plage de dates (entre date1 et date2 , et entre date2 et date3) function check_dat(formulaire,champ1,champ2,champ3) { necessaire=0; // Creation de trois raccourcis pour manipuler les champ à comparer var premd = eval('document.' + formulaire + '.' + champ1); var deuzd = eval('document.' + formulaire + '.' + champ2); var trezd = eval('document.' + formulaire + '.' + champ3); var j1 = premd.value.substr(0,2); var m1 = premd.value.substr(3,2); var a1 = premd.value.substr(6); var j2 = deuzd.value.substr(0,2); var m2 = deuzd.value.substr(3,2); var a2 = deuzd.value.substr(6); var j3 = trezd.value.substr(0,2); var m3 = trezd.value.substr(3,2); var a3 = trezd.value.substr(6); var d1 = a1 + m1 + j1; var d2 = a2 + m2 + j2; var d3 = a3 + m3 + j3; // Si la date d'arrêt est antérieure à la date d'accident (de survenance) if ( d1 > d2 ) { // Envoi d'une alerte alert('La date de début de certificat ne peut pas être antérieure à la date de survenance.'); // On active le blocage du champ bloque(formulaire,champ2); necessaire = 2; } else{ necessaire=0; } // Si la date de fin est antérieure à la date de début d'arrêt if ( d2 > d3 ) { alert('La date de fin ne peut pas être antérieure à la date de début de certificat'); // On active le blocage du champ bloque(formulaire,champ3); necessaire = 2; } else{ necessaire=0; } } // Fonction de verification d'une plage de dates (entre date1 et date2 , et entre date2 et date3) function check_dat_ren(formulaire,champ1,champ2,champ3) { necessaire = 0; // Creation de trois raccourcis pour manipuler les champ à comparer var premd = eval('document.' + formulaire + '.' + champ1); var deuzd = eval('document.' + formulaire + '.' + champ2); var trezd = eval('document.' + formulaire + '.' + champ3); var j1 = premd.value.substr(0,2); var m1 = premd.value.substr(3,2); var a1 = premd.value.substr(6); var j2 = deuzd.value.substr(0,2); var m2 = deuzd.value.substr(3,2); var a2 = deuzd.value.substr(6); var j3 = trezd.value.substr(0,2); var m3 = trezd.value.substr(3,2); var a3 = trezd.value.substr(6); var d1 = a1 + m1 + j1; var d2 = a2 + m2 + j2; var d3 = a3 + m3 + j3; // Si la date de renouvellement est antérieure à la date de fin de certificat précédent if ( d1 > d2 ) { // Envoi d'une alerte alert('La date de début de certificat de renouvellement ne peut pas être antérieure à la date de fin du certificat précédent.'); // On active le blocage du champ //bloque(formulaire,champ2); necessaire = 2; } else{ necessaire=0; } // Si la date de fin est antérieure à la date de début d'arrêt if ( d2 > d3 ) { alert('La date de fin ne peut pas être antérieure à la date de début de certificat'); // On active le blocage du champ //bloque(formulaire,champ3); necessaire = 2; } else{ necessaire=0; } } // Fonction pour verifier la coherence de deux saisies de mot de passe // Cette fonction se declenche a partir du second champ uniquement function check_pw(formulaire,champ1,champ2) { // Creation de deux raccourcis pour manipuler les champ a comparer var prems = eval('document.' + formulaire + '.' + champ1); var deuze = eval('document.' + formulaire + '.' + champ2); // Si le premier champ n'est pas rempli if (!prems.value) { // Envoi d'une alerte alert('Vous n\'avez pas saisi votre mot de passe'); // On active le blocage du champ bloque(formulaire,champ1); } // Si le premier champ est rempli else { // Si la saisie des deux champ est differente if ( prems.value != deuze.value ) { // Envoi d'une alerte alert('La confirmation de votre mot de passe n\'est pas exacte.'); // Reinitialisation des deux champs deuze.value = ""; prems.value = ""; // On active le blocage du champ bloque(formulaire,champ1); } } }