/*==================================================*/
/*======  Enthält generelle Datumsfunktionen  ======*/
/*==================================================*/

/*===============  AktJahr  ================*/
/*ermittelt das aktuelle Jahr */
function AktJahr(){
var Datum = new Date();
var Jahr = Datum.getFullYear();
return Jahr;
}

/*===============  AktMonat  ================*/
/*ermittelt den aktuellen Monat */
function AktMonat(){
var Datum = new Date();
var Monat = Datum.getMonth();
return Monat;
}

/*===============  AktDatum  ================*/
/*ermittelt das aktuelle Datum im Format DD.MM.YYYY */
function AktDatum(){
var Datum = new Date();
/*return Tag(Datum)+". "+Monat(Datum)+" "+Jahr(Datum);*/
return DatumFormatiert(Datum);
}

/*===============  Jahr  ================*/
/*ermittelt das Jahr aus einem Datum */
function Jahr(Datum){
var Jahr = Datum.getFullYear();
return Jahr;
}

/*===============  Monat  ================*/
/*ermittelt den Monat aus einem Datum */
function Monat(Datum){
var Jahresmonat = Datum.getMonth();
var Monate = new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni",
                      "Juli", "August", "September", "Oktober", "November", "Dezember");
return Monate[Jahresmonat];
}

/*===============  Jahr  ================*/
/*ermittelt die Monatszahl aus einem Datum */
function MonatZahl(Datum){
var Jahresmonat = Datum.getMonth();
return Jahresmonat + 1;
}

/*===============  Tag  ================*/
/*ermittelt den Tag aus einem Datum */
function Tag(Datum){
var Tag = Datum.getDate();
return Tag;
}

/*===============  wotag  ================*/
/*ermittelt den Wochentag aus einem Datum */
function wotag(Datum){
var TagInWoche = Datum.getDay();
var Wochentag = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch",
                          "Donnerstag", "Freitag", "Samstag");
return Wochentag[TagInWoche];
}

/*===============  Uhrzeit  ================*/
/*ermittelt die Uhrzeit aus einem Datum und formatiert dieses im Format HH:MM*/
function Uhrzeit(Datum){
var Stunden = Datum.getHours();
var Minuten = Datum.getMinutes();
var StdAusgabe = ((Stunden < 10) ? "0" + Stunden : Stunden);
var MinAusgabe = ((Minuten < 10) ? "0" + Minuten : Minuten);

/*return StdAusgabe + "." + MinAusgabe + " Uhr";*/
return UhrzeitFormatiert(StdAusgabe, MinAusgabe);
}

/*===============  DatumFormatiert  ================*/
/*formatiert ein Datum im Format DD.MM.YYYY*/
function DatumFormatiert (Datum)
{
	return Tag(Datum)+". "+Monat(Datum)+" "+Jahr(Datum);
}

/*===============  UhrzeitFormatiert  ================*/
/*formatiert eine Uhrzeit im Format HH.MM */
function UhrzeitFormatiert (Stunden, Minuten)
{
	return Stunden + "." + Minuten + " Uhr";
}

/*===============  DatumAusgabe  ================*/
/*formatiert ein Datum im Format DD.MM.YYYY oder MM.YYYY */
function DatumAusgabe (DatumZwischen, DatumIn)
{
var DatAusgabe;
  if (DatumZwischen.substr(0,2) != "00")
    {
		  if (DatumZwischen == "offen")
		    {
			    DatAusgabe = "offen";
		    }
		  else
		    {
          DatAusgabe = Tag(DatumIn)+'. '+ Monat(DatumIn)+' '+ Jahr(DatumIn);
        }
    }
  else
	  {
      DatAusgabe = Monat(DatumIn)+' '+ Jahr(DatumIn);
	  }
  return DatAusgabe;
}

/*===============  DatumAusgabeWochentag  ================*/
/*formatiert ein Datum und stelle diesem den Wochentag voran */
function DatumAusgabeWochentag (DatumZwischen, DatumIn)
{
	var DatAusgabe = DatumAusgabe (DatumZwischen, DatumIn);
	var Wochentag  = wotag(DatumIn);
	
	return Wochentag + ", " + DatAusgabe;
}

