var COMP_PROV_SITA = "139";
var attRischio;
var divData;
var divCausale;
var otherInfo;
var targa1Inserita;
var targa2Inserita;
var statoAssicurazioneInserita;
var attestatoInserito;
var causalePerditaPossessoInerita;
var stringLoc = "locValid($('loc').value,session,'','C')";

window.addEvent('domready',  initData );

function enableLoc() {
	if (logged) {
		locValid($('loc').value, session, comboLoc,'C');
		$('sel_loc').disabled = false;	
		$('loc').disabled = false;
	}
}

function initData() {
	var selectList;
	
	//Sezione domanda Bersani o Alienate
	$('attRischio').style.display = 'block';
	attRischio = new CustomSlide('attRischio', {link:'cancel'});
	if ($('situazione3').checked) {
		attRischio.show();
		//$('attRischio').style.display = 'inline';
	} else {
		attRischio.hide();
		//$('attRischio').style.display = 'none';
	}
	
	//Sezione dati persona fisica
	$('divData').style.display = 'block';
	divData = new CustomSlide('divData', {link:'cancel'});
	if (!$('tipologia4').checked) {	// tipologia4 = Societa'
		divData.show();
		//$('divData').style.display = 'inline';
		
		var selectList = new Array("professione");
		updateSelectList(selectList);
		$('guidatoreUnico').style.display = 'inline';
	} else {
		divData.hide();
		//$('divData').style.display = 'none';
		$('guidatoreUnico').style.display = 'none';
	}
	
	//Sezione causale perdita possesso
	$('divCausale').style.display = 'block';
	divCausale = new CustomSlide('divCausale', {link:'cancel'});
	if ($('situazione3').checked && $('attestato2').checked) {
		divCausale.show();
		//$('divCausale').style.display = 'inline';
	} else {	//Bersani, devo anche nascondere le tipologie soggetto: Piu' persone e Societa'
		divCausale.hide();
		//$('divCausale').style.display = 'none';
		if ($('situazione3').checked) {
			$('piuPersoneId').style.display = 'none';
			$('societaId').style.display = 'none';
		}
	}
	
	//Sezione altre informazioni
	otherInfo = new CustomSlide('otherInfo', {link:'cancel'});
	if (allestimentoUnico == "false" || classe1NoBersani == "true") {
		otherInfo.show();
		//$('otherInfo').style.display = 'inline';
		if (allestimentoUnico == "true") {
			$('allestimentoId').style.display = 'none';
		}
		if (classe1NoBersani == "false") {
			$('anniId').style.display = 'none';
		} else {
			selectList = new Array("sel_anno_classe");
			//Non so perchè ma se non faccio questa assegnazione non mi tiene il valore selezionata se torno indietro nella FQ
			if (classeLLoyd == "1") {
				classeLLoyd = "";	//se è = 1 devo porla uguale a "" per il default su "Seleziona l'anno"
			}
			$('sel_anno_classe').value = classeLLoyd;
			updateSelectList(selectList);
		}
		
		var x = checkOtherInfo();
		if (x > 0) {
			anchorToFirstError();
		}
	} else {
		$('targa1').focus();
		otherInfo.hide();
		//$('otherInfo').style.display = 'none';
	}
	
	if (logged) {
		//Gestione localita': Carico combo e imposto il valore nel combo (da loggato posso trovarmi una frazione da impostare)
		//locValid($('loc').value, session, comboLoc,'L');
		/*var slap = $('sel_loc');
		slap.innerHTML = '';
        var opt = document.createElement('option');
        opt.value =  $('indHidField').value;
        opt.innerHTML = $('loc').value + ', ' + comboLoc;
        slap.appendChild(opt);*/
        if ( locality_default_value )
			localities_by_zipcode($('loc').value,'sel_loc','C',locality_default_value,function(){
				$('sel_loc').set('disabled','disabled');
			});
		
		//Gestione fonti
		if ( $('fonteDiv') ) {
			$('fonteDiv').setStyle('display' , 'none' );
		}
	} else {
		//Gestione comuni': Carico combo e imposto il valore nel combo
		//locValid($('loc').value, session, comboLoc,'C');
		if ( locality_default_value )
			localities_by_zipcode($('loc').value,'sel_loc','C',locality_default_value);
	}
	
	selectList = new Array("sel_loc");
	updateSelectList(selectList);
	
	/*
	 / Gestione nascondimento divOtherInfo quando cambiano i valori dei seguenti campi
	*/
	
	$$('#targa1', '#targa2').addEvent('change', function() {
		chiudiOtherInfo();
	});
	
	//Non posso usare onchange che fa casino con la function js per la gestione delle "/"
	$('dataNasc').addEvent('blur', function() {
		if ($('dataNasc').value != dataDiNascitaIniziale) {
			chiudiOtherInfo();
		}
	});
	
	//Non posso usare onchange sui radio perchè non funziona se non al lost focus per Explorer
	$$('#situazione1', '#situazione2', '#situazione3').addEvent('click', function() {
		var statoAssicurazioneSelezionato = '';
		if ($('situazione1').checked) {
			statoAssicurazioneSelezionato = '1';
		} else if ($('situazione2').checked) {
			statoAssicurazioneSelezionato = '2';
		} else if ($('situazione3').checked) {
			statoAssicurazioneSelezionato = '3';
		}
		if (statoAssicurazioneSelezionato != statoAssicurazioneIniziale) {
			chiudiOtherInfo();
		}
	});
	
	$$('#attestato1', '#attestato2').addEvent('click', function() {
		var attestatoSelezionato = '';
		if ($('attestato1').checked) {
			attestatoSelezionato = '1';
		} else if ($('attestato2').checked) {
			attestatoSelezionato = '2';
		}
		if (attestatoSelezionato != attestatoIniziale) {
			chiudiOtherInfo();
		}
	});
	
	$$('#causale1', '#causale2', '#causale3', '#causale4', '#causale5').addEvent('click', function() {
		var causalePerditaPossessoSelezionato = '';
		if ($('causale1').checked) {
			causalePerditaPossessoSelezionato = '1';
		} else if ($('causale2').checked) {
			causalePerditaPossessoSelezionato = '2';
		} else if ($('causale3').checked) {
			causalePerditaPossessoSelezionato = '3';
		} else if ($('causale4').checked) {
			causalePerditaPossessoSelezionato = '4';
		} else if ($('causale5').checked) {
			causalePerditaPossessoSelezionato = '5';
		}
		if (causalePerditaPossessoSelezionato != causalePerditaPossessoIniziale) {
			chiudiOtherInfo();
		}
	});
	
	$$('#tipologia1', '#tipologia2', '#tipologia3', '#tipologia4').addEvent('click', function() {
		var tipoSoggettoFQSelezionato = '';
		if ($('tipologia1').checked) {
			tipoSoggettoFQSelezionato = 'M';
		} else if ($('tipologia2').checked) {
			tipoSoggettoFQSelezionato = 'F';
		} else if ($('tipologia3').checked) {
			tipoSoggettoFQSelezionato = 'P';
		} else if ($('tipologia4').checked) {
			tipoSoggettoFQSelezionato = 'S';
		}
		if (tipoSoggettoFQSelezionato != tipoSoggettoFQIniziale) {
			chiudiOtherInfo();
		}
	});
		
}

