$(document).ready(function() {
		//Variables globales
		var form = $("#order");
		var fname = $("#first_name");
		var fnameInfo = $("#first_nameInfo");
		var lname = $("#last_name");
		var lnameInfo = $("#last_nameInfo");
		var address = $("#address");
		var addressInfo = $("#addressInfo");
		var mail = $("#mail");
		var mailInfo = $("#mailInfo");
		var zip = $("#zip");
		var zipInfo = $("#zipInfo");
		var cityInfo = $("#cityInfo");
		var city = $("#city");
		var year = $("#year");	

		fname.blur(val_FName);
		lname.blur(val_LName);
		mail.blur(validateEmail);
		address.blur(val_address);
		zip.blur(val_zip);
		city.blur(val_city);
		
		fname.keyup(val_FName);
		lname.keyup(val_LName);
		mail.keyup(validateEmail);
		address.keyup(val_address);
		zip.keyup(val_zip);
		city.keyup(val_city);
		
		form.submit(function(){  
			if(val_FName() & val_LName() & validateEmail() & val_address() & val_zip() & val_city() & antispam()) {
                                alert("Votre commande a été prise en compte. Vous devriez recevoir un mail avec les détails de celle-ci");  
				return true;
}
			else  {
				return false;  
		}}); 
		
		//Fonctions de validation du formulaire
		function val_FName() {
			if(fname.val().length < 3){
				fname.addClass("error");
				fnameInfo.text("Votre prénom doit comporter plus de 2 lettres.");  
				fnameInfo.addClass("error");  
				return false;  
			}
			else {  
				fname.removeClass("error");  
				fnameInfo.text("Votre nom");  
				fnameInfo.removeClass("error");  
				return true;  
			} 			
		}
		
		function val_LName() {
			if(lname.val().length < 3){
				lname.addClass("error");
				lnameInfo.text("Votre nom doit comporter plus de 2 lettres.");  
				lnameInfo.addClass("error");  
				return false;  
			}
			else {  
				lname.removeClass("error");  
				lnameInfo.text("Votre nom");  
				lnameInfo.removeClass("error");  
				return true;  
			} 			
		}
		
		function val_address() {
			if(address.val().length < 5){
				address.addClass("error");
				addressInfo.text("Votre adresse doit comporter plus de 4 lettres.");  
				addressInfo.addClass("error");  
				return false;  
			}
			else {  
				address.removeClass("error");  
				addressInfo.text("L'adresse de livraison.");  
				addressInfo.removeClass("error");  
				return true;  
			} 			
		}
		
		function val_city() {
			if(city.val().length < 2){
				city.addClass("error");
				cityInfo.text("et ville incorrecte.");  
				cityInfo.addClass("error");  
				return false;  
			}
			else {  
				city.removeClass("error");  
				cityInfo.text(" et ville de livraison correcte.");  
				cityInfo.removeClass("error");  
				return true;  
			} 			
		}
		
		function val_zip() {
			var zipv = $("#zip").val();
			var filter = /^[0-9]{5}$/;
			
			if(filter.test(zipv)){
				zip.removeClass("error");  
				zipInfo.text("Code postal correct");  
				zipInfo.removeClass("error");  
				return true; 
				 
			}
			else {  
				zip.addClass("error");
				zipInfo.text("Code postal incorrect");  
				zipInfo.addClass("error");  
				return false; 
			} 			
		}
		
		function validateEmail(){
			//On commence par tester l'expression réguliere
			var a = $("#mail").val();
			var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
			//if it's valid email
			if(filter.test(a)){
				mail.removeClass("error");
				mailInfo.text("Votre adresse mail");
				mailInfo.removeClass("error");
				return true;
			}
			//if it's NOT valid
			else{
				mail.addClass("error");
				mailInfo.text("Votre adresse mail semble incorrecte, merci de la vérifier.");
				mailInfo.addClass("error");
				return false;
			}
	}
	
	function antispam() {
		// Si l'année saisie est différente de l'année courante
		var y = 2009;
		var year = $('#year').val();


		if (y == year) {
			return true;
		}
		else {
			alert("L'année saisie ne correspond par à l'année actuelle... Saleté de robot !");
			return false;
		}
	}
		
		 
	});