function createCalender($month, $year, $termine = array(), $small = false, $parent = false)
{
global $farben_typ;
global $terminhelper;
global $tauchtruppstaerke;
global $sql;
$return = "";
if ($month == "13")
{
$month = 1;
$year = $year + 1;
}
else if ($month == "0")
{
$month = 12;
$year = $year - 1;
}
if ($parent)
{
$return .= "<table align=\"center\">\n";
$return .= " <tr>\n";
$return .= "\t<td align=\"center\" onClick=\"window.location.href='?month=" . ($month - 1) . "&year=" . $year . "';\">\n";
$return .= "<a href=\"?month=" . ($month - 1) . "&year=" . $year . "\"><img src=\"images/back_alt.png\" alt=\"zurück\" border=\"0\"></a>\n";
$return .= "\t</td>\n";
$return .= "\t<td align=\"center\">\n";
$return .= createCalender($month - 1, $year, $termine, true, false);
$return .= "\t</td>\n";
$return .= "\t<td align=\"center\">\n";
}
if($small)
{
$height = "15px";
$width = "15px";
$h = "3";
$font_size = "normal";
}
else
{
$height = "50px";
$width = "50px";
$h = "1";
$font_size = "x-large";
}
// Monat 2-stellig
$month = str_pad($month, 2, "0", STR_PAD_LEFT);
// Anzahl der Tage des Monats ausgeben
// $days = cal_days_in_month(CAL_GREGORIAN, $month, $year);
$days = date("t", mktime(0, 0, 0, $month, 1, $year));
// Wochentage zum Anzeigen
$wochentage = array ("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
// für Anzahl der Tage for-Schleife ausführen
for ($day = 1; $day <= $days; $day++)
{
// aus dem Datum ein UNIX-Timestamp erstellen
$unixtimestamp = mktime(0, 0, 0, $month, $day, $year);
// nummerischen Wert des Tages auslesen #0 (für Sonntag) bis 6 (für Samstag)#
$wochentag = date('w', $unixtimestamp);
// Kalenderwoche auslesen
$kalenderwoche = date('W', $unixtimestamp);
// Wochentag ausgeben
$wochentag = $wochentage[$wochentag];
// Tag in ein multidemensionales Array schreiben => KW => Wochentag => Tag
$kalender[$kalenderwoche][$wochentag] = $day;
}
// Wochentage in gewünschter Reihenfolge
$wochentage = array ("Mo", "Di", "Mi", "Do", "Fr", "Sa", "So");
// Monate
$monate = array ("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
// Monat ausgeben
$return .= "<h$h onClick=\"$.fn.colorbox({height: '95%', width: '600px', iframe:true, href:'modules/anfrage_neu.php?action=monat&date=" . $month . "-" . $year . "', open:true});\" style=\"cursor:pointer;\">" . $monate[date("n", $unixtimestamp)-1] . " " . $year . "</h$h>\n";
// Kopfzeile ausgeben
$return .= "<table border=\"1\" cellpadding=\"5\" cellspacing=\"0\" align=\"center\">
<tr style=\"background-color: #e0e0e0; font-size: $font_size; font-weight:bold; text-align: center;\">
<td style=\"width: $width;\"><b>KW</b></td>
<td style=\"width: $width;\"><b>Mo</b></td>
<td style=\"width: $width;\"><b>Di</b></td>
<td style=\"width: $width;\"><b>Mi</b></td>
<td style=\"width: $width;\"><b>Do</b></td>
<td style=\"width: $width;\"><b>Fr</b></td>
<td style=\"width: $width;\"><b>Sa</b></td>
<td style=\"width: $width;\"><b>So</b></td>
</tr>\n";
// Array durchlaufen und KW-Zeilen ausgeben
foreach ($kalender AS $KW => $date)
{
$return .= " <tr style=\"height: $height; vertical-align: middle; text-align: center;\">\n";
$return .= "\t<td style=\"background-color: #e0e0e0;\"><b>" . $KW . "</b></td>\n";
foreach ($wochentage AS $wochentag)
{
if (isset($date[$wochentag]))
{
$day = str_pad($date[$wochentag], 2, "0", STR_PAD_LEFT);
if (isset($termine[$year][$month][$day]))
{
$zusagen = $sql->select("SELECT id FROM termine_user WHERE status=0 AND termin='" . $termine[$year][$month][$day]->id ."'");
if (count($zusagen) < $tauchtruppstaerke AND $termine[$year][$month][$day]->typ != 2 AND $termine[$year][$month][$day]->status == 0)
{
$termine[$year][$month][$day]->status = 4;
}
$farbe = $farben_typ[$termine[$year][$month][$day]->typ][$termine[$year][$month][$day]->status][0];
if ($termine[$year][$month][$day]->tbis > 0)
{
// wenn Termin über einen Zeitraum geht, Folgetage markieren
for ($i = $termine[$year][$month][$day]->tdatum; $i <= $termine[$year][$month][$day]->tbis; $i = $i + 86400)
{
$year_h = date("Y", $i);
$month_h = date("m", $i);
$day_h = date("d", $i);
if (isset($terminhelper[$year_h][$month_h][$day_h]))
{
$terminhelper[$year_h][$month_h][$day_h] .= $farbe;
}
else
{
$terminhelper[$year_h][$month_h][$day_h] = $farbe;
}
}
}
if (isset($terminhelper[$year][$month][$day]))
{
$farbe .= ";" . $terminhelper[$year][$month][$day];
}
$status = $termine[$year][$month][$day]->status;
// $farbe = " style=\"background-color: rgb(" . $farben_status[$status][0] . ", " . $farben_status[$status][1] . ", " . $farben_status[$status][2] . "); color: " . $farben_status[$status][3] . ";\"";
// $farbe = "onClick=\"jQuery.facebox(function(date){jQuery.get('modules/anfrage.php?date=" . $year . "-" . $month . "-" . $date[$wochentag] . "', function(data) {jQuery.facebox(data)})});\" style=\"background-image: url(images/color.php?farben=$farbe); cursor:pointer;\"";
$farbe = "onClick=\"$.fn.colorbox({height: '95%', width: '600px', iframe:true, href:'modules/anfrage_neu.php?date=" . $date[$wochentag] . "-" . $month . "-" . $year . "', open:true});\" style=\"background-image: url(images/color.php?farben=$farbe); cursor:pointer;\"";
$b = "<b>";
$be = "</b>";
}
else
{
if (isset($terminhelper[$year][$month][$day]))
{
$farbe = $terminhelper[$year][$month][$day];
$farbe = "style=\"background-image: url(images/color.php?farben=$farbe); cursor:pointer;\" onClick=\"$.fn.colorbox({height: '95%', width: '600px', iframe:true, href:'modules/anfrage_neu.php?date=" . $date[$wochentag] . "-" . $month . "-" . $year . "', open:true});\" style=\"background-image: url(images/color.php?farben=$farbe); cursor:pointer;\"";
}
else
{
$farbe = "onClick=\"$.fn.colorbox({height: '95%', width: '600px', iframe:true, href:'modules/anfrage_neu.php?date=" . $date[$wochentag] . "-" . $month . "-" . $year . "', open:true});\" style=\"cursor:pointer;\"";
}
$b = $be = "";
}
}
else
{
$farbe = "";
$b = $be = "";
}
if (isset($date[$wochentag]))
{
$return .= "\t<td onmouseout=\"UnTip();abbrechen();\"$farbe>$b" . $date[$wochentag] . "$be</td>\n";
}
else
{
$return .= "\t<td> </td>\n";
}
}
$return .= " </tr>\n";
}
$return .= "</table>\n";
if ($parent)
{
$return .= "\t</td>\n";
$return .= "\t<td align=\"center\">\n";
$return .= createCalender($month + 1, $year, $termine, true, false);
$return .= "\t</td>\n";
$return .= "\t<td align=\"center\" onClick=\"window.location.href='?month=" . ($month + 1) . "&year=" . $year . "';\">\n";
$return .= "<a href=\"?month=" . ($month + 1) . "&year=" . $year . "\"><img src=\"images/forward_alt.png\" alt=\"zurück\" border=\"0\"></a>\n";
$return .= "\t</td>\n";
$return .= " </tr>\n";
$return .= "</table>\n";
}
return $return;
}