function setStadtDaten()
{
  if( xajax.requestIsRunning() ) {
    // Dau-Schutz
    return false;
  }
  if(xajax.isObject('stoid')) {
    xajax.setVal('stoid', '');
    xajax.hideTag('stoid');
  }
  content_id = '';
  if(arguments.length > 0 && arguments[0] != '')
    {
      // nur diese objekte sollen angepasst werden
      content_id = arguments[0];
    }
  var stadtobj = 'stadt_id';
  if(arguments.length > 1 && arguments[1] != '')
    {
      // nur diese objekte sollen angepasst werden
      stadtobj = arguments[1];
    }
  hal2ajax_setStadtDaten(xajax.getVal(stadtobj),0,content_id);
  var standort_id = xajax.getVal('preselected_stoid');
  if(standort_id) {
    displayPreselectedStandort(standort_id);
  }
  return true;
}

/**
 * Vorbelegten Standort anzeigen
 */
function displayPreselectedStandort(standort)
{
  hal2ajax_getStandortDetails(standort,xajax.getFormValues('formsearch'));
  clearFernVerkehrInputs();
}
/**
 * Abhörstatus vorbelegen
 */
function setAbhoerStatus() {
  radioObj = xajax.$('abhoer_erfolg_success');
  zuOrdnBtn = xajax.$('std_zuordnen');
  if(xajax.getVal('stoid') != ''){
    radioObj.checked = true;
    zuOrdnBtn.disabled = false;
    if(xajax.$('zuordnung_tempstd').style.visibility == 'visible') {
      switch2TempStd(false);
    }
  } else {
    radioObj.checked = false;
  }
}
/**
 * Strassen suchen
 */
function searchStrasse(inputObj) {
  if( xajax.requestIsRunning() ) {
    // Dau-Schutz
    return false;
  }
  var inputID = inputObj.id;
  var inputStr = inputObj.value;
  var key = xajax.getVal('key');
  var entleihe = false;
  params = new Array();
  params['search_str'] = inputStr;
  params['stadt_id'] = xajax.getVal('stadt_id');
  params['key'] = key;
  if(arguments.length > 1)
  {
    params['strasse_id'] = arguments[1];
  }  
  switch(inputID) {
  case 'input_strasse1':
    params['content_id'] = 1;
    break;
  case 'input_strasse2':
    params['content_id'] = 2;
    break;
  case 'strinput':
    params['content_id'] = 3;
    break;
  default:
    // used by kreuzungverwaltung
    var contId = inputID.split('-');
    params['stadt_id'] = xajax.getVal('krz_stadt_id');
    params['content_id'] = contId[1];
    break;
  }
  if(xajax.isObject('bikenr')) {
    entleihe = true;
    var bike = xajax.getVal('bikenr');
    params["bikenr"] = bike;
    params["stadt_id"] = false;
    if(params["bikenr"] == '') {
      alert('Bitte ein Bike angeben!');
      return false;
    }
  } else {
    if(params["stadt_id"] == 'ALL' || params["stadt_id"] == '')
      {
          alert('Bitte eine Stadt auswählen!');
          return false;
      }
  }
  hal2ajax_setStrassenSelect(params, 0);
}

/**
 * Kreuzung suchen
 */
function searchKreuzung()
{
  // Parameter aufsammeln
  var params = xajax.getFormValuesByParams('stadt_id'
             ,'strinput1'
             ,'strinput2'
             ,'geopos_range'
             ,'std_ortsteil');
  hal2ajax_searchKreuzung(params);
}
/**
 * Parameter für die Standortsuche
 * used in schadenverwaltung
 */
function getStandortSearchParams()
{
  return xajax.getFormValuesByParams('stoinput','stadt_id','std_schadenverwaltung','key');
}
/**
 * Parameter für Standort-Speichern zusammenstellen
 */
