
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNKTIONEN FÜR DATUM //////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// © 2003 RDTS AG, TRIER                        //////////////////////////////////////////////////////////////
// WWW.CTT-TRIER.DE                             //////////////////////////////////////////////////////////////
// AUTOR: DF                                    //////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////


// Das JavaScript-Programm schreibt datum2 von datum1 in beliebigen schritten!!
// Der Aufruf erfolgt über die Hauptfunktion schreibe_datum('datum1', 'datum2', 'datumstelle (zb Monat)', schritte); entweder
// als Aufruf oder onSubmit
// Benötigt wird das ganze für CMS-Datenbankeintrag, oder Tagesdatum, etc.
// Author: df, rdts AG - Trier
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Globale Variablen
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var system_teil_datum_tag = '';
var system_teil_datum_monat = '';
var system_teil_datum_jahr = '';

var monate = new Array;
monate[0] = 31;
monate[1] = 28;
monate[2] = 31;
monate[3] = 30;
monate[4] = 31;
monate[5] = 30;
monate[6] = 31;
monate[7] = 31;
monate[8] = 30;
monate[9] = 31;
monate[10] = 30;
monate[11] = 31;

var wochentag=new Array;
wochentag[0] = "Sonntag";
wochentag[1] = "Montag";
wochentag[2] = "Dienstag";
wochentag[3] = "Mittwoch";
wochentag[4] = "Donnerstag";
wochentag[5] = "Freitag";
wochentag[6] = "Samstag";

var monatsname = new Array();
monatsname[0] = String('Januar');
monatsname[1] = String('Februar');
monatsname[2] = String('März');
monatsname[3] = String('April');
monatsname[4] = String('Mai');
monatsname[5] = String('Juni');
monatsname[6] = String('Juli');
monatsname[7] = String('August');
monatsname[8] = String('September');
monatsname[9] = String('Oktober');
monatsname[10] = String('November');
monatsname[11] = String('Dezember');



