//#11.00Ad WDLIB.JS //VersionVI: 30F110035f // Le seul support technique disponible pour cette librairie est // accessible a travers le service "Assistance Directe". // Liste des messages d'erreurs qui peuvent etre affiches : var sErreur = "La valeur saisie est incorrecte."; /////////////////////////////////////////////////////////////////////// function bIsNetscape() { return ( navigator.appName=="Netscape" ) } /////////////////////////////////////////////////////////////////////// function bIsExplorer() { return ( navigator.appName=="Microsoft Internet Explorer" ) } /////////////////////////////////////////////////////////////////////// function bIsLetter (c) { return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) || ( c == "á" ) || ( c == "à" ) || ( c == "â" ) || ( c == "é" ) || ( c == "è" ) || ( c == "ê" ) || ( c == "ï" ) || ( c == "î" ) || ( c == "ö" ) || ( c == "ô" ) || ( c == "ü" ) || ( c == "ù" ) || ( c == "û" ) || ( c == "ç" ) ) } /////////////////////////////////////////////////////////////////////// function bIsDigit (c) { return ( (c >= "0") && (c <= "9") ) } /////////////////////////////////////////////////////////////////////// function bIsSepTel(c) { return ( ( c == " " ) || ( c == "/" ) || ( c == "\\" ) || ( c == "." ) ) } /////////////////////////////////////////////////////////////////////// function bIsSymbol(c) { return ( ( c == "," ) || ( c == "." ) || ( c == "+" ) || ( c == "-" ) || ( c == " " ) || ( c == "*" ) || ( c == "/" ) ) } /////////////////////////////////////////////////////////////////////// function bIsControl(c) { return ( c < " " ) } /////////////////////////////////////////////////////////////////////// function bIsSigne(c) { return (c=="+") || (c=="-") } /////////////////////////////////////////////////////////////////////// function GetChp(evt) { if (bIsExplorer()) return evt.srcElement; if (bIsNetscape()) return evt.target; return null; } /////////////////////////////////////////////////////////////////////// function GetCar(evt) { if (bIsExplorer()) return String.fromCharCode(evt.keyCode); if (bIsNetscape()) return String.fromCharCode(evt.which);; return ""; } /////////////////////////////////////////////////////////////////////// function ValRetIE(evt,test) { if (test || (evt.keyCode == 13)) { return evt.keyCode; } return test; } /////////////////////////////////////////////////////////////////////// function ValRet(evt,test) { if (bIsNetscape()) return test || bIsControl(GetCar(evt)); if (bIsExplorer()) return evt.returnValue = ValRetIE(evt,test); return true; } /////////////////////////////////////////////////////////////////////// function GetPositionCaret(chp) { var p = 0; if (document.selection) { chp.focus(); var s = document.selection.createRange(); s.moveStart ('character',-chp.value.length); p = s.text.length; } else if (chp.selectionStart || (chp.selectionStart == '0')) p = chp.selectionStart; return p; } /////////////////////////////////////////////////////////////////////// function SetPositionCaret(chp,pos) { if(chp.setSelectionRange) { chp.focus(); chp.setSelectionRange(pos,pos); } else if (chp.createTextRange) { var s = chp.createTextRange(); s.collapse(true); s.moveEnd('character', pos); s.moveStart('character', pos); s.select(); } } /////////////////////////////////////////////////////////////////////// function GetSel (chp) { if (document.selection) { chp.focus(); var s = document.selection.createRange(); return s.text; } if (chp.selectionStart || (chp.selectionStart == '0')) return chp.value.substring(chp.selectionStart,chp.selectionEnd); return ""; } /////////////////////////////////////////////////////////////////////// function GetDebSel (chp) { if (document.selection) { chp.focus(); var s = document.selection.createRange(); var l = s.text.length; s.moveStart ('character',-chp.value.length); return s.text.length - l; } if (chp.selectionStart || (chp.selectionStart == '0')) return ctrl.selectionStart; return 0; } /////////////////////////////////////////////////////////////////////// function GetPositionCaretDetSel(ch) { var j = GetPositionCaret(ch); var l = GetSel(ch).length; if (l > 0) { var ds = GetDebSel(ch); ch.value = ch.value.substring(0,ds) + ch.value.substring(ds + l,ch.value.length); j = ds; SetPositionCaret(ch,j); } return j; } /////////////////////////////////////////////////////////////////////// function remplacePos(s,i,r) { return s.substring(0,i) + r + s.substring(i + 1,s.length); } /////////////////////////////////////////////////////////////////////// function remplace(s,c,r,d) { var i = s.indexOf(c,d); if (i < 0) return s; return remplacePos(s,i,r); } /////////////////////////////////////////////////////////////////////// function InserePos(s,i,r) { return s.substring(0,i) + r + s.substring(i,s.length); } /////////////////////////////////////////////////////////////////////// function init(evt,val) { var c = GetChp(evt); if (c.value != "") return; c.value = val; SetPositionCaret(c,0); } /////////////////////////////////////////////////////////////////////// function reinit(evt,val) { var c = GetChp(evt); if (c.value != val) return; c.value = ""; } /////////////////////////////////////////////////////////////////////// function ControleSaisie(s,m,d,sep) { if (s.charAt(d + 1) == sep) return s; var max = 0; var c = m.charAt(d); if (c == "J") max = 31; else if ((c == "M") && (sep == "/")) max = 12; else if (c == "H") max = 23; else if (((c == "M") && (sep = ":")) || (c == "S")) max = 59; else if (c == "A") { if (((d > 0) && (s.charAt(d - 1) != sep)) || (s.length <= (d + 2)) || (s.charAt(d + 2) == sep)) return s; var dat = new Date(); var y = dat.getYear(); if (y < 1900) y += 1900; var ymin = y - 99; var p = s.charAt(d); var mil = parseInt(p) * 1000; if (((mil + 999) >= ymin) && (mil <= y)) return s; var sie = Math.floor(y / 100); return s.substring(0,d) + "" + (sie - ((((sie * 100) + (parseInt(p) * 10)) > y) ? 1 : 0)) + s.charAt(d) + s.substring(d + 3,s.length); } else return s; if (parseInt(s.charAt(d)) * 10 > max) s = s.substring(0,d) + "0" + s.charAt(d) + s.substring(d + 2,s.length); return s; } /////////////////////////////////////////////////////////////////////// function CompleteSaisie(evt,m,sep) { var car = GetCar(evt); var ch = GetChp(evt); var res = true; if (bIsNetscape()) { res = ( bIsDigit(car) || (car==sep) || bIsControl(car) ); if ((!res) || bIsControl(car)) return res; } if (bIsExplorer()) { evt.returnValue = ValRetIE(evt,bIsDigit(car) || (car==sep)); if (!evt.returnValue || (evt.keyCode == 13)) return res; } var j = GetPositionCaretDetSel(ch); var i = 0; var s = m; var d = 0; if ((ch.value.charAt(j) == sep) && (j > 0) && bIsDigit(ch.value.charAt(j - 1))) j++; var jd = j; while (i < Math.max(jd + 1,ch.value.length)) { var c = ((i == jd) && (bIsDigit(car) || (i > ch.value.length))) ? car : ch.value.charAt(i); if (bIsDigit(c)) { var u = 0; for (u = d; u < s.length; u++) if ((s.charAt(u) != sep) && (!bIsDigit(s.charAt(u)))) { s = remplacePos(s,u,c); break; }; } var b = (ch.value.charAt(i) == sep); if (i == jd) { var t = s; s = ControleSaisie(s,m,d,sep); var k = d + 1; while ((k < s.length) && (s.charAt(k) != t.charAt(k))) { if ((!b) && ((i + 1) < ch.value.length) && (ch.value.charAt(i + 1) != sep)) i++; j++; k++; } } if (b && ((d = s.indexOf(sep,d)) >= 0)) d++; i++; } ch.value = s; j++; if (ch.value.charAt(j) == sep) j++; SetPositionCaret(ch,j); if (bIsExplorer) evt.returnValue = false; return false; } /////////////////////////////////////////////////////////////////////// function initNombre(evt,m) { var ch = GetChp(evt); var i = 0; while ((i = ch.value.indexOf(_WW_SEPMILLIER_)) >= 0) ch.value = remplacePos(ch.value,i,""); SetPositionCaret(ch,0); } /////////////////////////////////////////////////////////////////////// function reinitNombre(evt,m) { var ch = GetChp(evt); var v = ch.value.indexOf(_WW_SEPDECIMAL_); if (v < 0) v = ch.value.length; if (v < 4) return; var n = 0; var i = v; while (i-- > 0) if (bIsDigit(ch.value.charAt(i))) if ((((n++) % 3) == 0) && (n > 1)) ch.value = InserePos(ch.value,i+1,_WW_SEPMILLIER_); } /////////////////////////////////////////////////////////////////////// function VerifSaisieNombre(evt,m) { var car = GetCar(evt); var ch = GetChp(evt); var res = true; var me = 0; var md = 0; var i = 0; while ((i < m.length) && (m.charAt(i) != _WW_SEPDECIMAL_)) if (bIsDigit(m.charAt(i++))) me++; if (m.charAt(i) == _WW_SEPDECIMAL_) while (++i < m.length) if (bIsDigit(m.charAt(i))) md++; var p = GetPositionCaretDetSel(ch) var v = ch.value.indexOf(_WW_SEPDECIMAL_); if (bIsDigit(car)) { var b = (v < 0) || (p <= v); var d = b ? 0 : (v + 1); var f = (b && (v >= 0)) ? v : (ch.value.length); var n = 0; for (i = d; i < f; i++) if (bIsDigit(ch.value.charAt(i))) n++; res = n < (b ? me : md); } else if ((car == ".") || (car == ",")) { if (res = ((v < 0) && (md > 0))) { var j = 0; for (i = 0; i < p; i++) if (bIsDigit(ch.value.charAt(i))) j++; if ((res = ((j > 0) && (j <= me) && ((ch.value.length - p) <= md))) && (car != _WW_SEPDECIMAL_)) { ch.value = InserePos(ch.value,p,_WW_SEPDECIMAL_); SetPositionCaret(ch,p+1); res = false; } } } else if (car == "-") res = (ch.value.indexOf("-") < 0) && (p==0) && (m.charAt(0) == "+"); else res = false; return ValRet(evt,res); } /////////////////////////////////////////////////////////////////////// function VerifRegExp(Champ,sRegExp) { if ( parseInt(navigator.appVersion) >= 4 ) { // on cree l'objet expression reguliere a partir de la chaine : regExp = new RegExp(sRegExp); // on test si la valeur du champ est ok : var test = (Champ.value == "") || regExp.test(Champ.value); if ( ! test ) { // si non, on averti l'utilisateur : alert( sErreur ); if ( bIsExplorer() ) Champ.style.color=0xff0000; Champ.focus(); } else { if ( bIsExplorer() ) Champ.style.color=0x000000; } } return true; } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// // handler pour le masque "tout en majuscules" : function ToutEnMaj(evt) { var car; // code different pour netscape et ie : if ( bIsNetscape() ) { // conversion code ascii -> caractere : car = String.fromCharCode(evt.which); // est-ce que c'est une lettre minuscule : if ( ( car>='a' ) && ( car<='z') ) { // oui => on la convertit en majuscule : evt.which = escape(car.toUpperCase()); // et on se l'envoie : evt.target.handleEvent(evt); // mais on n'accepte pas la minuscule courante : //return false; } } if ( bIsExplorer() ) { // conversion en caractere : car = String.fromCharCode(evt.keyCode); // puis passage en majuscule et code ascii : evt.keyCode = car.toUpperCase().charCodeAt(0); } return true; } /////////////////////////////////////////////////////////////////////// function ToutEnMin(evt) { var car; if ( bIsNetscape() ) { car = String.fromCharCode(evt.which); if ( ( car>='A' ) && ( car<='Z') ) { evt.which = escape(car.toLowerCase()); evt.target.handleEvent(evt); // return false; } } if ( bIsExplorer() ) { car = String.fromCharCode(evt.keyCode); evt.keyCode = car.toLowerCase().charCodeAt(0); } return true; } /////////////////////////////////////////////////////////////////////// function Lettre(evt) { var car; if ( bIsNetscape() ) { car = String.fromCharCode(evt.which); // on accepte la touche si c'est bien une lettre : return bIsLetter(car) || bIsControl(car); } if ( bIsExplorer() ) { car = String.fromCharCode(evt.keyCode); // on accepte la touche si c'est bien une lettre : evt.returnValue = ValRetIE(evt,bIsLetter(car)); } return true; } /////////////////////////////////////////////////////////////////////// function PremiereLettreMaj(evt) { var car = GetCar(evt); var ch = GetChp(evt); var res = true; if ((car != (car = car.toUpperCase())) && (GetPositionCaretDetSel(ch) == 0)) { ch.value = InserePos(ch.value,0,car); res = false; if (bIsExplorer()) evt.returnValue = res; } return res; } /////////////////////////////////////////////////////////////////////// function LettreChiffre(evt) { var car; if ( bIsNetscape() ) { car = String.fromCharCode(evt.which); return bIsLetter(car) || bIsDigit(car) || bIsControl(car) ; } if ( bIsExplorer() ) { car = String.fromCharCode(evt.keyCode); evt.returnValue = ValRetIE(evt,bIsLetter(car) || bIsDigit(car)); } return true; } /////////////////////////////////////////////////////////////////////// function Chiffre(evt) { var car; if ( bIsNetscape() ) { car = String.fromCharCode(evt.which); return ( bIsDigit(car) || bIsControl(car) ); } if ( bIsExplorer() ) { car = String.fromCharCode(evt.keyCode); evt.returnValue = ValRetIE(evt,bIsDigit(car)); } return true; } /////////////////////////////////////////////////////////////////////// function LettreMaj(evt) { var car; if ( bIsNetscape() ) { car = String.fromCharCode(evt.which); // conversion en majuscule : car = car.toUpperCase(); // on laisse passer les caracteres de controles : if ( bIsControl(car) ) return true; // et on refuse tout ce qui n'est pas majuscule : if ( ( car<'A' ) || ( car>'Z') ) return false; } if ( bIsExplorer() ) { // on recupere le caractere frappe : car = String.fromCharCode(evt.keyCode); // conversion en majuscule : car = car.toUpperCase(); // est-ce que c'est bien une majuscule ? if ( ( car >='A' ) && ( car <='Z' ) ) // ok : on renvoi son code ascii : evt.keyCode = car.charCodeAt(0); else // sinon, on refuse : evt.returnValue = false; } return true; } /////////////////////////////////////////////////////////////////////// function LettreMajChiffre(evt) { var car; if ( bIsNetscape() ) { car = String.fromCharCode(evt.which); // conversion en majuscule : car = car.toUpperCase(); // on laisse passer les caracteres de controles : if ( bIsControl(car) ) return true; // et on refuse tout ce qui n'est pas majuscule : if ( ( ( car<'A' ) || ( car>'Z') ) && ( ! bIsDigit(car) ) ) return false; } if ( bIsExplorer() ) { // on recupere le caractere frappe : car = String.fromCharCode(evt.keyCode); // conversion en majuscule : car = car.toUpperCase(); // est-ce que c'est bien une majuscule ? if ( ( ( car >='A' ) && ( car <='Z' ) ) || ( bIsDigit(car) ) ) // ok : on renvoi son code ascii : evt.keyCode = car.charCodeAt(0); else // sinon, on refuse : evt.returnValue = false; } return true; } /////////////////////////////////////////////////////////////////////// function NumTel(evt) { var car; if ( bIsNetscape() ) { car = String.fromCharCode(evt.which); return bIsSepTel(car) || bIsDigit(car) || bIsControl(car); } if ( bIsExplorer() ) { car = String.fromCharCode(evt.keyCode); evt.returnValue = ValRetIE(evt,bIsSepTel(car) || bIsDigit(car)); } return true; } /////////////////////////////////////////////////////////////////////// function NumTelFr(evt) { var car = GetCar(evt); var ch = GetChp(evt); var res = true; var p = GetPositionCaretDetSel(ch); if ((ch.value.length < 14) && (bIsDigit(car) || (car == "."))) { if ((p == ch.value.length) && (p < 11) && (((p + 2) % 3) == 0)) { ch.value = InserePos(ch.value,p,car + "."); res = false; } } else res = false; return ValRet(evt,res); } /////////////////////////////////////////////////////////////////////// function ChiffreSymbol(evt) { var car; if ( bIsNetscape() ) { car = String.fromCharCode(evt.which); return bIsSymbol(car) || bIsDigit(car) || bIsControl(car); } if ( bIsExplorer() ) { car = String.fromCharCode(evt.keyCode); evt.returnValue = ValRetIE(evt,bIsSymbol(car) || bIsDigit(car)); } return true; } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// function ChiffreSigne(evt) { var car; if ( bIsNetscape() ) { car = String.fromCharCode(evt.which); return ( bIsDigit(car) || bIsSigne(car) || (car==_WW_SEPMILLIER_) || bIsControl(car) ); } if ( bIsExplorer() ) { car = String.fromCharCode(evt.keyCode); evt.returnValue = ValRetIE(evt,bIsDigit(car) || bIsSigne(car) || (car==_WW_SEPMILLIER_)); } return true; } /////////////////////////////////////////////////////////////////////// function ChiffreVirgule(evt) { var car; if ( bIsNetscape() ) { car = String.fromCharCode(evt.which); return ( bIsDigit(car) || (car==_WW_SEPDECIMAL_) || (car==_WW_SEPMILLIER_) || bIsControl(car) ); } if ( bIsExplorer() ) { car = String.fromCharCode(evt.keyCode); evt.returnValue = ValRetIE(evt,bIsDigit(car) || (car==_WW_SEPDECIMAL_) || (car==_WW_SEPMILLIER_) || (car==",")); } return true; } /////////////////////////////////////////////////////////////////////// function ChiffreSigneVirgule(evt) { var car; if ( bIsNetscape() ) { car = String.fromCharCode(evt.which); return ( bIsDigit(car) || bIsSigne(car) || (car==_WW_SEPDECIMAL_) || (car==_WW_SEPMILLIER_) || bIsControl(car) ); } if ( bIsExplorer() ) { car = String.fromCharCode(evt.keyCode); evt.returnValue = ValRetIE(evt,bIsDigit(car) || bIsSigne(car) || (car==_WW_SEPDECIMAL_) || (car==_WW_SEPMILLIER_) || (car==",")); } return true; } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// function HHMM(evt,m) { return CompleteSaisie(evt,m,":"); } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// function JJMMAA(evt,m) { return CompleteSaisie(evt,m,"/"); } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// function Euro(evt) { var car; if ( bIsNetscape() ) { car = String.fromCharCode(evt.which); return bIsLetter(car) || bIsDigit(car) || (car==_WW_SEPMILLIER_) || (car==_WW_SEPDECIMAL_) || bIsControl(car); } if ( bIsExplorer() ) { car = String.fromCharCode(evt.keyCode); evt.returnValue = ValRetIE(evt,bIsLetter(car) || bIsDigit(car) || (car==_WW_SEPMILLIER_) || (car==_WW_SEPDECIMAL_)); } return true; } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// function Email(evt) { var car = GetCar(evt); var ch = GetChp(evt); var res = (car != "\"") && (car != "(") && (car != ")") && (car != "\\") && (car != "<") && (car != ">") && (car != ",") && (car != ";") && (car != ":") && ((car != "@") || (ch.value.indexOf("@") < 0)); if (bIsExplorer()) evt.returnValue = res; return res; } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// function CheminFichier(evt) { var car = GetCar(evt); var res = (car != "\"") && (car != "*") && (car != "?") && (car != "<") && (car != ">") && (car != "|"); if (bIsExplorer()) evt.returnValue = res; return res; } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// function Fichier(evt) { var car = GetCar(evt); var res = CheminFichier(evt) && (car != "\\") && (car != "/") && (car != ":"); if (bIsExplorer()) evt.returnValue = res; return res; } /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// function Duree(evt,m) { var car = GetCar(evt); return ValRet(evt,bIsDigit(car) || (car == "j") || (car == "h") || (car == "m") || (car == "s") || ((m.indexOf(car) >= 0) && (car != "+") && (car != "J") && (car != "H") && (car != "M") && (car != "S") && (car != "C"))); }