  /* NAVIGATION REITER */
  
  function searchReiter(reiter) {
    $('r-firma-l').className   = 'gr-reiter-grau-links';
    $('r-firma-m').className   = 'gr-reiter-grau-mitte';
    $('r-firma-r').className   = 'gr-reiter-grau-rechts';
    $('r-produkt-l').className = 'gr-reiter-grau-links';
    $('r-produkt-m').className = 'gr-reiter-grau-mitte';
    $('r-produkt-r').className = 'gr-reiter-grau-rechts';
    $('r-waswo-l').className   = 'gr-reiter-grau-links';
    $('r-waswo-m').className   = 'gr-reiter-grau-mitte';
    $('r-waswo-r').className   = 'gr-reiter-grau-rechts';
    $('search-form-firma').style.display   = 'none';
    $('search-form-produkt').style.display = 'none';
    $('search-form-waswo').style.display   = 'none';
    if(reiter == 'firma') {
      $('r-firma-l').className   = 'gr-reiter-rot-links';
      $('r-firma-m').className   = 'gr-reiter-rot-mitte';
      $('r-firma-r').className   = 'gr-reiter-rot-rechts';
      $('search-form-firma').style.display   = 'block';
    } else if(reiter == 'produkt') {     
      $('r-produkt-l').className = 'gr-reiter-rot-links';
      $('r-produkt-m').className = 'gr-reiter-rot-mitte';
      $('r-produkt-r').className = 'gr-reiter-rot-rechts';
      $('search-form-produkt').style.display = 'block';
    } else if(reiter == 'waswo') {
      $('r-waswo-l').className   = 'gr-reiter-rot-links';
      $('r-waswo-m').className   = 'gr-reiter-rot-mitte';
      $('r-waswo-r').className   = 'gr-reiter-rot-rechts';
      $('search-form-waswo').style.display   = 'block';
    }
    new Ajax.Request(inc_root + "ajax/navigation.save-tab.php?reiter=" + reiter + "&" + sess_id, {
      method: 'get',
      onComplete: function(require) {
        var data = require.responseText;
      }
    })
  }
  
  /* INPUT TEXTE */
  function inputTxtRemove(field) {
    if($(field)) {
      if(field == 'search-company' && $(field).value == 'Gesuchte Firma eingeben') {
        var new_value = '';
      } else if(field == 'search-product' && $(field).value == 'Gesuchtes Produkt eingeben') {
        var new_value = '';
      } else {
        var new_value = $(field).value; 
      }
      $(field).value       = new_value;
      $(field).style.color = '#000000';
    }
  }
  
  function inputTxtAdd(field) {
    if($(field)) {
      if($(field).value == '') {
        switch(field) {
          case 'search-company':
            var new_value = 'Gesuchte Firma eingeben';
            var new_color = '#CCCCCC'; 
            break;
          case 'search-product':
            var new_value = 'Gesuchtes Produkt eingeben';
            var new_color = '#CCCCCC';
            break;
          default:
            var new_value = '';
            var new_color = '#000000';
            break;
        }
        $(field).value       = new_value;
        $(field).style.color = new_color;
      }
    }
  }
  
  /* SEND FORM */
  
  //window.captureEvents(Event.KEYPRESS);
  function sendForm(kcode,formid) {
    if(kcode == 13) {
      $(formid).submit();
    }
  }
  
  /* AUTO COMPLETE */
  
  // Verarbeitung Eingabe
  function acHandle(ele) { 
    var val = $(ele).value;
    if(val.length > 1) {
      acLoad(ele);
    } else {     
      $(ele + '_div').style.display = 'none';
    }                                         
  }
  
  function acLoad(ele) {          
    var val = $(ele).value;
    new Ajax.Request(inc_root + 'ajax/autocompleter.get-' + ele + '.php?value=' + encodeURIComponent(val), {
      method: 'get',                 
      onComplete: function(require) {                
        var data = require.responseText;               
        if(data != '') {
          $(ele + '_div').style.display = 'block';   
          $(ele + '_list').innerHTML    = data;   
        } else {       
          $(ele + '_div').style.display = 'none';                           
        }      
      },       
      onFailure: function() {
        alert("Bei der Datenübertragung ist leider ein Fehler aufgetreten");
      }
    })
  }
  
  function acChoose(ele,val) {
    if(val != '') {
      $(ele).value = val;
    }
    $(ele + '_div').style.display = 'none';
  }

  function acHide(ele,e) {
    var eve = e.target ? e.target : e.srcElement;
    var field_check = 'search-field-where';
    var field_hide  = ele + '_div';
    if(eve.parentNode.parentNode.parentNode == null || 
       eve.parentNode.parentNode            == null || 
       eve.parentNode                       == null ||
       ( 
         eve.parentNode.parentNode.parentNode.id != field_check &&
         eve.parentNode.parentNode.id            != field_check &&
         eve.parentNode.id                       != field_check
       )
      ) {
      $(field_hide).style.display = 'none';
    }
  }
  
  function acInit(ele) {
    acHandle(ele);
    $(ele).setAttribute('autocomplete','off');
    var k = new acNavi(ele,$(ele + '_list'));
    k.init();
  }
  
  /* Suggest Navigierung */
  
  function acNavi(ele,obj) {
    
    var curElement  = new Array();
    var naviElement = new Array();
    curElement[ele]; 
    naviElement[ele];
    
    function replaceStrong(value) {
      value = value.replace(/<strong>/g,'');
      value = value.replace(/<STRONG>/g,'');
      value = value.replace(/<\/strong>/g,'');
      value = value.replace(/<\/STRONG>/g,'');
      return value;
    }
                       
    function keyPressed(evt) {
      switch(evt.keyCode) {
        case 38: // Pfeil hoch
          if(curElement[ele] && curElement[ele].previousSibling) {
            curElement[ele].className = null;
            curElement[ele] = curElement[ele].previousSibling;
            curElement[ele].className = 'hover-act';
            curElement[ele].scrollIntoView(false);
            var input_value = replaceStrong(curElement[ele].innerHTML);
            $(ele).value = input_value;
          }
          break;
        case 40: // Pfeil runter
          if(curElement[ele]) {
            if(curElement[ele].nextSibling) {
              curElement[ele].className = null;
              curElement[ele] = curElement[ele].nextSibling;
              curElement[ele].className = 'hover-act';
              curElement[ele].scrollIntoView(false);
              var input_value = replaceStrong(curElement[ele].innerHTML);
              $(ele).value = input_value;
            }
          } else {
            curElement[ele] = naviElement[ele].firstChild;
            var input_value = replaceStrong(curElement[ele].innerHTML);
            if(input_value != 'Keine Stadt gefunden') {
              curElement[ele].className = 'hover-act';
              $(ele).value = input_value;              
            }
          }
          break;
        case 13: // Enter
          //var input_value = curElement[ele].firstChild.firstChild.nodeValue
          //                + curElement[ele].lastChild.nodeValue;
          //console.log(ele);
          //console.log($(ele + '_div').style.display);
          if($(ele + '_div').style.display != 'block') {
            //console.log('submit');
            $('search-form-waswo').submit();
          } else if(curElement[ele]) {
            var input_value = replaceStrong(curElement[ele].innerHTML);
            acChoose(ele,input_value);
          } 
          break;
        default:
          curElement[ele] = null;
          acHandle(ele);
          return;
      }
    }
            
    this.init = function () {
      eventHandling($(ele),'keyup',keyPressed);
      naviElement[ele] = obj;
    }
  
  }
  
  /* EventHandling */

  function eventHandling(ele,type,callBack,returnParams) {       
    var returnParams = returnParams;        
    if(document.addEventListener) { // FF, Opera, Safari, ...
      if(type.match(/^on/)) {
        type = type.replace(/^on/,"");
      }
      ele.addEventListener(type,handleEvent,false);
    } else { // IE
      if(!type.match(/^on/)) {
        type = "on"+type;
      }
      ele.attachEvent(type,handleEvent);
    }
    function handleEvent(evt) {
      var event = (evt) ? evt : (window.event) ? window.event : '';
      if(event.stopPropagation) {
        event.stopPropagation();
      } else {
        event.cancelBubble = true;
      }
      var target = event.srcElement || event.currentTarget;
      callBack.call(callBack,event,target,(returnParams)?returnParams:null);
    }
  }
