/********************************************************************************************
Le textearea à contrôler
Le nombre maximum de caractères à ne pas dépasser
'''*******************************************************************************************/
function checkTextAreaMaxLength(objElement, intMaxCharateresNb){
if (objElement.value.length > intMaxCharateresNb)
{
alert("Veuillez ne saisir qu'au plus " + max + " caractères !");
objElement.value = objElement.value.substr(0, intMaxCharateresNb)
}
}
/********************************************************************************************
Vérifie que la chaîne passée en paramètre est une adresse email
Chaîne à vérifier
true si la chaîne est correctement formatée, false sinon
'''*******************************************************************************************/
function bMailIsValid(emailAddress) {
var re = /^(([^<>()[\]\\.,;: @\"]+(\.[^<>()[\]\\.,;:@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
return (re.test(emailAddress) && (emailAddress.indexOf(' ') == -1));
}
/*************************************************************************************
NOM : bVerifRegExp
DESCRIPTION : Vérifie qu'une chaîne correspond à un motif d'expression régulière donné
PARAMETRES : @sStringToCheck : Chaîne à vérifier
@sExpReg : Motif d'expression régulière à vérifier
RETOUR : vrai si le champ contient uniquement des caractères autorisés, faux sinon
*************************************************************************************/
function bVerifRegExp(sStringToCheck, sExpReg) {
var oRegExp = new RegExp(sExpReg,"g");
if (!oRegExp.test(sStringToCheck) ){
alert("L'expression [" + sStringToCheck + "] contient un(des) caractère(s) non autorisé(s).");
return false;
}
return true;
}
/*******************************************************************************
NOM : bVerifFieldAsForbiddenCharacter
DESCRIPTION : Vérifie qu'un champ possède ou non un caractère interdit
PARAMETRES : @asFormName : Nom du formulaire
@asFieldName : Nom du champ à vérifier
@asFieldLibelle : Libellé du champ à vérifier
@asForbidChar : caractère interdit
RETOUR : vrai si le champ a au moins une fois le caractère interdit, faux sinon
*******************************************************************************/
function bVerifFieldAsForbiddenCharacter(asFormName, asFieldName, asFieldLibelle, asForbidChar){
var oField = eval("document." + asFormName + "." + asFieldName)
var sFieldContent = oField.value;
if(sFieldContent.indexOf(asForbidChar) == -1){
return false;
}else{
alert("Le champ '" + asFieldLibelle + "' ne peut pas contenir le caractère '" + asForbidChar + "'");
oField.focus();
return true;
}
}
/************************************************************
NOM : bCheckFieldIsNumber
DESCRIPTION : Vérifie qu'un champ est numérique
PARAMETRES : @asFormName : Nom du formulaire
@asTxtFieldName : Nom du champ à vérifier
RETOUR : vrai si le champ n'est pas numérique, faux sinon
************************************************************/
function bCheckFieldIsNumber(asFormName, asTxtFieldName){
var oFieldName = eval("document." + asFormName + "." + asTxtFieldName);
if (oFieldName){
var iFieldValue = oFieldName.value;
if (!isNaN(iFieldValue)){
alert("Vous ne pouvez nommer un tarif sans au moins un caractère alphabétique.")
oFieldName.focus();
return false;
}else{
return true;
}
} else {
return true;
}
}
/************************************************************
NOM : bFieldIsEmpty
DESCRIPTION : Vérifie qu'un champ est rempli ou non
Ne considère que les champs dont la propriété "style.display"
n'est pas à "none"
PARAMETRES : @sForm : Nom du formulaire
@sFieldName : Nom du champ à vérifier
RETOUR : vrai si le champ est vide, faux sinon
************************************************************/
function bFieldIsEmpty(sForm, sFieldName){
try{
var oField = eval("document." + sForm + "." + sFieldName);
if(oField.tagName.toLowerCase() == "select")
{
return false;
}
if(oField.length > 1){
var bIsOneChecked = false;
for(var i=0;iVérifie la contenance d'un ensemble de champs.
Si la clé (libellé) d'un champ du tableau passé en paramètre contient
le mot "date", on vérifie que ce champ est au format date.
Si la clé(libellé) d'un champ du tableau passé en paramètre contient
le mot "email", on vérifie que ce champ est une adresse email
Nom du formulaire
Tableau regroupant les champs à vérifier.
La clé correspond au libellé affiché si le champ concerné est vide
ex : sFieldsNames["Libellé"] = NomDuChamp
Ce troisieme parametre permet de tester si la valeur à tester repond à la paternne de check.
vrai: vérification est ok
faux: un élément au moins n'est pas valide
******************************************************************/
function bCheckFields(sForm, sFieldsNames){
var bIsOneEmpty = false;
var sTitleForOneElement = "Veuillez renseigner l'information suivante:\n\n";
var sTitle = "Veuillez renseigner les informations suivantes:\n\n";
var sMessage = "";
var oForm = eval("document." + sForm);
var sChampValue;
var oElement;
var oFirstWrongElement;
var intNbWrongElements = 0;
for(sFieldLibelle in sFieldsNames){
//Obtention de l'élément en cours d'analyse
oElement = eval("oForm." + sFieldsNames[sFieldLibelle]);
//Obtention de la valeur du champ en cours d'analyse
sElementValue = oElement.value;
//Obtention du nom de l'élément en cours d'analyse
sElementName = sFieldsNames[sFieldLibelle];
if (bFieldIsEmpty(sForm, sElementName)){
//Elément non renseigné -> alimentation du message final
if(!bIsOneEmpty) oFirstWrongElement = oElement;
bIsOneEmpty = true;
sMessage += "- " + sFieldLibelle + "\n";
intNbWrongElements++;
}else if((sFieldLibelle.indexOf("date") != -1) || (sFieldLibelle.indexOf("Date") != -1)){
//Vérification de date
if(!checkDate(sElementValue)){
alert("La date doit être au format jj/mm/aaaa");
oElement.focus();
return false;
}
}else if((sFieldLibelle.indexOf("email") != -1) || (sFieldLibelle.indexOf("Email") != -1)){
//Vérification d'émail
if(!bMailIsValid(sElementValue)){
alert("L'adresse email semble ne pas être correctement formée");
oElement.focus();
return false;
}
}
if(arguments[2] && arguments[2][sFieldLibelle])
{
if(!bCheckFieldsWithPATTERN(arguments[2][sFieldLibelle], oElement, sFieldLibelle))
{
return false;
}
}
}
if(bIsOneEmpty){
if(intNbWrongElements == 1){
alert(sTitleForOneElement + sMessage);
}else{
alert(sTitle + sMessage);
}
//Focus sur le premier "mauvais" élément rencontré
if(oFirstWrongElement.focus && !(oFirstWrongElement.type && oFirstWrongElement.type == "hidden")){
oFirstWrongElement.focus();
}
return false;
}
return true;
}
/*
'''********************************************************************************************
'''
''' Check les champs demandes
'''
'''
'''
'''
''' 23/04/2008 Created
'''
'''********************************************************************************************
*/
function bCheckFieldsWithPATTERN(strPatterntoCheck, objFormElement, strNameElementforMessage)
{
var objMyRegExp_ = new RegExp(strPatterntoCheck, "g");
arrWrongCharactersMatches_ = objFormElement.value.match(objMyRegExp_);
if (arrWrongCharactersMatches_!= null)
{
// on supprime les doublons
arrWrongCharactersMatches_ = supDoublons(arrWrongCharactersMatches_);
if (strNameElementforMessage != '')
{
alert("Le champ saisi \'" + strNameElementforMessage + "\' contient un(des) caractère(s) non autorisé(s).\nLes caractères en defaut sont : " + arrWrongCharactersMatches_.join(" "));
objFormElement.focus();
}
return false;
}
else
{
return true;
}
}
/*****************************************************************
NOM : sCheckFieldsAndSend
DESCRIPTION : Vérifie la contenance d'un ensemble de champs. Soumet
le formulaire si tous les champs sont remplis.
Si la clé (libellé) d'un champ du tableau passé en paramètre contient
le mot "date", on vérifie que ce champ est au format date.
Les éléments cachés ne sont pas pris en compte.
PARAMETRES :
@sForm : Nom du formulaire
@sFieldsNames : Tableau regroupant les champs à vérifier.
La clé correspond au libellé affiché si le champ concerné est vide
ex : sFieldsNames["Libellé"] = NomDuChamp
******************************************************************/
function sCheckFieldsAndSend(sForm, sFieldsNames){
var bIsOneEmpty = false;
var sMessage = "Veuillez renseigner le(s) champ(s) suivant(s):\n\n";
var oForm = eval("document." + sForm);
var sChampValue;
var oElement;
for(sFieldLibelle in sFieldsNames){
//Obtention de l'élément en cours d'analyse
oElement = eval("oForm." + sFieldsNames[sFieldLibelle]);
if(oElement.style && (oElement.style.display != "none")){
//Obtention de la valeur du champ en cours d'analyse
sElementValue = oElement.value;
//Obtention du nom de l'élément en cours d'analyse
sElementName = sFieldsNames[sFieldLibelle];
if (bFieldIsEmpty(sForm, sElementName)){
bIsOneEmpty = true;
sMessage += "- " + sFieldLibelle + "\n";
}else if((sFieldLibelle.indexOf("date") != -1) || (sFieldLibelle.indexOf("Date") != -1)){
if(!checkDate(sElementValue)){
alert("La date doit être au format jj/mm/aaaa");
oElement.focus();
return;
}
}else if((sFieldLibelle.indexOf("email") != -1) || (sFieldLibelle.indexOf("Email") != -1)){
if(!bMailIsValid(sElementValue)){
alert("L'adresse email semble ne pas être correctement formée");
oElement.focus();
return;
}
}
}
}
if(bIsOneEmpty){
alert(sMessage);
}else{
oForm.submit();
}
}
function remplacer(b){
if(isNaN(b)){
b = b.replace(",",".");
if(isNaN(b)){
b = b.replace(".",",");
}
}
return b;
}
function verifUserHabilEtDroits(obj ,aFormName, aDestination, aMessage){
var sTypes = "";
var sType_champs;
var bSvceChecked = false;
var bTransChecked = false;
var sElmtName;
var bDecision;
var sMessage = "";
var oForm = eval("document."+aFormName);
for(var cpt=0;cpt < oForm.length;cpt++){
sType_champs = oForm.elements[cpt].type;
sElmtName = oForm.elements[cpt].name
if(sType_champs == "checkbox" && sElmtName.length > 6 && sElmtName.indexOf("check_")==0){
if(oForm.elements[cpt].checked){
bSvceChecked = true;
}
}
}
if(!bSvceChecked && !oForm.check_.checked){
sMessage = "L'utilisateur n'a aucune habilitation.\n";
}
if(sMessage != ""){
sMessage += aMessage + " l'utilisateur?";
if(confirm(sMessage)){
valider(obj,'envoyer(var1,var2)');
}
}
if((bSvceChecked || oForm.check_.checked)){
valider(obj,"envoyer(var1,var2)");
}
}
function valider(obj,action) {
obj = eval(obj);
var cpt,type_champs,F,ok;
var ok=true;
F = eval("document."+obj.form.name);
for(var cpt=0;cpt < F.length;cpt++){
type_champs=F.elements[cpt].type;
if (type_champs=="text" || type_champs=="textarea") {
var objet = F.elements[cpt];
while ((objet=objet.parentElement)!=null) {
if (objet.tagName=="DIV") {
if(objet.style.visibility != "hidden"){
objet = null;
}
break;
}
}
if (objet == null){
if (F.elements[cpt].value!="" || F.elements[cpt].longueur!="-1"){
if (F.elements[cpt].valider=="1") {
ok = verifier(F.elements[cpt].choix,F.elements[cpt].value,F.elements[cpt].longueur);
if (!ok) {
F.elements[cpt].focus();break;
}
}
else {
if(F.elements[cpt].value.length < F.elements[cpt].longueur ){
ok = false;
alert("Erreur de données dans le champ. Le nombre minimum de caractères pour que le champ soit valide est de "+ F.elements[cpt].longueur);
F.elements[cpt].focus();break;
}
}
}
}
}
else {
if(type_champs=="select-one"){
if (F.elements[cpt].value=="" && F.elements[cpt].longueur){
ok = false;
alert("Erreur de données dans le champ. Vous devez obligatoirement choisir un " + F.elements[cpt].name + " dans le menu " + F.elements[cpt].description);
F.elements[cpt].focus();break;
}
}
}
}
if(ok) {
action = eval(action);
action;
return true;
}
else {
return false;
}
}
function verifier(choix,chaine,longueur) {
if (chaine.length < longueur) {
alert("Erreur de données dans le champ. Le nombre minimum de caractères pour que le champ soit valide est de "+ longueur);
return false;
}
/*switch(choix){
case "Mail" : return(verifier_Mail(chaine));break;
case "Tel" : return(verifier_Tel(chaine));break;
case "Taux" : return(verifier_taux(chaine));break;
case "Numerique" : return(verifier_numerique(chaine));break;
default : return(verifier_chaine(choix,chaine));break;
}
return false;*/
/*aucune vérification*/
else {
return true;
}
}
function verifier_Tel(Tel) {
var t="";
chaine = "0123456789";
for(a=0;a