var COMP_PROV_SITA = "139";
var attRischio;
var divData;
var divCausale;
var otherInfo;
var targa1Inserita;
var targa2Inserita;
var statoAssicurazioneInserita;
var attestatoInserito;
var causalePerditaPossessoInerita;

window.addEvent('domready',  initData );

function initData() {
	var selectList;
	
	//Sezione domanda Bersani o Alienate
	$('attRischio').style.display = 'block';
	attRischio = new CustomSlide('attRischio', {link:'cancel'});
	if ($('situazione3').checked) {
		attRischio.show();
	} else {
		attRischio.hide();
	}
	
	//Sezione dati persona fisica
	$('divData').style.display = 'block';
	divData = new CustomSlide('divData', {link:'cancel'});
	if (!$('tipologia4').checked) {	// tipologia4 = Societa'
		divData.show();
		
		var selectList = new Array("professione");
		updateSelectList(selectList);
		if($('guidatoreUnico'))
		{
			$('guidatoreUnico').style.display = 'inline';
		}
	} else {
		divData.hide();
		if($('guidatoreUnico'))
		{
			$('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();
	} else {	//Bersani, devo anche nascondere la tipologie soggetto Societa'
		divCausale.hide();
		if ($('situazione3').checked) {
			$('societaId').style.display = 'none';
		}
	}
	
	//Sezione altre informazioni
	otherInfo = new CustomSlide('otherInfo', {link:'cancel'});
	if (allestimentoUnico == "false" || classe1NoBersani == "true") {
		
		$('postMethodId').value = "nextSecond";
		otherInfo.show();
		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 && errorPageId != "modificaFormulaGuida") {
			anchorToFirstError();
		}
	} else {
		if ($('targa1')) {
			$('targa1').focus();
		}
		otherInfo.hide();
	}
	
	if (logged && !loggedOS) {
		//Gestione fonti
		if ( $('fonteDiv') ) {
			$('fonteDiv').setStyle('display' , 'none' );
		}
	}
	
	/*
	 / 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', '#tipologia4').addEvent('click', function() {
		var tipoSoggettoFQSelezionato = '';
		if ($('tipologia1').checked) {
			tipoSoggettoFQSelezionato = 'M';
		} else if ($('tipologia2').checked) {
			tipoSoggettoFQSelezionato = 'F';
		} else if ($('tipologia4').checked) {
			tipoSoggettoFQSelezionato = 'S';
		}
		if (tipoSoggettoFQSelezionato != tipoSoggettoFQIniziale) {
			chiudiOtherInfo();
		}
	});
	
		//se è già presente la targa provengo da SFQ chiamo Ania
	if ($('targa1') && $('targa1').value != '') {
		callAnia($('targa1').value, false, '${pageContext.session.id}');
	}
		
}

function chiudiOtherInfo() {
	//Devo settare il "postMethodId" a "nextFirst" altrimenti viene invocato il calcolo e non il servizio di fastquote
	$('postMethodId').value = "nextFirst";
	if (otherInfo.open) {
		otherInfo.hide();
		$('ctAllestimentoUnico').value = "true";
		$('ctClasse1NoBersani').value = "false";
	}
}

function callAnia(plate, isSecondCallAnia, sessionid) {
	var targaInserita;
	
	//Blocco la chiamata ANIA per targhe non valide sintatticamente
	if (!(/^[a-zA-Z0-9]*$/.test(plate))) {
		return;
	}
	
	if (isSecondCallAnia) {
		targaInserita = targa2Inserita;
	} else {
		targaInserita = targa1Inserita;
	}
	
	if (!targaInserita) targaInserita = '';
	if (!plate) plate = '';
	
	if (targaInserita.toUpperCase() != plate.toUpperCase()) {
		
		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 (!isSecondCallAnia) {
							if ( objson.compProvSita ) {
								window._compProvSita = objson.compProvSita;
							} else {
								window._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 )
						$('ania2_response').value = "true";
					} else {
						//$('loadingAnia1').style.visibility = 'hidden';
						$('targa1').disabled = '';
						// SET MY VARIABLE ( check in checkForm method )
						$('ania_response').value = "true";
					}
					
			}}).send();
		}
	}

}

function toggleRadioPerson(x) {
	if (!x.getElementsByTagName('input')[0].checked) {
		divData.slideIn();
		//guidatoreUnico.slideIn();
		if($('guidatoreUnico'))
		{
			$('guidatoreUnico').style.display = 'inline';
		}
	}
}

function toggleRadioSocieta(x) {
	if (!x.getElementsByTagName('input')[0].checked) {
		divData.slideOut();
		//guidatoreUnico.slideOut();
		if($('guidatoreUnico'))
		{
			$('guidatoreUnico').style.display = 'none';
		}
	}
}

function abilitaSocietaPiuPersone(x) {
	if (!x.getElementsByTagName('input')[0].checked) {
		if (document.getElementById('attestato1').checked) {
			$('societaId').style.display = 'none';
		} else {
			$('societaId').style.display = 'inline';
		}
	} else {
		$('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');
	$('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) {
	if ($('targa1')) {
		$('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
	if ($('targa1')) {
		$('targa1').disabled = '';
		totErrori += isAlphaNumeric('targa1','targaInvalid');
	}
	if ($('situazione3').checked) {
		$('targa2').disabled = '';
	}

	// 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 ($('checkError1').getElements('input.error_inp:not([type="hidden"]), .error_select').length > 0) {
		$('erroreGenerico1').style.display = 'inline';
		$$('#dataNasc','#paese','#professione').addEvent('change', function() {
			if ($('checkError1').getElements('input.error_inp:not([type="hidden"]), .error_select').length == 0) {
				$('erroreGenerico1').style.display = 'none';
			}
		});
	}
	
	//Controllo fonti, email
	if ($('fonteDiv') && $('fonteDiv').style.display != 'none' && $('fonteDiv') != null) {

		var cmbAdvSource = null;
	
		if ($('comboFontePubblicitaria') && $('comboFontePubblicitaria2')){
			if ($('comboFontePubblicitaria2').hasClass( 'displayed') )
				cmbAdvSource = $('comboFontePubblicitaria2');
			else
				cmbAdvSource = $('comboFontePubblicitaria');
		}
		
		if (cmbAdvSource) {
			totErrori += isMandatory(cmbAdvSource.id , 'comboFontePubblicitariaError');
		}
	}
	
	if(!logged){
		totErrori += isMandatory('emailFascicolo','emailFascicoloError');
		totErrori += isEmail('emailFascicolo','emailFascicoloError');
	}
	
	if ($('checkError2').getElements('input.error_inp:not([type="hidden"]), .error_select').length > 0) {
		if(!logged){
			$('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) {
					if(!logged){
						$('erroreGenerico3').style.display = 'none';
					}
				}
			});
		} else {
			$$('#emailFascicolo').addEvent('change', function() {
				if ($('checkError2').getElements('input.error_inp:not([type="hidden"]), .error_select').length == 0) {
					if(!logged){
						$('erroreGenerico3').style.display = 'none';
					}
				}
			});
		}
	}
	
	//Controllo motivo assegnazione Bersani
	if ($('situazione3').checked && $('attestato1').checked) {
		totErrori += isMandatory(new Array('tipologia1','tipologia2'),'tipoSoggettoFQError');
	}
	
	//Controllo altri motivi assegnazione
	if ($('situazione3').checked) {
		totErrori += isMandatory(new Array('attestato1','attestato2'),'attestatoError');
		if (isMandatory('targa2','targa2Error') == 1) {
			totErrori++;
		} else {
			totErrori += isAlphaNumeric('targa2','targa2Invalid');
		}
		
		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 {
		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 dello sleep in attesa di massimo 5 secondi sulla chiamata ANIA
		// Controllo prima la seconda targa (in teoria è quella che viene inserita per ultima)
		var _ania_response = $('ania_response').value;
		var _ania2_response = $('ania2_response').value;
		if ($('situazione3').checked && $('targa2').value != '') {
			if ( _ania2_response !== "true" ) {
				var i = 0, _form = $('targa2').form;
				window._timer = window.setInterval( function() {
					if ( ( _ania2_response === "true")|| i >= 50 ) {
						window.clearInterval( window._timer );
						_form.submit();
					}
					i++;
				}, 100 );
				return false;
			}
		}
		if ($('targa1') && $('targa1').value != '') {
			if ( _ania_response !== "true" ) {
				var i = 0, _form = $('targa1').form;
				window._timer = window.setInterval( function() {
					if ( ( _ania_response === "true")|| i >= 50 ) {
						window.clearInterval( window._timer );
						_form.submit();
					}
					i++;
				}, 100 );
				return false;
			}
		}
		return true;
	}
}

function controllaDatiIniziali() {
	
	if ($('targa1') && $('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 ($('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');
}