//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Hilfsfunktionen
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt Datum im rechten Format YYYYMMDD zurück
  //-------------------------------------------------------------
  //-------------------------------------------------------------  
  function formatiere_datum(datum){
    if (pruefe_datum(datum)){
      return pruefe_datum(datum);
    }
    else{
      return tagesdatum();
    }
    return false;
  }
  
  //-------------------------------------------------------------

  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion formatiert cms-datum YYYYMMDD in dt. datum tt.mm.jjjj
  // und gibt es zurück
  //-------------------------------------------------------------
  //-------------------------------------------------------------  
  function formatiere_dt_datum(cms_datum_){
    if (pruefe_datum(cms_datum_)){
      //alert('deutsche_schreibweise');
      var datum_teil_jahr = new String;
      var datum_teil_monat = new String;
      var datum_teil_tag = new String;
      datum_teil_jahr = cms_datum_.substring(0,4);
      //alert(datum_teil_jahr);
      datum_teil_monat = cms_datum_.substring(4,6);
      //alert(datum_teil_monat);
      datum_teil_tag = cms_datum_.substring(6,8);  
      return String(datum_teil_tag +'.'+ datum_teil_monat +'.'+ datum_teil_jahr);
    }
  }
  
  //-------------------------------------------------------------  


  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt Tagesdatum in CMS-Format zurück
  //-------------------------------------------------------------
  //-------------------------------------------------------------  
  function monats_ausgabe(cms_datum_){
    
    var jahr = cms_datum_.substring(0,4);
    
    var monat_ = cms_datum_.substring(4,6);
    
    monat_ = gib_monatsname(monat_); 
    
    // zusammen setzen
    var _datum = String(monat_ + ' ' +  jahr);
    
    return _datum;
  }
  
  //-------------------------------------------------------------


  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt Tagesdatum in CMS-Format zurück
  //-------------------------------------------------------------
  //-------------------------------------------------------------  
  function tagesdatum(){
  
    var heute = new Date();
    
    // jahr
    jahr = heute.getYear();
    if (navigator.appName=="Netscape"){
      jahr = 1900 + jahr;
    }

    // monat
    monat = heute.getMonth();
    monat = monat + 1;
    
    if (monat > 12) {
      monat = 1;
    }
    if (monat < 10) {
      monat = "0" + monat;
    }

    // tag
    tag = heute.getDate();
    if (tag < 10) {
      tag = "0" + tag;
    }

    // zusammen setzen
    var heute_datum = "" + jahr + monat + tag;
    
    return heute_datum;
  }
  
  //-------------------------------------------------------------

  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt Tagesdatum in dt. Schreibweise zurück
  //-------------------------------------------------------------
  //-------------------------------------------------------------  
  function tagesdatum_dt(){
  
    var heute = new Date();
    
    // jahr
    jahr = heute.getYear();
    if (navigator.appName=="Netscape"){
      jahr = 1900 + jahr;
    }

    // monat
    monat = heute.getMonth();
    monat = monat + 1;
    
    if (monat > 12) {
      monat = 1;
    }
    if (monat < 10) {
      monat = "0" + monat;
    }

    // tag
    tag = heute.getDate();
    if (tag < 10) {
      tag = "0" + tag;
    }

    // zusammen setzen
    var heute_datum = "" + tag + "." + monat + "." + jahr;
    
    return heute_datum;
  }
  
  //-------------------------------------------------------------
  
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt Tagesdatum in dt. Schreibweise zurück
  // zb 19. Oktober 2002
  //-------------------------------------------------------------
  //-------------------------------------------------------------  
  function tagesdatum_dt_monatsname(){

    var heute = new Date();

    // jahr
    jahr = heute.getYear();
    if (navigator.appName=="Netscape"){
      jahr = 1900 + jahr;
    }

    // monat
    monat = heute.getMonth();
    monat = monat + 1;

    if (monat > 12) {
      monat = 1;
    }
    if (monat < 10) {
      monat = "0" + monat;
    }

    // tag
    tag = heute.getDate();
    if (tag < 10) {
      tag = "0" + tag;
    }

    // zusammen setzen
    var heute_datum = "" + tag + ". " + monatsname[monat-1] + " " + jahr;

    return heute_datum;
  }
    
  //-------------------------------------------------------------


  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt Wochentag zurück
  //-------------------------------------------------------------
  //-------------------------------------------------------------  
  function gib_monatsname(monat_){
    var monat = parseInt(monat_);
    var monat = parseInt( monat_ - 1);
    monat = String(monatsname[monat]);
    return monat;
  }
  
  //-------------------------------------------------------------


  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt Wochentag zurück
  //-------------------------------------------------------------
  //-------------------------------------------------------------  
  function gib_wochentag(){
  
    var heute = new Date();
    var wotag = heute.getDay();
    
    return wotag;
  }
  
  //-------------------------------------------------------------
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion ermittelt ob Datum korrekte Werte erhält
  //-------------------------------------------------------------
  //-------------------------------------------------------------    
  function pruefe_datum(datum){
      
    var nicht_bedingung = new Array;
    nicht_bedingung[0] = '';
    nicht_bedingung[1] = '0';
    nicht_bedingung[2] = false;
    nicht_bedingung[3] = null;
    nicht_bedingung[4] = 'undefined';   
    
    for (var i=0; i<nicht_bedingung.length; i++){
      if (datum == nicht_bedingung[i]){
        return false;
      }
    } 
        
    var trenner = new Array;
    trenner[0] = /\./;
    trenner[1] = /-/;  
    //alert(datum);
    for (var n=0; n<trenner.length; n++){
      if (trenner[n].exec(datum)){  
        datum = ermittel_datum_schreibweise(datum);
        return datum;
      }
    }
        
    var ausdruck = new Array;
    ausdruck[0] = /\s/;
    ausdruck[1] = /\D/;   
    
    for (var m=0; m<ausdruck.length; m++){
      if (ausdruck[m].exec(datum)){
        return false;
      }
    }  
    
    var laenge = 8;
    if (datum.length != laenge){
      return false;
    }
    
    return datum;
  }
  
  //-------------------------------------------------------------
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion ermittel die Datumsschreibweise zb 15.09.2002 oder 
  // 15-07-2002 oder 2002.09.15, usw.
  // Datum wird in cms-schreibweise rueckgegeben
  //-------------------------------------------------------------
  //-------------------------------------------------------------    
  function ermittel_datum_schreibweise(datum){
    //alert('ermittel_datum_schreibweise()');
    var schreibweise = new Array;
    schreibweise[1] = 'deutsche_schreibweise';
    schreibweise[2] = 'deutsche_schreibweise';
    schreibweise[4] = 'englische_schreibweise';
    var bedingung = new Array;
    bedingung[0] = '.';
    bedingung[1] = '-';
    for (var i=0; i<datum.length; i++){
      for (var u=0; u<bedingung.length; u++){
        if (datum.charAt(i) == bedingung[u]){
          if (schreibweise[i]){
            var datumformatiert = eval(schreibweise[i] + '(\''+datum+'\', \''+bedingung[u]+'\')');
            if(datumformatiert){
              return datumformatiert;
            }
          }
        }
      }
    }
  }
  
  //-------------------------------------------------------------
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion formatiert deutsches datum dd.mm.yyyy oder tt-mm-yyyy
  // in cms-format yyyymmdd
  //-------------------------------------------------------------
  //-------------------------------------------------------------    
  function deutsche_schreibweise(datum, begrenzer){
    //alert('deutsche_schreibweise');
    var datum_teil_jahr = new String;
    var datum_teil_monat = new String;
    var datum_teil_tag = new String;
    var datum_teile = datum.split(begrenzer);
    // tage
    datum_teil_tag = datum_teile[0];
    if (datum_teil_tag.length < 2){
      datum_teil_tag = '0' + datum_teil_tag;
    }
    //alert(datum_teil_tag)
    // monat
    datum_teil_monat = datum_teile[1];
    if (datum_teil_monat.length < 2){
      datum_teil_monat = '0' + datum_teil_monat;
    }
    //alert(datum_teil_monat)
    // jahr
    datum_teil_jahr = datum_teile[2];
    if (datum_teil_jahr.length < 2){
      datum_teil_jahr = '20' + datum_teil_jahr;
    }
    //alert(datum_teil_jahr)
    //alert(datum_teil_jahr +''+ datum_teil_monat +''+ datum_teil_tag)
    return datum_teil_jahr +''+ datum_teil_monat +''+ datum_teil_tag;
  }
  
  //-------------------------------------------------------------
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion formatiert englisches datum yyyy.mm.dd oder yyyy
  // in cms-format yyyymmdd
  //-------------------------------------------------------------
  //-------------------------------------------------------------    
  function englische_schreibweise(datum, begrenzer){
    //alert('englische_schreibweise');
    var datum_teil_jahr = new String;
    var datum_teil_monat = new String;
    var datum_teil_tag = new String;
    var datum_teile = datum.split(begrenzer);
    // jahr
    datum_teil_jahr = datum_teile[0];
    //alert(datum_teil_jahr)
    // monat
    datum_teil_monat = datum_teile[1];
    if (datum_teil_monat.length < 2){
      datum_teil_monat = '0' + datum_teil_monat;
    }
    //alert(datum_teil_monat)
    // tage
    datum_teil_tag = datum_teile[2];
    if (datum_teil_tag.length < 2){
      datum_teil_tag = '0' + datum_teil_tag;
    }
    //alert(datum_teil_tag)
    //alert(datum_teil_jahr +''+ datum_teil_monat +''+ datum_teil_tag)
    return String(datum_teil_jahr +''+ datum_teil_monat +''+ datum_teil_tag);
  }
  
  //-------------------------------------------------------------
  
    

  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // rechnet die schritte monat in tage um 
  //-------------------------------------------------------------
  //-------------------------------------------------------------    
  function gib_tage_in_monatschritten_zukunft(monat, schritte){
    //alert(monat);
    var my_tage = 0;
    var monatsschritte = parseInt(monat);
    //alert(monatsschritte);
    for (var i=0; i<schritte; i++){
      if (monatsschritte >= 12){
        monatsschritte = 0;
      }
      my_tage += monate[monatsschritte];
      monatsschritte++;
    }
    
    return my_tage;
  } 

