var TerminID   // globale Variable, enthält die ID des zuletzt angeklickten Termins

  // dies Variablen werden wohl nicht mehr benötigt
  //var heute = new Date();
  //var xmon = String(heute.getMonth()+1); if (xmon.length==1) {xmon = "0" + xmon;}
  //var xtag = String(heute.getDate());    if (xtag.length==1) {xtag = "0" + xtag;}
  //heuteDat = heute.getFullYear() + '' + xmon + '' + xtag;



function FehlerMsg(feld, msg) {
   	feld.style.backgroundColor="#FF7777";
	alert(msg);
//	feld.focus();  klappt nicht, wenn das Feld versteckt ist
	return ;
}

function checkDatum(DatFeld) {
// DatFeld soll ein Datum der Form d.m.yyyy sein. Die Routine prüft das grob und setzt das Feld auf dd.mm.yyyy
//alert('a1');
   DatFeld.style.backgroundColor="";
   
   var Dat = DatFeld.value;
   var xtagPos;
   var xtag;
//alert('a2');
   xtagPos = Dat.indexOf(".");
   if (xtagPos < 0) { 
    FehlerMsg(DatFeld, "Das Datum muss zwei Punkte enthalten"); return false; }
   xtag = Dat.substring(0,xtagPos);
//alert('a3');
   xtagPos = xtagPos + 1;
   xmonPos = Dat.indexOf(".", xtagPos);
   if (xmonPos <= 0) {
	FehlerMsg(DatFeld, "Das Datum muss zwei Punkte enthalten"); return false;}
   xmon = Dat.substring(xtagPos, xmonPos);

   xjr = Dat.substr(xmonPos+1);
   if (xjr.length == 0) {
	xdate = new Date(); 
	xxjr = xdate.getFullYear(); 
	if (xmon < xdate.getMonth()+1) {xxjr = xxjr+1;}	// getMonth() liefert 0 für Januar
	xjr = xxjr.toString();}
   if (xjr.length != 2 && xjr.length != 4) {
	FehlerMsg(DatFeld, "Die Jahreszahl muss zwei- oder vierstellig sein"); return false; }
   if (xjr.length == 2) {xjr = "20" + xjr;}
   if (xjr < 2009) {
    FehlerMsg(DatFeld, "Ungültiges Datum"); return false; }
   if (xjr > 2037) {xjr = 2037;}

   xdate = new Date(xjr, xmon-1, xtag);
   xtagx = xdate.getDate();
   xmonx = xdate.getMonth()+1;
   xjrx = xdate.getFullYear();
   if (xtag != xtagx || xmon != xmonx || xjr != xjrx) {
    FehlerMsg(DatFeld, "Das Datum ist ungültig"); return false;}

   if (xtag.length == 1) { xtag = '0'+xtag; }
   if (xmon.length == 1) { xmon = '0'+xmon; }
   DatFeld.value = xtag + "." + xmon + "." + xjr;
//alert('a4');
   return true;
};

var vDat;  // global! Nimmt den Wert des Anfangsdatums (wird in RKalF gesetzt)
function copyDatum(DatFeldQ, DatFeldZname) {
var vD = vDat;  // Firefox braucht diese merkwürdige Zuweisung, damit die if-Abfrage klappt
		    // Der Pocket-Browser versteht getElementsByName nicht
if (vD == document.getElementById(DatFeldZname).value ) { 
	document.getElementById(DatFeldZname).value = DatFeldQ.value; return 0; }
};


function checkUhrzeit(feld) { 

   feld.style.backgroundColor = "";

   zeit = feld.value;

   if (zeit =="") return true;

   xPPos = zeit.indexOf(":");
   if (xPPos <= 0) {
	xPPos = zeit.indexOf(".");
	if (xPPos <= 0) {
	 if (zeit.length<=2) {
		zeit = zeit + ':00';
		xPPos = zeit.indexOf(":");}
	  else {	
	   FehlerMsg(feld, "FEHLER: Die Uhrzeit muss einen Doppelpunkt enthalten"); return false;} }
   }
   xStd = zeit.substring(0,xPPos);
   xMin = zeit.substr(xPPos+1)
   if (xStd < 0 || (xStd > 23 && zeit != '24:00') || isNaN(xStd)) {
	FehlerMsg(feld, "Ungültige Uhrzeit"); return false;};

   if (xMin.length != 2) {
	FehlerMsg(feld, "Ungültige Uhrzeit: Die Minuten müssen 2-stellig angegeben werden, Sekunden sind nicht anzugeben."); return false;};
   if (xMin < 0 || xMin > 59 || isNaN(xMin)) {
	FehlerMsg(feld, "Ungültige Uhrzeit"); return false;}
   if (xMin.indexOf(".") >=0) {FehlerMsg(feld, "Ungültige Uhrzeit"); return false;}

   feld.value = xStd + ":" + xMin;

   return true;
};

