﻿/* ###################################################################################################
   # Alle Kästen wie dieser hier dienen nur der Erklärung und sollten für die Version auf dem Server #
   # komplett gelöscht werden. Denn sie würden sonst nur unnötig Traffic und Lafezeit verursachen.   #
   ################################################################################################### */
var uhrblinker = 0;
function kalender(monat, jahr){
	var monatsnamen = new Array('Januar','Februar','M&auml;rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
	                  /* ##############################################################################
	                     # die 12 Monatsnamen in chronologischer Reihenfolge                          #
	                     # KEINE UMLAUTE VERWENDEN! Stattdessen die HTML-Kodierung für diese Zeichen: #
	                     #     ä = &auml;                                                             #
	                     #     ö = &ouml;                                                             #
	                     #     ü = &uuml;                                                             #
	                     #     groß geschriebene Umlaute entsprechend analog &Auml; &Ouml; &Uuml;     #
	                     # Beispiel: für den Monatsnamen März: M&auml;rz                              #
	                     ############################################################################## */
	var tageskurzel = "SoMoDiMiDoFrSa";
	                  /* ######################################################################################################
	                     # die jeweiligen Anfangsbuchstaben der Wochentage, beginnend mit Sonntag                             #
	                     # Hier kann auch ein "SoMoDiMiDoFrSa" stehen, sofern 2 Zeichen lange Kurzbezeichnungen gewollt sind. #
	                     # Auch 3 Zeichen lange Namenskürzel sind möglich ("SonMonDieMitDonFreSam"), würden den Kalender aber #
	                     # nicht unerheblich breiter machen.                                                                  #
	                     ###################################################################################################### */
	var keineLeerwochen = true;
	                  /* #########################################################################################################
	                     # Je nachdem, wie viele Tage der Monat hat und mit welchem Wochentag er beginnt, ist eine Ausgabe von   #
	                     # bis zu 6 Wochen nötig. Dieser Wert gibt an, ob diese 6 Wochenzeilen generell ausgegeben werden sollen #
	                     # oder ob komplett leere Wochenzeilen unterdrückt werden sollen. Als Angabe sind true für Unterdrücken  #
	                     # und false für alle 6 Wochen mit möglichen Leerwochen Ausgeben vorgesehen.                             #
	                     # Achtung! Sofern leere Wochenzeilen unterdrückt werden (true), hat der Kalender natürlich je nach      #
	                     # Konstellation unterschiedliche Höhen. Daraus können eventuell Verschiebungen innerhalb der Webseite   #
	                     # vorkommen. Sofern diese nicht gewünscht sind, sollte dem HTML-Element, welches den Kalender           #
	                     # beinhaltet (Tabellenzelle, <div> o. ä.) eine konstante Höhe zugewiesen werden, die mindestens der     #
	                     # maximal möglichen Höhe des Kalenders entspricht (Überschriftszeilen plus 6 Wochenzeilen).             #
	                     ######################################################################################################### */
	/* #######################################################################
	   # ab hier innerhalb der function kalender nichts mehr ändern          #
	   # noch weitere Angaben innerhalb der unten stehenden function uhrzeit #
	   ####################################################################### */
	var UTime = new Date();
	if (!monat || !jahr){
		monat = UTime.getMonth()+1;
		jahr = UTime.getFullYear();
	}
	var PTime = new Date(jahr, monat-1, 1),
		j = PTime.getFullYear(),
		monMax = new Array(31, eval(28 + (!(j%4) && (((j%100)>0) || !(j%400))) ), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31),
		aktTag = (jahr==UTime.getFullYear() && monat==UTime.getMonth()+1)? UTime.getDate():false,
		sStart = PTime.getDay(),
		tab = '<table class="kalender"><thead>';
	tab += ('<tr><td colspan="7" class="monatsname">' + monatsnamen[monat-1] + ' - ' + jahr + '</td></tr><tr>');
	var z = Math.floor(tageskurzel.length/7);
	for (var i=0; i<7*z; i+=z)
		tab += ('<td class="tagesnamen">' + tageskurzel.substr(i, z) + '</td>');
	tab += '</tr></thead><tbody>';
	for (var i=0; i<6; i++){
		tab += '<tr>';
		for (var j=(-sStart); j<7-sStart; j++){
			var a = (aktTag == i * 7 + j + 1),
				tagdat = i*7 + j+1;
			tab += ('<td class="zahlen">' + ((a)? '<span class="aktTag">':''));
			tab += ((tagdat>0 && tagdat<=monMax[monat-1])? tagdat:"&nbsp;");
			tab += (((a)? '</span>':'') + '</td>');
		}
		tab += '</tr>';
		if (tagdat >= monMax[monat-1] && keineLeerwochen)
			break;
	}
	document.getElementById('kalender').innerHTML = tab + '</tbody></table>';
}
function uhrzeit(){
	var trennzeichen = ':';
	                   /* ##########################################################################################################
	                      # das Zeichen, welches zwischen Stunden und Minuten sowie ggf. zwischen Minuten und Sekunden stehen soll #
	                      # nicht unbedingt sinnvoll, aber möglich sind hier auch mehrere Zeichen hintereinander zur Trennung.     #
	                      ########################################################################################################## */
	var mitSekunden = false;
	                   /* #####################################################################################
	                      # Dieser Wert gibt an, ob die Ausgabe der Uhrzeit mit Sekundenangabe erfolgen soll  #
	                      # Wertzuweisung true für Sekunden sollen ausgegeben werden, false für keine Ausgabe #
	                      ##################################################################################### */
	var keinminblink = mitSekunden && true;
	                   /* ##########################################################################################################
	                      # Dieser Wert gibt an, ob das Trennzeichen zwischen Stunden und Minuten blinken bzw. mit Farbwechsel     #
	                      # versehen werden soll, wenn die Sekunden mit angezeigt werden. Wemnn hier hinter dem &&der Wert true    #
	                      # steht, wird nur noch das Trennzeichen zwischen Minuten und Sekunden mit Farbwechsel bzw. blinked       #
	                      # erzeugt, das Trennzeichen zwishen Stunden und Minuten jedoch bleibt konstant. Ist dieser Effekt nicht  #
	                      # gewünscht, muss hinter dem && ein false stehen.                                                        #
	                      ########################################################################################################## */
	var davorzusatz = "Zeit: ",
		dahinterzusatz = " Uhr";
		              /* #####################################################################################################################
		                 # Mittels diesen beiden Variablen köönen Texte vor und/oder hinter der Ziffernausgabe der Uhrzeit                   #
		                 # mit ausgegeben werden. Dabei ist jedoch zu beachten, dass diese Zusätze direkt vor bzw. hinter                    #
		                 # der Ziffernausgabe erfolgen und sollte ein Zwischenraum gewünscht werden, ist dieser hier als                     #
		                 # Leerzeichen mit anzugeben. Mehrere Leerzeichen hintereinander sind aber nur mit einer entsprechenden              #
		                 # HTML-Maskierung für ein Leerzeichen möglich, dass heißt statt einem Leerzeichen muss ein &nbsp;                   #
		                 # geschrieben werden.                                                                                               #
		                 # Wie aus den Namen schon erkennbar, wird davorzusatz vor und dahinterzusatz hinter der Ziffernausgabe              #
		                 # für die Zeit gesetzt. Sollten einer oder beide Texte nicht erscheinen, ist hierfür ein Leerstring ""              #
		                 # anzugeben.                                                                                                        #
		                 # Beispiele:                                                                                                        #
		                 # davorzusatz="Zeit: " dahinterzusatz = " Uhr" ergibt Zeit: ##:## Uhr                                               #
		                 # davorzusatz="Uhrzeit: &nbsp;" dahinterzusatz="" ergibt Uhrzeit:  ##:## (mit 2 Leerzeichen zwischen Text und Zeit) #
		                 # davorzusatz=="" dahinterzusatz=" Uhr" ergibt ##:## Uhr                                                            #
		                 ##################################################################################################################### */
	var d = new Date(),
		std = d.getHours(),
		min = d.getMinutes(),
		sek = d.getSeconds();
	var satz = (std < 10 && stdMitNull)? '0'+std:std;
	satz += '<span class="uhrblinker_' + (uhrblinker * (1-keinminblink)) + '">' + trennzeichen + '</span>';
	satz += (min < 10)? '0'+min:min;
	if (mitSekunden){
		satz += '<span class="uhrblinker_' + uhrblinker + '">' + trennzeichen + '</span>';
		satz += (sek < 10)? '0'+sek:sek;
	}
	document.getElementById('uhr').innerHTML = davorzusatz + satz + dahinterzusatz;
	uhrblinker = 1 - uhrblinker;
	if ((std+min+sek)  == 0 && document.getElementById('kalender')) // Datumswechsel
		kalender();
	setTimeout("uhrzeit()", 1000);
}
function kalenderstart(){
	if (document.getElementById('kalender'))
		kalender();
	if (document.getElementById('uhr'))
		uhrzeit();
}
// Script Copyright (c) 2009 by Kira-Bianca Hinz - die-frontpage-hilfe.de (dieser Copyright-Vermerk darf nicht gelöscht werden!)
// Nutzung jedoch für jedermann/frau frei nach GNU/GLP-Lizenz
