// Le funzioni loadHandler, resizeHandler e resizeImage servono a FireFox e Opera
// per ricaricare la pagina quando questa viene ridimensionata, altrimenti
// non viene pił visualizzata correttamente
var resizeFlag = false;

function loadHandler() {
	if (_isOpera) {
		origWidth  = this.innerWidth;
		origHeight = this.innerHeight;
		resizeHandler();
	}
}

function resizeHandler() {
	if (this.innerWidth != origWidth || this.innerHeight != origHeight) {
		location.reload();
	}

	if (_isOpera) {
		setTimeout('resizeHandler()',500);
	}
}

function resizeImage() {
	if (resizeFlag) {
		return;
	}

	if(_isFF || _isOpera) {
		document.getElementById('temi').style.height = window.innerHeight - 295;

		if(_isOpera) {
			document.getElementById('MainQueryBuilderDiv').style.top = (window.innerHeight - 350);
		}
	}

	document.getElementById("mapimg").style.visibility = 'hidden';
	setTimeout("generateMapViewer('resize')",500);
	resizeFlag = true;

}

// change the language of the browser
function changeLanguage() {
	displayWaitDiv();
	var newLanguage = document.getElementById('Lingua').options[document.getElementById('Lingua').selectedIndex].value
	document.location.href='main.jsp?language=' + newLanguage + '&action=changelang';
	
	if (document.getElementById('isochronebuilderdiv')) {
		var calendarLanguage = document.getElementById('Lingua').options[document.getElementById('Lingua').selectedIndex].value;
		var tmpLanguage = dhtmlxCalendarLangModules[calendarLanguage.toLowerCase()];
		if (tmpLanguage != null) { 
			myCalendar.loadUserLanguage(calendarLanguage.toLowerCase());
		} else {
			myCalendar.loadUserLanguage('en-us');
		}
	}
}

// get the actual size of map image
function getPageSize() {
	var winW = -1, winH = -1;
	var offsetX = parseInt(document.getElementById("leftdiv").style.width);
	//var offsetX = 250;
	var offsetY = 100;

	if (_isIE) {
		if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
			//IE 6+ in 'standards compliant mode'
			winW = document.documentElement.clientWidth;
			winH = document.documentElement.clientHeight;
		} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
			//IE 4 compatible
			winW = document.body.clientWidth;
			winH = document.body.clientHeight;
		}
	} else {
		winW = window.innerWidth;
		winH = window.innerHeight;
	}

	var xyArr = new Array((winW - offsetX), (winH - offsetY));
	return xyArr;
}

// Funzione per mostrare sulla barra di stato le coordinate del punto dove sta puntando
// il mouse sulla mappa
function getXY(eventObject) {
	var factorX, factorY;
	var positionX = 0;
	var positionY = 0;
	var pageSize = getPageSize();

	if (!eventObject) eventObject = window.event;

	if (_isIE || _isOpera) {
		posX = eventObject.offsetX;
		posY = eventObject.offsetY;
	} else if (_isKHTML) {
		posX = eventObject.layerX;
		posY = eventObject.layerY;
	} else {
		posX = eventObject.layerX - 1;
		posY = eventObject.layerY - 1;
	}

	posY = pageSize[1] - posY;
	factorX = (mbrMaxX - mbrMinX) / pageSize[0];
	factorY = (mbrMaxY - mbrMinY) / pageSize[1];
	positionX = mbrMinX + (posX * factorX);
	positionY = mbrMinY + (posY * factorY);

	msg = "X:" + Math.round(positionX) + " Y:" + Math.round(positionY);
	window.status = msg;
}

// Funzione per non mostrare pił le coordinate sulla barra di stato se il mouse esce
// dalla mappa
function exitMouse() {
	msg = "";
	window.status = msg;
}

// Funzione collegata alla linguetta "X" per chiudere (nascondere) la finestra delle query e dei
// risultati. Oltre al div principale che racchiude tutto (MainQueryBuilderDiv) bisogna rendere
// invisibili anche i div che ci sono all'interno
function ChiudiQueryBuilder() {

	var mioElemento = document.getElementById("MainQueryBuilderDiv");
	var mioElemento2 = document.getElementById("smallQueryBuilderDiv");

	mioElemento2.style.visibility = "hidden";
	mioElemento2.style.bottom = 20 + 'px'; // altrimenti firefox mette la scrollbar verticale

	mioElemento.style.visibility = "hidden";

	// if the "resultdiv" element (container of the results' grid) exists then it will be hidden
	if (document.getElementById('resultdiv')) {
		document.getElementById('resultdiv').style.visibility = 'hidden';
	}

	// if the "querybuilderdiv" element exists then it and its subelements will be hidden
	if (document.getElementById('querybuilderdiv')) {
		document.getElementById('querybuilderdiv').style.visibility = 'hidden';
		// simple query elements
		document.getElementById('querycentralediv').style.visibility = 'hidden';
		document.getElementById('queryresultgridpreview').style.visibility = 'hidden';
		document.getElementById('spantestoquerysemplice').style.visibility = 'hidden';
		if (_isKHTML) {
			// otherwise in Safari the scrollbar of the preview grid remains
			document.getElementById('queryresultgridpreview').style.display = 'none';
		}
		// cadastre query elements (if the user is enable to make cadastre query)
		if (hasTabelleParticelle) {
			document.getElementById('cadastrequery').style.visibility = 'hidden';
			document.getElementById('querycatastodiv').style.visibility = 'hidden';
			document.getElementById('queryresultcatastogrid').style.visibility = 'hidden';
			document.getElementById('spantestocatasto').style.visibility = 'hidden';
			if (_isKHTML) {
				// otherwise in Safari the scrollbar of the preview grid remains
				document.getElementById('queryresultcatastogrid').style.display = 'none';
			}
		}
		// address query elements (if the user is enable to make address query)
		if (hasTabelleCivici) {
			document.getElementById('addressquery').style.visibility = 'hidden';
			document.getElementById('querycivicidiv').style.visibility = 'hidden';
			document.getElementById('queryresultcivicigrid').style.visibility = 'hidden';
			document.getElementById('divqueryciviciviatesto').style.visibility = 'hidden';
			document.getElementById('divqueryciviciviaselect').style.visibility = 'hidden';
			document.getElementById('divquerycivicinrtesto').style.visibility = 'hidden';
			document.getElementById('divquerycivicinrselect').style.visibility = 'hidden';
			document.getElementById('spantestocivici').style.visibility = 'hidden';
			if (_isKHTML) {
				// otherwise in Safari the scrollbar of the preview grid remains
				document.getElementById('queryresultcivicigrid').style.display = 'none';
			}
		}
	}

	// if the "analysebuilderdiv" element exists then it and its subelements will be hidden
	if (document.getElementById('analysebuilderdiv')) {
		// if we just made a path analyse, all calculated paths are removed from map image
//		if (actualQueryType == "analysebuilderdiv") {
		if (isPathAnalyseMade == true) {
			performDisablePath();
		}
		document.getElementById('analysebuilderdiv').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';

		// launch the function to clear all parameters inserted
		clearSelectionAnalyse();
	}
	
	// if the "isochronebuilderdiv" element exists then it and its subelements will be hidden
	if (document.getElementById('isochronebuilderdiv')) {
		if (isIsochroneAnalyseMade == true) {
			performDisableIsochrone(true);
		}
		document.getElementById('isochronebuilderdiv').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviatesto').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
		document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
		
		// launch the function to clear all parameters inserted
		clearSelectionIsochrone();
	}

	// if we have a current query, it will be disabled
	if (actualQuery != null) {
		tree.setCheck('qtheme' + delimiter + actualQuery, 0);
		performEnableQueryTheme(actualQuery, false, true, "");
	}
}

