diff --git a/content/adressedialog.js.php b/content/adressedialog.js.php
index c89f697d2..0536f6fc3 100644
--- a/content/adressedialog.js.php
+++ b/content/adressedialog.js.php
@@ -87,8 +87,10 @@ function AdresseInit(adresse_id, person_id)
document.getElementById('adresse-textbox-name').value=name;
document.getElementById('adresse-textbox-strasse').value=strasse;
document.getElementById('adresse-textbox-plz').value=plz;
- document.getElementById('adresse-textbox-ort').value=ort;
+ AdresseLoadGemeinde(true);
document.getElementById('adresse-textbox-gemeinde').value=gemeinde;
+ AdresseLoadOrtschaft(true);
+ document.getElementById('adresse-textbox-ort').value=ort;
document.getElementById('adresse-menulist-nation').value=nation;
document.getElementById('adresse-menulist-typ').value=typ;
if(heimatadresse=='Ja')
@@ -110,4 +112,86 @@ function AdresseSpeichern()
{
if(window.opener.KontaktAdresseSpeichern(document))
window.close();
+ else
+ this.focus();
+}
+
+// ****
+// * Laedt die Gemeinden zur eingegebenen Postleitzahl
+// ****
+function AdresseLoadGemeinde(blocking)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+
+ menulist_gemeinde = document.getElementById('adresse-textbox-gemeinde');
+ if(document.getElementById('adresse-menulist-nation').value=='A')
+ {
+ menulist_gemeinde.value='';
+ document.getElementById('adresse-textbox-ort').value='';
+ }
+ plz = document.getElementById('adresse-textbox-plz').value;
+
+ if(plz.length>3)
+ {
+ var url = 'rdf/gemeinde.rdf.php?plz='+plz+'&'+gettimestamp();
+
+ var oldDatasources = menulist_gemeinde.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ menulist_gemeinde.database.RemoveDataSource(oldDatasources.getNext());
+ }
+ //Refresh damit die entfernten DS auch wirklich entfernt werden
+ menulist_gemeinde.builder.rebuild();
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ if(blocking)
+ var datasource = rdfService.GetDataSourceBlocking(url);
+ else
+ var datasource = rdfService.GetDataSource(url);
+ datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
+ menulist_gemeinde.database.AddDataSource(datasource);
+
+ menulist_gemeinde.builder.rebuild();
+ }
+}
+
+// ****
+// * Laedt die Ortschaften zu Plz und Gemeinde
+// ****
+function AdresseLoadOrtschaft(blocking)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+
+ gemeinde = document.getElementById('adresse-textbox-gemeinde').value;
+ menulist_ort = document.getElementById('adresse-textbox-ort');
+ if(document.getElementById('adresse-menulist-nation').value=='A')
+ {
+ menulist_ort.value='';
+ }
+ plz = document.getElementById('adresse-textbox-plz').value;
+
+ if(plz.length>3 && gemeinde!='')
+ {
+ var url = 'rdf/gemeinde.rdf.php?plz='+plz+'&gemeinde='+encodeURIComponent(gemeinde)+'&'+gettimestamp();
+
+ var oldDatasources = menulist_ort.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ menulist_ort.database.RemoveDataSource(oldDatasources.getNext());
+ }
+ //Refresh damit die entfernten DS auch wirklich entfernt werden
+ menulist_ort.builder.rebuild();
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ if(blocking)
+ var datasource1 = rdfService.GetDataSourceBlocking(url);
+ else
+ var datasource1 = rdfService.GetDataSource(url);
+ datasource1.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ datasource1.QueryInterface(Components.interfaces.nsIRDFXMLSink);
+ menulist_ort.database.AddDataSource(datasource1);
+
+ menulist_ort.builder.rebuild();
+ }
}
\ No newline at end of file
diff --git a/content/adressedialog.xul.php b/content/adressedialog.xul.php
index 5ccb5581a..ee09a7a83 100644
--- a/content/adressedialog.xul.php
+++ b/content/adressedialog.xul.php
@@ -82,27 +82,6 @@ else
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+