function formValidator(){
	var this_form = document.domanda;
	// Make quick references to our fields
	for(var i=1;i<8;i++){
		if(this_form['cognome_'+i].value != ""){
			if(!isEmpty(this_form['cognome_'+i], "Inserire il Cognome")) return false;
			if(!isEmpty(this_form['nome_'+i], "Inserire il Nome")) return false;
			if(!isAlphanumeric(this_form['codice_fiscale_'+i], "Inserire soltanto caratteri e numeri per il Codice Fiscale")) return false;
			if(!lengthMaxRestriction(this_form['codice_fiscale_'+i], 16, "Inserire 16 caratteri per Codice Fiscale")) return false;

			if(!radioValidator(this_form['sesso_'+i], "Selezionare il Sesso")) return false;
			if(!isEmpty(this_form['luogo_nascita_'+i], "Inserire il Luogo di Nascita")) return false;
			if(!isEmpty(this_form['prov_'+i], "Inserire soltanto caratteri per la Provincia")) return false;
			if(!lengthMaxRestriction(this_form['prov_'+i], 2, "Inserire 2 caratteri per la Provincia")) return false;

			if(!isEmpty(this_form['data_nascita_'+i], "Inserire la Data di Nascita")) return false;
			if(!madeSelection(this_form['stato_civile_'+i], "Selezionare lo Stato Civile")) return false;
			if(!isEmpty(this_form['residenza_cap_'+i], "Inserire il cap di Residenza")) return false;
			if(!isEmpty(this_form['residenza_citta_'+i], "Inserire la cittą di Residenza")) return false;
			if(!isEmpty(this_form['residenza_prov_'+i], "Inserire la provincia di Residenza")) return false;
			if(!isEmpty(this_form['via_'+i], "Inserire la Via di Residenza")) return false;

			if(!madeSelection(this_form['regime_patrimoniale_'+i], "Selezionare il regime patrimoniale")) return false;
			if(!isEmpty(this_form['documento_identita_'+i], "Inserire il Numero del Documento di Identitą")) return false;
			if(!isEmpty(this_form['rilasciato_'+i], "Inserire il nome dell'ente che ha rilasciato il Documento")) return false;
			if(!isEmpty(this_form['validita_'+i], "Inserire la validitą del Documento")) return false;
		}
	}

			if(!isEmpty(this_form['prestito_euro'], "Inserire l'ammontare del prestito in cifre")) return false;
			if(!isEmpty(this_form['prestito_lettere'], "Inserire l'ammontare del prestito in lettere")) return false;
			/*if(!isEmpty(this_form['rate'], "Inserire i tempi di restituzione del prestito")) return false;*/
			if(!madeSelection(this_form['motivo_finanziamento'], "Selezionare la motiviazione della richiesta")) return false;
			if(!isEmpty(this_form['associazione_volontariato'], "Selezionare l'associazione di volontariato")) return false;
			if(!madeSelection(this_form['filiale'], "Selezionare la filiale Montepaschi di Riferimento")) return false;
			if(!this_form['privacy'].checked){alert("Prenda visione dell'informativa sulla Privacy"); return false;}
	
	return true;
}

function Patto_somma(){

var thisForm = document.patto;

var red_mensili = Array();
var spe_mensili = Array();
var deb_comp = Array();
var deb_comp_mora = Array();
var tot_red_mensili=0;
var tot_spe_mensili=0;
var tot_deb_comp=0;
var tot_deb_comp_mora=0;
var num;

red_mensili = Array("red_lavoro","red_altri","red_pensione","red_attese_micro","red_familiari","red_attese_occas","red_assegni");
spe_mensili = Array("spe_affitto","spe_mutui","spe_condominio","spe_altre","spe_utenze");
deb_comp = Array("deb_banche","deb_finanz","deb_privati","deb_conoscenti");
deb_comp_mora = Array("deb_banche_mora","deb_finanz_mora","deb_privati_mora","deb_conoscenti_mora","deb_canoni_mora","deb_condominio_mora");


//REDDITI MENSILI

for(var i=0; i<red_mensili.length;i++){

  /*num = thisForm[red_mensili[i]].value.toString().replace(/\./g,'');
  num = num.replace(/\,/g,'.');*/
  num = thisForm[red_mensili[i]].value;
  tot_red_mensili = Number(tot_red_mensili) + Number(num);
}

thisForm['red_totale'].value = tot_red_mensili;
moneyFormat(thisForm['red_totale']);


//SPESE MENSILI

for(var i=0; i<spe_mensili.length;i++){

  /*num = thisForm[spe_mensili[i]].value.toString().replace(/\./g,'');
  num = num.replace(/\,/g,'.');*/
  num = thisForm[spe_mensili[i]].value;
  tot_spe_mensili = Number(tot_spe_mensili) + Number(num);
}

thisForm['spe_totale'].value = tot_spe_mensili;
moneyFormat(thisForm['spe_totale']);

//INDEBITAMENTO COMPLESSIVO

for(var i=0; i<deb_comp.length;i++){

  /*num = thisForm[deb_comp[i]].value.toString().replace(/\./g,'');
  num = num.replace(/\,/g,'.');*/
  num = thisForm[deb_comp[i]].value;
  tot_deb_comp = Number(tot_deb_comp) + Number(num);
}

thisForm['deb_totali'].value = tot_deb_comp;
moneyFormat(thisForm['deb_totali']);

//INDEBITAMENTO COMPLESSIVO MORA

for(var i=0; i<deb_comp_mora.length;i++){

  /*num = thisForm[deb_comp_mora[i]].value.toString().replace(/\./g,'');
  num = num.replace(/\,/g,'.');*/
  num = thisForm[deb_comp_mora[i]].value;
  tot_deb_comp_mora = Number(tot_deb_comp_mora) + Number(num);
}

thisForm['deb_totali_mora'].value = tot_deb_comp_mora;
moneyFormat(thisForm['deb_totali_mora']);



}

