// get the icon corresponding to temperature
function getIcon(temp,wind,ic) {
	// create our "tiny" marker icon
	var icon = new GIcon();
	var prefix = "http://www.romagnanotte.com/web/images/weather/";
	icon.image = prefix + ic + ".png";
	//icon.image = prefix + "s.png";
	icon.shadow = "";
	icon.iconSize = new GSize(32, 32);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);	
	return icon;	
}
		


function decodeCode(code) {
    switch (code) {
        case "LIPC":
            return  "Cervia";
            break;
        case "LIPK":
            return "Forli";
            break;
        case "LIPR":
            return "Rimini";
            break;
        case "LIPE":
            return "Bologna";
            break;
        case "LIPF":
            return "Ferrara";
            break;
        case "LIVM":
            return "Ravenna";
            break;
    }
	return "n.d.";
}


	
// Creates a marker whose info window displays the given number
function createMarker(point, code, temp, wind, icon, sky) {
	var marker = new GMarker(point,getIcon(temp,wind,icon));
	//alert( "Temperature: " + temp + " Sky: " + sky);
	GEvent.addListener(marker, "click", function() {
		GDownloadUrl("/xmldata/" + code +".xml", function(data, responseCode) {
			var xml = GXml.parse(data);
			var cont;
			cont = xml.documentElement.getElementsByTagName("content:encoded");
			var contenuto = cont[0].firstChild.nodeValue;
			var xml2 = GXml.parse("<data>"+contenuto+"</data>");
			var dati = xml2.documentElement.getElementsByTagName("dd");
			t = "n.d.";
			if (temp != "") t = temp;
			h = "n.d.";
			w = "n.d.";
			wd = "n.d.";
			p = "n.d.";
			hi = "n.d.";
			v = "n.d.";
			//alert(dati.length);
			for (var i = 0; i < dati.length; i++) {
				if (dati[i].getAttribute("id") == "humidity") {
					h = dati[i].firstChild.nodeValue;
				} else if (dati[i].getAttribute("id") == "windspeed") {
					w = dati[i].firstChild.nodeValue;
				} else if (dati[i].getAttribute("id") == "winddir") {
					wd = dati[i].firstChild.nodeValue;
				} else if (dati[i].getAttribute("id") == "pressure") {
					p = dati[i].firstChild.nodeValue;
				} else if (dati[i].getAttribute("id") == "heatindex") {
					hi = dati[i].firstChild.nodeValue;
				} else if (dati[i].getAttribute("id") == "visibility") {
					v = dati[i].firstChild.nodeValue;
				}
    		}
			/*dati = xml2.documentElement.getElementsByTagName("span");
			for (var i = 0; i < dati.length; i++) {
                if (dati[i].getAttribute("class") == "sky") {
                    skys = dati[i].firstChild.nodeValue;
					sky = decodeSky(skys);
                } else if  (dati[i].getAttribute("class") == "temp") {
                    t = dati[i].firstChild.nodeValue;
                }
            }*/
			var html = "";
            html = html + "<div align=\"center\"><table width=\"170\" border=\"0\" cellpadding=\"0\" cellspacing=\"1\">";
            html = html + "<tr><th colspan=\"2\"><div align=\"center\">";
            var url = "http://www.weather.com/weather/local/" + code;
			html = html + " " + decodeCode(code) + "</div></th></tr>";
            var url = "http://www.romagnanotte.com/web/images/weather/" + icon + ".png";
            html = html + "<tr><td colspan=\"2\"><div align=\"center\"><img src=\"" + url + "\" width=\"32\" height=\"32\"></div></td></tr>";
			html = html + "<tr><td colspan=\"2\"><div align=\"center\">" + sky + "</div></td></tr>";

/*
html = html + "<tr class=\"attributiontext\"><td colspan=\"2\"><div align=\"center\"><a href=\"http://www.weather.com\">weather.com</a></div></td></tr>"; 	
*/

			html = html + "<tr class=\"attributiontext\"><td width=\"76\">Temperatura</td><td width=\"72\" >" + t + "&#176;C</td></tr>";
            html = html + "<tr class=\"attributiontext\"><td width=\"76\">Umidit&agrave;</td><td width=\"72\" >" + h + "</td></tr>";
			wd=wd.replace(/\(.*\)/ig,"");
			if (wd.indexOf("VRB") != -1)  wd = "variabile";
			else wd = "da "+wd;
            html = html + "<tr class=\"attributiontext\"><td width=\"76\">Vento</td><td  width=\"72\">" + w + " " + wd + "</td></tr>"; 

            html = html + "<tr class=\"attributiontext\"><td width=\"76\">Temp. avvertita</td><td width=\"72\" >" + hi + "</td></tr>";
			html = html + "<tr class=\"attributiontext\"><td width=\"76\">Visibilit&agrave;</td><td  width=\"72\">" + v + "</td></tr>";
            html = html + "</table></div>";
                marker.openInfoWindowHtml(html);

	    });

	});

	GEvent.addListener(marker, "infowindowclose", function() {
		map.panTo(new GLatLng(44.38, 12.1000), 8);

	});
	return marker;
}	

var map;
					
function gMapLoad() {
	// draw the map on the screen
	map = new GMap2(document.getElementById("map"));
	//map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.setCenter(new GLatLng(44.38, 12.1000), 8);
	//map.setMapType(G_HYBRID_MAP);
	map.addMapType(G_PHYSICAL_MAP);
	map.setMapType(G_PHYSICAL_MAP);
	map.disableDragging();

	GDownloadUrl("/xmldata/weather.xml", function(data, responseCode) {
            var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("city");
            for (var i = 0; i < markers.length; i++) {
                var point = new GPoint(parseFloat(markers[i].getAttribute("lon")),
                        parseFloat(markers[i].getAttribute("lat")));
                var code = markers[i].getAttribute("id");
                var wind_dir = markers[i].getAttribute("wind");
                var temp = markers[i].getAttribute("temp");
                var icon = markers[i].getAttribute("icon");
                var sky = markers[i].getAttribute("sky");
                window.status = icon;
                var marker = createMarker(point, code, temp, wind_dir, icon, sky);
                map.addOverlay(marker);
            }

	});

}		
