/*
'---
'--- Validation.js - Fonctions de validation en JavaScript
'---
'--- Par Francois Cusson-Lafrenaye, ing.
'---     Seconde Vision [www.sv.qc.ca]
'---
'--- Ce fichier doit être inclus dans la section <HEAD>. Chacun des champs à valider peut
'--- être indiqué ainsi :
'---
'--- <SCRIPT>AjoutValidation("NomForm.NomChamp", VAL_NONVIDE + VAL_NOMBRE, "Vous devez indiquer de quoi de valides!");</SCRIPT>
'---
'--- REVISIONS
' -- 2008/09/17 JPB-    Création
'---
*/

<!-- Fonctions de validation -->

var VAL_NONVIDE = 1;
var VAL_NOMBRE = 2;

var ArrayValidation = new Array();

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * AjoutValidation() - Ajoute un item à valider
 */
function AjoutValidation(iChamp, iType, iMessageErreur)
{
	ArrayValidation[ArrayValidation.length] = new Array(iChamp, iType, iMessageErreur);
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * DoValidation() - Valide chacun des items enregistrés dans ArrayValidation
 */
function DoValidation()
{
	var i = 0;
	var Champ;

	for ( ; i < ArrayValidation.length; i++)
	{
		// Accès à l'objet Champ avec gestion des [] dans les noms en PHP
		if (ArrayValidation[i][0].indexOf("[]") < 0)
		{
			Champ = eval("document." + ArrayValidation[i][0]);
		}
		else
		{
			// On utilise la forme NomForm.elements['NomChamp[]']
			var NomChamp = ArrayValidation[i][0].replace(".", ".elements['") + "']";
			Champ = eval("document." + NomChamp);
		}
		
		// Si le champ est valide...
		if (typeof(Champ) != "undefined")
		{
            // Sinon, si le champ est une liste (select)...
            if (typeof(Champ.options) != "undefined")
            {
				// Non-vide?
				if (ArrayValidation[i][1] & VAL_NONVIDE)
				{
					// On s'assure que la valeur sélectionnée a une valeur non-vide
					var Selection = Champ.selectedIndex;
					var Valeur = "" + Champ.options[Selection].value;
					
					if (Valeur == "")
					{
						alert(ArrayValidation[i][2]);

						if (Champ.type != "hidden") Champ.focus();

						return false;
					}
                }
            }

			// Sinon, si le champ est un array...
			else if (typeof(Champ.length) != "undefined")
			{
				// Non-vide?
				if (ArrayValidation[i][1] & VAL_NONVIDE)
				{
					// On s'assure qu'on a au moins une valeur de choisie (attention si TEXT !)
					var Okay = false;
					var j = 0;

					for ( ; j < Champ.length; j++)
					{
						Okay |= Champ[j].checked;
					}

					if (!Okay)
					{
						alert(ArrayValidation[i][2]);

						if (Champ.type != "hidden") Champ[0].focus();

						return false;
					}
				}

				// Nombre?
				if (ArrayValidation[i][1] & VAL_NOMBRE)
				{
					// On regarde chaque champ et, s'il contient une valeur, elle doit etre numérique
					var j = 0;

					for ( ; j < Champ.length; j++)
					{
                        if (Champ[j].value != "")
					    {
                            // Protection contre les virgules et les espaces
						    if (Champ[j].value.indexOf(",") > -1 || Champ[j].value.indexOf(" ") > -1)
						    {
                                alert(ArrayValidation[i][2]);

							     if (Champ[j].type != "hidden") Champ[j].focus();

							     return false;
						    }
						    else if (isNaN(parseFloat(Champ[j].value)))
						    {
							     alert(ArrayValidation[i][2]);

							     if (Champ[j].type != "hidden") Champ[j].focus();

							     return false;
						    }
						    else
						    {
							     Champ.value = parseFloat(Champ.value);
						    }
						}
					}
				}
			}

			// Sinon, si le champ est un champ "ordinaire"...
			else if (typeof(Champ.length) == "undefined")
			{
				// Non-vide?
				if (ArrayValidation[i][1] & VAL_NONVIDE)
				{
					if (Champ.value == "" || Champ.value == " " || Champ.value == "  ")
					{
						alert(ArrayValidation[i][2]);

						if (Champ.type != "hidden") Champ.focus();

						return false;
					}
				}

				// Nombre?
				if (ArrayValidation[i][1] & VAL_NOMBRE)
				{
					if (Champ.value != "")
					{
						// Protection contre les virgules et les espaces
						if (Champ.value.indexOf(",") > -1 || Champ.value.indexOf(" ") > -1)
						{
							alert(ArrayValidation[i][2]);

							if (Champ.type != "hidden") Champ.focus();

							return false;
						}
						else if (isNaN(parseFloat(Champ.value)))
						{
							alert(ArrayValidation[i][2]);

							if (Champ.type != "hidden") Champ.focus();

							return false;
						}
						else
						{
							Champ.value = parseFloat(Champ.value);
						}
					}
				}
			}
			
			// Sinon, on a un probleme avec la validation!
			else 
			{
                alert("Le champ " + ArrayValidation[i][0] + " ne peut pas être validé.");
            }
		}
	}

	return true;
}


function ValideCourriel(iCourriel) 
{ 
    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 (iCourriel.match(re)==iCourriel)&&(iCourriel.substr(iCourriel.lastIndexOf("@")).length<=256);   
}

function VerificationDomaine(iCourriel)
{
    // Liste des domaines possibles
    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 iCourriel.substr(iCourriel.lastIndexOf(".") + 1).match(re)!=null;
}


function ValiderSoumission(Form_){
	var Erreur = 0;

	if(document.getElementById("Nom").value == ""){
		Erreur = 1;
		document.getElementById("labelsoumission_nom").style.color = "#B22722";
		document.getElementById("labelsoumission_nom").style.fontWeight = "bold";
	}else{
		document.getElementById("labelsoumission_nom").style.color = "#464648";
		document.getElementById("labelsoumission_nom").style.fontWeight = "normal";
	}
	
	if(document.getElementById("Telephone").value == ""){
		Erreur = 1;
		document.getElementById("labelsoumission_telephone").style.color = "#B22722";
		document.getElementById("labelsoumission_telephone").style.fontWeight = "bold";
	}else{
		document.getElementById("labelsoumission_telephone").style.color = "#464648";
		document.getElementById("labelsoumission_telephone").style.fontWeight = "normal";
	}
	
	if(document.getElementById("Courriel").value.indexOf("@") != -1 && document.getElementById("Courriel").value.indexOf(".") != -1){
		document.getElementById('labelsoumission_courriel').style.color = "#464648";
		document.getElementById('labelsoumission_courriel').style.fontWeight = "normal";
	}else{
		document.getElementById('labelsoumission_courriel').style.color = "#B22722";
		document.getElementById('labelsoumission_courriel').style.fontWeight = "bold";
		Erreur = 1;	
	}
	
	if(Erreur == 0){
		return true;
	}else{
		return false;
	}
}

function ValiderNousJoindre(Form_){
	var Erreur = 0;

	if(document.getElementById("Nom").value == ""){
		Erreur = 1;
		document.getElementById("labelcontact_nom").style.color = "#B22722";
		document.getElementById("labelcontact_nom").style.fontWeight = "bold";
	}else{
		document.getElementById("labelcontact_nom").style.color = "#464648";
		document.getElementById("labelcontact_nom").style.fontWeight = "normal";
	}
	
	if(document.getElementById("Courriel").value.indexOf("@") != -1 && document.getElementById("Courriel").value.indexOf(".") != -1){
		document.getElementById('labelcontact_courriel').style.color = "#464648";
		document.getElementById('labelcontact_courriel').style.fontWeight = "normal";
	}else{
		document.getElementById('labelcontact_courriel').style.color = "#B22722";
		document.getElementById('labelcontact_courriel').style.fontWeight = "bold";
		Erreur = 1;	
	}
	
	if(document.getElementById("Message").value == ""){
		Erreur = 1;
		document.getElementById("labelcontact_message").style.color = "#B22722";
		document.getElementById("labelcontact_message").style.fontWeight = "bold";
	}else{
		document.getElementById("labelcontact_message").style.color = "#464648";
		document.getElementById("labelcontact_message").style.fontWeight = "normal";
	}
	
	if(Erreur == 0){
		return true;
	}else{
		return false;
	}
}




/* DÉBUT FONCTION DE VALIDATION USERFRIENDLY (sans alert()) */
function ValiderFormulaireAbonnementBulletin()
{                       
    var Erreur = 0;
    
    // Valide Prenom
    if(document.getElementById("Prenom").value == "")
    {
        Erreur = 1;
        document.getElementById("TD_MessageErreur").innerHTML = "Votre prénom est obligatoire."
        document.getElementById("TD_Prenom").className = "TD_LabelErreur"
        document.getElementById('Prenom').focus();
        return false;
    }
    else
    {
        Erreur = 0;
        document.getElementById("TD_MessageErreur").innerHTML = "&nbsp;"
        document.getElementById("TD_Prenom").className = "TD_LabelFormulaire"
    }
    
    // Valide Nom
    if(document.getElementById("Nom").value == "")
    {
        Erreur = 1;
        document.getElementById("TD_MessageErreur").innerHTML = "Votre nom est obligatoire."
        document.getElementById("TD_Nom").className = "TD_LabelErreur"
        document.getElementById('Nom').focus();
        return false;
    }
    else
    {
        Erreur = 0;
        document.getElementById("TD_MessageErreur").innerHTML = "&nbsp;"
        document.getElementById("TD_Nom").className = "TD_LabelFormulaire"
    }
    
    // Valide Courriel
    if(document.getElementById('Courriel').value == "" || document.getElementById("Courriel").value.indexOf("@") == -1 || document.getElementById("Courriel").value.indexOf(".") == -1)
    {
        Erreur = 1;
        document.getElementById("TD_MessageErreur").innerHTML = "Votre courriel est obligatoire."
        document.getElementById("TD_Courriel").className = "TD_LabelErreur"
        document.getElementById('Courriel').focus();
        return false;
    }
    else
    {
        Erreur = 0;
        document.getElementById("TD_MessageErreur").innerHTML = "&nbsp;"
        document.getElementById("TD_Courriel").className = "TD_LabelFormulaire"
    }
    
    
    if(Erreur == 0)
        return true;
    else
        return false;
}

function ValiderFormulaireAbonnementBulletin_Anglais()
{
    var Erreur = 0;
    
    // Valide Prenom
    if(document.getElementById("Prenom").value == "")
    {
        Erreur = 1;
        document.getElementById("TD_MessageErreur").innerHTML = "The first name is required."
        document.getElementById("TD_Prenom").className = "TD_LabelErreur"
        document.getElementById('Prenom').focus();
        return false;
    }
    else
    {
        Erreur = 0;
        document.getElementById("TD_MessageErreur").innerHTML = "&nbsp;"
        document.getElementById("TD_Prenom").className = "TD_LabelFormulaire"
    }
    
    // Valide Nom
    if(document.getElementById("Nom").value == "")
    {
        Erreur = 1;
        document.getElementById("TD_MessageErreur").innerHTML = "The last name is required."
        document.getElementById("TD_Nom").className = "TD_LabelErreur"
        document.getElementById('Nom').focus();
        return false;
    }
    else
    {
        Erreur = 0;
        document.getElementById("TD_MessageErreur").innerHTML = "&nbsp;"
        document.getElementById("TD_Nom").className = "TD_LabelFormulaire"
    }
    
    // Valide Courriel
    if(document.getElementById('Courriel').value == "" || document.getElementById("Courriel").value.indexOf("@") == -1 || document.getElementById("Courriel").value.indexOf(".") == -1)
    {
        Erreur = 1;
        document.getElementById("TD_MessageErreur").innerHTML = "The e-mail is required."
        document.getElementById("TD_Courriel").className = "TD_LabelErreur"
        document.getElementById('Courriel').focus();
        return false;
    }
    else
    {
        Erreur = 0;
        document.getElementById("TD_MessageErreur").innerHTML = "&nbsp;"
        document.getElementById("TD_Courriel").className = "TD_LabelFormulaire"
    }
    
    
    if(Erreur == 0)
        return true;
    else
        return false;
}   

function Clear_ToutesErreurValidationFormulaireAbonnementBulletin()
{
    document.getElementById("TD_MessageErreur").innerHTML = "&nbsp;"
    document.getElementById("TD_Prenom").className = "TD_LabelFormulaire"
    document.getElementById("TD_Nom").className = "TD_LabelFormulaire"
    document.getElementById("TD_Courriel").className = "TD_LabelFormulaire"    
}




/* DÉBUT FONCTION DE VALIDATION USERFRIENDLY (sans alert()) */
function ValiderFormulaireCareer(Lang_)
{                       
    var Erreur = 0;
    
    // Valide Salutation
    if(document.getElementById("Madame").checked == false && document.getElementById("Monsieur").checked == false)
    {
        Erreur = 1;
        if(Lang_ == 'fr')
            document.getElementById("TD_MessageErreur").innerHTML = "La salutation est obligatoire."
        else
            document.getElementById("TD_MessageErreur").innerHTML = "The greeting is required."
        document.getElementById("TD_Salutation").className = "TD_LabelErreur"        
        return false;
    }
    else
    {
        Erreur = 0;
        document.getElementById("TD_MessageErreur").innerHTML = "&nbsp;"
        document.getElementById("TD_Salutation").className = "TD_LabelFormulaire"
    } 
    
    // Valide Prenom
    if(document.getElementById("Prenom").value == "")
    {
        Erreur = 1;
        if(Lang_ == 'fr')
            document.getElementById("TD_MessageErreur").innerHTML = "Votre prénom est obligatoire."
        else
            document.getElementById("TD_MessageErreur").innerHTML = "Your first name is required."
        document.getElementById("TD_Prenom").className = "TD_LabelErreur"
        document.getElementById('Prenom').focus();
        return false;
    }
    else
    {
        Erreur = 0;
        document.getElementById("TD_MessageErreur").innerHTML = "&nbsp;"
        document.getElementById("TD_Prenom").className = "TD_LabelFormulaire"
    }
    
    // Valide Nom
    if(document.getElementById("Nom").value == "")
    {
        Erreur = 1;
        if(Lang_ == 'fr')
            document.getElementById("TD_MessageErreur").innerHTML = "Votre nom est obligatoire."
        else
            document.getElementById("TD_MessageErreur").innerHTML = "Your last name is required."
        document.getElementById("TD_Nom").className = "TD_LabelErreur"
        document.getElementById('Nom').focus();
        return false;
    }
    else
    {
        Erreur = 0;
        document.getElementById("TD_MessageErreur").innerHTML = "&nbsp;"
        document.getElementById("TD_Nom").className = "TD_LabelFormulaire"
    }
    
    // Valide Courriel
    if(document.getElementById('Courriel').value == "" || document.getElementById("Courriel").value.indexOf("@") == -1 || document.getElementById("Courriel").value.indexOf(".") == -1)
    {
        Erreur = 1;
        if(Lang_ == 'fr')
            document.getElementById("TD_MessageErreur").innerHTML = "Votre courriel est obligatoire."
        else
            document.getElementById("TD_MessageErreur").innerHTML = "Your e-mail is required."
        document.getElementById("TD_Courriel").className = "TD_LabelErreur"
        document.getElementById('Courriel').focus();
        return false;
    }
    else
    {
        Erreur = 0;
        document.getElementById("TD_MessageErreur").innerHTML = "&nbsp;"
        document.getElementById("TD_Courriel").className = "TD_LabelFormulaire"
    }
    
    
    if(Erreur == 0)
        return true;
    else
        return false;
}

function Clear_ToutesErreurValidationFormulaireFormulaireCareer()
{
    document.getElementById("TD_MessageErreur").innerHTML = "&nbsp;"
    document.getElementById("TD_Salutation").className = "TD_LabelFormulaire"
    document.getElementById("TD_Prenom").className = "TD_LabelFormulaire"
    document.getElementById("TD_Nom").className = "TD_LabelFormulaire"
    document.getElementById("TD_Courriel").className = "TD_LabelFormulaire" 
}