function Date_von_Datum(Dat) {
  xtagPos = Dat.indexOf(".");
  xtag = Dat.substring(0,xtagPos);
  xmonPos = Dat.indexOf(".", xtagPos+1);
  xmon = Dat.substring(xtagPos+1, xmonPos);
  xjr = Dat.substr(xmonPos+1);
  
  xdate = new Date(xjr, xmon-1, xtag);
  return xdate;	
};

function CheckOnSubmitF(uid)  {
  vD = document.getElementsByName("vonDatum")[0];
  if ( !checkDatum(vD) )  { return false;}
  if ( vD.value == '' )  { 
   FehlerMsg(vD, 'Bitte ein Datum angeben!'); return false;}  
  if ( !checkDatum(document.getElementsByName("bisDatum")[0]) )  { return false;}
  var DatS = document.getElementsByName("bisDatumSerie")[0];
  if ( DatS.value == '') {DatS.value = '31.12.2037';}
  if ( !checkDatum(DatS) )  { return false;}
 
  if ( !checkUhrzeit(document.getElementsByName("vonZeit")[0]) )  { return false;}
  if ( !checkUhrzeit(document.getElementsByName("bisZeit")[0]) )  { return false;}

  //-- Ende einer Terminserie nach dem Beginn?  
  //alert(Date_von_Datum(vD.value));
  if ( Date_von_Datum(vD.value) > Date_von_Datum(DatS.value) ) {
	FehlerMsg(DatS, 'Das Ende der Terminserie darf nicht vor ihrem Beginn liegen!'); return false;}
   
  //-- Terminbezeichnung eingegeben?
  var Bez = document.getElementsByName('Bezeichn')[0];
  Bez.style.backgroundColor = "";
  if ( Bez.value == '' ) { 
		FehlerMsg(Bez, "Bitte einen Text zum Termin angeben"); return false;  };  
  
  var Ml  = document.getElementsByName('MailAdr')[0];
  Ml.backgroundColor = "";
  if ( Ml.value == '' && uid == '1') { 
   FehlerMsg(Ml, "Bitte geben Sie eine Mail-Adresse an, unter der wir Sie erreichen können."); return false; };

  //-- prüfen, ob mindestens ein Kalender an dem Termin hängt
  var ok = false;
  var nr=1;
  while ( document.getElementById('Raum'+nr) ) {
	if ( document.getElementById('Raum'+nr).value != '0') {
		ok=true;
		break;
	}
	nr=nr+1;
  } 
  if (ok==false) {
	alert('Es muss mindestens ein Kalender oder ein Raum angegeben werden', 'Fehler');
	return false;}

  return true;
};

//=======================================================
// gibt für ein Datumsobjekt den Wochentag in deutscher Sprache zurück
//
function GetWTag(Dat) {
  var Datum = new Date(Dat.substr(6,4), Dat.substr(3,2) -1, Dat.substr(0,2));
  var wtage = new Array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag');
  var t = Datum.getDay();
  return wtage[t];
};

//=======================================================
function displayDatum() {
	if (document.getElementById('TTyp1').value == 'T' ) {
		document.getElementById('TAnftxt').innerHTML = "(Beginn des Termins)";
		document.getElementById('TEndtxt').innerHTML = "(Ende des Termins)";
		document.getElementById('bisDatum').style.visibility = "visible";
		document.getElementById('SInfo').style.visibility = "hidden";	}
	  else {
		document.getElementById('TAnftxt').innerHTML = "(Beginn des 1. Termins)";
		document.getElementById('TEndtxt').innerHTML = "(Ende des 1. Termins)";
		document.getElementById('bisDatum').style.visibility = "hidden";
		document.getElementById('SInfo').style.visibility = "visible";
	}
}

