vielen Dank für den Hinweis. Wir haben die array erweitert und es funktioniert :-}
Hier die Aktualisierung.
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Termin sKalender universal
* Version     :     2.6
* Author      :     schlaucher
* Created     :     02-08-2006
* Modified    :     06-10-2008
* Modified    :     29-11-2010 / is_array andy-man
************************************************/ 
cInclude('frontend', 'includes/functions.terminliste.php');
if ($_REQUEST['MOD_sK_newdate']) // Datum wurde über den sKalender neu gesetzt
    {
    $MOD_sK_newdate_array = explode("-",$_REQUEST['MOD_sK_newdate']);  // yyyy-m-t oder mm tt
    $MOD_sK_checkdate_von = date("Y-m-d", mktime (0,0,0, $MOD_sK_newdate_array[1], 1,  $MOD_sK_newdate_array[0]));
    $MOD_sK_tag_max = date( "t", mktime(0,0,0, $MOD_sK_newdate_array[1], 1, $MOD_sK_newdate_array[0]));
    $MOD_sK_checkdate_bis = date("Y-m-d", mktime (0,0,0, $MOD_sK_newdate_array[1], $MOD_sK_tag_max,  $MOD_sK_newdate_array[0]));
    }
else // aktuelles Datum verwenden
    {
    $MOD_sK_heute = getdate();
    $MOD_sK_checkdate_von = date("Y-m-d", mktime (0,0,0, $MOD_sK_heute["mon"], 1,  $MOD_sK_heute["year"]));
    $MOD_sK_tag_max = date( "t", mktime(0,0,0, $MOD_sK_heute["mon"], 1, $MOD_sK_heute["year"]));
    $MOD_sK_checkdate_bis = date("Y-m-d", mktime (0,0,0, $MOD_sK_heute["mon"], $MOD_sK_tag_max,  $MOD_sK_heute["year"]));
    }
//echo 'Anzeige von: '.$MOD_sK_checkdate_von.' bis '.$MOD_sK_checkdate_bis.'<br>';
$MOD_sK_zaehler = 0;
$MOD_sK_zaehler2 = 0;
$MOD_sK_tage= array(mi18n("So"),mi18n("Mo"),mi18n("Di"),mi18n("Mi"),mi18n("Do"),mi18n("Fr"),mi18n("Sa"));
// Variablen aus Input Bereich
if ("CMS_VALUE[4]" == '')   // Link zu den Terminen aktiv
    $MOD_sK_linkyn = false;
else
    $MOD_sK_linkyn = true;
if ("CMS_VALUE[7]" == 'datum') // Anzeigemodus Datum oder Status// Überprüfung ob zusätzliche Kategorien gewählt wurden
    $MOD_sK_anzeigemodus = true;
else
    $MOD_sK_anzeigemodus = false;
if ("CMS_VALUE[9]" == '')   // Dropdown-Feld aktiv
    $MOD_sK_ddownyn = false;
else
    $MOD_sK_ddownyn = true;
$MOD_sK_idcat = "CMS_VALUE[1]";
$MOD_sK_idcatart = "CMS_VALUE[3]";
$MOD_sK_add_tree = "CMS_VALUE[5]"; // zusätzliche Kategorien anzeigen
$MOD_sK_add_tree_ids = "CMS_VALUE[6]"; // ids der zusätzlichen Kategorien
$MOD_sk_ddown = "CMS_VALUE[8]"; // Angezeigte Jahre im Dropdown Feld 
if ($MOD_sK_add_tree == "" || ($MOD_sK_add_tree_ids == "" && $MOD_sK_add_tree == "auswahl"))
    $MOD_sK_add_tree = 'keine';
    
if (eregi(',', $MOD_sk_ddown))
    $MOD_sk_arry_down = explode(",", $MOD_sk_ddown);
else
    $MOD_sk_arry_down[0] = $MOD_sk_ddown;
