// Kalender mit Terminen :::::::::::::::::::::::::::::::::::::::::::::::::::::::


// Monatsnamen und Tage
var Monate=
[
{name:"Januar",tage:31},
{name:"Februar",tage:28},
{name:"M&auml;rz",tage:31},
{name:"April",tage:30},
{name:"Mai",tage:31},
{name:"Juni",tage:30},
{name:"Juli",tage:31},
{name:"August",tage:31},
{name:"September",tage:30},
{name:"Oktober",tage:31},
{name:"November",tage:30},
{name:"Dezember",tage:31}
]



// 4stellige Jahreszahl

function get4DigitYear(theDate)
{
if(theDate.getFullYear)
return theDate.getFullYear()
var y= theDate.getYear()
return y + ((y < 1900) ? 1900 : 0)
}



// --- Feiertagsberechnung ---

// Ostersonntag nach Gauss'scher Formel

function Ostersonntag(Jahr)
{
// Bem.: intern darf nicht einmal vor dem 1.1.1970 datiert werden
if((Jahr < 1583) || (Jahr > 2299))
return null


var m, n

if(Jahr <= 1699)
{
m = 22
n = 2
}

else if(Jahr <= 1799)

{
m = 23
n = 3
}

else if(Jahr <= 1899)

{
m = 23
n = 4
}

else if(Jahr <= 2099)

{
m = 24
n = 5
}

else if(Jahr <= 2199)

{
m = 24
n = 6
}

else

{
m = 25
n = 0
}

var a= Jahr % 19
var b= Jahr % 4
var c= Jahr % 7
var d= (19 * a + m) % 30
var e= (2 * b + 4 * c + 6 * d + n) % 7
var t= 22 + d + e

if(t > 31)
{
t= t - 31
if(t == 26)
t = 19
else if(t == 25)
{
if((d == 28) && (e == 6) && (a > 10))
t = 18
}

return new Date(Jahr, 3, t, 12, 0, 0)
}



return new Date(Jahr, 2, t, 12, 0, 0)
}



// 4. Advent in Abhaengigkeit des 1. Weihnachtstags berechnen

function VierterAdvent(Jahr)

{
var StartDatum= new Date(Jahr, 11, 25, 12, 0, 0)
var WTag= StartDatum.getDay()
var Temp= StartDatum.getTime()

StartDatum.setTime(Temp - ((WTag == 0) ? 7 : WTag) * 86400000)
return StartDatum
}



// Feiertag anlegen mit Datum und Name

function feiertag(datum, name)
{
this.datum= datum
this.datum.setHours(12)
this.datum.setMinutes(0)
this.datum.setSeconds(0)
this.name= name
return this
}



// Feiertag anlegen mit Datum (aus Zeit in Millisekunden) und Name

function feiertag_time(time, name, flag)
{
var TempDate= new Date()
TempDate.setTime(time)
this.datum= TempDate
this.datum.setHours(12)
this.datum.setMinutes(0)
this.datum.setSeconds(0)
this.name= name
return this
}



// Vergleichsfunktion zur Sortierung nach Datum

function compare_date(d1, d2)
{
if(d1.datum.getTime() < d2.datum.getTime())
return -1
if(d1.datum.getTime() > d2.datum.getTime())
return 1
return 0
}



// Anlage eines Felds mit allen Feiertagen zum angegebenen Jahr

