var mapviewer;
var pan_zoom_widget = null;
var map_type_widget = null;

function onLoad() {
	// Add the map
	mapviewer = new MMFactory.createViewer(document.getElementById('mapviewer'));
	mapviewer.goToPosition(new MMLatLon(54.41460602, 2.01611485), 6);

	// zoom widget
	pan_zoom_widget = new MMPanZoomWidget();
	mapviewer.addWidget(pan_zoom_widget);

	// map widget
	map_type_widget = new MMMapTypeWidget();
	mapviewer.addWidget(map_type_widget);
}
MMAttachEvent(window, 'load', onLoad);

function resetMap() {
//	document.location.href = document.location.href;
	mapviewer.removeAllOverlays();
	mapviewer.goToPosition(new MMLatLon(54.41460602, 2.01611485), 6);
	$('#walks').html('');
    $('#walk-details').html('');
    $('#walks-no-results').hide();
    
}

// risanje celotnega walka
function drawRoute(way_points, marker_points) {
	drawFirstPoints(null);
	
	// WAY POINTS
	var decoded = $.evalJSON(way_points);
	var points = [];
	for ( var i = 0; i < decoded.length; ++i) {
		if (decoded[i].lat == 0 || decoded[i].lon == 0) continue;
		points.push(new MMLatLon(decoded[i].lat, decoded[i].lon));
	}
	mapviewer.addOverlay(new MMPolyLineOverlay(points, '#ff0000', 0.7, 1, false, false));
	
	// MARKER POINTS
	var decoded = $.evalJSON(marker_points);
	for ( var i = 0; i < decoded.length; ++i) {
		if (decoded[i].lat == 0 || decoded[i].lon == 0) continue;
		var marker = mapviewer.createMarker(new MMLatLon(decoded[i].lat, decoded[i].lon), {
			'zIndex' : 10 + decoded.length - i,
			'label' : decoded[i].name,
			'text' : (i + 1)
		});
		var html = '<h4 style="padding: 0 10px; font-weight: bold;">'
				+ decoded[i].name
				+ '</h4><p style="font-size: 11px; width: 300px; font-family: Arial; text-align: justify; padding: 5px 10px;">'
				+ decoded[i].description + '<' + '/p>';
		marker.setInfoBoxContent(html);
	}
	
	// centriram na lokacijo prikazanega walka
	mapviewer.goToPosition(mapviewer.getAutoScaleLocation(points));
}

// risanje prvih točk najdenih walkov -> to se kliče ob kliku na FIND in ob kliku na walk, da spet nariše vse pointe
var first_points = [];
var cached_points_data = null;
function drawFirstPoints(data) {
	
	if (data != null)
		cached_points_data = data;
	else 
		data = cached_points_data;
	
	// zbrišem vse prejšne narisane zadeve
	mapviewer.removeAllOverlays();
	
	// izpraznim array
	first_points = [];
	
	// narišem nove točke
	var decoded = $.evalJSON(data);
	for ( var i = 0; i < decoded.length; ++i) {

		if (decoded[i].lat == 0 || decoded[i].lon == 0)
			continue;

		var point = new MMLatLon(decoded[i].lat, decoded[i].lon);
		var marker = mapviewer.createMarker(point, {
			'zIndex' : 1,
			"text" : "1"
		});
		marker.id = decoded[i].id;
		first_points.push(marker);
	}
	
	// centriram zemljevid glede na prve točke
	mapviewer.goToPosition(mapviewer.getAutoScaleLocation(first_points));
	
	mapviewer.removeEventHandler( 'click', logEvent );
	mapviewer.addEventHandler( 'click', logEvent );
}

// Klik na prvi point walka, ki ga naloži v celoti
function logEvent( eventType, eventTarget, arg1, arg2, arg3 ) {
	for ( var i = 0; i < first_points.length; i++ ) {
		if (eventTarget == first_points[i]) {
			getWalk(document.location.href + "/route/walk?id=" + eventTarget.id);
		}
	}
  return true;
}
