function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

/* Debut de la validation pour tous les champs select (drop down list) */
function validate_select(field, lblField){
	if(field.options.selectedIndex == 0) {
		lblField.innerHTML = "Ce champs est obligatoire!";
		field.focus();
		return false;
	}
	else 
		return true;
}
/* Fin de la validation pour tous les champs select (drop down list) */
/* ----------------------------------------------------------------------------------------------------------------------- */
/* Debut de la validation pour tous les champs qui ne doivent pas être vide */
function validate_empty (field, lblfield){
	if (trim(field.value) == ""){
		lblfield.innerHTML = "Ce champs est obligatoire!";
		field.focus(); 
		return false;
	}
	else
		return true;
}
/* Fin de la validation pour tous les champs qui ne doivent pas être vide */
/* ----------------------------------------------------------------------------------------------------------------------- */
/* Debut de la validation pour le code postal */
function validate_postCode(field, lblField){ // checks canadian codes only
	var alerttxt = "Code postal non valide!";
	with (field){
		strlen=value.length;
		lblField.innerHTML = "&nbsp;";
		if(strlen!==6) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		entry=value.toUpperCase(); // in case of lowercase
		// Check for legal characters in string - note index starts at zero
		if('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(0))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('0123456789'.indexOf(entry.charAt(1))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(2))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('0123456789'.indexOf(entry.charAt(3))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(4))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('0123456789'.indexOf(entry.charAt(5))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else return true;
	}
}
/* Fin de la validation pour le code postal */
/* ----------------------------------------------------------------------------------------------------------------------- */
/* Debut de la validation pour l'adresse de courriel */
function validate_email(field, lblField, confirm, lblConfirm){
	var alerttxt = "Courriel non valide!";
	var alerttxt2 = "Mauvaise confirmation de courriel!"
	var res;
	with (field){
		var apos=value.indexOf("@");
		var dotpos=value.lastIndexOf(".");
		var str=value.length;
		if (apos<1||dotpos-apos<2 || str-dotpos<2){lblField.innerHTML = alerttxt; field.focus(); res = false;}
		else if (field.value != confirm.value){lblConfirm.innerHTML = alerttxt2; field.focus(); res = false;}
		else {res = true;}
	}
	return res;
}
/* Fin de la validation pour l'adresse de courriel */
/* ----------------------------------------------------------------------------------------------------------------------- */
/* Debut de la validation pour l'adresse de courriel sans confirmation de courriel */
function validate_email2(field, lblField){
	var alerttxt = "Courriel non valide!";
	var res;
	with (field){
		var apos=value.indexOf("@");
		var dotpos=value.lastIndexOf(".");
		var str=value.length;
		if (apos<1||dotpos-apos<2 || str-dotpos<2){;lblField.innerHTML = alerttxt; field.focus(); res = false;}
		else {res = true;}
	}
	return res;
}

/* Fin de la validation pour l'adresse de courriel sans confirmation de courriel */
/* ----------------------------------------------------------------------------------------------------------------------- */
/* Debut de la validation pour le téléphone */
function validate_phone(field, lblField){ 
	var alerttxt = "Téléphone non valide!";
	with (field){
		strlen=value.length;
		lblField.innerHTML = "&nbsp;";
		if(strlen!==12) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		// Vérification pour que ce soit seleument des nombre et des tiret
		if('0123456789'.indexOf(value.charAt(0))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('0123456789'.indexOf(value.charAt(1))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('0123456789'.indexOf(value.charAt(2))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('-'.indexOf(value.charAt(3))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('0123456789'.indexOf(value.charAt(4))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('0123456789'.indexOf(value.charAt(5))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('0123456789'.indexOf(value.charAt(6))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('-'.indexOf(value.charAt(7))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('0123456789'.indexOf(value.charAt(8))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('0123456789'.indexOf(value.charAt(9))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('0123456789'.indexOf(value.charAt(10))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else if('0123456789'.indexOf(value.charAt(11))<0) {lblField.innerHTML = alerttxt; field.focus(); return false;}
		else return true;
	}
}
/* Fin de la validation pour le téléphone */
/* ----------------------------------------------------------------------------------------------------------------------- */
/* Debut de la validation pour les champs numérique seulement */
function validate_numbers(field, lblField){
	if(isNaN(field.value)){
		lblField.innerHTML = "Ce champs est numérique!"; 
		field.focus(); 
		return false;
	}
	else if (field.value == ""){
		lblField.innerHTML = "Ce champs est numérique!";
		field.focus();  
		return false;
	}
	else return true;
}
/* ----------------------------------------------------------------------------------------------------------------------- */
/* Fin de la validation pour le téléphone */