function checkCap_searchLocality(event,cap,combo,type,defaultValue){
	return isNumberKey(event) && localities_by_zipcode.delay(1,this,[cap,combo,type,defaultValue]);
}


function chiudiOtherInfo() {
	if (otherInfo.open) {
		otherInfo.hide();
		$('ctAllestimentoUnico').value = "true";
		$('ctClasse1NoBersani').value = "false";
	}
}

function callAnia(plate, isSecondCallAnia, sessionid) {
	var targaInserita;
	if (isSecondCallAnia) {
		targaInserita = targa2Inserita
	} else {
		targaInserita = targa1Inserita
	}
	
	if (targaInserita != plate) {
		
		if (isSecondCallAnia) {
			targa2Inserita = plate;
		} else {
			targa1Inserita = plate;
		}
		if (plate.trim().length > 5) {
			var call = "jsonFactory.callAnia";
		    // Richiesta Ajax ad-hoc per JSON , info -> http://docs.mootools.net/Request/Request.JSON
			var jsonRequest = new Request.JSON({url: host, 
				data: JSON.encode({"id":1,"method":call,"params":[plate,isSecondCallAnia,sessionid]}),
				
				onRequest: function() {
					if (isSecondCallAnia) {
						//$('loadingAnia2').style.visibility = 'visible';
						$('targa2').disabled = 'true';
					} else {
						//$('loadingAnia1').style.visibility = 'visible';
						$('targa1').disabled = 'true';
					}
			    },
			    
				onLoading: function() {
					if (isSecondCallAnia) {
						//$('loadingAnia2').style.visibility = 'visible';
						$('targa2').disabled = 'true';
					} else {
						//$('loadingAnia1').style.visibility = 'visible';
						$('targa1').disabled = 'true';
					}
				},
				
				onComplete: function(jsonItem) {
					if ( ! jsonItem ) return this;
					objson = JSON.decode(jsonItem.result.esitoAnia);
					if ( objson ) {
						if ( objson.compProvSita )
							window._compProvSita = objson.compProvSita;
						if ( objson._showPopup && objson._showPopup == 'S' && $('situazione1').checked )
							window._showPopup = true;
					}
					if (isSecondCallAnia) {
						//$('loadingAnia2').style.visibility = 'hidden';
						$('targa2').disabled = '';
						// SET MY VARIABLE ( check in checkForm method )
						window._ania2_response = true;
					} else {
						//$('loadingAnia1').style.visibility = 'hidden';
						$('targa1').disabled = '';
						// SET MY VARIABLE ( check in checkForm method )
						window._ania_response = true;
					}
					
			}}).send();
		}
	}

}

