﻿// JScript File

var map;
var ht;
var lev=0;
var brow="";
var mark_kml = new Array();
var marker_kml;
var lat_kml;
var lon_kml;
var ele_kml;
var name_kml;
var html_kml;

function LeggiIlFile() {
var datafile = "test_omar_4.kml";
//alert("test_omar_4.kml");
if (document.getElementById){
     objXml = new XMLHttpRequest();
     objXml.open("GET",datafile,false);
     objXml.send(null);
     //alert(objXml.responseText);
	 return objXml.responseText;
     }
}

function initialize(id) {
	if (id>=1) {
		if (GBrowserIsCompatible()) {
			var nome_kml ="test_omar_4.kml";
			map = new GMap2(document.getElementById("map_canvas"));
			map.setCenter(new GLatLng(41.896655,12.495918), 5, G_HYBRID_MAP);
			map.addControl(new GLargeMapControl());
			if (window.ActiveXObject) {
				brow="IE";
				//alert("IE!!!");
				xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
				//xml=new ActiveXObject("Microsoft.XMLDOM");
				xmlDoc.async=false;
				xmlDoc.load(nome_kml);
				//alert("xmlDoc: "+xmlDoc.text);
				sfragnaIlKml();
				//getKmlMarkers();
			} else if (document.implementation && document.implementation.createDocument) {
				var parser=new DOMParser();
				var strngXML=LeggiIlFile();
				brow="FF";
				//alert("firefox!!!");
				//alert(LeggiIlFile());
				xmlDoc=document.implementation.createDocument("","",null);
				xmlDoc.async=false;
				
				xmlDoc=parser.parseFromString(strngXML,"text/xml");

				//xmlDoc=LeggiIlFile();
				//alert(xmlDoc);
				sfragnaIlKml();
				//xmlDoc.onload=sfragnaIlKml();
				/*
				var isLoaded = xmlDoc.load(nome_kml);
				if (isLoaded == true) { 
					sfragnaIlKml(); 
				}
				*/
				//xmlDoc.load(nome_kml);
				//sfragnaIlKml();
				//xmlDoc.onload=getKmlMarkers();
			} else {
				alert('Questo browser non supporta google map');
			}		    
		}
	}
}

function createMarker2(point,html) {
var icon = new GIcon();
icon.image = "icona7.png";
//icon.shadow = "icona3_shd.png";
icon.iconSize = new GSize(24, 24);
icon.shadowSize = new GSize(28, 28);
icon.iconAnchor = new GPoint(12, 12);
icon.infoWindowAnchor = new GPoint(12, 12);
    
    var marker2 = new GMarker(point,icon);
    GEvent.addListener(marker2, "click", 
        function() {
            marker2.openInfoWindowHtml(html);
        }
    );
    return marker2;
} 

function infoWindow_click(elementoMenu) {
    //document.getElementById("nome_stazione").innerHTML=elementoMenu;
	//alert(elementoMenu);
	var x = document.getElementById("wmo_station").length;
	for (var i=0;i<x;i++) {
		if (document.getElementById("wmo_station").options[i].text == elementoMenu) {
			document.getElementById("wmo_station").selectedIndex=i;
			break;
		}
	}    
}


function ApriNodi(xml) {
    //alert("ApriNodi(xml)");
	//alert("xml: "+xml);
    var x=xml.childNodes;
	
	//alert("x.length:"+x.length);
    for (var i=0;i<x.length;i++) { 
        if (x[i].nodeType==1) {
			/*
			if (lev==1) {
				alert("ApriNodi lev=1");
			}
			*/
            if ( lev == 1 && x[i].nodeName == "Placemark" && marker_kml==false) {
                marker_kml=true;
                name_kml="";
                html_kml="";
                lon_kml="";
                lat_kml="";
                ele_kml="";
            } else if ( lev == 1 && x[i].nodeName == "Placemark" && marker_kml==true) {
                ht = ht + name_kml + " [ lat:" + lat_kml + ", lon:"+lon_kml+ "]";
                ht = ht + "<br />";
                ht = "";
                var latlng = new GLatLng(parseFloat(lat_kml),parseFloat(lon_kml));
                var html_DIV = "<div>" + html_kml + "</div>";
                mark_kml[i] = createMarker2(latlng,html_DIV);
                map.addOverlay(mark_kml[i]);                
                //alert("marker n: "+i);
                name_kml="";
                html_kml="";
                lon_kml="";
                lat_kml="";
                ele_kml="";
            } else if ( lev == 2 && x[i].nodeName == "name" && marker_kml==true) {
                name_kml=x[i].childNodes[0].data;
            } else if ( lev == 2 && x[i].nodeName == "description" && marker_kml==true) {
                html_kml=x[i].childNodes[0].data;
            } else if ( lev == 3 && x[i].nodeName == "coordinates" && marker_kml==true) {
                var Coord = new Array();
                Coord=x[i].childNodes[0].data.split(",");
                lon_kml=String(Coord[0].toString());
                lat_kml=String(Coord[1].toString());
                ele_kml=String(Coord[2].toString());
            }
        }
        if (x[i].hasChildNodes) {
            lev++;
            ApriNodi(x[i]);
            lev--;
        } else {

        }   
    }
}

function sfragnaIlKml() {
    //alert("sfragnaIlKml");
    marker_kml=false;
    ht="<br />";
    lev=0;
    
	var probe=xmlDoc.getElementsByTagName('Placemark');
	//alert("probe: "+probe.length);
	
    xx=xmlDoc.documentElement;
    //------------------
	//alert("brow: "+brow);
	//alert("xx: "+xx.length);
	//alert("sfragnaIlKml");
	//alert("xx: "+xx.textContent);
	//------------------------
    ApriNodi(xx);
    
    //document.getElementById("KML_Cont").innerHTML=ht;
}