// function recalled when we switch from one query to another
function ChiudiQueryFinestra() {

	var mioElemento = document.getElementById("MainQueryBuilderDiv");
	var mioElemento2 = document.getElementById("smallQueryBuilderDiv");

	mioElemento2.style.visibility = "hidden";
	mioElemento2.style.bottom = 0 + 'px';

	mioElemento.style.visibility="hidden";

	// if the "resultdiv" element (container of the results' grid) exists then it will be hidden
	if (document.getElementById('resultdiv')) {
		document.getElementById('resultdiv').style.visibility = 'hidden';
	}

	// if the "querybuilderdiv" element exists then it and its subelements will be hidden
	if (document.getElementById('querybuilderdiv')) {
		document.getElementById('querybuilderdiv').style.visibility = 'hidden';
		// simple query elements
		document.getElementById('querycentralediv').style.visibility = 'hidden';
		document.getElementById('queryresultgridpreview').style.visibility = 'hidden';
		// cadastre query elements (if the user is enable to make cadastre query)
		if (hasTabelleParticelle) {
			document.getElementById('cadastrequery').style.visibility = 'hidden';
			document.getElementById('querycatastodiv').style.visibility = 'hidden';
			document.getElementById('queryresultcatastogrid').style.visibility = 'hidden';
		}
		// address query elements (if the user is enable to make address query)
		if (hasTabelleCivici) {
			document.getElementById('addressquery').style.visibility = 'hidden';
			document.getElementById('querycivicidiv').style.visibility = 'hidden';
			document.getElementById('queryresultcivicigrid').style.visibility = 'hidden';
			document.getElementById('divqueryciviciviatesto').style.visibility = 'hidden';
			document.getElementById('divqueryciviciviaselect').style.visibility = 'hidden';
			document.getElementById('divquerycivicinrtesto').style.visibility = 'hidden';
			document.getElementById('divquerycivicinrselect').style.visibility = 'hidden';
		}
	}
	// if the "analysebuilderdiv" element exists then it and its subelements will be hidden
	if (document.getElementById('analysebuilderdiv')) {
		document.getElementById('analysebuilderdiv').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
	}
	// if the "isochronebuilderdiv" element exists then it and its subelements will be hidden
	if (document.getElementById('isochronebuilderdiv')) {
		document.getElementById('isochronebuilderdiv').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviatesto').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
		document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
	}
	// uncheck the actual query
	tree.setCheck('qtheme' + delimiter + actualQuery, 0);
}

// function recalled when we click on the query or path analyse button
// or when we make a spatial query
function ApriQueryBuilder(divId) {
	//disattivaBottoni();
	//if (divId == 'analysebuilderdiv' || divId == 'isochronebuilderdiv') {
		//actualQueryType = divId;
	//}

	var mioElemento = document.getElementById("MainQueryBuilderDiv");
	var mioElemento2 = document.getElementById("smallQueryBuilderDiv");

	mioElemento.style.visibility="visible";

	// if the "resultdiv" element (container of the results' grid) exists then it will be visible
	if (document.getElementById('resultdiv')) {
		document.getElementById('resultdiv').style.visibility = 'visible';
	}

	// if the "querybuilderdiv" element exists then it and its subelements will be visible only if we want make simple, cadastre or address query
	if (document.getElementById('querybuilderdiv')) {
		// if we want make a query (simple, cadestre o address), the default query we see when we open the div the first time
		// is the div of the simple query, it and its all subelements become visible
		// the other elements become hidden, execpt from the three icons to choose the type of query
		if (divId == 'querybuilderdiv') {
			document.getElementById('querybuilderdiv').style.visibility = 'visible';
			document.getElementById('querycentralediv').style.visibility = 'visible';
			document.getElementById('queryresultgridpreview').style.visibility = 'visible';
			document.getElementById('spantestoquerysemplice').style.visibility = 'visible';
			if (_isKHTML) {
				// otherwise in Safari the scrollbar of the preview grid remains when it'll become hidden
				document.getElementById('queryresultgridpreview').style.display = 'block';
			}
			if (document.getElementById('resultdiv')) {
				document.getElementById('resultdiv').style.visibility = 'hidden';
			}
			if (hasTabelleParticelle) {
				document.getElementById('cadastrequery').style.visibility = 'visible';
			}
			if (hasTabelleCivici) {
				document.getElementById('addressquery').style.visibility = 'visible';
				//document.getElementById('querycivicidiv').style.visibility = 'visible';
				//document.getElementById('queryresultcivicigrid').style.visibility = 'visible';
				document.getElementById('divqueryciviciviatesto').style.visibility = 'hidden';
				document.getElementById('divqueryciviciviaselect').style.visibility = 'hidden';
				document.getElementById('divquerycivicinrtesto').style.visibility = 'hidden';
				document.getElementById('divquerycivicinrselect').style.visibility = 'hidden';
			}
		} else {
			// we don't want make simple, cadastre o address query
			document.getElementById('querybuilderdiv').style.visibility = 'hidden';
			document.getElementById('querycentralediv').style.visibility = 'hidden';
			document.getElementById('queryresultgridpreview').style.visibility = 'hidden';
			document.getElementById('spantestoquerysemplice').style.visibility = 'hidden';
			if (_isKHTML) {
				// otherwise in Safari the scrollbar of the preview grid remains
				document.getElementById('queryresultgridpreview').style.display = 'none';
			}
			if (hasTabelleParticelle) {
				document.getElementById('cadastrequery').style.visibility = 'hidden';
				document.getElementById('querycatastodiv').style.visibility = 'hidden';
				document.getElementById('queryresultcatastogrid').style.visibility = 'hidden';
				document.getElementById('spantestocatasto').style.visibility = 'hidden';
			}
			if (hasTabelleCivici) {
				document.getElementById('addressquery').style.visibility = 'hidden';
				document.getElementById('querycivicidiv').style.visibility = 'hidden';
				document.getElementById('queryresultcivicigrid').style.visibility = 'hidden';
				document.getElementById('divqueryciviciviatesto').style.visibility = 'hidden';
				document.getElementById('divqueryciviciviaselect').style.visibility = 'hidden';
				document.getElementById('divquerycivicinrtesto').style.visibility = 'hidden';
				document.getElementById('divquerycivicinrselect').style.visibility = 'hidden';
				document.getElementById('spantestocivici').style.visibility = 'hidden';
			}
		}
	}

	// if the "analysebuilderdiv" element exists then it and its subelements will be visible only if we want make path analyse
	if (document.getElementById('analysebuilderdiv')) {
		// we want make path analyse
		if (divId == 'analysebuilderdiv') {
			document.getElementById('analysebuilderdiv').style.visibility = 'visible';
			document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalyseviadatesto').style.visibility = 'visible';
			document.getElementById('divqueryanalyseviaatesto').style.visibility = 'visible';
			document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
		} else {
			// we don't want make path analyse
			document.getElementById('analysebuilderdiv').style.visibility = 'hidden';
			document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalyseviadatesto').style.visibility = 'hidden';
			document.getElementById('divqueryanalyseviaatesto').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
		}
	}

	// if the "isochronebuilderdiv" element exists then it and its subelements will be visible only if we want make isochrone analyse
	if (document.getElementById('isochronebuilderdiv')) {
		// we want make isochrone analyse
		if (divId == 'isochronebuilderdiv') {
			document.getElementById('isochronebuilderdiv').style.visibility = 'visible';
			document.getElementById('divqueryisochroneviatesto').style.visibility = 'visible';
			document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
			document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
			document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
			document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
			setCurrentDateTime();
		} else {
			// we don't want make isochrone analyse
			document.getElementById('isochronebuilderdiv').style.visibility = 'hidden';
			document.getElementById('divqueryisochroneviatesto').style.visibility = 'hidden';
			document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
			document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
			document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
			document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
		}
	}
	
	// if the small query builder is visible, it become hidden
	if (mioElemento2.style.visibility == "visible") {
		mioElemento2.style.visibility = "hidden";
		mioElemento2.style.bottom = 20 + 'px'; // altrimenti firefox mette la scrollbar verticale
	}
}

// function to hide the main query builder div and to show the small query builder div
function abbassaQueryBuilder() {

	var mioElemento = document.getElementById("MainQueryBuilderDiv");
	var mioElemento2 = document.getElementById("smallQueryBuilderDiv");

	mioElemento.style.visibility = "hidden";

	if (document.getElementById('resultdiv')) {
		document.getElementById('resultdiv').style.visibility = 'hidden';
	}

	if (document.getElementById('querybuilderdiv')) {
		document.getElementById('querybuilderdiv').style.visibility = 'hidden';
		document.getElementById('querycentralediv').style.visibility = 'hidden';
		document.getElementById('queryresultgridpreview').style.visibility = 'hidden';
		document.getElementById('spantestoquerysemplice').style.visibility = 'hidden';
		if (_isKHTML) {
			// otherwise in Safari the scrollbar of the preview grid remains
			document.getElementById('queryresultgridpreview').style.display = 'none';
		}
		if (hasTabelleParticelle) {
			document.getElementById('cadastrequery').style.visibility = 'hidden';
			document.getElementById('querycatastodiv').style.visibility = 'hidden';
			document.getElementById('queryresultcatastogrid').style.visibility = 'hidden';
			document.getElementById('spantestocatasto').style.visibility = 'hidden';
			if (_isKHTML) {
				// otherwise in Safari the scrollbar of the preview grid remains
				document.getElementById('queryresultcatastogrid').style.display = 'none';
			}
		}
		if (hasTabelleCivici) {
			document.getElementById('addressquery').style.visibility = 'hidden';
			document.getElementById('querycivicidiv').style.visibility = 'hidden';
			document.getElementById('queryresultcivicigrid').style.visibility = 'hidden';
			document.getElementById('divqueryciviciviatesto').style.visibility = 'hidden';
			document.getElementById('divqueryciviciviaselect').style.visibility = 'hidden';
			document.getElementById('divquerycivicinrtesto').style.visibility = 'hidden';
			document.getElementById('divquerycivicinrselect').style.visibility = 'hidden';
			document.getElementById('spantestocivici').style.visibility = 'hidden';
			if (_isKHTML) {
				// otherwise in Safari the scrollbar of the preview grid remains
				document.getElementById('queryresultcivicigrid').style.display = 'none';
			}
		}
	}

	if (document.getElementById('analysebuilderdiv')) {
		document.getElementById('analysebuilderdiv').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
	}

	if (document.getElementById('isochronebuilderdiv')) {
		document.getElementById('isochronebuilderdiv').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviatesto').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
		document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
	}
	
	// small query builder div
	mioElemento2.style.visibility = "visible";
	mioElemento2.style.bottom = 0 + 'px';
}