// zusätzliche Kategorien ermitteln
$MOD_sK_sel_tree = "'".$MOD_sK_idcat."'";
switch ($MOD_sK_add_tree) 
    {
    case "unterhalb":
        $MOD_sK_tree_level = -1;
        $MOD_sK_sql_tree    = "SELECT CAT.idcat AS idcat, CATTREE.level AS level ";
        $MOD_sK_sql_tree   .= "FROM ".$cfg["tab"]["cat"]." AS CAT,";
        $MOD_sK_sql_tree   .= " ".$cfg["tab"]["cat_tree"]." AS CATTREE ";
        $MOD_sK_sql_tree   .= "WHERE CAT.idcat = CATTREE.idcat "; 
        $MOD_sK_sql_tree   .= "ORDER BY CATTREE.idtree";
        $db->query($MOD_sK_sql_tree);
        while($db->next_record()) 
            {
            if ($db->f("idcat") == $MOD_sK_idcat)
                $MOD_sK_tree_level = $db->f("level");
            else if ($MOD_sK_tree_level > -1 && $db->f("level") > $MOD_sK_tree_level)
                $MOD_sK_sel_tree .= ",'".$db->f("idcat")."'";
            else if ($db->f("level") <= $MOD_sK_tree_level)
                break;
            }
        break;
    case "auswahl":
        $MOD_sK_add_tree_array = explode(",",$MOD_sK_add_tree_ids);
        foreach ($MOD_sK_add_tree_array as $MOD_sK_add_tree_value) 
            {
            if (is_numeric($MOD_sK_add_tree_value))
                $MOD_sK_sel_tree .= ",'".$MOD_sK_add_tree_value."'";
            }
        break;
    default:
    }
// Alle Artikel der Kategorie einlesen, die nicht Startartikel sind
$MOD_sK_sql  = "SELECT  ARTLANG.idart, CONTENT.value, CONTENT.typeid, ARTLANG.idartlang, CONTENT.idtype ";
$MOD_sK_sql .= "FROM ".$cfg["tab"]["cat_art"]." AS CATART,";
$MOD_sK_sql .= " ".$cfg["tab"]["art_lang"]." AS ARTLANG,";
$MOD_sK_sql .= " ".$cfg["tab"]["cat"]." AS CAT,";
$MOD_sK_sql .= " ".$cfg["tab"]["content"]." AS CONTENT,";
$MOD_sK_sql .= " ".$cfg["tab"]["cat_lang"]." AS CATLANG ";
$MOD_sK_sql .= "WHERE ARTLANG.idart = CATART.idart ";
$MOD_sK_sql .= "AND CATART.idcat = CAT.idcat ";
$MOD_sK_sql .= "AND ARTLANG.idartlang = CONTENT.idartlang ";
$MOD_sK_sql .= "AND ARTLANG.idlang = '".$lang."' ";
$MOD_sK_sql .= "AND CAT.idcat IN (".$MOD_sK_sel_tree.") ";
$MOD_sK_sql .= "AND CAT.idclient = '".$client."' ";
$MOD_sK_sql .= "AND ARTLANG.online = '1' ";
$MOD_sK_sql .= "AND CATART.idcat = CATLANG.idcat ";
if ($cfg["is_start_compatible"] == true)
    $MOD_sK_sql .= "AND CATART.is_start = '0' ";
else
    $MOD_sK_sql .= "AND CONTENT.idartlang != CATLANG.startidartlang ";
$MOD_sK_sql .= "ORDER BY ARTLANG.idart, CONTENT.typeid ASC";
$db->query($MOD_sK_sql); 
    
