function MajChamp(champ) // met en majuscule tout le champ
{
	champ.value=champ.value.toUpperCase();
}

function MajPrenom(champ) //met en mascule la première lettre de chaque mot, y compris après trait d'union, et remplace "et" par "&"
{
	var a_texte;	//ancien texte
	var n_texte;	//nouveau texte
	var lettre;
	var pos;
	var next = false;
	a_texte = champ.value;
	a_texte = a_texte.toLowerCase();
	if (a_texte.length == 0) {return;}
	n_texte = a_texte.charAt(0).toUpperCase();
	pos = 1;
	while(pos < a_texte.length)
	{
		if (next)
		{
			n_texte += a_texte.charAt(pos).toUpperCase();
			next = false;
		}
		else
		{
			n_texte += a_texte.charAt(pos);
		}
		if (a_texte.charAt(pos) == "-" || a_texte.charAt(pos) == " ") {next = true;}
		pos++;
	}
	n_texte=n_texte.replace(" Et "," & ");
	champ.value = n_texte;
}

function verifIdentite(champ) // met en majuscules le nom,  et en minuscules le prénom sauf les 1ères lettres
	{
		var aTexte = champ.value;	//ancien texte
		var nTexte = "";	//nouveau texte
		var prenom, nom;
		var lettre;
		var pos, posEspace;
		var next = true;
		aTexte = aTexte.toLowerCase(); // on met tout en minuscules
		if (aTexte.length == 0) {return;} // on ne fait rien si le champ est vide
		posEspace = aTexte.indexOf(" "); // index du premier espace
		if (posEspace < 0) { // il n'y a pas d'espace : on suppose qu'on est en train de taper le prénom
			nom = "";
			prenom = aTexte;
		}
		else {
			nom = aTexte.slice(posEspace + 1); //le nom va de l'espace à la fin
			nom = nom.toUpperCase(); // on met le nom en majuscules
			prenom = aTexte.slice(0, posEspace); // le prénom va jusqu'à l'espace
		}
		pos = 0;
		while(pos < prenom.length) {
			if (next)
			{
				nTexte += prenom.charAt(pos).toUpperCase();
				next = false;
			}
			else
			{
				nTexte += prenom.charAt(pos);
			}
			if (aTexte.charAt(pos) == "-") {next = true;}
			pos++;
		}
		if (nom.length == 0) { // pas de nom
			if (posEspace > 0 ) { // un espace a été tapé après le prénom
				nTexte = nTexte + " ";
			}
		}
		else {
			nTexte = nTexte + " " + nom;
		}
		champ.value = nTexte;
	}

function Verif_email(champ)	//vérifie l'email et, si nécessaire, signale l'erreur dans la case de tableau de droite
{
	var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
	var x = champ.parentNode.parentNode.cells[2]; // 3ème cellule de la même rangée que le champ <input> contenant l'email
	if(regex.test(champ.value) || champ.value == "")
	{
		x.innerHTML = "";
		x.className = "commentaires";
	}
	else
	{
		x.innerHTML = "L'email est invalide.";
		x.className = "erreur";
	}
}

function Verif_CP(champ)	//vérifie l'email et, si nécessaire, signale l'erreur dans la case de tableau de droite
{
	var regex = /^[0-9]{5}$/;
	var x = champ.parentNode.parentNode.cells[2]; // 3ème cellule de la même rangée que le champ <input> contenant l'email
	if(regex.test(champ.value) || champ.value == "")
	{
		x.innerHTML = "";
		x.className = "commentaires";
	}
	else
	{
		x.innerHTML = "Le code postal est invalide : il doit comporter 5 chiffres.";
		x.className = "erreur";
	}
}

function Verif_telephone(champ)	//vérifie et formatte le téléphone et, si nécessaire, signale une erreur dans la case de tableau de droite
{
	var regex = /[0-9]/g;
	var x = champ.parentNode.parentNode.cells[2]; // 3ème cellule de la même rangée que le champ <input> contenant le téléphone
	var telephone="";
	var telephone_espace="";
	var chiffre;
	var erreur = false;
	chiffre = regex.exec(champ.value);
	while (chiffre != null)
	{
		telephone = telephone+chiffre;
		chiffre = regex.exec(champ.value);
	}
	// on n'a gardé dans "telephone" que les chiffres
	if ((telephone.length == 10) || (telephone.length == 0))
	{
		x.innerHTML = "La plupart des formats sont acceptés, mais le numéro sera mis à la forme 01 23 45 67 89. Le plus simple est de taper 10 chiffres sans espaces.";
		x.className = "commentaires";
		telephone_espace = telephone.slice(0,2) + " " + telephone.slice(2,4) +" " + telephone.slice(4,6) + " " + telephone.slice(6,8) + " " + telephone.slice(8,10);
		champ.value = telephone_espace;
	}
	else
	{
		x.innerHTML = "Le n° de téléphone doit comporter 10 chiffres.";
		x.className = "erreur";
	}
}

function verifNumerique(champ) //vérifie que le contenu du champ <input> est bien numérique
{
	var entree = champ.value;
	var x = champ.parentNode.parentNode.cells[2]; // 3ème cellule de la même rangée que le champ <input> contenant le nombre
	if (isNaN(entree))	{ //ce n'est pas un nombre
		x.innerHTML = "Ce champ doit contenir un nombre entier.";
		x.className = "erreur";
	}
	else if (x.className == "erreur" ) { //c'est un nombre et il y avait une erreur précédement signalée
		x.innerHTML = "";
		x.className = "commentaires";
	} //sinon, on ne fait rien
}

function noaccent(chaine) { //supprime les accents, le c cédille et le n avec tilde
	var temp;
	temp = chaine.replace(/[àáâãä]/g,"a");
	temp = temp.replace(/[ÀÁÂÃÄ]/g,"A");
	temp = temp.replace(/ç/g,"c");
	temp = temp.replace(/Ç/g,"C");
	temp = temp.replace(/[éèêë]/g,"e");
	temp = temp.replace(/[ÈÉÊË]/g,"E");
	temp = temp.replace(/[ìíîï]/g,"i");
	temp = temp.replace(/[ÌÍÎÏ]/g,"I");
	temp = temp.replace(/ñ/g,"n");
	temp = temp.replace(/Ñ/g,"N");
	temp = temp.replace(/[òóôõö]/g,"o");
	temp = temp.replace(/[ÒÓÔÕÖ]/g,"O");
	temp = temp.replace(/[ùúûü]/g,"u");
	temp = temp.replace(/[ÙÚÛÜ]/g,"U");
	temp = temp.replace(/[ýÿ]/g,"y");
	temp = temp.replace(/[ýÿ]/g,"y");
	temp = temp.replace(/[Ý]/g,"yY");
	return temp;
}