//-------------------------------------------------------------
  
    

  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // rechnet die schritte monat in tage um (vergangenheit)
  //-------------------------------------------------------------
  //-------------------------------------------------------------    
  function gib_tage_in_monatschritten_vergangenheit(monat, schritte){
    var my_tage = 0;
    var monatsschritte = parseInt(monat-1);
    //alert(monat);
    
    for (var i=0; i>schritte; i--){
      if (monatsschritte < 0){
        monatsschritte = 11;
      }
      my_tage += monate[monatsschritte];
      monatsschritte--;
    }
    
    return parseInt((my_tage) * -1);
  } 

//-------------------------------------------------------------
  
    

  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // prüft ob schaltjahr relevant, 29.02
  //-------------------------------------------------------------
  //-------------------------------------------------------------    
  function pruefe_schaltjahr(_monat, _tag){
    //alert(_monat +' '+ _tag);
    var datum = String(_monat + _tag);
    if (datum == "0229"){
      return true;
    }
    return false;
  } 

  //-------------------------------------------------------------
  

  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion ermittelt ob Jahr ein Schaltjahr ist
  //-------------------------------------------------------------
  //-------------------------------------------------------------  
  function schaltjahr(jahr){
    if (((jahr % 4 == 0) && (jahr % 100 != 0))||(jahr % 400 == 0)){
      return true;
    }
    else{
      return false;
    }
  }
  
  //-------------------------------------------------------------


  
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion formatiert cms-datum yyyymmdd
  // in js-date-format yyyy , mm , dd
  //-------------------------------------------------------------
  //-------------------------------------------------------------    
  function formatiere_fuer_tag(datum){
    //alert('deutsche_schreibweise');
    var datum_teil_jahr = new String;
    var datum_teil_monat = new String;
    var datum_teil_tag = new String;
    datum_teil_jahr = datum.substring(0,4);
    //alert(datum_teil_jahr);
    datum_teil_monat = datum.substring(4,6);
    datum_teil_monat--;
    if (datum_teil_monat < 0){
      datum_teil_monat = 11;
    }
    //alert(datum_teil_monat);
    datum_teil_tag = datum.substring(6,8);
    //alert(datum_teil_tag);
    system_teil_datum_jahr = datum_teil_jahr;
    system_teil_datum_monat = datum_teil_monat;
    system_teil_datum_tag = datum_teil_tag;
    return true;
  }
  
  //-------------------------------------------------------------


  
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion formatiert cms-datum yyyymmdd
  // in js-date-format yyyy , mm , dd
  //-------------------------------------------------------------
  //-------------------------------------------------------------    
  function formatiere_fuer_monat(datum){
    //alert('deutsche_schreibweise');
    var datum_teil_jahr = new String;
    var datum_teil_monat = new String;
    var datum_teil_tag = new String;
    datum_teil_jahr = datum.substring(0,4);
    //alert(datum_teil_jahr);
    datum_teil_monat = datum.substring(4,6);
    if (datum_teil_monat < 1){
      datum_teil_monat = 12;
    }
    //alert('datum_teil_monat = '+datum_teil_monat);
    datum_teil_tag = datum.substring(6,8);
    //alert(datum_teil_tag);
    system_teil_datum_jahr = datum_teil_jahr;
    system_teil_datum_monat = datum_teil_monat;
    system_teil_datum_tag = datum_teil_tag;
    return true;
  }
  
  //-------------------------------------------------------------
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt geänderten Tag  zurück
  //-------------------------------------------------------------
  //-------------------------------------------------------------    
  function tag_(_jahr, _monat, _tag, schritt){
    //alert(_jahr, _monat, _tag);
    var heute = new Date(_jahr, _monat, _tag);
    var zeit_jetzt = heute.getTime();
    //alert('heute = ' + heute);
    //alert(zeit_jetzt);
    var zeit_in_tagen = parseInt(zeit_jetzt + (schritt * 24 * 60 * 60 * 1000 ));
    //alert(zeit_in_tagen);
    heute.setTime(zeit_in_tagen);
    //alert(heute);
    
    var jahr = heute.getYear();
    if (navigator.appName=="Netscape"){
      jahr = 1900 + jahr;
    }

    var monat = heute.getMonth();
    monat = monat + 1;    
    if (monat > 12) {
      monat = 1;
    }
    if (monat < 10) {
      monat = "0" + monat;
    }
    
    var tag = heute.getDate();
    if (tag < 10){
      tag = "0" + tag;
    }
    
    var cms_datum = jahr +''+ monat +''+ tag;
    //alert(cms_datum);
    return cms_datum;       
  }
  
  //-------------------------------------------------------------
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt geänderten Monat (dadurch auch Jahr)  zurück
  //-------------------------------------------------------------
  //-------------------------------------------------------------    
  function monat_(_jahr, _monat, _tag, schritt){
    if (schritt > 0){
      for (var i=0; i<schritt; i++){
        if (_monat >= 12){
          _monat = 0;
          _jahr++;
        }
        _monat++;
      }
    }
    else{
      for (var i=0; i>schritt; i--){
        if (_monat <= 0){
          _monat = 12;
          _jahr--;
        }
        _monat--;
      }
    }
    
    if (_monat < 10){
      _monat = '0' + _monat;
    }    
    
    if (pruefe_schaltjahr(_monat, _tag)){
      if (schaltjahr(_jahr) == false){
        _tag = '28';
      }
    }    
    
    var cms_datum = _jahr +''+ _monat +''+ _tag;
    //alert(cms_datum);
    return cms_datum;       
  }
  
  //-------------------------------------------------------------
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt geändertes jahr zurück
  //-------------------------------------------------------------
  //-------------------------------------------------------------    
  function jahr_(_jahr, _monat, _tag, schritt){
    if (schritt > 0){
      for (var i=0; i<schritt; i++){
         _jahr++;
      }
    }
    else{
      for (var i=0; i>schritt; i--){
          _jahr--;
      }
    }  
    
    if (pruefe_schaltjahr(_monat, _tag)){
      if (schaltjahr(_jahr) == false){
        _tag = '28';
      }
    }  
    
    var cms_datum = _jahr +''+ _monat +''+ _tag;
    //alert(cms_datum);
    return cms_datum;       
  }
  
  //-------------------------------------------------------------





