

var map = null;
var localSearch = new GlocalSearch();

function loadMap() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
    if (mctrl) map.addControl(mapctrl);
    if (mtype) map.addControl(new GMapTypeControl());
		//map.addMapType(G_PHYSICAL_MAP);
    if (mscale) map.addControl(new GScaleControl());
    if (moview) map.addControl(new GOverviewMapControl());
    map.enableContinuousZoom();
    map.setCenter(mcenter, mzoom);
  }
}

function usePointFromPostcode(address, callbackFunction) {
  map.clearOverlays();
  localSearch.setSearchCompleteCallback(null, function () {
    if (localSearch.results[0]) {
      var resultLat = localSearch.results[0].lat;
      var resultLng = localSearch.results[0].lng;
      var point = new GLatLng(resultLat,resultLng);
      callbackFunction(point,address);
    } else {
      alert("\""+address+"\"" + " nicht gefunden!"); 
    }
  });
  if (mcountry != "") mcountry = ", " + mcountry;
  localSearch.execute(address + mcountry);
}

function placeMarkerAtPoint(point,address) {
  map.setCenter(point, 13);
  var marker = new GMarker(point, {title: "Drag", draggable: true});
  map.addOverlay(marker);
  grabCoordinates(point.toUrlValue());
  GEvent.addListener(map, "mouseover", function(){});
  GEvent.addListener(marker, "drag", function(){
    var mycoo = marker.getPoint().toUrlValue();
    grabCoordinates(mycoo);
  });
}

function grabCoordinates(thepoint) {
  var cooarray = thepoint.split(",");
  var mylat = cooarray[0];
  var mylng = cooarray[1];
  document.getElementById(mlat).value = mylat;
  document.getElementById(mlng).value = mylng;
}

function concAddress() {
  var address = document.getElementById('Strasse').value;
  if (document.getElementById('Plz_Ort')) {
    address += ", " + document.getElementById('Plz_Ort').value;
    if (document.getElementById('GMzip')) address += ", " + document.getElementById('GMzip').value;
  }
  return address;
}


function GMcheckFields() {
  var msg = "";
  if (document.getElementById('Strasse').value.replace(/ /g,"") == "") {
    var address =document.getElementById('Plz_Ort').value;
  } else if (document.getElementById('Plz_Ort') && document.getElementById('Strasse').value.indexOf(",") != -1) {
    msg += "Entfernen Sie bitte das Komma aus dem Feld, bitte nur Leerzeichen zum Trennen verwenden.\n"; 
  }
  if (document.getElementById('Plz_Ort') && document.getElementById('Plz_Ort').value.replace(/ /g,"") == "") {
    msg += "Bitte Ort eingeben.\n";
  }
  if (msg != "") {
    alert(msg);
  } else usePointFromPostcode(concAddress(), placeMarkerAtPoint);
}
