<?php

/**
 * Description: demonstrates using the Textual decorator.
 */
if (!@require_once __DIR__ . '/Calendar/Calendar.php') {
    define('CALENDAR_ROOT', '../../');
}
require_once CALENDAR_ROOT . 'Day.php';
require_once CALENDAR_ROOT . 'Month/Weekdays.php';
require_once CALENDAR_ROOT . 'Decorator/Textual.php';

// Could change language like this
// setlocale (LC_TIME, "de_DE"); // Unix based (probably)
// setlocale (LC_TIME, "ge"); // Windows

echo "<hr>Calling: Calendar_Decorator_Textual::monthNames('long');<pre>";
//print_r(Calendar_Decorator_Textual::monthNames('long'));
echo '</pre>';

echo "<hr>Calling: Calendar_Decorator_Textual::weekdayNames('two');<pre>";
//print_r(Calendar_Decorator_Textual::weekdayNames('two'));
echo '</pre>';

echo "<hr>Creating: new Calendar_Day(date('Y'), date('n'), date('d'));<br>";
$Calendar = new Calendar_Day(date('Y'), date('n'), date('d'));

// Decorate
$Textual = new Calendar_Decorator_Textual($Calendar);

echo '<hr>Previous month is: ' . $Textual->prevMonthName('two') . '<br>';
echo 'This month is: ' . $Textual->thisMonthName('short') . '<br>';
echo 'Next month is: ' . $Textual->nextMonthName() . '<br><hr>';
echo 'Previous day is: ' . $Textual->prevDayName() . '<br>';
echo 'This day is: ' . $Textual->thisDayName('short') . '<br>';
echo 'Next day is: ' . $Textual->nextDayName('one') . '<br><hr>';

echo "Creating: new Calendar_Month_Weekdays(date('Y'), date('n'), 6); - Saturday is first day of week<br>";
$Calendar = new Calendar_Month_Weekdays(date('Y'), date('n'), 6);

// Decorate
$Textual = new Calendar_Decorator_Textual($Calendar);
?>
<p>Rendering calendar....</p>
<table>
    <caption><?php echo $Textual->thisMonthName() . ' ' . $Textual->thisYear(); ?></caption>
    <tr>
        <?php
        $dayheaders = $Textual->orderedWeekdays('short');
        foreach ($dayheaders as $dayheader) {
            echo '<th>' . $dayheader . '</th>';
        }
        ?>
    </tr>
    <?php
    $Calendar->build();
    while (false !== ($Day = $Calendar->fetch())) {
        if ($Day->isFirst()) {
            echo "<tr>\n";
        }
        if ($Day->isEmpty()) {
            echo '<td>&nbsp;</td>';
        } else {
            echo '<td>' . $Day->thisDay() . '</td>';
        }
        if ($Day->isLast()) {
            echo "</tr>\n";
        }
    }
    ?>
</table>
