try {if(featuretypeGemeinden){}}catch(e) {featuretypeGemeinden = "dog:gemeinden";}
try {if(featuretypeStrassen){}}catch(e) {featuretypeStrassen = "dog:Strassen";}
try {if(featuretypeHauskoordinaten){}}catch(e) {featuretypeHauskoordinaten = "dog:Hauskoordinaten";}
try {if(searchAttrGemeinden){}}catch(e) {searchAttrGemeinden = "iso19112:geographicIdentifier";}
try {if(searchAttrStrassen){}}catch(e) {searchAttrStrassen = "dog:strassenschluessel,dog:strassenname";}
try {if(searchAttrHauskoordinaten){}}catch(e) {searchAttrHauskoordinaten = "iso19112:parent";}
try {if(gemeindenAttributes){}}catch(e) {gemeindenAttributes = "geographicIdentifier,parent,gemeindeschluessel";}
try {if(strassenAttributes){}}catch(e) {strassenAttributes = "geographicIdentifier,strassenname";}
try {if(hauskoordinatenAttributes){}}catch(e) {hauskoordinatenAttributes = "hausnummer,hausnummernzusatz";}
try {if(noResultMsg){}}catch(e) {noResultMsg = "No result.";}
try {if(serverErrorMsg){}}catch(e) {serverErrorMsg = "Server error.";}
try {if(markerImage){}}catch(e) {markerImage = "../img/marker_fett.gif";}
var geomArrayGemeinden = null;
var geomArrayStrassen = null;
var geomArrayHauskoordinaten = null;
var gazetteerStep = "searchGemeinden";
var searchString;
var searchFeaturetype;
var searchFor;
var showAttributeName;
var noResultMsg
var serverErrorMsg = "";
var gazetteerResultHighlight;
var highlightColor = "#cc33cc";
var currentMarker_mapframe1 = null;
var currentMarker_overview = null;
var permanentMarker = null;
var targetArray = targetString.split(",");
/**
* get html content for gazetteer form
*/
function getHtmlForGazetteerForm () {
mb_ajax_post("../geoportal/mod_gazetteerDOGProfile_server.php", {"command":"getHtml"}, function(jsCode, status) {
if(status == 'success'){
$("#gazetteerDOGProfile").html(jsCode);
}
else{
$("#gazetteerDOGProfile").html("HTML could not be loaded.");
}
});
}
function normalizeString(str){
str = str.replace(/\./g,'*');
str = str.replace(/-/g,' ');
str = str.toUpperCase();
str = str.replace(/ß/g,'ß');
str = str.replace(/Ä/g,'ä');
str = str.replace(/Ö/g,'ö');
str = str.replace(/Ü/g,'ü');
return str;
}
/**
* search for Gemeinden in featuretype dog:gemeinden
*
*/
function startGazetteer () {
$("#gazetteerDOGHausnummer").empty();
var styleProperties = {"position":"absolute", "top":"0px", "left":"0px", "z-index":100};
gazetteerResultHighlight = new Highlight(targetArray, "gazetteerDOGProfileHighlight", styleProperties, 2);
if(gazetteerStep == "searchStrassen"){
searchFeaturetype = featuretypeStrassen;
searchAttr = searchAttrStrassen;
// var searchString1 = document.getElementById('selectResultsearchGemeinden').options[document.getElementById('selectResultsearchGemeinden').selectedIndex].value;
var selectboxIndex = parseInt(document.getElementById('selectResultsearchGemeinden').value, 10);
var showField = gemeindenAttributes.split(",");
var searchString1 = geomArrayGemeinden.get(selectboxIndex).e.getElementValueByName(showField[2]);
var searchString2 = document.getElementById('gazetteerDOGStrasse').value;
if (searchString1 == "" || searchString2 == "") {
alert("Bitte Ort und Straße angeben.");
return false;
}
var singleSearchAttr = searchAttr.split(",");
//searchFor = singleSearchAttr[0] + "=" + searchString1 + "|" + singleSearchAttr[1] + "=" + normalizeString(searchString2);
searchFor = singleSearchAttr[0] + "=" + searchString1 + "|" + singleSearchAttr[1] + "=" + searchString2;
showAttributeName = strassenAttributes;
}
else if(gazetteerStep == "searchHauskoordinaten") {
searchFeaturetype = featuretypeHauskoordinaten;
searchAttr = searchAttrHauskoordinaten;
// searchString = document.getElementById('selectResultsearchStrassen').options[document.getElementById('selectResultsearchStrassen').selectedIndex].value;
var selectboxIndex = parseInt(document.getElementById('selectResultsearchStrassen').value, 10);
var showField = strassenAttributes.split(",");
searchString = geomArrayStrassen.get(selectboxIndex).e.getElementValueByName(showField[0]);
if (searchString == "") {
alert("Bitte Straße angeben.");
return false;
}
searchFor = searchAttr + "=" + searchString;
showAttributeName = hauskoordinatenAttributes;
}
else{
searchString = document.getElementById('gazetteerDOGOrtPlz').value;
if(isNaN(searchString) == false) {
if(searchString.length != 5) {
alert("PLZ bitte vollständig eingeben.");
return false;
}
searchFeaturetype = featuretypePLZ;
searchAttr = searchAttrPLZ;
searchFor = searchAttr + "=" + searchString;
showAttributeName = plzAttributes;
gazetteerStep = "searchPlz";
}
else{
searchFeaturetype = featuretypeGemeinden;
searchAttr = searchAttrGemeinden;
//searchFor = searchAttr + "=" + normalizeString(searchString);
searchFor = searchAttr + "=" + searchString;
if (searchString == "") {
alert("Bitte Ort/PLZ eingeben.");
return false;
}
showAttributeName = gemeindenAttributes;
}
}
var parameters = {
"command" : gazetteerStep,
"wfsUrl" : wfsUrl,
// "authUserNameWfs" : authUserName,
// "authUserPasswordWfs" : authUserPassword,
"searchFeaturetype" : searchFeaturetype,
"searchFor" : searchFor
};
document.getElementById("gazetteerProgressWheel").innerHTML = "Suche läuft...";
$.post("../geoportal/mod_gazetteerDOGProfile_server.php", parameters, function(jsCode, status) {
document.getElementById("gazetteerProgressWheel").innerHTML = "";
if(status == 'success'){
try {
if(typeof(jsCode) == 'string'){
alert(jsCode);
return false;
}
else if(typeof(jsCode) == 'object'){
var geoObj = jsCode;
}
else{
var geoObj = parent.$.parseJSON(jsCode);
}
}
catch (exc) {
alert("Invalid data returned from service.");
return false;
}
if (typeof geoObj === "undefined") {
alert("Invalid data returned from service.");
}
else if (jsCode) {
if (typeof(geoObj) == 'object') {
if(gazetteerStep == "searchHauskoordinaten") {
if(typeof geoObj.errorMessage != "undefined"){
alert(noResultMsg);
gazetteerStep = "searchHauskoordinaten";
}
else {
geomArrayHauskoordinaten = new GeometryArray();
geomArrayHauskoordinaten.importGeoJSON(geoObj);
if(geomArrayHauskoordinaten.count() > 0) {
$("#gazetteerDOGHausnummer").html(showHausnummern(geomArrayHauskoordinaten));
}
else {
$("#gazetteerDOGHausnummer").show();
$("#gazetteerDOGHausnummer").css("color","#000000");
var resultHtml = "Hausnummern:
";
resultHtml += $("#selectResultsearchStrassen option:selected").html() + "
";
resultHtml += "Kein Ergebnis
";
$("#gazetteerDOGHausnummer").html(resultHtml);
}
}
}
else if(gazetteerStep == "searchStrassen") {
if(typeof geoObj.errorMessage != "undefined"){
alert(noResultMsg);
$("#gazetteerDOGStrasse").val("");
$("#gazetteerDOGStrasse").focus();
gazetteerStep = "searchStrassen";
}
else {
geomArrayStrassen = new GeometryArray();
geomArrayStrassen.importGeoJSON(geoObj);
if(geomArrayStrassen.count() < 1) {
alert(noResultMsg);
$("#gazetteerDOGStrasse").focus();
return;
}
$("#gazetteerDOGStrasseField").empty();
$("#gazetteerDOGStrasseField").html(showResult(geomArrayStrassen));
//wenn nur ein Suchergebnis vorhanden, führe Zoom und startGazetteer direkt aus
if(geomArrayStrassen.count() == 1) {
zoomToStrassen(gazetteerStep, 0);
gazetteerStep = "searchHauskoordinaten";
startGazetteer();
}
else {
gazetteerStep = "searchHauskoordinaten";
$("#gazetteerDOGHausnummer").show();
$("#gazetteerDOGHausnummer").css("color","#808080");
var resultHtml = "Hausnummern:
";
$("#gazetteerDOGHausnummer").html(resultHtml);
}
}
}
else {
if(typeof geoObj.errorMessage != "undefined"){
alert(noResultMsg);
$("#gazetteerDOGOrtPlz").val("");
$("#gazetteerDOGOrtPlz").focus();
gazetteerStep = "searchGemeinden";
}
else {
geomArrayGemeinden = new GeometryArray();
geomArrayGemeinden.importGeoJSON(geoObj);
if(geomArrayGemeinden.count() < 1) {
alert(noResultMsg);
$("#gazetteerDOGOrtPlz").focus();
return;
}
if(gazetteerStep == "searchPlz") {
showResultPlz(geomArrayGemeinden);
}
else {
$("#gazetteerDOGOrtField").empty();
$("#gazetteerDOGOrtField").html(showResult(geomArrayGemeinden));
//wenn nur ein Suchergebnis vorhanden, führe Zoom und setStrassenField direkt aus
if(geomArrayGemeinden.count() == 1) {
zoomToGemeinden(gazetteerStep, 0);
setStrassenField();
//$("#gazetteerDOGStrasse").focus();
}
gazetteerStep = "searchStrassen";
}
}
}
}
else {
alert(noResultMsg);
}
}
}
else {
alert(serverErrorMsg);
}
},"json");
return false;
}
var sortFunction = function (a, b) {
if (a.title.toUpperCase() < b.title.toUpperCase() ) {
return -1;
}
return 1;
}
var sortIntFunction = function (a, b) {
if (a.title < b.title) {
return -1;
}
return 1;
}
var sortHausnummernFunction = function (a, b) {
if (a.showTitle.toUpperCase() > b.showTitle.toUpperCase()) {
return -1;
}
return 1;
}
/**
* show search results
*
*/
function showResult(geomArray) {
var selectHtml = "";
var attributeNames = showAttributeName.split(",");
if (geomArray != null && geomArray.count() > 0) {
if(gazetteerStep == "searchStrassen") {
selectHtml += "