	//GENERIQUE --------------------------------------------------------------------------------------------------------------------------------------------
	//------------------------------------------------------------------------------------------------------------------------------------------------------
	
	function MakeRequired(elt){
		if(elt){
			if($("#" + elt + " .required").length){
				$(".CanBeRemoved").remove();
				switch (this.type) {
					case 'radio':
					case 'checkbox':
						if($(this).is(':last-child')){
							$("#" + elt + " .required").parent().find("label").append(" <strong class='red'>*</strong>");
						}
						break;
					default: 
						$("#" + elt + " .required").parent().find("label").append(" <strong class='red'>*</strong>");
						break;
				}
			}
			
		} else {
			if($(".required").length){
				$(".CanBeRemoved").remove();
				switch (this.type) {
					case 'radio':
					case 'checkbox':
						if($(this).is(':last-child')){
							$(".required").parent().find("label").append(" <strong class='red'>*</strong>");
						}
						break;
					default: 
						$(".required").parent().find("label").append(" <strong class='red'>*</strong>");
						break;
				}
			}
		}
	}
	
	function MakeInputExemple(){
		if($("input.exemple").length){
				$("input.exemple").each(function(){
				if($(this).val()==""){
					$(this).addClass("ex").val($(this).attr("title"));
				}
				$(this).focus(function(){
				 if($(this).val()==$(this).attr("title"))
					$(this).removeClass("ex").val("");
					$(this).addClass("normal");
				});
				$(this).blur(function(){
				 if($(this).val()=="")
					$(this).addClass("ex").removeClass("normal").val($(this).attr("title"));
				});
			});
		}
	}
	
	function MakeInputToMaj(){
		if($("input.MAJUSCULE").length){
			$("input.MAJUSCULE").each(function(){						   
				$(this).change(function(){
					$(this).val($(this).val().toUpperCase());
				 });
			});
		}
	}
	
	function MakeInputToNomPropr(){
		if($("input.NOM_PROPRE").length){
			$("input.NOM_PROPRE").each(function(){						   
				$(this).change(function(){
					var st = "";
					var mots = new Array();
					mots = $(this).val().split(" ");
					for (var i in mots){
						st += " " + mots[i].charAt(0).toUpperCase() + mots[i].substring(1).toLowerCase();
					}
					$(this).val(st.substr(1));
				 });
			});
		}
	}
	
	function MakeInputToTestDate(){
		if($("input.TestDate").length){
			$("input.TestDate").each(function(){						   
				$(this).change(function(){
										
					 re = new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4}$");
					 var OK = re.exec($(this).val());
					 if (!OK){
						var mesgErreur=new Array;
						mesgErreur["FR"]="La date doit etre a format JJ/MM/AAAA";
						mesgErreur["ES"]="El formato de fecha tiene que ser DD/MM/AAAA";
						mesgErreur["EN"]="Date format must be DD/MM/YYYY";
						mesgErreur["TR"]="Date format must be DD/MM/YYYY";
						mesgErreur["IT"]="La data deve essere un formato GG/MM/AAAA";
						mesgErreur["DE"]="Das Datum muss das Format TT/MM/JJJJ ";
						
						alert(mesgErreur[$('#lang').val()]);						
						$(this).val("");
						return false;
					 }
					 else{
						return true;
					 }
					
				 });
			});
		}
	}
	
	function MakeInputToTestTime(){
		if($("input.TestHeure").length){
			$("input.TestHeure").each(function(){						   
				$(this).change(function(){
										
					 re = new RegExp("^[0-9]{2}:[0-9]{2}$");
					 var OK = re.exec($(this).val());
					 if (!OK){
						if($('#lang').val()=='EN')	msg = "Time format must be HH:MM";
						else msg = "L'heure doit etre au format HH:MM";
						alert(msg);
						$(this).val("");
						return false;
					 }
					 else{
						return true;
					 }
					
				 });
			});
		}
	}
	
	function MakeInputToTestPhone(){
		if($("input.TestPhone").length){
			$("input.TestPhone").each(function(){						   
				$(this).change(function(){
										
					 re = new RegExp("^[0-9\+\(\)][0-9\. \-\(\)]+$");
					 var OK = re.exec($(this).val());
					 if (!OK){
						var mesgErreur=new Array;
						mesgErreur["FR"]="Le numero de telephone n'est pas valide (chiffres et espaces, points ou tirets)";
						mesgErreur["ES"]="El número de teléfono no es válida (números y espacios, puntos o guiones)";
						mesgErreur["EN"]="Phone number is not valid (numeric with dot, plus, space or dash)";
						mesgErreur["TR"]="Phone number is not valid (numeric with dot, plus, space or dash)";
						mesgErreur["IT"]="Il numero di telefono non è valido (numeri e spazi, punti o trattini)";
						mesgErreur["DE"]="Die Telefonnummer ist ungültig (Zahlen und Leerzeichen, Punkte oder Striche)";
						
						alert(mesgErreur[$('#lang').val()]);						
						$(this).val("");
						return false;
					 }
					 else{
						return true;
					 }
					
				 });
			});
		}
	}
	
	
	function MakeInputToTestEmail(){
		if($("input.TestEmail").length){
			$("input.TestEmail").each(function(){						   
				$(this).change(function(){
										
					 re = new RegExp("^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,4}$");
					 var OK = re.exec($(this).val());
					 if (!OK){
						var mesgErreur=new Array;
						mesgErreur["FR"]="L'adresse email n'est pas valide";
						mesgErreur["ES"]="El correo electrónico no es válida";
						mesgErreur["EN"]="Email Address is not valid";
						mesgErreur["TR"]="Email Address is not valid";
						mesgErreur["IT"]="L'email non è valido";
						mesgErreur["DE"]="Die E-Mail ist nicht gültig";

						alert(mesgErreur[$('#lang').val()]);
						$(this).val("");
						return false;
					 }
					 else{
						return true;
					 }
					
				 });
			});
		}
	}
	
	
	function MakeBtnToValidAndTest(){
		if($(".btn").length){
		
			$(".btn").click(function () { 
				
				
				if($(this).hasClass('Termine')){
					$('#direction').val('Termine');
				}
				
				if($(this).hasClass('Continue')){
					$('#direction').val('Continue');
				}
				
				if($(this).hasClass('Recapitulatif')){
					$('#direction').val('Recapitulatif');
				}	
				
				if($(this).hasClass('Solde')){
					$('#direction').val('Solde');
				}	
				
				
				var mesgErreur=new Array;
				mesgErreur["FR"]="Merci de renseigner les champs obligatoires\n\n";
				mesgErreur["ES"]="Por favor, completar los campos obligatorios\n\n";
				mesgErreur["EN"]="Please fill in the compulsory blanks\n\n";
				mesgErreur["TR"]="Please fill in the compulsory blanks\n\n";
				mesgErreur["IT"]="Si prega di reimpire i campi obbligatori\n\n";
				mesgErreur["DE"]="Bitte füllen Sie die notwendigen Felder aus\n\n";
				
				var msgErreur = mesgErreur[$('#lang').val()];
				var errors=0;
				var color_off = "#FFFFFF";
				var color_on = "#FFCCCC";
				
				$(".required").each(function(){
											 
					$(this).parent().removeClass("required_alert");
		
				});
				
				$("input").each(function(){
										 
					if($(this).val()==$(this).attr("title")) {
						$(this).val("");
					}		
					
				});
				
				
				$(".required").each(function(){
					
					
					if(!$(this).parents().hasClass("invisible")){
					
						switch (this.type) {
							
							
							case 'radio':
							case 'checkbox':
							
								if($('input[name=' + $(this).attr('name') + ']:checked').length == 0){		
								
									errors++;
									if($(this).is(':last-child')){
										if($(this).parent().find("label:first").text()!="") {
											msgErreur += "- " + $(this).parent().find("label:first").text() + "\n";
										}
									}
									$(this).parent().addClass("required_alert");
								}
							
								break;
							
							default: 
								if(this.value == "") {
									errors++;
									if($(this).parent().find("label").text()!="") {
										msgErreur += "- " + $(this).parent().find("label:first").text() + "\n";
									}
									$(this).parent().addClass("required_alert");
									
								}
								break;
						}
					}
					
				});
				
				if(errors!=0){
					alert(msgErreur);
				}
				else{
					var testEmail = MakeTestEmailDoublon();
					//var testHebergement = MakeBtnToTestHebergement();
					if(testEmail){
						$(this).parents('form:first').submit();
					}
				}
				
			});
		}
	}
	
	function MakeTestEmailDoublon(){
			/* TEST EMAIL DOUBLON */
			var returnVal=true;								
			if($(".TestAjaxEmail").length>0){
		
					$.ajax({
					   type: "POST",
					   url: "../Ajax/emaildoublon.php",
					   data: "email=" + $("#Email").val(),
					   async: false,
					   success: function(msg){
						   if(msg == "1"){
							   	returnVal=false;
								$('#emailError').fadeIn('fast')
								setTimeout(function() {$("#emailError").fadeOut('fast')},2000);
								$("#Email").val("");
								$("#Email").addClass("required_alert");
							} else {
							   	returnVal=true;
							}
						 
						}
					});
				 
			} else {
				returnVal=true;	
			}
		 return returnVal;
		
	}
	
	
	
	function MakeBtnToTestHebergement(){
		
		if($(".BtnHebergement").length){
				
				// TEST HEBERGEMENT == OUI
					if($("#hebergementOui:checked").length != 0){
				
						// TEST DATE
						if($("#MoisDep option:selected").val() < $("#MoisArr option:selected").val()){
							var mesgErreur=new Array;
							mesgErreur["FR"]="Le mois de départ est antérieur au mois d'arrivée";
							mesgErreur["ES"]="El mes de salida es anterior al mes de llegada";
							mesgErreur["EN"]="The departure month is prior to the arrival month";
							mesgErreur["IT"]="Il mese di partenza è antecedente al mese di arrivo";
							mesgErreur["DE"]="Der Abreisemonat liegt vor dem Ankunftsmonat";
							alert(mesgErreur[$('#lang').val()]);	
							
							$("#MoisDep").addClass("required_alert");
							$("#MoisArr").addClass("required_alert");
							return false;
						
						} else if($("#MoisDep option:selected").val() == $("#MoisArr option:selected").val()) {
							
								if(($("#JourDep option:selected").val() - $("#JourArr option:selected").val()) < 3){
									var mesgErreur=new Array;
									mesgErreur["FR"]="Votre séjour ne doit pas être inferieur à 3 jours";
									mesgErreur["ES"]="Tu estancia no puede ser de menos de 3 días";
									mesgErreur["EN"]="Your stay cannot be under 3 nights";
									mesgErreur["IT"]="Il suo soggiorno non può essere inferiore alle 3 notti";
									mesgErreur["DE"]="Ihre Buchung darf nicht weniger als 3 Tage betragen";
									alert(mesgErreur[$('#lang').val()]);	
									
									$("#JourDep").addClass("required_alert");
									$("#JourArr").addClass("required_alert");
									return false;
								}
						}
						
						// TEST SI OCCUPANT OUI
						
						if($("#AccompagnantOui:checked").length != 0){
							if($("#nboccupant").val() == 0){
								var mesgErreur=new Array;
								mesgErreur["FR"]="Aucun occupant n'a été sélectionné";
								mesgErreur["ES"]="No ha sido seleccionado ningun ocupante";
								mesgErreur["EN"]="No occupant has been selected";
								mesgErreur["IT"]="Non è stato selezionato alcun occupante";
								mesgErreur["DE"]="Es ist kein Insasse ausgewählt worden";
								alert(mesgErreur[$('#lang').val()]);	
								
								$("#AccompagnantOui").addClass("required_alert");
								return false;
							}
						}
					
					}
					return true;
				
		} else {
			return true;
		}
		
	}
	
	
	function MakeFormAction(elt){
		MakeRequired(elt);
		MakeInputExemple();
		MakeInputToMaj();
		MakeInputToNomPropr();
		MakeInputToTestDate();
		MakeInputToTestTime();
		MakeInputToTestPhone();
		MakeInputToTestEmail();
		MakeBtnToValidAndTest();
	}
	
	