function displayOffset() {
	if (document.getElementById('offsetS').value == '0' ) {
		document.getElementById('SOffset').style.visibility = "hidden";	}
	  else {
		document.getElementById('SOffset').style.visibility = "visible";
	}

	if (document.getElementById('TTyp2').value == '0' || document.getElementById('TTyp2').value == '') {
		document.getElementById('offsetS').style.visibility = "hidden";
		document.getElementById('SOffset').style.visibility = "hidden";	}
	  else {
		document.getElementById('offsetS').style.visibility = "visible";
	}
}

//=======================================================
function istGleich(x1, x2) {
	if (x1==x2) {return true;} else {return false;}
}

function setTTypOptions(selNum) {
	var n=0;
 	var vDat = document.getElementById('vonDatum').value;
 	if (vDat == '') {displayOffset(); return;}

	var wTag = GetWTag(vDat);
	
	var Sel1 = document.forms["FForm"].elements["TTyp1"];
	var Sel2 = document.forms["FForm"].elements["TTyp2"];

	if (Sel1.value.substr(0,1) == 'w'){
		n=1;
		Sel2.options[0] = new Option('am '+wTag, 0, false, true);
	}
	if (Sel1.value.substr(0,1) == 'm') {
		n=6;	
		Sel2.options[0] = new Option('am gleichen Datum',  0, false, istGleich(0, selNum)); 
		Sel2.options[1] = new Option('am ersten ' + wTag,  1, false, istGleich(1, selNum)); 
		Sel2.options[2] = new Option('am zweiten ' + wTag, 2, false, istGleich(2, selNum)); 
		Sel2.options[3] = new Option('am dritten ' + wTag, 3, false, istGleich(3, selNum)); 
		Sel2.options[4] = new Option('am vierten ' + wTag, 4, false, istGleich(4, selNum)); 
		Sel2.options[5] = new Option('am letzten ' + wTag, 5, false, istGleich(5, selNum)); 
	}
	if (Sel1.value.substr(0,1) == 'j'){
		n=1;
		Sel2.options[0] = new Option('am gleichen Datum', 0, false, true);
	}
	// Die Nummerierung wird nach jeder einzelnen Löschung neu gesetzt. Deshalb
	// wird jedesmal die n-te Option gelöscht
	while(Sel2.options[n]) {Sel2.options[n]=null;  }

	displayOffset();
};


//=======================================================
// Steuert in der Terminliste die Darstellung der Menu-Tabelle "klMenu"
// in Abhängigkeit vom Typ des Termins
// (blendet Zeilen ein und aus)
//
function TMenu(Termin, key, ETyp)  {
// Wählt die Termintabelle in Abhängigkeit vom Termintyp aus und positioniert sie
// Außerdem wird die globale Variable TerminID gesetzt

  TerminID = key;  // globale Variable
  
  var Ttyp = key.substr(12,1);
  if (Ttyp == 'T')	{
		document.getElementById("TabMenuS").style.display = 'none';
		var mtab = document.getElementById("TabMenuT");
		if (ETyp=='d' || ETyp=='i') {
			document.getElementById("TMT").style.display = 'block'; 
		 } else {
			document.getElementById("TMT").style.display = 'none';
		}
   } else {
		document.getElementById("TabMenuT").style.display = 'none';
		var mtab = document.getElementById("TabMenuS");
  };

  var p = Termin.offsetParent.offsetParent.offsetTop + Termin.offsetParent.offsetTop + 15;

  mtab.style.display = "block";
  mtab.style.top = p;
  mtab.style.left = Termin.offsetParent.offsetParent.offsetLeft + (Termin.offsetParent.offsetLeft) + 70;

  mtab.focus();

  return;
};

function TMenuLink(MenuZeile, modus, seite){
  //-- baut den Link in dem angeklickten Eintrag der Menutabelle um --
  //   TerminID ist eine globale Variable, die in TMenu gesetzt worden ist
  if ( !seite ) {seite='index.php';}

  if ( modus == 'lstS' )  { 
	MenuZeile.childNodes[0].href= seite+"?show=Inhalt/Raumverwaltung.htm&lstS=" + TerminID + "&PHPSESSID=" + document.getElementById("PHPSESSID").value;
   } else {
	MenuZeile.childNodes[0].href= seite+"?show=Kalender/RKalF.php&mod=" + modus + "&key=" + TerminID + "&PHPSESSID=" + document.getElementById("PHPSESSID").value;
  }
};