function toggleRadioPerson(x) {
	if (!x.getElementsByTagName('input')[0].checked) {
		divData.slideIn();
		//guidatoreUnico.slideIn();
		$('guidatoreUnico').style.display = 'inline';
	}
}

function toggleRadioSocieta(x) {
	if (!x.getElementsByTagName('input')[0].checked) {
		divData.slideOut();
		//guidatoreUnico.slideOut();
		$('guidatoreUnico').style.display = 'none';
	}
}

function abilitaSocietaPiuPersone(x) {
	if (!x.getElementsByTagName('input')[0].checked) {
		if (document.getElementById('attestato1').checked) {
			$('piuPersoneId').style.display = 'none';
			$('societaId').style.display = 'none';
		} else {
			$('piuPersoneId').style.display = 'inline';
			$('societaId').style.display = 'inline';
		}
	} else {
		$('piuPersoneId').style.display = 'inline';
		$('societaId').style.display = 'inline';
	}
}

function disabilitaPropertyBersani() {
		$('targa2').value='';
		$('attestato1').checked=false;$('attestato1').getParent().removeClass('selected');$('attestato1').getParent().addClass('normal');
		$('attestato2').checked=false;$('attestato2').getParent().removeClass('selected');$('attestato2').getParent().addClass('normal');
		$('attestato2').checked=false;$('attestato2').getParent().removeClass('selected');$('attestato2').getParent().addClass('normal');
		$('causale1').checked=false;$('causale1').getParent().removeClass('selected');$('causale1').getParent().addClass('normal');
		$('causale2').checked=false;$('causale2').getParent().removeClass('selected');$('causale2').getParent().addClass('normal');
		$('causale3').checked=false;$('causale3').getParent().removeClass('selected');$('causale3').getParent().addClass('normal');
		$('causale4').checked=false;$('causale4').getParent().removeClass('selected');$('causale4').getParent().addClass('normal');
		$('causale5').checked=false;$('causale5').getParent().removeClass('selected');$('causale5').getParent().addClass('normal');
		divCausale.hide();
}

