/*
Funzione iseeok: 
Parametri di input:
	SommaRedditi
	SommaPatrimonioMobiliare
	RendimentoMedioTitoli
	CanoneLocazione
	SogliaMaxCanone
	ImmobiliNonAb
	ImmobiliAb
	ResiduoMutuoAb
	SogliaMinAbitazione
	SogliaMaxDetrazione
	MoltiplicatoreISP
	NumComponenti
	NumHnd 
	FlagUnicoGenitore 
	FlagLavoroAmboGenitori
Parametri di output:
	ISEE
	ScalaEquivalenza
	ISE
Ritorna:
*/
function iseeok( SommaRedditi, SommaPatrimonioMobiliare, RendimentoMedioTitoli, CanoneLocazione, SogliaMaxCanone, ImmobiliNonAb, ImmobiliAb, ResiduoMutuoAb, SogliaMinAbitazione, SogliaMaxDetrazione, MoltiplicatoreISP, NumComponenti, NumHnd, FlagUnicoGenitore, FlagLavoroAmboGenitori, fieldISEE, fieldScalaEquivalenza, fieldISE ) {
	var DetrazioneCanone;
	var RendimentoPatrimonioMobiliare;
	var ISR;
	var DetrazioneImmobili;
	var ImmobiliTotale;
	var ISP;
	var DetrazioneBeniMobili;
	var ISEE = 0;
	var ScalaEquivalenza = 0.0;
	var ISE = 0;
	DetrazioneCanone = Math.min(parseFloat(CanoneLocazione), SogliaMaxCanone); 
	RendimentoPatrimonioMobiliare = Math.round(parseFloat(SommaPatrimonioMobiliare) * RendimentoMedioTitoli) / 100;
	DetrazioneCanone = Math.min(DetrazioneCanone, parseFloat(SommaRedditi) + RendimentoPatrimonioMobiliare);
	ISR = parseFloat(SommaRedditi) + RendimentoPatrimonioMobiliare - DetrazioneCanone;
	if ( parseFloat(ResiduoMutuoAb) > SogliaMinAbitazione )
		DetrazioneImmobili = Math.min(parseFloat(ResiduoMutuoAb),parseFloat(ImmobiliAb));
	else
		DetrazioneImmobili = Math.min(SogliaMinAbitazione,parseFloat(ImmobiliAb));
		
	ImmobiliTotale = parseFloat(ImmobiliNonAb) + parseFloat(ImmobiliAb);
	if ( SommaPatrimonioMobiliare > SogliaMaxDetrazione ) {
		ISP = ImmobiliTotale - DetrazioneImmobili + parseFloat(SommaPatrimonioMobiliare) - SogliaMaxDetrazione;
		DetrazioneBeniMobili = SogliaMaxDetrazione;
	}
	else {
		ISP = ImmobiliTotale - DetrazioneImmobili;
		DetrazioneBeniMobili = parseFloat(SommaPatrimonioMobiliare);
	}
	ISE = ISR + Math.round(ISP * MoltiplicatoreISP * 100) / 100;
	switch ( parseInt(NumComponenti,10) ) {
		case 1:	ScalaEquivalenza = 1;break;
		case 2: 	ScalaEquivalenza = 1.57;break;
		case 3: 	ScalaEquivalenza = 2.04;break;
		case 4: 	ScalaEquivalenza = 2.46;break;
		case 5: 	ScalaEquivalenza = 2.85;break;
		//default: ScalaEquivalenza = 2.85 + 0.35 * (NumComponenti - 5);break;
	}
	if ( parseInt(NumComponenti,10) > 5 ) ScalaEquivalenza = Math.round((2.85 + 0.35 * (parseInt(NumComponenti,10) - 5))*100)/100;
	if ( parseInt(NumComponenti,10) > 0 ) {
		if ( FlagUnicoGenitore == true )
			ScalaEquivalenza = Math.round((ScalaEquivalenza + 0.2)*100)/100;
		//alert(ScalaEquivalenza);
		//alert(parseInt(NumHnd));
		ScalaEquivalenza = Math.round((ScalaEquivalenza + 0.5 * parseInt(NumHnd,10))*100)/100;
		//alert(ScalaEquivalenza);
		if ( FlagLavoroAmboGenitori == true )
			ScalaEquivalenza = Math.round((ScalaEquivalenza + 0.2)*100)/100;
		ISEE = Math.round((ISE / ScalaEquivalenza) * 100) / 100;
		fieldISEE.value = ISEE;
		fieldScalaEquivalenza.value = ScalaEquivalenza;
		fieldISE.value = ISE;
	}
	
} // 
function iseectrl(NomeForm) {
	if (CheckPositiveNumber(NomeForm.txtCompNucleo,"Il numero delle persone che compongono il nucleo familiare")==false)
		return false; 
	if (NomeForm.txtNumSoggHand.value != "" && NomeForm.txtNumSoggHand.value != "0") {
		if (CheckPositiveNumber(NomeForm.txtNumSoggHand,"Il numero dei soggetti con handicap")==false)
			return false; 
		if (parseInt(NomeForm.txtNumSoggHand.value,10)>parseInt(NomeForm.txtCompNucleo.value,10)) {
			alert("Il numero dei soggetti con handicap non può essere superiore al numero delle persone componenti il nucleo familiare");
			SetFocus(NomeForm.txtNumSoggHand);
			return false;
		}
	}
	if (CheckDecimalNumber(NomeForm.txtImportoLocaz, "Il canone annuale di locazione",12,2)==false)
		return false;
	if (CheckDecimalNumber(NomeForm.txtRedditiF4, "La somma del reddito irpef e irap",12,0)==false)
		return false;
	if (CheckDecimalNumber(NomeForm.txtRedditiF5, "La somma del patrimonio mobiliare",12,0)==false)
		return false;
	if (CheckDecimalNumber(NomeForm.txtIciAbitaz, "Il valore ici della casa di abitazione",12,0)==false)
		return false;
	if (CheckDecimalNumber(NomeForm.txtMutuoAbitaz, "La somma del valore residuo del mutuo",12,0)==false)
		return false;
	if (CheckDecimalNumber(NomeForm.txtIciNoAbitaz, "La somma dei valori ici di immobili non di abitazione",12,0)==false)
		return false;
	if (NomeForm.rbProprieta.checked==false && NomeForm.rbLocazione.checked==false) {
		alert("Specifica se la abitazione del nucleo familiare è di proprietà o in locazione!");
		SetFocus(NomeForm.rbProprieta);
		return false;
	}
	return true;
} // 