
var kIsNumber=1, kCondNonVera=2, kNaN=3

function resetAll() 
{
	document.frmRapportoFD.txtRapportoFD.value="";
	document.frmFocaleObbiettivo.txtFocaleObbiettivo.value="";
	document.frmDiametroObbiettivo.txtDiametroObbiettivo.value="";
	document.frmISO.txtISO.selectedIndex="";
	document.frmTxtBrillanza.txtBrillanza.value="";
	document.frmTempoEsposizione.txtTempoEsposizione.value="";
	document.frmLstBrillanza.lstBrillanza.selectedIndex=0;
}//function resetAll
	


function calcolaTDP()
{
	var rapportoFD, F, D;
	var ISO, brillanza;
	var Te;
// *ini* check di tutti gli input
// *ini* check del f=rapporto F/D, della focale e del diametro obbiettivo
	flagRapportoFD= isNumber(document.frmRapportoFD.txtRapportoFD.value, " ", "")
	flagFocaleObbiettivo= isNumber(document.frmFocaleObbiettivo.txtFocaleObbiettivo.value, ">0", "")
	flagDiametroObbiettivo= isNumber(document.frmDiametroObbiettivo.txtDiametroObbiettivo.value, ">0","")
// *end* check del f=rapporto F/D, della focale e del diametro obbiettivo

// *ini* se il rapportoFD non è stato immesso o non è valido...
//...allora ci devono essere gli altri 2 params
	if (flagRapportoFD!=kIsNumber) 
	{
		if (flagFocaleObbiettivo!=kIsNumber && flagDiametroObbiettivo!=kIsNumber) 
		{
			alert("Non sono stati immessi ne f=rapporto F/D ne F=focale obbiettivo e D=diametro obbiettivo")
			return
		}
		if (flagFocaleObbiettivo!=kIsNumber) 
		{
			alert("Il campo 'F=Focale obbiettivo' non è valido")
			return
		}
		if (flagDiametroObbiettivo!=kIsNumber) 
		{
			alert("Il campo 'D=Diametro obbiettivo' non è valido")
			return
		}
		rapportoFD=document.frmFocaleObbiettivo.txtFocaleObbiettivo.value/document.frmDiametroObbiettivo.txtDiametroObbiettivo.value;
	}
	else //if (flagRapportoFD!=kIsNumber) 
	{
		rapportoFD=document.frmRapportoFD.txtRapportoFD.value;
//*ini* ev. avvertimenti su focale e diametro obbiettivo
		if (document.frmFocaleObbiettivo.txtFocaleObbiettivo.value!="")
			alert("Il campo 'F=Focale obbiettivo' sarà ignorato")
		if (document.frmDiametroObbiettivo.txtDiametroObbiettivo.value!="")
			alert("Il campo 'D= Diametro obbiettivo' sarà ignorato")
//*end* ev. avvertimenti su focale e diametro obbiettivo
	}  //if (flagRapportoFD!=kIsNumber) 
// *end* se il rapportoFD non è stato immesso o non è valido...

// *ini* test sull'ISO
	if (isNumber(document.frmISO.txtISO.value, ">0", 
"Il campo 'ISO=sensibilità pellicola' non è valido")!=kIsNumber) return;
// *end* test sull'ISO
	ISO=document.frmISO.txtISO.value

// *ini* test sulla brillanza
	flagTxtBrillanza=isNumber(document.frmTxtBrillanza.txtBrillanza.value, ">0","")
	if (flagTxtBrillanza!=kIsNumber) 
	{
		if (document.frmLstBrillanza.lstBrillanza.selectedIndex==0) 
		{
			alert("Non è stata immessa la brillanza!")
			return
		}
		else
		{
			brillanza=document.frmLstBrillanza.lstBrillanza.options[document.frmLstBrillanza.lstBrillanza.selectedIndex].value
		}
	}
	else
	{
		brillanza=document.frmTxtBrillanza.txtBrillanza.value
		if (document.frmLstBrillanza.lstBrillanza.selectedIndex!=0) 
		{
			alert("La brillanza scelta dalla lista sarà ignorata")
		}
	}
// *end* test sulla brillanza
// *end* check di tutti gli input
// *ini* calcolo del risultato
	Te=(rapportoFD*rapportoFD)/(ISO*brillanza)
// *end* calcolo del risultato
	document.frmTempoEsposizione.txtTempoEsposizione.value=Te
}//function calcolaTDP

function isNumber(valore,condizioni,msgIfNotValid) 
{ //testa se un valore è un numero e se non lo è mostra...
//...un alert con il messaggio msgIfNotValid (se non è stringa nulla)
//ret: kIsNumber se number else ret kCondNonVera se la condizione non è verificata o...
//...kNaN se il valore non è un numero
	var ritorno;
	if(!isNaN(valore) && valore!="") {
		var testa=""
		testa=String(valore)+String(condizioni)
		if(eval(testa))
		{
			return kIsNumber;
		}
		else
		{
			ritorno=kCondNonVera
		}
	}
	else
	{
		ritorno=kNaN
	}
	if(msgIfNotValid!="") alert(msgIfNotValid);
	return(ritorno);
}//function isNumber


