/*******************************************************************************
 * Javascript fï¿½r Google-Map
 ******************************************************************************/
//<![CDATA[
function GmapLoad()
 {
 var zoom = 16;         // einen Wert von 1 bis ca 17 (nicht in "" setzen)
 var lat = new Array();
 var lon = new Array();
 var text = new Array();
 lat[0] = "44.9059954";  // Breitengrad (Latitude) z.B: 51.041
 lon[0] = "1.2421929";  // Lï¿½ngengrad (Longitude) z.B: 13.748
 text[0] = "<p>Sarlat la Caneda, Camping les Terrasses du Perigord</p><br><a href='http://camping-bungalow.terrasses-du-perigord.com/' target='_blank' title='Link zur Hompage'>Camping les Terrasses du Perigord</a>";
 lat[1] = "49.0343162";  // Breitengrad (Latitude) z.B: 51.041
 lon[1] = "8.8319475";  // Lï¿½ngengrad (Longitude) z.B: 13.748
 text[1] = "<p>Knittlingen-Freudenstein, Stromberg-Camping</p><br><a href='http://www.strombergcamping.de/' target='_blank' title='Link zur Hompage'>Stromberg-Camping</a>";
 lat[2] = "49.457424";  // Breitengrad (Latitude) z.B: 51.041
 lon[2] = "9.927239";  // Lï¿½ngengrad (Longitude) z.B: 13.748
 text[2] = "<p>Laudenbach, Camping Schwabenm&uuml;hle</p><br><a href='http://www.camping-schwabenmuehle.de/' target='_blank' title='Link zur Hompage'>Camping Schwabenm&uuml;hle</a>";
 lat[3] = "54.2824612";  // Breitengrad (Latitude) z.B: 51.041
 lon[3] = "12.3133584";  // Lï¿½ngengrad (Longitude) z.B: 13.748
 text[3] = "<p>Ostseebad Dierhagen Neuhaus, Camping in Neuhaus<br>Ostseebad Dierhagen</p><br><a href='http://www.camping-in-neuhaus.de/' target='_blank' title='Link zur Hompage'>Camping in Neuhaus</a>";
 lat[4] = "54.1066769";  // Breitengrad (Latitude) z.B: 51.041
 lon[4] = "13.5095134";  // Lï¿½ngengrad (Longitude) z.B: 13.748
 text[4] ="<p>Loissin, Ferien und Freizeitpark</p><br><a href='http://www.campingplatz-loissin.de/' target='_blank' title='Link zur Hompage'>Campingplatz Loissin</a>";
 lat[5] = "51.6522007";  // Breitengrad (Latitude) z.B: 51.041
 lon[5] = "12.4216739";  // Lï¿½ngengrad (Longitude) z.B: 13.748
 text[5] = "<p>Heide-Camp-Schlaitz, Waldcamping am Muldestausee<br>Schlaitz</p><br><a href='http://www.heide-camp-schlaitz.de/' target='_blank' title='Link zur Hompage'>Heide-Camp-Schlaitz</a>";
 lat[6] = "53.0083169";  // Breitengrad (Latitude) z.B: 51.041
 lon[6] = "12.8177252";  // Lï¿½ngengrad (Longitude) z.B: 13.748
 text[6] = "<p>Neuruppin, Campingplatz Stendenitz</p><br><a href='http://www.camping-rheinsberg-neuruppin.de/' target='_blank' title='Link zur Hompage'>Campingplatz Stendenitz</a>";
 lat[7] = "54.2434074";  // Breitengrad (Latitude) z.B: 51.041
 lon[7] = "12.2116816";  // Lï¿½ngengrad (Longitude) z.B: 13.748
 text[7] ="<p>Ostseecamp-Ferienpark Rostocker Heide<br>Graal-M&uuml;ritz</p><br><a href='http://www.ostseecamp-ferienpark.de/' target='_blank' title='Link zur Hompage'>Ostseecamp-Ferienpark Rostocker Heide</a>";
 lat[8] = "49.457424";  // Breitengrad (Latitude) z.B: 51.041
 lon[8] = "9.927239";  // Lï¿½ngengrad (Longitude) z.B: 13.748
 text[8] = "<p>Laudenbach, Camping Schwabenm&uuml;hle</p><br><a href='http://www.camping-schwabenmuehle.de/' target='_blank' title='Link zur Hompage'>Camping Schwabenm&uuml;hle</a>";
 lat[9] = "46.6575579";  // Breitengrad (Latitude) z.B: 51.041
 lon[9] = "4.9455478";  // Lï¿½ngengrad (Longitude) z.B: 13.748
 text[9] = "<p><b>l'Epervire, Camping Château de l'Epervière</p><br><a href='http://www.domaine-eperviere.com' target='_blank' title='Link zur Hompage'>Camping Château de l'Epervière</a>";
 lat[10] = "46.6575579";  // Breitengrad (Latitude) z.B: 51.041
 lon[10] = "4.9455478";  // Lï¿½ngengrad (Longitude) z.B: 13.748
 text[10] = "<p><b>l'Epervire, Château de l'Epervière</b><br>liegt im Herzen von Burgund zwischen Beaune und Macon. Ein Vier-Sterne-Platz, der dieser historischen und traditionsreichen Gegend entspricht.</p><br><a href='http://www.domaine-eperviere.com' target='_blank' title='Link zur Hompage'>Camping Château de l'Epervière</a>";

 var j = Math.round(10*Math.random());
// var j = 0;
 if (GBrowserIsCompatible())
  {
   var map = new GMap2(document.getElementById("map"));
   // erstellt die Google-Map im Bereich map der in .css definiert wird
   map.addControl(new GLargeMapControl());
// fuegt die Zoom Kontrolle in large ein, diese hat in der Mitte den Button fuer zurueck zum Ursprung
   map.addControl(new GMapTypeControl());
// fuegt die Typenkontrolle normal Satellite Hybrid ein 
   map.setMapType(G_HYBRID_MAP);
// Voreinstellung auf Hybrid, auch G_NORMAL_MAP oder G_SATELLITE_MAP oder G_PHYSICAL_MAP Gelaendeansicht moeglich 
   map.setCenter(new GLatLng(lat[j], lon[j]), zoom);
   // Google-Map plazieren im map - Fenster
   var point  = new GPoint(lon[j], lat[j]);  //ACHTUNG: (lon, lat) also vertauscht
   var marke  = new GMarker(point);
   var info   = "";
       info += "<div class='Info'>";
       info += "  <H1 class='Infoheadline'>Beschreibung</H1>";
       info += "  <p>";
       info +=   text[j];
       info += "  </p>";
       info += "</div>";
   GEvent.addListener(marke, "click", function() {marke.openInfoWindowHtml(info)});	
   map.addOverlay(marke);
// fuegt bei Klick die Infoblase ein
// Warnung anzeigen, wenn der Browser nicht kompatibel ist
   }// schliesst if
    else 
	 {
      alert("Bedaure, die Google Maps API sind mit diesem Browser nicht darstellbar");
   }
 } // schliesst Function 
