/*********************************************** * sefi.js : JavaScript utilitaire commun ***********************************************/ // variables diverses var dt ; /********************************************************************************** * Fonctions de contrôle de saisie **********************************************************************************/ /* * testdate : vérifie la validité syntaxique (jj/mm/aaaa) et semantique d'une date * arguments : - chaine contenant la date à contrôler * retour : - true=erreur * - false=ok */ function testdate(val) { // la date doit être de la forme : jj/mm/aaaa, sinon on refuse var res = val.match(/^\s*(\d\d?)\/(\d\d?)\/(\d{4})\s*$/) ; if ( res == null ) { return (true) ; } // on récupère les champs jj, mm et aaaa jd = res[1] - 0 ; jm = res[2] - 0 ; jm-- ; jy = res[3] - 0 ; // on va maintenant créer un objet date avec ces champs : est-il correct ? // l'objet "dt" est utilisé pour que la fonction appelante puisse récupérer cet objet dt = new Date (jy,jm,jd,23,59,59) ; dd = dt.getDate() ; dm = dt.getMonth() ; dy = dt.getFullYear() ; // on compare maintenant la saisie et les éléments de l'objet date if ( (dd != jd) || (dm != jm) || (dy != jy) ) { return (true) ; } // tout est OK, pas d'erreur ! return (false) ; } /* * test2date : vérifie la validité syntaxique (jj/mm/aaaa) et semantique d'une date et vérifie * sa postériorité par rapport à une autre date (date fin >= date début) * arguments : - chaine contenant la date à contrôler * - chaine date de référence devant être antérieure à la date à contrôler * retour : - true=erreur * - false=ok */ function test2date(dfin,ddeb) { // on vérifie d'abord la validité des dates fournies if ( testdate (ddeb) ) { return (true) ; } dtdeb = dt ; if ( testdate (dfin) ) { return (true) ; } dtfin = dt ; // on compare les objets date récupérés if ( dtdeb.getTime() > dtfin.getTime() ) { return (true) ; } return (false) ; } /* * dateechue : vérifie si une date (jj/mm/aaaa) est échue ou non * arguments : - chaine contenant la date à contrôler * retour : - true=date échue (ou date invalide) * - false=date non échue */ function dateechue(val) { // on vérifie d'abord la validité de la date fournie if ( testdate (val) ) { return (true) ; } // on compare l'objet date récupéré à la date du jour now = new Date() ; if ( dt.getTime() > now.getTime() ) { return (true) ; } return (false) ; } /* * testmail : vérifie la validité syntaxique d'une adresse e-mail * arguments : - chaine contenant la date à contrôler * retour : - true=erreur * - false=ok */ function testmail (val) { for (var j=1 ; j<(val.length) ; j++) { if (val.charAt(j)=='@') { if (j<(val.length-4)) { for (var k=j ; k<(val.length-2) ; k++) { if (val.charAt(k)=='.') return false; } } } } // La RegExp la plus simple qui soit pour vérifier une adresse e-mail emailpat = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9])+(\.[a-zA-Z0-9_-]+)+$/; if( !emailpat.test(val) ) { return true ; } return false; } /* * testnumbers : vérifie la validité syntaxique et semantique d'un nombre * arguments : - champ contenant le nombre à contrôler * - longueur fixe attendue * retour : - true=erreur * - false=ok */ function testnumbers(field, len) { var val = field.value; if (len) { if (val.length != len) { return true; } } if ( val.match (/^\d+$/) == null ) { return true ; } return false; } /* * testphone : vérifie la validité syntaxique et semantique d'un numéro de téléphone * arguments : - champ contenant le numéro à contrôler * retour : - true=erreur * - false=ok */ function testphone(field) { if ( field.value.match (/^[\d]*$/) ) { return (false) ; } return (true) ; } /* * testtahitilong : vérifie la validité syntaxique et semantique d'un numéro TAHITI long * arguments : - champ contenant le numéro à contrôler * retour : - true=erreur * - false=ok */ function testtahitilong (field) { if ( field.value.match (/^\d{9}$/i) || field.value.match (/^[A-Z]?\d{8}$/i)) { return (false) ; } return (true) ; } /* * testtahiticourt : vérifie la validité syntaxique et semantique d'un numéro TAHITI court * arguments : - champ contenant le numéro à contrôler * retour : - true=erreur * - false=ok */ function testtahiticourt (field) { if ( field.value.match (/^\d{6}$/i) || field.value.match (/^[A-Z]?\d{5}$/i)) { return (false) ; } return (true) ; } /* * testape : vérifie la validité syntaxique et semantique d'un code APE * arguments : - champ contenant le numéro à contrôler * retour : - true=erreur * - false=ok */ function testape (field) { if ( field.value.match (/^[A-Z0-9]{5}$/i) ) { return (false) ; } return (true) ; } /* * testdn : vérifie la validité syntaxique et semantique d'un numéroDN CPS * arguments : - champ contenant le numéro à contrôler * retour : - true=erreur * - false=ok */ function testdn (field) { if ( field.value.match (/^\d{7}$/i) || field.value.match (/^[A-Z]?\d{6}$/i)) { return (false) ; } return (true) ; } /* * testpassword : vérifie la validité syntaxique et semantique d'un mot de passe * arguments : - chaine contenant le mot de passe à contrôler * retour : - true=erreur * - false=ok */ function testpassword (val) { var psw = new String(val); var pswindex1 = psw.indexOf("("); var pswindex2 = psw.indexOf(")"); var pswindex3 = psw.indexOf("#"); var pswindex4 = psw.indexOf("&"); var pswindex5 = psw.indexOf("~"); var pswindex6 = psw.indexOf("*"); var pswindex7 = psw.indexOf("="); var pswindex8 = psw.indexOf("}"); var pswindex9 = psw.indexOf("{"); if ((pswindex1 !=-1) || (pswindex2 !=-1) || (pswindex3 !=-1) || (pswindex4 !=-1) || (pswindex5 !=-1) || (pswindex6 !=-1) || (pswindex7 !=-1) || (pswindex8 !=-1) || (pswindex9 !=-1)) { return true; } else { return false; } } /* * testeniveau : vérifie la validité du niveau de niveau d'études par rapport au niveau de diplôme * arguments : - champ contenant le niveau de niveau d'études * - champ contenant le niveaude diplôme * retour : - true=erreur * - false=ok * * Les niveaux sont notés, dans l'ordre croissant de niveau : 0 (sans) / 6 / 5,5 / 5 / 4 / 3 / 2 / 1 (le plus élevé) * Le niveau de niveau d'études doit être supérieur ou égal (en valeur) au niveau de diplôme */ function testeniveau (fieldNiveau, fieldDiplome) { if (fieldDiplome.value == "0") { // sans diplôme : tout niveau d'études est ok return (false) ; } if ( fieldNiveau.value <= fieldDiplome.value ) { return (false) ; } return (true) ; } /********************************************************************************** * Fonctions de récupération/manipulation des champs de saisie complexes **********************************************************************************/ function GetSelectValue(selectObject) { return selectObject.options[selectObject.selectedIndex].value; } function GetSelectText(selectObject) { return selectObject.options[selectObject.selectedIndex].text; } function GetRadioButton(RadioButtons) { var result=""; for (var i=0;i maxlimit) field.value = field.value.substring(0, maxlimit); } function message_recherche() { alert("Pour modifier ce champ, veuillez utiliser l'icône de recherche en forme de point d'interrogation (?)") ; } /********************************************************************************** * Fonctions diverses propres au site SEFI **********************************************************************************/ function RetourAbonnementD(n) { var form = document.forms["_AbonnementD"] ; form.Move.value=n; form.submit() } function RetourAbonnementE(n) { var form = document.forms["_AbonnementE"] ; form.Move.value=n; form.submit() } function RetourOffre(n) { var form = document.forms["_mCreaOffreWeb"] ; form.Move.value=n; form.submit() } var win = null ; function HelpFonction (fld_code,fld_lib,db) { // alert ("Vous avez demandé de l'aide pour le champ " + fld_lib + " dans " + db) ; champ_fct_metier = fld_code ; champ_metier = fld_lib ; src = db + "RechercheMetierWeb?OpenForm" ; if ( (win == null) || (win.closed) ) { win = window.open(src,"METIER","fullscreen=no,resizable=yes,status=yes,scrollbars=yes,toolbar=no,menubar=no"); win.resizeTo (650,570) ; win.moveTo (10,10) ; } else { win.document.close() ; win.document.open() ; win.location = src ; } win.focus() ; } function HelpDiplome (fld_code_specialite,fld_lib_diplome,fld_lib_domaine,fld_lib_specialite,db,fld_niv_diplome) { // alert ("Vous avez demandé de l'aide pour le champ specialite diplome " + fld_code_specialite + " dans " + db) ; champ_code_specialite = fld_code_specialite ; champ_lib_diplome = fld_lib_diplome ; champ_lib_domaine = fld_lib_domaine ; champ_lib_specialite = fld_lib_specialite ; champ_niv_diplome = fld_niv_diplome ; champ_niveau = 0 ; src = db + "RechercheDiplomeWeb?OpenForm" ; if ( (win == null) || (win.closed) ) { win = window.open(src,"DIPLOME","fullscreen=no,resizable=yes,status=yes,scrollbars=yes,toolbar=no,menubar=no"); win.resizeTo (650,570) ; win.moveTo (10,10) ; } else { win.document.close() ; win.document.open() ; win.location = src ; } win.focus() ; } function HelpNiveau (fld_code_specialite,fld_lib_diplome,fld_lib_domaine,fld_lib_specialite,db,fld_niv_diplome) { // alert ("Vous avez demandé de l'aide pour le champ specialite niveau" + fld_code_specialite + " dans " + db) ; champ_code_specialite = fld_code_specialite ; champ_lib_diplome = fld_lib_diplome ; champ_lib_domaine = fld_lib_domaine ; champ_lib_specialite = fld_lib_specialite ; champ_niv_diplome = fld_niv_diplome ; champ_niveau = 1 ; src = db + "RechercheDiplomeWeb?OpenForm" ; if ( (win == null) || (win.closed) ) { win = window.open(src,"DIPLOME","fullscreen=no,resizable=yes,status=yes,scrollbars=yes,toolbar=no,menubar=no"); win.resizeTo (650,570) ; win.moveTo (10,10) ; } else { win.document.close() ; win.document.open() ; win.location = src ; } win.focus() ; } function MM_findObj(n, d) { //v4.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i