function abilitaFonte2(x) {
	$('loading2').style.visibility = 'hidden';
	$('fonte2').disabled = !x;
}

function targa(x) {
	$('targa1').disabled = !x;
}

function checkEmail(){
	var err = 0;
	if (isMandatory('insertEmail','insertEmailErr') == 1) {
		err++;
	} else if(isEmail('insertEmail', 'emailFormatErr') == 0) {
		return 0;
	} else {
		$('emailFormatErr').style.display = 'inline';
		//highlightField('emailFormatErr');
		err++;
	}
	return err;
}

function checkForm() {
	totErrori = 1;
	var allErrors = $$('.error');
	for (var i = 0; i < allErrors.length; i++) {
		allErrors[i].style.display = 'none';
	}
	
	//Devo abilitare eventualmente la/le targa/targhe se bloccata in seguito a chiamata ANIA ancora non terminata
	$('targa1').disabled = '';
	if ($('situazione3').checked) {
		$('targa2').disabled = '';
	}

	totErrori += isMandatory('loc','comboLocalitaError');
	totErrori += isMandatory('sel_loc','comboLocalitaError');
	
	// Se tipoSoggetto != Societa'
	if (!$('tipologia4').checked) {
		var date =  $('dataNasc').get('value').trim();
		var year = date.substr(6);
		if (year.length == 2) {
			year = "19" + year;
			date = date.substr(0, 6) + year;
			$('dataNasc').value = date;
		}
		if (checkDateString(date, 'dataErrorMandatory', true) == 1) {
			totErrori++;
		} else {
			totErrori += isDateMandatory(date.substr(0, 2), date.substr(3, 2), date.substr(6), "dataErrorMandatory", "error3", -1200, -216, true);
		}
		totErrori += isMandatory('paese','nazioneError');
		totErrori += isMandatory('professione','professioneError');
		
		if (isMandatory('paese','nazioneError') == 0) {
			var c = $('paese').selectedIndex;
			$('ctCittadinanzaString').value = $('paese').options[c].text;
		}
		if (isMandatory('professione','professioneError') == 0) {
			var p = $('professione').selectedIndex;
			$('ctProfessioneString').value = $('professione').options[p].text;
		}
	}
	
	if ($('checkError').getElements('input.error_inp:not([type="hidden"]), .error_select').length > 0) {
		$('erroreGenerico1').style.display = 'inline';
		$$('#loc', '#dataNasc','#paese','#professione','#sel_loc').addEvent('change', function() {
			if ($('checkError').getElements('input.error_inp:not([type="hidden"]), .error_select').length == 0) {
				$('erroreGenerico1').style.display = 'none';
			}
		});
	}
	
	//Controllo fonti, email
	if ($('fonteDiv') != null && $('fonteDiv').style.display != 'none') {

		var cmbAdvSource = null;
	
		if ($('comboFontePubblicitaria') && $('comboFontePubblicitaria2')){
			if ($('comboFontePubblicitaria2').hasClass( 'displayed') )
				cmbAdvSource = $('comboFontePubblicitaria2');
			else
				cmbAdvSource = $('comboFontePubblicitaria');
		}
		
		if (cmbAdvSource) {
			totErrori += isMandatory(cmbAdvSource.id , 'comboFontePubblicitariaError');
		}
	}
	
	totErrori += isMandatory('emailFascicolo','emailFascicoloError');
	totErrori += isEmail('emailFascicolo','emailFascicoloError');
	
	if ($('checkError2').getElements('input.error_inp:not([type="hidden"]), .error_select').length > 0) {
		$('erroreGenerico3').style.display = 'inline';
		if ($('fonteDiv') != null && $('fonteDiv').style.display != 'none') {
			$$('#comboFontePubblicitaria', '#comboFontePubblicitaria2', '#emailFascicolo').addEvent('change', function() {
				if ($('checkError2').getElements('input.error_inp:not([type="hidden"]), .error_select').length == 0) {
					$('erroreGenerico3').style.display = 'none';
				}
			});
		} else {
			$$('#emailFascicolo').addEvent('change', function() {
				if ($('checkError2').getElements('input.error_inp:not([type="hidden"]), .error_select').length == 0) {
					$('erroreGenerico3').style.display = 'none';
				}
			});
		}
	}
	
	//Controllo motivo assegnazione Bersani
	if ($('situazione3').checked && $('attestato1').checked) {
		totErrori += isMandatory(new Array('tipologia1','tipologia2'),'tipoSoggettoFQError');
	} else {
		if ($('tipologia3').checked) {
			showError('99990003');
			totErrori++;
		}
	}
	
	//Controllo altri motivi assegnazione
	if ($('situazione3').checked) {
		totErrori += isMandatory(new Array('attestato1','attestato2'),'attestatoError');
		totErrori += isMandatory('targa2','targa2Error');
		if ($('attestato2').checked) {
			totErrori += isMandatory(new Array('causale1','causale2','causale3','causale4','causale5'),'causaleError');
			if ($('divCausale').getElements('.error_radio').length > 0) {
				//$('divCausale').style.paddingBottom = '20px';
				divCausale.show();
				attRischio.slideIn();
				$$('#causale1','#causale2','#causale3','#causale4','#causale5').each(function(el) {
					el.getParent().addEvent('mouseup', function() {
						$('divCausale').style.paddingBottom = '0px';
						divCausale.show();
						attRischio.slideIn();
					});
				});
			} else {
				$('divCausale').style.paddingBottom = '0px';
				divCausale.show();
				attRischio.slideIn();
			}
		}
	}
	
	//Controllo altre info
	if (otherInfo.open) {
		totErrori += checkOtherInfo();
	}
	
	if (totErrori > 1) {

		anchorToFirstError();
      	
		return false;
	} else {
		$('sel_loc').erase('disabled');
		$('loc').erase('disabled');
		
		/* SearchLoclities: new management
		var indIndex = $('sel_loc').selectedIndex;
		if (indMap.isEmpty()) {
			$('indHidField').value = $('sel_loc').options[indIndex].value;
		} else {
			$('indHidField').value = indMap.get($('sel_loc').options[indIndex].value);
		}*/
		
		if ( window._compProvSita && ! window._popup_shown ) {
			if ( window._compProvSita == COMP_PROV_SITA ){
				MOOdalBox.open( '../preventivazione/_lightbox.jsp' , null ,  '594 306' );
				window._popup_shown = true;
				return false;
			}
		}
		
		disableControls(document);
		
		$('eseguiFastQuote').value = "true";
		if (controllaDatiIniziali()) {
			$('eseguiFastQuote').value = "false";
		}
		
		//Gestione da loggato dello sleep in attesa di massimo 5 secondi sulla chiamata ANIA
		// Controllo prima la seconda targa (in teoria è quella che viene inserita per ultima)
		if ($('situazione3').checked && $('targa2').value != '') {
			if ( window._ania2_response !== true ) {
				var i = 0, _form = $('targa2').form;
				window._timer = window.setInterval( function() {
					if ( ( window._ania2_response === true)|| i >= 50 ) {
						window.clearInterval( window._timer );
						_form.submit();
					}
					i++;
				}, 100 );
				return false;
			}
		}
		if ($('targa1').value != '') {
			if ( window._ania_response !== true ) {
				var i = 0, _form = $('targa1').form;
				window._timer = window.setInterval( function() {
					if ( ( window._ania_response === true)|| i >= 50 ) {
						window.clearInterval( window._timer );
						_form.submit();
					}
					i++;
				}, 100 );
				return false;
			}
		}
		return true;
	}
}