// function to show the main query builder div and to hide the small query builder div
// this function shows the current div
function alzaQueryBuilder(divId) {

	var mioElemento = document.getElementById("MainQueryBuilderDiv");
	var mioElemento2 = document.getElementById("smallQueryBuilderDiv");

	mioElemento.style.visibility = "visible";

	if (document.getElementById('resultdiv')) {
		document.getElementById('resultdiv').style.visibility = 'visible';
	}

	for (i=0; i<pOutputDivArr.length; i++) {
		document.getElementById(pOutputDivArr[i]).style.visibility = 'hidden';
	}

	if (document.getElementById('analysebuilderdiv')) {
		document.getElementById('analysebuilderdiv').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
	}

	if (document.getElementById('isochronebuilderdiv')) {
		document.getElementById('isochronebuilderdiv').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviatesto').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
		document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
	}
	
	document.getElementById(divId).style.visibility = 'visible';

	if (divId == 'querybuilderdiv') {
		if (hasTabelleParticelle) {
			document.getElementById('cadastrequery').style.visibility = 'visible';
		}

		if (hasTabelleCivici) {
			document.getElementById('addressquery').style.visibility = 'visible';
		}

		displayQueryType(actualQueryType);
		//displayQueryType('querybuilderdiv');
	}

	if (divId == 'analysebuilderdiv') {
		//displayQueryType(actualQueryType);
		displayQueryType('analysebuilderdiv');
	}

	if (divId == 'isochronebuilderdiv') {
		//displayQueryType(actualQueryType);
		displayQueryType('isochronebuilderdiv');
	}
	
	mioElemento2.style.visibility = "hidden";
	mioElemento2.style.bottom = 20 + 'px'; // altrimenti firefox mette la scrollbar verticale
}

// function to load the available fields of the selected theme (simple query)
function aggCriteri() {
	if (document.getElementById('temiquery').selectedIndex == 0) {
		document.getElementById("criterioquery").options.length = 1;
	} else {
		performAggCriteri();
	}
}

// make simple query
function querySemplice() {
	actualQueryType = "querycentralediv";
	isSimpleQueryMade = true;
	isPathAnalyseMade = false;
	isIsochroneAnalyseMade = false;
	
	performQuery();
}

// make address query
function queryCivici() {
	actualQueryType = "querycivicidiv";
	isSimpleQueryMade = true;
	isPathAnalyseMade = false;
	isIsochroneAnalyseMade = false;
	
	var civiciVia = document.getElementById('testoquerycivicivia').value;
	var civiciNumero = document.getElementById('testoquerycivicinr').value;
	var civiciLettera = document.getElementById('testoquerycivicilet').value;

	if (civiciVia == "" && civiciNumero == "" && civiciLettera == "") {
		alert(noSearchParameterMsg);
	} else if (civiciVia != "" && civiciNumero == "" && civiciLettera == "") {
		if (document.getElementById('divqueryciviciviatesto').style.visibility == 'visible') {
			mygridcivicipreview.clearAll(false);
			mygridcivicipreview.setHeader("");

			// load the street combo with the streets matching the inserted text
			performQueryCiviciCombo(civiciVia);
		} else {
			if (document.getElementById('selectquerycivicinr').options[document.getElementById('selectquerycivicinr').selectedIndex].text == '---') {
				alert(noSearchParameterMsg);
			} else {
				var streetName = document.getElementById('selectquerycivicivia').options[document.getElementById('selectquerycivicivia').selectedIndex].value;
				var streetNumber = document.getElementById('selectquerycivicinr').options[document.getElementById('selectquerycivicinr').selectedIndex].value;

				// disabilito le query precedenti

				var listaFigli = tree.getAllSubItems('themesquery').split(",");

				for (var i=0; i<listaFigli.length; i++) {
					tree.setCheck(listaFigli[i], 0);
				}

				// make the address query
				performQueryCivici(streetName, streetNumber);

				//clearSelectionCivici();
			}
		}
	} else {
		// disabilito le query precedenti

		//var listaFigli = tree.getAllSubItems('themesquery').split(",");

		//for (var i=0; i<listaFigli.length; i++)
		//{
		//    tree.setCheck(listaFigli[i], 0);
		//}

		// load the preview grid if we have more than one result
		performQueryCiviciPreview(civiciVia, civiciNumero, civiciLettera);
	}
}

// load the civic numbers of the select street
function addCivicNumber() {
	var streetName = document.getElementById('selectquerycivicivia').options[document.getElementById('selectquerycivicivia').selectedIndex].value;
	if (document.getElementById('selectquerycivicivia').selectedIndex == 0) {
		document.getElementById("selectquerycivicinr").options.length = 0;
	} else {
		performAddCivicNumber(streetName);
	}
}

// clear the inserted parameters to begin a new search (address query)
function clearSelectionCivici() {
	document.getElementById('selectquerycivicivia').options.length = 0;
	document.getElementById('selectquerycivicinr').options.length = 0;
	document.getElementById('testoquerycivicivia').value = "";
	document.getElementById('testoquerycivicinr').value = "";
	document.getElementById('testoquerycivicilet').value = "";
	//document.getElementById('spantestocivici').style.visibility = 'hidden';
}

// function to prepare to a new search (address query)
function newSearchCivici() {
	clearSelectionCivici();
	mygridcivicipreview.clearAll(false);
	mygridcivicipreview.setHeader("");
	mygridcivicipreview.init();
	document.getElementById('divqueryciviciviatesto').style.visibility = 'visible';
	document.getElementById('divqueryciviciviaselect').style.visibility = 'hidden';
	document.getElementById('divquerycivicinrtesto').style.visibility = 'visible';
	document.getElementById('divquerycivicinrselect').style.visibility = 'hidden';
}

// make cadastre query
function queryCatasto() {
	actualQueryType = "querycatastodiv";
	isSimpleQueryMade = true;
	isPathAnalyseMade = false;
	isIsochroneAnalyseMade = false;
	var comuneCatastale = document.getElementById('ccquery').options[document.getElementById('ccquery').selectedIndex].value;
	var tipoParticella = document.getElementById('pepfquery').options[document.getElementById('pepfquery').selectedIndex].value;
	var numeroParticella1 = document.getElementById('testoparticella1').value;
	var numeroParticella2 = document.getElementById('testoparticella2').value;

	if (numeroParticella1 == "" && numeroParticella2 == "") {
		alert(noSearchParameterMsg);
	} else {
		// disabilito le query precedenti

		var listaFigli = tree.getAllSubItems('themesquery').split(",");

		for (var i=0; i<listaFigli.length; i++) {
			tree.setCheck(listaFigli[i], 0);
		}

		// load the preview grid if we have more than one result
		performQueryCatastoPreview(comuneCatastale, tipoParticella, numeroParticella1, numeroParticella2);
	}
}

// function to prepare to a new search (cadastre query)
function newSearchCatasto() {
	mygridcatastopreview.clearAll(false);
	mygridcatastopreview.setHeader("");
	mygridcatastopreview.init();
	document.getElementById('testoparticella1').value = "";
	document.getElementById('testoparticella2').value = "";
}

// function to prepare to a new search (simple query)
function newSearchQuerySemplice() {
	mygridpreview.clearAll(false);
	mygridpreview.setHeader("");
	mygridpreview.init();
	document.getElementById('testoquery').value = "";
}