function formValidatorPatto(){
	var this_form = document.patto;
	// Make quick references to our fields
	for(var i=1;i<8;i++){
		if(this_form['cognome_'+i].value != ""){
			if(!isEmpty(this_form['cognome_'+i], "Inserire il Cognome")) return false;
			if(!isEmpty(this_form['nome_'+i], "Inserire il Nome")) return false;
			if(!isEmpty(this_form['anni_'+i], "Inserire l'etą")) return false;
			if(!isEmpty(this_form['parentela_'+i], "Inserire il grado di parentela")) return false;
  	}
	}
	
	for(var i=1;i<8;i++){
		if(this_form['pos_cognome_'+i].value != ""){
			if(!isEmpty(this_form['pos_cognome_'+i], "Inserire il Cognome")) return false;
			if(!isEmpty(this_form['pos_nome_'+i], "Inserire il Nome")) return false;
			if(!isEmpty(this_form['pos_data_'+i], "Inserire la data di nascita")) return false;
			if(!madeSelection(this_form['pos_area_'+i], "Selezionare l'area di provenienza")) return false;
			if(!madeSelection(this_form['pos_cittad_'+i], "Selezionare la cittadinanza")) return false;
			if(!madeSelection(this_form['pos_studio_'+i], "Selezionare il titolo di studio")) return false;
			if(!madeSelection(this_form['pos_prof_'+i], "Selezionare la professione")) return false;
			if(!madeSelection(this_form['pos_seguito_'+i], "Selezionare da chi intende essere seguito")) return false;
			
  	}
	}
	
	for(var i=1;i<8;i++){
		if(this_form['pos_motivo_'+i].value != "" || this_form['pos_rilasciato_'+i].value != "" || this_form['pos_data_rilascio_'+i].value != ""){
			if(!isEmpty(this_form['pos_rilasciato_'+i], "Inserire il luogo di rilascio del Perm. Soggiorno")) return false;
			if(!isEmpty(this_form['pos_data_rilascio_'+i], "Inserire la data di rilascio del Perm. Soggiorno")) return false;
			if(!madeSelection(this_form['pos_motivo_'+i], "Selezionare il motivo del rilascio del Perm. Soggiorno")) return false;
  	}
	}
	
	for(var i=1;i<8;i++){
    if(this_form['pos_tempo_prestiti_'+i].value != "" && this_form['pos_tempo_prestiti_'+i].value != "mai"){
      if(!madeSelection(this_form['pos_chi_prestiti_'+i], "Inserire da chi ha ottenuto un prestito")) return false;
    }
    
    if(this_form['pos_protesti_'+i].value != "" && this_form['pos_protesti_'+i].value != "mai"){
      if(!madeSelection(this_form['pos_data_protesto_'+i], "Inserire la data dell'ultimo protesto")) return false;
    }
    
    if(this_form['pos_tempo_auto_'+i].value != "" && this_form['pos_tempo_auto_'+i].value != "no"){
      if(!madeSelection(this_form['pos_marca_auto_'+i], "Inserire la marca dell'autovettura")) return false;
    }
    
  }
	
	
  //if(!isEmpty(this_form['abt_perc_prop'], "Inserire il Cognome")) return false;
  //if(!isEmpty(this_form['abt_valore'], "Inserire il Cognome")) return false;
  //if(!isEmpty(this_form['abt_anno_acquisto'], "Inserire il Cognome")) return false;
  //if(!isEmpty(this_form['abt_data_ici'], "Inserire il Cognome")) return false;
  //if(!isEmpty(this_form['abt_ospite'], "Inserire il Cognome")) return false;
  //if(!isEmpty(this_form['abt_data_ospite'], "Inserire il Cognome")) return false;
  //if(!isEmpty(this_form['abt_affitto_dal'], "Inserire il Cognome")) return false;
  if(!madeSelection(this_form['abt_stato_prec'], "Selezionare lo stato abitativo precendente")) return false;
  if(!radioValidator(this_form['grado'],"Selezionare il grado di soddisfazione")) return false;
	return true;
}


function isEmptyCheck(elem){
	if(elem.value.length == 0){
		return false;
	}
	return true;

}


function isEmpty(elem, helperMsg){
	if(elem.value.length == 0){
		alert(helperMsg);
		elem.focus(); // set the focus to this input
		return false;
	}
	return true;
}

function isNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphabet(elem, helperMsg){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphanumeric(elem, helperMsg){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Inserisci fra " +min+ " e " +max+ " caratteri");
		elem.focus();
		return false;
	}
}

function lengthMaxRestriction(elem, max, helperMsg){
	var uInput = elem.value;
	if(uInput.length == max){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;	
	}
}

function madeSelection(elem, helperMsg){
	if(elem.value == ""){
		alert(helperMsg);
		elem.focus();
		return false;
	}else{
		return true;
	}
}

function emailValidator(elem, helperMsg){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function radioValidator(elem,helperMsg) {
    var cnt = -1;
    for (var i=elem.length-1; i > -1; i--) {
        if (elem[i].checked) {cnt = i; i = -1;}
    }

    if (cnt > -1){
		return true;
	}else{
		alert(helperMsg);
		elem[0].focus();
		return false;
	}
}
                  
function checkValidator(elem,helperMsg) {
    var cnt = -1;
    for (var i=elem.length-1; i > -1; i--) {
        if (elem.checked) {cnt = i; i = -1;}
    }

    if (cnt > -1){
		return true;
	}else{
		alert(helperMsg);
		return false;
	}
}
                  