function feiertage(Jahr)
{
var TagMS= 86400000// Anzahl Millisekunden pro Tag
var Feiertag= new Array()// Feld fuer Feiertage
var cnt= 0// Zaehler fuer Feiertage



// Von Ostern abhaengige Feiertage

var Ostern= Ostersonntag(Jahr)
var OTime= Ostern.getTime()

Feiertag[cnt]= new feiertag(Ostern, "Ostersonntag")
Feiertag[++cnt]= new feiertag_time(OTime + TagMS, "Ostermontag")
Feiertag[++cnt]= new feiertag_time(OTime + 39 * TagMS, "Christi Himmelfahrt")
Feiertag[++cnt]= new feiertag_time(OTime + 49 * TagMS, "Pfingstsonntag")
Feiertag[++cnt]= new feiertag_time(OTime + 50 * TagMS, "Pfingstmontag")
Feiertag[++cnt]= new feiertag_time(OTime + 60 * TagMS, "Fronleichnam")
Feiertag[++cnt]= new feiertag_time(OTime - 48 * TagMS, "Rosenmontag", true)
Feiertag[++cnt]= new feiertag_time(OTime - 47 * TagMS, "Fastnacht")
Feiertag[++cnt]= new feiertag_time(OTime - 46 * TagMS, "Aschermittwoch")
Feiertag[++cnt]= new feiertag_time(OTime - 2 * TagMS, "Karfreitag")



// Vom 4. Advent abhaengige Feiertage

var Advent4= VierterAdvent(Jahr)
var A4Time= Advent4.getTime()

Feiertag[++cnt]= new feiertag(Advent4, "4. Advent")
Feiertag[++cnt]= new feiertag_time(A4Time - 7 * TagMS, "3. Advent")
Feiertag[++cnt]= new feiertag_time(A4Time - 14 * TagMS, "2. Advent")
Feiertag[++cnt]= new feiertag_time(A4Time - 21 * TagMS, "1. Advent")
Feiertag[++cnt]= new feiertag_time(A4Time - 28 * TagMS, "Totensonntag")
Feiertag[++cnt]= new feiertag_time(A4Time - 35 * TagMS, "Volkstrauertag")
Feiertag[++cnt]= new feiertag_time(A4Time - 32 * TagMS, "Bu&szlig;- und Bettag")



// Feste Feiertage

Feiertag[++cnt]= new feiertag(new Date(Jahr, 0, 1), "Neujahr")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 0, 6), "Heilige 3 K&ouml;nige")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 1, 14), "Valentinstag")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 4, 1), "Maifeiertag")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 7, 15), "Maria Himmelfahrt")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 9, 3), "Tag der Deutschen Einheit")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 9, 31), "Reformationstag")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 10, 1), "Allerheiligen")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 11, 24), "Heiligabend")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 11, 25), "1. Weihnachtstag")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 11, 26), "2. Weihnachtstag")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 11, 31), "Silvester")


// Eigene Termine
Feiertag[++cnt]= new feiertag(new Date(Jahr, 0, 18), "Schnuppertage Kl.4 (bis 21.1.10)")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 0, 18), "Elternsprechtag")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 0, 21), "Elternabend Englandfahrt")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 0, 23), "Tag der offenen Tür (9.30-12.30 Uhr)")

Feiertag[++cnt]= new feiertag(new Date(Jahr, 1, 4), "Lesenacht Klassen 5")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 1, 5), "Ausgabe Halbjahresinformationen / Halbjahreszeugnisse")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 1, 6), "Beginn Winterferien")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 1, 22), "Beginn zweites Schulhalbjahr")

Feiertag[++cnt]= new feiertag(new Date(Jahr, 2, 6), "Schulfahrt England (bis12.03.)")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 2, 12), "Anmeldeschluss neuer 5. Klassen")

Feiertag[++cnt]= new feiertag(new Date(Jahr, 3, 1), "Beginn Osterferien")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 3, 11), "Ende Osterferien")

Feiertag[++cnt]= new feiertag(new Date(Jahr, 4, 5), "Englischprüfung")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 4, 7), "Deutschprüfung")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 4, 10), "Mathematikprüfung")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 4, 12), "Bio/Ch/Ph-Prüfung")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 4, 17), "Beginn Konsultationen")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 4, 19), "Beginn Prf En mdl.")

Feiertag[++cnt]= new feiertag(new Date(Jahr, 5, 4), "Beginn mdl. Prf")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 5, 18), "Schulentlassung Kl.10")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 5, 22), "Projekt 'Sozialer Tag'2010")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 5, 25), "Zeugnisausgabe Kl. 5-9")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 5, 26), "Beginn Sommerferien 2010")

Feiertag[++cnt]= new feiertag(new Date(Jahr, 7, 9), "Ende Sommerferien")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 7, 24), "Elternabend der Klassen")

Feiertag[++cnt]= new feiertag(new Date(Jahr, 8, 7), "Schulsporttag")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 8, 7), "Elternrat")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 8, 21), "Schulkonferenz")

Feiertag[++cnt]= new feiertag(new Date(Jahr, 9, 10), "Beginn Herbstferien (bis 25.10.)")

Feiertag[++cnt]= new feiertag(new Date(Jahr, 10, 2), "Pädagogischer Abend")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 10, 9), "Elternsprechtag")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 10, 24), "EA Kl. 7")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 10, 27), "Briesnitzer Advent")

Feiertag[++cnt]= new feiertag(new Date(Jahr, 11, 07), "Praktikum Kl.8 (bis 19.12.)")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 11, 08), "Nikolausturnier")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 11, 22), "frei beweglicher Ferientag")
Feiertag[++cnt]= new feiertag(new Date(Jahr, 11, 23), "Beginn Weihnachtsferien")