function getkey(e) {
	if (window.event) {
		return window.event.keyCode;
	} else if (e) {
		return e.which;
	} else {
		return null;
	}
}

// function to accept specific keys (scale text)
function caratteriok(e, goods) {
	var key, keychar;
	key = getkey(e);
	if (key == null) return true;

	// get character
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	goods = goods.toLowerCase();

	//if return key is pressed, then change the scale of the image
	if (key==13) {
		changeScale();
	}

	// check goodkeys
	if (goods.indexOf(keychar) != -1) {
		return true;
	}

	// control keys
	if (key==null || key==0 || key==8 || key==9 || key==13 || key==27) {
		return true;
	}

	// else return false
	return false;
}

// function to accept specific keys (address query)
function numcivicook(e, goods) {
	var key, keychar;
	key = getkey(e);
	if (key == null) return true;

	// get character
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	goods = goods.toLowerCase();

	// check goodkeys
	if (goods.indexOf(keychar) != -1) {
		return true;
	}

	// control keys
	if (key==null || key==0 || key==8 || key==9 || key==13 || key==27) {
		return true;
	}

	// else return false
	return false;
}

// function to make visible the input div
function displayProfile(divId) {

	for (i=0; i<profilesDivArr.length; i++) {
		document.getElementById(profilesDivArr[i]).style.visibility = 'hidden';
	}

	if (document.getElementById('analysebuilderdiv')) {
		document.getElementById('analysebuilderdiv').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
	}

	if (document.getElementById('isochronebuilderdiv')) {
		document.getElementById('isochronebuilderdiv').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviatesto').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
		document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
	}
	
	document.getElementById(divId).style.visibility = 'visible';
}

// function to show the current div (query or result)
function displayOutput(divId) {

	for (i=0; i<pOutputDivArr.length; i++) {
		document.getElementById(pOutputDivArr[i]).style.visibility = 'hidden';
	}

	if (document.getElementById('analysebuilderdiv')) {
		document.getElementById('analysebuilderdiv').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
	}

	if (document.getElementById('isochronebuilderdiv')) {
		document.getElementById('isochronebuilderdiv').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviatesto').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
		document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
	}
	
	document.getElementById(divId).style.visibility = 'visible';

	if (divId == 'querybuilderdiv') {
		if (hasTabelleParticelle) {
			document.getElementById('cadastrequery').style.visibility = 'visible';
		}

		if (hasTabelleCivici) {
			document.getElementById('addressquery').style.visibility = 'visible';
		}

		displayQueryType(actualQueryType);
		//displayQueryType('querybuilderdiv');
	} else if (divId == 'analysebuilderdiv') {
		//displayQueryType(actualQueryType);
		displayQueryType('analysebuilderdiv');
	} else if (divId == 'isochronebuilderdiv') {
		//displayQueryType(actualQueryType);
		displayQueryType('isochronebuilderdiv');
	} else {
		if (document.getElementById('queryresultgridpreview')) {
			document.getElementById('querycentralediv').style.visibility = 'hidden';
			document.getElementById('queryresultgridpreview').style.visibility = 'hidden';
			document.getElementById('spantestoquerysemplice').style.visibility = 'hidden';
			if (_isKHTML) {
				// otherwise in Safari the scrollbar of the preview grid remains
				document.getElementById('queryresultgridpreview').style.display = 'none';
			}
			if (hasTabelleParticelle) {
				document.getElementById('cadastrequery').style.visibility = 'hidden';
				document.getElementById('querycatastodiv').style.visibility = 'hidden';
				document.getElementById('queryresultcatastogrid').style.visibility = 'hidden';
				document.getElementById('spantestocatasto').style.visibility = 'hidden';
				document.getElementById('spancatastopunto').style.visibility = 'hidden';
				if (_isKHTML) {
					// otherwise in Safari the scrollbar of the preview grid remains
					document.getElementById('queryresultcatastogrid').style.display = 'none';
				}
			}
			if (hasTabelleCivici) {
				document.getElementById('addressquery').style.visibility = 'hidden';
				document.getElementById('querycivicidiv').style.visibility = 'hidden';
				document.getElementById('queryresultcivicigrid').style.visibility = 'hidden';
				document.getElementById('divqueryciviciviatesto').style.visibility = 'hidden';
				document.getElementById('divqueryciviciviaselect').style.visibility = 'hidden';
				document.getElementById('divquerycivicinrtesto').style.visibility = 'hidden';
				document.getElementById('divquerycivicinrselect').style.visibility = 'hidden';
				document.getElementById('spantestocivici').style.visibility = 'hidden';
				if (_isKHTML) {
					// otherwise in Safari the scrollbar of the preview grid remains
					document.getElementById('queryresultcivicigrid').style.display = 'none';
				}
			}
		}

		if (document.getElementById('analysebuilderdiv')) {
			document.getElementById('analysebuilderdiv').style.visibility = 'hidden';
			document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalyseviadatesto').style.visibility = 'hidden';
			document.getElementById('divqueryanalyseviaatesto').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
		}
		
		if (document.getElementById('isochronebuilderdiv')) {
			document.getElementById('isochronebuilderdiv').style.visibility = 'hidden';
			document.getElementById('divqueryisochroneviatesto').style.visibility = 'hidden';
			document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
			document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
			document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
			document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
		}
	}
}

