/*

googleFunctions.js
last Update: 04.01.2007

Icon f�r Marker Erstellen
Marker f�r Google Map erzeugen

Author: Cathleen Knohf
Mail: cathleen.knohf@solongo.de

*/
function createIcon(ic) {
	var icon = new GIcon();
	icon.image = ic;
	//icon.image = "/templates/images/icon.png";
	icon.iconSize = new GSize(25, 25); //breite, h�he
	icon.iconAnchor = new GPoint(12, 12);
	icon.infoWindowAnchor = new GPoint(12, 0);
	return icon;
}

function createMarker(addr, icon, tab)
{
	var address = addr;
	var point = geocoder.getLatLng(address, function(point) {

		if (!point) {
			alert(address + " not found");
		} else {
			var ic = icon;
			var marker = new GMarker(point, createIcon(ic));
			map.addOverlay(marker);
			GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowHtml(tab);
			});
		}
	});
}

function setCenter(mid, titel)
{
	var ic = "/templates/images/icons_map/default.png";
	var point = geocoder.getLatLng(mid, function(point) {
		if (!point) {
			alert("Der angegebende Punkt konnte nicht gefunden werden.");
		} else {
			map.clearOverlays();
			map.setCenter(point, 16);
			var marker = new GMarker(point, createIcon(ic));
			//var marker = new GMarker(point);
			map.addOverlay(marker);
			/*GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowHtml(titel);
			});*/
		}
	});

}

function show()
{
	if (document.route.saddr.value != "")
	{	var s = document.route.saddr.value;}
	else if (document.route.start.value == "empty")
	{	alert("Bitte w�hlen Sie einen Startpunkt aus!");
		return;}
	else
	{ 	var s = document.route.start.value;}
	
	if (document.route.target.value == "empty")
	{	alert("Bitte w�hlen Sie einen Zielpunkt aus!");
		return;}
	else
	{ 	var z = document.route.target.value;}

	var url = "http://maps.google.de/?saddr=" + s + "&daddr=" + z;
	mapRoute = window.open(url);
	mapRoute.focus; 
}

function showGoogleMap(address)
{
	var url = "http://maps.google.de/?q=" + address;
	map = window.open(url);
	map.focus; 
}

var point1;
var point2;
var marker1;
var marker2;

// === function that calculates the distance when BOTH complete ===
function dist() {
	var polyline = new GPolyline([point1, point2], "#d10f0e", 4);
	map.addOverlay(polyline);
	var dist = point1.distanceFrom(point2)/1000;
	marker1.openInfoWindowHtml("Die Entfernung betr�gt: " + Math.round(dist) + "km");
	
	// === reset the points ===
	point1 = null;
	point2 = null
}

function calculateDistance()
{
	if (document.route.saddr.value != "")
	{	var addr1 = document.route.saddr.value;}
	else if (document.route.start.value == "empty")
	{	alert("Bitte w�hlen Sie einen Startpunkt aus!");
		return;}
	else
	{ 	var addr1 = document.route.start.value;}
	
	if (document.route.target.value == "empty")
	{	alert("Bitte w�hlen Sie einen Zielpunkt aus!");
		return;}
	else
	{ 	var addr2 = document.route.target.value;}
	
	if (geocoder)
	{
		map.clearOverlays();
		geocoder.getLatLng(addr1, function(point){
			if (!point)
			{
				alert(address + " not found");
			} else {
				var icon = "/templates/images/icons_map/default.png";
				map.setCenter(point, 12);
				marker1 = new GMarker(point, createIcon(icon));
				map.addOverlay(marker1);
				point1 = point;
				if (point2) {dist();}
			}
		});
		geocoder.getLatLng(addr2, function(point){
			if (!point)
			{
				alert(address2 + " not found");
			} else {
				var icon = "//templates/images/icons_map/default.png";
				map.setCenter(point, 12);
				marker2 = new GMarker(point, createIcon(icon));
				map.addOverlay(marker2);
				point2 = point;
				if (point1) {dist();}
			}
		});
	}
} 
