var VAR_SCHECK_MAX_GUELTIG_INTERVALL;
var VAR_SCHECK_MAX_GUELTIG_BETRAG;
//Prefix ss_     fuer Scheckserie
//Prefix scheck_ fuer Scheck
function SetScheckserie(nummer, bezeichnung, max_intervall, max_betrag) {
   GetElement('ss_scheckserie').value = nummer;
   GetElement('ss_bezeichnung').value = bezeichnung;
   GetElement('ss_max_gueltig_intervall').value = max_intervall;
   GetElement('ss_max_betrag').value = max_betrag;
}

function ShowScheck(aval) {
   if (aval) {
      ShowElement('fieldset_scheck');
      ShowElement('bt_erstellen', 'inline');
   }
   else {
      HideElement('fieldset_scheck');
      HideElement('bt_erstellen');
      HideElement('containter_scheckerstellen');
      SetScheckserie('','','','');
      SetContent('container_scheckerstellen','');
   }
}

function ScheckAbrechnungsFirma_OnChange(aselbox, asid) {
   //var value = aselbox.options[aselbox.selectedIndex].value;
   var value = GetFieldValue(aselbox.id); 
   if (value == '') {
      ShowScheck(false);
      return false;
   }

   var url = '/scheck_getserienliste.html';
   url += '?sessionid=' + asid;
   url += '&abrechnungsfirma=' + encodeURI(value);
   var oReq = DoRemoteRequest(
      url,
      'GET',
      undefined,
      function() {
         PosPopupToElementId('fieldset_scheckserie');
         ShowAuswahl(oReq.responseText);
         SelectFirstAuswahlElement();
      }
   );
}

function ScheckSerie_OnClick(ahref) {
   var index = ahref.getAttribute('index');
   var el_max_gueltig_intervall = GetElement('max_gueltig_intervall' + index);
   var el_max_betrag = GetElement('max_betrag' + index);
   SetScheckserie(ahref.getAttribute('nummer'), ahref.innerHTML, el_max_gueltig_intervall.innerHTML, el_max_betrag.innerHTML);
   HideAuswahl();
   ShowScheck(true);
   var dtnow = new Date();
   GetElement('scheck_gueltig_von').value = dtnow.ToFMSDate();
   dtnow.setDate(parseInt(dtnow.getDate()) + parseInt(GetElement('ss_max_gueltig_intervall').value));
   GetElement('scheck_gueltig_bis').value = dtnow.ToFMSDate();
   GetElement('scheck_gueltig_von').focus();
   GetElement('scheck_betrag').value = GetElement('ss_max_betrag').value;
   return false;
}

function ScheckErstellen_OnClick(abutton) {
   var f = abutton.form;
   var dtvon = new Date();
   dtvon.FromFMSDate(f.scheck_gueltig_von.value);
   var dtbis = new Date();
   dtbis.FromFMSDate(f.scheck_gueltig_bis.value);
   PosPopupToElementId('fieldset_scheck');
   var s_fehler = '';
   if ((f.scheck_gueltig_von.value == '') || (f.scheck_gueltig_bis.value == '')) {
      s_fehler += GetContent('DIV_ERR_VONBISDATUMFEHLT') + '<br/>';
   }
   checkDate(f.scheck_gueltig_von);
   checkDate(f.scheck_gueltig_bis); 
   if (dtvon > dtbis) {
      s_fehler += GetContent('DIV_ERR_VONGROESSERALSBIS') + '<br/>';
   }

   var diffdays = dtbis.DiffDays(dtvon);
   if (diffdays > GetElement('ss_max_gueltig_intervall').value) {
      s_fehler += GetContent('DIV_ERR_GUELTIGKEITUEBERSCHRITTEN') + '<br/>';
   }
   if (isNaN(parseFloat(f.scheck_betrag.value))) {
      s_fehler += GetContent('DIV_ERR_MAXIMALBETRAGMUSSZAHLSEIN') + '<br/>';
   }
   if (parseFloat(f.scheck_betrag.value) > parseFloat(f.ss_max_betrag.value)) {
      s_fehler += GetContent('DIV_ERR_MAXIMALBETRAGUEBERSCHRITTEN') + '<br/>';
   }
   if (s_fehler != '') {
      ShowHinweisText(s_fehler);
      return;
   }
   var oReq = PostFormToRemoteRequest(
      '/scheck_erstellen.html',
      'POST',
      f,
      function() {
         ScheckErstellen_Callback(oReq);
      }       
   );
}

