function calculator(){
type=$("#formCalculator input[@type=radio][@checked][@name=type]").attr("value");
caracteres=$("#formCalculator input[@type=text][@name=caracteres]").attr("value");
langue1=$("#formCalculator select[@name='langue1'] option[@selected]").attr("value");
langue2=$("#formCalculator select[@name='langue2'] option[@selected]").attr("value");

langues=$("#formCalculator input[@type=hidden][@name=langues]").attr("value");

//alert($("#formCalculator input[@type=radio][@checked][@name=type]").attr("value")+' '+$("#formCalculator select[@name='langue1'] option[@selected]").attr("value")+' '+$("#formCalculator select[@name='langue2'] option[@selected]").val());
	if(type!='undefined' && caracteres!='' && langue1!=langue2){
	var total = 0;
	total=((parseFloat(caracteres)/60)*parseFloat(type));
	total=(Math.round(parseFloat(total)*100)/100);
	document.getElementById("total").innerHTML = '<h1>Total : <span class="bleu">'+total+' &euro;</span></h1>';
	}else{
		if(langues=='fr'){
		alert ('Formulaire non valide');
		}
		if(langues=='en'){
		alert ('Invalid form');
		}
		if(langues=='es'){
		alert ('Formulario no válido');
		}
		if(langues=='nl'){
		alert ('Niet-bestaan');
		}
		
	}
}

$(document).ready(function() {	
 valid.init();


});