// Feiertage nach Datum sortieren
Feiertag.sort(compare_date)
// und zurueck!
return Feiertag
}


// --- Kalenderaufbereitung und -ausgabe ---
// Kalender

function Kalender(monat, jahr)

{
var pct= 0
var Monat= new Date(jahr, monat - 1, 1)
var Heute= new Date()
var DieserTag= null

function pcta(p)
{
status= "Aufbereitung Kalender " + String(p) + "% fertig."
}



pcta(pct)



// Vorbereitung/Schaltjahr

if((Heute.getMonth() == Monat.getMonth()) &&
(get4DigitYear(Heute) == get4DigitYear(Monat)))
DieserTag= Heute.getDate()

var Jahr= get4DigitYear(Monat)

if((!(Jahr % 4) && (Jahr % 100)) || !(Jahr % 400))
Monate[1].tage = 29
AnzahlTage= Monate[Monat.getMonth()].tage
var StartTag = Monat.getDay() - 1

if(StartTag < 0)
StartTag= 6



// Feiertage

var Feiertage= feiertage(Jahr)
var RelevanteFeiertage= new Array()
pct+= 5
pcta(pct)

// Feiertage dieses Monats

var j
var cnt= 0
for(j = 0; j < Feiertage.length; j++)
if(Feiertage[j].datum.getMonth() == Monat.getMonth())
RelevanteFeiertage[cnt++]= Feiertage[j]



// Ausgabe Kalenderblatt

document.open("text/html")
document.writeln('<table style="background-color:#ECECEC" cellspacing="1" cellpadding="2" border="0">')
document.writeln('<tr bgcolor="#ECECEC"><td align="center" colspan="7"><span style="font-size:12px;color:#808285;">' + Monate[Monat.getMonth()].name + " " + Jahr + "</span></td></tr>")
// farbe zeile wochentag

document.write('<tr bgcolor="#F8F8F8" valign="middle" align="center"><td width="14%">Mo</td>')
document.write('<td width="14%">Di</td>')
document.write('<td width="14%">Mi</td>')
document.write('<td width="14%">Do</td>')
document.write('<td width="14%">Fr</td>')
document.write('<td width="14%">Sa</td>')
document.writeln('<td width="15%">So</td></tr>')

var column= StartTag

document.write('<tr align="center">')
var i
for(i = 0; i < StartTag; i++)
// farbe kalendertag leer
document.write('<td bgcolor="#FFFFFF">&nbsp;</td>')

for(i = 1; i <= AnzahlTage; i++)
{
pct+= Math.floor(90 / AnzahlTage)
pcta(pct)

var clr= ""

for(j = 0; j < RelevanteFeiertage.length; j++)
{
if(i == RelevanteFeiertage[j].datum.getDate())
{
clr= ' bgcolor="#FFEB8D"'
break
}
}


document.write('<td bgcolor="#FFFFFF"' + clr + '>')
if(i == DieserTag)
// farbe aktueller tag
document.write('<span style="color:#000000;background-color:#FFE237">')

// Ausgabe zweistellig
var Tag = (i < 10) ? ("0" + i) : i;
document.write(Tag)

// Ausgabe nicht geändert
//document.write(i)

if(i == DieserTag)
document.write('</span>')

document.write('</td>')
column++

if((column == 7) && (i != AnzahlTage))
{
document.write('</tr>\n<tr align="center">')
column = 0
}
}



if(column != 0)
for(i = column; i < 7; i++)
document.write('<td bgcolor="#FFFFFF">&nbsp;</td>')
document.writeln('</tr></table>')

// Ausgabe Feiertage
var ausg= false
for(j = 0; j < RelevanteFeiertage.length; j++)
{
if(!ausg)
{
document.write('<br><table width="199" border="0" cellspacing="1" cellpadding="0">')
ausg= true
}

document.write('<tr bgcolor="#F8F8F8" valign="middle" align="left"><td style="font-size:10px;color:#7F7F7F;" align="right">' +
String(RelevanteFeiertage[j].datum.getDate()) +
'.</span></td><td>&nbsp;</td><td style="font-size:10px;color:#7F7F7F;">' +
RelevanteFeiertage[j].name +
'</span></td></tr>')
}

if(ausg)
document.write('</table>')
document.close()

pct= 100
pcta(pct)
}

//Tagesspruch ausgeben :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