function controllaDatiIniziali() {
	
	if ($('targa1').value != targa1Inserita) {
		return false;
	}
	
	var statoAssicurazioneSelezionato = '';
	if ($('situazione1').checked) {
		statoAssicurazioneSelezionato = '1';
	} else if ($('situazione2').checked) {
		statoAssicurazioneSelezionato = '2';
	} else if ($('situazione3').checked) {
		statoAssicurazioneSelezionato = '3';
	}
	if (statoAssicurazioneSelezionato != statoAssicurazioneIniziale) {
		return false;
	}
	
	if ($('situazione3').checked) {
		var attestatoSelezionato = '';
		if ($('attestato1').checked) {
			attestatoSelezionato = '1';
		} else if ($('attestato2').checked) {
			attestatoSelezionato = '2';
		}
		if (attestatoSelezionato != attestatoIniziale) {
			return false;
		}
	}
	
	if ($('situazione3').checked && $('attestato2').checked) {
		var causalePerditaPossessoSelezionato = '';
		if ($('causale1').checked) {
			causalePerditaPossessoSelezionato = '1';
		} else if ($('causale2').checked) {
			causalePerditaPossessoSelezionato = '2';
		} else if ($('causale3').checked) {
			causalePerditaPossessoSelezionato = '3';
		} else if ($('causale4').checked) {
			causalePerditaPossessoSelezionato = '4';
		} else if ($('causale5').checked) {
			causalePerditaPossessoSelezionato = '5';
		}
		if (causalePerditaPossessoSelezionato != causalePerditaPossessoIniziale) {
			return false;
		}
	}
		
	if ($('situazione3').checked && $('targa2').value != '') {
		if ($('targa1').value != targa2Inserita) {
			return false;
		}
	}
	
	var tipoSoggettoFQSelezionato = '';
	if ($('tipologia1').checked) {
		tipoSoggettoFQSelezionato = 'M';
	} else if ($('tipologia2').checked) {
		tipoSoggettoFQSelezionato = 'F';
	} else if ($('tipologia3').checked) {
		tipoSoggettoFQSelezionato = 'P';
	} else if ($('tipologia4').checked) {
		tipoSoggettoFQSelezionato = 'S';
	}
	if (tipoSoggettoFQSelezionato != tipoSoggettoFQIniziale) {
		return false;
	}
	
	if (!$('tipologia4').checked) {
		if ($('dataNasc').value != dataDiNascitaIniziale) {
			return false;
		}
	}
	
	return true;

}