// weiter, wenn Artikel gefunden wurden
if ($db->num_rows() > 0) 
    { 
    $MOD_sK_termine = array(array()); // Array erzeugen, in dem die Termine abgelegt werden; 
    while ($MOD_sK_datensaetze < $db->num_rows()) // alle Datensätze durchlaufen 
        { 
        $db->next_record(); 
        if ($db->f("idart") > $MOD_sK_termine["idart"][$MOD_sK_zaehler]) 
            $MOD_sK_zaehler++; 
        if (isStartArticle($db->f("idartlang"),$MOD_sK_durchlaufdcat,$lang)==FALSE) 
            { 
            $MOD_sK_linktyp = $db->f("idtype");
            switch ($db->f("typeid")) 
                { 
                case 0: // Anfangstermin 
                    if ($MOD_sK_linktyp == '3') // Text
                        {
                        $MOD_sK_termine["datum1"][$MOD_sK_zaehler] = $db->f("value"); 
                        if (strlen($MOD_sK_termine["datum1"][$MOD_sK_zaehler]) < 10) // falsches oder kein Datum
                            $MOD_sK_termine["datum1"][$MOD_sK_zaehler] = '1970-01-01';
                        $MOD_sK_termine["idart"][$MOD_sK_zaehler] = $db->f("idart"); 
                        $MOD_sK_termine["zyklus"][$MOD_sK_zaehler] = 'no';   
                        $MOD_sK_termine["datum2"][$MOD_sK_zaehler] = '';     
                        $MOD_sK_termine["status"][$MOD_sK_zaehler] = '0';
                        $MOD_sK_termine["xtag"][$MOD_sK_zaehler] = '';
                        $MOD_sK_termine["aliste"][$MOD_sK_zaehler] = '';                        
                        $MOD_sK_termine["zutermine"][$MOD_sK_zaehler] = '';                     
                        }
                    break; 
                case 2: // Endtermin 
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["datum2"][$MOD_sK_zaehler] = $db->f("value");
                    break;
                case 10: // Termin Zyklus 
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["zyklus"][$MOD_sK_zaehler] = $db->f("value"); 
                    break; 
                case 11: // Zyklus Wochentage 
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["wtagezyklus"][$MOD_sK_zaehler] = $db->f("value"); 
                    break;    
                case 12: // 1., 2., ... Wochentag im Monat
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["wtagemon"][$MOD_sK_zaehler] = $db->f("value");
                    break; 
                case 15: // Status
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["status"][$MOD_sK_zaehler] = $db->f("value");
                    break;
                case 16: // Zyklus xten Tag
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["xtag"][$MOD_sK_zaehler] = $db->f("value");
                    break; 
                case 17: //  Ausschlussliste
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["aliste"][$MOD_sK_zaehler] = $db->f("value");
                    break; 
                case 22: //  zusätzliche Termine
                    if ($MOD_sK_linktyp == '3') // Text
                        $MOD_sK_termine["zutermine"][$MOD_sK_zaehler] = $db->f("value");
                    break; 
                } 
            } 
        $MOD_sK_datensaetze++; 
        } 
    // Ermittlung der zyklischen Termine und Löschen von Datensätzen, die nicht angezeigt werden müssen
    $MOD_sK_zaehler2 = $MOD_sK_zaehler+1; // zweiten Zähler anlegen
    for ($MOD_sK_durchlauf=0; $MOD_sK_durchlauf<=$MOD_sK_zaehler; $MOD_sK_durchlauf++)
        {   
        if (($MOD_sK_termine["zyklus"][$MOD_sK_durchlauf] != 'no' || $MOD_sK_termine["zutermine"][$MOD_sK_durchlauf] != '') && $MOD_sK_termine["idart"][$MOD_sK_durchlauf] != '' ) // Zyklischer Termin
            {
            $MOD_sK_zdate_array = makedatearray($MOD_sK_termine["datum1"][$MOD_sK_durchlauf],$MOD_sK_termine["datum2"][$MOD_sK_durchlauf],
                                        $MOD_sK_termine["zyklus"][$MOD_sK_durchlauf],$MOD_sK_termine["xtag"][$MOD_sK_durchlauf],
                                        $MOD_sK_termine["aliste"][$MOD_sK_durchlauf],$MOD_sK_checkdate_von,$MOD_sK_checkdate_bis,
                                        $MOD_sK_termine["wtagezyklus"][$MOD_sK_durchlauf],$MOD_sK_termine["wtagemon"][$MOD_sK_durchlauf],$MOD_sK_termine["zutermine"][$MOD_sK_durchlauf]);
            for ($MOD_sK_durchlauf2=0; $MOD_sK_durchlauf2<count($MOD_sK_zdate_array); $MOD_sK_durchlauf2++)
                {
                if($MOD_sK_zdate_array[$MOD_sK_durchlauf2] && ($MOD_sK_zdate_array[$MOD_sK_durchlauf2] != $MOD_sK_termine["datum1"][$MOD_sK_durchlauf]))
                    {
                    $MOD_sK_termine["datum1"][$MOD_sK_zaehler2] = $MOD_sK_zdate_array[$MOD_sK_durchlauf2]; 
                    $MOD_sK_termine["datum2"][$MOD_sK_zaehler2] = ' '; 
                    $MOD_sK_termine["idart"][$MOD_sK_zaehler2] = $MOD_sK_termine["idart"][$MOD_sK_durchlauf];
                    $MOD_sK_termine["status"][$MOD_sK_zaehler2] = $MOD_sK_termine["status"][$MOD_sK_durchlauf];
                    $MOD_sK_zaehler2++;
                    }
                }
                
            if ($MOD_sK_termine["zyklus"][$MOD_sK_durchlauf] != 'no')
                $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] = ' ';     
            }
        }
        
    // Prüfung ob Termin im aktuellen Anzeigezeitrahmen ist
    for ($MOD_sK_durchlauf=0; $MOD_sK_durchlauf<=$MOD_sK_zaehler2; $MOD_sK_durchlauf++)
        {
        if (!(($MOD_sK_termine["datum1"][$MOD_sK_durchlauf] >= $MOD_sK_checkdate_von && $MOD_sK_termine["datum1"][$MOD_sK_durchlauf] <= $MOD_sK_checkdate_bis) ||
            ($MOD_sK_termine["datum2"][$MOD_sK_durchlauf] >= $MOD_sK_checkdate_von && $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] <= $MOD_sK_checkdate_bis ) ||
            ($MOD_sK_termine["datum1"][$MOD_sK_durchlauf] < $MOD_sK_checkdate_von && $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] > $MOD_sK_checkdate_bis)))
            {
            unset ($MOD_sK_termine["datum1"][$MOD_sK_durchlauf]);
            unset ($MOD_sK_termine["datum2"][$MOD_sK_durchlauf]);
            unset ($MOD_sK_termine["idart"][$MOD_sK_durchlauf]);
            unset ($MOD_sK_termine["status"][$MOD_sK_durchlauf]);
            }
        }
    }