function tipp ()
{
var meldung = new Array ();
datum = new Date();
heut = datum.getDate();

meldung[1] = "Ein Optimist ist ein Mensch, der die Dinge nicht so tragisch nimmt, wie sie sind. (Karl Valentin)";
meldung[2] = "Der herbste Tadel lässt sich ertragen, wenn man fühlt, dass derjenige, der tadelt, lieber loben würde. (Marie von Ebner Eschenbach)";
meldung[3] = "Erwartungen verursachen Enttäuschung. Enttäuschung verursacht Befürchtung, und Befürchtung ist ja wieder Erwartung. (Harpe Kerkeling)";
meldung[4] = "Ideen sind mächtiger als Körperkraft. (Sophokles)";
meldung[5] = "Das Bestehende steht dem Kommenden immer im Wege. (H.-J.Quadbeck-Seeger) ";
meldung[6] = "Wir sind gegen keine Fehler an anderen intoleranter, als welche die Karikatur unserer eigenen sind. (Franz Grillparzer)";
meldung[7] = "Erfüllte Wünsche bedeuten Stillstand. Solange wir leben, müssen wir unterwegs bleiben. (Heinz Rühmann)";
meldung[8] = "Ein Optimist ist ein Mensch, der die Dinge nicht so tragisch nimmt, wie sie sind. (Karl Valentin)";
meldung[9] = "Die Welt ist in zwei Klassen geteilt, in diejenigen, welche das Unglaubliche glauben, und diejenigen, welche das Unwahrscheinliche tun. (Oscar Wilde)";
meldung[10] = "In Schwachen wirkt die Einbildung am stärksten (William Shakespeare)";
meldung[11] = "Die Vernunft formt den Menschen, das Gefühl leitet ihn (Jean-Jaques Rousseau)";
meldung[12] = "Die zunehmende Wärme der Erdathmosphäre wird durch die wachsende Kälte der Menschen wieder ausgeglichen. (Ernst E. Hauschka)";
meldung[13] = "Gute Verhandlungstaktik besteht darin, die Antwort zu provozieren, die man haben will. (Hans Habe)";
meldung[14] = "Das größte Problem in der Welt ist die Armut in Verbindung mit fehlender Bildung. Wir müssen dafür sorgen, dass Bildung alle erreicht. (Nelson Mandela)";
meldung[15] = "Theoretiker sind Leute, die mehr wissen, als sie können. (Hans-Jürgen Quadbeck-Seeger)";
meldung[16] = "Die Dinge sind nie so, wie sie sind. Sie sind immer das, was man aus ihnen macht. (Jean Anouilh)";
meldung[17] = "Es ist besser, in Ehren zu versagen, als durch Betrug erfolgreich zu sein. (Sophokles)";
meldung[18] = "Menschenkenntnis ist das einzige Fach, in dem man ständig unterrichtet wird. (Alberto Moravia)";
meldung[19] = "Ein Optimist ist ein Mann, der Kreuzworträtsel sofort mit dem Kugelschreiber ausfüllt. (Karl Farkas)";
meldung[20] = "Inkompetente ziehen nicht nur irrige Schlüsse - ihre Unfähigkeit beraubt sie auch der Möglichkeit, das überhaupt wahrzunehmen. (Bill Gates)";
meldung[21] = "Gleichungen sind wichtiger für mich, weil die Politik für die Gegenwart ist, aber eine Gleichung etwas für die Ewigkeit. (Albert Einstein)";
meldung[22] = "Aus Lügen, die wir glauben, werden Wahrheiten, mit denen wir leben. (Oliver Hassenkamp)";
meldung[23] = "Jugend will, dass man ihr befiehlt, damit sie die Möglichkeit hat, nicht zu gehorchen (Jean-Paul Sartre)";
meldung[24] = "Schon manche Idee erwies sich nach ihrer Destillation als Schnapsidee (Ernst E. Hauschka)";
meldung[25] = "Man sollte eigentlich im Leben niemals die gleiche Dummheit zweimal machen, denn die Auswahl ist so groß. (Bertrand Russell)";
meldung[26] = "Ein Langeweiler ist einer, der seinen Mund aufmacht und seine Heldentaten hineinsteckt. (Henry Ford I.)";
meldung[27] = "Im Grunde genommen haben die Menschen nur zwei Wünsche: alt zu werden und dabei jung zu bleiben. (Peter Bamm)";
meldung[28] = "Jugend ist etwas sehr wertvolles, nur weiß man es nicht, wenn man jung ist. (André Maurois)";
meldung[29] = "Nur wer erwachsen wird und ein Kind bleibt, ist ein Mensch. (Erich Kästner)";
meldung[30] = "Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein. (Albert Einstein)";
meldung[31] = "Der Kreis ist eine geometrische Figur, bei der an allen Ecken und Kanten gespart wurde.";




document.write(meldung[heut])
}