
// per utilizzare queste funzioni devono essere importati
// xmlsax.js e AXL2VML_SAXParser.js
/** 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:tool_AXL_SAX");
	nascondiVML();

	var featureid = "";
	var npoints = 0;
	var xmlTextArray;
	var xmlCDataArray;
	var xmlAttrArray;
	var start = new Date();
	var arr, src = "";
	parser = new SAXDriver();
	var handler = new xmlHandler();


    // pass handlers to the sax2 parser
	parser.setDocumentHandler(handler);
	parser.setErrorHandler(handler);
	parser.setLexicalHandler(handler);
	//alert(axl);
	parser.parse(axl);// start parsing
    	
	//alert("parser.parse finished="+(new Date()-start));			
	//alert(testoVML);

	// get errors from sax2 parser
	var err = "\n" + handler.getError();
	if (this.theVMLCanvas.insertAdjacentHTML) {
		this.theVMLCanvas.insertAdjacentHTML('afterBegin', testoVML);
	}	

	//if (document.getElementById("theMap").insertAdjacentHTML) {
	//	document.getElementById("theMap").insertAdjacentHTML('afterBegin', testoVML);
	//}
}

//funzione che aggiunge un nodo FEATURE all'axl gia' presente nella form della gfmaplet
function addAltraFeature(inizioAxlAltraFeature, axlAltraFeature, fineAxlAltraFeature) {

		var axlEsistente = 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);				
		
}
