﻿var map=null;
var images = new Array();
var markers = new Array();

function myTime(){
	return new Date().getTime();
}

function doMap(){
	map=new GMap2(document.getElementById("map"));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GScaleControl()) ;
	map.addControl(new GOverviewMapControl());
	myZoom();
	getXml();
}

function myZoom(){
	map.setCenter(new GLatLng(64.40309408979786, 27.838153839111328),6);	
}
	
function preFetch(){
	GDownloadUrl("/maps/map_files/map_img.xml?"+myTime(), function(data, responseCode) {
		var xmlDoc = GXml.parse(data);
		var imgs = xmlDoc.documentElement.getElementsByTagName("img");
		for (var i = 0; i < imgs.length; i++) {
	    	var imgstr=imgs[i].firstChild.nodeValue;
	      	images[i]=new Image();
	      	images[i].src=imgstr;
		}
	});
}

function getXml(){
	GDownloadUrl("/maps/map_files/map_data.xml?"+myTime(), function(data, responseCode) {
		var xml = GXml.parse(data);
		markers = xml.documentElement.getElementsByTagName("marker");
		for (var i = 0; i < markers.length; i++) {
			var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
				parseFloat(markers[i].getAttribute("lng")));
			var id=markers[i].getAttribute("id");
			var type=parseInt(markers[i].getAttribute("type"));
			var htm=markers[i].firstChild.nodeValue;
			if(type==1){
				map.addOverlay(createMarker(point,htm,type));
			}
		}
	});
}

function createMarker(point,htm,type) {
	
	var icon;
	icon = new GIcon(G_DEFAULT_ICON);
	icon.image = "map_icons/icon" + type + ".png";
	var marker=new GMarker(point,icon);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml("<p>" + htm + "</p>");
	});
	return marker;
}
	
function load() {
	if (GBrowserIsCompatible()) { 		
   			doMap();
      	preFetch();	
   	}else{
      	document.write('<center><br /><br /><b>Selaimesi ei tue Google Map -karttatoimintoa.</b></center>');
   	}
}
