// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//  SuchTeildes myWMSClient (C) BT-GIS, 2006
//
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


// ########################################################
//  Bitte den Servlet-Server jeweils anpassen!
// ########################################################
   var SuchServer = "http://egis.kreis-stormarn.de/suche/";

  suchergebnis_skala = 10000;
  SuchButtonImg = new Image(); SuchButtonImg.src = "images/Suche.gif";
  SuchExitImg = new Image(); SuchExitImg.src = "images/exit_suchfenster.gif";
  search_iframe = true; // Oeffnet Suchergebnis in einem Iframe

  var SuchText  = new Array(); // Tooltips der Suchbuttons
  SuchText[0] = "PLZ oder Ort";
  SuchText[1] = "Strasse oder Begriff";
  SuchText[2] = "Starte Suche";
  SuchText[3] = "Suchergebnis";
  SuchText[4] = "Schlie&szlig;e Suchfenster";
  SuchText[5] = "Suche wird durchgef&uuml;hrt...";
  SuchText[6] = "Hausnr.";


// =====================================================
// Such-Textfeld, Suchknopf und Suchausgabefenster
// =====================================================
  document.write('<div id="divSuchForm">');
  document.write('<input id="inputort" name="ort" type="text" value="'+SuchText[0]+'" onfocus="my_ortselect()"></input>');
  document.write('<input id="inputstrasse" name="strasse" type="text" value="'+SuchText[1]+'" onfocus="my_strasseselect()"></input>');
  document.write('<input id="inputhausnummer" name="hausnummer" type="text" value="'+SuchText[6]+'" onfocus="my_hausnummerselect()"></input>');
  document.write('</div>');
  document.write('<div id="divSuchButton"><img src="'+SuchButtonImg.src+'" onclick="my_search_open()" title="'+SuchText[2]+'"></div>');


// =====================================================
// Suchergebnis
// =====================================================
  document.write('<div id="divSuchergebnis">');
  document.write('<div id="Suchtitle">');
  document.write('<div id="SuchTag">'+SuchText[3]+'</div>');
  document.write('<div id="SuchClose"><img onclick="my_search_close()" src="'+SuchExitImg.src+'" title="'+SuchText[4]+'"></div>');
  document.write('</div>');
  document.write('<iframe name="IFrameSuchergebnis" id="Suchergebnis" frameborder="0"></iframe>');
  document.write('<div id="divSuchInfo">'+SuchText[5]+'</div>');
  document.write('</div>');

// ------------------------------------------------------------------------------------------------------------------
//   - Aufruf in suche.js
//   - bei Klick in das Eingabefeld "PLZ/Ort" wird der Feldinhalt blau markiert
// ------------------------------------------------------------------------------------------------------------------
  function my_ortselect() {
    document.getElementById("inputort").select();
  }

// ------------------------------------------------------------------------------------------------------------------
//   - Aufruf in suche.js
//   - bei Klick in das Eingabefeld "Strasse/Suchbegriff" wird der Feldinhalt blau markiert
// ------------------------------------------------------------------------------------------------------------------
  function my_strasseselect() {
    document.getElementById("inputstrasse").select();
  }

// ------------------------------------------------------------------------------------------------------------------
//   - Aufruf in suche.js
//   - bei Klick in das Eingabefeld "Hausnummer" wird der Feldinhalt blau markiert
// ------------------------------------------------------------------------------------------------------------------
  function my_hausnummerselect() {
    document.getElementById("inputhausnummer").select();
  }

// ------------------------------------------------------------------------------------------------------------------
//   - Aufruf in suche.js
//   - keycode 13 steht fuer die Enter-Taste; damit kann die Suche auch durch Druecken der Entertaste
//     ausgeloest werden
// ------------------------------------------------------------------------------------------------------------------
  function my_submit(event) {
    if (!event) event = window.event;
    if (event.which) key = event.which;
    else if (event.keyCode) key = event.keyCode;
    if (key==13) { my_search_open(); return true; }
  }