function getStandortParams() {
  return xajax.getFormValuesByParams('stadt_id'
             ,'preselect_strasse1'
             ,'preselect_strasse2'
             ,'stoid'
             ,'preselected_stoid'
             ,'std_zusatz'
             ,'std_plz'
             ,'std_ani'
             ,'std_ortsteil'
             ,'key'
             ,'std_krz_id'
             ,'krz_id'
             ,'std_typ'
             ,'std_koord_x'
             ,'std_koord_y'
             ,'std_max_standzeit_h'
             );
}
/**
 * Kreuzungsdaten zusammenstellen zum speichern der Kreuzung, Zuordnung Krz->Sto
 */
function getKreuzungParams() {
  return xajax.getFormValuesByParams('key'
             ,'krz2std_id'
             ,'krz_innerhalb'
             ,'krz_plz'
             ,'krz_typ'
             ,'krz_ortsteil'
             ,'krz_id'
             ,'std_krz_id'
             ,'stoid');
}
/**
 * Kreuzungdaten für kreuzungsverwaltung zusammenstellen
 */
function getKreuzungData() {

  return xajax.getFormValuesByParams('key'
             ,'krz_stadt_id'
             ,'krz_id'
             ,'krz_plz'
             ,'krz_typ'
             ,'krz_innerhalb'
             ,'krz_x'
             ,'krz_y'
             ,'krz_ortsteil');
}
/**
 * Standort-Kreuzungsdaten anzeigen, oder neu anlegen
 */
function confirmKrzData() {
  if( xajax.requestIsRunning() ) {
    // Dau-Schutz
    return false;
  }
  if(xajax.getVal('std_krz_id') != '') {
    hal2ajax_getKreuzungDetails(xajax.getFormValues('formsearch'), getStandortParams());
  } else if(confirm('Dieser Standort ist noch keiner Kreuzung zugeordnet!\nMöchten Sie dem Standort eine Kreuzung zuordnen?')) {
    hal2ajax_getKreuzungDetails(xajax.getFormValues('formsearch'), getStandortParams());
  } else {
    xajax.hideTag('krz_editform');
    xajax.showTag('std_editform');
  }
}

/**
 * Daten für das Ändern/Hionzufügen von Fernverkehrsdaten
 */
function SetOrChangeFernverkehr() {
  if( xajax.requestIsRunning() ) {
    // Dau-Schutz
    return false;
  }
  var std_fernverkehr_id = xajax.getVal('std_fernverkehr_id');
  if(std_fernverkehr_id == 'neu' || std_fernverkehr_id == '') {
    hal2ajax_setFernverkehr(xajax.getFormValuesByParams('stoid','preselected_stoid','std_fernverkehrtext','std_fernverkehr_name','fernverkehr_id','key'));
  } else {
    hal2ajax_changeFernverkehr(xajax.getFormValuesByParams('std_fernverkehr_id','stoid','preselected_stoid','std_fernverkehrtext','std_fernverkehr_name','fernverkehr_id','key'));
  }
}

/**
 * Fernverkehr-Eingabefelder leeren
 */
function clearFernVerkehrInputs() {
  xajax.setVal('fernverkehr_id', 0);
  xajax.setVal('std_fernverkehr_name', '');
  xajax.setVal('std_fernverkehrtext','');
  xajax.setVal('std_fernverkehr_id', 'neu');
}

/**
 * Funktionen für Standortzuordnung/Buchungen ohne Standort
 */

/**
 * Buchungsdaten für Standortsuche setzen
 */
function setBuchungsData(buchung_id, bike_id, kunde_id, bikenummer) {
  if(xajax.setVal('zuordnung_buchung_id', buchung_id)
     && xajax.setVal('zuordnung_bike_id', bike_id)
     && xajax.setVal('zuordnung_kunde_id', kunde_id)
     && xajax.setVal('bikenr', bikenummer)
    ) 
   {
    xajax.showTag('zuordnung_stdsuche');
    var meldungObj = xajax.$('zuordnung_txt');
    meldungObj.innerHTML = '';
    /* alle anderen vorhergehenden Eingaben leern */
    // 1. Standortliste
    xajax.setVal('stoinput','');
    xajax.$('stoliste').innerHTML = '';
    // 2. Abhörstatus
    xajax.$('abhoer_erfolg_success').checked = false;
    xajax.$('abhoer_erfolg_unverst').checked = false;
    xajax.$('abhoer_erfolg_nichts').checked = false;
    // 3. temp.Standort
    cleanUpTempStandort();
    return true;
  }
  return false;
}
/**
 * Engabefelder für temp. Standort bereinigen
 */