else
    {
    // Bugfix, da sonst Fehlermeldung beim prüfen der belegten Termine
    $MOD_sK_termine["datum1"][0] = '1970-01-01';
    $MOD_sK_termine["datum2"][0] = '1970-01-01';
    $MOD_sK_termine["idart"][0] = '0';
    $MOD_sK_termine["status"][0] = '0';
    }
if( !empty($MOD_sK_termine["datum1"]) ) 
    {
        array_multisort ( $MOD_sK_termine["datum1"], SORT_ASC, SORT_STRING, 
                $MOD_sK_termine["datum2"], SORT_ASC, SORT_STRING,
                $MOD_sK_termine["idart"], 
                $MOD_sK_termine["status"]); 
        }
$sKalender = new sKalender();
$sKalender->setDate( $MOD_sK_newdate_array[2], $MOD_sK_newdate_array[1], $MOD_sK_newdate_array[0] );
$sKalender->printCalender();
class sKalender
    {
    var $MOD_sK_akt_datum;
    var $MOD_sK_admin;
        
        function sKalender()
            {
            // Verhindert mögliche Endlosloops Ausführungszeit max 1 Sek.
            //set_time_limit( 1 );
            
            // wird der Funktion eine Parameter übergeben, wird diese dem Key "MOD_sK_admin" zugeordent
            if( func_num_args() == 1 )
                $this->MOD_sK_admin = func_get_arg( 0 );
            else
                $this->MOD_sK_admin = false;
            
            // aktuelles Datum in Array MOD_sK_akt_datum schreiben
                $this->MOD_sK_akt_datum = getdate();
            }
        
        function setDate( $MOD_sK_tag, $MOD_sK_monat, $MOD_sK_jahr )
            {
            // prüft, ob alle Werte übergeben wurden und schreibt diese dann ins Array
            if( $MOD_sK_tag != ""  &&  $MOD_sK_monat != ""  &&  $MOD_sK_jahr != "" )
                {
                $this->MOD_sK_akt_datum["mday"] = $MOD_sK_tag*1;  // führende Nullen entfernen
                $this->MOD_sK_akt_datum["mon"] = $MOD_sK_monat*1; // führende Nullen entfernen
                $this->MOD_sK_akt_datum["year"] = $MOD_sK_jahr;
                return true;
                } 
            else
                return false;
            }
        
        function getDateByMonth( $MOD_sk_neuer_monat )
            {
            $MOD_sK_neues_datum = mktime (0,0,0, ($this->MOD_sK_akt_datum["mon"] + $MOD_sk_neuer_monat),  $this->MOD_sK_akt_datum["mday"],  $this->MOD_sK_akt_datum["year"] );
            return $MOD_sK_neues_datum;
            }
        
        function printCalender()
            {
            // Globale Variablen definieren
            global $MOD_sK_linkyn;
            global $idcatart;
            global $MOD_sK_idcatart;
            global $MOD_sk_arry_down;
            global $MOD_sK_ddownyn;
            
            if( $this->MOD_sK_akt_datum == "" )
                return false;
            else
                $MOD_sK_datum = $this->MOD_sK_akt_datum;
            
            $MOD_sK_wochenbeginn = 2;   // Die Woche beginnt mit Montag, PHP beginnt mit Sonntag = 1
            $MOD_sK_admin = "&MOD_sK_admin=" . $this->MOD_sK_admin;
            $MOD_sK_monatsnamen = array("",mi18n("Januar"),mi18n("Februar"),mi18n("März"),mi18n("April"),mi18n("Mai"),mi18n("Juni"),mi18n("Juli"),mi18n("August"),mi18n("September"),mi18n("Oktober"),mi18n("November"),mi18n("Dezember"));
            echo '<div id="mod_sK" style="margin-bottom:20px">
                <table style="background-color:#eeeeee" >
                    <tr>';
                    // Einen Monat zurück
                    $MOD_sK_neues_datum = $this->getDateByMonth( -1 );
                    $MOD_sK_newdate = date("Y", $MOD_sK_neues_datum ).'-'.date("n", $MOD_sK_neues_datum ).'-1';
                    echo '<td class="navl"><a style="color:#000000" href="front_content.php?idcatart='.$idcatart.'&MOD_sK_newdate='.$MOD_sK_newdate.'" title="'.mi18n("vorheriger Monat").'"> <<</a></td>';
            
                    // aktueller Monat
                    $MOD_sK_neues_datum = $this->getDateByMonth( 0 );
                    $MOD_sK_newdate = date("Y", $MOD_sK_neues_datum ).'-'.date("n", $MOD_sK_neues_datum ).'-1';
                    
                    // Dropdownfeld aufbauen
                    $MOD_sk_arry_years = count($MOD_sk_arry_down); // Anzahl der Jahre
                    $MOD_sk_dropdown    =  '<select name="MOD_sK_newdate" onchange="parent.frames.top.location.href = this.value">';
                    $MOD_sk_dropdown   .=  '<option value="'.$MOD_sK_newdate.'">'.$MOD_sK_monatsnamen[ $MOD_sK_datum["mon"] ].' '.$MOD_sK_datum["year"].'</option>';
            
                    for( $MOD_sK_dyears = 0; $MOD_sK_dyears < $MOD_sk_arry_years; $MOD_sK_dyears++ )
                        {
                        for( $MOD_sK_dmonth = 1; $MOD_sK_dmonth <= 12; $MOD_sK_dmonth++ )
                            {
                            $MOD_sk_dropdown   .=  '<option value="front_content.php?client='.$client.'&parent='.$parent.'&subid='.$subid.'&idcatart='.$idcatart.'&MOD_sK_newdate='.$MOD_sk_arry_down[$MOD_sK_dyears].'-'.$MOD_sK_dmonth.'-1">'.$MOD_sK_monatsnamen[$MOD_sK_dmonth].' '.$MOD_sk_arry_down[$MOD_sK_dyears].'</option>';
                            }
                        }
                    $MOD_sk_dropdown   .=  '</select>';
                    if(!$MOD_sK_ddownyn)
                        echo '<td class="navm"><a style="color:#000000" href="front_content.php?idcatart='.$MOD_sK_idcatart.'&MOD_sK_newdate='.$MOD_sK_newdate.'&MOD_sK_show=m" title="'.mi18n("Monatsuebersicht anzeigen.").'">'.$MOD_sK_monatsnamen[ $MOD_sK_datum["mon"] ].' '.$MOD_sK_datum["year"].'</a></td>';
                    else
                        echo '<td class="navm">'.$MOD_sk_dropdown.'</td>';
            
                    // Einen Monat vor
                    $MOD_sK_neues_datum = $this->getDateByMonth( +1 );
                    $MOD_sK_newdate = date("Y", $MOD_sK_neues_datum ).'-'.date("n", $MOD_sK_neues_datum ).'-1';
                    echo '<td class="navr"><a style="color:#000000" href="front_content.php?idcatart='.$idcatart.'&MOD_sK_newdate='.$MOD_sK_newdate.'" title="'.mi18n("naechster Monat").'">>> </a></td>';
                    echo '
                    </tr>
                </table>
                <table style="border-left:1px solid #dddddd">';
                
                    // Ermittle die maximalen Tage für den aktuellen Monat
                    $MOD_sK_tag_max = date( "t", mktime( 0, 0, 0, $MOD_sK_datum["mon"], 1, $MOD_sK_datum["year"] ) );
                    for( $MOD_sK_tag_aktuell = 1; $MOD_sK_tag_aktuell <= $MOD_sK_tag_max; $MOD_sK_tag_aktuell++ )
                        {
                        $MOD_sK_tag_nummer = date("w", mktime(0, 0, 0, $MOD_sK_datum["mon"], $MOD_sK_tag_aktuell, $MOD_sK_datum["year"])) + 1;
                        if ($MOD_sK_tag_aktuell == 1)
                            {
                            echo '
                            <tr class="sk_wtag">
                                <td class="wtag">'.mi18n("Mo").'</td>
                                <td class="wtag">'.mi18n("Di").'</td>
                                <td class="wtag">'.mi18n("Mi").'</td>
                                <td class="wtag">'.mi18n("Do").'</td>
                                <td class="wtag">'.mi18n("Fr").'</td>
                                <td class="wtag">'.mi18n("Sa").'</td>
                                <td class="wtag">'.mi18n("So").'</td>
                            </tr>';
                    
                            // Leere Felder am Anfang / Ende
                            echo '<tr class="sk_wtag" style="border-left:1px solid #dddddd">';
                            for( $MOD_sK_check_tag = $MOD_sK_wochenbeginn; $MOD_sK_tag_nummer != $MOD_sK_check_tag; $MOD_sK_check_tag++ )
                                {
                                echo '<td> </td>';
                                if( $MOD_sK_tag_nummer == 1  &&  $MOD_sK_check_tag == 7 )   // Workaround !!!
                                    {
                                    echo( $this->getCell( $MOD_sK_tag_aktuell ) );
                                    break;
                                    }
                        
                                if( $MOD_sK_check_tag > 15 )    // Workaround !!!
                                    break;
                                }
                    
                            if ($MOD_sK_tag_nummer == $MOD_sK_check_tag)
                                echo( $this->getCell( $MOD_sK_tag_aktuell ) );
                            }
                
                        else if ($MOD_sK_tag_nummer == $MOD_sK_wochenbeginn)
                            {
                            echo '
                            </tr>
                            <tr>';
                            echo( $this->getCell( $MOD_sK_tag_aktuell ) );
                            }
                        else
                            echo( $this->getCell( $MOD_sK_tag_aktuell ) );
                        }
            
                    $MOD_sK_tag_aktuell = $MOD_sK_tag_aktuell - 6;
                    $MOD_sK_tag_nummer = date("w", mktime(0, 0, 0, $MOD_sK_datum["mon"], $MOD_sK_tag_aktuell, $MOD_sK_datum["year"]));
                    while( $MOD_sK_tag_nummer != $MOD_sK_wochenbeginn )
                        {
                        echo ' <td> </td>';
                        $MOD_sK_tag_aktuell++;
                        $MOD_sK_tag_nummer = date("w", mktime(0, 0, 0, $MOD_sK_datum["mon"], $MOD_sK_tag_aktuell, $MOD_sK_datum["year"]));
                        }
            
                    echo '
                    </tr>
                </table>
                </div>';
            return true;
            }
        function checkDayFor1( $MOD_sK_datum_check )
            {
            global $MOD_sK_termine;
            $MOD_sk_status_ok = false;
			if(is_array($MOD_sK_termine["datum1"])){
            	$MOD_sK_array_keys = (array_keys ($MOD_sK_termine["datum1"], $MOD_sK_datum_check));
            	foreach($MOD_sK_array_keys as $MOD_sK_array_key => $MOD_sK_array_key_value) 
                	{
                		if ($MOD_sK_termine["datum2"][$MOD_sK_array_key_value] == '')
                    	$MOD_sk_status_ok = true;
                	}
			}
            return $MOD_sk_status_ok; 
            }
            
        function checkDayFor2( $MOD_sK_datum_check )
            {
            global $MOD_sK_termine;
            $MOD_sK_anzahl = count($MOD_sK_termine["datum1"]);
            $MOD_sk_check_ok = false;
            for ($MOD_sK_durchlauf  = 0; $MOD_sK_durchlauf <= $MOD_sK_anzahl-1; $MOD_sK_durchlauf++)
                {
                if ( $MOD_sK_datum_check >= $MOD_sK_termine["datum1"][$MOD_sK_durchlauf] && $MOD_sK_datum_check <= $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] )
                    $MOD_sk_check_ok = true;
                }
            return $MOD_sk_check_ok;
            }
        function checkStatus1( $MOD_sK_datum_check ) // Tag mit reservierten Terminen
            {
            global $MOD_sK_termine;
            $MOD_sk_status_ok = false;
			if(is_array($MOD_sK_termine["datum1"])){
            	$MOD_sK_array_keys = (array_keys ($MOD_sK_termine["datum1"], $MOD_sK_datum_check));
            	foreach($MOD_sK_array_keys as $MOD_sK_array_key => $MOD_sK_array_key_value) 
                	{
                		if ($MOD_sK_termine["status"][$MOD_sK_array_key_value] == '1')
                   		$MOD_sk_status_ok = true;
                	}
			}
            return $MOD_sk_status_ok;
            }
        function checkStatus2( $MOD_sK_datum_check ) // Tag mit gebuchten Terminen
            {
                global $MOD_sK_termine;
                $MOD_sk_status_ok = false;
				if(is_array($MOD_sK_termine["datum1"])){
                	$MOD_sK_array_keys = (array_keys ($MOD_sK_termine["datum1"], $MOD_sK_datum_check));
                	foreach($MOD_sK_array_keys as $MOD_sK_array_key => $MOD_sK_array_key_value) 
                	{
                		if ($MOD_sK_termine["status"][$MOD_sK_array_key_value] == '2')
                    		$MOD_sk_status_ok = true;
                	}
				}
            return $MOD_sk_status_ok;
            }
        function getCell( $MOD_sK_tag )
            {
            global $MOD_sK_linkyn;
            global $MOD_sK_anzeigemodus;
            $MOD_sK_datum_aktuell= date("Y-m-d", mktime(0, 0, 0, date("m", $this->getDateByMonth( 0 ) ), $MOD_sK_tag,  date("Y", $this->getDateByMonth( 0 ) )  ) );
            $MOD_sK_datum_title= date("d.m.Y", mktime(0, 0, 0, date("m", $this->getDateByMonth( 0 ) ), $MOD_sK_tag,  date("Y", $this->getDateByMonth( 0 ) )  ) );
            $MOD_sK_wochentag = date("w", mktime(0, 0, 0, date("m", $this->getDateByMonth( 0 ) ), $MOD_sK_tag,  date("Y", $this->getDateByMonth( 0 ) )  ) );
            $MOD_sK_termin_ok = false;
            if ($MOD_sK_anzeigemodus)
                {
                if( $MOD_sK_wochentag == 6  ||  $MOD_sK_wochentag == 0 )    // Wochenende
                    $MOD_sK_style = "wochenende";
                else    // Normal
                    $MOD_sK_style = "wochentag";
    
                if( date("Y-m-d") == $MOD_sK_datum_aktuell)         // Heute
                    $MOD_sK_style = "heute";
    
                if( $this->checkDayFor1($MOD_sK_datum_aktuell ) )   // Tag mit direkten Terminen
                    {
                    $MOD_sK_termin_ok = true;
                    if( $MOD_sK_wochentag == 6  ||  $MOD_sK_wochentag == 0 )    // Wochenende
                        $MOD_sK_style = "belegtwe";
                    else
                        $MOD_sK_style = "belegt";
                    }
                else
                    {
                    if( $this->checkDayFor2($MOD_sK_datum_aktuell ) )   // Tag mit indirekten Terminen
                        {
                        $MOD_sK_termin_ok = true;
                        if( $MOD_sK_wochentag == 6  ||  $MOD_sK_wochentag == 0 )    // Wochenende
                            $MOD_sK_style = "tangiertwe";
                        else
                            $MOD_sK_style = "tangiert";
                        }
                    }
                }
            else
                {
                $MOD_sK_style = "wochentag"; // 
                if( $this->checkStatus1( $MOD_sK_datum_aktuell ) )  // Tag mit reservierten Terminen
                    {
                    $MOD_sK_termin_ok = true;
                    $MOD_sK_style = "tangiert";
                    }
                if( $this->checkStatus2( $MOD_sK_datum_aktuell ) )  // Tag mit gebuchten Terminen
                    {
                    $MOD_sK_termin_ok = true;
                    $MOD_sK_style = "belegt";
                    }
                }
            global $MOD_sK_idcatart;
            
            if ($MOD_sK_termin_ok)
                {
                if($MOD_sK_linkyn)
                    $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" href="front_content.php?idcatart='.$MOD_sK_idcatart.'&MOD_sK_newdate='.$MOD_sK_datum_aktuell.'&MOD_sK_show=t" title="'.mi18n("Termine für den").' '.$MOD_sK_datum_title.' '.mi18n("anzeigen").'.">'.$MOD_sK_tag.'</a></td>';
                else
                    {
                    if ($MOD_sK_anzeigemodus)
                        $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("Für den").' '.$MOD_sK_datum_title.' '.mi18n("existieren Termine").'.">'.$MOD_sK_tag.'</a></td>';
                    else
                        $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("gebucht").'">'.$MOD_sK_tag.'</a></td>';
                    }
                }
            else 
                {
                if ($MOD_sK_anzeigemodus)
                    $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("Für den").' '.$MOD_sK_datum_title.' '.mi18n("existieren keine Termine.").'">'.$MOD_sK_tag.'</a></td>';
                else
                    $MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("frei").'">'.$MOD_sK_tag.'</a></td>';
                }
            return $MOD_sK_val;
            }
    }
?>