/*NKC formulaire validation-Version 0.4-Bugs report: please write maxime.loliee@linescort.com*/document.write('<script type="text/javascript" src="../js/NKC_config_form.js"></script>');function NKC_verifchamp(id, nbcMin, nbcMax, format,infobulle){if( parseInt(infobulle) == 1 && infobulle != 'null' && infobulle != 'undefined' && infobulle != ''){var message = ecrireInfoBulles(format,nbcMin,nbcMax);var img = NKC_recup_config('imgNOK');var affichage_nok = '<a class="infoBulle">'+img+'<span>'+message+'</span></a>';}else{var affichage_ok = NKC_recup_config('imgOK');var affichage_nok = NKC_recup_config('imgNOK');}var MotifRegExp = null;var id_retour = 'r-'+id;var MotifRegExp_fin = '$';if(parseInt(nbcMin) != 0 && parseInt(nbcMax) != 0){ MotifRegExp_quantifier = "{"+parseInt(nbcMin)+","+parseInt(nbcMax)+"}";}if(NKC_recup_config('espaceDevant') == 'oui'){var espace_devant = '\\s?';}else{var espace_devant = '';}if(NKC_recup_config('espaceDerriere') == 'oui'){var espace_derriere = '\\s?';}else{var espace_derriere = '';}switch (format){  case 'string+':MotifRegExp = '[\\w\\W]'; break;  case 'string': MotifRegExp = '[\\w\\s_-]'; break;  case 'string-': MotifRegExp = '[a-zA-Z0-9_-]'; break;  case 'char': MotifRegExp = '[a-zA-Z]'; break;  case 'int': MotifRegExp = '[0-9]'; break;  case 'float':MotifRegExp = '[\\d,.]'; break;  case 'mail':MotifRegExp = '([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,3}'; MotifRegExp_quantifier = ''; break;  case 'dateYMD':MotifRegExp = '\\d\\d\\d\\d-(0[0-9]|1[0-2])+-([0-2][0-9]|3[0-1])+\\b\\s*$'; MotifRegExp_quantifier = ''; MotifRegExp_fin =''; break;  case 'dateDMY':MotifRegExp = '([0-2][0-9]|3[0-1])+-(0[0-9]|1[0-2])+-\\d\\d\\d\\d\\b\\s*$'; MotifRegExp_quantifier = ''; MotifRegExp_fin = ''; break;  case 'dateYM': MotifRegExp = '\\d\\d\\d\\d-(0[0-9]|1[0-2])\\b\\s*$'; MotifRegExp_quantifier = ''; MotifRegExp_fin = ''; break;  case 'tel' : MotifRegExp = '(\\+(1-)?\\d{0,3}\\.)+[0-9]{3,14}$'; MotifRegExp_quantifier = ''; MotifRegExp_fin = ''; break;  case 'telFR' : MotifRegExp = '(\\+33\\.)+[1-9][0-9]{8,8}$'; MotifRegExp_quantifier = ''; MotifRegExp_fin = ''; break;  case 'codePM' : MotifRegExp = '([1-8][0-9]|9[0-6])+([0-9]{3,3})$'; MotifRegExp_quantifier = ''; MotifRegExp_fin = ''; break; default: break;}if(document.getElementById(id)){  id = trim(id);var input = document.getElementById(id);  switch(input.type.toString()){case 'textarea':case 'password':case 'text':var regexp = new RegExp("^"+espace_devant+MotifRegExp+MotifRegExp_quantifier+espace_derriere+MotifRegExp_fin,"i");var champ = input.value.toString();var resultat = regexp.test(champ);if(resultat == false){if(handle = document.getElementById(id_retour)){ handle.innerHTML = affichage_nok;}else{ alert('Script mal configure :\n\tAucune balise de retour trouve avec id="'+id_retour+'"');}return false;}else{if(handle = document.getElementById(id_retour)){ handle.innerHTML = NKC_recup_config('imgOK'); }else{ alert('Script mal configure :\n\tAucune balise de retour trouve avec id="'+id_retour+'"');}return true;}break;case 'hidden':if(input.value == null || input.value == '' || input.value == 'undefined' ){  return false;  }else{return true;  }break;case 'checkbox':case 'radio': champ_retour = 'r-'+input.name; if(input.value == null || input.value == '' || input.value == 'undefined' ){if(handle = document.getElementById(champ_retour)){handle.innerHTML = NKC_recup_config('imgNOK'); }else alert('Script mal configure :\n\tAucune balise de retour trouve avec id="'+champ_retour+'"');  return false;  }else{if(handle = document.getElementById(champ_retour)){handle.innerHTML =  NKC_recup_config('imgOK');}else alert('Script mal configure :\n\tAucune balise de retour trouve avec id="'+champ_retour+'"');  return true;  }break;case 'select-multiple':case 'select-one': if(input.value == null || input.value == '' || input.value == 'undefined' ){if(handle = document.getElementById(id_retour)){handle.innerHTML = NKC_recup_config('imgNOK');}else alert('Script mal configure :\n\tAucune balise de retour trouve avec id="'+id_retour+'"'); return false;  }else{if(handle = document.getElementById(id_retour)){handle.innerHTML =  NKC_recup_config('imgOK');}else alert('Script mal configure :\n\tAucune balise de retour trouve avec id="'+id_retour+'"');return true;  }break;} }  }  function NKC_controleFormulaire(){  var args = NKC_controleFormulaire.arguments;  var i_err = 0;  var erreurs = new Array();  var errors = '';  if(NKC_recup_config('message') == 'inner'){var id_message = enleverDiese(args[args.length-1]);args[args.length-1] = '';  }for (i=0; i<(args.length); i++){ var checkbox = isCheckbox(args[i]);  if(checkbox != false ){ /* Si le champ est de type checkbox */var nameChamp = enleverCodeCheckbox(args[i].toString());  if(document.getElementsByName(nameChamp.toString())){var tab_check = document.getElementsByName(nameChamp);for (j=0; j<(tab_check.length); j++){if(tab_check[j].checked == true ){var statut_check = 1;}}var champ_retour = 'r-'+nameChamp;if(statut_check != 1){statut_check = null;if(handle = document.getElementById(champ_retour)){handle.innerHTML = NKC_recup_config('imgNOK');erreurs[i_err] = nameChamp;i_err++; }else alert('Script mal configure :\n\tAucun champ de retour trouve avec l\'id :'+champ_retour);}else{if(handle = document.getElementById(champ_retour)){handle.innerHTML =  NKC_recup_config('imgOK');}else alert('Script mal configure :\n\tAucun champ de retour trouve avec l\'id :'+champ_retour);}  }else alert('Script mal configure :\n\tAucun champ trouve avec name="'+nameChamp+'"');  }else{/*champ de type input text*/if( input = document.getElementById(args[i])){ switch(input.type){  case 'select-multiple': case 'select-one': var resultat = NKC_verifchamp(args[i], '0', '0', 'value'); if(resultat == false){erreurs[i_err] = args[i];i_err++;}break;case 'hidden':  var resultat = NKC_verifchamp(args[i], '0', '0', 'value'); if(resultat == false){erreurs[i_err] = args[i];i_err++;}  break;case 'password':case 'textarea':case 'text': var attribut = input.getAttribute('onKeyUp'); var parametres = attribut.toString().match(/'.*(?=\))/); var parametres_clean = enleverQuotes(parametres.toString()); var parametres_split = new Array(); parametres_split = parametres_clean.toString().split(",");  if(parseInt(parametres_split.length) ==  4){ var resultat = NKC_verifchamp(args[i], parametres_split[0], parametres_split[1], trim(parametres_split[2]), trim(parametres_split[3]));  }else{  var resultat = NKC_verifchamp(parametres_split[0], parametres_split[1], parametres_split[2], parametres_split[3],parametres_split[4]);  }  if(resultat == false){erreurs[i_err] = args[i]; i_err++;}break;default:var erreur = ''; alert('Le champ avec l\'id="'+args[i]+'" est de type incorrect ('+input.type+')'); break; }}else if(args[i] != '') alert('Script mal configure :\n\tAucune balise de retour trouve avec id="'+args[i]+'"') }  }  if(erreurs.length > 0){var errors = "Les champs suivant sont mal remplies :\n";for (i=0; i<(erreurs.length); i++){if(i == 0 ) errors  += erreurs[i]; else errors  += ', '+erreurs[i];}  }  if(errors){if(NKC_recup_config('message') == 'alert'){ alert(errors);document.returnValue = false;}else if(NKC_recup_config('message') == 'inner'){if(handle = document.getElementById(id_message)){handle.innerHTML = errors; document.returnValue = false;}else alert('Script mal configure :\n\tAucune balise de retour ( pour le formulaire ) trouve avec id ="'+id_message+'"');}document.returnValue = false;  }  else {document.returnValue = true;}  }function trim(s) {  return s.replace(/^\s+/, '').replace(/\s+$/, '');  }  function enleverQuotes(s){  var motif = new RegExp("\'","g");  return s.replace(motif,'');  }  function enleverDiese(s){  var motif = new RegExp("#+","g");  return s.replace(motif,'');  }  function enleverCodeCheckbox(s){  var motif = new RegExp("\\[0\\]");  return  s.replace(motif,'');  }  function isCheckbox(s){  var motif = new RegExp("\\[0\\]");  return  motif.test(s,'');  }  