function cleanUpTempStandort()
{
  xajax.setVal('std_strasse1','');
  xajax.setVal('std_strasse2','');
  xajax.setVal('input_strasse1','');
  xajax.setVal('input_strasse2','');
  xajax.$('strasse_content1').innerHTML = '';
  xajax.$('strasse_content2').innerHTML = '';
  xajax.setVal('std_zusatz', '');
}
/**
 * Standortsuch-Daten leeren
 */
function cleanUpStandortSearch()
{
  xajax.setVal('stoinput','');
  xajax.$('stoliste').innerHTML = '';
}
/**
 * Alle StandortDaten(temp + Standort) bereinigen
 */
function cleanUpAllStandortData()
{
  cleanUpTempStandort();
  cleanUpStandortSearch();
}
/**
 * TT/Schaden-fenster aufrufen
 */
function displaySchadenfenster(key)
{
  var kunde_id = xajax.getVal('zuordnung_kunde_id');
  var buchung_id = xajax.getVal('zuordnung_buchung_id');
  var bike_id = xajax.getVal('zuordnung_bike_id');
  if(!kunde_id || !buchung_id || !bike_id) {
    alert('Bitte eine Fahrt auswählen(abhören)!');
    return false;
  }
  f_schadenerstell_fenster(bike_id,key,buchung_id);
}
/**
 * Parameter für die Standortzuordnung
 */
/**
 * Parameter für Standort-Speichern zusammenstellen
 */
function getStandortZuordnungParams() {
  return xajax.getFormValuesByParams('stadt_id'
             ,'stoid'
             ,'key'
             ,'zuordnung_buchung_id'
             ,'abhoer_erfolg_unverst'
             ,'abhoer_erfolg_nofile'
             ,'abhoer_erfolg_success'
             ,'abhoer_erfolg_nichts'
             ,'status_abgehoert'
             ,'reset_zuordnung_data'
             ,'temporaer'
             ,'aktuell'
             ,'sortorder_up'
             ,'autopml'
             ,'startstandort'
             ,'changeOtherBookingStandort'
             ,'x_tage'
             );
}
/**
 * Abfrage ob autom. AusserhaltPML geschrieben werden soll
 */
function confirmAutoPML(calledfrom)
{
  if(confirm('Der Standort liegt ausserhalb!\nSoll automatisch ein entspr. PML-Eintrag erzeugt werden?'))
    {
      xajax.setVal('autopml', 'J');
    }
  else
    {
      xajax.setVal('autopml', 'N');
    }
  switch(calledfrom) {
  case 'tempstd':
    setTempStandort();
    break;
  default:
    setStandort();
    break;
  }
}
/**
 * temp. Standort einer Buchung zuordnen
 */
