function validate(btt, form, langue) {
	btt.disabled = true;
	var msg = '';
	var complete = true;
	var mfilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var cpfilter = /^[a-zA-Z][0-9][a-zA-Z]( {0,1})[0-9][a-zA-Z][0-9]$/;
	form.getElements().each(function(i) {
		if (i.hasClassName('req') && i.value == '') {
			i.addClassName('invalid');
			if (langue == 'fr') {msg += "Veuillez remplir le champ "+i.name+"\n";}
			if (langue == 'en') {msg += "Please fil the fields :"+i.name+"\n";}
			complete = false;
		} else if (i.hasClassName('mail') &&  !mfilter.test(i.value)) {
			i.addClassName('invalid');
			if (langue == 'fr') {msg += "Veuillez fournir une adresse courriel valide\n";}
			if (langue == 'en') {msg += "Please enter a valid e-mail adress\n";}
			complete = false;
		} else if (i.hasClassName('cp') &&  !cpfilter.test(i.value)) {
			i.addClassName('invalid');
			if (langue == 'fr') {msg += "Veuillez fournir un code postal valide\n";}
			if (langue == 'en') {msg += "Please enter a valid postal code\n";}
			complete = false;
		}
	});
	if (!complete) {
		alert(msg); 
		btt.disabled = false;
		return(false);
	} 
	else {
		form.insert({'bottom':'<input type="hidden" name="v" value="1"/>'});
		form.request({
			onComplete: function(rtn){
				var data = rtn.responseText.evalJSON(true);
				if(data['reload']) {window.location = data['reload'];}
				else if(data['replace']) {form.innerHTML = data['replace'];}
				else if(data['error']) {alert(data['error']);}
				else if (data['alert']) {alert(data['alert']);form.reset();}
				btt.disabled = false;
				return(true);
			}, 	
			onFailure: function() {
				alert('Désolé, une erreur est survenue');
				form.reset();
				btt.disabled = false;
				return(false);
			}		
		})
		return(true);
	} 
}