function validation(f) {

	var auj = new Date();
	var anneeCourante = auj.getYear()+1900;

	// adhesion collective
	if(f.type && f.type[1].checked) {
		if(f.organisme.value=="" || f.organisme.value==" ") {
			alert("Merci d'indiquer votre ORGANISME.");
			f.organisme.focus();
			return false;
		}
	}
	// adhesion individuelle et tous autres cas
	else {
		if(f.prenom) {
			if(f.prenom.value=="" || f.prenom.value==" ") {
				alert("Merci d'indiquer votre PRENOM.");
				f.prenom.focus();
				return false;
			}
		}
		if(f.nom && f.subject.value!="SONDAGE") { // pour accepter anonymat du sondage sur les lieux de cours
			if(f.nom.value=="" || f.nom.value==" ") {
				alert("Merci d'indiquer votre NOM.");
				f.nom.focus();
				return false;
			}
		}
	}

	melExp=f.mel.value;
	//suppression des espaces avant et apres l'adresse email
	while(melExp.charAt(0)==" ") {melExp=melExp.substring(1,melExp.length)}
	while(melExp.charAt(melExp.length-1)==" ") {melExp=melExp.substring(0,melExp.length-1)}
	f.mel.value=melExp;

	if(melExp=="") {
		alert("Merci d'indiquer votre ADRESSE @.");
		f.mel.focus();
		return false;
	}

	if(melExp=="atelier@chanteur.net") {
		alert("Merci d'indiquer VOTRE adresse.");
		f.mel.focus();
		return false;
	}

	posArobace=melExp.indexOf("@");
	posPoint=melExp.indexOf(".",posArobace);
	pos1erPoint=melExp.indexOf(".");
	dernierCar=melExp.substring(melExp.length-1, melExp.length);
	premierCar=melExp.substring(0,1);
	escMelExp=escape(melExp);

	if(melExp.indexOf("+")>=0 || melExp.indexOf("/")>=0 || melExp.indexOf("[")>=0 || melExp.indexOf("]")>=0 || melExp.indexOf("*")>=0 || melExp.indexOf("é")>=0 || melExp.indexOf("è")>=0 || posArobace<=0 || posArobace==(melExp.length-1) || melExp.indexOf("@",(posArobace+1))>0 || posPoint<0 || melExp.substring((posPoint+1),(posPoint+2))=="." || melExp.substring((pos1erPoint+1),(pos1erPoint+2))=="." || melExp.substring((posArobace+1),(posArobace+2))=="." || melExp.substring((posArobace-1),(posArobace))=="." || dernierCar=="." || dernierCar=="-" || dernierCar=="_" || premierCar=="." || escMelExp.indexOf("%20")>=0)	{
		alert("Merci d'indiquer une adresse VALIDE.");
		f.mel.focus();
		return false;
	}

	// tests sur Sujet
	if(f.subject) {
		if(f.subject.value=="" || f.subject.value==" ") {
			alert("Merci d'indiquer le SUJET de votre message.");
			f.subject.focus();
			return false;
		}
	}
	
	// tests pour Inscription ou Adhesion si Annee de Naissance renseignee
	if(f.anneeNaissance) {
		if(f.anneeNaissance.value=="19" || f.anneeNaissance.value=="") {
			f.anneeNaissance.value="";
		}
		else {
			if(isNaN(f.anneeNaissance.value) || (f.anneeNaissance.value < 1900) || (f.anneeNaissance.value > (anneeCourante-3))) {
				alert("Merci d'indiquer votre ANNEE DE NAISSANCE sur 4 chiffres.");
				f.anneeNaissance.focus();
				return false;
			}
		}
	}

	// tests pour Petites Annonces
	if(f.titre1) {
		if(f.titre1.value=="" && f.titre2.value=="") {
			alert("Merci d'indiquer le TITRE de votre annonce.");
			f.titre1.focus();
			return false;
		}
		if(f.titre1.value.indexOf("herche")>=0 || f.titre1.value.indexOf("ropose")>=0 || f.titre1.value.indexOf("nnonce")>=0 || f.titre1.value.indexOf("donne")>=0 || f.titre1.value.indexOf("Donne")>=0 || f.titre1.value.indexOf("Offre")>=0 || f.titre1.value.indexOf("offre ")>=0 || f.titre1.value.indexOf("vends")>=0 || f.titre1.value.indexOf("Vends")>=0) {
			alert("Merci d'utiliser le MENU DEROULANT pour indiquer si vous cherchez, proposez ou annoncez.");
			f.titre1.focus();
			return false;
		}
		if(f.titre2.value.indexOf("herche")>=0 || f.titre2.value.indexOf("ropose")>=0 || f.titre2.value.indexOf("nnonce")>=0 || f.titre2.value.indexOf("donne")>=0 || f.titre2.value.indexOf("Donne")>=0 || f.titre2.value.indexOf("Offre")>=0 || f.titre2.value.indexOf("offre ")>=0) {
			alert("Merci d'utiliser le MENU DEROULANT pour indiquer si vous cherchez, proposez ou annoncez.");
			f.titre2.focus();
			return false;
		}
		if(f.titre1.value.toUpperCase()==f.titre1.value) {
			f.titre1.value=f.titre1.value.toLowerCase();
		}
		if(f.titre2.value.toUpperCase()==f.titre2.value) {
			f.titre2.value=f.titre2.value.toLowerCase();
		}

		if(f.nom.value.toUpperCase()==f.nom.value) {
			f.nom.value=f.nom.value.toLowerCase();
		}
		if(f.mel.value.toUpperCase()==f.mel.value) {
			f.mel.value=f.mel.value.toLowerCase();
		}
		
		if(f.lieu) { // ici pour ne pas traiter le lieu des cours ou stages
			if(f.lieu.value.toUpperCase()==f.lieu.value) {
				f.lieu.value=f.lieu.value.toLowerCase();
			}
		}
	}

	if(f.texte) {
		if(f.texte.value=="" || f.texte.value==" ") {
			alert("Merci d'inclure le TEXTE de votre annonce.");
			f.texte.focus();
			return false;
		}
		if(f.texte.value.indexOf("@")>=0) {
			alert("Merci de ne PAS inclure votre adresse de COURRIEL dans le TEXTE de votre annonce.");
			f.texte.focus();
			return false;
		}
		if(f.texte.value.indexOf("[www")>=0) {
			alert("Merci d'inclure http:// dans l'adresse de votre site.");
			f.texte.focus();
			return false;
		}
		posCrochet=f.texte.value.indexOf("[");
		if(posCrochet>=0) {
			// si 2e crochet
			if(f.texte.value.indexOf("[",(posCrochet+1))>=0) {
				alert("Merci de n'encadrer de crochets qu'UNE SEULE adresse de site.");
				f.texte.focus();
				return false;
			}
		}
		if(f.texte.value.toUpperCase()==f.texte.value) {
			f.texte.value=f.texte.value.toLowerCase();
		}
	}

	if(f.categorie) {
		if(!f.categorie[0].checked && !f.categorie[1].checked && !f.categorie[2].checked && !f.categorie[3].checked) {
			alert("Merci de choisir une CATEGORIE.");
			location="#categorie";
			return false;
		}
	}

	if(f.styleMu) {
		if(!f.styleMu[0].checked && !f.styleMu[1].checked) {
			alert("Merci de choisir un STYLE de musique.");
			location="#style";
			return false;
		}
	}


	// tests pour ADHESION

	if(f.veut_adresse) {
		if(f.veut_adresse.checked) {
			if(f.adresse_membre.value=="" || f.adresse_membre.value==" ") {
				alert("Merci de choisir votre ADRESSE DE MEMBRE.");
				f.adresse_membre.focus();
				return false;
			}
		}
	}
	if(f.veut_annuaire_profs) {
		if(f.veut_annuaire_profs.checked) {
			if(f.dept1.value=="" || f.dept1.value==" ") {
				alert("Merci d'indiquer le DEPARTEMENT ou PAYS de votre enseignement.");
				f.dept1.focus();
				return false;
			}
			//if(f.dept1.value=="75") {
			//	alert("L'annuaire des professeurs n'est plus ouvert aux professeurs parisiens.");
			//	f.dept1.focus();
			//	return false;
			//}
			//if(f.dept2.value=="75") {
			//	alert("L'annuaire des professeurs n'est plus ouvert aux professeurs parisiens.");
			//	f.dept2.focus();
			//	return false;
			//}
			if(f.ville1.value==""  || f.ville1.value==" " ) {
				alert("Merci d'indiquer la VILLE de votre enseignement.");
				f.ville1.focus();
				return false;
			}
			if(!f.classique.checked && !f.jazz.checked && !f.variete.checked) {
				alert("Merci de choisir un STYLE de musique.");
				location="#styleProf";
				return false;
			}
			if(!f.coursParticuliers.checked && !f.coursDomicile.checked && !f.coursCollectifs.checked && !f.stages.checked) {
				alert("Merci de choisir un TYPE DE COURS.");
				location="#cours";
				return false;
			}
			if(f.coursParticuliers.checked && f.tarifBasPart.value=="" && f.tarifHautPart.value=="") {
				alert("Merci d'indiquer le TARIF de vos cours PARTICULIERS.");
				f.tarifBasPart.focus();
				return false;
			}
			if(f.coursCollectifs.checked && f.tarifBasColl.value=="" && f.tarifHautColl.value=="") {
				alert("Merci d'indiquer le TARIF de vos cours COLLECTIFS.");
				f.tarifBasColl.focus();
				return false;
			}
			// adhesion individuelle seulement
			if(f.type && f.type[0].checked){
				if(!f.sexe[0].checked && !f.sexe[1].checked) {
					alert("Merci d'indiquer votre SEXE.");
					location="#sexe";
					return false;
				}
				if(f.anneeNaissanceProf.value=="19" || f.anneeNaissanceProf.value=="") {
					alert("Merci d'indiquer votre ANNEE DE NAISSANCE.");
					f.anneeNaissanceProf.focus();
					return false;
				}
				if(isNaN(f.anneeNaissanceProf.value) || (f.anneeNaissanceProf.value < 1900) || (f.anneeNaissanceProf.value > (anneeCourante-15))) {
					alert("Merci d'indiquer votre ANNEE DE NAISSANCE sur 4 chiffres.");
					f.anneeNaissanceProf.focus();
					return false;
				}
			}
		}
	}

	// tests pour ENFANTS :
	if(f.ENFANT_prenom) {
		if(f.adresse.value=="" || f.adresse.value==" ") {
			alert("Merci d'indiqer votre ADRESSE POSTALE.");
			f.adresse.focus();
			return false;
		}
	}
	
	// tests pour COURS :
	//if(f.forfait) {
	//	if((f.forfait[0].checked || f.forfait[1].checked) && f.domicile.checked) {
	//		alert("Les formules de FORFAITS ne sont pas offertes A DOMICILE.");
	//		location="#domicile";
	//		return false;
	//	}
	//}
	
	// pour tous si tests OK :
	if(f.subject && !f.melDest) {
		if(f.subject.value.substring(0,9)!="{Atelier}"){
			f.subject.value="{Atelier} "+f.subject.value;
		}
	}
	
	f.Envoi.style.display="none";
	if(document.getElementById) {
		document.getElementById('patience').style.display="inline";
		// tentatives pour inactiver une 2eme pression sur Entree, mais ca ne marche pas!!!
		// document.body.onKeyDown="alert('keyDown');return false";
		// document.body.onKeyPress="alert('keyPress');return false";
		// if(f.dejaClique){
		// 	f.dejaClique.value=1;
		// }
	}
	else {
		if(document.all) {
			patience.style.display="inline";
			// document.body.onKeyDown="alert('keyDown');return false";
			// document.body.onKeyPress="alert('keyPress');return false";
			// if(f.dejaClique){
			//	f.dejaClique.value="1";
			//}
		}
	}
	return true;
}