valid = {
	
	init : function()  {
		
		
		$("form").submit(function () { 
			var formToValid = this
			if($(formToValid).hasClass("fr")){
				lng = "f"
			}else if($(formToValid).hasClass("es")){
				lng = "es"
			}else if($(formToValid).hasClass("nl")){
				lng = "nl"
			}else(
				lng = "e"	
			)
			
			
			divErrorContainer = document.createElement('div')
			$(divErrorContainer).attr('id','formError');
			$(formToValid).prepend(divErrorContainer)
			
			var vA=valid.emptyInput(lng, formToValid);
			var vB=valid.emptyEmail(lng, formToValid);
			var vC=valid.emptyTel(lng, formToValid);
			
				
			if(vA && vB && vC){
				return true;
			}
			return valid.finall();
			
		});
	},
	
	emptyInput : function(lng, formToValid)  {

		var isError=false;

		emptyCountMax = $(formToValid).find(".validEmpty").size();

		$(formToValid).find(".validEmpty").parent().find(".labelName").css("color",""); // put back the normal color
		$(".emptyInputError").css({ display:"none"}); // Each time you start the script it disable error display, so when you push the button a seoncd time , you have only the new error of your form
		$(".validForm").css({ display:"none"});
		n=0;
		for (i=0; i < emptyCountMax; i++) {
			if($(formToValid).find(".validEmpty").eq(i).attr('value') == ""){
				$(formToValid).find(".validEmpty").eq(i).parent().find(".emptyInputError").css({ display:"block"});
				$(".validForm").css({ display:"block"});
				var errMess=$(formToValid).find(".validEmpty").eq(i).parent().find(".emptyInputError");
			
				if(errMess.length == 0){
					var divError = document.createElement('div')
					
					//namee = $('.validEmpty').eq(i).attr('name');

					var iLabel=$(formToValid).find(".validEmpty").eq(i).parent().find(".labelName").html();//le label du champ
					//enlève le : du label
					//iLabel=iLabel.replace(':','');
					//alert(iLabel);

					$(divError).addClass('emptyInputError');
					$(divError).addClass('error');
					if(lng=='f' && n!=1){
						$(divError).html("Le champ accompagn&eacute; de (*) est requis");
						n++;
					} else if(lng=='es' && n!=1){
						$(divError).html("Le champ accompagn&eacute; de (*) est requis");
						n++;
					} else if(lng=='nl' && n!=1){
						$(divError).html(" Velden met (*)zijn noodzakelijk");
						n++;
					} else if  (n!=1) {
						$(divError).html(" Fields marqued with(*) are requested");
						n++;
					}
					$(formToValid).find(".validEmpty").eq(i).parent().find(".labelName").css("color","red");
					$('#formError').append(divError);
					// $('.validEmpty').eq(i).parent().append(divError) Append dans le parent du input
					//$('.validEmpty').eq(i).parent().css("color","red");
					$(divError).css({ display:"block",color:"red", clear:"both"});
				}
				isError=true;//valid.finall();
			
			}
		}
		
		return !isError;
		
	},
	
	emptyEmail : function(lng, formToValid)  {
		var isError=false;
		emptyCountMax =$(formToValid).find(".validEmail").size();
		$(".validEmailError").css({ display:"none"});
		$(".validForm").css({ display:"none"});
		$(formToValid).find(".validEmail").parent().find(".labelName").css("color",""); // put back the normal color

		
		var filter  = /^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/;
		for (i=0; i < emptyCountMax; i++) {
	

			var thisMail=$(formToValid).find(".validEmail").eq(i).attr('value');
			//alert(thisMail);
			if(!filter.test(thisMail)){
				
				$(formToValid).find(".validEmail").eq(i).parent().find(".validEmailError").css({ display:"block"})
				$(".validForm").css({ display:"block"})
				var errMess=$(formToValid).find(".validEmail").eq(i).parent().find(".validEmailError");
				
				if(errMess.length == 0){
						
					divError = document.createElement('div');
					
					$(divError).addClass('validEmailError');
					$(divError).addClass('error');
                    if(lng=='f'){
						$(divError).text("* Adresse courriel non valide");
					}else if(lng=='es'){
						$(divError).text("* Adresse courriel non valide");
					}else if(lng=='nl'){
						$(divError).text("*  e-mail adres ongeldig");
					}else {
						$(divError).text("* e-mail adress not valaible");
					}
					$(formToValid).find(".validEmail").eq(i).parent().find(".labelName").css("color","red");
					$('#formError').append(divError);//$('.validEmail').eq(i).parent().append(divError);
					//$('.validEmail').eq(i).parent().css("color","red");
					$(divError).css({ display:"block",color:"red"});	
				}
				 isError=true;// valid.finall()
			}
		}
		return !isError;
	},
	
	emptyTel : function(lng, formToValid)  {
		var isError=false;
		emptyCountMax = $(formToValid).find(".validTel").size()
		$(".validTelError").css({ display:"none"})
		$(".validForm").css({ display:"none"})
		
		$(formToValid).find(".validTel").parent().find(".labelName").css("color",""); // put back the normal color
		
		for (i=0; i < emptyCountMax; i++) {
	
			var filter  = /^[0-9\-\(\)]+$/;	

			if(!filter.test($(formToValid).find(".validTel").eq(i).attr('value'))){
				$(formToValid).find(".validTel").eq(i).parent().find(".validTelError").css({ display:"block"})
				var errMess=$(formToValid).find(".validTel").eq(i).parent().find(".validTelError");
				$(".validForm").css({ display:"block"})
				if(errMess.length == 0){
				
					divError = document.createElement('div')

					$(divError).addClass('validTelError');
					$(divError).addClass('error');
					if(lng=='f'){
						$(divError).text("* Téléphone non valide");
					}else if(lng=='es'){
						$(divError).text("* Téléphone non valide");
					}else if(lng=='nl'){
						$(divError).text("* Téléphone non valide");
					}else {
						$(divError).text("* Invalid phone number");
					}
					$('#formError').append(divError);///$('.validTel').eq(i).parent().append(divError);
					$(formToValid).find(".validTel").eq(i).parent().find(".labelName").css("color","red");
					$(divError).css({ display:"block",color:"red"});
				}	
				isError=true;//valid.finall();
			}	
		}
		return !isError;
	},
	
	finall : function()  {
		topOffset = $(".error").eq(0).offset().top;
		//$('html,body').animate({scrollTop:topOffset},'slow');
		return false;
	}
}



