
// Couleur des champs mal remplis, couleur au choix, en notation HEXA
// J'utilise aussi un style="background-image: url('../images/fond_champs.gif');"
// dans mes formulaires, avec bascule, mais c'est un autre sujet.
 var CouleurFAUX="#99CCFF";

/*-- Fonction d'entrée pour les vérifs du formulaire ---------------------------
          Passer this.form comme paramètre.
-------------------------------------------------------------------------------*/
function verifier(f)
{
	// Vérification du champs Nom
	if (f.nom.value.length==0)
	{
		ChampPasOK(f.nom);
		alert("Vous devez renseigner le champ Nom");
		f.nom.focus();
		return false;
	}
	ChampOK(f.nom);

	// Vérification du champs Message
	if (f.message.value.length==0)
	{
		ChampPasOK(f.message);
		alert("Vous n'avez pas écrit de message");
		f.message.focus();
		return false;
	}
	ChampOK(f.message);

	// Vérification du champs Courriel (n'accepte pas de champ courriel vide)
	if (f.mail.value.length==0) 
	{
		alert("Nous ne pourrons pas vous répondre car vous n'avez pas renseigné le champ mail");
		f.mail.focus();
		return false;
	}
	ChampOK(f.mail);

	// Vérification si champ courriel non vide et syntaxe adresse saisie
	if (f.mail.value.length!=0)  
	{
		if (!bSyntaxeEmail(f.mail.value))
		{
			ChampPasOK(f.mail);
			alert("Votre adresse mail est mal inscrite.\n\nVeuillez la vérifier.");
			f.mail.focus();
			return false;
		}
		if (!bDomainTLD(f.mail.value))
		{
			ChampPasOK(f.mail);
			alert("Votre mail n'est pas valide.\n\nVeuillez vérifier l'extension de domaine (.fr, .com, .net...)");
			f.mail.focus();
			return false;
		}
	}
	ChampOK(f.mail);

	// Affichage du message final avant enregistrement
	if(confirm("Merci "+f.nom.value+".\n\nVotre demande va être envoyée.")) f.submit();
		return false;
}

// ******* Fonctions particulières, à paramétrer ********************************

/*-- Formatage des champs texte ----------------------------------------------*/
function valid_texte(evt)
{
	var interdit='€$$¤*+.&~#"{}()[]_^°=^%µ!§:;.,?|\\/`';
	return InterditTouches(evt, interdit);
}

/*-- Formatage des champs Mail -----------------------------------------------*/
function valid_mail(evt)
{
	var interdit='àâäãçéèêëìîïòôöõùûüñ &*?!:;,#~\'"^¨%$£?²¤§%*()[]{}<>\\|/`';
	return InterditTouches(evt, interdit);
}

//******* Fonctions générales --------------------------------------------------

/*-- Vérifie la syntaxe générale d'un Email sous forme domaine en texte ------*/
function bSyntaxeEmail(sMail)
{
	var re=/^[a-z\d]+((\.|-|_)[a-z\d]+)*@((?![-\d])[a-z\d-]{0,62}[a-z\d]\.){1,4}[a-z]{2,6}$/gi;
	return (sMail.match(re)==sMail)&&(sMail.substr(sMail.lastIndexOf("@")).length<=256);
}

/*-- Vérifie que le Top Level Domain existe ------------------------------------
	Passer le courriel en entier. Attention les, ".eu" sont notés !
	La liste est à jour et en avance pour les ".eu"
	var re= ... $/gi; doit être sur une seule ligne.
	(enlever les retour chariot, mis ici pour la présentation)
------------------------------------------------------------------------------*/
function bDomainTLD(sMail)
{
	 var re=/^(ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cat|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw|aero|arpa|biz|com|coop|edu|eu|gov|info|int|mil|museum|name|net|org|pro|jobs|travel)$/gi;

		return sMail.substr(sMail.lastIndexOf(".") + 1).match(re)!=null;
}

/*------- Fonction pour interdire la frappe de certains caractères ------------
	(Passer l'évènement et le string des caractères interdits)
------------------------------------------------------------------------------*/
function InterditTouches(evt, sInterdit)
{
	var keyCode = evt.which ? evt.which : evt.keyCode;
	if (sInterdit.indexOf(String.fromCharCode(keyCode))>=0) return false;
}

/*------------------ Fonction pour mettre en minuscule -------------------------
	Passer l'objet (ex : f.mail ou document.forms['NomDuFormulaire'].mail)
------------------------------------------------------------------------------*/
function minuscule(o)
{
	o.value=o.value.toLowerCase();
}

/*-- Fonction pour réinitialiser la couleur de l'arrière plan-------------------
	Passer l'objet (ex : f.mail ou document.forms['NomDuFormulaire'].mail)
------------------------------------------------------------------------------*/
function ChampOK(o)
{
	o.style.backgroundColor="";
}

/*--Fonction pour changer la couleur de l'arrière plan ------------------------
	Passer l'objet (ex : f.mail ou document.forms['NomDuFormulaire'].mail)
------------------------------------------------------------------------------*/
function ChampPasOK(o)
{
	o.style.backgroundColor=CouleurFAUX;
}

/*----------------------------------------------------------------------
			Formatage du champs site
------------------------------------------------------------------------*/
function valid_mail(evt) {
	var keyCode = evt.which ? evt.which : evt.keyCode;
	var interdit = 'àâäãçéèêëìîïòôöõùûüñ &*?!:;,#~\'"^¨$£²¤§%*()[]{}<>\\|`';
	
	if (interdit.indexOf(String.fromCharCode(keyCode)) >= 0) {
		return false;
	}
}

/*--------------------------Annulation-------------------------------*/

function annulation() {
	document.forms['formulaire'].reset();
	document.forms['formulaire'].nom.focus()
}
//-->

