///////////////////////////////////////////////////////////////////////////////////////////////////////////
// validate email 

		function isEmailValid(courrielFourni) {
		   // Format usager@domaine
		   var emailPat=/^(.+)@(.+)$/
		   // Caractères spéciaux
		   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
		   // Caractères valides pour l'usager ou le domaine
		   var validChars="\[^\\s" + specialChars + "\]"
		   // Cas spécial d'un usager entre guillemets
		   var quotedUser="(\"[^\"]*\")"
		   // Cas spécial d'une adresse IP comme domaine ([] requis)
		   var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
		   // Atome : série de caractères valides
		   var atom=validChars + '+'
		   // Mot : atome ou usager entre guillemets
		   var word="(" + atom + "|" + quotedUser + ")"
		   // Structure d'un usager
		   var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
		   // Structure d'un domaine symbolique
		   var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

		   // Atomisation du courriel fourni
		   var matchArray=courrielFourni.match(emailPat)
		   if (matchArray==null) {
		      // Échec de l'atomisation : le courriel fourni a une structure exotique
		      return false
		   }

		   // Vérification de l'usager et du domaine
		   var user=matchArray[1]
		   var domain=matchArray[2]

		   if (user.match(userPat)==null) {
		      // Usager invalide
		      return false
		   }

		   // Cas d'une adresse IP
		   var IPArray=domain.match(ipDomainPat)
		   if (IPArray!=null) {
		      // C'est bien une adresse IP
		        for (var i=1;i<=4;i++) {
		         if (IPArray[i]>255) {
		            // Adresse IP invalide
		            return false
		         }
		      }
		      return true
		   }

		   // Cas d'un domaine symbolique
		   var domainArray=domain.match(domainPat)
		   if (domainArray==null) {
		      // Domaine invalide
		      return false
		   }

		   // Analyse syntaxique du domaine
		   var atomPat=new RegExp(atom,"g")
		   var domArr=domain.match(atomPat)
		   if (domArr[domArr.length-1].length<2) { // || domArr[domArr.length-1].length>3) {
		      // Le domaine ne se termine pas par un suffixe de 2 ou + caractères
		      return false
		   }
		   if (domArr.length<2) {
		      // Il n'y a pas de nom d'hôte
		      return false
		   }

		   // Si on s'est rendu jusqu'ici...
		   return true;
		}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//validate area code
function isAreaCodeValid(areacode){
   var re = /^\d{3}$/;
   return !(areacode.split(re) == areacode);
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////
//validate phone no. 1er champ
function isPhoneValid1(phone1){
   var re = /^\d{3}$/;
   return !(phone1.split(re) == phone1); // && phone.split(re2) == phone);
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////
//validate phone no. 2iem champ
function isPhoneValid2(phone2){
   var re = /^\d{4}$/;
   return !(phone2.split(re) == phone2); // && phone.split(re2) == phone);
}


////////////////////////////////////////////////////////////////////////////////////////////////////////
//validate code postal
function isPostalCodeValid(postalcode){
   var re = /^[a-zA-Z]{1}\d{1}[a-zA-Z]{1}\s\d{1}[a-zA-Z]{1}\d{1}$/;
   return !(postalcode.split(re) == postalcode); // && postalcode.split(re2) == postalcode);
}


/////////////////////////////////////////////////////////////////////////////////////
//validate Newsletter form
function validateNewsletterForm(form) {

 //validate First Name
   	if (document.getElementById("txtFirstName").value == "" ) { 
		alert( "SVP, entrez votre prénom." );
		document.getElementById("txtFirstName").focus();
        return false; }
   
    
//validate Familly Name   
	
	if (document.getElementById("txtLastName").value == "" ) { 
	     alert( "SVP, entrez votre nom." );
	    document.getElementById("txtLastName").focus();
         return false; }



//validate Email   
	if (document.getElementById("txtEmail").value == "" ) { 
	    alert( "SVP, entrez votre adresse courriel." );
		 document.getElementById("txtEmail").focus();
        return false; }
	if (!isEmailValid(document.getElementById("txtEmail").value)) {
		alert("SVP, entrez une adresse courriel valide.");
		document.getElementById("txtEmail").focus();
		return false;
	}
}

/////////////////////////////////////////////////////////////////////////////////////
//validate Event Registration form
function validateEventRegistrationForm(form) {

 //validate First Name
   	if (document.getElementById("txtFirstName").value == "" ) { 
		alert( "SVP, entrez votre prenom." );
		document.getElementById("txtFirstName").focus();
        return false; }
   
    
//validate Familly Name   
	
		if (document.getElementById("txtLastName").value == "" ) { 
	     alert( "SVP, entrez votre nom." );
	    document.getElementById("txtLastName").focus();
         return false; }



//validate Email   
	if (document.getElementById("txtEmail").value == "" ) { 
	    alert( "SVP, entrez votre adresse courriel." );
		 document.getElementById("txtEmail").focus();
        return false; }
	if (!isEmailValid(document.getElementById("txtEmail").value)) {
		alert("SVP, entrez une adresse courriel valide.");
		document.getElementById("txtEmail").focus();
		return false;
	}

//validate Area code	
	if (document.getElementById("txtPhone1").value == "" ) { 
	    alert( "SVP, entrez votre code regional." );
	   document.getElementById("txtPhone1").focus();
        return false; }
	if (!isAreaCodeValid(document.getElementById("txtPhone1").value)) {
		alert("SVP, entrez un code regional valide.(Exemple: 555)");
		document.getElementById("txtPhone1").focus();
		return false;
	}
	
//validate phone number
	if (document.getElementById("txtPhone2").value == "" ) { 
	    alert( "SVP, entrez votre numero de telephone." );
		document.getElementById("txtPhone2").focus();
        return false; }
	if (!isPhoneValid1(document.getElementById("txtPhone2").value)) {
		alert("SVP, entrez un numero de telephone valide.(Exemple: 555)");
		document.getElementById("txtPhone2").focus();
		return false;
	}
	
//validate phone number
	if (document.getElementById("txtPhone3").value == "" ) { 
	    alert( "SVP, entrez votre numero de telephone." );
		document.getElementById("txtPhone3").focus();
        return false; }
	if (!isPhoneValid2(document.getElementById("txtPhone3").value)) {
		alert("SVP, entrez un numero de telephone valide.(Exemple: 1234)");
		document.getElementById("txtPhone3").focus();
		return false;
	}
	
//validate postal code
	if (document.getElementById("txtPostalCode").value == "" ) { 
	    alert( "SVP, entrez votre code postal." );
		document.getElementById("txtPostalCode").focus();
        return false; }
	if (!isPostalCodeValid(document.getElementById("txtPostalCode").value)) {
		alert("SVP, entrez un code postal valide.(H1H 2H3)");
		document.getElementById("txtPostalCode").focus();
		return false;
	}	
}