function envoieFormulaire(nomFormulaire, champs, champsObligatoire,  table, verificationEmail, testUnicite, varTestCodeValidation){
	
	/// Recuperation des champs à afficher ///
	var listeChamp = champs.split(':');
	var tabChamp = new Array();
	for(var i = 0; i< listeChamp.length; i++){
		tabChamp[i] = listeChamp[i];
	}
	/// Fin de la recuperation des champs à afficher ///
	/// Recuperation des champs obligatoires ///
	var listeChampObligatoire = champsObligatoire.split(':');
	var tabChampObligatoire = new Array();
	for(var i = 0; i < listeChampObligatoire.length; i++){
		tabChampObligatoire[i] = listeChampObligatoire[i];
	}
	/// Fin de la recuperation des champs obligatoires ///
	
	if(verifChampObligatoire(tabChampObligatoire) == false){
		var formatDate = true;
		if(testChampDate(tabChamp) == true){
			formatDate = testFormatDate();
		}
		
		if(formatDate == true){
			//// On met en place un test permettant de tester l'age et le representant legale si le champ age est present ///
				var majorite = false;
				if(document.getElementById('age')){
					majorite = false;
					var ageCible = document.getElementById('age').value;
					if(ageCible >= 18){	
						majorite = true;
					}else{
						majorite = verifResponsableLegalePreInscription();	
					}
				}else{
					majorite = true;	
				}
			/// Fin du test sur le champ age ///
			if(majorite == true){
			if(verificationEmail == true){
				var email = document.getElementById('email').value;
					if(verifMail(email) == true){
						if(testUnicite == true){
							testUniciteMail(nomFormulaire, table, email, testCodeValidation);
						}else{
							if(varTestCodeValidation == true){
								testCodeValidation(nomFormulaire);
							}else{
								soumetFormulaire(nomFormulaire);
							}
						}
					}
			}else{
				if(varTestCodeValidation == true){
					testCodeValidation(nomFormulaire);
				}else{
					soumetFormulaire(nomFormulaire);
				}
			}
			}/// Fin du else sur la maorite ///
		}else{
			afficheResultatFormulaire(tradErreurFormatDate);	
		}
	}else{
		afficheResultatFormulaire(tradChampObligatoire);
	}
	
	
}
/// Fonction necessaire au test sur le reprenentant ///
function verifResponsableLegalePreInscription(){
	var nomResponsableLegale = document.getElementById('nomRepresentantLegale').value;
	var prenomResponsableLegale = document.getElementById('prenomRepresentantLegale').value;
		if(nomResponsableLegale != "" && prenomResponsableLegale != ""){
			return testClickResponsableLegalesPreInscription();
		}else{
			afficheResultatFormulaire(tradChampObligatoire);
		}
}
function testClickResponsableLegalesPreInscription(){
	var curseur = document.getElementById('curseurAccepteCGV');
	if(curseur.style['display'] == 'block'){
		return true;
	}else{
			afficheResultatFormulaire(tradCertifieResponsableLegale);
	}
}
/// Fin du test sur le represenant legale ///
/// Fonction permettant de sousmmettre le formulaire ///
function soumetFormulaire(nomFormulaire){
	
	document[nomFormulaire].submit();
}
/// Fin de la fonction permettant de sousmettre le formulaire ///
/// Fonction permettant d'afficher le résultat du formulaire ///
function afficheResultatFormulaire(trad){
document.getElementById('resultatFormulaire').innerHTML = trad;	
}
/// Fin de la fonction permettant d'afficher le resultat du formulaire ///
// Fonction permettant de vérifier que les champs obligatoires ne sont pas vides //
function verifChampObligatoire(tableau){
	var vide = false;
	if(tableau != "null"){
		for(var i = 0;i < tableau.length; i++){
			var valeur = document.getElementById(tableau[i]).value;
				if(valeur == ''){
					vide = true;
				}
		}
	}
	return vide;
}
/// Fin de la fonction de verification des champs vide ///
/// Fonction de verification de lemail ///
function verifMail(mail){
var mailOK = 0;
var decoupeArobase = mail.split('@');
	if(decoupeArobase[1] != undefined){
		var decoupePoint = decoupeArobase[1].split('.');
			if(decoupePoint[1] != undefined){
				mailOK = 1;
			}
	}
if(mailOK == 0){
	afficheResultatFormulaire(tradErreurMail);
}else{
	return true;
}
}
/// Fin de la verification de lemail ///
/// Fonction permettant de tester lunicite de lemail ///
function testUniciteMail(nomFormulaire, table, mail, codeValidation){
	var xhr=null;
    
    if (window.XMLHttpRequest) { 
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject){
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhr.onreadystatechange = function() {
		if(xhr.readyState == 4){
			
			if(xhr.responseText == true){
				if(codeValidation == true){
					testCodeValidation(nomFormulaire);
				}else{
				soumetFormulaire(nomFormulaire);
				}
			}else{
			afficheResultatFormulaire(tradUniciteMail);	
			}
		}
	};
	
 xhr.open("POST", chemin+"/action/testUniciteEmail.php", true);
  
	donnees = "";
	donnees += "&mail="+mail;	
	donnees +="&table="+table;
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); 
    xhr.send(donnees);
	
}
/// Fin de test de lunicite de lemail ///
/// Fonction permettant de tester les codes de validations ///
function testCodeValidation(nomFormulaire){
		var xhr=null;
    
    if (window.XMLHttpRequest) { 
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject){
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhr.onreadystatechange = function() {
		if(xhr.readyState == 4){
			
			if(xhr.responseText == true){
				soumetFormulaire(nomFormulaire);
			}else{
				afficheResultatFormulaire(tradErreurCodeValidation);
				genereNouveauCodeValidation();
			}
		}
	};
	
 xhr.open("POST", chemin+"/action/testCodeValidation.php", true);
  
	donnees = "";
	var codeSaisi = document.getElementById('codeValidationSaisi').value;
	var idCode = document.getElementById('idCodeValidation').value;
	donnees += "&idCodeValidation="+idCode;	
	donnees +="&codeSaisi="+codeSaisi;
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); 
    xhr.send(donnees);
	
}
/// Fin de la fonction permettant de tester les codes de validation ///
/// Fonction permettant de genere un nouveau code de validation ///
function genereNouveauCodeValidation(){
			var xhr=null;
    
    if (window.XMLHttpRequest) { 
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject){
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhr.onreadystatechange = function() {
		if(xhr.readyState == 4){
			document.getElementById('conteneurCodeValidation').innerHTML = xhr.responseText;
		}
	};
	
 xhr.open("POST", chemin+"/action/genereCodeValidation.php", true);
  
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); 
    xhr.send();
}
/// Fin de la fonction permettant de generer un nouveau code de validation ///
/// Fonction permettant de detxcter le champ date ///
function testChampDate(tableauChamp){
	var champDetecte = false;
		for(var i = 0; i < tableauChamp.length; i++){
			if(tableauChamp[i] == "date_naissance"){
				champDetecte = true;
			}
		}
		return champDetecte;
}
/// Fin de la fonction permettant de detecter le champs date ///
/// Fonction permettant de verifier le format de la date ///
function testFormatDate(){
	
		var date = document.getElementById('date_naissance').value;
		
		var reg=new RegExp("(/)", "g");
		
		date = date.replace(reg, '-');
		
		var decoupeDate = date.split('-');
			if(decoupeDate[0] && decoupeDate[0].length == 2 && decoupeDate[1] && decoupeDate[1].length == 2 && decoupeDate[2].length == 4 && decoupeDate[0] > 0 && decoupeDate[0] <= 31 && decoupeDate[1] > 0 && decoupeDate[1] <= 12 && decoupeDate[2] > 0000){
				return true;
			}else{
				return false;	
			}
}
/// Fin de la fonction permettant de verifier le format de date ///
/// Fonction permettant de valider le formulaire de contact ///
function verifFormContact(){
	
		var tableauChamp = new Array('nom', 'prenom', 'email', 'message');
		var tableauChampObligatoire = new Array('nom', 'prenom', 'email', 'message');
	if(verifChampObligatoire(tableauChampObligatoire) == false){
		var email = document.getElementById('email').value;
			if(verifMail(email) == true){
				testCodeValidationContact();
			}
	}else{
		afficheResultatFormulaire(tradChampObligatoire);
	}
}
function testCodeValidationContact(){
		var xhr=null;
    
    if (window.XMLHttpRequest) { 
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject){
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhr.onreadystatechange = function() {
		if(xhr.readyState == 4){
			
			if(xhr.responseText == true){
				insertFormulaireContact();
			}else{
				afficheResultatFormulaire(tradErreurCodeValidation);
				genereNouveauCodeValidation();
			}
		}
	};
	
 xhr.open("POST", chemin+"/action/testCodeValidation.php", true);
  
	donnees = "";
	var codeSaisi = document.getElementById('codeValidationSaisi').value;
	var idCode = document.getElementById('idCodeValidation').value;
	donnees += "&idCodeValidation="+idCode;	
	donnees +="&codeSaisi="+codeSaisi;
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); 
    xhr.send(donnees);
}
function insertFormulaireContact(){
	
	var tableauChamp = new Array('nom', 'prenom', 'email', 'message');
	var xhr=null;
    
    if (window.XMLHttpRequest) { 
        xhr = new XMLHttpRequest();
    }else if (window.ActiveXObject){
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhr.onreadystatechange = function() {
		if(xhr.readyState == 4){
			afficheResultatFormulaire(tradFormulaireEnvoye);
			initialiseFormulaireContact();
		}
	};
	
 xhr.open("POST", chemin+"/action/insertContact.php", true);
  
	donnees = "";
	for(var i = 0; i < tableauChamp.length; i++){
		donnees += "&"+tableauChamp[i]+"="+ document.getElementById(tableauChamp[i]).value;
	}
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); 
    xhr.send(donnees);
}
function initialiseFormulaireContact(){
		var tableauChamp = new Array('nom', 'prenom', 'email', 'message');
		for(var i = 0; i < tableauChamp.length; i++){
		document.getElementById(tableauChamp[i]).value = '';
		document.getElementById('codeValidationSaisi').value = '';
	}
		
}
/// Fin des fonctions perùettant de valider le formulaire de contact ///
function chiffres(event) {
	// Compatibilité IE / Firefox
	if(!event && window.event) {
		event=window.event;
	}
 
	var code = event.keyCode; 
	var which = event.which;
	//alert(which);
	// IE
	if ((code < 45 || code > 57) && code != 8 && code != 9 && code != 16 && code != 13) {
		event.returnValue = false;
		event.cancelBubble = true;
	}
 
	// DOM (dont Firefox)
	if ((which < 45 || which > 57) && (code < 37 || code > 40) && code != 8 && code != 9 && code != 16 && code != 13 || event.ctrlKey) {
		event.preventDefault();
		event.stopPropagation();
	}
}

function lettres(event) {
	// Compatibilité IE / Firefox
	if(!event&&window.event) {
		event=window.event;
	}
 
	var code = event.keyCode; 
	var which = event.which;
	// IE
	//Si le keycode ne correspond pas à [A-Z] ou à [a-z] ou aux autres autorisés...
	if  (!((code >= 65 && code <= 90) || (code >= 97 && code <= 122) || code == 8 || code == 9 || code == 13 || code == 16 || code == 46)) {
		event.returnValue = false;
		event.cancelBubble = true;
	}
 
	// DOM (dont Firefox)
	if  (!((which >= 65 && which <= 90) || (which >= 97 && which <= 122) || (code >= 37 && code <= 40) || code == 8 || code == 9 || code == 13 || code == 16 || code == 46 || event.ctrlKey)) {
		event.preventDefault();
		event.stopPropagation();
	}
}

