// JavaScript Document

//Fonction qui va être appelée sur un champs lorsqu'une touche est appuyée
//@param field, représente le champ à valider
//@param e, permet de récupérer la touche appuyée
function FormValidate(field, e){
	//onKeyUp on annule la touche ENTRÉE
	if(e != null){
		if(e.which == 13)return false;
		if(e.keyCode == 13)return false;
	}
	//Variables de départ
	var id = field.id;
	var value = field.value;
	var reponse = 'OK';
	
	//Si la valeur du champ n'est pas vide
	if(value != ""){
		//On utilise l'id du champ à vérifier afin de savoir quelle expdression régulière lui appliquer
		switch(id){
			case 'nom':
				var ereg = /^([A-ZÇÉÈËÊÏÎÔÖÙÜÈ][a-zçéèëêïîôòùü']+( |\-)?)+$/;
				var message = '(ex: Tremblay)';
				//Vérification selon l'expression régulière
				if(value.match(ereg)){
					reponse = 'OK';
				}else{
					reponse = message;
				}
				break;
		
			case 'prenom':
				var ereg = /^([A-ZÇÉÈËÊÏÎÔÖÙÜÈ][a-zçéèëêïîôòùü']+( |\-)?)+$/;
				var message = '(ex: Jean)';
				//Vérification selon l'expression régulière
				if(value.match(ereg)){
					reponse = 'OK';
				}else{
					reponse = message;
				}
				break;
		
			case 'courriel':
				var ereg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$/;
				var message = '(ex: courriel@gmail.com)';
				//Vérification selon l'expression régulière
				if(value.match(ereg)){
					reponse = 'OK';
				}else{
					reponse = message;
				}
				break;
				
			case 'telephone':
				var ereg = /^(\()?([0-9]{3})(\))?[ ]+([0-9]{3})( )?(\-)?( )?([0-9]{4})$/;
				var message = '(ex: 418 562-5555)';
				//Vérification selon l'expression régulière
				if(value.match(ereg)){
					reponse = 'OK';
				}else{
					reponse = message;
				}
				break;
				
			case 'sujet':
				var message = '(ex: Renseignements)';
				//Vérification selon l'expression régulière
				if('message' != ""){
					reponse = 'OK';
				}else{
					reponse = message;
				}
				break;
				
			case 'message':
				var message = 'Votre message ne peut être vide !';
				//Vérification selon l'expression régulière
				if('message' != ""){
					reponse = 'OK';
				}else{
					reponse = message;
				}
				break;
		}
		//Si une erreur existe
		if(reponse != 'OK'){
			//Si un message d'erreur existe déjà pour ce champ
			if($('#err_' + id).length != 0){
				
			}else{
				//On créé l'erreur
				$('#' + id).after("<span class='error' id='err_"+ id +"'>&nbsp;&nbsp;&nbsp;<img src='images/delete.png' alt='' width='19' height='17'/>&nbsp;&nbsp;&nbsp;" + reponse + "</span>");
				$('#valide_' + id).remove();
			}
			return false;
			
		}else{
		//Sinon pas d'erreurs
			//$('#valide_' + id).remove();
			//Si un message d'erreur existe pour le champ, on l'efface
			if($('#err_' + id).length != 0){
				$('#err_' + id).remove();
				$('#' + id).after("<span class='valide' id='valide_"+ id +"'>&nbsp;&nbsp;&nbsp;<img src='images/check.png' alt='' width='19' height='17'/></span>");
				
			}
			return true;
			
		}
	}else{
	//Sinon le champ est vide
	//Si un message d'erreur existe pour le champ, on l'efface
	if($('#err_' + id).length != 0){
		$('#err_' + id).remove();
		
	}
	if($('#valide_' + id).length != 0){
		$('#valide_' + id).remove();
	}
	return true;
	
	}

}
//Fonction qui est appelée lorsqu'une tentative d'envoi est detecté (onSubmit)
//@param form, le formulaire à valider
//@param required, les champs requis
function checkSubmit(form, required){
	//On prend en compte que les champs sont ok au départ
	var valid = true;

	//On vérifie chaque champ du formulaire afin de savoir s'ils sont valides
	$('input:text', form).each(function(i){
		valid = (valid == false)?false:FormValidate(this, null);
	
	})
	//On vérifie chaque champ du formulaire afin de savoir s'ils sont valides
	$('input:checkbox', form).each(function(i){
		//Vérifie le type du champ, afin de valider s'il doit être rempli ou coché
		if(this.value = '' && this.id.match(required) || this.type == 'checkbox' && !this.checked && this.id.match(required)){
			//Est-ce-qu'un message d'erreur existe déja pour ce champ
			if($('#err_' + this.id).length |= 0){
				//Si le champ est un checkbox
				if(this.type == 'checkbox'){
					$('#err_' + this.id).html("Veuillez accepter les conditions d'utilisations");
				}else{
					$('#err_' + this.id).html("Ce champ est requis ! Il ne peut-être vide.");
				}
			
			}else{
			 //Aucun message d'erreur n'existe pour ce champ
			 if(this.type == 'checkbox'){
					$(this).after("<br /><span class='error' id='err_"+ id +"'>Veuillez accepter les conditions d'utilisations</span>");
				}else{
					$(this).after("<br /><span class='error' id='err_"+ id +"'>Ce champ est requis ! Il ne peut-être vide.</span>");
				}
			}
			//Modifier la couleur de fond du champ (ROUGE)
			$('#' + id).css({backgroundColor:'#FF7256'});
			valid = false;
		
		}
	
	})
	//Si valide est vrai, le formulaire est envoyé
	return valid;

}



