/* 
=================================================
VARIABLEN
================================================
*/
var VAR_AF_MODUS_ABFAHRT_ZIEL;
var VAR_AF_MODUS_S_ABFAHRT;
var VAR_AF_MODUS_S_ZIEL;
var VAR_AF_MAX_ANZAHL_FAHRZEUGE;
var VAR_AF_MAX_ANZAHL_ADRESSEN;
var VAR_AF_HALTESTELLE_PFLICHT;
var VAR_AF_RECHNUNGSKUNDE_ANZEIGEN;
var VAR_AF_RECHNUNGSKUNDE_PFLICHT;
var VAR_AF_RECHNUNGSKUNDE_KOSTENSTELLE_ANZEIGEN;
var VAR_AF_RECHNUNGSKUNDE_KOSTENSTELLE_PFLICHT;
var VAR_AF_MAXANZ_ADRESSEN_ABFAHRT;
var VAR_AF_MAXANZ_ADRESSEN_ZIEL;
var VAR_AF_ANZ_ADRESSEN_GESAMT = 0;
var VAR_AF_ANZ_ADRESSEN_ABFAHRT = 0;
var VAR_AF_ANZ_ADRESSEN_ZIEL = 0;
var VAR_AF_DO_SOFORTANTWORT = 0;
var VAR_AF_BEARBEITEN = 0;
var VAR_AF_VONVORLAGE = 0;
var VAR_AF_GEAENDERT = 0;

var VAR_AF_EINGABEMODUS;
var CONST_AF_EINGABE_ADRESSE = 1;
var CONST_AF_EINGABE_HALTESTELLE = 2;
var VAR_AF_AKTUELLE_ADRESS_NR;
var VAR_AF_AKTUELLE_ADRESS_ART;
/*
================================================== 
FUNKTIONEN ZUM SETZEN DER FELDER
================================================== 
*/
function SetKunde(nr, subkunde_nr, text) {
   SetFieldValue('kunde_nr', nr);
   SetFieldValue('subkunde_nr', subkunde_nr);
   SetFieldValue('kunde_name', text);

}

function SetOrt(nr, text, plz, extern) {
   SetFieldValue('ort_nr', nr);
   SetFieldValue('ort_ortname',   text);
   if (plz != undefined) {
      SetFieldValue('ort_plz', plz);
   }
   SetFieldValue('ort_extern', extern);
}
function SetStrasse(nr, text) {
   SetFieldValue('strasse_nr', nr);
   SetFieldValue('strasse_name', text);
}

function SetEckstrasse(nr, text) {
   SetFieldValue('eckstrasse_nr', nr);
   SetFieldValue('hausnummer_ecke', text);
}

function SetHaltestellenzeit(nr, datum, uhrzeit) {
   SetFieldValue('haltestellezeit_nr', nr);
   SetFieldValue('hst_datum', datum);
   SetFieldValue('hst_uhrzeit', uhrzeit);
}

function ClearAdresse() {
   SetKunde('', '', '');
   SetOrt('', '', '', '');
   SetStrasse('', '');
   SetEckstrasse('', '');
//   SetHaltestellenzeit('', '', '');
   SetFieldValue('telefonnummer','');
   SetFieldValue('kostenstelle', '');
   SetFieldValue('ansprechpartner', '');  
   SetFieldValue('text', '');
   SetFieldValue('adress_nr', '');
   var sel = document.getElementById('haltestelle_nr');
   sel.selectedIndex = 0;
   
}

/* -----------------------------------------------------
Auftrag_Vorlage_OnChange
Wird aufgerufen wenn der Benutzer eine Vorlage ausgewaehlt hat.
--------------------------------------------------------*/

function AuftragVorlage_OnChange(aselbox, asid, afart) {
   var vorlage_nr = aselbox.options[aselbox.selectedIndex].value;
   if (vorlage_nr == '') {
      return false;
   }

   if (VAR_AF_GEAENDERT == 1) {
      PosElementToElementId('DIV_VORLAGE_GEAENDERT', 'fieldset_header');
      ShowElement('DIV_VORLAGE_GEAENDERT');
      return false;   
   }    
   var url = 'auftrag.html';
   url += '?sessionid=' + asid;
   url += '&afart=' + afart;
   url += '&vorlage_nr=' + vorlage_nr;
   location = url;
}

function AuftragVorlageGeaendertConfirm_OnClick(asid, afart) {
   var vorlage_nr = GetFieldValue('vorlage_nr');
   var url = 'auftrag.html';
   url += '?sessionid=' + asid;
   url += '&afart=' + afart;
   url +='&vorlage_nr=' + vorlage_nr;
   location = url;   
}

function AuftragVorlageGeaendertCancel_OnClick() {
   HideElement('DIV_VORLAGE_GEAENDERT');
}
/*
================================================== 
FUNKTIONEN ZUR EINGABEN UEBERPRUEFUNG 
================================================== 
*/

/*  
SUBKUNDE 
----------------------------
*/
function Subkunde_OnChange(atxtfld, asid) {
   VAR_EL_SETFOCUSON = atxtfld;

   SetOrt('','', '','');
   SetStrasse('','');
   SetEckstrasse('','');
   SetFieldValue('ansprechpartner', '');
   SetFieldValue('telefonnummer', ''); 
   SetFieldValue('kostenstelle', '');
   SetFieldValue('text', ''); 
   PosPopupToElement(atxtfld);
   if (atxtfld.value == "") {
      return;
   }
/*   if (atxtfld.value.length < 3) {
      ShowHinweis('DIV_ERR_MIND3BUCHSTABEN');
      return;
   }
*/
   ShowHinweis('DIV_HINWEIS_BITTEWARTEN');
   var oReq = DoRemoteRequest(
      '/check_subkunde.html?sessionid=' + asid + '&subkunde=' + encodeURI(atxtfld.value), 
      'GET', 
      undefined, function() {      
         PosPopupToElementId('fieldset_adresse');
         ShowAuswahl(oReq.responseText);
         SelectFirstAuswahlElement();
      }
   );
}



function Subkunde_OnClick(ahref) {
   var index = ahref.getAttribute('index');
   SetKunde(ahref.getAttribute('nr'), ahref.getAttribute('subkunde_nr'), ahref.innerHTML);
   var elOrt = GetElement('ort' + index);
   SetOrt(elOrt.getAttribute('nr'), elOrt.innerHTML, elOrt.getAttribute('plz'));
   var elStrasse = GetElement('strasse' + index);
   SetStrasse(elStrasse.getAttribute('nr'), elStrasse.innerHTML);
   var elEckstrasse = GetElement('hausnummer_ecke' +index);
   SetEckstrasse(elEckstrasse.getAttribute('nr'), elEckstrasse.innerHTML);
   var elAnsprechpartner  = GetElement('ansprechpartner' + index);
   SetFieldValue('ansprechpartner', elAnsprechpartner.innerHTML);
   var elTelefonnummer = GetElement('telefonnummer' + index);
   SetFieldValue('telefonnummer', elTelefonnummer.innerHTML);
   var elKostenstelle = GetElement('kostenstelle' + index);
   SetFieldValue('kostenstelle', elKostenstelle.innerHTML);
   var elText = GetElement('text' + index);
   SetFieldValue('text', elText.innerHTML);
   HideAuswahl();    
   tryToFocusElement('ansprechpartner', 'telefonnummer', 'kostenstelle');
//   GetElement('ansprechpartner').focus();
   return false;
}

