
/* Adressen
 * (für die erste wird automatisch das Info-Fenster geöffnet)
----------------------------------------------------------------------------------- */
/*var addresses = [
{name: 'Martha und Lotte',
street: 'S6 20',
city: 'Mannheim',
zip: '68161',
type: 'Adresse',
lat: 49.487703419032506, lng: 8.475799262523651},
{name: 'Parkhaus Q7',
street: 'Q7',
city: 'Mannheim',
zip: '68161',
type: 'Parkhaus',
lat: 49.486048, lng: 8.473053},
{name: 'Parkhaus Q6',
street: 'Q6',
city: 'Mannheim',
zip: '68161',
type: 'Parkhaus',
lat: 49.48710, lng: 8.47135},
{name: 'Parkhaus R5',
street: 'R5',
city: 'Mannheim',
zip: '68161',
type: 'Parkhaus',
lat: 49.487796, lng: 8.471832},
{name: 'Parkhaus C1',
street: 'C1',
city: 'Mannheim',
zip: '68161',
type: 'Parkhaus',
lat: 49.486563, lng: 8.464026},
{name: 'Parkhaus N1',
street: 'N1',
city: 'Mannheim',
zip: '68161',
type: 'Parkhaus',
lat: 49.485997, lng: 8.465086}];
*/





/* Marker
 * default Marker setzen
----------------------------------------------------------------------------------- */

// Maße für kleine Marker: iconSize 12, 20 / shadowSize 22, 20 / iconAnchor 6, 20 / infoWindowAnchor 5, 1 / infoShadowAnchor 18, 25 / 
// Maße für große Marker: iconSize 20, 34 / shadowSize 37, 34 / iconAnchor 9, 34 / infoWindowAnchor 9, 2 / infoShadowAnchor 18, 25 / 

var markericon = new GIcon();
markericon.image = "/addresslists/images/marker.png";
markericon.shadow = "/addresslists/images/shadow50.png";
markericon.iconSize = new GSize(20, 34);
markericon.shadowSize = new GSize(37, 34);
markericon.iconAnchor = new GPoint(9, 34);
markericon.infoWindowAnchor = new GPoint(9, 2);


/**
 * Creates a marker for the given address.
 * @param {Number} ind
 * @return {GMarker}
----------------------------------------------------------------------------------- */

// Variablen: "Markers" wird benötigt für das anfangs automatisch zu öffnende Info-Fenster
var markers = [];
var counter = 0;
var bounds = null;
var map = null;
var marker = null;
var infoicon = null;

// get Icon fpr HTML-Window
function getInfoicon(url) {
	// var url = url zum Icon
	var inconhtml = "<img src=\""+url+"\" width=\"30\" height=\"40\" border=\"0\" alt=\"Martha und Lotte\" title=\"\" align=\"left\" style=\"margin-right:10px;\"/>";
	return inconhtml;
}


function createMarker(ind) {
  var address = addresses[ind];
  
  // get Icon for Marker
  markericon.image = address.marker;
  
  //infoicon = "<img src=\""+address.icon+"\" width=\"30\" height=\"40\" border=\"0\" alt=\"Martha und Lotte\" title=\"\" align=\"left\" style=\"margin-right:10px;\"/>";
  
  var marker = new GMarker(new GLatLng(address.lat, address.lng),markericon);
  
  GEvent.addListener(marker, 'click', function() {
	marker.html = [getInfoicon(address.icon),'<b>', address.name, '</b><br>', address.street, '<br> ' , address.zip,' ',address.city, '<br><br>',
				 'Anfahrt: ', '<a target="_blank" href="http://maps.google.com/maps?saddr=&daddr=',formatAddressForMaps(address), '">Hierher</a> - ', 
                 '<a target="_blank" href="http://maps.google.com/maps?saddr=',formatAddressForMaps(address), '&daddr=', '"> Von hier</a><br> '].join('');
    currentMarker = marker;
    marker.openInfoWindowHtml(marker.html);
  });
  markers[counter] = marker;
  counter++;

  return marker;
}