// function to show the subelements of the input div
function displayQueryType(divId) {

	for (i=0; i<queryDivArray.length; i++) {
		document.getElementById(queryDivArray[i]).style.visibility = 'hidden';
	}

	document.getElementById(divId).style.visibility = 'visible';

	//actualQueryType = divId;

	if (divId == 'querycivicidiv') {

		document.getElementById('spantestocivici').style.visibility = 'visible';
		document.getElementById('spantestocatasto').style.visibility = 'hidden';
		document.getElementById('spancatastopunto').style.visibility = 'hidden';
		document.getElementById('spantestoquerysemplice').style.visibility = 'hidden';
		document.getElementById('queryresultcivicigrid').style.visibility = 'visible';
		if (_isKHTML) {
			// otherwise in Safari the scrollbar of the preview grid remains
			document.getElementById('queryresultcivicigrid').style.display = 'block';
			document.getElementById('queryresultcatastogrid').style.display = 'none';
			document.getElementById('queryresultgridpreview').style.display = 'none';
		}
		if (document.getElementById('selectquerycivicivia').options.length > 0) {
			document.getElementById('divqueryciviciviaselect').style.visibility = 'visible';
			document.getElementById('divqueryciviciviatesto').style.visibility = 'hidden';
			document.getElementById('divquerycivicinrtesto').style.visibility = 'hidden';
			document.getElementById('divquerycivicinrselect').style.visibility = 'visible';
		} else {
			document.getElementById('divqueryciviciviaselect').style.visibility = 'hidden';
			document.getElementById('divqueryciviciviatesto').style.visibility = 'visible';
			document.getElementById('divquerycivicinrtesto').style.visibility = 'visible';
			document.getElementById('divquerycivicinrselect').style.visibility = 'hidden';
		}
	} else if (divId == 'querycatastodiv') {

		document.getElementById('spantestocatasto').style.visibility = 'visible';
		if (_isKHTML) {
			// otherwise in Safari the scrollbar of the preview grid remains
			document.getElementById('queryresultcatastogrid').style.display = 'block';
			document.getElementById('queryresultgridpreview').style.display = 'none';
			document.getElementById('queryresultcivicigrid').style.display = 'none';
		}
		if (document.getElementById('pepfquery').selectedIndex == 1) {
			document.getElementById('spancatastopunto').style.visibility = 'visible';
		} else {
			document.getElementById('spancatastopunto').style.visibility = 'hidden';
		}
		document.getElementById('spantestocivici').style.visibility = 'hidden';
		document.getElementById('spantestoquerysemplice').style.visibility = 'hidden';
		document.getElementById('queryresultcatastogrid').style.visibility = 'visible';
		document.getElementById('divqueryciviciviaselect').style.visibility = 'hidden';
		document.getElementById('divqueryciviciviatesto').style.visibility = 'hidden';
		document.getElementById('divquerycivicinrtesto').style.visibility = 'hidden';
		document.getElementById('divquerycivicinrselect').style.visibility = 'hidden';
		document.getElementById('queryresultcivicigrid').style.visibility = 'hidden';
	} else if (divId == 'analysebuilderdiv') {

		if ((document.getElementById('tipoanalisida').options[document.getElementById('tipoanalisida').selectedIndex].value) == 'ADDRESS') {
			if (document.getElementById('selectqueryanalyseviada').options.length > 0) {
				document.getElementById('divqueryanalyseviadaselect').style.visibility = 'visible';
				document.getElementById('divqueryanalysenrdaselect').style.visibility = 'visible';
				document.getElementById('divqueryanalysenrdaspan').style.visibility = 'visible';
				document.getElementById('divqueryanalyseviadatesto').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
			} else {
				document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
				document.getElementById('divqueryanalyseviadatesto').style.visibility = 'visible';
				document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
			}
		} else if ((document.getElementById('tipoanalisida').options[document.getElementById('tipoanalisida').selectedIndex].value) == 'POI') {
			if (document.getElementById('selectqueryanalysepoida').options.length > 0) {
				document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
				document.getElementById('divqueryanalyseviadatesto').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'visible';
				document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoidaselect').style.visibility = 'visible';
				document.getElementById('divqueryanalysepoidaspan').style.visibility = 'visible';
			} else {
				document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
				document.getElementById('divqueryanalyseviadatesto').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'visible';
				document.getElementById('divqueryanalysepoidatesto').style.visibility = 'visible';
				document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoidaspan').style.visibility = 'visible';
			}
		} else {
			document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
			document.getElementById('divqueryanalyseviadatesto').style.visibility = 'visible';
			document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
		}
		if ((document.getElementById('tipoanalisia').options[document.getElementById('tipoanalisia').selectedIndex].value) == 'ADDRESS') {
			if (document.getElementById('selectqueryanalyseviaa').options.length > 0) {
				document.getElementById('divqueryanalyseviaaselect').style.visibility = 'visible';
				document.getElementById('divqueryanalysenraselect').style.visibility = 'visible';
				document.getElementById('divqueryanalysenraspan').style.visibility = 'visible';
				document.getElementById('divqueryanalyseviaatesto').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
			} else {
				document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
				document.getElementById('divqueryanalyseviaatesto').style.visibility = 'visible';
				document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
			}
		} else if ((document.getElementById('tipoanalisia').options[document.getElementById('tipoanalisia').selectedIndex].value) == 'POI') {
			if (document.getElementById('selectqueryanalysepoia').options.length > 0) {
				document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
				document.getElementById('divqueryanalyseviaatesto').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoicataselect').style.visibility = 'visible';
				document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoiaselect').style.visibility = 'visible';
				document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
			} else {
				document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
				document.getElementById('divqueryanalyseviaatesto').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoicataselect').style.visibility = 'visible';
				document.getElementById('divqueryanalysepoiatesto').style.visibility = 'visible';
				document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
				document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
			}
		} else {
			document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
			document.getElementById('divqueryanalyseviaatesto').style.visibility = 'visible';
			document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
			document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
		}
	} else if (divId == 'isochronebuilderdiv') {
		if ((document.getElementById('typeofpoint').options[document.getElementById('typeofpoint').selectedIndex].value) == 'ADDRESS') {
			if (document.getElementById('selectqueryisochronevia').options.length > 0) {
				document.getElementById('divqueryisochroneviaselect').style.visibility = 'visible';
				document.getElementById('divqueryisochronenrselect').style.visibility = 'visible';
				document.getElementById('divqueryisochronenrspan').style.visibility = 'visible';
				document.getElementById('divqueryisochroneviatesto').style.visibility = 'hidden';
				document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
				document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
				document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
				document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
			} else {
				document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
				document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
				document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
				document.getElementById('divqueryisochroneviatesto').style.visibility = 'visible';
				document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
				document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
				document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
				document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
			}
		} else if ((document.getElementById('typeofpoint').options[document.getElementById('typeofpoint').selectedIndex].value) == 'POI') {
			if (document.getElementById('selectqueryisochronepoi').options.length > 0) {
				document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
				document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
				document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
				document.getElementById('divqueryisochroneviatesto').style.visibility = 'hidden';
				document.getElementById('divqueryisochronepoicatselect').style.visibility = 'visible';
				document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
				document.getElementById('divqueryischronepoiselect').style.visibility = 'visible';
				document.getElementById('divqueryisochronepoispan').style.visibility = 'visible';
			} else {
				document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
				document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
				document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
				document.getElementById('divqueryisochroneviatesto').style.visibility = 'hidden';
				document.getElementById('divqueryisochronepoicatselect').style.visibility = 'visible';
				document.getElementById('divqueryisochronepoitesto').style.visibility = 'visible';
				document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
				document.getElementById('divqueryisochronepoispan').style.visibility = 'visible';
			}
		} else {
			document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
			document.getElementById('divqueryisochroneviatesto').style.visibility = 'visible';
			document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
			document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
			document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
		}
	} else {

		document.getElementById('spantestoquerysemplice').style.visibility = 'visible';
		document.getElementById('spantestocivici').style.visibility = 'hidden';
		document.getElementById('spantestocatasto').style.visibility = 'hidden';
		document.getElementById('spancatastopunto').style.visibility = 'hidden';
		document.getElementById('queryresultgridpreview').style.visibility = 'visible';
		document.getElementById('divqueryciviciviaselect').style.visibility = 'hidden';
		document.getElementById('divqueryciviciviatesto').style.visibility = 'hidden';
		document.getElementById('divquerycivicinrtesto').style.visibility = 'hidden';
		document.getElementById('divquerycivicinrselect').style.visibility = 'hidden';
		document.getElementById('queryresultcivicigrid').style.visibility = 'hidden';
		document.getElementById('queryresultcatastogrid').style.visibility = 'hidden';
		if (_isKHTML) {
			// otherwise in Safari the scrollbar of the preview grid remains
			document.getElementById('queryresultgridpreview').style.display = 'block';
			document.getElementById('queryresultcivicigrid').style.display = 'none';
			document.getElementById('queryresultcatastogrid').style.display = 'none';
		}
	}
}

// display the wait div at the center of map image
function displayWaitDiv() {
	if (document.getElementById('aggiungitemidiv')) {
		document.getElementById('aggiungitemidiv').style.visibility = 'hidden';
	}
	document.getElementById('reportlayer').style.visibility = 'hidden';

	var xyArr = getPageSize();
	var posAttendereX;
	var posAttendereY;

	if (_isIE) {
		posAttendereX = (xyArr[0] / 2) - (parseInt(document.getElementById('attenderediv').style.width) / 2);
		posAttendereY = (xyArr[1] / 2) - (parseInt(document.getElementById('attenderediv').style.height) / 2);
	} else {
		posAttendereX = (xyArr[0] / 2) - (parseInt(document.getElementById('attenderediv').style.width) / 2) + offsetX;
		posAttendereY = (xyArr[1] / 2) - (parseInt(document.getElementById('attenderediv').style.height) / 2) + offsetY;
	}

	document.getElementById('attenderediv').style.top = posAttendereY;
	document.getElementById('attenderediv').style.left = posAttendereX;
	document.getElementById('attenderediv').style.visibility = 'visible';
}

// function to show the add themes div at the center of map image
function apriAggiungiTemi() {
	disattivaBottoni();
	var xyArr = getPageSize();
	var posAggiungiTemiX;
	var posAggiungiTemiY;

	if (_isIE) {
		posAggiungiTemiX = (xyArr[0] / 2) - (parseInt(document.getElementById('aggiungitemidiv').style.width) / 2);
		posAggiungiTemiY = (xyArr[1] / 2) - (parseInt(document.getElementById('aggiungitemidiv').style.height) / 2);
	} else {
		posAggiungiTemiX = (xyArr[0] / 2) - (parseInt(document.getElementById('aggiungitemidiv').style.width) / 2) + offsetX;
		posAggiungiTemiY = (xyArr[1] / 2) - (parseInt(document.getElementById('aggiungitemidiv').style.height) / 2) + offsetY;
	}

	document.getElementById('aggiungitemidiv').style.top = posAggiungiTemiY;
	document.getElementById('aggiungitemidiv').style.left = posAggiungiTemiX;
	document.getElementById('aggiungitemidiv').style.visibility = 'visible';
	document.getElementById('aggtemibutt').disabled = true;
}

// function to hide the add themes div
function chiudiAggiungiTemi() {
	disattivaBottoni();

	document.getElementById('aggiungitemidiv').style.visibility = 'hidden';
}

// function to disable the add themes button when a theme is not choosen
function checkSelection() {
	document.getElementById('aggtemibutt').disabled = (document.getElementById('aggtemi').selectedIndex == 0);
}

// function to disable the simple query button when not all parameters are filled
function checkQuerySelection() {
	document.getElementById('querybutton').disabled = ((document.getElementById('temiquery').selectedIndex == 0) || (document.getElementById('criterioquery').selectedIndex == 0));
}