// ------------------------------------------------------------------------------------------------------------------
//  - Aufruf in index.jsp
//  - oeffnet Suchfenster, stoesst das Such-Servlet an
//  - Spezialkarten und Weitere Karteninhalte werden innerhalb des geoeffneten Suchfensters inaktiviert und grau hinterlegt
// ------------------------------------------------------------------------------------------------------------------
  function my_search_open() {
    var myInputOrt = document.getElementById("inputort").value;
    var myInputStrasse = document.getElementById("inputstrasse").value;
    var myInputHausnr = document.getElementById("inputhausnummer").value;
    if(myCheck(myInputStrasse) == false || myCheck(myInputOrt) == false || myCheck(myInputHausnr) == false) {
      alert(unescape("Ihre Eingaben beinhalten unerlaubte Sonderzeichen.\nBitte %E4ndern Sie Ihre Anfrage!"));
     }else {
        if(myInputStrasse.length < 3 && myInputStrasse != '') {
            alert(unescape("Der Suchbegriff für die Strasse muss mindestens 3 Zeichen Lang sein.\nBitte %E4ndern Sie Ihre Anfrage!"));
        }else if(myInputOrt.length < 3 && myInputOrt != '') {
            alert(unescape("Der Suchbegriff für PLZ/Ort muss mindestens 3 Zeichen Lang sein.\nBitte %E4ndern Sie Ihre Anfrage!"));
        }else{
           if (search_iframe==true) {
             document.getElementById("divSuchergebnis").style.display = "inline";
             document.getElementById("Suchergebnis").style.display = "none";
             document.getElementById("Suchergebnis").src=SuchServer+"Suche?ort="+(getPreparedParameter(myInputOrt))+"&strasse="+(getPreparedParameter(myInputStrasse))+"&seite=1&hausnr="+(getPreparedParameter(myInputHausnr));
           }
           else {
            window.open(SuchServer+"Suche?ort="+(getPreparedParameter(myInputOrt))+"&strasse="+(getPreparedParameter(myInputStrasse))+"&seite=1&hausnr="+(getPreparedParameter(myInputHausnr)));
           }

        }

     }
  }

// ------------------------------------------------------------------------------------------------------------------
//  - Bearbeiten von Such- Parametern:
//  - URI-Kodieren von Parameter
// ------------------------------------------------------------------------------------------------------------------
  function getPreparedParameter(myParam){
    var newParam = myCut(myParam,"%");
    newParam = myCut(newParam,"\"");
    newParam = myCut(newParam,"_");
    return encodeURIComponent(newParam);
  }

// ------------------------------------------------------------------------------------------------------------------
//  - Bearbeiten von Such- Parametern:
//  - Erzetzen von Sonderzeichen
// ------------------------------------------------------------------------------------------------------------------
  function myCut(toCut, spliter){
    var help = toCut.split(spliter);
    var cuted = "";
    for(var i = 0; i < help.length; i++)
        cuted += help[i];
    return cuted;
  }

// ------------------------------------------------------------------------------------------------------------------
//  - Pruefen von Parametern auf unerlaubten Zeichen:
// ------------------------------------------------------------------------------------------------------------------
  function myCheck(toCheck){
    toCheck = escape(toCheck);
    toCheck = myCut(toCheck, "%E4");  // ae
    toCheck = myCut(toCheck, "%F6");  // oe
    toCheck = myCut(toCheck, "%FC");  // ue
    toCheck = myCut(toCheck, "%DF");  // ss
    toCheck = myCut(toCheck, "%C4");  // AE
    toCheck = myCut(toCheck, "%D6");  // OE
    toCheck = myCut(toCheck, "%DC");  // UE
    toCheck = myCut(toCheck, "%20");  // blank
    toCheck = myCut(toCheck, "%28");  // (
    toCheck = myCut(toCheck, "%29");  // )
    toCheck = myCut(toCheck, "%2C");  // ,
    toCheck = myCut(toCheck, "%27");  // '

    var muster = /^[a-zA-Z0-9]*[a-zA-Z0-9\.\-\+\/\s]*$/;
    var checked = muster.exec(toCheck);
    if(checked == null){
        return false;
    } else {
        return true;
    }
  }



// ------------------------------------------------------------------------------------------------------------------
//   - Aufruf im Servlet Suche.java
//   - erneuter Anstoss des Suchservlets bei Klick auf Seitenzahl
// ------------------------------------------------------------------------------------------------------------------
  function my_search_repeat(ort, strasse, hausnummer, seite) {
    document.getElementById("Suchergebnis").style.display = "none";
    document.getElementById("Suchergebnis").src=SuchServer+"Suche?ort="+ort+"&strasse="+strasse+"&hausnr="+hausnummer+"&seite="+seite;
  }



// ------------------------------------------------------------------------------------------------------------------
//   - Aufruf im Suche.java
//   - oeffnet das Suchfenster
// ------------------------------------------------------------------------------------------------------------------
  function my_search_show() {
    document.getElementById("Suchergebnis").style.display = "inline";
  }

// ------------------------------------------------------------------------------------------------------------------
//   - Aufruf in suche.js
//   - schliesst dasSuchfenster (roter Exit - Button)
// ------------------------------------------------------------------------------------------------------------------
  function my_search_close() {
    document.getElementById("divSuchergebnis").style.display = "none";
//    if (minimap_is_open) document.getElementById("divMinimapFrame").style.display = "inline";
  }

// ------------------------------------------------------------------------------------------------------------------
//   - Aufruf in Suche.java
//   - schliessen des Suchfensters
//   - zentrieren der Karte auf ausgewaehltes Suchergebnis anhand der Koordinaten
// ------------------------------------------------------------------------------------------------------------------
  function my_center_on_coord(x,y,name) {
    my_search_close();
    var pos = my_getXYSc();
    pos[0]=parseFloat(x);
    pos[1]=parseFloat(y);
    my_repaintXYSc(pos[0], pos[1], suchergebnis_skala);
  }

  document.onkeypress = my_submit;