function PLZ_OnChange(atxtfld, asid) {
   VAR_EL_SETFOCUSON = atxtfld;
   SetOrt('','', undefined,'');
   SetStrasse('','');
   SetEckstrasse('','');
   Ort_OnChange(atxtfld, asid); 
}
/* 
ORT 
----------------------------
*/

function Ort_OnChange(atxtfld, asid) {
   VAR_EL_SETFOCUSON = atxtfld;
   SetStrasse('','');
   SetEckstrasse('','');
   SetFieldValue('ort_nr', '');
   SetFieldValue('ort_extern', '');
   PosPopupToElement(atxtfld);
   if (atxtfld.value == "") {
      return;
   }
/*
   if (atxtfld.value.length < 3) {
      ShowHinweis('DIV_ERR_MIND3BUCHSTABEN');
      return;
   }
*/
   ShowHinweis('DIV_HINWEIS_BITTEWARTEN');
   var el_ort_ortname = GetElement('ort_ortname');
   var el_ort_plz = GetElement('ort_plz');
   var url = '/check_ort.html';
   url += '?sessionid=' + asid;
   url += ';ort=' + encodeURI(el_ort_ortname.value);
   if (el_ort_plz) {
      url += ';ort_plz=' + encodeURI(el_ort_plz.value);
   }
   var oReq = DoRemoteRequest(
      url,
      'GET',
      undefined,
      function() {
         PosPopupToElementId('fieldset_adresse');
         ShowAuswahl(oReq.responseText);
         SelectFirstAuswahlElement();
      }
   );
}

function Ort_OnClick(ahref) {
   var index = ahref.getAttribute('index');
   var  el_plz = GetElement('ort_plz');
   if (el_plz) {
      SetOrt(ahref.getAttribute('nr'), ahref.getAttribute('ortname'), ahref.getAttribute('plz'), ahref.getAttribute('extern'));
   }
   else {   
      SetOrt(ahref.getAttribute('nr'), ahref.innerHTML, ahref.getAttribute('plz'), ahref.getAttribute('extern'));
   }
   HideAuswahl();
   GetElement('strasse_name').focus();
   return false;
}
/* 
STRASSE 
----------------------------
*/

function Strasse_OnChange(atxtfld, asid) {
   VAR_EL_SETFOCUSON = atxtfld;
   PosPopupToElement(atxtfld);
   SetEckstrasse('','');
   if (atxtfld.form.ort_extern.value == 1) {
      return;
   }

   if (atxtfld.value.length < 3) {
      ShowHinweis("DIV_ERR_MIND3BUCHSTABEN");
      return;
   }
   ShowHinweis('DIV_HINWEIS_BITTEWARTEN');   
   var url = '/check_strasse.html';
   url += '?sessionid=' + asid;
   url += '&strasse=' + encodeURI(atxtfld.value);
   url += '&ort_nr=' + encodeURI(atxtfld.form.ort_nr.value);
   var oReq = DoRemoteRequest(
      url, 
      'GET',
      undefined,
      function() {
         PosPopupToElementId('fieldset_adresse'); 
         ShowAuswahl(oReq.responseText);
         SelectFirstAuswahlElement();
      }
   );
}

function Strasse_OnClick(ahref) {
   SetStrasse(ahref.getAttribute('nr'), ahref.innerHTML);
   HideAuswahl();
   GetElement('hausnummer_ecke').focus();
   return false;
}

/*
ECKSTRASSE
-------------------------
*/

function HausnummerEcke_OnChange(atxtfld, asid) {
   VAR_EL_SETFOCUSON = atxtfld;
   PosPopupToElement(atxtfld);
   if (!isNaN(parseInt(atxtfld.value))) {
      //Zahl gefunden => Hausnummer eingegeben, keine Pruefung
      return;
   }
   if (atxtfld.value.match(/^\s*$/i)) {
      //Nur whitespaces eingegeben, auch ok, keine pruefung
      return;
   } 
   if (atxtfld.value.length < 3) {
      ShowHinweis("DIV_ERR_MIND3BUCHSTABEN");
      return;   
   }
 
   var url = '/check_eckstrasse.html';
   url += '?sessionid=' + asid;
   url += '&hausnummer_ecke=' + encodeURI(atxtfld.value);
   url += '&ort_nr=' + encodeURI(atxtfld.form.ort_nr.value);
   url += '&strasse_nr=' + encodeURI(atxtfld.form.strasse_nr.value);
   var oReq = DoRemoteRequest(
      url, 
      'GET',
      undefined,
      function() {
         PosPopupToElementId('fieldset_adresse');
         ShowAuswahl(oReq.responseText);
         SelectFirstAuswahlElement();
      }
   );
}

function EckStrasse_OnClick(ahref) {
   SetEckstrasse(ahref.getAttribute('nr'), ahref.innerHTML);
   HideAuswahl();
   var el = GetElement('text');
   if (el) {
      el.focus();
   }
   return false;
}

/*
HALTESTELLE
---------------------------
*/
function Haltestelle_OnChange(aselbox, asid) {
   if (GetFieldValue(aselbox.id) ==  '') {
      return false;
   }
   VAR_EL_SETFOCUSON = aselbox;
   PosPopupToElement(aselbox);
   var url = '/check_haltestellenzeit.html';
   url += '?sessionid=' + asid;
   url += '&haltestelle_nr=' + encodeURI(aselbox.options[aselbox.selectedIndex].value);
   url += '&datum=' + encodeURI(aselbox.form.hst_datum.value + ' ' + aselbox.form.hst_uhrzeit.value);
   var oReq = DoRemoteRequest(
      url,
      'GET',
      undefined,
      function() {   
         PosPopupToElementId('fieldset_haltestelle');
         ShowAuswahl(oReq.responseText);  
         SelectFirstAuswahlElement();
      }
   );
}

function Haltestellenzeit_OnClick(ahref) {
   var dtzeit = ahref.innerHTML.split(/ /);
   SetHaltestellenzeit(ahref.getAttribute('nr'), dtzeit[0], dtzeit[1]);
   HideAuswahl();
   var el_hst = GetElement('haltestelle_nr');
   return false;
}

function HaltestelleDatum_OnChange(atxtfld) {
   if (GetFieldValue('haltestelle_nr') != '') {
      Haltestelle_OnChange(GetElement('haltestelle_nr'), GetFieldValue('sessionid'));
   }
}

function HaltestelleZeit_OnChange(atxtfld) {
   if (GetFieldValue('haltestelle_nr') != '') {
      Haltestelle_OnChange(GetElement('haltestelle_nr'), GetFieldValue('sessionid'));
   }
}
/* ============================================================================ 
ADRESSE HINZUFUEGEN / LOESCHEN / SORTIEREN 
============================================================================= */