function setTempStandort()
{
  if( xajax.requestIsRunning() ) {
    // Dau-Schutz
    return false;
  }
  var fehler = false;
  if(xajax.getVal('stadt_id') == '0') {
    fehler = 'Bitte eine Stadt auswählen!';
  }
  if(!xajax.getVal('zuordnung_buchung_id')) {
    fehler = 'Bitte eine Fahrt auswählen!';
  }
  /**
   * für einen temp. Standort werden IMMER folgende Daten benötigt:
   * - beide Strassen, wenn Beschreibung leer
   * - oder mindestens die Beschreibung
   */
  if((!xajax.getVal('preselect_strasse2') || '' == xajax.getVal('preselect_strasse2'))
     && (!xajax.getVal('preselect_strasse1') || '' == xajax.getVal('preselect_strasse2'))
     )
    {
      if(!xajax.getVal('std_zusatz') || xajax.getVal('std_zusatz') == '')
  {
    fehler = 'Bitte eine Beschreibung eintragen!';
  }
    }

  if(fehler)
    {
      alert(fehler);
      return false;
    }
  var datenArr = xajax.getFormValuesByParams('stadt_id'
               ,'key'
               ,'zuordnung_buchung_id'
               ,'abhoer_erfolg_unverst'
               ,'abhoer_erfolg_success'
               ,'abhoer_erfolg_nichts'
               ,'preselect_strasse1'
               ,'preselect_strasse2'
               ,'std_zusatz'
               ,'autopml'
               ,'temporaer'
               ,'aktuell'
               ,'sortorder_up'
               ,'startstandort'
               ,'changeOtherBookingStandort'
               ,'x_tage'
               ,'status_abgehoert'
               );
  hal2ajax_setTempStd(datenArr);
  // autopml für nächste Abfrage zurücksetzen
  xajax.setVal('autopml', '-1');
}
/**
 * Standort-ID zu einer Buchung setzen
 */
function setStandort()
{
  if( xajax.requestIsRunning() ) {
    // Dau-Schutz
    return false;
  }
  var fehler = false;
  if(!xajax.getVal('zuordnung_buchung_id')) {
    fehler = 'Bitte eine Fahrt auswählen!';
  }
  if("" == xajax.getVal('stoid')
     && xajax.$('abhoer_erfolg_unverst').checked == false
     && xajax.$('abhoer_erfolg_nichts').checked == false
     ) {
    fehler = 'Bitte einen Standort auswählen!';
  }
  if(fehler) {
    alert(fehler);
    return false;
  }
  //ok, Standort wird zugeordnet -> erfolg
  if(xajax.$('abhoer_erfolg_unverst').checked != true && xajax.$('abhoer_erfolg_nichts').checked != true) {
    xajax.$('abhoer_erfolg_success').checked = true;
  }
  hal2ajax_SetStandortForBuchung(getStandortZuordnungParams());
  // autopml für nächste Abfrage zurücksetzen
  xajax.setVal('autopml', '-1');
}
/**
 * Umschalten von normaler Standortzuordnung zur temp. Standort-Zuordnung
 */
function switch2TempStd(ignore_buchung)
{
  if(!xajax.getVal('zuordnung_buchung_id') && ignore_buchung == false) {
    alert('Bitte eine Fahrt auswählen!');
    return false;
  }
  if(true == xajax.switchTag('zuordnung_tempstd'))
    {
      xajax.setVal('stoinput','');
      if(xajax.isObject('stoid')) {
  xajax.$('stoliste').innerHTML = '';
      }
      xajax.setVal('abhoer_erfolg_success', 'erfolg');
      xajax.lockInputfield('std_zuordnen');
    }
  else
    {
      xajax.unlockInputfield('std_zuordnen');
    }
  /* mit Klicken auf Switchbutton sollen Daten immer geleert werden Bug11183 */
  cleanUpTempStandort();
}

/**
 * Anzeige der Fahrten
 */
function showFahrten(start)
{
  if( xajax.requestIsRunning() ) {
    // Dau-Schutz
    return false;
  }
  if(xajax.getVal('stadt_id') == '0') {
    alert('Bitte eine Stadt auswählen!');
    return false;
  }
  hal2ajax_listBuchungenOhneStandort(xajax.getFormValues('cabform'),'0',start);
}
function setDefaultTage()
{
  if(xajax.$('status_abgehoert').checked == true) {
    xajax.$('x_tage').value=30;
  } else if(xajax.$('temporaer').checked == true) {
    xajax.$('x_tage').value=30;
  } else {xajax.$('x_tage').value=10; }
  return true;
}
/**
 * Standortsuche
 */
function suche()
{
  if( xajax.requestIsRunning() ) {
    // Dau-Schutz
    return false;
  }
  return true;
}
/**
 * This array is used to remember mark status of rows in browse mode
 */
var marked_row = new Array;


