/*
	Ce que ces fonctions nécéssitent plusieurs éléments

	1- Trois divs avec les ids suivants 
		1- Validation_Courriel
		2- Validation_Nom
		3- Validation_Telephone
	
	2- Quatre inputs avec les noms suivants dans le formulaire qui s'apprête à être soumis
		1- nom
		2- phone
		3- email
		4- email_confirm (nécessaire pour faire la confirmation)
		
	UTILISATION CONSEILLÉE
	
	Même si les fonctions de validation retourne une valeur pour déterminer la validité et écrivent un message d'erreur dans les divs concernées,
	je recommende fortement de toute les appeler et recevoir cette valeur dans des variables et vérifier si une des variables est "false"
	
	EXEMPLE :
	
	function Valider_Formulaire(Formulaire)
	{		
		var VCourriel = Si_Courriel_Valide(Formulaire);
		var VNom = Si_Nom_Valide(Formulaire);
		var VTel = Si_Telephone_Valide(Formulaire);
		
		return (VCourriel && VNom && VTel);
	}
*/


//J'ai fait une fonction globale pour éviter que l'on change à milles et un endroit la 
//façon de refaire si on change d'idée (supposons que l'on  veut faire apparaître des alerts)
function Ecrire_Erreur(Message, divId)
{
	document.getElementById(divId).innerHTML = Message;
}

function Effacer_Erreur(divId)
{
	if (document.getElementById(divId).innerHTML != "")
		document.getElementById(divId).innerHTML = "";
}

//Appelé au reset du formulaire
function Nettoyer_Div_Erreur()
{
	Effacer_Erreur("Validation_Courriel");
	Effacer_Erreur("Validation_Nom");
	Effacer_Erreur("Validation_Telephone");		
}

function Si_Courriel_Valide(Formulaire, SiConfirmation)
{
	/* 
		IDÉE : Un peu limitative, mais l'idée est la suivante 
	
		Crée un vecteur qui contiendrait toutes les extensions (.com, .net., .ca, .fr., .ru, etc.)  
		que l'on connaît pour vérifier si celui est ok, mais il faut constamment se tenir à jour
	*/
	var Nom_Div_Erreur = "Validation_Courriel";
	
	if (SiConfirmation)
	{
		if (Formulaire.email.value != Formulaire.email_confirm.value)
		{
			Ecrire_Erreur("Veuillez entrer deux fois le même courriel s.v.p.", Nom_Div_Erreur);
			return false;
		}
	}	
	
	if (String(Formulaire.email.value) != "")
	{	
		if (String(Formulaire.email.value).indexOf("@") > -1)
		{
			if (String(Formulaire.email.value).indexOf(".") == -1)
			{
				Ecrire_Erreur("Une adresse courriel valide contient un ., veuillez l'entrer s.v.p.", Nom_Div_Erreur);
				return false;
			}
			else
			{
				Effacer_Erreur(Nom_Div_Erreur);
				return true;
			}
		}
		else
		{
			Ecrire_Erreur("Une adresse courriel valide contient un @, veuillez l'entrer s.v.p.", Nom_Div_Erreur);
			return false;
		}		
	}
	else
	{
		Ecrire_Erreur("Veuillez entrer une adresse courriel pour que l'on puisse vous répondre s.v.p.", Nom_Div_Erreur);
		return false;
	}
}

function Si_Nom_Valide(Formulaire)
{
	var Nom_Div_Erreur = "Validation_Nom";
	if (String(Formulaire.nom.value) == "")
	{			
		Ecrire_Erreur("Veuillez entrer votre nom s.v.p.", Nom_Div_Erreur);
		return false;
	}
	else
	{
		Effacer_Erreur(Nom_Div_Erreur);
		return true;
	}
}

function Si_Telephone_Valide(Formulaire)
{
	var Nom_Div_Erreur = "Validation_Telephone";
	//Ce n'est peut-être pas la meilleure façon de construire l'expression, mais c'est la meilleure que je connais qui fonctionne
	var Chaine_Validation = new RegExp("[0-9][0-9][0-9][-][0-9][0-9][0-9][-][0-9][0-9][0-9][0-9]");
	
	if (Formulaire.phone.value != "")
	{
		if (!Chaine_Validation.test(Formulaire.phone.value))
		{
			Ecrire_Erreur("Format de téléphone invalide, veuillez l'entrer sous le format suivant : 123-456-7891, s.v.p.", Nom_Div_Erreur);
			return false;
		}
		else
		{
			Effacer_Erreur(Nom_Div_Erreur);
			return true;
		}
	}
	else
	{
		Effacer_Erreur(Nom_Div_Erreur);
		return true;
	}
}

function Si_Code_Postal_Valide(Formulaire)
{
	var Nom_Div_Erreur = "Validation_Code_Postal";
	
	var Chaine_Validation = new RegExp("[A-Z][0-9][A-Z][ ][0-9][A-Z][0-9]");
	
	if (!Chaine_Validation.test(String(Formulaire.code_postal.value).toUpperCase()))
	{
			Ecrire_Erreur("Format de code postal invalide, veuillez l'entrer sous le format suivant : A1B 2C3, s.v.p.", Nom_Div_Erreur);
			return false;
	}
	else
	{
		Effacer_Erreur(Nom_Div_Erreur);
		return true;
	}
}