/* ADRESSE HINZUFUEGEN */
function AddAdresse_OnClick(abutton, adressart) {
   var f = abutton.form;
   if (VAR_AF_EINGABEMODUS == CONST_AF_EINGABE_HALTESTELLE) {
      if (GetFieldValue('haltestellezeit_nr') == '') {
         PosPopupToElementId('fieldset_haltestelle');
         ShowHinweis('DIV_ERR_KEINEHALTESTELLEZEIT');
         return false;
      }
   } 
   else {
      if (! CheckAdressFelder()) {
         PosPopupToElementId('fieldset_adresse');
         ShowHinweis('DIV_ERR_KEINKUNDEODERADRESSE');
         return false;
      }
   }
   var s = '';
   if (VAR_AF_ANZ_ADRESSEN_GESAMT < 1) {
      /* Ueberpruefund der "normalen" Pflichtfelder fuer Adresse */
      if (!IsRequiredOK(f.ansprechpartner)) {
         s += GetContent('ERR_ADDR_ANSPRECHPARTNERPFLICHT') + '<br/>';
      }
      if (!IsRequiredOK(f.telefonnummer)) {
         s += GetContent('ERR_ADDR_TELEFONNUMMERPFLICHT') + '<br/>';
      }
      if (!IsRequiredOK(f.kostenstelle)) {
         s += GetContent('ERR_ADDR_KOSTENSTELLEPFLICHT') + '<br/>';
      }
      if (s != '') {
         PosPopupToElementId('fieldset_adresse');
         ShowHinweisText(s);
         return false;
      }
   }

   f.adressart.value = adressart;
   var oReq =  PostFormToRemoteRequest(
      '/af_adressliste.html', 
      'POST', 
      f, 
      function() { 
         AddAdresse_Callback(oReq);
      }
   );
   return true;
}

function AddAdresse_Callback(oReq) {
   SetContent('adressliste', oReq.responseText);
   PosPopupToElementId('fieldset_adresse');
   Check_SubFMSIFehler();
   ClearAdresse();
   __UpdateAdressInfos();
   __UpdateAdressEingabe();
   var firstmerkmal_id = GetFieldValue('__firstmerkmal_id');
   var el_firstmerkmal = GetElement(firstmerkmal_id);
   if (GetElement('fieldset_adresse').style.display != 'none') {
      if (GetElement('kunde_name')) {
         GetElement('kunde_name').focus();
      }
   }
   else if (GetElement('fieldset_haltestelle').style.display != 'none') {
      GetElement('hst_datum').focus();
   }
   else if (el_firstmerkmal) {
      el_firstmerkmal.focus();
   }
   
} 

/* ADRESSE LOESCHEN */
function AdresseDelete_OnClick(sessionid, anr) {
   if (anr > 0) {
      var url = '/af_adressliste.html';
      url += '?sessionid=' + sessionid;
      url += ';delete=' + anr;
      url += ';haltestelle_pflicht=' + GetFieldValue('haltestelle_pflicht');
      var oReq = DoRemoteRequest(    
         url,
         'GET',
         undefined,
         function() { AddAdresse_Callback(oReq); }
      );
   }
   return false;
}

/* ADRESSE REIHENFOLGE AENDERN */
function AdresseSwap_OnClick(sessionid, anr1, anr2) {
   if ((anr1 > 0) && (anr2 > 0)) {
      var url = '/af_adressliste.html';
      url += '?sessionid=' + sessionid;
      url += ';anr1=' + anr1;
      url += ';anr2=' + anr2;
      url += ';haltestelle_pflicht=' + GetFieldValue('haltestelle_pflicht');
      var oReq = DoRemoteRequest(
         url,
         'GET',
         undefined,
         function() { AdresseSwap_Callback(oReq); }
      );
   }
   return false;
}

function AdresseSwap_Callback(oReq) {
   SetContent('adressliste', oReq.responseText);
   PosPopupToElementId('fieldset_adresse');
   Check_SubFMSIFehler();
   __UpdateAdressInfos();
   __UpdateAdressEingabe();
}

/* Aktualiserien der Adressinformationen */
function __UpdateAdressInfos() {
   var el_ali = document.getElementById('adresslisteinfos');
   VAR_AF_ANZ_ADRESSEN_ABFAHRT   = parseInt(el_ali.getAttribute('anz_abfahrt'));
   VAR_AF_ANZ_ADRESSEN_ZIEL      = parseInt(el_ali.getAttribute('anz_ziel'));
   VAR_AF_ANZ_ADRESSEN_GESAMT    = VAR_AF_ANZ_ADRESSEN_ABFAHRT + VAR_AF_ANZ_ADRESSEN_ZIEL;
   /* Anzahl der aktuellen Abfahrtsadressen < maximale anzahl abfahrtadressen */
   if (VAR_AF_ANZ_ADRESSEN_ABFAHRT < VAR_AF_MAXANZ_ADRESSEN_ABFAHRT) {
      /* anzahl aktuelle adressen < maximale anzahl adressen */
      if ( VAR_AF_ANZ_ADRESSEN_GESAMT < VAR_AF_MAX_ANZAHL_ADRESSEN ) {
         ShowElement('bt_addadresse_abfahrt', 'inline'); 
      }
      else {
         HideElement('bt_addadresse_abfahrt');
      }
   } 
   else {
      HideElement('bt_addadresse_abfahrt');
   }
   /* anzahl abfahrt adressen >= 1 */
   if (VAR_AF_ANZ_ADRESSEN_ABFAHRT >= 1) {
      if (VAR_AF_ANZ_ADRESSEN_ZIEL < VAR_AF_MAXANZ_ADRESSEN_ZIEL) {
         if (VAR_AF_ANZ_ADRESSEN_GESAMT < VAR_AF_MAX_ANZAHL_ADRESSEN) {
            ShowElement('bt_addadresse_ziel', 'inline');
         }
         else {
            HideElement('bt_addadresse_ziel');
         }
      }
      else {
         HideElement('bt_addadresse_ziel');
      }
      if (VAR_AF_HALTESTELLE_PFLICHT == 'A') {  
         ShowAdresse();
      } 
      else if (VAR_AF_HALTESTELLE_PFLICHT == 'Z') {
         ShowHaltestelle();
      }
      else {
         ShowAdresse();
      }
   }
   else {
      if (VAR_AF_HALTESTELLE_PFLICHT == 'A') {
         ShowHaltestelle();
      }
      else {
         ShowAdresse();
      }
      HideElement('bt_addadresse_ziel');
   }
   VAR_AF_AKTUELLE_ADRESS_NR = 0;
   if (VAR_AF_DO_SOFORTANTWORT == 1) {
      AuftragBestellen_OnClick(GetElement('button_af_bestellen'));
      VAR_AF_DO_SOFORTANTWORT = 0;
   }
   __UpdateVerrechnung();
}


