/** Alcune funzioni di servizio */
function converti(xReale, yReale) {
	var coordinate = null;
	var g_extent = mapGetExtent();
	coordinate = mapGetCoordinateMonitor(xReale, yReale, mappaWidth, mappaHeight, g_extent);
	return coordinate;
}


//serve a settare se si usa SVG o VML
function setTipoArea(nuovoTipoArea) {
	if ((nuovoTipoArea == "SVG") || (nuovoTipoArea == "VML")) {
		tipoArea = nuovoTipoArea;
	} else {
		alert("E' stata settata un tipo di area non valido: " + nuovoTipoArea + ". I valori validi sono 'SVG' e 'VML'.");
	}
}
function setUpnetRequired(upnet) {
	upnetRequired = upnet;
}

/** La funzione PRINCIPALE !!!! */
function ___disegnaAreaAXL(axl) {
	//alert("___disegnaAreaAXL"+axl);
	nascondiVML();

	if (axl.length>0) {
		GeometryExtractor.AXL2VML(axl, 
						mapGetExtent(), 
						mapGetDims(),
						___disegnaAreaAXL_CB);
	}
}

function ___disegnaAreaAXL_CB(testoVML) {
	//alert("___disegnaAreaAXL_CB ["+testoVML+"]");
	if (testoVML.length>0) {
		if (document.getElementById("theVMLCanvas").insertAdjacentHTML) {
			document.getElementById("theVMLCanvas").insertAdjacentHTML('afterBegin', "<div id=\"areaSelezionata\" STYLE=\"overflow:hidden\">"+testoVML+"</DIV>");
		}
	}	
}

//funzione che aggiunge un nodo FEATURE all'axl gia' presente nella form della gfmaplet
function addAltraFeature(inizioAxlAltraFeature, axlAltraFeature, fineAxlAltraFeature) {

		var axlEsistente = getGeometriaAttiva();
		//alert(getGeometriaAttiva());
		
		var inizioAxl = "";
		//var chiusuraAxl = "";
		var fineAxl = "";
		
		
		//se c'? gi? una feature selezionata calcolo il punto in cui aggiungere la 
		//nuova feature
		if ((axlEsistente != null) && (axlEsistente != "")) {
			var inizio = axlEsistente.lastIndexOf("</FEATURE>");
			inizio += 10; //aggiungo la lunghezza della stringa "</FEATURE>"		
			//alert("inizio = "  + inizio);
			
			var fine = axlEsistente.length;		
			//alert("fine = " + fine);
			
			fineAxl = axlEsistente.substring(inizio, fine);
			//alert("chiusuraAxl = "  + chiusuraAxl);
			
			inizioAxl = axlEsistente.substring(0, inizio);
			//alert("inizioAxl = " + inizioAxl );
				
		//altrimenti inseritsco tutto l'axl ricevuto (inizioAxl, feature, fineAxl)
		} else {
			inizioAxl = inizioAxlAltraFeature;
			fineAxl = fineAxlAltraFeature;
		}
				
				
		setGeometriaAttiva(inizioAxl + axlAltraFeature + fineAxl);				
		//alert(getGeometriaAttiva());
}