/**
 * Sets/unsets the pointer and marker in browse mode
 *
 * @param   object    the table row
 * @param   integer  the row number
 * @param   string    the action calling this script (over, out or click)
 * @param   string    the default background color
 * @param   string    the color to use for mouseover
 * @param   string    the color to use for marking a row
 *
 * @return  boolean  whether pointer is set or not
 */
function setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor)
{
    var theCells = null;

    // 1. Pointer and mark feature are disabled or the browser can't get the
    //    row -> exits
    if ((thePointerColor == '' && theMarkColor == '')
        || typeof(theRow.style) == 'undefined') {
        return false;
    }

    // 2. Gets the current row and exits if the browser can't get it
    if (typeof(document.getElementsByTagName) != 'undefined') {
        theCells = theRow.getElementsByTagName('td');
    }
    else if (typeof(theRow.cells) != 'undefined') {
        theCells = theRow.cells;
    }
    else {
        return false;
    }

    // 3. Gets the current color...
    var rowCellsCnt  = theCells.length;
    var domDetect    = null;
    var currentColor = null;
    var newColor     = null;
    // 3.1 ... with DOM compatible browsers except Opera that does not return
    //         valid values with "getAttribute"
    if (typeof(window.opera) == 'undefined'
        && typeof(theCells[0].getAttribute) != 'undefined') {
        currentColor = theCells[0].getAttribute('bgcolor');
        domDetect    = true;
    }
    // 3.2 ... with other browsers
    else {
        currentColor = theCells[0].style.backgroundColor;
        domDetect    = false;
    } // end 3

    // 3.3 ... Opera changes colors set via HTML to rgb(r,g,b) format so fix it
    if (currentColor.indexOf("rgb") >= 0)
    {
        var rgbStr = currentColor.slice(currentColor.indexOf('(') + 1,
                                     currentColor.indexOf(')'));
        var rgbValues = rgbStr.split(",");
        currentColor = "#";
        var hexChars = "0123456789ABCDEF";
        for (var i = 0; i < 3; i++)
        {
            var v = rgbValues[i].valueOf();
            currentColor += hexChars.charAt(v/16) + hexChars.charAt(v%16);
        }
    }

    // 4. Defines the new color
    // 4.1 Current color is the default one
    if (currentColor == ''
        || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {
        if (theAction == 'over' && thePointerColor != '') {
            newColor              = thePointerColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
            // Garvin: deactivated onclick marking of the checkbox because it's also executed
            // when an action (like edit/delete) on a single item is performed. Then the checkbox
            // would get deactived, even though we need it activated. Maybe there is a way
            // to detect if the row was clicked, and not an item therein...
            // document.getElementById('id_rows_to_delete' + theRowNum).checked = true;
        }
    }
    // 4.1.2 Current color is the pointer one
    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()
             && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {
        if (theAction == 'out') {
            newColor              = theDefaultColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
            // document.getElementById('id_rows_to_delete' + theRowNum).checked = true;
        }
    }
    // 4.1.3 Current color is the marker one
    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
        if (theAction == 'click') {
            newColor              = (thePointerColor != '')
                                  ? thePointerColor
                                  : theDefaultColor;
            marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])
                                  ? true
                                  : null;
            // document.getElementById('id_rows_to_delete' + theRowNum).checked = false;
        }
    } // end 4

    // 5. Sets the new color...
    if (newColor) {
        var c = null;
        // 5.1 ... with DOM compatible browsers except Opera
        if (domDetect) {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].setAttribute('bgcolor', newColor, 0);
            } // end for
        }
        // 5.2 ... with other browsers
        else {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].style.backgroundColor = newColor;
            }
        }
    } // end 5

    return true;
} // end of the 'setPointer()' function