// function to disable the cadastre query button when not all parameters are filled
// and to show or hide the dot (it depends on the type of particles)
function checkCatastoSelection() {
	document.getElementById('querycatastobutton').disabled = ((document.getElementById('ccquery').selectedIndex == 0) || (document.getElementById('pepfquery').selectedIndex == 0));
	if (document.getElementById('pepfquery').selectedIndex == 1) {
		document.getElementById('spancatastopunto').style.visibility = 'visible';
	} else {
		document.getElementById('spancatastopunto').style.visibility = 'hidden';
	}
}

function getFloatFromString(aString) {
	aString = aString.replace(',', '.');
	aString = parseFloat(aString);
	return aString;
}

// function to show the print div and generate the rectangle necessary to choose the print area
function apriStampa() {
	disattivaBottoni();
	document.getElementById("mapimg").style.cursor = 'arrow';
	//document.getElementById("printhiddenlayer").style.cursor = 'arrow';
	document.getElementById("printscale").value = parseInt(document.getElementById("scaletext").value / 10);
	document.getElementById('Mainprintdiv').style.visibility = 'visible';
	generatePrintRect();
}

// make the print (generate a pfd file)
function printPdf(format) {
	performPrint(format);
}

// function to show the div with the url of the generated document at the center of map image (export of the grid's rows)
function openReportLayer(link) {

	var xyArr = getPageSize();
	var posReportLayerX;
	var posReportLayerY;
	var format = link.substring(link.length - 3, link.length);

	if (_isIE) {
		posReportLayerX = (xyArr[0] / 2) - (parseInt(document.getElementById('reportlayer').style.width) / 2);
		posReportLayerY = (xyArr[1] / 2) - (parseInt(document.getElementById('reportlayer').style.height) / 2);
	} else {
		posReportLayerX = (xyArr[0] / 2) - (parseInt(document.getElementById('reportlayer').style.width) / 2) + offsetX;
		posReportLayerY = (xyArr[1] / 2) - (parseInt(document.getElementById('reportlayer').style.height) / 2) + offsetY;
	}

	document.getElementById('reportlink').href = link;

	if (format == "xls") {
		document.images["reportlayerimg"].src = 'img/excelreport.gif';
	} else if (format == "txt") {
		document.images["reportlayerimg"].src = 'img/textreport.gif';
	} else if (format == "rtf") {
		document.images["reportlayerimg"].src = 'img/rtfreport.gif';
	} else if (format == "doc") {
		document.images["reportlayerimg"].src = 'img/wordreport.gif';
	} else if (format == "pdf") {
		document.images["reportlayerimg"].src = 'img/pdfreport.gif';
	} else if (format == "odt") {
		document.images["reportlayerimg"].src = 'img/openofficereport.gif';
	}

	document.getElementById('reportlayer').style.top = posReportLayerY;
	document.getElementById('reportlayer').style.left = posReportLayerX;

	document.getElementById('reportlayer').style.visibility = 'visible';
}

// function to show the div with the url of the generated document at the center of map image (print)
function openDocumentLayer(link) {

	var xyArr = getPageSize();
	var posReportLayerX;
	var posReportLayerY;
	var format = link.substring(link.length - 3, link.length);

	if (_isIE) {
		posReportLayerX = (xyArr[0] / 2) - (parseInt(document.getElementById('reportlayer').style.width) / 2);
		posReportLayerY = (xyArr[1] / 2) - (parseInt(document.getElementById('reportlayer').style.height) / 2);
	} else {
		posReportLayerX = (xyArr[0] / 2) - (parseInt(document.getElementById('reportlayer').style.width) / 2) + offsetX;
		posReportLayerY = (xyArr[1] / 2) - (parseInt(document.getElementById('reportlayer').style.height) / 2) + offsetY;
	}

	document.getElementById('reportlink').href = link;

	if (format == "rtf") {
		document.images["reportlayerimg"].src = 'img/rtfreport.gif';
	} else if (format == "doc") {
		document.images["reportlayerimg"].src = 'img/wordreport.gif';
	} else if (format == "pdf") {
		document.images["reportlayerimg"].src = 'img/pdfreport.gif';
	} else if (format == "odt") {
		document.images["reportlayerimg"].src = 'img/openofficereport.gif';
	}

	document.getElementById('reportlayer').style.top = posReportLayerY;
	document.getElementById('reportlayer').style.left = posReportLayerX;

	document.getElementById('reportlayer').style.visibility = 'visible';
}

// function to hide the div with the url of the generated document
function closeReportLayer() {
	document.getElementById('reportlayer').style.visibility = 'hidden';
}

// function to open the help page
function apriHelp() {
	disattivaBottoni();
	performApriHelp();
}

