// <![CDATA[
var arrayRegioni = null;
var arrayProvince = null;

window.addEvent('domready', function() {
	var divMeteo = $('divMeteo');
	if (divMeteo != null) {
		divMeteo.getElement('a').addEvent('click', function() {
			window.open(divMeteo.getElement('a').href);
			return false;
		});
	}
	var bannerGoogle300x250 = $('bannerGoogle300x250');
	if (bannerGoogle300x250 != null) {
		bannerGoogle300x250.addEvent('click', function() {
			window.open(bannerGoogle300x250.href);
			return false;
		});
	}
	$('webmaster').getElement('a').addEvent('click', function() {
		window.open("http://www.codencode.it");
		return false;
	});
	$('formRicercaDiretta').addEvent('submit', function() {
		var regione = $('regione');
		var action = $('formRicercaDiretta').getProperty('action');
		var indice = action.indexOf('#');
		action = action.substring(0, indice);
		// ISTRUZIONE PRIMA DI ATTICO
		// var url = action + "#ancoraPercorso";
		var url = action;
		$('formRicercaDiretta').setProperty('action', url);
	});
	richiestaDati();
	var regione = $('regione');
	var provincia = $('provincia');
	var comune = $('comune');
	regione.addEvent('change', function() {
		var regioneSelezionata = regione.getSelected().getProperty('value');
		// ***** svuoto gli elenchi delle province e delle regioni
		var optionsProvince = provincia.getElements('option');
		optionsProvince.each( function(unaProvincia, indice) {
			if (indice > 0) {
				provincia.removeChild(unaProvincia);
			}
		});
		var optionsComuni = comune.getElements('option');
		optionsComuni.each( function(unComune, indice) {
			if (indice > 0) {
				comune.removeChild(unComune);
			}
		});
		// **********************************************************
		// ***** creo gli array delle provicne e dei comuni *****
		var province = new Hash();
		var comuni = new Hash();
		var nomiProvince = new Array();
		if (regioneSelezionata == "NazioneItalia") {
			province = new Hash(arrayProvince);
		} else {
			province = new Hash(arrayRegioni[regioneSelezionata]['province']);
			comuni = new Hash(arrayRegioni[regioneSelezionata]['comuni']);

		}
		// ********************************************************
		// ***** aggioro l'elenco delle province *****
		province.each( function(unaProvincia) {
			var option = new Element('option', {
				'value' :unaProvincia['codProvincia']
			});
			var provinciaStringa = document.createTextNode(unaProvincia['nomeProvincia'] + " (" + unaProvincia['siglaProvincia'] + ") ");
			option.appendChild(provinciaStringa);
			option.inject(provincia);
		});
		// ********************************************
		// ***** aggioro l'elenco dei comuni *****
		comuni.each( function(unComune, codComune) {
			var option = new Element('option', {
				'value' :codComune
			});
			var comuneStringa = document.createTextNode(unComune);
			option.appendChild(comuneStringa);
			option.inject(comune);
		});
		// ***************************************
	});
	provincia.addEvent('change', function() {
		var regioneSelezionata = regione.getSelected().getProperty('value');
		var provinciaSelezionata = provincia.getSelected().getProperty('value');
		if (regioneSelezionata == "NazioneItalia") {
			arrayRegioni.each( function(unaRegione, codRegione) {
				var province = new Hash(unaRegione['province']);
				if (province[provinciaSelezionata] != null) {
					regioneSelezionata = codRegione;
				}
			});
			// ***** Aggiorno la regione selezionata
		regione.getElements("option").each( function(unOption) {
			if (unOption.getProperty('value') == regioneSelezionata) {
				unOption.setProperty('selected', "selected");
			} else {
				unOption.removeProperty('selected');
			}
		});
		// ******************************************
		// ***** svuoto l'elenco delle province
		var optionsProvince = provincia.getElements('option');
		optionsProvince.each( function(unaProvincia, indice) {
			if (indice > 0) {
				provincia.removeChild(unaProvincia);
			}
		});
		// l'istruzione che segue serve per far
		// funzionare correttamente IE 6 senza di
		// essa la provicnia non viene selezionata
		provincia.focus();
		// ********************************************
		// ***** Aggiorno l'elenco delle provincie
		province = new Hash(arrayRegioni[regioneSelezionata]['province']);
		province.each( function(unaProvincia) {
			var option = new Element('option', {
				'value' :unaProvincia['codProvincia']
			});
			var provinciaStringa = document.createTextNode(unaProvincia['nomeProvincia'] + " (" + unaProvincia['siglaProvincia'] + ") ");
			option.appendChild(provinciaStringa);
			if (unaProvincia['codProvincia'] == provinciaSelezionata) {
				option.setProperty('selected', "selected");
			}
			option.inject(provincia);
		});
	}
	// ********************************************
	// ***** svuoto l'elenco dei comuni *****
	var optionsComuni = comune.getElements('option');
	optionsComuni.each( function(unComune, indice) {
		if (indice > 0) {
			comune.removeChild(unComune);
		}
	});
	// ****************************************
	// ***** Aggiorno l'elenco deli comuni *****
	if (regioneSelezionata != "NazioneItalia") {
		if (provinciaSelezionata != "tutte") {
			comuni = new Hash(arrayRegioni[regioneSelezionata]['province'][provinciaSelezionata]['comuni']);
		} else {
			comuni = new Hash(arrayRegioni[regioneSelezionata]['comuni']);
		}
		comuni.each( function(unComune, codComune) {
			var option = new Element('option', {
				'value' :codComune
			});
			var comuneStringa = document.createTextNode(unComune);
			option.appendChild(comuneStringa);
			option.inject(comune);
		});
	}
	// ******************************************
}	);
	comune.addEvent('change', function() {
		var comuneSelezionato = comune.getSelected().getProperty('value');
		var provinciaSelezionata = provincia.getSelected().getProperty('value');
		var regioneSelezionata = regione.getSelected().getProperty('value');
		if (provinciaSelezionata == "tutte") {
			provinciaSelezionata = String(comune.getSelected().getProperty('value'));
			provinciaSelezionata = provinciaSelezionata.substr(0, 3);
			provincia.getElements("option").each( function(unOption) {
				if (unOption.getProperty('value') == provinciaSelezionata) {
					unOption.setProperty('selected', "selected");
				} else {
					unOption.removeProperty('selected');
				}
			});
		}

		// ***** svuoto l'elenco dei comuni *****
		var optionsComuni = comune.getElements('option');
		optionsComuni.each( function(unComune, indice) {
			if (indice > 0) {
				comune.removeChild(unComune);
			}
		});
		// l'istruzione che segue serve per far
		// funzionare correttamente IE 6 senza di
		// essa il comune non viene selezionato
		comune.focus();
		// ****************************************
		// ***** Aggiorno l'elenco dei comuni *****
		var comuni = new Hash(arrayRegioni[regioneSelezionata]['province'][provinciaSelezionata]['comuni']);
		comuni.each( function(unComune, codComune) {
			var option = new Element('option', {
				'value' :codComune
			});
			var comuneStringa = document.createTextNode(unComune);
			option.appendChild(comuneStringa);
			if (codComune == comuneSelezionato) {
				option.setProperty('selected', "selected");
			}
			option.inject(comune);
		});
		// ********************************************
	});
});

function richiestaDati() {
	var req = new Request.JSON( {
		url :"./script/ricercaAjax.php",
		onSuccess : function(rispostaScript) {
			if (rispostaScript == "ERRORE") {
				alert("Problema connessione database da Ajax.");
			}
			arrayRegioni = new Hash(rispostaScript['regioni']);
			arrayProvince = new Hash(rispostaScript['province']);
		}
	}).post( {

	});
}
// ]]>