//Funktion die den Standort in den Aufruf aus der Bikeverwaltung zurück gibt
function setStandortToBikeInfo()
{
    var standort_id = 0;
    var closeWin = false;
    if( xajax.isObject('stoid'))
    {
        standort_id = xajax.getVal('stoid');
        opener.getStandortDetails(standort_id);
        closeWin = confirm('Der Standort wurde übernommen,\nSoll diesen Fenster nun geschlossen werden?');
    }
    else
     {
         alert('Sie haben keinen Standort zum übernehmen ausgewählt!');
     }
     if(closeWin == true)
    {
        window.close();
    }
}
/**
 * Kreuzungsverwaltung
 * Daten umsetzen
 */
function setOrtsteile(stadt, content_id)
{
  // alle Kreuzungsdaten leeren
  var callback = '';
  if(content_id == 'meta_ortsteilcontent')
    {
      callback = 'setStandortFirmen()';
    }
  hal2ajax_setOrtsteile(stadt,content_id,0,callback);
}
/**
 * Ortsteil speichern/anlegen
 */
function saveOrtsteil()
{
  var data = xajax.getFormValuesByParams('ortsteil_id'
           ,'ortsteil_name'
           ,'stadt_id'
           ,'key'
           );
  hal2ajax_saveOrtsteil(data);
}
/**
 * Ortsteilselects leeren
 */
function neuerOrtsteil()
{
  xajax.setVal('ortsteil_id','-1');
  xajax.setVal('ortsteil_name','');
}
/**
 * Ortsteile nach kreuzung
 */
function setKrzOrtsteile(content_id)
{
  var krz_stadt_id = xajax.getVal('krz_stadt_id');
  setOrtsteile(krz_stadt_id, content_id);
}
/**
 * Daten bereinigen und Formular zum Anlegen einer neuen Kreuzung darstellen
 */
function neueKreuzung()
{
  // todo: Formular bereinigen
  var stadt_id = xajax.getVal('stadt_id');
  var ortsteil_id = xajax.getVal('std_ortsteil');

  var strassenObj = xajax.$('strassentable');

  xajax.setVal('krz_stadt_id',stadt_id);
  setKrzOrtsteile('ortsteilcontent');

  xajax.setVal('krz_plz','');
  xajax.setVal('krz_id','');
  xajax.setVal('krz_typ','kreuzung');
  xajax.setVal('krz_x','');
  xajax.setVal('krz_y','');

  strassenObj.innerHTML = ''; // hinzufügen muß dennoch möglich sein

  xajax.showTag('krz_editform');
}

function neuMetastandort()
{
  var stadt_id = xajax.getVal('stadt_id');
  var ortsteil_id = xajax.getVal('ortsteil_id');

  var standortObj = xajax.$('standorttable');

  xajax.setVal('meta_stadt_id', stadt_id);
  setOrtsteile(stadt_id, 'meta_ortsteilcontent');
  setStandortFirmen();
  xajax.setVal('meta_id','');
  xajax.setVal('meta_referenznr','');
  xajax.setVal('meta_name','');
  xajax.setVal('meta_beschreibung','');

  standortObj.innerHTML = '';
  xajax.showTag('meta_editform');
}
/**
 * Standortfirmen einer Stadt setzen
 * @param   stadt_id
 */
function setStandortFirmen()
{
  var params = {"key": xajax.getVal('key'),"stadt_id":xajax.getVal('meta_stadt_id')};
    hal2ajax_fillStandortFirmaSelect(params,false);
}
/**
 * Daten des Metastandorts im Edit-Formular
 * als XML zurückgeben
 */
function getMetastandortData()
{
  return xajax.getFormValuesByParams('meta_stadt_id'
             ,'key'
             ,'meta_id'
             ,'meta_referenznr'
             ,'meta_name'
             ,'meta_beschreibung'
             ,'meta_min'
             ,'meta_max'
             ,'meta_soll'
             ,'meta_meldeschwelle'
             ,'meta_neben'
             ,'meta_ortsteil'
             ,'meta_firma_id'
             ,'meta_feste_stellplaetze'
			 ,'meta_feldstaerke'
             );
}

/**
 * Standortverwaltung -> Standort vom Metastandort entfernen
 */