function checkOtherInfo() {
	var totErrori = 0;
	if (allestimentoUnico == "false") {
		totErrori += isMandatory('sel_allestimento','allestimentoError');
	}
	if (classe1NoBersani == "true") {
		totErrori += isMandatory('sel_anno_classe','anniClasseError');
	}
	if (allestimentoUnico == "false" || classe1NoBersani == "true") {		
		if ($('otherInfo').getElements('.error_select').length > 0)  {
			$('erroreGenerico2').style.display = 'inline';
			$$('#sel_allestimento', '#sel_anno_classe').addEvent('change', function() {
				if ($('otherInfo').getElements('.error_select').length == 0) {
					$('erroreGenerico2').style.display = 'none';
					otherInfo.slideIn();
				}
			});
		}
	}
	otherInfo.slideIn();
	return totErrori;
}

function anchorToFirstError() {

	if (location.href.match('#')) {
		var url = location.href.split('#')[0];
	} else {
		var url = location.href;
	}
	
	$$('input.error_inp[type="text"], select.error_select, label.error_radio').addClass('errorScroll');
	if ($($$('.errorScroll')[0]).getParent('div.field').id != '') {
		location.href = url+'#'+$($$('.errorScroll')[0]).getParent('div.field').id;
		$($$('.errorScroll')[0]).getParent('div.field').getParent().getParent().scrollTo(0,0);
	} else {
		$($$('.errorScroll')[0]).getParent('div.field').id = 'err_'+Math.round((100*Math.random(1)));
		location.href = url+'#'+$($$('.errorScroll')[0]).getParent('div.field').id;
		$($$('.errorScroll')[0]).getParent('div.field').getParent().getParent().scrollTo(0,0);
	}
	$$('.errorScroll').removeClass('errorScroll');
}