function ScheckErstellen_Callback(oReq) {
   SetContent('container_scheckerstellen', oReq.responseText);
   ShowElement('container_scheckerstellen');   
   HideElement('bt_erstellen');
   ShowElement('bt_weitererscheck', 'inline');
}

function ScheckWeiterer_OnClick(abutton) {
   HideElement('container_scheckerstellen');
   HideElement('bt_weitererscheck');
   ShowElement('bt_erstellen', 'inline');
   GetElement('scheck_gueltig_von').focus();
   
}
function ScheckVersenden_OnClick(abutton) {
   var f = abutton.form;
   /* CHECK Telefonnummer */
   var oReq = PostFormToRemoteRequest(
      '/scheck_versenden.html',
      'POST',
      f,
      function() {
         ScheckVersenden_Callback(oReq);
      }
   );   
}

function ScheckVersenden_Callback(oReq) {
   PosPopupToElementId('container_scheckerstellen');
   ShowHinweisText(oReq.responseText);
}

function Scheck_Download(sessionid, abrechnungsfirma, scheckserie, schecknummer) {
   var url =  'scheck.pdf';
   url += '?sessionid=' + sessionid;
   url += '&abrechnungsfirma=' + abrechnungsfirma;
   url += '&scheckserie=' + scheckserie;
   url += '&schecknummer=' + schecknummer;
   var awin = window.open(url, 'TAXI4ME_SCHECK_PDF', 'width=450,height=640,resizable=yes');

}

function Scheck_Verrechnungsfall(sessionid, abrechnungsfirma, verrechnungsfall, atr_id) {
   HidePopup();
   HideElement('DIV_STORNOSCHECK');
   var pos = SelectListRowById(atr_id);
   ShowElement('DIV_VERRECHNUNGSFALL');
   var el = GetElement('DIV_VERRECHNUNGSFALL');
   el.style.left = pos[0] + 'px';
   el.style.top = pos[1] + 'px';
 
   var url = 'fakt_verrechnungsfall.html';
   url += '?sessionid=' + sessionid;
   url += '&abrechnungsfirma=' + abrechnungsfirma;
   url += '&verrechnungsfall=' + verrechnungsfall;
   
   var oReq = DoRemoteRequest(
      url,
      'GET',
      undefined,
      function() {
         Scheck_Verrechnungsfall_Callback(oReq);
      }
   );

   return false; 
}

function Scheck_Verrechnungsfall_Callback(oReq) {
   SetContent('DIV_VERRECHNUNGSFALL_INHALT', oReq.responseText);
}

/* Der Benutzer will das Datum ueber den Kalender eingeben */
function Scheck_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();
      if (atxtfldid == 'scheck_gueltig_von') {
         var ar = date.split('.');
         var datum_bis = new Date(ar[2],ar[1] - 1, ar[0]);
         var newday = parseInt(ar[0]) + parseInt(GetElement('ss_max_gueltig_intervall').value);
         datum_bis.setDate(parseInt(ar[0]) + parseInt(GetElement('ss_max_gueltig_intervall').value));
         GetElement('scheck_gueltig_bis').value = datum_bis.ToFMSDate();
      }
   };
   var date = new Date();
   date.FromFMSDate(GetElement(atxtfldid).value);
   if (atxtfldid == 'scheck_gueltig_bis') {
   }
   Calendar_Show(date.getFullYear(), date.getMonth() + 1, pos[0], pos[1]);
}