// make path analyse
function pathAnalyse() {

//	actualQueryType = "analysebuilderdiv";
	
	if (isIsochroneAnalyseMade == true) {
		performDisableIsochrone(false);
	}
	
	isSimpleQueryMade = false;
	isPathAnalyseMade = true;
	isIsochroneAnalyseMade = false;
	
	var tipoAnalisiDa = document.getElementById('tipoanalisida').options[document.getElementById('tipoanalisida').selectedIndex].value;
	var tipoAnalisiA = document.getElementById('tipoanalisia').options[document.getElementById('tipoanalisia').selectedIndex].value;
	var daVia = document.getElementById('testoqueryanalyseviada').value;
	var aVia = document.getElementById('testoqueryanalyseviaa').value;
	var daCatPoi = "";
	if (document.getElementById('selectqueryanalysepoicatda').options.length > 0) {
		daCatPoi = document.getElementById('selectqueryanalysepoicatda').options[document.getElementById('selectqueryanalysepoicatda').selectedIndex].value;
	}
	var aCatPoi = "";
	if (document.getElementById('selectqueryanalysepoicata').options.length > 0) {
		aCatPoi = document.getElementById('selectqueryanalysepoicata').options[document.getElementById('selectqueryanalysepoicata').selectedIndex].value;
	}
	var daPoi = document.getElementById('testoqueryanalysepoida').value;
	var aPoi = document.getElementById('testoqueryanalysepoia').value;
	var warningMessage = "";

	if (document.getElementById('tipoanalisida').selectedIndex == 0) {
		warningMessage = warningMessage + noIndicateTypeFromMsg + "\n";
	}

	if (document.getElementById('tipoanalisia').selectedIndex == 0) {
		warningMessage = warningMessage + noIndicateTypeToMsg + "\n";
	}

	if (document.getElementById('tipomezzo').selectedIndex == 0) {
		warningMessage = warningMessage + noIndicateMezzoMsg + "\n";
	}

	if (daVia == "" && daPoi == "") {
		warningMessage = warningMessage + noIndicateFromMsg + "\n";
	}

	if (aVia == "" && aPoi == "") {
		warningMessage = warningMessage + noIndicateToMsg;
	}

	if (warningMessage != "") {
		alert(warningMessage);
		return;
	}

	var parametroInd1 = "";
	var parametroInd2 = "";
	var parametroInd3 = "";
	var parametroInd4 = "";
	var parametroPoi1 = "";
	var parametroPoi2 = "";
	var parametroPoi3 = "";
	var parametroPoi4 = "";
	var parametroPoi5 = "";
	var parametroPoi6 = ""

	if (tipoAnalisiDa == "ADDRESS" && document.getElementById('divqueryanalyseviadaselect').style.visibility == 'hidden' && daVia != "") {
		parametroInd1 = daVia;
		parametroInd2 = "da";
	}

	if (tipoAnalisiA == "ADDRESS" && document.getElementById('divqueryanalyseviaaselect').style.visibility == 'hidden' && aVia != "") {
		parametroInd3 = aVia;
		parametroInd4 = "a";
	}

	if (tipoAnalisiDa == "POI" && document.getElementById('divqueryanalysepoidaselect').style.visibility == 'hidden' && daPoi != "") {
		parametroPoi1 = daCatPoi;
		parametroPoi2 = daPoi;
		parametroPoi3 = "da";
	}

	if (tipoAnalisiA == "POI" && document.getElementById('divqueryanalysepoiaselect').style.visibility == 'hidden' && aPoi != "") {
		parametroPoi4 = aCatPoi;
		parametroPoi5 = aPoi;
		parametroPoi6 = "a";
	}

	if (parametroInd1 != "" || parametroInd2 != "" || parametroInd3 != "" || parametroInd4 != ""  || parametroPoi1 != "" || parametroPoi2 != "" || parametroPoi3 != "" || parametroPoi4 != "" || parametroPoi5 != "" || parametroPoi6 != "") {
		if (parametroInd1 != "" && parametroInd2 != "" && parametroInd3 != "" && parametroInd4 != "") {
			// load the street combos with the streets matching the inserted texts if both combos are address
			performPathAnalyseViaCombo(parametroInd1, parametroInd2, parametroInd3, parametroInd4);
		} else if (parametroPoi1 != "" && parametroPoi2 != "" && parametroPoi3 != "" && parametroPoi4 != "" && parametroPoi5 != "" && parametroPoi6 != "") {
			// load the indicated combo with the points of interest if both combos are poi
			performPathAnalysePoiCombo(parametroPoi1, parametroPoi2, parametroPoi3, parametroPoi4, parametroPoi5, parametroPoi6);
		} else {
			// load the indicated combo with address and poi if we have one address and one poi
			performPathAnalyseCombo(parametroInd1, parametroInd2, parametroInd3, parametroInd4, parametroPoi1, parametroPoi2, parametroPoi3, parametroPoi4, parametroPoi5, parametroPoi6);
		}
	} else {
		var daViaNome = "";
		if (document.getElementById('selectqueryanalyseviada').options.length > 0) {
			daViaNome = document.getElementById('selectqueryanalyseviada').options[document.getElementById('selectqueryanalyseviada').selectedIndex].value;
		}
		var daViaNumero = "";
		if (document.getElementById('selectqueryanalysenrda').options.length > 0) {
			daViaNumero = document.getElementById('selectqueryanalysenrda').options[document.getElementById('selectqueryanalysenrda').selectedIndex].value;
		}
		var aViaNome = "";
		if (document.getElementById('selectqueryanalyseviaa').options.length > 0) {
			aViaNome = document.getElementById('selectqueryanalyseviaa').options[document.getElementById('selectqueryanalyseviaa').selectedIndex].value;
		}
		var aViaNumero = "";
		if (document.getElementById('selectqueryanalysenra').options.length > 0) {
			aViaNumero = document.getElementById('selectqueryanalysenra').options[document.getElementById('selectqueryanalysenra').selectedIndex].value;
		}
		var daPoiCategoria = "";
		if (document.getElementById('selectqueryanalysepoicatda').options.length > 0) {
			daPoiCategoria = document.getElementById('selectqueryanalysepoicatda').options[document.getElementById('selectqueryanalysepoicatda').selectedIndex].value;
		}
		var daPoiDescrizione = "";
		if (document.getElementById('selectqueryanalysepoida').options.length > 0) {
			daPoiDescrizione = document.getElementById('selectqueryanalysepoida').options[document.getElementById('selectqueryanalysepoida').selectedIndex].value;
		}
		var aPoiCategoria = "";
		if (document.getElementById('selectqueryanalysepoicata').options.length > 0) {
			aPoiCategoria = document.getElementById('selectqueryanalysepoicata').options[document.getElementById('selectqueryanalysepoicata').selectedIndex].value;
		}
		var aPoiDescrizione = "";
		if (document.getElementById('selectqueryanalysepoia').options.length > 0) {
			aPoiDescrizione = document.getElementById('selectqueryanalysepoia').options[document.getElementById('selectqueryanalysepoia').selectedIndex].value;
		}
		var tipoMezzo = "";
		if (document.getElementById('tipomezzo').options.length > 0) {
			tipoMezzo = document.getElementById('tipomezzo').options[document.getElementById('tipomezzo').selectedIndex].value;
		}

		var checkMantieni = document.getElementById('checkmantieni');

		var parametro1 = "";
		var parametro2 = "";
		var parametro3 = "";
		var parametro4 = "";
		var parametro5 = "";
		var parametro6 = "";

		if (daViaNome != "") {
			parametro1 = tipoAnalisiDa;
			parametro2 = daViaNome;
			parametro3 = daViaNumero;
		} else {
			parametro1 = tipoAnalisiDa;
			parametro2 = daPoiCategoria;
			parametro3 = daPoiDescrizione;
		}

		if (aViaNome != "") {
			parametro4 = tipoAnalisiA;
			parametro5 = aViaNome;
			parametro6 = aViaNumero;
		} else {
			parametro4 = tipoAnalisiA;
			parametro5 = aPoiCategoria;
			parametro6 = aPoiDescrizione;
		}

		// disabilito le query precedenti

		var listaFigli = tree.getAllSubItems('themesquery').split(",");

		for (var i=0; i<listaFigli.length; i++) {
			tree.setCheck(listaFigli[i], 0);
		}
		actualQuery = null;

		// make path analyse
		performPathAnalyse(parametro1, parametro2, parametro3, parametro4, parametro5, parametro6, tipoMezzo, checkMantieni);
	}
}

// load the "from" civic numbers combo (path analyse)
function addAnalyseCivicNumberDa() {
	var streetName = document.getElementById('selectqueryanalyseviada').options[document.getElementById('selectqueryanalyseviada').selectedIndex].value;
	if (document.getElementById('selectqueryanalyseviada').selectedIndex == 0) {
		document.getElementById("selectqueryanalysenrda").options.length = 0;
	} else {
		performAddAnalyseCivicNumber(streetName, "da", "", "");
	}
}

// load the "to" civic numbers combo (path analyse)
function addAnalyseCivicNumberA() {
	var streetName = document.getElementById('selectqueryanalyseviaa').options[document.getElementById('selectqueryanalyseviaa').selectedIndex].value;
	if (document.getElementById('selectqueryanalyseviaa').selectedIndex == 0) {
		document.getElementById("selectqueryanalysenra").options.length = 0;
	} else {
		performAddAnalyseCivicNumber("", "", streetName, "a");
	}
}

// clear the inserted parameters to begin a new search (path analyse)
function clearSelectionAnalyse() {
	document.getElementById('selectqueryanalyseviada').options.length = 0;
	document.getElementById('selectqueryanalysenrda').options.length = 0;
	document.getElementById('testoqueryanalyseviada').value = "";
	document.getElementById('selectqueryanalyseviaa').options.length = 0;
	document.getElementById('selectqueryanalysenra').options.length = 0;
	document.getElementById('testoqueryanalyseviaa').value = "";
	document.getElementById('selectqueryanalysepoida').options.length = 0;
	document.getElementById('testoqueryanalysepoida').value = "";
	document.getElementById('selectqueryanalysepoia').options.length = 0;
	document.getElementById('testoqueryanalysepoia').value = "";
	document.getElementById('tipoanalisida').selectedIndex = 0;
	document.getElementById('tipoanalisia').selectedIndex = 0;
	document.getElementById('tipomezzo').selectedIndex = 0;
}

