﻿var map=null;
var images = new Array();
var markers = new Array();

function myTime(){
	return new Date().getTime();
}

function clearMap(){
 	map.clearOverlays();
 	myZoom();
}

function showMsg(msg){
 	document.getElementById("msg").innerHTML=msg;
}

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(62.889605, 27.631302),2);	
}
	
function preFetch(){
	GDownloadUrl("/upload/mapfiles/images.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("/upload/mapfiles/datax.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 getItem(atype){
	map.clearOverlays();
	var marker;
	for (var i = 0; i < markers.length; i++) {
		var type=parseInt(markers[i].getAttribute("type"));
		if(atype==0 || atype==type){
			var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
				parseFloat(markers[i].getAttribute("lng")));
			var id=markers[i].getAttribute("id");
			var htm=markers[i].firstChild.nodeValue;
			map.addOverlay((marker=createMarker(point,htm,type)));
		}
	}	
	myZoom();	
}
	
function createMarker(point,htm,type) {
	var icon;
	if(type==1){
		icon = new GIcon();
		icon.image = "icons/iconm.png";
	    icon.shadow = "icons/iconmshadow.png";
	    icon.iconSize = new GSize(40, 40);
	    icon.shadowSize = new GSize(60, 39);
	    icon.iconAnchor = new GPoint(19, 34);
	   	icon.infoWindowAnchor = new GPoint(19, 2);
	    icon.infoShadowAnchor = new GPoint(38, 25);
	}else{
		icon = new GIcon(G_DEFAULT_ICON);
		icon.image = "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 karttatoimintoa.</b></center>');
   	}
}