//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Hauptfunktionen
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt entsprechendes DATUM zurück!!
  // Aufruf erfolgt: schreibe_datum('ausgangswert', 'zielwert', 'tag oder monat oder jahr', anzahl_schritte);
  // wenn anzahl_schritte negativ, dann wird datum rückwerts errechnet (vergangenheit)
  //-------------------------------------------------------------
  //-------------------------------------------------------------   
  function schreibe_datum(){
    var my_form_teil = document[document.forms[0].name];
    var my_datum_ausgangswert = formatiere_datum(my_form_teil[schreibe_datum.arguments[0]].value);
    var my_datum_zielwert = my_form_teil[schreibe_datum.arguments[1]];
    var my_datum_aenderungs_teil = schreibe_datum.arguments[2];
    var my_datum_aenderung_schritte = schreibe_datum.arguments[3];
    
    // tag
    if (my_datum_aenderungs_teil == 'tag'){
      if (formatiere_fuer_tag(my_datum_ausgangswert)){
        cms_datum = tag_(system_teil_datum_jahr, system_teil_datum_monat, system_teil_datum_tag, my_datum_aenderung_schritte);
      }
    }
    // monat
    if (my_datum_aenderungs_teil == 'monat'){
      if (formatiere_fuer_monat(my_datum_ausgangswert)){
        cms_datum = monat_(system_teil_datum_jahr, system_teil_datum_monat, system_teil_datum_tag, my_datum_aenderung_schritte);
      }      
    }
    // jahr
    if (my_datum_aenderungs_teil == 'jahr'){
      if (formatiere_fuer_monat(my_datum_ausgangswert)){
        cms_datum = jahr_(system_teil_datum_jahr, system_teil_datum_monat, system_teil_datum_tag, my_datum_aenderung_schritte);
      }      
    }
    
    if (pruefe_datum(cms_datum)){
      my_form_teil[schreibe_datum.arguments[0]].value = my_datum_ausgangswert;
      my_datum_zielwert.value = cms_datum;
      //alert(cms_datum);
      return true;
    }
    else{
      return false;
    }   
    
  }
  
  //-------------------------------------------------------------
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt entsprechendes DATUM zurück!!
  // Aufruf erfolgt: schreibe_datum_onload('ausgangswert', 'zielwert', 'tag oder monat oder jahr', anzahl_schritte);
  // wenn anzahl_schritte negativ, dann wird datum rückwerts errechnet (vergangenheit)
  // wird benötigt um datum ins feld zu schreiben bei (onLoad)
  //-------------------------------------------------------------
  //-------------------------------------------------------------   
  function schreibe_datum_onload(){
    var my_form_teil = document[document.forms[0].name];
    var my_datum_ausgangswert = formatiere_datum(ermittel_datum_schreibweise(my_form_teil[schreibe_datum_onload.arguments[0]].value));
    var my_datum_zielwert = my_form_teil[schreibe_datum_onload.arguments[1]];
    var my_datum_aenderungs_teil = schreibe_datum_onload.arguments[2];
    var my_datum_aenderung_schritte = schreibe_datum_onload.arguments[3];
    
    // tag
    if (my_datum_aenderungs_teil == 'tag'){
      if (formatiere_fuer_tag(my_datum_ausgangswert)){
        cms_datum = tag_(system_teil_datum_jahr, system_teil_datum_monat, system_teil_datum_tag, my_datum_aenderung_schritte);
      }
    }
    // monat
    if (my_datum_aenderungs_teil == 'monat'){
      if (formatiere_fuer_monat(my_datum_ausgangswert)){
        cms_datum = monat_(system_teil_datum_jahr, system_teil_datum_monat, system_teil_datum_tag, my_datum_aenderung_schritte);
      }      
    }
    // jahr
    if (my_datum_aenderungs_teil == 'jahr'){
      if (formatiere_fuer_monat(my_datum_ausgangswert)){
        cms_datum = jahr_(system_teil_datum_jahr, system_teil_datum_monat, system_teil_datum_tag, my_datum_aenderung_schritte);
      }      
    }
    
    if (pruefe_datum(cms_datum)){
      my_form_teil[schreibe_datum_onload.arguments[0]].value = formatiere_dt_datum(my_datum_ausgangswert);
      my_datum_zielwert.value = formatiere_dt_datum(cms_datum);
      //alert(cms_datum);
      return true;
    }
    else{
      return false;
    }   
    
  }
  
  //-------------------------------------------------------------
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt Tagesdatum mit Wochentag zurück!!
  // zB Montag, 14.10.2002
  // Aufruf erfolgt: schreibe_tagesdatum_dt_wochentag();
  //-------------------------------------------------------------
  //-------------------------------------------------------------   
  function schreibe_tagesdatum_dt_wochentag(){
    var my_wochtentag = wochentag[gib_wochentag()];
    var my_tagesdatum = tagesdatum_dt();
    return document.write(my_wochtentag + ', ' + my_tagesdatum);
  }
  
  //-------------------------------------------------------------
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt Tagesdatum mit Wochentag zurück!!
  // zB Montag, 14.10.2002
  // Aufruf erfolgt: schreibe_tagesdatum_dt_wochentag();
  //-------------------------------------------------------------
  //-------------------------------------------------------------   
  function schreibe_tagesdatum_dt_wochentag_monatsname(){
    var my_wochtentag = wochentag[gib_wochentag()];
    var my_tagesdatum = tagesdatum_dt_monatsname();
    return document.write(my_wochtentag + ', ' + my_tagesdatum);
  }
  
  //-------------------------------------------------------------
  
  
  //-------------------------------------------------------------
  //-------------------------------------------------------------
  // Funktion gibt Tagesdatum zurück!!
  // zB 14.10.2002
  // Aufruf erfolgt: gib_tagesdatum_dt();
  //-------------------------------------------------------------
  //-------------------------------------------------------------   
  function gib_tagesdatum_dt(){
    var my_tagesdatum = tagesdatum_dt();
    return my_tagesdatum;
  }
  
  //-------------------------------------------------------------
  
  
  
  
  //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

