
var callingForm = "";
var callingElement = "";

function showcalendar(cF, cE, Monat, Jahr) {

  callingForm = cF;
  callingElement = cE;
  if(document.getElementById){
    if(document.getElementById("popupcalendar").style.visibility == "visible"){
       document.getElementById("popupcalendar").style.visibility = "hidden";
    }else{
       document.getElementById("popupcalendar").style.visibility = "visible";
       document.getElementById("popupcalendar").innerHTML = Kalender(Monat, Jahr);
    }
  }
}

function put(foo) { 
  document.forms[callingForm].elements[callingElement].value = foo;
} 

function Kalender(Monat, Jahr){


  //Objektname = new Date(Jahr, Monat-1, Tag); Monat 0 ist Januar
  var jetzt = new Date();
  // getDate: Liefert den Monatstag eines Datumsobjektes als Zahl zurück
  var DieserMonat = jetzt.getMonth() + 1;
  var DiesesJahr = jetzt.getYear();
  if (DiesesJahr < 999)
    DiesesJahr += 1900;
  var DieserTag = jetzt.getDate();

  Monatsname = new Array("Januar", "Februar", "Maerz", "April", "Mai", "Juni", "Juli",
                          "August", "September", "Oktober", "November", "Dezember");
  Tag = new Array("Mo", "Di", "Mi", "Do", "Fr", "Sa", "So");

  //Monat der angezeigt werden soll die
  var Zeit = new Date(Jahr, Monat - 1, 1);
  Monat = Zeit.getMonth() + 1;
  Jahr = Zeit.getYear();
  if (Jahr < 999)
    Jahr += 1900;
  // Liefert den Wochentag eines Datumsobjektes als Zahl zurück
  // 0 (für Sonntag), 1 (für Montag) usw. bis 6 (für Samstag)
  // 0 (Mo), 1 (di), 2 (mi), 3 (do), 4 (fr), 5 (sa), 6 (so)
  var Start = Zeit.getDay();
  if (Start > 0) {
    Start--;
  } else {
    Start = 6;
  }

  var Stop = 31;
  if (Monat == 4 || Monat == 6 || Monat == 9 || Monat == 11)
    --Stop;
  if (Monat == 2) {
    Stop = Stop - 3;
    if (Jahr % 4 == 0)
      Stop++;
    if (Jahr % 100 == 0)
      Stop--;
    if (Jahr % 400 == 0)
      Stop++;
  }

  // Beispiel: März 2006
  
  var Monatskopf = Monatsname[Monat - 1] + " " + Jahr;

  var output = "";
  output += '<table class="calendar" cellpadding="0" cellspacing="0">';
  output += makeHead(Monatskopf, Monat, Jahr);

  output += '<tbody>';
  var Tageszahl = 1;
  for (var i = 0; i <= 5; i++) {
    if (Tageszahl > Stop) {
    }else{
    output += '<tr>';

    for (var j = 0; j <= 5; j++) {
      if ((i == 0) && (j < Start)) {
        // Tage vor dem 1.
        output += SchreibeZelle(" ", "", " ", " ");
      } else {
        if (Tageszahl > Stop) {
          //Tage nach Stop (ohne Sonntag)
          output += SchreibeZelle(" ", "", " ", " ");
        } else {
          if ((Jahr == DiesesJahr) && (Monat == DieserMonat) && (Tageszahl == DieserTag)) {
            output += SchreibeZelle(Tageszahl, "", Monat, Jahr);
          } else {
            output += SchreibeZelle(Tageszahl, "", Monat, Jahr);
          }
          Tageszahl++;
        }
      }
    }
    if (Tageszahl > Stop) {
      // Sonntag nach Stop
      output += SchreibeZelle(" ");
    } else {
      if ((Jahr == DiesesJahr) && (Monat == DieserMonat) && (Tageszahl == DieserTag)) {
        output += SchreibeZelle(Tageszahl, "weekend", Monat, Jahr);
      } else {
        output += SchreibeZelle(Tageszahl, "weekend", Monat, Jahr);
      }
      Tageszahl++;
    }
    output += '<\/tr>';
    }
  }
  output += '</tbody>';
  output += '</table>';
  
  
  return(output);
               
}//function

function SchreibeZelle (Inhalt, Weekend, Monat, Jahr) {
  var Zelle1 = "";
//  Zelle1 += '<td>';
  Zelle1 += '<td class="day' + Weekend + '" onclick="put(\'' + Jahr + '-' + Monat + '-' + Inhalt + '\')" onmouseout="this.style.backgroundImage=\'URL(css/default/popupcalendar/normal-bg.gif)\'" onmouseover="this.style.backgroundImage=\'URL(css/default/popupcalendar/hover-bg.gif)\'">';
  Zelle1 += Inhalt;
  Zelle1 += '</td>';
  return Zelle1;
}

function makeHead (Monatstitel, Monat, Jahr) {

  var foo = "";
  foo += '<thead>';
  
  foo += '<tr><td class="button"></td>';
  foo += '<td class="title" colspan="5">' + Monatstitel + '</td><td align="right"><a onclick="showcalendar()">X </a></td></tr>';
  foo += '<tr class="headrow">';
  foo += '<td class="button nav">«</td>';
  foo += '<td class="button nav"><a onclick="changemonth(' + (Monat-1) + ', ' + Jahr + ')">&lt;</a></td>';
  foo += '<td class="button" colspan="3">Today</td>';
  foo += '<td class="button nav"><a onclick="changemonth(' + (Monat+1) + ', ' + Jahr + ')">&gt;</a></td>';
  foo += '<td class="button nav">»</td></tr>';
  
  foo += '<tr class="daynames">';
  //foo += '<td class="name wn">wk</td>';
  for (var i = 0; i <= 4; i++)
    foo += '<td class="dayname">' + Tag[i] + '</td>';
  for (var i = 5; i <= 6; i++)
    foo += '<td class="daynameweekend">' + Tag[i] + '</td>';
  foo += '</tr>';
  foo += '</thead>';
  return( foo);
}

function changemonth(Monat, Jahr){
  document.getElementById("popupcalendar").innerHTML = Kalender(Monat, Jahr);
}