// ENDE Erstaufruf 
// Programmteil Adresse suchen und Map positionieren
function showAddress() 
 {
 var map = new GMap2(document.getElementById("map"));
// ====== Erzeuge einen neuen Client Geocoder ======
 var geo = new GClientGeocoder(); 
 var lati = [];
 var lng = [];
 var Accu = [];
// ====== Array zum Dekodieren des Fehlerkodes ======
 var reasons=[];
     reasons[G_GEO_SUCCESS]            = "Erfolgreich";
     reasons[G_GEO_MISSING_ADDRESS]    = "Adresse fehlt: Keine Adresse eingegeben oder falsches Format";
     reasons[G_GEO_UNKNOWN_ADDRESS]    = "Unbekannte Adresse:  Fï¿½r diese Adresse konnte keine geografische Entsprechung gefunden werden.";
     reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Nicht verfï¿½gbare Adresse:  Fï¿½r diese Adresse darf der Geocode nicht ausgegeben werden.";
     reasons[G_GEO_BAD_KEY]            = "Bad Key: The API key is either invalid or does not match the domain for which it was given";
     reasons[G_GEO_TOO_MANY_QUERIES]   = "Zu viele Anfragen: Die Anzahl der zulï¿½ssigen tï¿½glichen Anfragen wurde ï¿½berschritten.";
     reasons[G_GEO_SERVER_ERROR]       = "Server error: The geocoding request could not be successfully processed.";
      
// ====== Geocoding ======

 var search = document.getElementById("search").value;
 // Eingabewert "search" wie in Eingabe-Formular definiert
 // ====== Suche die Adresse ======        
 geo.getLocations(search, function (result)
 { 
  if (result.Status.code == G_GEO_SUCCESS)
//wenn erfolgreich 
  {
   document.getElementById("message").innerHTML = "Gefunden " +result.Placemark.length +" Ergebnis(se)";
// Ausgabe wie viele Ergebnisse wurden gefunden ?
  for (var i=0; i<result.Placemark.length; i++)
// Schleife durch die Ergebnisse 
   {
    lati[i]=result.Placemark[i].Point.coordinates[1];
    lng[i]=result.Placemark[i].Point.coordinates[0];
    var p = result.Placemark[i].Point.coordinates;
    var marker = new GMarker(new GLatLng(p[1],p[0]));
// Lege ein Array an in dem die Positionen liegen
    document.getElementById("message").innerHTML += "<br>"+(i+1)+": "+ result.Placemark[i].address + marker.getPoint();
// Schreibe im "message"-Fenster Adresse und Koordinaten
	 Accu[i] = ""; // Array fuer Informationen zum gefundenen Punkt
   if(result.Placemark[i].AddressDetails)
    {
     Accu[i] = result.Placemark[i].address +": "+ marker.getPoint();
    }
   } //schlieï¿½t for Schleife
   map.addControl(new GLargeMapControl());
// fuegt die Zoom Kontrolle in large ein, diese hat in der Mitte den Button fuer zurueck zum Ursprung
   map.addControl(new GMapTypeControl());
// fuegt die Typenkontrolle normal Satellite Hybrid ein 
   map.setMapType(G_HYBRID_MAP);
// Voreinstellung auf Hybrid, auch G_NORMAL_MAP oder G_SATELLITE_MAP oder G_PHYSICAL_MAP Gelaendeansicht moeglich 
   map.setCenter(new GLatLng(lati[0], lng[0]), 16);        // Zentriert die Google-Map auf das erste gefundene Ergebnis
// jetzt noch den Marker mit anklickbarer Info einfuegen
   var point  = new GPoint(lng[0], lati[0]);  //ACHTUNG: (lon, lat) also vertauscht
   var marke  = new GMarker(point);
   var info   = "";
       info += "<div class='Info'>";
       info += "  <H1 class='Infoheadline'>Beschreibung</H1>";
       info += "  <p>";
       info +=   Accu[0];
       info += "  </p>";
       info += "</div>";
   GEvent.addListener(marke, "click", function() {marke.openInfoWindowHtml(info)});	
   map.addOverlay(marke);
  } //schlieï¿½t if (result.Status.code
// ====== Dekodiere den Fehler-Status ======
  else 
   {
    var reason="Code "+result.Status.code;
    if (reasons[result.Status.code]) 
     {
      reason = reasons[result.Status.code]
     } //schlieï¿½t if
     alert('Could not find "'+search+ '" ' + reason);
   } // schliesst else
  } // gehï¿½rt zu geo.getLocations
  ); // gehï¿½rt zu geo.getLocations 
 } //schlieï¿½t function
//]]>