function __UpdateAdressEingabe() {
   if ( (GetElement('bt_addadresse_abfahrt').style.display == 'none') &&
        (GetElement('bt_addadresse_ziel').style.display    == 'none') ) {
      HideElement('fieldset_adresse');
      HideElement('fieldset_haltestelle');      
   }
}

function __UpdateVerrechnung() {
   var el_zahlungsart = GetElement('verrechnung_zahlungsart_nr');
   if (el_zahlungsart) {
      AuftragZahlungsart_OnChange(el_zahlungsart, GetFieldValue('sessionid'));
      AuftragRechnungsadresse_OnChange(GetElement('verrechnung_adresse'), GetFieldValue('sessionid'));
   }
}


function AuftragAdresslisteAktualisieren_OnClick(asid) {
   var url = 'af_adressliste.html';
   url += '?sessionid=' + asid;
   var oReq = DoRemoteRequest(
      url,
      'GET',
      undefined,
      function() {
         AdresseSwap_Callback(oReq);
      }            
   );   
}

function Adresse_OnRowClick(atr, aclass) {
   Auswahl_OnRowClick(atr, aclass);
   VAR_AF_AKTUELLE_ADRESS_NR = atr.getAttribute('nr');
   VAR_AF_AKTUELLE_ADRESS_ART = atr.getAttribute('adressart');
   return false;
}


function ShowButtonsInAdresse() {
   document.getElementById('fieldset_adresse').appendChild(document.getElementById('buttonbar'));

}
function ShowButtonsInHaltestelle() {
   document.getElementById('fieldset_haltestelle').appendChild(document.getElementById('buttonbar'));
}

function ShowHaltestelle() {
   HideElement('fieldset_adresse');
   ShowElement('fieldset_haltestelle');
   ShowButtonsInHaltestelle();
   VAR_AF_EINGABEMODUS = CONST_AF_EINGABE_HALTESTELLE;
}

function ShowAdresse() {
   HideElement('fieldset_haltestelle');
   ShowElement('fieldset_adresse');
   ShowButtonsInAdresse();
   VAR_AF_EINGABEMODUS = CONST_AF_EINGABE_ADRESSE;
}

function HideAdresseHaltestelle() {
   HideElement('fieldset_haltestelle');
   HideElement('fieldset_adresse');
}

function CheckAdressFelder() {   
   
   if ( IsFieldEmpty('kunde_nr') &&
         ( GetFieldValue('ort_extern') != '1') && 
            ( IsFieldEmpty('strasse_nr') || IsFieldEmpty('hausnummer_ecke') 
         ) 
      ) {
      return false;
   }
   return true;
  
}
/*
Bestellung durchfuehren ...
--------------------------------------------
*/


/* Benutzer hat auf Bestellen geklickt */
function AuftragBestellen_OnClick(abutton) {
   if (GetElement('container_sofortantwort').style.display == 'block') {
      /* Sofortantwort wird gerade angezeigt, Bestellung bestaetigen und durchfuehren */
      
      var f = abutton.form;
      f.action = '/af_bestaetigung.html';
      f.submit();
   }
   else {
      /* Sofortantwort holen */
      Auftrag_Sofortantwort(abutton);
   }
}

