// ========================================= PwAdress.js ====================================

// Copyright ©2010 Internetverlag Terranautic Limited

function GeoCoder() {
    //getAddress();
    MapGeocoder.getLocations(getAddress(), getLocResponse);
    }
    
function getLocResponse(response) {
  GeoSessionNum=GeoSessionNum+1;
  StatusCode=response.Status.code;
  AutoMove = true;
  if (response && (response.Status.code == G_GEO_SERVER_ERROR || response.Status.code == G_GEO_BAD_KEY || response.Status.code == G_GEO_TOO_MANY_QUERIES)) {
    document.getElementById(MESS).innerHTML = "Interner Fehler ["+StatusCode+"], bitte in einigen Minuten erneut 'berechnen'!";
    } else {
  //if (response && (response.Status.code == G_GEO_SUCCESS)) {
  //if (response.Status.code == G_GEO_SUCCESS) {
    MapResponse = response;
    Anz=0;
    if (response.Placemark) {
        Anz=response.Placemark.length;
        placemark = MapResponse.Placemark[0];
        //document.getElementById('FPoiWalkHilfe').innerHTML = "";
        } else {
        document.getElementById(MESS).innerHTML = "Die Adresse wurde NICHT gefunden";
        return;
        }
    country='';
    AreaName='';
    Coordinates='';
    if (Anz < 1) {
        document.getElementById(MESS).innerHTML = "Es wurde nichts gefunden";
        return;
        }
    if (Anz == 1) {
        ShowAddress();
        } else {
        //document.getElementById(MESS).innerHTML = "gefunden="+Anz+" Punkte<br>";
        ShowAddress();
        SendAddressList();
        }
    //} else {
    //document.getElementById("Message").innerHTML = "Zu dieser Angabe wurde nichts gefunden ["+response.Status.code+"]";
    //}
    }
  }

function SendAddressList() {
    addressliste='LISTE;'+GeoSessionID+GeoSessionNum+';'+USER+'<hr>';
    addressliste1='WEITERE gefundene Punkte<hr>';
    addressliste1='';
    for (var i = 0; i < Anz; i++) {				
        placemark = MapResponse.Placemark[i];
        address = placemark.address;
        CooNS=placemark.Point.coordinates[1];
        CooEW=placemark.Point.coordinates[0]
        addressliste = addressliste+address+";"+CooNS+";"+CooEW+";<br>";
        addressliste1 = addressliste1+"<a href=\"javascript:AdressenKooSuche("+CooNS+","+CooEW+");\">"+address+"</a><br>";
        }
    document.getElementById(MESS).innerHTML = MessagText;
    document.getElementById('FPoiWalkHilfe').innerHTML = addressliste1;
    var request = GXmlHttp.create();
    var Url = "/cgi-bin/womo/geo.pl?"+addressliste;
    request.open("GET",Url, true);
    request.send(null);
    }
    
function ShowAddress() {
    document.getElementById(MESS).innerHTML = "gefunden="+Anz+" Punkte ["+StatusCode+"]<br>";
    //document.getElementById("Message").innerHTML = "<small>Strasse Hausnummer, Ort, Land ODER nur<br>Ort,Strasse (Suche weltweit)<small>";
    AutoMove = true;
    address = placemark.address;
    CountryNameCode='';
    AdministrativeAreaName='';
    LocalityName='';
    PostalCode='';
    if (placemark.AddressDetails.Country) {
      if (placemark.AddressDetails.Country.CountryNameCode) {
          CountryNameCode=placemark.AddressDetails.Country.CountryNameCode;
          }
      if (placemark.AddressDetails.Country.AdministrativeArea) {
          if (placemark.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName) {
              AdministrativeAreaName=placemark.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
              }
          if (placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea) {
              if (placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality) {
                  if (placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName) {
                      LocalityName=placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
                      }
                  if (placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode) {
                      PostalCode=placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber;
                      }
                  }
              }
          }
      }
    if (SettKoo == true) {
        CooNS=placemark.Point.coordinates[1];
        CooEW=placemark.Point.coordinates[0];
        } else {
        CooNS=Ycc;
        CooEW=Xcc;
        }
    SettKoo = true;
    TR1='<br>';
    TR2='/';
    TR2='|';
    TR3=';';
    AdrFound = CountryNameCode+TR3+AdministrativeAreaName+TR3+LocalityName+TR3+PostalCode+TR3+address+TR3;
    GoogleWin= "<a href=\"javascript:NewWindow('http://www.google.de/#hl=de&source=hp&q="+AdrFound+"');\">Info zu dieser Adresse</a>";
    MessagText = "gefunden="+Anz+" Punkte"+TR1+CountryNameCode+TR2+AdministrativeAreaName+TR2+LocalityName+TR2+PostalCode+TR1+address+TR1+GoogleWin+TR1+CooNS+' , '+CooEW;
    AdressText=CooNS+';'+CooEW+';'+address;
    document.getElementById(MESS).innerHTML = MessagText;
    PoiAdresse=CountryNameCode+TR2+AdministrativeAreaName+TR2+LocalityName+TR2+PostalCode+TR2+address;
    //map.clearOverlays();
    Zoom = map.getZoom();
    if ((AutoZoom) && (Zoom < 10)) {  Zoom=12;  }
    AutoZoom=true;
    var ct = new GLatLng(CooNS,CooEW);
    map.setCenter(ct,Zoom);
    //alert(PoiAdresse);
    Ycc=CooNS;
    Xcc=CooEW;
    PoiKooNS=Ycc;
    PoiKooEW=Xcc;
    //createDragMarker(new GLatLng(CooNS,CooEW));
    var request = GXmlHttp.create();
    var Url = "/cgi-bin/womo/geo.pl?"+'GEO;'+GeoSessionID+':'+USER+';'+address+';'+CooNS+";"+CooEW+';'+CountryNameCode+';'+AdministrativeAreaName+';'+LocalityName+';'+PostalCode;
    request.open("GET",Url, true);
    request.send(null);
    }

// Get address
function getAddress() {
   adresse=document.getElementById('MapAddress').value;
   document.getElementById(MESS).innerHTML = adresse;
   return adresse;
	}
function getAddress1() {
   document.getElementById(MESS).innerHTML = StartAdresse;
   adresse=document.getElementById('MapAddress').value;
   //alert(StartAdresse);
   return StartAdresse;
	}
function Adressensuche(Adresse) {
    document.getElementById('MapAddress').value=Adresse;
    //MapGeocoder.getLocations(getAddress1(), getLocResponse);
    GeoCoder();
   }

function AdressenKooSuche() {
    Adresse = PoiKooNS+','+PoiKooEW;
    document.getElementById('MapAddress').value=Adresse;
    GeoCoder();
   }

// ENDE ==================================== PwAdress.js ====================================

