//Verificationformulaire
function CheckAndGo(){
ReqField('Prenom','Prénom',1,'','formulaire_contact','');
ReqField('Nom','Nom',1,'','formulaire_contact','');
ReqField('Societe','Société',1,'','formulaire_contact','');
ReqField('Phone','Téléphone',1,'','formulaire_contact','');
ReqField('Email','Adresse de messagerie',1,'','formulaire_contact','');
if (CheckForm('formulaire_contact','Veuillez renseigner les informations suivantes :\n\n')) {
ReqField('Prenom','Prénom',1,'ALPHA','formulaire_contact','');
ReqField('Nom','Nom',1,'ALPHA','formulaire_contact','');
ReqField('Societe','Société',1,'ALPHA','formulaire_contact','');
if (CheckForm('formulaire_contact','Veuillez ne saisir ni caractères accentués ni caractères spéciaux :\n\n')) {
ReqField('Phone','Téléphone',1,'NUMIN(10,10)','formulaire_contact','');
if (CheckForm('formulaire_contact','Veuillez fournir un numéro valide (10 chiffres) :\n\n')) {
ReqField('Email','Adresse de messagerie',1,'EMAIL','formulaire_contact','');
if (CheckForm('formulaire_contact','Veuillez fournir une adresse valide :\n\n')) {
SubmitForm('formulaire_contact','');
return true;}}}}
InitReqFields();
InitReqBoxes();
return false;}
//Fonctionsdetravail
var aReqFields=new Array();
var aBoxes=new Array();
var delim='%';
var sInvalid='(invalid)';
var NS4=(document.layers)?1:0;
var IE4=(document.all)?1:0;
var ver4=(NS4||IE4)?1:0;
var sLayerElement='';
if(IE4){sLayerElement='all';}
else if(NS4){sLayerElement='layers';}
function ReqField(sFieldName,sFieldDesc,nReq,sExtraCheck,sFormName,sLayerName){
aReqFields[aReqFields.length]=sFieldName+delim+sFieldDesc+delim+nReq+delim+sExtraCheck+delim+sFormName+delim+sLayerName;}
function ReqBox(sGroupPrefix,sGroupDesc,nReq,sFormName,sLayerName){
aBoxes[aBoxes.length]=sGroupPrefix+delim+sGroupDesc+delim+nReq+delim+sFormName+delim+sLayerName;}
function CheckString(sStr,sCheck){
var RE=null;
var len=null;
var result=true;
switch(sCheck){
case'ALPHA':{
RE=/^[A-Za-z ]+$/;
break;}
case'NUM':{
RE=/^\d+$/;
break;}
case'ALPHANUM':{
RE=/^.+$/;
break;}
case'EMAIL':{
RE=/^.+@.+\..+$/;
break;}
case'ABSURL':{
RE=/^http:\/\/.+$/;
break;}
case'DATE_DD/MM/YYYY':{
RE=/^\d{2}\/\d{2}\/\d{4}\/$/;
break;}}
len=sCheck.length;
if(sCheck.substr(0,4)=='NOT('){
sCheck=sCheck.substring(4,len-1);
RE=new RegExp('^[^'+sCheck+'].*$');}
if(sCheck.substr(0,6)=='NEVER('){
sCheck=sCheck.substring(6,len-1);
RE=new RegExp('^[^'+sCheck+']*$');}
if(sCheck.substr(0,4)=='NUM('){
sCheck=sCheck.substring(4,len-1);
RE=new RegExp('^\\d{0,'+sCheck+'}$');}
if(sCheck.substr(0,6)=='ALPHA('){
sCheck=sCheck.substring(6,len-1);
RE=new RegExp('^[A-Za-z\\w]{0,'+sCheck+'}$');}
if(sCheck.substr(0,9)=='ALPHANUM('){
sCheck=sCheck.substring(9,len-1);
RE=new RegExp('^.{0,'+sCheck+'}$');}
if(sCheck.substr(0,6)=='NUMIN('){
var aRange=new Array();
var nStr=null;
var nMin=null;
var nMax=null;
RE=/^\d+$/;
sCheck=sCheck.substring(6,len-1);
aRange=sCheck.split(',');
nStr=Number(sStr.length);
nMin=Number(aRange[0]);
nMax=Number(aRange[1]);
if((nStr<nMin)||(nStr>nMax))result=false;}
if(!RE.test(sStr))result=false;
return(result);}
function CheckForm(sFormToCheck,sTitle){
var len=aReqFields.length;
var i=null;
var isEmpty=null;
var ok=null;
var sHeader=sTitle;
var sMissing='';
var sInputPath='';
var sInputType='';
var sValue='';
var aParams=new Array();
for(i=0;i<len;i++){
aParams=aReqFields[i].split(delim);
sFormName=aParams[4];
if(sFormToCheck==sFormName){
sFieldName=aParams[0];
sFieldDesc=aParams[1];
nReq=aParams[2];
sExtraCheck=aParams[3];
sLayerName=aParams[5];
isEmpty=false;
if(sLayerName){sInputPath='document.'+sLayerElement+'["'+sLayerName+'"].document.'+sFormName+'.'+sFieldName;}
else{sInputPath='document.'+sFormName+'.'+sFieldName;}
eval('sInputType='+sInputPath+'.type;');
if(!sInputType)eval('sInputType='+sInputPath+'[0].type;');
switch(sInputType){
case'text':
case'password':
case'textarea':
case'file':{
eval('sValue='+sInputPath+'.value;');
if(!sValue){
if(nReq==1)sMissing=sMissing+sFieldDesc+'\n';
isEmpty=true;}
break;}
case'select-one':
case'select-multiple':{
eval('sValue='+sInputPath+'.selectedIndex;');
if(sValue==-1)
{if(nReq==1)sMissing=sMissing+sFieldDesc+'\n';
isEmpty=true;}
else{eval('sValue='+sInputPath+'.options[sValue].value;');}
break;}
case'radio':{
var j;
var nRad=0;
var isChecked=false;
eval('while('+sInputPath+'[nRad])nRad++;');
for(j=0;j<nRad;j++){
eval('if('+sInputPath+'[j].checked)isChecked=true;');}
if(!isChecked){
if(nReq==1)sMissing=sMissing+sFieldDesc+'\n';
isEmpty=true;}
break;}}
if(sExtraCheck&&!isEmpty){
if(!CheckString(sValue,sExtraCheck))sMissing=sMissing+sFieldDesc+'\n';}}}
var aChecked=new Array();
var aOK=new Array();
var len2=aBoxes.length;
var flen;
if(len2>0){
for(i=0;i<len2;i++){
aChecked[i]=0;
aOK[i]=0;
aParams=aBoxes[i].split(delim);
sGroupPrefix=aParams[0];
sGroupDesc=aParams[1];
nReq=aParams[2];
sFormName=aParams[3];
sLayerName=aParams[4];
eval('flen=document.'+sFormName+'.elements.length');
plen=sGroupPrefix.length;
for(j=0;j<flen;j++){
eval('sField=document.'+sFormName+'.elements['+j+']');
if(sField.name.substr(0,plen)==sGroupPrefix){
if(sField.type=="checkbox"&&sField.checked){
aChecked[i]++;
if(aChecked[i]>=nReq)aOK[i]=1;}}}
sSel='selections';
if(nReq<2)sSel='selection';
if(!aOK[i])sMissing=sMissing+sGroupDesc+'\n';}}
ok=(sMissing)?false:true;
if(!ok)alert(sHeader+sMissing);
return(ok);}
function InitReqFields(){aReqFields=new Array();}
function InitReqBoxes(){aBoxes=new Array();}
function SubmitForm(sFormName,sLayer){
if(sLayer){sInputPath='document.'+sLayerElement+'["'+sLayer+'"].document.'+sFormName;}
else{sInputPath='document.'+sFormName;}
eval(sInputPath+'.submit();');}