/* Sofortantwort durchfuehren */
function Auftrag_Sofortantwort(abutton) {
   var order_ok = false;
   var el_alsvorlagespeichern = GetElement('alsvorlagespeichern');
   PosPopupToElementId('fieldset_adressliste');
   if (el_alsvorlagespeichern && el_alsvorlagespeichern.checked && (GetFieldValue('vorlagename') == '')) {
      PosPopupToElementId('fieldset_header');
      ShowHinweis('DIV_ERR_VORLAGENAMEANGEBEN');
      return false;
   }
   /* Ueberpruefung auf Adressen .... */
   if (VAR_AF_ANZ_ADRESSEN_GESAMT == 0) {
      /* Keine Adresse vorhanden, versuchen die angezeite adresse zu speichern */
      if (GetElement('fieldset_adresse').style.display == 'block') {
         /* Adresse wird angezeigt, wir koennten eine bestellung durchfuehren, Adresse hinzufuegen */
         var r = AddAdresse_OnClick(GetElement('button_af_bestellen'), 'A');   
         if (r) {
            VAR_AF_DO_SOFORTANTWORT = 1;
         }
      }
      else {
         /* Haltestelle wird angezeigt, versuchen Haltestelle zu speichern */
         var r = AddAdresse_OnClick(GetElement('button_af_bestellen'), 'A');
         if (r) {
            VAR_AF_DO_SOFORTANTWORT = 1;
         }
      }
   }
   else {
      /* Ueberpruefung : Es ist zumindest eine Adresse erfasst */
      var s = '';
      if (VAR_AF_ANZ_ADRESSEN_ABFAHRT < 1) {
         /* Keine Abfahrt erfasst */
         PosPopupToElementId('fieldset_adresse');
         ShowHinweis('DIV_ERR_KEINEABFAHRTERFASST');
         order_ok = false;
      }
      var el_erste_adresse = GetElement('adresse0');
      if (el_erste_adresse.getAttribute('adressart') != 'A') {
         /* Erste Adresse ist keine Abfahrtsadresse */
         PosPopupToElementId('fieldset_adressliste');;
         ShowHinweis('DIV_ERR_ERSTEMUSSABFAHRTSEIN');
         order_ok = false;
      } 
      else {
         order_ok = true;
      }
      if (! order_ok) {
         return false;
      }
      var letzteadressnr = GetElement('adresslisteinfos').getAttribute('letzteadressnr');
      var el_letzte_adresse = GetElement('adresse' + letzteadressnr);

      /* UEBERPRUEFUNG DER ADRESSEN */ 
      if (VAR_AF_MODUS_ABFAHRT_ZIEL == '') {
         /* es muessen keine zieladressen vorhanden sein, koennen aber */
         if (VAR_AF_ANZ_ADRESSEN_ZIEL == 0) {
            /* Keine Zieladresse erfasst, passt */
            order_ok = true;
         }
         else if (VAR_AF_ANZ_ADRESSEN_ZIEL >= 1) {
            /* wenn zieladressen vorhanden, muss die letze eine Zieladresse sein */
            if (el_letzte_adresse.getAttribute('adressart') == 'Z') {
               order_ok = true;
            }
            else {
               PosPopupToElementId('fieldset_adresse');
               ShowHinweis('DIV_ERR_LETZTEMUSSZIELSEIN');
               order_ok = false;
            }
         }
      }
      else if (VAR_AF_MODUS_ABFAHRT_ZIEL == 'nn') {  
         /* Es muss eine Zieladresse erfasst werden */
         if (VAR_AF_ANZ_ADRESSEN_ZIEL == 0) {
            /* noch keine Zieladresse erfasst */
            PosPopupToElementId('fieldset_adresse');
            ShowHinweis('DIV_ERR_KEINZIELERFASST');
            order_ok = false;
         }
         else if (VAR_AF_ANZ_ADRESSEN_ZIEL >= 1) {
            /* Ueberpruefung ob die letzte Adresse eine Zieladresse ist */
            if (el_letzte_adresse.getAttribute('adressart') == 'Z') {
               /* die letzte Adresse ist eine Zieladresse => OK */
               order_ok = true;
            }
            else {
               /* Lezte Adresse muss eine Zieladresse sein */
               PosPopupToElementId('fieldset_adresse');
               ShowHinweis('DIV_ERR_LETZTEMUSSZIELSEIN');
               order_ok = false;
            }
         }
      }
      else if (VAR_AF_MODUS_ABFAHRT_ZIEL == '11') {
         /* genau eine abfahrts und zieladresse */
         if (VAR_AF_ANZ_ADRESSEN_ABFAHRT < 1) {
            /* Keine abfahrtsadresse erfasst */
            PosPopupToEingabe();
            ShowHinweis('DIV_ERR_KEINEABFAHRTERFASST');
            order_ok = false;
         }
         else if (VAR_AF_ANZ_ADRESSEN_ZIEL < 1) {
            /* Keine Zieladresse erfasst */
            PosPopupToEingabe();
            ShowHinweis('DIV_ERR_KEINZIELERFASST');
            order_ok = false;
         }
         else {
            order_ok = true;
         }
      }
   }

   if (! order_ok) {
      return false;
   }

   var f = GetElement('form_auftrag');
   var s = '';
   
   var el_div_ver_rechnungskunde = GetElement('div_ver_rechnungskunde');
   if (el_div_ver_rechnungskunde && (el_div_ver_rechnungskunde.style.display == 'block')) {
      /* Nur wenn das Feld Rechnungskunde angezeigt wird auch die Pflichteingabe ueberpruefen */
      if ((VAR_AF_RECHNUNGSKUNDE_ANZEIGEN > 0 ) && (VAR_AF_RECHNUNGSKUNDE_PFLICHT == 1)) {
         if (GetFieldValue('verrechnung_kunde_nr') == '') {
            s += GetContent('DIV_ERR_AFRECHNUNGSKUNDEPFLICHT') + '<br/>';
            order_ok = false;
         }
      }
   }
   var el_div_ver_kostenstelle = GetElement('div_ver_kostenstelle');
   if (el_div_ver_kostenstelle && (el_div_ver_kostenstelle.style.display == 'block')) {
      /* Nur wenn das Feld Kostenstelle angezeigt wird */
      if ((VAR_AF_RECHNUNGSKUNDE_KOSTENSTELLE_ANZEIGEN > 0) && (VAR_AF_RECHNUNGSKUNDE_KOSTENSTELLE_PFLICHT == 1)) {
         var v_kst      = GetFieldValue('rechnungskunde_kostenstelle');
         var v_kstein   = GetFieldValue('rechnungskunde_kostenstelle_eingabe');
         if ((! v_kst || (v_kst == '')) && (! v_kstein || (v_kstein == ''))) {
            s += GetContent('DIV_ERR_AFKOSTENSTELLEPFLICHT') + '<br/>';
            order_ok = false;
         }
      }
   }
   
   var arPflichtfelder = new Array();
   for (var i=0; i<f.elements.length; i++) {
      var el = f.elements[i];
      if ((el.id.search(/^zus_auf/)  != -1) ||
          (el.id.search(/^zus_merk/) != -1) ||
          (el.id.search(/^zus_ver/)  != -1)) {
         /* zusatzfeld gefunden */
         if (el.getAttribute('pflicht') == '1') {
            if (GetFieldValue(el.id) == '') {
               arPflichtfelder.push(el.getAttribute('label'));
               order_ok = false;
            }   
         }
      }
   }
   if (arPflichtfelder.length > 0) {
      s += '<br />' + GetContent('DIV_ERR_PFLICHTFELDERLEER');
      s += '<ul>';
      for (var i=0; i<arPflichtfelder.length; i++) {
         s += '<li>' + arPflichtfelder[i] + '</li>';
      }
      s += '</ul>';
   }
   var el_fahrzeuganzahl = GetElement('fahrzeuganzahl');
   if (el_fahrzeuganzahl) {
      if (parseInt(el_fahrzeuganzahl.value) > parseInt(VAR_AF_MAX_ANZAHL_FAHRZEUGE)) {
         s += '<br />' + GetContent('DIV_ERR_MAXANZAHLFAHRZEUGEUEBERSCHRITTEN');
         order_ok = false;
      }
   }
   if (! order_ok) {
      ShowHinweisText(s);
      return false;
   }

   var f = abutton.form;
   var oReq = PostFormToRemoteRequest(
      '/af_sofortantwort.html',
      'POST',
      f,
      function() {
         Auftrag_Sofortantwort_Callback(oReq);
      }
   );
}


/* Callback nach der Sofortantwort */
function Auftrag_Sofortantwort_Callback(oReq) {
   if (GetFieldValue('vorlageaktualisieren') == '1') {
      /* Es wurde die vorlage aktualisiert */
      SetFieldValue('vorlageaktualisieren', '');
      EnableElementId('button_af_bestellen');
   }
   else {
      EnableElementId('button_af_vorlagespeichern', false);
      SetContent('form_header', GetContent('TEXT_AF_ARTNAME') + " - " + GetContent('TEXT_AF_BESTAETIGUNG'));
   }
   SetContent('container_sofortantwort', oReq.responseText);

   HideElement('fieldset_adresse');
   HideElement('fieldset_haltestelle');
   HideElement('fieldset_merkmale');
   ShowElement('container_sofortantwort');

   EnableFieldsetId('fieldset_header',       false); 
   EnableFieldsetId('fieldset_merkmale',     false);
   EnableFieldsetId('fieldset_adressen',     false);
   EnableFieldsetId('fieldset_verrechnung',  false);
   var el = GetElement('fieldset_sofortantwort');
   if (el) {
      if (el.getAttribute('error') == '1') {
         EnableElementId('button_af_bestellen', false);
      }
      //else 
      {
         /* GH 2007-10-03 NEU: Text Bestaetigen anzeigen */
         var el_bt = GetElement('button_af_bestellen');
         el_bt.setAttribute('oldtext', el_bt.innerHTML);
         el_bt.innerHTML = el_bt.getAttribute('textbestaetigung');
         

      }
   }
}

function AuftragVorlageSpeichern_OnClick(abutton) {
   SetFieldValue('vorlageaktualisieren', '1');
   Auftrag_Sofortantwort(abutton);
}