/* Der Suchen Button in der Scheck-Liste wurde geklickt */
function ScheckListeSuchen_OnClick(abutton) {
   var f = abutton.form;
   if (GetFieldValue('abrechnungsfirma') == '') {
      PosPopupToElementId('fieldset_kriterien');
      ShowHinweis('DIV_ERR_KEINEABRECHNUNGSFIRMAGEWAEHLT');
      return false;
   }
   abutton.form.submit();
}

function ScheckSuche_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]);
}

/* ScheckListe - SMS */
var VAR_SCHECKLISTE_SMS_EL_TR = '';

function ScheckListeSMS_OnClick(scheckserie, schecknummer, counter) {
   HidePopup();
   ScheckListe_HideAllPopups();
   SetContent('SPAN_SCHECKINFO_SMS', scheckserie + '/' + schecknummer);
   SetFieldValue('scheckserie_sms', scheckserie);
   SetFieldValue('schecknummer_sms', schecknummer);
   SetFieldValue('sms_telefon', '');
   VAR_SCHECKLISTE_SMS_EL_TR = 'tr_' + counter;
   var pos = SelectListRowById(VAR_SCHECKLISTE_SMS_EL_TR);
   ShowElement('DIV_SCHECKSMSVERSAND');
   var el = GetElement('DIV_SCHECKSMSVERSAND');
   if (document.all) {
      el.style.width = '41em';
   }
   el.style.left = pos[0] + 'px';
   el.style.top = pos[1] + 'px';
   return false;
}

function ScheckListeSMSCancel_OnClick(abutton) {
   ClearListRows();
   HideElement('DIV_SCHECKSMSVERSAND');
}

function ScheckListeSMSConfirm_OnClick(abutton) {
   var f = abutton.form;
   var oReq = PostFormToRemoteRequest(
      'scheck_versenden.html', 
      'POST',
      f, 
      function() {
         ScheckListeSMS_Callback(oReq);
      }
   );
}

function ScheckListeSMS_Callback(oReq) {
   ClearListRows();
   ScheckListe_HideAllPopups();
   PosPopupToElementId(VAR_SCHECKLISTE_SMS_EL_TR);
   ShowHinweisText(oReq.responseText);
}

function ScheckStorno_OnClick(scheckserie, schecknummer, counter) {
   HidePopup();
   ScheckListe_HideAllPopups();
   SetContent('SPAN_SCHECKINFO', scheckserie + '/' + schecknummer);
   SetFieldValue('scheckserie', scheckserie);
   SetFieldValue('schecknummer', schecknummer);  
   var pos = SelectListRowById('tr_' + counter);
   ShowElement('DIV_STORNOSCHECK');
   var el = GetElement('DIV_STORNOSCHECK');
   if (document.all) {
      el.style.width = '41em';
   }
   el.style.left = pos[0] + 'px';
   el.style.top = pos[1] + 'px';
   
   return false;
}

function ScheckStornoCancel_OnClick(abutton) {
   ClearListRows();
   HideElement('DIV_STORNOSCHECK');
}

function ScheckStornoConfirm_OnClick(abutton) { 
   var f = abutton.form;
   var oReq = PostFormToRemoteRequest(
      'scheck_storno.html',
      'POST',
      f,
      function() {
         ScheckStorno_Callback(oReq);
      }
   );
}

function ScheckStorno_Callback(oReq) {
   ScheckListe_HideAllPopups();
   PosPopupToElementId('fieldset_ergebnis');
   SetHinweisText(oReq.responseText);
   var el = GetElement('stornoScheck');
   if (el.getAttribute('error') == '') {
      document.location.reload();
   }
   else {
      ShowHinweisText(oReq.responseText);
   }
   ClearListRows();
}

function ScheckListe_HideAllPopups() {
   HideElement('DIV_STORNOSCHECK');
   HideElement('DIV_VERRECHNUNGSFALL');
   HideElement('DIV_SCHECKSMSVERSAND');
}

