function test_champ(champ) {
	champ.value = champ.value.replace(/,/, ".") ;
	if (!isFinite(champ.value)) {
		alert ("Veuillez entrer un nombre.") ;
		champ.value = "" ;
	}
	switch (champ.name) {
		case "T" :
			if (champ.value < 0 || champ.value > 100) {
				alert ("Veuillez entrer un pourcentage compris entre 0 et 100.") ;
				champ.value = "" ;
				setTimeout("document.form1.elements.T.focus()", 1);
			} else if (champ.value > 70)
				alert ("Discontinuité > 70%\nPensez aux aides pour la restructuration du vignoble\net n'hésitez pas à consulter notre classeur régional\npour la plantation de la vigne");
			break;
		case "hlha" :
		case "extraction" :
		case "Tha" :
			rendement();
			if (document.forms.form1.Tha.value > 25)
				alert ("Rendement > 25 T/ha\nSurveillez vos rendements\net pensez à la surproduction mondiale de raisin.");
			break;
		case "H" :
			if (champ.value > 1.5 && champ.value < 1.7)
				alert ("1.5 m < Hauteur < 1.7 m\nAttention, pensez à surveiller votre vigueur.");
			if (champ.value > 1.7)
				alert ("Hauteur > 1.7 m\nPensez à rogner votre vigne,\nelle pourrait se coucher en cas de grand vent.");
			break;
		case "L" :
			if (champ.value > .5 && champ.value < .7)
				alert ("0.5 m < épaisseur < 0.7 m\nAttention, l'épaisseur du feuillage favorise l'entassement de la végétation\net pénalise le microclimat des grappes.");
			if (champ.value > .7)
				alert ("épaisseur > 0.7 m\nÊtes-vous sur que vos vignes sont palissées ?");
			break;
		case "E" :
			if (champ.value > 4)
				alert ("écartement > 4 m \nVous avez la possibilité de planter de l'orge\nou du maïs entre vos rangs,\nne la négligez pas.");
			break;
	}
    calcul_form() ;
}

function changeReadOnly(champ) {
	switch (champ.name) {
		case "hlha" :
		case "extraction" :
			changeInput(document.form1.Tha, true);
			changeInput(document.form1.hlha, false);
			changeInput(document.form1.extraction, false);
			break;
		case "Tha" :
			changeInput(document.form1.Tha, false);
			changeInput(document.form1.hlha, true);
			changeInput(document.form1.extraction, true);
			break;
	}
}

function resetForm(monForm) {
			changeInput(document.form1.Tha, false);
			changeInput(document.form1.hlha, false);
			changeInput(document.form1.extraction, false);
}

function changeInput (inputName, disable) {
	inputName.readOnly = disable;
	inputName.style.backgroundColor = disable ? "#FFEBFF" : "";
}

function rendement() {
	var tha ;
	if (document.forms.form1.hlha.value != "" && document.forms.form1.extraction.value != "") {
		tha = document.forms.form1.hlha.value / document.forms.form1.extraction.value * 10;
		if (isFinite(tha) && tha != 0) {
			document.forms.form1.Tha.value = tha.toFixed(2) ;
		}
	}
}

function valide_champ (champ) {
	return (isFinite(champ.value) && champ.value != 0 && champ.value != "");
}

function calcul_form() {
	if (document.forms.form1.SecvPr) {
		var secv, pr, he ;
		secv = (((2 * document.forms.form1.H.value) *1 + document.forms.form1.L.value *1) * (1 - document.forms.form1.T.value / 100)) / document.forms.form1.E.value ;
		pr = document.forms.form1.Tha.value / 10 ;
		he = document.forms.form1.H.value / document.forms.form1.E.value
		secvpr = secv / pr ;
		if (isFinite(secv) && secv != 0) {
			document.forms.form1.Secv.value = secv.toFixed(2) ;
		}
		if (isFinite(pr) && pr != 0) {
			document.forms.form1.Pr.value = pr.toFixed(2) ;
		}
		if (isFinite(he) && he != 0) {
			document.forms.form1.HE.value = he.toFixed(1) ;
		}
		if (isFinite(secvpr) && secvpr != 0) {
			document.forms.form1.SecvPr.value = secvpr.toFixed(1) ;
		}
	}
	else if (document.forms.form1.so2Actif
					 && valide_champ(document.forms.form1.so2Libre)
					 && valide_champ(document.forms.form1.ph)
					 && valide_champ(document.forms.form1.tav)
					 && valide_champ(document.forms.form1.temp)) {
		var myVar, so2, rec1, rec2;
		myVar = Math.pow(10, ((0.02 * document.forms.form1.tav.value) + (0.031 * document.forms.form1.temp.value) + 1.10 - document.forms.form1.ph.value));
		so2 = document.forms.form1.so2Libre.value * myVar;
		rec1 = .35 / myVar;
		rec2 = .6 / myVar;
		if (isFinite(so2) && so2 != 0) {
			document.forms.form1.so2Actif.value = so2.toFixed(2) ;
		}
		if (isFinite(rec1) && rec1 != 0) {
			document.forms.form1.so2Min.value = Math.round(rec1) ;
		}
		if (isFinite(rec2) && rec2 != 0) {
			document.forms.form1.so2Max.value = Math.round(rec2) ;
		}
	}
}