//<![CDATA[
/****************************************************************/
/*** Author : odel (based on gmap doc template) *****************/
/*** Created :	16.05.2006 ***************************************/
/*** Last modification : 28.05.2006 *****************************/
/****************************************************************/

function load(oLat, oLng, oZoom) {
	if (GBrowserIsCompatible()) {
		/*** Gmap Init ******/
		var map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(oLat, oLng), oZoom);
		map.addControl(new GScaleControl());
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		//map.addControl(new GOverviewMapControl()); 
			
		//Add 1 marker (Gland)
		//var point = new GLatLng(46.4226,6.2705);
		//map.addOverlay(createMarker(point, 1));
		
		getData(map);
		/*** Get Lat+Lng ******/			
		getLatLng(map);
	}
}

function getData(map) {
	GDownloadUrl("data.xml", function(data, responseCode) {
		var xml = GXml.parse(data);
		var myRowLength = xml.documentElement.getElementsByTagName("line").length;
		for (var i = 0; i < myRowLength; i++) {
			var myLine = xml.documentElement.getElementsByTagName("line")[i];
		
			var myId = myLine.getElementsByTagName("id")[0].firstChild.nodeValue;
			var myType = myLine.getElementsByTagName("type")[0].firstChild.nodeValue;
			var myName = myLine.getElementsByTagName("name")[0].firstChild.nodeValue;
			var myAdress = myLine.getElementsByTagName("adress")[0].firstChild.nodeValue;
			var myCity = myLine.getElementsByTagName("city")[0].firstChild.nodeValue;
			var myPlus = myLine.getElementsByTagName("plus")[0].firstChild.nodeValue;
			var myLat = myLine.getElementsByTagName("lat")[0].firstChild.nodeValue;
			var myLng = myLine.getElementsByTagName("lng")[0].firstChild.nodeValue;
			var myIcon = myLine.getElementsByTagName("icon")[0].firstChild.nodeValue;
			
			var point = new GLatLng(parseFloat(myLat), parseFloat(myLng));
			
			/*** Popup html String ******/                    
			var htmlStr = "<div style=\"font-family: Trebuchet MS, verdana, sans-serif; font-size: 12px;\">";
			htmlStr += "<b> >> "+myType+"</b><br />";
			//htmlStr += "<hr />";
			htmlStr += myName+"<br />";
			htmlStr += myAdress+"<br />";
			htmlStr += myCity+"<br />";
			htmlStr += "<i>"+myPlus+"</i><br />";
			htmlStr += "</div>";
	
			/*** Icon Selection ******/
			switch (myIcon) {
				case "local":
					iconN = "markerP.png";
				break;
				case "concert":
					iconN = "markerD_br.png";
				break;
				default:
					iconN = "marker.png";
				break;
			}
			
			if (myLat != 0 & myLng != 0) {
				/*** Add the Marker ******/
				map.addOverlay(createMarker(point, htmlStr, iconN));
			}
		}
	});
}

/*** Creates a marker at the given point ******/
function createMarker(point, htmlString, iconN) {
	/*** Create a lettered icon for this point using our icon class ******/
	var baseIcon = new GIcon();
	baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);
	
	var icon = new GIcon(baseIcon);
	//icon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
	icon.image = "./ims/"+ iconN;
	var marker = new GMarker(point, icon);
	GEvent.addListener(marker, "click", function() { //mouseover, click, etc ... as javascript
		marker.openInfoWindowHtml(htmlString);
	});
	return marker;
}

/*** Get Lat+Lng ******/
function getLatLng(map) {
	GEvent.addListener(map, 'click', function(overlay, point) {
		if (point) {
			var messCoord = "Your click at [Lat, Lng] : "+point;
			document.getElementById('where').innerHTML = messCoord;
			//alert('You clicked at [Lat, Lng] : ' + point);
		}
	});
}
//]]>