/*===============  ZeitAusgabeFormat  ================*/
/*formatiert eine Zeitangabe, inkl. Berücksichtigung von 'von ... bis ...' */
function ZeitAusgabeFormat (ZeitIn1, ZeitIn2)
{
	var ZeitAusgabe;
	
	ZeitAusgabe = ZeitIn1;
	if (ZeitIn1 != "gem. Einladung" && ZeitIn1 != "")
    {
    ZeitAusgabe = ZeitAusgabe + " Uhr";
    if (ZeitIn2 != "00.00")
      {
  	    ZeitAusgabe = ZeitAusgabe + " - " + ZeitIn2 + " Uhr";
      }
    }
  return ZeitAusgabe;
}

/*===============  intDatum  ================*/
/*zerlegt ein Datum in seine Einzelteile (Tag, Monat, Jahr) */
function intDatum (DatumIn) {
			if (DatumIn.substr(0,2) != "00" && DatumIn != "offen")
			  { 
  			  JahrString = DatumIn.substr(6,4);
  			  MonatString = DatumIn.substr(3,2) - 1;
  			  TagString = DatumIn.substr(0,2);
			  }
			else
				{
  			  if (DatumIn != "offen")
  			  {
  			  	
  			    JahrString = DatumIn.substr(6,4);
  			    MonatString = DatumIn.substr(3,2) - 1;
  			    TagString = "01";
					}
					else
					{
  			    JahrString = "2011";
  			    MonatString = "11";
  			    TagString = "31";
				  }
				}
}

/*===============  intZeit  ================*/
/*zerlegt eine Uhrzeit in seine Einzelteile (Stunden, Minuten) */
function intZeit(ZeitIn) {
			if (ZeitIn != "")
			  {
  			  StundenString = ZeitIn.substr(0,2);
  			  MinutenString = ZeitIn.substr(3,2);
  			  HatDatumZeit = HatDatumZeit + "Z";
			  }
			else
				{
					StundenString = "00";
  			  MinutenString = "00";
					HatDatumZeit = HatDatumZeit + "X";
				}
}

/*===============  intDatumZeit  ================*/
/*zerlegt ein Datum in seine Einzelteile (Tag, Monat, Jahr, Stunden, Minuten) */
function intDatumZeit (DatumIn, ZeitIn) {

var IntDatumZeit;

			if (DatumIn.substr(0,2) != "00" && DatumIn != "offen")
			  { 
  			  JahrString = DatumIn.substr(6,4);
  			  MonatString = DatumIn.substr(3,2) - 1;
  			  TagString = DatumIn.substr(0,2);
			  }
			else
				{
  			  if (DatumIn != "offen")
  			  {
  			  	
  			    JahrString = DatumIn.substr(6,4);
  			    MonatString = DatumIn.substr(3,2) - 1;
  			    TagString = "01";
					}
					else
					{
  			    JahrString = "2011";
  			    MonatString = "11";
  			    TagString = "31";
				  }
				}
				
			if (ZeitIn != "" && (ZeitIn != "gem. Aufgebot" && ZeitIn != "gem. Einladung"))
			  {
  			  StundenString = ZeitIn.substr(0,2);
  			  MinutenString = ZeitIn.substr(3,2);
			  }
			else
				{
					StundenString = "00";
  			  MinutenString = "00";
				}
				
      IntDatumZeit = new Date(JahrString,MonatString,TagString,StundenString,MinutenString);
      return IntDatumZeit;
}

/*===============  gueltigesDatum  ================*/
/*prüft, ob das erhaltene Datum gültig ist */
function gueltigesDatum (datum)
{
    //(Schritt 1) Fehlerbehandlung
 if (!datum) {return false;}
 datum=datum.toString();

    //(Schritt 2) Aufspaltung des Datums
 datum=datum.split(".");
 if (datum.length!=3) {return false;}

    //(Schritt 3) Entfernung der fuehrenden Nullen und Anpassung des Monats

 datum[0]=parseInt(datum[0],10);
 datum[1]=parseInt(datum[1],10)-1;

    //(Schritt 4) Behandlung Jahr nur zweistellig
 if (datum[2].length==2) {datum[2]="20"+datum[2];}

    //(Schritt 5) Erzeugung eines neuen Dateobjektes
 var kontrolldatum=new Date(datum[2],datum[1],datum[0]);

    //(Schritt 6) Vergleich, ob das eingegebene Datum gleich dem JS-Datum ist
 if (kontrolldatum.getDate()==datum[0] && kontrolldatum.getMonth()==datum[1] && kontrolldatum.getFullYear()==datum[2])
     {return true;}
 else {return false;}
}
