document.write('<link rel="stylesheet" type="text/css" href="http://onmaps.de/Suche/css/phpSuche.css" />');
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//  SuchTeil des myWMSClient (C) BT-GIS, 2006
//
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

// ########################################################
//  Bitte den Servlet-Server jeweils anpassen!
// ########################################################
  if(!poi_suche)      var poi_suche = 'false';
  if(!poi_db)         var poi_db = 'IKISS';
  if(!ikiss_ort)      var ikiss_ort='';
  if(!google_suche)   var google_suche='true';
  if(!srs)            var srs='31467';
  
  var SuchServer = "../../Suche/phpSuche.php?poi_suche="+poi_suche+"&poi_db="+poi_db+"&google_suche="+google_suche+"&srs="+srs;
  
  suchergebnis_skala = 10000;
  SuchButtonImg = new Image(); SuchButtonImg.src = "http://www.onmaps.de/Suche/images/Suche.gif";
  SuchExitImg = new Image(); SuchExitImg.src = "http://www.onmaps.de/Suche/images/ov_off.gif";
  search_iframe = true; // Oeffnet Suchergebnis in einem Iframe

  var SuchText  = new Array(); // Tooltips der Suchbuttons
  SuchText[0] = "Ort";
  SuchText[1] = "Suchbegriff/Strasse";
  SuchText[2] = "Starte Suche";
  SuchText[3] = "Suchergebnisse";
  SuchText[4] = "Öffne/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();this.style.backgroundColor=\'#EFF3FF\';" onblur="this.style.backgroundColor=\'#ffffff\';" onkeyup="javascript:sucheOrte(this.value)"></input>');
  document.write('    <input id="inputstrasse" name="strasse" type="text" value="'+SuchText[1]+'" onfocus="my_strasseselect();this.style.backgroundColor=\'#EFF3FF\';"  onblur="this.style.backgroundColor=\'#ffffff\';" class="textInput"></input>');
  document.write('    <input id="inputhausnummer" name="hausnummer" type="text" value="'+SuchText[6]+'" onfocus="my_hausnummerselect();this.style.backgroundColor=\'#EFF3FF\';"  onblur="this.style.backgroundColor=\'#ffffff\';" class="textInput"></input>');
  document.write('  </div>');
  document.write('    <div id="ausgabe"></div>');
  document.write('  <div id="divSuchButton"><img src="'+SuchButtonImg.src+'" onclick="my_search_open()" title="'+SuchText[2]+'"></div>');


// =====================================================
// Suchergebnis
// =====================================================
  document.write('<div id="SuchClose"><img onclick="scroll();" src="'+SuchExitImg.src+'" width=16 height=16 title="'+SuchText[4]+'"></div>');
  document.write('<div id="divSuchergebnis" style="height:0px;display:inline;">');
  document.write('  <div id="Suchtitle" style="display:none;">');
  document.write('    <div id="SuchTag">'+SuchText[3]+'</div>');
  document.write('  </div>');
  document.write('  <iframe name="IFrameSuchergebnis" id="Suchergebnis" frameborder="0" style="height:0px" scrolling="no"></iframe>');
  document.write('  <div id="divSuchInfo" style="display:none;">'+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();  
    myInputOrt = document.getElementById("inputort");
    if(myInputOrt.value == SuchText[0]) myInputOrt.value = '';
  }

// ------------------------------------------------------------------------------------------------------------------
//   - Aufruf in suche.js
//   - bei Klick in das Eingabefeld "Strasse/Suchbegriff" wird der Feldinhalt blau markiert
// ------------------------------------------------------------------------------------------------------------------
  function my_strasseselect() {
    document.getElementById('ausgabe').style.visibility = "hidden"; // Ortsliste ausblenden
    myInputStrasse = document.getElementById("inputstrasse");
    myInputStrasse.select();
    if(myInputStrasse.value == SuchText[1]) myInputStrasse.value = '';
  }

// ------------------------------------------------------------------------------------------------------------------
//   - Aufruf in suche.js
//   - bei Klick in das Eingabefeld "Hausnummer" wird der Feldinhalt blau markiert
// ------------------------------------------------------------------------------------------------------------------
  function my_hausnummerselect() {
    myInputHausnr = document.getElementById("inputhausnummer");
    myInputHausnr.select()
    if(myInputHausnr.value == SuchText[6]) myInputHausnr.value = '';
  }
  
  function get_my_hausnummer() {
    return document.getElementById("inputhausnummer").value;
  }

