<!-- Fonction qui valide si un champs est obligatoire -->
function validate_required(field,alerttxt)
{
	with (field)
	{
		if (value==null||value=="")
		{
			alert(alerttxt);
			return false
		}
		else 
		{
			return true
		}
	}
}


// Valide si un chiffre
function isNumber(val)
{
	if (isNaN(val))
	{
		return false;
	}
	else
	{
		return true;
	} 
}

// Valide si une lettre
function isAlpha(val)
{
	// True if val is a single alphabetic character.
	var re = /^([a-lA-L])$/;
	return (re.test(val));
}


<!-- Fonction qui valide que l'addresse email est correcte -->
function validate_email(field,alerttxt)
{
	with (field)
	{
		apos = value.indexOf("@")
		dotpos = value.lastIndexOf(".")
		
		if (apos<1 || dotpos-apos<2) 
		{
			alert(alerttxt);
			return false
		}
		else 
		{
			return true
		}
	}
}


<!-- Fonction de validation du ZEP -->
function validate_ZEP(field,alerttxt)
{
	with (field)
	{
		var first3char = value.substring(0,3)
		var next5digit = value.substring(3,8)
		var next1caracter = value.substring(8,9)
		var next3digit = value.substring(9,12)		
		
		// Valide que la chaine est bien un ZEP
		if (value==null || value=="" || first3char!='ZEP' || isNumber(next5digit) == false || isAlpha(next1caracter) == false || isNumber(next3digit) == false ) 
		{
			alert(alerttxt);
			return false
		}
		else 
		{
			return true
		}
	}
}


