function createMarker(point,name,html,myIcon) {

	var marker = new GMarker(point,{icon:myIcon,title:name});
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);			
	});

	gmarkers[i] = marker;
	htmls[i] = html;
	
	side_bar_html += '&nbsp;<a href="javascript:myclick(' + i + ')"><font face="verdana" size="2" >' + name + '</font></a><br>';
	i++;
	return marker;
}

function getDirections() {
	var saddr = document.getElementById("saddr").value
	var daddr = document.getElementById("daddr").value
	gdir.load("from: "+saddr+" to: "+daddr);
}

function myclick(i) {
	gmarkers[i].openInfoWindowHtml(htmls[i]);
}

function tohere(i) {
	gmarkers[i].openInfoWindowHtml(to_htmls[i]);
}

function fromhere(i) {
	gmarkers[i].openInfoWindowHtml(from_htmls[i]);
}

function zoomIn() {
	map.zoomIn();
	contextmenu.style.visibility="hidden";
}      

function zoomOut() {
	map.zoomOut();
	contextmenu.style.visibility="hidden";
}      

function zoomInHere() {
	var point = map.fromContainerPixelToLatLng(clickedPixel)
	map.zoomIn(point,true);
	contextmenu.style.visibility="hidden";
}      

function zoomOutHere() {
	var point = map.fromContainerPixelToLatLng(clickedPixel)
	map.setCenter(point,map.getZoom()-1); // There is no map.zoomOut() equivalent
	contextmenu.style.visibility="hidden";
}      

function centreMapHere() {
	var point = map.fromContainerPixelToLatLng(clickedPixel)
	map.setCenter(point);
	contextmenu.style.visibility="hidden";
}

function getCoordinate() {
	var point = map.fromContainerPixelToLatLng(clickedPixel)
	
	contextmenu.style.visibility="hidden";
	var x = point.lat();
	var y = point.lng();
	document.getElementById('click_lat').value = point.lat(); 
	document.getElementById('click_long').value = point.lng();
	var nwin = window.open("detail.php?lat="+x+"&lng="+y, "abookpopup", "width=250,height=200,resizeable=yes,scrollbars=yes");

	if ((!nwin.opener) && (document.windows != null))
		nwin.opener = document.windows;			
}

function calcDist(lon1,lat1,lon2,lat2) {
	var r = 3963.0;
	var multiplier = 1;
	return multiplier * r * Math.acos(Math.sin(lat1/57.2958) * Math.sin(lat2/57.2958) +     Math.cos(lat1/57.2958) * Math.cos(lat2/57.2958) * Math.cos(lon2/57.2958 - lon1/57.2958));
}

function drawRoute() {
	var points = [];
	for (i = 0; i < x_array.length; i++) {
		if (i>0) {
			segment_distance_array[i] = calcDist(x_array[i-1], y_array[i-1], x_array[i], y_array[1]);
			total_distance_array[i] = total_distance_array[i-1] + segment_distance_array[i];
			document.getElementById('segment_distance').value = segment_distance_array[i]; 
			document.getElementById('total_distance').value = total_distance_array[i]; 
		}
		else {
			document.getElementById('segment_distance').value = 0;
			document.getElementById('total_distance').value = 0;
			total_distance_array[0] = 0;
			segment_distance_array[0] = 0;
		}
		var point = new GPoint(x_array[i], y_array[i]);
		points.push(point);
		var marker = new GMarker(point);
		var html = "location <b>" + y_array[i] + ', ' + x_array[i] + "</b>";
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(html);
		});
		map.addOverlay(marker);
	}
	map.addOverlay(new GPolyline(points));
}
