function gE(d) { return document.getElementById(d); }//// Kalender Objekt initialisierenvar Kalender = {  //  // Ein Tag hat wieviel Millisekunden?  //  oneDay : 86400000,  destObj: null,  layout : "%d.%m.%y",  lastMouseX: 0,  lastMouseY: 0,  // Microsoft product  ismsie: false,  // Keine Verschiebung des Kalenders wenn withmove=false  withmove: true,  //  // Monatsnamen in deutsch  //  monate : new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"),  mshort : new Array("Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"),  //  // Tagesnamen  //  weekdays : new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"),  //  // Tage pro Monat  //  daysinmonth : new Array(31,28,31,30,31,30,31,31,30,31,30,31),  //   // Event programmieren  //  eH: function(obj, evType, fn, useCapture) {    if (obj.addEventListener) {      obj.addEventListener(evType, fn, useCapture);      return true;    } else if (obj.attachEvent) {      var r = obj.attachEvent('on'+evType,fn);      return r;    } else {      obj['on'+evType] = fn;    }  },    //  // Style auf ein Objekt anwenden  //  style: function(o, t, v) { eval(o+".style."+t+"='"+v+"';"); },  //  // Kalender initialisieren  //  init: function() {    // Kein DOM Support :(    if (!document.getElementById) return;    // MSIE?    if (!window.opera && navigator.userAgent.indexOf("MSIE") !=-1)      Kalender.ismsie = true;    // Kalender Objekt in die Seite einfügen    var b = document.getElementsByTagName("body");        // Fehler auf der Seite - mehr als 1 Body Tag    if (b.length != 1) return;    // Containerelemente (DIV) erstellen    var container = document.createElement("div");     container.id = "container_dom_cal";    // Kalender erstellen    var cal = document.createElement("div");     // Header erstellen (DIV)    var monat = document.createElement("div");     monat.id = "monat";    var cls   = document.createElement("div");     // Tabelle erstellen    var tab = document.createElement("table");    var tb = document.createElement("tbody");    var tr = document.createElement("tr");	var tr2 = document.createElement("tr");    var td1 = document.createElement("td");    var td2 = document.createElement("td");	var td3 = document.createElement("td");    var td4 = document.createElement("td");    tr.appendChild(td1); tr.appendChild(td2); 	tr2.appendChild(td3); tr2.appendChild(td4);     tb.appendChild(tr); tab.appendChild(tb);     tab.style.background = "none";    tab.style.width = "200px";    tab.style.border = "0px";    // Tagescontainer erstellen    var days = document.createElement("div");     // Content Element erstellen (DIV)    var content = document.createElement("div");     content.id = "days";    // Fenster zusammenfügen und oberstes zurückgeben    cal.appendChild(tab);    container.appendChild(cal);    td2.appendChild(cls); td1.appendChild(monat); 	    cal.appendChild(days); 	cal.appendChild(content);     // Erscheinungsbild definieren    container.style.zIndex = "10";    container.style.padding = "0px";    container.style.width = "205px";    container.style.top = "100px";    container.style.left = "30px";    container.style.position = "absolute";    container.style.display = "none";    // Kalender Layout    cal.style.margin = "2px";    cal.style.borderLeft = "1px solid #CCCCCC";    cal.style.borderTop = "1px solid #CCCCCC";	cal.style.borderRight = "1px solid #CCCCCC";    cal.style.borderBottom = "1px solid #CCCCCC";    // Monatsanzeige    monat.style.fontWeight = "bold";    // Close Option    cls.innerHTML = "<a href='JavaScript:Kalender.close()'><img src='images/cal_close.gif' width='20' height='20' border='0'></a>";    // Wochentage	days.style.background= "none";    days.style.width = "200px";    days.style.textAlign = "center";    days.innerHTML = "<table border='0' cellpadding='0' cellspacing='2' align='center'><tr><td class='cal_top' width='20' align='center' valign='middle' height='20'>S</td><td class='#CCCCCC' width='20' align='center' valign='middle'>M</td><td class='cal_top' width='20' align='center' valign='middle'>D</td><td class='cal_top' width='20' align='center' valign='middle'>M</td><td class='cal_top' width='20' align='center' valign='middle'>D</td><td class='cal_top' width='20' align='center' valign='middle'>F</td><td class='cal_top' width='20' align='center' valign='middle'>S</td></tr></table>";    // Inhalt layouten    content.style.textAlign = "center";    content.style.background = "none";    // Kalenderobjekt in die Seite einfügen    b[0].appendChild(container);    // Aktueller Monat und aktuelles Jahr    var d = new Date();    Kalender.curMonat = d.getMonth()+1;     Kalender.curJahr = d.getFullYear();    // Datumsgrenzen    Kalender.selectionStart = Kalender.selectionEnd = 0;    // Mausebewegungen abfangen    // Kann mit der Variablen withmove abgeschaltet werden    if (Kalender.withmove) {      Kalender.eH(gE("monat"),'mousedown',Kalender.verschieben,false);      Kalender.eH(document,'mousemove',Kalender.move,false);    }  },  //  // Kalender nicht länger anzeigen  //  close: function() { gE("container_dom_cal").style.display = "none"; },  //  // Nächsten Monat anzeigen  //  nextMon: function() {    if (Kalender.curMonat == 12) {      Kalender.curMonat = 1; Kalender.curJahr++;    } else Kalender.curMonat++;    Kalender.anzeige();  },  //  // Vorheriger Monat anzeigen  //  prevMon: function() {    if (Kalender.curMonat == 1) {      Kalender.curMonat = 12; Kalender.curJahr--;    } else Kalender.curMonat--;    Kalender.anzeige();  },  //  // Datum in das entsprechende Objekt einfügen  //  setzen: function(ts) {    var d = new Date(ts);    if (Kalender.destObj) {      var m = d.getMonth()+1; var y = d.getDate();      if (m<10) m = "0"+m; if (y<10) y = "0"+y;      var z = gE(Kalender.destObj);      // Layoutstring erzeugen      var l = Kalender.layout;      l = l.replace(/%d/g,y);      l = l.replace(/%m/g,m);      l = l.replace(/%b/g,Kalender.mshort[d.getMonth()]);      l = l.replace(/%B/g,Kalender.monate[d.getMonth()]);      l = l.replace(/%y/g,d.getFullYear());      l = l.replace(/%a/g,Kalender.weekdays[d.getDay()]);      z.value = l;    }    // Kalender schliessen    Kalender.close();  },  //  // Kalender für einen bestimmten Monat anzeigen  // Wenn monat / jahr nicht angegeben wird, wird das jeweils aktuelle genommen  // obj ist das Objekt in welches später das gewählte Datum geschrieben wird  // pdays versteht sich als Startoffset für gültige Tage ab dem aktuellen  // tdays ist der Endoffset für gültige Tage ab dem aktuellen  //  anzeige: function(monat, jahr, obj, pdays, tdays, layout) {    // Monat & Jahr sind angegeben und Monat ist zwischen 1 und 12?    if ((monat == null) || (jahr == null)) {      monat = Kalender.curMonat; jahr = Kalender.curJahr;    }    // Datumslayout zuweisen    if (layout) Kalender.layout = layout;    // Scrollposition auslesen    if (Kalender.ismsie) {      // ab MSIE 6      if (document.documentElement && document.documentElement.scrollTop) {        var yFromTop = document.documentElement.scrollTop;      } else {        var yFromTop = document.body.scrollTop;      }    } else if (self.pageYOffset) {      var yFromTop = self.pageYOffset;    } else { var yFromTop = 0; }    // Zielobjekt setzen    if (obj) {      Kalender.destObj = obj;      // Container genau auf die Mausposition setzen      var c = gE("container_dom_cal");      c.style.left = Kalender.lastMouseX + "px";       c.style.top =  (yFromTop+Kalender.lastMouseY) + "px";    }    // Monat ist gueltig?    if ((isNaN(parseInt(monat))) || ((monat < 1) || (monat > 12))) return;    // Monat & Jahr setzen    Kalender.curJahr = jahr; Kalender.curMonat = monat;    // Monat und Jahr inkl. Links einblenden    gE("monat").innerHTML = "<table cellspacing='0' cellpadding='0' border='0' width='200px'><tr><td valign='middle'><a href='JavaScript:Kalender.prevMon()'><img src='images/cal_left_arrow.gif' width='30' height='20' border='0'></a></td><td align='center' valign='middle'>"+Kalender.monate[monat-1]+" "+jahr+"</td><td valign='middle'><a href='JavaScript:Kalender.nextMon()'><img src='images/cal_right_arrow.gif' width='30' height='20' border='0'></a></td></tr></table>";    // Zeitgrenzen setzen    if (pdays != null) {      var h = new Date();      var n = new Date(h.getFullYear(),h.getMonth(),h.getDate(),0,0,1);      Kalender.selectionStart = n.getTime()+(Kalender.oneDay*pdays);      Kalender.selectionEnd = ((tdays == null)||(tdays == 0))?0:tdays;    }    // Datumsobjekt initialisieren    var d = new Date(jahr,monat-1,1,6,0,1); var n = d.getTime();     var f = n;     var t = (Kalender.selectionEnd != 0)?Kalender.selectionStart+Kalender.oneDay*Kalender.selectionEnd:0;    // Tage in den Kalender einfügen    var o = ""; var j = 1; var l = 0;	o += "<table cellspacing='2' cellpadding='0' border='0'><tr>"    for (var i = 1; i <= d.getDay(); i++) {      o+= "<td width='20' height='20'></td>"; j++;    }    o += "";    var dim = Kalender.daysinmonth[monat-1];    // Schaltjahr?    if (monat == 2) {      if (jahr % 4   == 0) dim++;      if (jahr % 100 == 0) dim--;      if (jahr % 400 == 0) dim++;    }    for (i = 1; i <= dim; i++) {      // Datum gültig ab?      if ((f) && (f >= Kalender.selectionStart)) {        f = 0; l = 1;      }      // Datum gültig bis?      if ((t>0) && (n >= t)) {        t = -1; l = 0;      }	  var z = gE(Kalender.destObj);      if (l) {       lnew = String(z.value).substring(0,2);	  //alert(lnew+" "+i)	  if (lnew == i) { 	  o+= "<td class='cal_middle_mark' width='20' height='20' valign='middle' align='center'>"; 	  }	  else {	  o+= "<td class='cal_middle_today' width='20' height='20' valign='middle' align='center'>";	  }	  }  	  else { 	  o+= "<td class='cal_middle' width='20' height='20' valign='middle' align='center'>";   	  }      // Link einfügen      if (l) o += "<a href='JavaScript:Kalender.setzen("+n+")' class='cal'>";      // Datum setzen      o += (i<10)?"":""; o+= ""+i+""; j++;       o += (l)?"</a></td>":"</td>";      n+=Kalender.oneDay; f += (f)?Kalender.oneDay:0;      if (j == 8) {        j = 1; o += "</tr><td>";      } else o += " ";    } //for zu ende	    if (j!=1) for (i = j; i <= 8; i++) o+= "<td width='20' height='20'></td>";    else o += "</tr><tr>";    o += "</table>";    // Daten anzeigen    gE("days").innerHTML = o;    // Kalender anzeigen    gE("container_dom_cal").style.display = "block";      },  //  // X Position innerhalb eines Objektes finden  //  findPos: function(o,x) {    var l = 0;    if (o.offsetParent) {      do {        l += (x)?o.offsetLeft:o.offsetTop;      } while (o = o.offsetParent);    } else if (o.x) {      l += (x)?o.x:o.y;    }    // Position innerhalb des Objektes übergeben    return l;  },  //  // Kalender wird in der Seite verschoben  //  verschieben: function(e) {    // Daten korrigieren    e = Kalender.chkEvH(e);    // Target Element holen    var t = e.target?e.target:e.srcElement;    t.style.cursor = "move";    Kalender.obj = gE("monat");    Kalender.obj.clickAtX = e.clientX - Kalender.findPos(t,1);    Kalender.obj.clickAtY = e.clientY - Kalender.findPos(t,0);    // Mausebewegungen verfolgen    Kalender.eH(document,'mouseup',Kalender.stop,false);  },  //  // Maus wird bewegt  //  move: function(e) {    // Event zuordnen    e = Kalender.chkEvH(e);    // X und Y Position zuweisen    var x = e.clientX; var y = e.clientY;    // Objekt holen    var o = Kalender.obj; if (o == null) {      Kalender.lastMouseX = x; Kalender.lastMouseY = y;      return false;    }    // Kalenderposition ermitteln    var kx = o.style.top;    var ky = o.style.left;    // Daten nun verarbeiten und Objekt bewegen    gE("container_dom_cal").style.left = (x-o.clickAtX) + "px";    gE("container_dom_cal").style.top  = (y-o.clickAtY) + "px";    o.lastMouseX = x; o.lastMouseY = y;    return false;  },  //  // Mausbutton wurde losgelassen  //  stop: function(e) {        // Eventhandler loeschen    gE("monat").style.cursor = "auto";    Kalender.obj = null;  },  //  // DIV Position übergeben  //  chkEvH: function(e) {    if (typeof e == 'undefined') e = window.event;    if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;    if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;    return e;  }};//// Initialisierung durchführen wenn die Seite geladen wurde//Kalender.eH(window,'load',Kalender.init,false);
