var t_erreur_email_trop_court = 'Cette adresse e-mail est trop courte.';
var t_erreur_email_trop_long = 'Cette adresse e-mail est trop longue.';
var t_erreur_email_pas_d_arobase = 'Cette adresse e-mail n\'a pas d\'arobase (@).';
var t_erreur_email_caractere_interdit = 'Cette adresse e-mail contient un caractčre interdit';
var t_erreur_email_forme = 'n\'est pas la forme d\'une adresse email.';

/**
* VĂ©rifie la validitĂ© d'un formulaire.
*
* @param HTMLFormElement form Formulaire ŕ vĂ©rifier
* @return boolean Le formulaire est valide (true) ou pas (false)
*/
function verifForm(form) {
	if(form.nom.value == '') {
		alert('Veuillez saisir votre nom.');
		form.nom.focus();
		return false;
	}
	
	if(form.prenom.value == '') {
		alert('Veuillez saisir votre prĂ©nom.');
		form.prenom.focus();
		return false;
	}
	
	if(form.adresse.value == '') {
		alert('Veuillez saisir votre adresse.');
		form.adresse.focus();
		return false;
	}
	
	if(form.code_postal.value == '') {
		alert('Veuillez saisir votre code postal.');
		form.code_postal.focus();
		return false;
	}
	
	if(form.ville.value == '') {
		alert('Veuillez saisir votre ville.');
		form.ville.focus();
		return false;
	}
	
	if(form.telephone.value == '' && form.mobile.value == '') {
		alert('Veuillez saisir votre tĂ©lĂ©phone fixe ou votre mobile.');
		form.telephone.focus();
		return false;
	}
	
	if(!verifEmail(form.email.value)) {
		form.email.focus();
		return false;
	}
	
	if(!verifRadio(form.situation)) {
		alert('Veuillez indiquer votre situation familiale.');
		return false;
	}
	
	if(form.enfant.value == '') {
		alert('Veuillez indiquer le nombre d\'enfants.');
		form.enfant.focus();
		return false;
	}
	
	if(form.revenu.value == '') {
		alert('Veuillez indiquer vos revenus annuels.');
		form.revenu.focus();
		return false;
	}
	
	if(form.impot.value == '') {
		alert('Veuillez indiquer votre impĂ´t sur le revenu.');
		form.impot.focus();
		return false;
	}
	
	return true;
}

/**
* VĂ©rifie la validitĂ© d'un champs radio.
*
* @param HTMFormEntry field Champs radio ŕ vĂ©rifier
* @return boolean Le champs radio est valide (true) ou pas (false)
*/
function verifRadio(field) {
	 radioOk = false;
	 for(i = 0; i < field.length; i++){
	   if(field[i].checked){
		  radioOk = true;
		  break;
		}
	 }
	 return radioOk;
}

/**
* VĂ©rifie la validitĂ© d'une adresse e-mail.
*
* @param String email Adresse e-mail ŕ vĂ©rifier
* @return boolean L'adresse e-mail est valide (true) ou pas (false)
*/
function verifEmail(email) {
	if(email.length < 6){
		alert(email + ' : ' + t_erreur_email_trop_court);
		return false;
	}
	if(email.length > 80){
		alert(email + ' : ' + t_erreur_email_trop_long);
		return false;
	}
	if(!email.match(/@/)){
		alert(email + ' : ' + t_erreur_email_pas_d_arobase);
		return false;
	}
	var caractere = '';
	if(caractere = email.match(/([^a-zA-Z0-9_\@\.\-])/i)){
		alert(email + ' : ' + t_erreur_email_caractere_interdit + ' (' + caractere[0] + ').');
		return false;
	}
	if(!email.match(/^([a-z0-9_\-\.])+@(([a-z0-9_\-])+\.)+[a-z]{2,4}$/i)){
		alert(email + ' ' + t_erreur_email_forme);
		return false;
	}
	
	return true;
}

/**
* VĂ©rifie la validitĂ© d'un code postal.
*
* @param String postCode Code postal ŕ vĂ©rifier
* @return boolean Le code postal est valide (true) ou pas (false)
*/
function verifCodePostal(postCode, error) {
	if (isNaN(postCode) || (!postCode.match(/([0-9]{5})/i))){
		alert(postCode + ' ' + error);
		return false;
	}
	
	return true;
}

/**
* VĂ©rifie la validitĂ© d'un numĂ©ro de tĂ©lĂ©phone.
*
* @param String postCode NumĂ©ro de tĂ©lĂ©phone ŕ vĂ©rifier
* @return boolean Le numĂ©ro de tĂ©lĂ©phone est valide (true) ou pas (false)
*/
function verifPhone(phone, error) {
	if (isNaN(phone) || (!phone.match(/([0-9]{5})/i))) {
		alert(phone + ' ' + error);
		return false;
	}
	
	return true;
}

