myMap = false;

function openMap (mapWindow, mapContainer, closeButton) {
   if (!myMap) myMap = new biobiteMap(mapWindow, mapContainer, closeButton);
   else myMap.open();
}

function biobiteMap (mapWindow, mapContainer, closeButton) {

   var floatWin = new FloatingWindow (mapWindow, closeButton);
   this.open = function (event) { floatWin.open(); }
   this.close = function (event) { floatWin.close(); }
   floatWin.open();

   var self = this;

   var address = "Zinzendorfstr. 8, 10555 Berlin, Berlin, Germany";
   var displayAddress = "Zinzendorfstr. 8, 10555 Berlin";
   var gmap = null;
   var geocoder = null;
   var point = null;
   var marker = null;

   /* load api */
   /*var html_doc = document.getElementsByTagName('head').item(0);
   var js = document.createElement('script');
   js.setAttribute('language', 'javascript');
   js.setAttribute('type', 'text/javascript');
   js.setAttribute('src', "http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAIoZzfPLDrmY5iORB0KsHKBTGpdtfm45k8VvmAloS_Ce8acvgqxQBWIbWhRMMiaHeZsNXihNN1fhVxw");
   html_doc.appendChild(js);*/

   if (GBrowserIsCompatible()) {
      document.getElementsByTagName('body')[0].onunload = GUnload;
      gmap = new GMap2(document.getElementById(mapContainer));
      point = new GLatLng(52.523879, 13.331905);
      //gmap.addControl(new GSmallMapControl());
      gmap.addControl(new GLargeMapControl());
      gmap.addControl(new GMapTypeControl());
      gmap.addControl(new GOverviewMapControl());
      gmap.setCenter(point, 13);
      geocoder = new GClientGeocoder();
      geocoder.getLocations(address, addToMap);
   }

   function addToMap (response) {
      // Retrieve the object
      place = response.Placemark[0];
      // Retrieve the latitude and longitude
      point = new GLatLng(place.Point.coordinates[1],
                          place.Point.coordinates[0]);
      // Create a marker
      marker = new GMarker(point, getIcon());
      //marker = new GMarker(point);
      // Add the marker to map
      gmap.addOverlay(marker);
      // Add address information to marker
      marker.openInfoWindowHtml(getInfoWindowContent());

      GEvent.addListener(marker, "click", function() {
         marker.openInfoWindowHtml(getInfoWindowContent());
      });
   }

   function getInfoWindowContent () {
      if (sniffer.msie)
         return '<div id="map_info"><div><img src="images/bb-b_map_sprechblase.jpg" alt="" /></div></div>';
      else
         return '<div id="map_info"><div><img src="images/biobite_bisstro_logo.gif" alt="" /><br />' + displayAddress + '</div></div>';
   }

   function getIcon () {
      var icon = new GIcon();
      icon.image = 'http://www.biobite-bisstro.de/images/google_map_button.png';
      icon.iconSize = new GSize(57, 57);

      icon.shadow = 'http://www.biobite-bisstro.de/images/google_map_schatten_60.png';
      icon.shadowSize = new GSize(57, 57);

      icon.iconAnchor = new GPoint(11, 35);
      icon.infoWindowAnchor = new GPoint(20, 25);

      return icon;
   }

}