// function to prepare to a new search (path analyse)
function newSearchAnalyse() {
	clearSelectionAnalyse();
	if ((document.getElementById('tipoanalisida').options[document.getElementById('tipoanalisida').selectedIndex].value) == 'POI') {
		document.getElementById('divqueryanalyseviadatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'visible';
		document.getElementById('divqueryanalysepoidaspan').style.visibility = 'visible';
		document.getElementById('divqueryanalysepoidatesto').style.visibility = 'visible';
		document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
	} else {
		document.getElementById('divqueryanalyseviadatesto').style.visibility = 'visible';
		document.getElementById('divqueryanalyseviadaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenrdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
	}
	if ((document.getElementById('tipoanalisia').options[document.getElementById('tipoanalisia').selectedIndex].value) == 'POI') {
		document.getElementById('divqueryanalyseviaatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicataselect').style.visibility = 'visible';
		document.getElementById('divqueryanalysepoiaspan').style.visibility = 'visible';
		document.getElementById('divqueryanalysepoiatesto').style.visibility = 'visible';
		document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
	} else {
		document.getElementById('divqueryanalyseviaatesto').style.visibility = 'visible';
		document.getElementById('divqueryanalyseviaaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysenraselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
	}
}

// check the "from" type of analyse
function checkTipoAnalisiDa() {
	if ((document.getElementById('tipoanalisida').options[document.getElementById('tipoanalisida').selectedIndex].value) == 'POI') {
		// load the "from" poi categories combo (path analyse)
		performAggCategoriePoi("da");
	} else {
		document.getElementById("selectqueryanalysepoicatda").options.length = 0;
		document.getElementById('divqueryanalysepoicatdaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoidaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviadatesto').style.visibility = 'visible';
	}
}

// check the "to" type of analyse
function checkTipoAnalisiA() {
	if ((document.getElementById('tipoanalisia').options[document.getElementById('tipoanalisia').selectedIndex].value) == 'POI') {
		// load the "to" poi categories combo (path analyse)
		performAggCategoriePoi("a");
	} else {
		document.getElementById("selectqueryanalysepoicata").options.length = 0;
		document.getElementById('divqueryanalysepoicataselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiatesto').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaselect').style.visibility = 'hidden';
		document.getElementById('divqueryanalysepoiaspan').style.visibility = 'hidden';
		document.getElementById('divqueryanalyseviaatesto').style.visibility = 'visible';
	}
}

// check the type of point for the isochrone analyse
function checkIsochronePointType() {
	if ((document.getElementById('typeofpoint').options[document.getElementById('typeofpoint').selectedIndex].value) == 'POI') {
		// load the poi categories combo (isochrone analyse)
		performAddPoiCategories();
	} else {
		document.getElementById("selectqueryisochronepoicat").options.length = 0;
		document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
		document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviatesto').style.visibility = 'visible';
	}
}

//load the civic numbers combo (isochrone analyse)
function isochroneAddCivicNumber() {
	var streetName = document.getElementById('selectqueryisochronevia').options[document.getElementById('selectqueryisochronevia').selectedIndex].value;
	if (document.getElementById('selectqueryisochronevia').selectedIndex == 0) {
		document.getElementById("selectqueryisochronevia").options.length = 0;
	} else {
		performIsochroneAddCivicNumber(streetName);
	}
}

// make isochrone analyse
function isochroneAnalyse() {
//	actualQueryType = "isochronebuilderdiv";
	isSimpleQueryMade = false;
	isPathAnalyseMade = false;
	isIsochroneAnalyseMade = true;
	
	var typeOfPoint = document.getElementById('typeofpoint').options[document.getElementById('typeofpoint').selectedIndex].value;
	var street = document.getElementById('testoqueryisochronevia').value;
	var poiCat = "";
	if (document.getElementById('selectqueryisochronepoicat').options.length > 0) {
		poiCat = document.getElementById('selectqueryisochronepoicat').options[document.getElementById('selectqueryisochronepoicat').selectedIndex].value;
	}
	var poi = document.getElementById('testoqueryisochronepoi').value;
	var analyseDate = document.getElementById('isochronedate').value;
	var analyseHour = document.getElementById('timehour').value;
	var analyseMinutes = document.getElementById('timemin').value;
	var duration = document.getElementById('duration').value;
	var walkSpeed = document.getElementById('walkspeed').options[document.getElementById('walkspeed').selectedIndex].value;
	var warningMessage = "";
		
	if (document.getElementById('typeofpoint').selectedIndex == 0) {
		warningMessage = warningMessage + noIndicateTypeToMsg + "\n";
	}

	if (street == "" && poi == "") {
		warningMessage = warningMessage + noIndicateToMsg + "\n";
	}

	if (analyseDate == "") {
		warningMessage = warningMessage + noIndicateDateMsg + "\n";
	}
	
	if (analyseHour == "" || analyseMinutes == "") {
		warningMessage = warningMessage + noIndicateTimeMsg + "\n";
	}
	
	if (duration == "") {
		warningMessage = warningMessage + noIndicateDurationMsg + "\n";
	}
	
	if (document.getElementById('walkspeed').selectedIndex == 0) {
		warningMessage = warningMessage + noIndicateWalkSpeedMsg;
	}
	
	if (warningMessage != "") {
		alert(warningMessage);
		return;
	}
	
	var parametroInd = "";
	var parametroPoi1 = "";
	var parametroPoi2 = "";

	if (typeOfPoint == "ADDRESS" && document.getElementById('divqueryisochroneviaselect').style.visibility == 'hidden' && street != "") {
		parametroInd = street;
	}

	if (typeOfPoint == "POI" && document.getElementById('divqueryischronepoiselect').style.visibility == 'hidden' && poi != "") {
		parametroPoi1 = poiCat;
		parametroPoi2 = poi;
	}

	if (parametroInd != "" || parametroPoi1 != "" || parametroPoi2 != "") {
		if (parametroInd != "") {
			// load the street combos with the streets matching the inserted text
			performIsochroneStreetCombo(parametroInd);
		} else {
			// load the poi combo with the points of interest matching the inserted text
			performIsochronePoiCombo(parametroPoi1, parametroPoi2);
		}
	} else {
		// make isochrone analyse
		var viaNome = "";
		if (document.getElementById('selectqueryisochronevia').options.length > 0) {
			viaNome = document.getElementById('selectqueryisochronevia').options[document.getElementById('selectqueryisochronevia').selectedIndex].value;
		}
		var viaNumero = "";
		if (document.getElementById('selectqueryisochronenr').options.length > 0) {
			viaNumero = document.getElementById('selectqueryisochronenr').options[document.getElementById('selectqueryisochronenr').selectedIndex].value;
		}
		
		var poiCategoria = "";
		if (document.getElementById('selectqueryisochronepoicat').options.length > 0) {
			poiCategoria = document.getElementById('selectqueryisochronepoicat').options[document.getElementById('selectqueryisochronepoicat').selectedIndex].value;
		}
		var poiDescrizione = "";
		if (document.getElementById('selectqueryisochronepoi').options.length > 0) {
			poiDescrizione = document.getElementById('selectqueryisochronepoi').options[document.getElementById('selectqueryisochronepoi').selectedIndex].value;
		}

		var parametro1 = "";
		var parametro2 = "";
		var parametro3 = "";
		
		if (viaNome != "") {
			parametro1 = typeOfPoint;
			parametro2 = viaNome;
			parametro3 = viaNumero;
		} else {
			parametro1 = typeOfPoint;
			parametro2 = poiCategoria;
			parametro3 = poiDescrizione;
		}
		
		actualOrderBy = "";
		actualDirection = "";
		
		performIsochrone(parametro1, parametro2, parametro3, analyseDate, analyseHour, analyseMinutes, duration, walkSpeed);
	}
}

// set the current date and time in isochrone analyze
function setCurrentDateTime() {
	var myDate = new Date();
	var dd = addLeadingZero(myDate.getDate());//((myDate.getDate()<10) ? "0" : "") + myDate.getDate();
	var mm = addLeadingZero(myDate.getMonth() + 1);
	//mm = ((mm < 10) ? "0" : "") + mm;
	var yyyy = myDate.getYear();
	yyyy = (yyyy < 1000) ? yyyy + 1900 : yyyy;
	
	var calendarLanguage = document.getElementById('Lingua').options[document.getElementById('Lingua').selectedIndex].value;
	var tmpLanguage = dhtmlxCalendarLangModules[calendarLanguage.toLowerCase()];
	if (tmpLanguage != null) { 
		myCalendar.loadUserLanguage(calendarLanguage.toLowerCase());
		document.getElementById("isochronedate").value = dd + "." + mm + "." + yyyy;
	} else {
		document.getElementById("isochronedate").value = yyyy + "-" + mm + "-" + dd;
	}

	var hh = addLeadingZero(myDate.getHours());
	//hh = ((hh < 10) ? "0" : "") + hh;
	var min = addLeadingZero(myDate.getMinutes());
	//min = ((min < 10) ? "0" : "") + min;
	document.getElementById("timehour").value = hh;
	document.getElementById("timemin").value = min;
}

// add if necessary the leading zero to the input parameter
function addLeadingZero(num) {
	return ((num < 10) ? "0" : "") + num;
}

//clear the inserted parameters to begin a new search (isochrone analyse)
function clearSelectionIsochrone() {
	document.getElementById('selectqueryisochronevia').options.length = 0;
	document.getElementById('selectqueryisochronenr').options.length = 0;
	document.getElementById('testoqueryisochronevia').value = "";
	document.getElementById('selectqueryisochronepoi').options.length = 0;
	document.getElementById('testoqueryisochronepoi').value = "";
	document.getElementById('typeofpoint').selectedIndex = 0;
	document.getElementById('walkspeed').selectedIndex = 0;
	document.getElementById('duration').value = "";
}

// function to prepare to a new search (isochrone analyse)
function newSearchIsochrone() {
	clearSelectionIsochrone();
	setCurrentDateTime();
	if ((document.getElementById('typeofpoint').options[document.getElementById('typeofpoint').selectedIndex].value) == 'POI') {
		document.getElementById('divqueryisochroneviatesto').style.visibility = 'hidden';
		document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoicatselect').style.visibility = 'visible';
		document.getElementById('divqueryisochronepoispan').style.visibility = 'visible';
		document.getElementById('divqueryisochronepoitesto').style.visibility = 'visible';
		document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
	} else {
		document.getElementById('divqueryisochroneviatesto').style.visibility = 'visible';
		document.getElementById('divqueryisochroneviaselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrspan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronenrselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoicatselect').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoispan').style.visibility = 'hidden';
		document.getElementById('divqueryisochronepoitesto').style.visibility = 'hidden';
		document.getElementById('divqueryischronepoiselect').style.visibility = 'hidden';
	}
}