<!-- Fonction pour la demande d'une validation -->
function validate_form(thisform)
{
	with (thisform)
	{
		// Récupération de la langue
		var strReturn = "";
		var strHref = window.location.href;
	
		if ( strHref.indexOf("?") > -1 )
		{
			var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
			var aQueryString = strQueryString.split("&");
		
			for ( var iParam = 0; iParam < aQueryString.length; iParam++ )
			{
			  if (aQueryString[iParam].indexOf("language=") > -1 )
			  {
				var aParam = aQueryString[iParam].split("=");
				strReturn = aParam[1];
				break;
			  }
			}
		}
		
		// Construction des messages d'erreur
		if(strReturn == "fr")
		{
			var firstNameError = "Vous-devez remplir le champs PRÉNOM!";
			var lastNameError = "Vous-devez remplir le champs NOM!";
			var addressError = "Vous-devez remplir le champs ADDRESSE!";
			var cityError = "Vous-devez remplir le champs VILLE!";
			var countryError = "Vous-devez remplir le champs PAYS!";
			var provinceError = "Vous-devez remplir le champs ÉTAT/PROVINCE!";
			var postalCodeError = "Vous-devez remplir le champs CODE POSTAL/ZIP!";
			var emailError = "Vous-devez remplir le champs COURRIEL!";
			var purchaseDateMonthError = "Vous-devez remplir le champs MOIS de la DATE D'ACHAT!";
			var purchaseDateDayError = "Vous-devez remplir le champs JOURS de la DATE D'ACHAT!";
			var purchaseDateYearError = "Vous-devez remplir le champs ANNÉE de la DATE D'ACHAT!";
			var serialNumberError = "Vous-devez remplir le champs NUMÉRO DE SÉRIE (ZEP)!\nEx.: ZEP12345A123";
			var dealerNameError = "Vous-devez remplir le champs NOM DU DÉTAILLANT!";
		}
		else
		{
			var firstNameError = "FIRST NAME must be filled out!";
			var lastNameError = "LAST NAME must be filled out!";
			var addressError = "STREET ADDRESS must be filled out!";
			var cityError = "CITY must be filled out!";
			var countryError = "COUNTRY must be selected!";
			var provinceError = "STATE/PROVINCE must be selected!";
			var postalCodeError = "POSTAL CODE/ZIP must be filled out!";
			var emailError = "E-MAIL must be filled out!";
			var purchaseDateMonthError = "The MONTH OF THE PURCHASED date must be selected!";
			var purchaseDateDayError = "The DAY OF THE PURCHASED date must be selected!";
			var purchaseDateYearError = "The YEAR OF THE PURCHASED date must be selected!";
			var serialNumberError = "SERIAL NUMBER (ZEP) must be filled out!\nEx.: ZEP12345A123";
			var dealerNameError = "DEALER NAME must be filled out!";
		}
		
		
<!-- Si firstname est vide affiche le background en rouge -->
		if ( validate_required(firstname, firstNameError) == false )
		{
			firstname.focus();
			firstname.style.backgroundColor ='#529AD9';
			return false
		}

		<!-- Si firstname n'est pas vide affiche le background en blanc -->
		if ( validate_required(firstname,"") == true )
		{
			firstname.style.backgroundColor ='#ffffff';
		}
		
<!-- Si lastname est vide affiche le background en rouge -->
		if ( validate_required(lastname, lastNameError) == false )
		{
			lastname.focus();
			lastname.style.backgroundColor ='#529AD9';
			return false
		}

		<!-- Si lastname n'est pas vide affiche le background en blanc -->
		if ( validate_required(lastname,"") == true )
		{
			lastname.style.backgroundColor ='#ffffff';
		}
		
<!-- Si street address est vide affiche le background en rouge -->
		if ( validate_required(address, addressError) == false )
		{
			address.focus();
			address.style.backgroundColor ='#529AD9';
			return false
		}

		<!-- Si street address n'est pas vide affiche le background en blanc -->
		if ( validate_required(address,"") == true )
		{
			address.style.backgroundColor ='#ffffff';
		}
		
<!-- Si city est vide affiche le background en rouge -->
		if ( validate_required(city, cityError) == false )
		{
			city.focus();
			city.style.backgroundColor ='#529AD9';
			return false
		}

		<!-- Si city n'est pas vide affiche le background en blanc -->
		if ( validate_required(city,"") == true )
		{
			city.style.backgroundColor ='#ffffff';
		}
		
<!-- Si country est vide affiche le background en rouge -->
		if ( validate_required(country, countryError) == false )
		{
			country.focus();
			country.style.backgroundColor ='#529AD9';
			return false
		}

		<!-- Si country n'est pas vide affiche le background en blanc -->
		if ( validate_required(country,"") == true )
		{
			country.style.backgroundColor ='#ffffff';
		}
		
<!-- Si State or Province est vide affiche le background en rouge -->
		if ( validate_required(province, provinceError) == false )
		{
			province.focus();
			province.style.backgroundColor ='#529AD9';
			return false
		}

		<!-- Si State or Province n'est pas vide affiche le background en blanc -->
		if ( validate_required(province,"") == true )
		{
			province.style.backgroundColor ='#ffffff';
		}
		
<!-- Si Postal/ZIP est vide affiche le background en rouge -->
		if ( validate_required(postal_code, postalCodeError) == false )
		{
			postal_code.focus();
			postal_code.style.backgroundColor ='#529AD9';
			return false
		}

		<!-- Si Postal/ZIP n'est pas vide affiche le background en blanc -->
		if ( validate_required(postal_code,"") == true )
		{
			postal_code.style.backgroundColor ='#ffffff';
		}				
		
<!-- Si email n'est pas valide affiche le background en rouge -->
		if ( validate_email(email, emailError) == false )
		{
			email.focus();
			email.style.backgroundColor ='#529AD9';
			return false
		}
		
		<!-- Si email est valide affiche le background en blanc -->
		if ( validate_email(email, "") == true )
		{
			email.style.backgroundColor ='#ffffff';
		}
		
<!-- Si Date purchased month n'est pas choisi affiche le background en rouge -->
		if ( validate_required(purchase_date_month, purchaseDateMonthError) == false )
		{
			purchase_date_month.focus();
			purchase_date_month.style.backgroundColor ='#529AD9';
			return false
		}
		
		<!-- Si le Date purchased month est valide affiche le background en blanc -->
		if ( validate_required(purchase_date_month,"") == true )
		{
			purchase_date_month.style.backgroundColor ='#ffffff';
		}
		
<!-- Si Date purchased days n'est pas choisi affiche le background en rouge -->
		if ( validate_required(purchase_date_day, purchaseDateDayError) == false )
		{
			purchase_date_day.focus();
			purchase_date_day.style.backgroundColor ='#529AD9';
			return false
		}
		
		<!-- Si le Date purchased days est valide affiche le background en blanc -->
		if ( validate_required(purchase_date_day,"") == true )
		{
			purchase_date_day.style.backgroundColor ='#ffffff';
		}
		
<!-- Si Date purchased years n'est pas choisi affiche le background en rouge -->
		if ( validate_required(purchase_date_year, purchaseDateYearError) == false )
		{
			purchase_date_year.focus();
			purchase_date_year.style.backgroundColor ='#529AD9';
			return false
		}
		
		<!-- Si le Date purchased years est valide affiche le background en blanc -->
		if ( validate_required(purchase_date_year,"") == true )
		{
			purchase_date_year.style.backgroundColor ='#ffffff';
		}		
		
<!-- Si ZEP n'est pas conforme au standard affiche le background en rouge -->
		if ( validate_ZEP(serial_number, serialNumberError) == false )
		{
			serial_number.focus();
			serial_number.style.backgroundColor ='#529AD9';
			return false
		}
		
		<!-- Si le ZEP est valide affiche le background en blanc -->
		if ( validate_ZEP(serial_number,"") == true )
		{
			serial_number.style.backgroundColor ='#ffffff';
		}
		
<!-- Si le dealer name n'est pas entrer affiche le background en rouge -->
		if ( validate_required(dealer_name, dealerNameError) == false )
		{
			dealer_name.focus();
			dealer_name.style.backgroundColor ='#529AD9';
			return false
		}
		
		<!-- Si le dealer name est valide affiche le background en blanc -->
		if ( validate_required(dealer_name,"") == true )
		{
			dealer_name.style.backgroundColor ='#ffffff';
		}		
	}
}