106a107
>   drupal_set_html_head(event_html_head());
134c135
<   $year = arg(1); $month = arg(2); $day = arg(3);
---
>   $calendar = (int)arg(1);  $year = arg(2); $month = arg(3); $day = arg(4);
137c138
<     $output .= event_display('event_table', $year, $month, $day, 1, 1);
---
>     $output .= event_display('event_table', $year, $month, $day, 1, 1, $calendar);
140c141
<     $output .= event_display('event_calendar_expanded', $year, $month, $day, 1);
---
>     $output .= event_display('event_calendar_expanded', $year, $month, $day, 1, NULL, $calendar);
146,147c147,148
<   $breadcrumbs[] = l($year, "event/$year");
<   $breadcrumbs[] = l(t(format_date($timestamp, 'custom', 'F', 0)), "event/$year/$month");
---
>   $breadcrumbs[] = l($year, "event/$calendar/$year");
>   $breadcrumbs[] = l(t(format_date($timestamp, 'custom', 'F', 0)), "event/$calendar/$year/$month");
170d170
< 
178c178
<           $links[] = l(t('calendar'), 'event/'. event_format_date($node->start, 'custom', 'Y/m/d'));
---
>           $links[] = l(t('calendar'), 'event/0/'. event_format_date($node->start, 'custom', 'Y/m/d'));
184d183
<         drupal_set_html_head(event_html_head());
194c193
<         menu('event/'. event_format_date(time(), 'custom', 'Y/m/d'), t('calendar'), 'event_page');
---
>         menu('event/0/'. event_format_date(time(), 'custom', 'Y/m/d'), t('Full Calendar'), 'event_page', -1);
195a195,201
>         $calendar_voc = taxonomy_get_vocabularies('event');
>         foreach ($calendar_voc as $vid => $node) {
>           $calendar_term = taxonomy_get_tree($vid, 0, 2);
>           foreach ($calendar_term as $term) {
>             menu('event/' . $term->tid . '/'. event_format_date(time(), 'custom', 'Y/m/d'), t("$term->name"), 'event_page');
>           }
>         }
550c556
< function event_calendar_data($year, $month, $day) {
---
> function event_calendar_data($year, $month, $day, $calendar = 0) {
562c568,570
< 
---
>     if ($calendar != 0) {
>       $result = db_query("SELECT n.nid FROM {event} e, {node} n, {term_node} t WHERE n.nid = e.nid AND n.nid = t.nid AND t.tid = " . $calendar . " AND n.status = 1 AND e.start > %d AND e.start < %d ORDER BY e.start", $first, $last);
>     } else {
563a572
>     }
584,585c593,594
< function event_calendar_simple($year, $month, $day, $timestamp) {
<   return count(event_calendar_data($year, $month, $day)) ? l($day, "event/$year/$month/$day") : $day;
---
> function event_calendar_simple($year, $month, $day, $timestamp, $calendar = 0) {
>   return count(event_calendar_data($year, $month, $day, $calendar)) ? l($day, "event/0/$year/$month/$day") : $day;
598c607
< function event_calendar_expanded($year, $month, $day, $timestamp) {
---
> function event_calendar_expanded($year, $month, $day, $timestamp, $calendar = 0) {
609c618
<   if (count($data = event_calendar_data($year, $month, $day))) {
---
>   if (count($data = event_calendar_data($year, $month, $day, $calendar))) {
657c666
< function event_display($callback, &$year, &$month, &$day, $navigation = 0, $extra = 0) {
---
> function event_display($callback, &$year, &$month, &$day, $navigation = 0, $extra = 0, $calendar = 0) {
685,686c694,695
<     $prev = '<span class="prev">'. l('&laquo;', 'event/'. ($month - 1 < 1 ? $year - 1 .'/12' : "$year/". ($month - 1)) . ($day ? "/$day" : '')) .'</span>';
<     $next = '<span class="next">'. l('&raquo;', 'event/'. ($month + 1 > 12 ? $year + 1 .'/1' : "$year/". ($month + 1)) . ($day ? "/$day" : '')) .'</span>';
---
>     $prev = '<span class="prev">'. l('&laquo;', 'event/' . $calendar . '/' . ($month - 1 < 1 ? $year - 1 .'/12' : "$year/". ($month - 1)) . ($day ? "/$day" : '')) .'</span>';
>     $next = '<span class="next">'. l('&raquo;', 'event/' . $calendar . '/' . ($month + 1 > 12 ? $year + 1 .'/1' : "$year/". ($month + 1)) . ($day ? "/$day" : '')) .'</span>';
723c732
<         'data' => $callback($year, $month, $_day, $timestamp)
---
>         'data' => $callback($year, $month, $_day, $timestamp, $calendar)
745c754
<     $output .= $callback($start, $last, $today);
---
>     $output .= $callback($start, $last, $today, $calendar);
762c771
< function event_table($start, $end, $today) {
---
> function event_table($start, $end, $today, $calendar = 0) {
779a789,791
>   if ($calendar) {
>     $sql = "SELECT n.nid, n.title, n.teaser, n.body, e.* FROM {event} e, {node} n, {term_node} t WHERE n.nid = e.nid AND n.nid = t.nid AND t.tid = " . $calendar . " AND n.status = 1 AND e.start > $start AND e.start < $end GROUP BY e.start, n.title";
>   } else {
780a793
>   }