function removeFromMetastandort()
{
  var standort = '';
  if(xajax.getVal('stoid')) { standort = xajax.getVal('stoid');}
  else if(xajax.getVal('preselected_stoid')) { standort = xajax.getVal('preselected_stoid'); }
  if('' != standort) {
    hal2ajax_removeStandort(standort, getStandortMetastandortData(), 'standorte');
    return true;
  }
  alert('Bitte einen Standort auswählen!');
  return false;
}
/**
 * Metastandorte
 * Daten umsetzen
 */
function setMetaOrtsteile(stadt, content_id)
{
  // alle Kreuzungsdaten leeren
  hal2ajax_setOrtsteile(stadt,content_id);

  hal2ajax_setMetastandorte(xajax.getFormValuesByParams('stadt_id','std_ortsteil','meta_id'));
}
/**
 *
 */
function getStandortSearchData()
{
  return xajax.getFormValuesByParams('meta_stadt_id'
             ,'key'
             ,'std_verwaltung'
             ,'stoinput');
}

function getStandortMetastandortData()
{
  return xajax.getFormValuesByParams('meta_id'
             ,'key'
             ,'stoid');
}

/**
 * Strassendetails vorausfüllen, soweit geht...
 */
function getStrasseDetails(strasse_id)
{
  if(!strasse_id) {
    alert('Bitte eine Strasse auswählen!');
    return false;
  }
  var key = xajax.getVal('key');
  hal2ajax_fillStrasseData(strasse_id, key);
}
/**
 * Felder für neue Strasse leeren
 */
function neueStrasse()
{
  xajax.setVal('strasse_name','');
  xajax.setVal('str_id','');
  xajax.setVal('strinput','');
  xajax.$('strasse_content3').innerHTML = '';
  xajax.hideTag('qaddress_ergebnis');
}

/**
 * Strasse speichern/anlegen
 */
function saveStrasse()
{
  var strassendata = xajax.getFormValuesByParams('strasse_name'
             ,'str_id'
             ,'stadt_id'
             ,'key');
  hal2ajax_saveStrasse(strassendata);
}
/**
 * Strasse via QAddress prüfen
 */
function strassePruefen()
{
  var strassendata = xajax.getFormValuesByParams('strasse_name'
             ,'stadt_id'
             ,'key');
  var stadtname = xajax.getVal('stadt_id','inhalt');
  hal2ajax_checkStrasse(strassendata, stadtname);
}
/**
 * in Popups andere Module öffnen
 */
function openStandortEdit(standort_id, key)
{
  window.open('/stationsverw/cabstation_auswahl.php?key='+key+'&popup=y&stoid='+standort_id,createWindowName('Standort',key),'width=800, height=600,resizable=yes,scrollbars=yes,toolbar=no');
}

function openMetastandort(key)
{
  var meta_id = xajax.getVal('meta_id');
  // alert('Key: '+key+'\nMeta-ID: '+meta_id);
  if(meta_id != '' && meta_id != 'undefined')
    {
      window.open('/stationsverw/cabmetastandorte.php?key='+key+'&popup=y&metastandort_id='+meta_id,createWindowName('Metastandort',key),'width=800, height=600,resizable=yes,scrollbars=yes,toolbar=no');
    }
}

function playflash(file_id, key)
{
  iframeObj = xajax.$('player_frame');
  iframeObj.src = '/cc-common/fplayer.php?key='+key+'&fileid='+file_id;
}
/**
 * wenn Popup -> kann der Opener gereloaded werden
 */
function reloadOpener()
{
  if(xajax.isObject('popup') && xajax.getVal('popup') == 'y') {
    opener.location.reload();
  }
}
/**
 * Suchparameter für GGeoSearch
 */