/*
AuftragAbbrechen_OnClick
Der Benutzer hat auf den Button Abbrechen geklickt 
*/
function AuftragAbbrechen_OnClick(abutton) {
   if (document.getElementById('container_sofortantwort').style.display == 'block') {
      /* Sofortantwort wird angezeigt */
      ShowElement('fieldset_merkmale');
      EnableAuftragsform(true);
      HideElement('container_sofortantwort');
      if (VAR_AF_EINGABEMODUS == CONST_AF_EINGABE_ADRESSE) {
         ShowAdresse();
      }
      if (VAR_AF_EINGABEMODUS == CONST_AF_EINGABE_HALTESTELLE) {
         ShowHaltestelle();
      }
      /* Falls der Auftrag bearbeitet wird (also kein neuer Auftrag */
      if (VAR_AF_BEARBEITEN) {
         SetContent('form_header', GetContent('TEXT_AF_ARTNAME') + " - " + GetContent('TEXT_AF_BEARBEITEN'));
      }
      else {
         SetContent('form_header', GetContent('TEXT_AF_ARTNAME') + " - " + GetContent('TEXT_AF_EINGABE'));
      }
      /* GH 2007-10-03: NEU Text Bestellen wieder anzeigen */
      var el_bt = GetElement('button_af_bestellen');
      el_bt.innerHTML = el_bt.getAttribute('oldtext');
      __UpdateAdressEingabe();
      
      return false;
   
   }
   else {
      /* Wir sind in der Auftragseingabe, d.h. Auftrag nach Sicherheitsabfrage neu initialisieren */
      EnableAuftragsform(false);
      ShowElement('popupform_iframe');
      ShowElement('DIV_ABBRECHEN');
      var el = GetElement('DIV_ABBRECHEN');
      var pos;
      var el_posto;
       
      if (VAR_AF_EINGABEMODUS == CONST_AF_EINGABE_ADRESSE) {
         el_posto = GetElement('fieldset_adresse');
         pos = CalcElementPositionId('fieldset_adresse');
      }
      else {
         el_posto = GetElement('fieldset_haltestelle');
         pos = CalcElementPositionId('fieldset_haltestelle');
      }
      if (el_posto.style.display == 'none') {
         el_posto = GetElement('fieldset_adressliste');
      }
      var pos = CalcElementPosition(el_posto);
      pos[1] += 20;
      el.style.left = pos[0] + 'px';
      el.style.top = pos[1] + 'px';
      if (document.all) {
         el.style.width = "40em";
      }
      
      var el_iframe = GetElement('popupform_iframe');
      pos[0] += 10;
      el_iframe.style.left = pos[0] + 'px';
      el_iframe.style.top = pos[1] + 'px';
      el_iframe.style.visibility = 'visible';
   }
}

function AuftragAbbrechenCancel_OnClick() {
   HideElement('DIV_ABBRECHEN');
   HideElement('popupform_iframe');
   EnableAuftragsform(true);
}


/* Der Benutzer hat bei der Sichheitsabfrage "Auftrag abbrechen" auf Ja geklickt ... */
function AuftragAbbrechenConfirm_OnClick(sessionid) {
   /* Und was machen wir jetzt ??? */
   if (VAR_AF_BEARBEITEN)  {

      location = 'status.html?sessionid=' + sessionid;
   }
   else if (VAR_AF_VONVORLAGE) {
      location = 'meine_vorlagen.html?sessionid=' + sessionid;
   }
   else {
      location.reload(true);
   }
}

function EnableAuftragsform(enable) {
   EnableFieldsetId('fieldset_header',       enable);
   EnableFieldsetId('fieldset_adresse',      enable);
   EnableFieldsetId('fieldset_haltestelle',  enable);
   EnableFieldsetId('fieldset_adressliste',  enable);
   EnableFieldsetId('fieldset_merkmale',     enable);
   EnableFieldsetId('fieldset_verrechnung',  enable);

   EnableElementId('button_af_bestellen',          enable);
   EnableElementId('button_af_abbruch',            enable);    
   EnableElementId('button_af_vorlagespeichern',   enable);
   __UpdateAdressEingabe();
}


function VerrechnungClearAdresse() {
   SetSelectContent('verrechnung_adresse', '');
   VerrechnungClearKostenstelle();
}

function VerrechnungClearKunde() {
   SetSelectContent('verrechnung_kunde_nr', '');
   VerrechnungClearKostenstelle();
}

function VerrechnungClearKostenstelle() {
   var el = GetElement('rechnungskunde_kostenstelle');
   if (el) {
      if (el.tagName.match(/^select$/i)) {
         SetSelectContent('');
      }
      else {
         el.value = '';
      }
   }
   SetFieldValue('rechnungskunde_kostenstelle_eingabe', '');
}
/* Der Kunde hat die Zahlungsart geaendert, dementsperechend muessen wir felder anzeigen */

function AuftragZahlungsart_OnChange(aselbox, asid) {
   HideElement('div_ver_adresse');
   HideElement('div_ver_rechnungskunde');
   HideElement('div_ver_kostenstelle');
   var opt = aselbox.options[aselbox.selectedIndex];
   if (opt.value == '') {
      VerrechnungClearKunde();
      VerrechnungClearAdresse();
      return false;
   }
   var m_vadr = opt.getAttribute('modus_verrechnungsadresse');
   if (m_vadr == 'N') {
      /* hier ist nichts zu tun, es gibt keine verrechnungsadresse */
      VerrechnungClearKunde();
      VerrechnungClearAdresse();
   }
   else if (m_vadr == 'R') {
      /* hier kann der benutzer einen rechnungskunden eingeben */
      VerrechnungClearAdresse();
      ShowElement('div_ver_rechnungskunde');
      ShowElement('div_ver_kostenstelle');
      var url = '/af_verrechnungskunden.html';
      url += '?sessionid=' + asid;
      url += ';za_nr=' + opt.value;
      var oReq = DoRemoteRequest(
         url,
         'GET',
         undefined,
         function() {
            SetSelectContent('verrechnung_kunde_nr', oReq.responseText);
            AuftragRechnungsadresse_OnChange(GetElement('verrechnung_kunde_nr'), asid);
         }
      );
   }
   else if (m_vadr == 'A') {
      /* hier kann der benutzer eine Adresse auswaehlen */  
      VerrechnungClearKunde();
      var url = '/af_verrechnungsadressen.html';
      url += '?sessionid=' + asid;
      url += ';za_nr=' + opt.value;
      var oReq = DoRemoteRequest(
         url,
         'GET',
         undefined,
         function() {
            SetSelectContent('verrechnung_adresse', oReq.responseText);
            if (GetElement('verrechnung_adresse').options.length == 0) {
               SetContent('rechnungskunde_kostenstelle', '');
            }
            ShowElement('div_ver_adresse');
            ShowElement('div_ver_kostenstelle');
            AuftragRechnungsadresse_OnChange(GetElement('verrechnung_adresse'), asid);
         }
      );
   }
}

/* Der Benutzer hat eine andere Verrechnungsadresse ausgewaehlt, aktualisieren der Kostenstellenliste */
function AuftragRechnungsadresse_OnChange(aselbox, asid) {
   if ((aselbox.options.length < 0) ||
       (aselbox.options.selectedIndex < 0)) {
      return;
   }
   var opt = aselbox.options[aselbox.selectedIndex];
   if (opt.value == '') {
      return false;
   }
   var kdnr = opt.getAttribute('kunde_nr');
   var url = '/af_verrechnungkostenstellen.html';
   url += '?sessionid=' + asid;
   url += ';kunde_nr=' + kdnr;
   var el = GetElement('rechnungskunde_kostenstelle');
   if (el.tagName.match(/^select$/i)) {
      var oReq = DoRemoteRequest(
         url,
         'GET',
         undefined,
         function() {
            AuftragKostenstelle_Callback(oReq);
         }
      );
   }
}