// ------------------------------------------------------------------------------------------------------------------
//   - 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() {
    document.getElementById('ausgabe').style.visibility = "hidden"; // Ortsliste ausblenden
    var myInputOrt = document.getElementById("inputort").value;
    if(myInputOrt==SuchText[0] && ikiss_ort != '') {   
            myInputOrt = ikiss_ort; 
         }
    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(myInputOrt.length < 3 || myInputOrt == SuchText[0]) {
            alert(unescape("Der Suchbegriff für den Ort muss mindestens 3 Zeichen Lang sein.\nBitte %E4ndern Sie Ihre Anfrage!"));
        }
        //else if(myInputStrasse.length < 3 || myInputStrasse == SuchText[1]) {
        //    alert(unescape("Der Suchbegriff für die Strasse muss mindestens 3 Zeichen Lang sein.\nBitte %E4ndern Sie Ihre Anfrage!"));
        //}
        else{
          if(myInputStrasse == SuchText[1]) myInputStrasse = "";
          if(myInputHausnr == SuchText[6]) myInputHausnr = "";
           if (search_iframe==true) {
             document.getElementById("divSuchergebnis").style.display = "inline";
             document.getElementById("Suchergebnis").style.display = "none";
             document.getElementById("Suchergebnis").src=SuchServer+"&ort="+myInputOrt+"&strasse="+(getPreparedParameter(myInputStrasse))+"&seite=1&hausnr="+(getPreparedParameter(myInputHausnr));
           }
           else {
            window.open(SuchServer+"&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+"?ort="+ort+"&strasse="+strasse+"&hausnr="+hausnummer+"&seite="+seite;
  }

// ------------------------------------------------------------------------------------------------------------------
//    - Funktionen zum Ein- und Ausblenden
// ------------------------------------------------------------------------------------------------------------------
var akt_hoehe = 0;
var hoehe_max = 500;
var hoehe_min = 0;
var spruenge = 35;

function scroll() {
  if(akt_hoehe >= hoehe_max) {
    my_search_close();
  }
  else {
    my_search_show();
  }
}

// ------------------------------------------------------------------------------------------------------------------
//   - Aufruf im Suche.java
//   - oeffnet das Suchfenster
// ------------------------------------------------------------------------------------------------------------------
  function my_search_show() {
    var div1 = document.getElementById("divSuchergebnis");
    var div2 = document.getElementById("Suchergebnis");
    var div3 = document.getElementById("divSuchInfo");
    var div4 = document.getElementById("Suchtitle");
    
    div1.style.display = "inline";
    div2.style.display = "inline"; // Suchergebnisse einblenden
    div3.style.display = "inline";
    div4.style.display = "inline";
    
    smoothout_Suche();
  }
  
    function smoothout_Suche() {
      var div1 = document.getElementById("divSuchergebnis");
      var div2 = document.getElementById("Suchergebnis");
      var div3 = document.getElementById("divSuchInfo");
  
      if(akt_hoehe < hoehe_max)
      {
        akt_hoehe += spruenge;
        try { 
          div1.style.height = akt_hoehe;
          div2.style.height = akt_hoehe-35;
        }catch (e) {}
        aktiv = window.setTimeout("smoothout_Suche()",0.25);
      }
      else {
        try {
          div3.style.display = "none";  // Hinweistext "Suche wird durchgeführt" ausblenden
        }catch (e) {}
      }
    }

// ------------------------------------------------------------------------------------------------------------------
//   - Aufruf in suche.js
//   - schliesst dasSuchfenster (roter Exit - Button)
// ------------------------------------------------------------------------------------------------------------------
  function my_search_close() {
    var div1 = document.getElementById("divSuchergebnis");
    var div2 = document.getElementById("Suchergebnis");
    var div3 = document.getElementById("divSuchInfo");
    var div4 = document.getElementById("Suchtitle");

    if(akt_hoehe > hoehe_min)
    {
      akt_hoehe -= spruenge;
      try {
        div1.style.height = akt_hoehe;
        div2.style.height = akt_hoehe-35;
      }catch (e) {}
      aktiv = window.setTimeout("my_search_close()",0.25);
    }
    else {
      try {
        div1.style.display = "none";
        div2.style.display = "none";
        div4.style.display = "none";
      }catch (e) {}
    }
  }

// ------------------------------------------------------------------------------------------------------------------
//   - 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);
    my_setMarker(pos[0], pos[1],suchergebnis_skala,name); 
  }

  document.onkeypress = my_submit;

// ------------------------------------------------------------------------------------------------------------------
// Ajax

	var xmlHttp = null;
    var wert_global = "";
    function sucheOrte(wert) {
      wert_global = wert;
      document.getElementById('inputort').focus();
      if (window.ActiveXObject) {
        try {
          xmlHttp= new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
          try {
            xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) {
          }
        }
      } else if (window.XMLHttpRequest) {
        try {
          xmlHttp= new XMLHttpRequest();
        } catch (e) {
        }
      }
 
    
      if (xmlHttp) {
        xmlHttp.open('GET', '../../Suche/ort_suche.php?q=' + wert, true);
        xmlHttp.onreadystatechange = daten;
        xmlHttp.send(null);
      }
    }

    var text = '';
    var textteile = new Array();

    function daten() {
      var ausgabe = '';

      if (xmlHttp.readyState == 4) {
        text = xmlHttp.responseText;
        if (text != "") {
          text = decodeURIComponent(text);
          textteile = text.split(";");
          for (var teil in textteile) {
            ausgabe += '<div style="width:130px; height:13px;" onmouseover="this.style.backgroundColor=\'#EFF3FF\';" onmouseout="this.style.backgroundColor=\'#ffffff\';" onclick="wert_mark('+teil+')">'+ textteile[teil] + "</div>";
          }
          document.getElementById('ausgabe').innerHTML = ausgabe;
        }
        if (ausgabe != "") {
          document.getElementById('ausgabe').style.visibility = "visible";
        } else {
          document.getElementById('ausgabe').style.visibility = "hidden";
        }
      }
    }
    function wert(teil) {
       if (textteile[teil] != null && textteile[teil] != "") {
         var inputort = document.getElementById('inputort');
         inputort.value = textteile[teil];
         inputort.focus();   
       }
    }    
    function wert_mark(teil) {
       if (textteile[teil] != null && textteile[teil] != "") {
         var inputort = document.getElementById('inputort');
         var start = wert_global.length;
         var laenge = textteile[teil].length;
         inputort.value = textteile[teil];
         if (inputort.createTextRange) {         
           var Auswahl = inputort.createTextRange();
           Auswahl.moveStart("character", start);
           Auswahl.moveEnd("character", laenge - start);
           Auswahl.select();
         } else if (inputort.setSelectionRange) {
           inputort.setSelectionRange(start, laenge);
         }
         //inputort.focus();   
         document.getElementById('ausgabe').style.visibility = "hidden";
         document.getElementById('inputstrasse').focus();
         document.getElementById('inputstrasse').select();
       }
    }
// ------------------------------------------------------------------------------------------------------------------