function GeoSearchByParams() {
  if(xajax) {
    xajax.$('suchergebnisse').innerHTML = '';
    xajax.$('stoliste').innerHTML = '';
    var temp = new Array();
    var plz = '';
    var strasse = '';
    var input = xajax.$('stoinput').value;
    var key = xajax.getVal('key');
    if(input == '') {
        if(typeof waiter == 'object') {
            waiter.setWaiter(false);
        } else if(typeof xajax.waiter == 'object')
        {
            xajax.waiter.setWaiter(false);
        }
        // 'Bitte Sucheingabe machen!'
        var alert_txt = getLangText('ML_JAVASCRIPT_GMAP_SUCHEINGABE_AUFFORDERUNG');
        alert(alert_txt); return '';
    }
    if(xajax.$('stadt_id').type.search(/select.+/) != -1) {
        var stadt_name = xajax.getVal('stadt_id','inhalt');
    } else {
        var stadt_name = '';
        if(xajax.isObject('stadt_name')) {
            stadt_name = xajax.getVal('stadt_name');
        }
    }
    var stadt_id = xajax.getVal('stadt_id');

    if(stadt_name == '' || stadt_id <= '0')
    {
        if(typeof waiter == 'object')
        {
            waiter.setWaiter(false);
        }
        else if(typeof xajax.waiter == 'object')
        {
            xajax.waiter.setWaiter(false);
        }
        var alert_txt = getLangText('ML_JAVASCRIPT_STADTAUSWAHL_AUFFORDERUNG');
        alert(alert_txt);
        return '';
    }
    // Adress-Eingabe wird kommasepariert erwartet: Strasse Nr, PLZ
    var temp = input.split(',');
    strasse = temp[0];
    if(temp.length > 2) { plz = temp[1]; }
    // alert(temp.length+'\n'+stadt_name+', '+strasse+','+plz);
    ergebnisString = '';
    GeoErgebnis = false;
    if(CGeoObj) {
      // wenn Marker/Adresse gefunden wurde -> Callback aufrufen
      // setLinkFunction('hal2ajax_setStandortMarker');
      // displayErg('');
      // disableHelpText();
      // disableSetErgebnisMarker();
      strasse_nr = '';
      var adresse = "";
      if('' != strasse) { adresse += strasse; }
      if('' != strasse_nr) { adresse += ' '+strasse_nr; }
      if('' != plz) { adresse += ','+plz; if('' != stadt_name) { adresse += ' '+stadt_name; } } else {if('' != stadt_name) {adresse += ','+stadt_name; } }
      adresse += ',Germany'; // wir wollen nur in Deutschland suchen ^^
      CGeoObj.getLocations(adresse,
                           function (GeoErgebnis) {
                             ergebnisString = '';
                             if(GeoErgebnis.Status.code == G_GEO_SUCCESS) {
                               // alert(GeoErgebnis.Placemark[0].address);
                               ergebnisCount = GeoErgebnis.Placemark.length;
                               for(var i=0; i<ergebnisCount; i++) {
                                 var p = GeoErgebnis.Placemark[i].Point.coordinates;
                                 if(i==0) {
                                   // EIN Ergebnis -> Marker setzen und Standorte/Bikes suchen
                                   hal2ajax_setStandortMarker(p[0],p[1],0,stadt_id,key,input);
                                 }
                                 ergebnisString += "<br><a href='javascript: void(0);' onClick='javascript: hal2ajax_setStandortMarker(\""+p[0]+"\",\""+p[1]+"\",0,"+stadt_id+",\""+key+"\",\""+input+"\");'>"+(i+1)+": "+ GeoErgebnis.Placemark[i].address+"</a>";
                               }
                               displayErg(ergebnisString);
                             } else {
                               displayErg(''); // leer setzen
                               // keine Geo-Ergebniss -> wir versuchen die möglichen Standorte zu ermitteln
                               hal2ajax_getStandorte(xajax.getFormValues('formsearch'));
                             }
                           }
                           );

    }
  }
}
function gotoEntleihe(bike_id, key)
{
  parent.document.location.href = '/cab/entleihe.php?key='+key+'&auto_id='+bike_id;
}
function cleanSearchInputs()
{
  xajax.setVal('stoinput','');
  xajax.$('stoliste').innerHTML = '';
  xajax.$('suchergebnisse').innerHTML = '';
  xajax.$('kreuzung_liste').innerHTML = '';
}