function AuftragKostenstelle_Callback(oReq) {
   var el = GetElement('rechnungskunde_kostenstelle');
   SetSelectContent('rechnungskunde_kostenstelle', oReq.responseText);
   var el = GetElement('rechnungskunde_kostenstelle');
   if (el.tagName.match(/^select$/i)) {
      if (el.options.length == 0) {
         HideElement('rechnungskunde_kostenstelle');
         ShowElement('rechnungskunde_kostenstelle_eingabe', 'inline');
      }
      else {
         HideElement('rechnungskunde_kostenstelle_eingabe');
         ShowElement('rechnungskunde_kostenstelle', 'inline');
      }
   }
}

function AuftragRechnungskunde_OnChange(atxtfld, asid, za_nr) {
   VAR_EL_SETFOCUSON = atxtfld;
   PosPopupToElement(atxtfld);
   SetFieldValue('verrechnung_kunde_nr', '');
   if (atxtfld.value == "") {
      return;
   }    
   ShowHinweis('DIV_HINWEIS_BITTEWARTEN');
   var url = '/check_rechnungskunde.html';
   url += '?sessionid=' + asid;
   url += ';kunde_nr=' + atxtfld.value;
   url += ';za_nr=' + za_nr;

   var oReq = DoRemoteRequest(
      url,
      'GET',
      undefined,
      function() {
         PosPopupToElementId('fieldset_verrechnung');
         ShowAuswahl(oReq.responseText);
         var r = SelectFirstAuswahlElement();
         if (r <=0 ) {
            SetFieldValue('verrechnung_kunde_name', '');
            SetFieldValue('verrechnung_kunde_nr', '');
         }
      }
   );
}

function Rechnungkunde_OnClick(ahref) {
   var index = ahref.getAttribute('index');
   var el_name = GetElement('rk_name' + index);
   SetFieldValue('verrechnung_kunde_nr',  ahref.getAttribute('nr'));
   SetFieldValue('verrechnung_kunde_name', ahref.innerHTML + ' ' + el_name.innerHTML);
   var el = GetElement('rechnungskunde_kostenstelle');
   if (el.tagName.match(/^select$/i)) {
      SetSelectContent('rechnungskunde_kostenstelle', GetContent('rk_kostenstellen' + index)); 
   }
   HideAuswahl();
   return false;
}


/*
AUFTRAGSFUNKTIONEN
----------------------------
*/

function Auftrag_OnLoad(
         modus_abfahrt_ziel, 
         max_anzahl_fahrzeuge, 
         max_anzahl_adressen, 
         haltestelle_pflicht, 
         rechnungskunde_anzeigen,
         rechnungskunde_pflicht,
         rechnungskunde_kostenstelle_anzeigen, 
         rechnungskunde_kostenstelle_pflicht,  
         auftragholen, 
         vonvorlage) {
   VAR_AF_MODUS_ABFAHRT_ZIEL                 = modus_abfahrt_ziel;
   VAR_AF_MAX_ANZAHL_FAHRZEUGE               = max_anzahl_fahrzeuge;
   VAR_AF_MAX_ANZAHL_ADRESSEN                = parseInt(max_anzahl_adressen);
   VAR_AF_HALTESTELLE_PFLICHT                = haltestelle_pflicht;
   VAR_AF_RECHNUNGSKUNDE_ANZEIGEN            = rechnungskunde_anzeigen;
   VAR_AF_RECHNUNGSKUNDE_PFLICHT             = rechnungskunde_pflicht;
   VAR_AF_RECHNUNGSKUNDE_KOSTENSTELLE_ANZEIGEN = rechnungskunde_kostenstelle_anzeigen;
   VAR_AF_RECHNUNGSKUNDE_KOSTENSTELLE_PFLICHT  = rechnungskunde_kostenstelle_pflicht;
   if (VAR_AF_HALTESTELLE_PFLICHT == "A") {
      ShowHaltestelle();
   }
   else {
      ShowAdresse();
  }

   if (VAR_AF_MODUS_ABFAHRT_ZIEL == '') {
      VAR_AF_MAXANZ_ADRESSEN_ABFAHRT = 100;
      VAR_AF_MAXANZ_ADRESSEN_ZIEL = 100;
   }
   else {
      var az = VAR_AF_MODUS_ABFAHRT_ZIEL.split('');
      VAR_AF_MODUS_S_ABFAHRT = az[0];
      VAR_AF_MODUS_S_ZIEL = az[1];
      if ((az[0] == '') || (az[0] == 'n')) {
         VAR_AF_MAXANZ_ADRESSEN_ABFAHRT = 100;
      }
      else {
         VAR_AF_MAXANZ_ADRESSEN_ABFAHRT = parseInt(az[0]);
      }
      if ((az[1] == '') || (az[1] == 'n')) {
         VAR_AF_MAXANZ_ADRESSEN_ZIEL = 100;
      }
      else {
         VAR_AF_MAXANZ_ADRESSEN_ZIEL = parseInt(az[1]); 
      }
   }
   __UpdateAdressInfos();

   VAR_AF_BEARBEITEN = auftragholen;
   /* Wurde der Auftrag geholt ? */
   if (VAR_AF_BEARBEITEN) {
      SetContent('form_header', GetContent('TEXT_AF_ARTNAME') + " - " + GetContent('TEXT_AF_BEARBEITEN'));
      if (GetFieldValue('adressdaten_aendern_moeglich') == '0') {
         HideAdresseHaltestelle();
      }
   }
   else {
      SetContent('form_header', GetContent('TEXT_AF_ARTNAME') + " - " + GetContent('TEXT_AF_EINGABE'));
   }

   if (vonvorlage) {
      VAR_AF_VONVORLAGE = vonvorlage;
      if (VAR_AF_HALTESTELLE_PFLICHT == "A" ) {
         ShowHaltestelle();
         SetFieldValue('adress_nr', 1); 
         Haltestelle_OnChange(GetElement('haltestelle_nr'), GetFieldValue('sessionid'));
         ShowElement('bt_addadresse_abfahrt');
         ShowButtonsInHaltestelle();
      }
      else if (VAR_AF_HALTESTELLE_PFLICHT == "Z") {
         ShowHaltestelle();
         SetFieldValue('adress_nr', 2);
         Haltestelle_OnChange(GetElement('haltestelle_nr'), GetFieldValue('sessionid'));
         ShowElement('bt_addadresse_ziel');
         ShowButtonsInHaltestelle();
      }
   }
   var el_fldnamefirma = GetElement('fld_namefirma');
   if (el_fldnamefirma) {
      el_fldnamefirma.focus();
   }
   __UpdateAdressEingabe();

   var f = GetElement('form_auftrag');
   var el_to_focus;
   for (var i=0; i < f.elements.length && ! el_to_focus; i++) {
      var el = f.elements[i];
      if (el.tagName.match(/^input$/i) && (el.type != 'hidden')) {
         el_to_focus = el;
      }
      else if (el.tagName.match(/^select$/i) ||
               el.tagName.match(/^textarea$/i)) {
         el_to_focus = el;
      }
   }
   el_to_focus.focus();
}