/**
 * Called after script is asynchronously loaded in.
 * Creates the GMap2, GMarker objects and performs actions according to 
 * what the user did to trigger the map load (search, zoom, click etc).
----------------------------------------------------------------------------------- */
function draw_map() {
  if (GBrowserIsCompatible()) {
	map = new GMap2(document.getElementById("myGoogleMap"));
	bounds = new GLatLngBounds();
    
    for (var i = 0; i < addresses.length; i++) {
      var marker = createMarker(i);
      var latlng = marker.getLatLng();
	  bounds.extend(marker.getLatLng());
      var pixel = map.fromLatLngToDivPixel(latlng);
      map.addOverlay(marker);
    }
	
	/* Startmarker: Info-Fenster öffnen
	 * (verwendet die erste Adrese aus dem Adress-Array)
	----------------------------------------------------------------------------------- */
	var address = addresses[0];
	var lat = address.lat;
	var lng = address.lng;	
	
	// get Icon fpr HTML-Window
	infoicon = "<img src=\""+address.icon+"\" width=\"30\" height=\"40\" border=\"0\" alt=\"Martha und Lotte\" title=\"\" align=\"left\" style=\"margin-right:10px;\"/>";
	
	var mystartmarkerhtml = [getInfoicon(address.icon), '<b>', address.name, '</b><br>', 
                 address.street, '<br> ' , address.zip,' ',address.city, '<br><br>',
				 'Anfahrt: ', 
                 '<a target="_blank" ',
                 'href="http://maps.google.com/maps?saddr=&daddr=',
                 formatAddressForMaps(address), '">Hierher</a> - ', 
                 '<a target="_blank" ',
                 'href="http://maps.google.com/maps?saddr=',
                 formatAddressForMaps(address), '&daddr=', '"> Von hier<br> '].join('');
	
	
	// automatischer Zoom, erstes Element in Array in Center, info-Fenster Öffnen
	var zoomlevel = map.getBoundsZoomLevel(bounds) - 1;
	var boundscenter = bounds.getCenter();
	map.setCenter(boundscenter, zoomlevel);
	
	
	// Info-Fenster nur öffnen, wenn "Eigene Adresse" vorhanden ist
	// sonst funktioniert "var boundscenter = bounds.getCenter()" nicht
	if (addresses[0].type == "Eigene Adresse") { 
	markers[0].openInfoWindowHtml(mystartmarkerhtml);
	}
	
	// geht: ohne bounds - fixer zoom und erstes element als center
	//map.setCenter(new GLatLng(lat,lng), 15);
	//markers[0].openInfoWindowHtml(mystartmarkerhtml);
	
	
	/* Map Controls hinzufügen setzen
	----------------------------------------------------------------------------------- */
	
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.setMapType(G_NORMAL_MAP);

	
  }
}


/* Formats address info into a URL-friendly version for maps url.
 ----------------------------------------------------------------------------------- */
function formatAddressForMaps(addresses) {
  //var address = addresses.street + ', ' + addresses.zip + ' ' + addresses.city + '(' + addresses.name + ')';
  //var address = addresses.lat + ',' + addresses.lng + '(' + addresses.name + ')';
  var address = addresses.lat + ',' + addresses.lng + '(' + addresses.name + ', ' + addresses.street + ', ' + addresses.zip + ' ' + addresses.city + ')';
  return escape(address.replace(' ', '+'));
}




















/*
function draw_map() {
    if (GBrowserIsCompatible()) {
       var map = new GMap2(document.getElementById("myGoogleMap"));
       map.setCenter(new GLatLng(37.4419, -122.1419), 13);
       map.openInfoWindow(map.getCenter(),
       document.createTextNode("Hello, world"));
    }
}
*/

//window.onload=draw_map();

//if (GBrowserIsCompatible()) {
//document.write('<div id="map" style="width: 383px; height: 500px; margin: 0 auto 0 auto;"></div>');
//setTimeout('draw_map()', 500);
////marker.openInfoWindowHtml(html);
////showInfoWindow (0, html);
//setTimeout('showInfoWindow (0, marker_html[0])', 500);
//}
//else {
//document.write('Für die Anzeige von Google Maps muss JavaScript aktiviert sein.');
//}

