  var restaurantStatus = false;
  var ferienwohnungStatus = false;
  var bauernhofStatus = false;
  
  var ort = false;
  var angebot = false;
  var umkreis = false;
 
  var angebotsGruppen =
  {
    "hotel": [],
    "fewo": [],
    "juhe": [],
    "camping": [],

    "fest": [],
    "handwerk": [],
    "sport": [],
    "tour": [],

    "baecker": [],
    "metzger": [] 
  };
  
  var ortAktuell = false;
  var circleOverlay = false;
  var ortOverlay = false;  

  /**
   ** Funktionen für Angebotsuche nach Umkreis
   **/
  function lookupUmkreis (address) {
    if (circleOverlay) { map.removeOverlay(circleOverlay); circleOverlay = false; }
    if (ortOverlay) { map.removeOverlay(ortOverlay); ortOverlay = false; }

    clearMarker("camping");
    clearMarker("fewo");
    clearMarker("juhe");
    clearMarker("hotel");

    clearMarker("fest");
    clearMarker("sport");
    clearMarker("handwerk");
    clearMarker("tour");

    clearMarker("baecker");
    clearMarker("metzger");

	geocoder = new GClientGeocoder();
	geocoder.getLocations(address, anzeigenUmkreis);
  }

  function anzeigenUmkreis (response) {
	if (!response || response.Status.code != 200)
	{
      //alert("Leider kein Treffer.");
	}
	else
	{
		place = response.Placemark[0];
		var point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
        if (point)
        {
          icon.image = "http://chart.apis.google.com/chart?chst=d_map_pin_icon&chld=star|ff8888";
          options = { icon:icon };
          var marker = new GMarker(point, options);
          map.addOverlay(marker);
          marker.hide();
          GEvent.addListener(marker, "click", function()
          {
            marker.openInfoWindowHtml(place.address)
          });
		  ortOverlay = marker;
        }
		map.setCenter(point);
        drawCircle(umkreis/1000);
        var count = 0;
          for (var i=0; i < angebotsGruppen[angebot].length; i++)
          {
            var marker = angebotsGruppen[angebot][i];
            if (point.distanceFrom(marker.getLatLng()) <= umkreis)
            {
              marker.show();
              count++;
            }
            else
            {
              marker.hide();
            }
          }
      if (count == 0) {
        alert("Leider ergab Ihre Suche keine Treffer - bitte vergrößern Sie den Umkreis");
      }
	}
  }

  
  function sucheUmkreis ()
  {
    ort = document.getElementById("ort2").value;
    angebot = document.getElementById("angebot2").value;
    umkreis = document.getElementById("umkreis").value;
    lookupUmkreis (ort);
  }

  function drawCircle(circleRadius) {
	var center = map.getCenter();
	var bounds = new GLatLngBounds();
	var circlePoints = Array();
	with (Math) {
		var d = circleRadius/6378.8;	// radians
		var lat1 = (PI/180)* center.lat(); // radians
		var lng1 = (PI/180)* center.lng(); // radians
		for (var a = 0 ; a < 361 ; a++ ) {
			var tc = (PI/180)*a;
			var y = asin(sin(lat1)*cos(d)+cos(lat1)*sin(d)*cos(tc));
			var dlng = atan2(sin(tc)*sin(d)*cos(lat1),cos(d)-sin(lat1)*sin(y));
			var x = ((lng1-dlng+PI) % (2*PI)) - PI ; // MOD function
			var point = new GLatLng(parseFloat(y*(180/PI)),parseFloat(x*(180/PI)));
			circlePoints.push(point);
			bounds.extend(point);
		}
		circle = new GPolygon(circlePoints, '#ccc', 1, 0.75, '#fff', 0.50);	
		map.addOverlay(circle);
		map.setZoom(map.getBoundsZoomLevel(bounds));
		circleOverlay = circle;
	}
  }


  /**
   ** Funktionen für Angebotsuche nach Ort
   **/
  function sucheOrt ()
  {
    ort = document.getElementById("ort1").value;
    angebot = document.getElementById("angebot1").value;
    lookupOrt (ort);
  }

  function lookupOrt (address) {
    if (circleOverlay) { map.removeOverlay(circleOverlay); circleOverlay = false; }
    if (ortOverlay) { map.removeOverlay(ortOverlay); ortOverlay = false; }
    
    clearMarker("camping");
    clearMarker("fewo");
    clearMarker("juhe");
    clearMarker("hotel");

    clearMarker("fest");
    clearMarker("sport");
    clearMarker("handwerk");
    clearMarker("tour");

    clearMarker("baecker");
    clearMarker("metzger");

	geocoder = new GClientGeocoder();
	geocoder.getLocations(address, anzeigenOrt);
  }

  function anzeigenOrt (response) {
	if (!response || response.Status.code != 200)
	{
      //alert("Leider kein Treffer");
	}
	else
	{
		place = response.Placemark[0];
		var point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
	    var bounds = new GLatLngBounds();
        if (point)
        {
          icon.image = "http://chart.apis.google.com/chart?chst=d_map_pin_icon&chld=location|ff8888";
          options = { icon:icon };
          var marker = new GMarker(point, options);
          map.addOverlay(marker);
          marker.hide();
          GEvent.addListener(marker, "click", function()
          {
            marker.openInfoWindowHtml(place.address)
          });
		  ortOverlay = marker;
        }
        bounds.extend(point);
        var count = 0;
          for (var i=0; i < angebotsGruppen[angebot].length; i++)
          {
            var marker = angebotsGruppen[angebot][i];
            if (ort == marker.getTitle())
            {
              marker.show();
              bounds.extend(marker.getLatLng());
              count++;
            }
            else
            {
              marker.hide();
            }
        }
      map.setCenter(bounds.getCenter());
      if (count == 0) {
        map.setZoom(13);
        alert("Leider ergab Ihre Suche keine Treffer");
      } else {
        map.setZoom(map.getBoundsZoomLevel(bounds)-1);
      }
	}
  }
  
  
  /**
   ** Allgemeine Funktionen für Angebotsuche
   **/
  function clearMarker (gruppe)
  {
      for (var j=0; j < angebotsGruppen[gruppe].length; j++) {
        var marker = angebotsGruppen[gruppe][j];
        if (!marker.isHidden()) { marker.hide() }
      }
  }

  function showAddress(titel,strasse,ort2,plz,type,options,latlng)
  {
    var address = plz+" "+ort2+", "+strasse;
    var info = "<p><strong>"+titel+"</strong><br />"+strasse+"<br />"+plz+" "+ort2+"</p>";
    /*geocoder.getLatLng(address, function(point)
    {*/
      if(latlng)
      {
        var point = new GLatLng.fromUrlValue(latlng);
        var marker = new GMarker(point, options);
        map.addOverlay(marker);
        marker.hide();
        GEvent.addListener(marker, "click", function()
        {
          marker.openInfoWindowHtml(info)
        });
        angebotsGruppen[type].push(marker);
      }
      else
      {
        alert("Fehler! "+address);
      }
    /*});*/
  }

  function initAngebot (titel,strasse,ort2,plz,angebotsgruppe,farbe,icontyp,latlng)
  {
    if (!farbe) { farbe = "ADCA3D"; }
    if (icontyp) {
      icon.image = "http://chart.apis.google.com/chart?chst=d_map_pin_icon&chld="+icontyp+"|"+farbe;
    } else {
      icon.image = "http://chart.apis.google.com/chart?chst=d_map_pin_icon&chld=star|"+farbe;
    }
    markerOptions = { icon:icon, title:ort2 };
    showAddress(titel,strasse,ort2,plz,angebotsgruppe,markerOptions,latlng);
  }
			
  function initCamping()
  {
    initAngebot ("Campingplatz Pfählhof","Pfählhof 1","Bad Urach","72574","camping",false,"camping","48.5032105, 9.4241802");

    initAngebot ("Azur-Rosencamping","Hardtweg 78-80","Sonnenbühl","72820","camping",false,"camping","48.3618789, 9.1838981");
  }
  function initFewo()
  {
    initAngebot ("Stillhammerhaus","Hundersinger Straße 13","Münsingen","72525","fewo","88ff88","home","48.3442, 9.53653");
    initAngebot ("Ferienwohnung Erzberger","Auf der Au 10","Münsingen","72525","fewo","88ff88","home","48.32218, 9.49721");

    initAngebot ("Ferienwohnung Haus Kehrer","Am Mahlensteig 37","Bad Urach","72574","fewo","88ff88","home","48.49693, 9.40992");

    initAngebot ("Ferien- und Erlebnisdorf Sonnenmatte","Sonnenmatte 51","Sonnenbühl","72820","fewo","88ff88","home","48.3816954, 9.1941993");
  }
  function initJuhe()
  {
    initAngebot ("Jugendherberge im Seltbachtal","Burgstr. 45","Bad Urach","72574","juhe","8888ff","home","48.49331, 9.38691");
    initAngebot ("Naturfreunde Bad Urach e.V.","Weberbleiche 35","Bad Urach","72574","juhe","8888ff","home","48.49373, 9.40159");

    initAngebot ("Jugendherberge Erpfingen","Auf der Reute 1","Sonnenbühl","72820","juhe","8888ff","home","48.34951, 9.17679");
  }
  function initHotel()
  {
    initAngebot ("Hotel Herrmann","Marktplatz 1","Münsingen","72525","hotel","ff88ff","home","48.41263, 9.49469");
    initAngebot ("Landhotel Wittstaig","Wittstaig 10","Münsingen","72525","hotel","ff88ff","home","48.32005, 9.50636");

    initAngebot ("Hotel Graf Eberhard","Bei den Thermen 2","Bad Urach","72574","hotel","ff88ff","home","48.50215, 9.37532");
    initAngebot ("Flair-Hotel-Restaurant Vier Jahreszeiten","Stuttgarter Straße 5","Bad Urach","72574","hotel","ff88ff","home","48.49344, 9.39803");

    initAngebot ("Landhotel Sonnenbühl","Egelsbergstraße 12","Sonnenbühl","72820","hotel","ff88ff","home","48.38309, 9.15536");
    initAngebot ("Gasthof Krone","Undinger Straße 19","Sonnenbühl","72820","hotel","ff88ff","home","48.40491, 9.18494");
    initAngebot ("Hotel Hirsch","Im Dorf 12","Sonnenbühl","72820","hotel","ff88ff","home","48.3505162, 9.1942722");
  }
  function initFest()
  {
    initAngebot ("Biosphärenmarkt","Marktplatz 1","Münsingen","72525","fest",false,"amusement","48.41263, 9.49469");

    initAngebot ("Kartoffelfest","Gestütshof St. Johann","Bad Urach","72574","fest",false,"amusement","48.48722, 9.32305");
    initAngebot ("Schäferlauf","Marktplatz 1","Bad Urach","72574","fest",false,"amusement","48.49309, 9.39978");

    initAngebot ("Nebelhöhlenfest","Genkingen","Sonnenbühl","72820","fest",false,"amusement","48.4069225, 9.1864204");
    initAngebot ("Bärenhöhlenfest","Erpfingen","Sonnenbühl","72820","fest",false,"amusement","48.3516472, 9.1960497");
  }
  function initTour()
  {
    initAngebot ("Münsinger TrÜP-Guides","Altes Lager","Münsingen","72525","tour",false,"school","48.41306, 9.53524");
    initAngebot ("Alb-Guides","Hauptstr. 13","Münsingen","72525","tour",false,"school","48.4120227, 9.4928575");
    initAngebot ("Mit Pferden auf dem Weg","Kohl 2","Münsingen","72525","tour",false,"school","48.3828861, 9.5335497");

    initAngebot ("Schlossführung","Bismarckstraße 18","Bad Urach","72574","tour",false,"school","48.4923884, 9.3974079");

    initAngebot ("Schwäbischer Albverein","Johann-Ludwig-Schneller-Str. 5","Sonnenbühl","72820","tour",false,"school","48.3501, 9.18997");
  }
  function initSport()
  {
    initAngebot ("Terrassenfreibad Münsingen","Alter Seeburger Weg","Münsingen","72525","sport",false,"sport","48.4163592, 9.4887178");
    initAngebot ("Hallenbad Münsingen","Lehenstr. 30","Münsingen","72525","sport",false,"sport","48.41127, 9.50384");

    initAngebot ("Ermstalfischerei im Seeburger Tal","An der Enge","Bad Urach","72574","sport",false,"sport","48.4613782, 9.4352668");
    initAngebot ("Höhenfreibad Tiergartenberg","Am Tiergartenberg","Bad Urach","72574","sport",false,"sport","48.49173861780406, 9.388670325279236");

    initAngebot ("Ballonsportgruppe Sonnenbühl","Löherstr. 25","Sonnenbühl","72820","sport",false,"sport","48.38576, 9.15261");
    initAngebot ("Freizeitbetriebe Möck	Möck","Stettenerstr. 44","Sonnenbühl","72820","sport",false,"sport","48.35085, 9.18938");
  }
  function initHandwerk()
  {
    initAngebot ("Metzgerei Seiffert","Oberdorf 8","Münsingen","72525","handwerk",false,"courthouse","48.34415, 9.4861");
    initAngebot ("Demeterhof Freytag","Steighof 9","Münsingen","72525","handwerk",false,"courthouse","48.32556, 9.49244");
    initAngebot ("Schäferei Stotz","Viehweide 2","Münsingen","72525","handwerk",false,"courthouse","48.3957077, 9.4912771");

    initAngebot ("Hofgut Uhenfels & Sonnenhof","Hofgut Uhenfels","Bad Urach","72574","handwerk",false,"courthouse","48.446399, 9.4646072");
    initAngebot ("Metzgerei Schneider","Wilhelmstrasse 12","Bad Urach","72574","handwerk",false,"courthouse","48.49215, 9.39978");

    initAngebot ("Metzgerei Allmendinger","Schießgasse 4","Sonnenbühl","72820","handwerk",false,"courthouse","48.38989, 9.18082");
    initAngebot ("Sonnenhof Undingen","Fuchsloch 3","Sonnenbühl","72820","handwerk",false,"courthouse","48.37809, 9.19135");
  }
  function initBaecker()
  {
    initAngebot ("Bäckerei Hoffmann","Marktplatz 13","Münsingen","72525","baecker",false,"shoppingbag","48.41246, 9.49441");

    initAngebot ("Becka Beck","Unter Lau 3","Bad Urach","72587","baecker",false,"shoppingbag","48.49181, 9.50612");

    initAngebot ("Bäckerei Haug","Gönninger Straße 3","Sonnenbühl","72820","baecker",false,"shoppingbag","48.40663, 9.18448");
  }
  function initMetzger()
  {
    initAngebot ("Metzgerei Seiffert","Oberdorf 8","Münsingen","72525","metzger",false,"shoppingbag","48.34415, 9.4861");

    initAngebot ("Metzgerei Schneider","Wilhelmstrasse 12","Bad Urach","72574","metzger",false,"shoppingbag","48.49215, 9.39978");

    initAngebot ("Metzgerei Allmendinger","Schießgasse 4","Sonnenbühl","72820","metzger",false,"shoppingbag","48.38989, 9.18082");
  }