function alignWidths() {
   var maxwidth = 0;
   for (var i=0; i<arguments.length; i++) {
      var el_id = arguments[i]
      var el = GetElement(el_id);
      if (el) {
         var w = parseInt(el.clientWidth);
         if (w > maxwidth) {
            maxwidth = w;
         }
      }
   }
   for (var i=0; i<arguments.length; i++) {
      var el_id = arguments[i];
      var el = GetElement(el_id);
      if (el) {
         el.style.width = maxwidth + 'px';
      }
   }
/*
   var el1 = GetElement(el1_id);
   var el2 = GetElement(el2_id);
   if (el1 && el2) {
      var w_el1   = parseInt(el1.clientWidth);
      var w_el2   = parseInt(el2.clientWidth);
      if (w_el1 < w_el2) {
         el1.style.width = w_el2 + 'px';
      }
      else {
         el2.style.width = w_el1 + 'px';
      }
   }
*/
}

/* Funktionen zur Behandlung der Merkmale mit Pin-Eingabe */
var VAR_CURRENT_CB_MERKMALPIN;
function Merkmal_OnClick(acb) {
   if (acb.getAttribute('pinrequired') == 1) {
      VAR_CURRENT_CB_MERKMALPIN = acb;
      SetFieldValue('merkmal_to_check', acb.value);
      PosElementToElementId('DIV_MERKMALPINEINGABE', acb.id);
      GetElement('DIV_MERKMALPINEINGABE').style.width="42em";
      ShowElement('DIV_MERKMALPINEINGABE');
      GetElement('merkmalpin').focus();
      return false;
   }    
}

function MerkmalPinEingabeConfirm_OnClick(abutton) {
   var f = abutton.form;
   var oReq = PostFormToRemoteRequest(
      '/check_merkmalpin.html',
      'POST',
      f,
      function() {
          MerkmalPinEingabe_Callback(oReq);  
      }
   );
}

function MerkmalPinEingabe_Callback(oReq) {
   SetHinweisText(oReq.responseText);
   var el = GetElement('checkMerkmalpin');
   if (el.getAttribute('error') == '') {
      VAR_CURRENT_CB_MERKMALPIN.checked = true;
      MerkmalPinEingabeCancel_OnClick();
   }
   else {
      PosPopupToElement(VAR_CURRENT_CB_MERKMALPIN);
      ShowHinweisText(oReq.responseText);
      VAR_EL_SETFOCUSON = GetElement('merkmalpin');
   }
}

function MerkmalPinEingabeCancel_OnClick(abutton) {
   HideElement('DIV_MERKMALPINEINGABE');
   SetFieldValue('merkmalpin', '');
   VAR_CURRENT_CB_MERKMALPIN = '';
   return false;
}


function AuftragStorno_OnClick(afnr, counter) {
   HidePopup();
   SetContent('afnr', afnr);
   SetFieldValue('auftrag_nr', afnr);
   var pos = SelectListRowById('tr_' + counter);
   ShowElement('DIV_STORNOAUFTRAG');
   var el = GetElement('DIV_STORNOAUFTRAG');
   if (document.all) {
      el.style.width = '41em';
   }
   el.style.left = pos[0] + 'px';
   el.style.top  = pos[1] + 'px';
   return false;
}

function AuftragStornoCancel_OnClick(abutton) {
   ClearListRows();
   HideElement('DIV_STORNOAUFTRAG');
}

function AuftragStornoConfirm_OnClick(abutton) {
   var f = abutton.form;
   var oReq = PostFormToRemoteRequest(
      '/af_storno.html',
      'POST',
      f,
      function () {
         AuftragStorno_Callback(oReq);
      }
   );
}

function AuftragStorno_Callback(oReq)  {
   HideElement('DIV_STORNOAUFTRAG');
   PosPopupToElementId('fieldset_status');
   SetHinweisText(oReq.responseText); 
   var el = GetElement('stornoAuftrag');
   if (el.getAttribute('error') == '') {
      document.location.reload();
   }
   else {
      ShowHinweisText(oReq.responseText);
   }
   ClearListRows();
}

function StatusAutoRefresh_OnClick(acbx, sessionid, ainterval) {
   if (acbx.checked) {
      window.setTimeout(function() {
         StatusAutoRefresh(sessionid);
      }, ainterval);
   }
   else {
      window.clearTimeout(VAR_TIMEOUT_STATUS);
   }
   
}

function StatusAutoRefresh(sessionid) {
   document.location = 'status.html?sessionid=' + sessionid + '&autorefresh=1';
}

function AuftragSuche_ShowKalender(atxtfldid) {
   var pos = CalcElementPositionId(atxtfldid);
   CAL_ON_CHOOSE_DATE = function(date) {
      var el_datum = GetElement(atxtfldid);
      el_datum.value = date;
      el_datum.focus();
      Calendar_Hide();
   };
   var date = new Date();
   Calendar_Show(date.getFullYear(), date.getMonth() + 1, pos[0], pos[1]);
}
/* ============================================================================
H I L F S F U N K T I O N E N
=============================================================================*/

function PosPopupToEingabe() {
   if (VAR_AF_EINGABEMODUS == CONST_AF_EINGABE_ADRESSE) {
      PosPopupToElementId('fieldset_adresse');
   }
   if (VAR_AF_EINGABEMODUS == CONST_AF_EINGABE_HALTESTELLE) {
      PosPopupToElementId('fieldset_haltestelle');
   }
}

function ShowVorlage(acheckbox) {
   if (acheckbox.checked) {
      ShowElement('vorlageeingabe');
      HideElement('vorlageauswahl');
   }
   else {
      HideElement('vorlageeingabe');
      ShowElement('vorlageauswahl');
   }
}

  
function Auftrag_ShowKalender() {
   var pos = CalcElementPosition(document.getElementById('datum'));
   CAL_ON_CHOOSE_DATE = function(date) {
      var el_datum = document.getElementById('datum');
      el_datum.value = date;
      el_datum.focus();
      Calendar_Hide();
   };
   CAL_ON_CLOSE = function() {
      GetElement('datum').focus();
   };

   var date = new Date();
   Calendar_Show(date.getFullYear(), date.getMonth() + 1, pos[0], pos[1]); 
}

function Haltestelle_ShowKalender() {
   var pos = CalcElementPosition(document.getElementById('hst_datum'));
   CAL_ON_CHOOSE_DATE = function(date) {
      var el_datum = document.getElementById('hst_datum');
      el_datum.value = date;
      el_datum.focus();
      Calendar_Hide();
   };
   var date = new Date();
   Calendar_Show(date.getFullYear(), date.getMonth() + 1, pos[0], pos[1]);
}




function Check_SubFMSIFehler() {
   var el = GetElement('SUB_FMSIFEHLER');
   if (el && el.innerHTML != '') {
      ShowHinweis('SUB_FMSIFEHLER');
   }
//   el.parentNode.removeChild(el);
}
