[Gforge-commits] r6044 - in trunk/gforge/plugins/webcalendar/www: docs includes

cbayle at svr1.gforge.org cbayle at svr1.gforge.org
Tue Jun 26 17:32:49 EDT 2007


Author: cbayle
Date: 2007-06-26 17:32:31 -0400 (Tue, 26 Jun 2007)
New Revision: 6044

Modified:
   trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-Database.html
   trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-DeveloperGuide.html
   trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-Styling.html
   trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-SysAdmin.html
   trunk/gforge/plugins/webcalendar/www/includes/index.php
Log:
html cleanup and reformating


Modified: trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-Database.html
===================================================================
--- trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-Database.html	2007-06-24 23:05:55 UTC (rev 6043)
+++ trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-Database.html	2007-06-26 21:32:31 UTC (rev 6044)
@@ -2,228 +2,1534 @@
 
 <head>
 
-	<title>WebCalendar Database Documentation</title>
+<title>WebCalendar Database Documentation</title>
 
 </head>
 
-<body style="background-color:#FFFFFF;">
+<body style="background-color: #FFFFFF;">
 
 <h2>WebCalendar Database Documentation</h2>
 
-<table style="border-width:0px;">
+<table style="border-width: 0px;">
 
-	<tr><td>
-		Home Page:</td><td>
-		<a href="http://webcalendar.sourceforge.net/">http://webcalendar.sourceforge.net/</a>
-	</td></tr>
-	<tr><td>
-		Author:</td><td>
-		<a href="http://www.cknudsen.com">Craig Knudsen</a>, <a href="mailto:cknudsen at cknudsen.com">cknudsen at cknudsen.com</a>
-	</td></tr>
-	<tr><td style="vertical-align:top;">
-		Version:</td><td>
-		v1.0.0<br />
-		$Id: WebCalendar-Database.html,v 1.15 2005/05/17 13:06:04 cknudsen Exp $
-	</td></tr>
-	<tr><td style="vertical-align:top;">
-		Last updated:</td><td>$Date: 2005/05/17 13:06:04 $<br/>(by $Author: cknudsen $)</td><td>
-	</td></tr>
+	<tr>
+		<td>Home Page:</td>
+		<td><a href="http://webcalendar.sourceforge.net/">http://webcalendar.sourceforge.net/</a>
+		</td>
+	</tr>
+	<tr>
+		<td>Author:</td>
+		<td><a href="http://www.cknudsen.com">Craig Knudsen</a>, <a
+			href="mailto:cknudsen at cknudsen.com">cknudsen at cknudsen.com</a></td>
+	</tr>
+	<tr>
+		<td style="vertical-align: top;">Version:</td>
+		<td>v1.0.0<br />
+		$Id: WebCalendar-Database.html,v 1.15 2005/05/17 13:06:04 cknudsen Exp
+		$</td>
+	</tr>
+	<tr>
+		<td style="vertical-align: top;">Last updated:</td>
+		<td>$Date: 2005/05/17 13:06:04 $<br />
+		(by $Author: cknudsen $)</td>
+		<td></td>
+	</tr>
 </table>
 
-<blockquote>
-	This file is generated from <tt>tables-mysql.sql</tt>. Below are the definitions of all WebCalendar tables along with some descriptions of how each table is used. Column names shown in red are the primary keys for that table.
-	<br /><br />
-	If you update the SQL for WebCalendar, use the sql2html.pl script to regenerate this file.
-</blockquote>
-<br /><br />
+<blockquote>This file is generated from <tt>tables-mysql.sql</tt>.
+Below are the definitions of all WebCalendar tables along with some
+descriptions of how each table is used. Column names shown in red are
+the primary keys for that table. <br />
+<br />
+If you update the SQL for WebCalendar, use the sql2html.pl script to
+regenerate this file.</blockquote>
+<br />
+<br />
 
 <h2>List of Tables</h2>
 <ul>
-<li><a href="#webcal_asst">webcal_asst</a></li>
-<li><a href="#webcal_categories">webcal_categories</a></li>
-<li><a href="#webcal_config">webcal_config</a></li>
-<li><a href="#webcal_entry">webcal_entry</a></li>
-<li><a href="#webcal_entry_ext_user">webcal_entry_ext_user</a></li>
-<li><a href="#webcal_entry_log">webcal_entry_log</a></li>
-<li><a href="#webcal_entry_repeats">webcal_entry_repeats</a></li>
-<li><a href="#webcal_entry_repeats_not">webcal_entry_repeats_not</a></li>
-<li><a href="#webcal_entry_user">webcal_entry_user</a></li>
-<li><a href="#webcal_group">webcal_group</a></li>
-<li><a href="#webcal_group_user">webcal_group_user</a></li>
-<li><a href="#webcal_import">webcal_import</a></li>
-<li><a href="#webcal_import_data">webcal_import_data</a></li>
-<li><a href="#webcal_nonuser_cals">webcal_nonuser_cals</a></li>
-<li><a href="#webcal_reminder_log">webcal_reminder_log</a></li>
-<li><a href="#webcal_report">webcal_report</a></li>
-<li><a href="#webcal_report_template">webcal_report_template</a></li>
-<li><a href="#webcal_site_extras">webcal_site_extras</a></li>
-<li><a href="#webcal_user">webcal_user</a></li>
-<li><a href="#webcal_user_layers">webcal_user_layers</a></li>
-<li><a href="#webcal_user_pref">webcal_user_pref</a></li>
-<li><a href="#webcal_view">webcal_view</a></li>
-<li><a href="#webcal_view_user">webcal_view_user</a></li>
+	<li><a href="#webcal_asst">webcal_asst</a></li>
+	<li><a href="#webcal_categories">webcal_categories</a></li>
+	<li><a href="#webcal_config">webcal_config</a></li>
+	<li><a href="#webcal_entry">webcal_entry</a></li>
+	<li><a href="#webcal_entry_ext_user">webcal_entry_ext_user</a></li>
+	<li><a href="#webcal_entry_log">webcal_entry_log</a></li>
+	<li><a href="#webcal_entry_repeats">webcal_entry_repeats</a></li>
+	<li><a href="#webcal_entry_repeats_not">webcal_entry_repeats_not</a></li>
+	<li><a href="#webcal_entry_user">webcal_entry_user</a></li>
+	<li><a href="#webcal_group">webcal_group</a></li>
+	<li><a href="#webcal_group_user">webcal_group_user</a></li>
+	<li><a href="#webcal_import">webcal_import</a></li>
+	<li><a href="#webcal_import_data">webcal_import_data</a></li>
+	<li><a href="#webcal_nonuser_cals">webcal_nonuser_cals</a></li>
+	<li><a href="#webcal_reminder_log">webcal_reminder_log</a></li>
+	<li><a href="#webcal_report">webcal_report</a></li>
+	<li><a href="#webcal_report_template">webcal_report_template</a></li>
+	<li><a href="#webcal_site_extras">webcal_site_extras</a></li>
+	<li><a href="#webcal_user">webcal_user</a></li>
+	<li><a href="#webcal_user_layers">webcal_user_layers</a></li>
+	<li><a href="#webcal_user_pref">webcal_user_pref</a></li>
+	<li><a href="#webcal_view">webcal_view</a></li>
+	<li><a href="#webcal_view_user">webcal_view_user</a></li>
 </ul>
 <hr />
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_asst">webcal_asst</a></h3>
-<blockquote>
- Define assitant/boss relationship. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_boss</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user login of boss </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_assistant</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user login of assistant </td></table>
+<blockquote>Define assitant/boss relationship. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_boss</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">user
+		login of boss</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_assistant</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">user
+		login of assistant</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_categories">webcal_categories</a></h3>
-<blockquote>
- Defines user categories. Categories can be specific to a user or global.  When a category is global, the cat_owner field will be NULL.  (Only an admin user can create a global category.) <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cat_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> unique category id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cat_owner</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user login of category owner. If this is NULL, then it is a global category </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cat_name</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">80</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> category name </td></table>
+<blockquote>Defines user categories. Categories can be
+specific to a user or global. When a category is global, the cat_owner
+field will be NULL. (Only an admin user can create a global category.) <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cat_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		unique category id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cat_owner</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">user
+		login of category owner. If this is NULL, then it is a global category
+		</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cat_name</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">80</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		category name</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_config">webcal_config</a></h3>
-<blockquote>
- System settings (set by the admin interface in admin.php) <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_setting</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">50</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> setting name </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_value</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">100</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> setting value </td></table>
+<blockquote>System settings (set by the admin interface in
+admin.php) <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_setting</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">50</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		setting name</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_value</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">100</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		setting value</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_entry">webcal_entry</a></h3>
-<blockquote>
- Defines a calendar event.  Each event in the system has one entry in this table unless the event starts before midnight and ends after midnight. In that case a secondary event will be created with cal_ext_for_id set to the cal_id of the original entry. The following tables contain additional information about each event:<ul> <li><a href="#webcal_entry_user">webcal_entry_user</a> -  lists participants in the event and specifies the status (accepted,  rejected) and category of each participant.</li> <li><a href="#webcal_entry_repeats">webcal_entry_repeats</a> -  contains information if the event repeats.</li> <li><a href="#webcal_entry_repeats_not">webcal_entry_repeats_not</a> -  specifies which dates the repeating event does not repeat (because  they were deleted or modified for just that date by the user)</li> <li><a href="#webcal_entry_log">webcal_entry_log</a> -  provides a history of changes to this event.</li> <li><a href="#webcal_site_extras">webcal_site_extras</a> -  stores event data as defined in site_extras.php (such as reminders and  other custom event fields).</li> </ul> <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> cal_id is unique integer id for event </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_group_id</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> cal_group_id: the parent event id if this event is overriding an occurrence of a repeating event </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_ext_for_id</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> used when an event goes past midnight into the next day, in which case an additional entry in this table will use this field to indicate the original event cal_id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_create_by</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user login of user that created the event </td><tr!
 ><td sty
le="vertical-align:top; background-color:#E0E0E0;">cal_date</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> date of event (in YYYYMMDD format) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_time</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> event time (in HHMMSS format) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_mod_date</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> date the event was last modified (in YYYYMMDD format) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_mod_time</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> time the event was last modified (in HHMMSS format) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_duration</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top!
 ; backgr
ound-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> duration of event in minutes </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_priority</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">2</td><td style="vertical-align:top; background-color:#E0E0E0;"> event priority: 1=Low, 2=Med, 3=High </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_type</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">1</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">'E'</td><td style="vertical-align:top; background-color:#E0E0E0;"> 'E' = Event, 'M' = Repeating event </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_access</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">1</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">'P'</td><td style="vertical-align:top; background-color:#E0E0E0;"> 'P' = Public, 'R' = Confidential (others can see time allocated but not what it is) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_name</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">80</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> brief description of event </td><tr><td style="vertical-align:top; background-color:!
 #E0E0E0;
">cal_description</td><td style="vertical-align:top; background-color:#E0E0E0;">TEXT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> full description of event </td></table>
+<blockquote>Defines a calendar event. Each event in the
+system has one entry in this table unless the event starts before
+midnight and ends after midnight. In that case a secondary event will be
+created with cal_ext_for_id set to the cal_id of the original entry. The
+following tables contain additional information about each event:
+<ul>
+	<li><a href="#webcal_entry_user">webcal_entry_user</a> - lists
+	participants in the event and specifies the status (accepted, rejected)
+	and category of each participant.</li>
+	<li><a href="#webcal_entry_repeats">webcal_entry_repeats</a> -
+	contains information if the event repeats.</li>
+	<li><a href="#webcal_entry_repeats_not">webcal_entry_repeats_not</a>
+	- specifies which dates the repeating event does not repeat (because
+	they were deleted or modified for just that date by the user)</li>
+	<li><a href="#webcal_entry_log">webcal_entry_log</a> - provides a
+	history of changes to this event.</li>
+	<li><a href="#webcal_site_extras">webcal_site_extras</a> - stores
+	event data as defined in site_extras.php (such as reminders and other
+	custom event fields).</li>
+</ul>
+<br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		cal_id is unique integer id for event</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_group_id</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		cal_group_id: the parent event id if this event is overriding an
+		occurrence of a repeating event</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_ext_for_id</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">used
+		when an event goes past midnight into the next day, in which case an
+		additional entry in this table will use this field to indicate the
+		original event cal_id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_create_by</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">user
+		login of user that created the event</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_date</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">date
+		of event (in YYYYMMDD format)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_time</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		event time (in HHMMSS format)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_mod_date</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">date
+		the event was last modified (in YYYYMMDD format)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_mod_time</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">time
+		the event was last modified (in HHMMSS format)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_duration</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		duration of event in minutes</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_priority</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">2</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		event priority: 1=Low, 2=Med, 3=High</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_type</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'E'</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'E' =
+		Event, 'M' = Repeating event</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_access</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'P'</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'P' =
+		Public, 'R' = Confidential (others can see time allocated but not what
+		it is)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_name</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">80</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		brief description of event</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_description</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">TEXT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">full
+		description of event</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_entry_ext_user">webcal_entry_ext_user</a></h3>
-<blockquote>
- This table associates one or more external users (people who do not have a WebCalendar login) with an event by the event id. An event must still have at least one WebCalendar user associated with it.  This table is not used unless external users are enabled in system settings. The event can be found in <a href="#webcal_entry">webcal_entry</a>. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">0</td><td style="vertical-align:top; background-color:#E0E0E0;"> event id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_fullname</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">50</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> external user fill name </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_email</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">75</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> external user email (for sending a reminder) </td></table>
+<blockquote>This table associates one or more external
+users (people who do not have a WebCalendar login) with an event by the
+event id. An event must still have at least one WebCalendar user
+associated with it. This table is not used unless external users are
+enabled in system settings. The event can be found in <a
+	href="#webcal_entry">webcal_entry</a>. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">0</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		event id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_fullname</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">50</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		external user fill name</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_email</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">75</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		external user email (for sending a reminder)</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_entry_log">webcal_entry_log</a></h3>
-<blockquote>
- Activity log for an event. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_log_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> unique id of this log entry </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_entry_id</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> event id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_login</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user who performed this action </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_user_cal</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user of calendar affected </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_type</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">1</td><td style="vertical-align:top; background-col!
 or:#E0E0
E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> log types: <ul> <li>C: Created</li> <li>A: Approved/Confirmed by user</li> <li>R: Rejected by user</li> <li>U: Updated by user</li> <li>M: Mail Notification sent</li> <li>E: Reminder sent</li> </ul></td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_date</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> date in YYYYMMDD format </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_time</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> time in HHMMSS format </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_text</td><td style="vertical-align:top; background-color:#E0E0E0;">TEXT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> optional text </td></table>
+<blockquote>Activity log for an event. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_log_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		unique id of this log entry</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_entry_id</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		event id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_login</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">user
+		who performed this action</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_user_cal</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">user
+		of calendar affected</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_type</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">log
+		types:
+		<ul>
+			<li>C: Created</li>
+			<li>A: Approved/Confirmed by user</li>
+			<li>R: Rejected by user</li>
+			<li>U: Updated by user</li>
+			<li>M: Mail Notification sent</li>
+			<li>E: Reminder sent</li>
+		</ul>
+		</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_date</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">date
+		in YYYYMMDD format</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_time</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">time
+		in HHMMSS format</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_text</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">TEXT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		optional text</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_entry_repeats">webcal_entry_repeats</a></h3>
-<blockquote>
- Defines repeating info about an event. The event is defined in <a href="#webcal_entry">webcal_entry</a>. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">0</td><td style="vertical-align:top; background-color:#E0E0E0;"> event id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_type</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">20</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> type of repeating:<ul> <li>daily - repeats daily</li> <li>monthlyByDate - repeats on same day of the month</li> <li>monthlyByDayR - repeats on same weekday of the month (counting weeks from the end of the month is in last Monday)</li> <li>monthlyByDay - repeats on specified weekday (2nd Monday, for example)</li> <li>weekly - repeats every week</li> <li>yearly - repeats on same date every year</li> </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_end</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> end date for repeating event (in YYYYMMDD format) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_frequency</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; b!
 ackgroun
d-color:#E0E0E0;">1</td><td style="vertical-align:top; background-color:#E0E0E0;"> frequency of repeat: 1 = every, 2 = every other, 3 = every 3rd, etc. </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_days</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">7</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> which days of the week does it repeat on (only applies when cal_type = 'weekly' </td></table>
+<blockquote>Defines repeating info about an event. The
+event is defined in <a href="#webcal_entry">webcal_entry</a>. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">0</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		event id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_type</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">20</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">type
+		of repeating:
+		<ul>
+			<li>daily - repeats daily</li>
+			<li>monthlyByDate - repeats on same day of the month</li>
+			<li>monthlyByDayR - repeats on same weekday of the month
+			(counting weeks from the end of the month is in last Monday)</li>
+			<li>monthlyByDay - repeats on specified weekday (2nd Monday, for
+			example)</li>
+			<li>weekly - repeats every week</li>
+			<li>yearly - repeats on same date every year</li>
+		</ul>
+		</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_end</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">end
+		date for repeating event (in YYYYMMDD format)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_frequency</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		frequency of repeat: 1 = every, 2 = every other, 3 = every 3rd, etc.</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_days</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">7</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		which days of the week does it repeat on (only applies when cal_type =
+		'weekly'</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_entry_repeats_not">webcal_entry_repeats_not</a></h3>
-<blockquote>
- This table specifies which dates in a repeating event have either been deleted or replaced with a replacement event for that day.  When replaced, the cal_group_id (I know... not the best name, but it was not being used) column will be set to the original event.  That way the user can delete the original event and (at the same time) delete any exception events. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> event id of repeating event </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_date</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> cal_date: date event should not repeat (in YYYYMMDD format) </td></table>
+<blockquote>This table specifies which dates in a repeating
+event have either been deleted or replaced with a replacement event for
+that day. When replaced, the cal_group_id (I know... not the best name,
+but it was not being used) column will be set to the original event.
+That way the user can delete the original event and (at the same time)
+delete any exception events. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		event id of repeating event</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_date</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		cal_date: date event should not repeat (in YYYYMMDD format)</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_entry_user">webcal_entry_user</a></h3>
-<blockquote>
- This table associates one or more users with an event by the event id. The event can be found in <a href="#webcal_entry">webcal_entry</a>. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">0</td><td style="vertical-align:top; background-color:#E0E0E0;"> event id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_login</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> participant in the event </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_status</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">1</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">'A'</td><td style="vertical-align:top; background-color:#E0E0E0;"> status of event for this user: <ul> <li>A=Accepted</li> <li>R=Rejected</li> <li>W=Waiting</li> </ul></td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_category</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">NULL</td><td style="vertical-align:top; background-color:#E0E0E0;"> category of the event for this user </td></table>
+<blockquote>This table associates one or more users with an
+event by the event id. The event can be found in <a href="#webcal_entry">webcal_entry</a>.
+<br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">0</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		event id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_login</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		participant in the event</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_status</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'A'</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		status of event for this user:
+		<ul>
+			<li>A=Accepted</li>
+			<li>R=Rejected</li>
+			<li>W=Waiting</li>
+		</ul>
+		</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_category</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">NULL</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		category of the event for this user</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_group">webcal_group</a></h3>
-<blockquote>
- Define a group.  Group members can be found in <a href="#webcal_group_user">webcal_group_user</a>. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_group_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> unique group id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_owner</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user login of user that created this group </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_name</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">50</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> name of the group </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_last_update</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> date last updated (in YYYYMMDD format) </td></table>
+<blockquote>Define a group. Group members can be found in <a
+	href="#webcal_group_user">webcal_group_user</a>. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_group_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		unique group id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_owner</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">user
+		login of user that created this group</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_name</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">50</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">name
+		of the group</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_last_update</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">date
+		last updated (in YYYYMMDD format)</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_group_user">webcal_group_user</a></h3>
-<blockquote>
- Specify users in a group.  The group is defined in <a href="#webcal_group">webcal_group</a>. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_group_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> group id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_login</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user login </td></table>
+<blockquote>Specify users in a group. The group is defined
+in <a href="#webcal_group">webcal_group</a>. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_group_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		group id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_login</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">user
+		login</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_import">webcal_import</a></h3>
-<blockquote>
- Used to track import data (one row per import) <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_import_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> unique id for import </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_name</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">50</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> name of import (optional) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_date</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> date of import (YYYYMMDD format) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_type</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">10</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> type of import (ical, vcal, palm) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_login</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:!
 top; bac
kground-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user who performed the import </td></table>
+<blockquote>Used to track import data (one row per import)
+<br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_import_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		unique id for import</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_name</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">50</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">name
+		of import (optional)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_date</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">date
+		of import (YYYYMMDD format)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_type</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">10</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">type
+		of import (ical, vcal, palm)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_login</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">user
+		who performed the import</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_import_data">webcal_import_data</a></h3>
-<blockquote>
- Used to track import data (one row per event) <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_import_id</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> import id (from webcal_import table) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> event id in WebCalendar </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_login</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user login </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_import_type</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">15</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> type of import: 'palm', 'vcal', 'ical' or 'publish' </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_external_id</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vert!
 ical-ali
gn:top; background-color:#E0E0E0;">200</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> external id used in external calendar system (for example, UID in iCal) </td></table>
+<blockquote>Used to track import data (one row per event) <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_import_id</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		import id (from webcal_import table)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		event id in WebCalendar</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_login</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">user
+		login</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_import_type</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">15</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">type
+		of import: 'palm', 'vcal', 'ical' or 'publish'</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_external_id</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">200</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		external id used in external calendar system (for example, UID in
+		iCal)</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_nonuser_cals">webcal_nonuser_cals</a></h3>
-<blockquote>
- Defines non-user calendars. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_login</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> the unique id for the calendar </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_lastname</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> calendar's last name </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_firstname</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> calendar's first name </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_admin</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> who is the calendar administrator </td></table>
+<blockquote>Defines non-user calendars. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_login</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">the
+		unique id for the calendar</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_lastname</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		calendar's last name</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_firstname</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		calendar's first name</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_admin</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">who
+		is the calendar administrator</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_reminder_log">webcal_reminder_log</a></h3>
-<blockquote>
- This table keeps a history of when reminders get sent. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">0</td><td style="vertical-align:top; background-color:#E0E0E0;"> event id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_name</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> extra type (see site_extras.php) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_event_date</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">0</td><td style="vertical-align:top; background-color:#E0E0E0;"> the event date we are sending reminder for (in YYYYMMDD format) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_last_sent</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">0</td><td style="vertical-align:top; background-color:#E0E0E0;"> the date/time we last sent a reminder (in UNIX time format) </td></table>
+<blockquote>This table keeps a history of when reminders
+get sent. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">0</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		event id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_name</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		extra type (see site_extras.php)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_event_date</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">0</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">the
+		event date we are sending reminder for (in YYYYMMDD format)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_last_sent</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">0</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">the
+		date/time we last sent a reminder (in UNIX time format)</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_report">webcal_report</a></h3>
-<blockquote>
- Defines a custom report created by a user. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_login</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> creator of report </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_report_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> unique id of this report </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_is_global</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">1</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">'N'</td><td style="vertical-align:top; background-color:#E0E0E0;"> is this a global report (can it be accessed by other users) ('Y' or 'N') </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_report_type</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">20</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> format of report (html, plain or csv) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_include_header</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; backgrou!
 nd-color
:#E0E0E0;">1</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">'Y'</td><td style="vertical-align:top; background-color:#E0E0E0;"> if cal_report_type is 'html', should the default HTML header and trailer be included? ('Y' or 'N') </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_report_name</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">50</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> name of the report </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_time_range</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> time range for report: <ul> <li>0 = tomorrow</li> <li>1 = today</li> <li>2 = yesterday</li> <li>3 = day before yesterday</li> <li>10 = next week</li> <li>11 = current week</li> <li>12 = last week</li> <li>13 = week before last</li> <li>20 = next week and week after</li> <li>21 = current week and next week</li> <li>22 = last week and this week</li> <li>23 = last two weeks</li> <li>30 = next month</li> <li>31 = current month</li> <li>32 = last month</li> <li>33 = month before last</li> <li>40 = next year</li> <li>41 = current year</li> <li>42 = last year</li> <li>43 = year before last</li> </ul> </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_user</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td styl!
 e="verti
cal-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user calendar to display (NULL indicates current user) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_allow_nav</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">1</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">'Y'</td><td style="vertical-align:top; background-color:#E0E0E0;"> allow user to navigate to different dates with next/previous ('Y' or 'N') </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_cat_id</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> category to filter on (optional) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_include_empty</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">1</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">'N'</td><td style="vertical-align:top; background-color:#E0E0E0;"> include empty dates in report ('Y' or 'N') </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_show_in_trailer</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">1</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">'N'</td><td style="vertical-align:top; background-color:#E0E0E0;"> include a link for this report in the "Go to" section of the navigation in the page trai!
 ler ('Y'
 or 'N') </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_update_date</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> date created or last updated (in YYYYMMDD format) </td></table>
+<blockquote>Defines a custom report created by a user. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_login</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		creator of report</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_report_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		unique id of this report</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_is_global</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'N'</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">is
+		this a global report (can it be accessed by other users) ('Y' or 'N')
+		</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_report_type</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">20</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		format of report (html, plain or csv)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_include_header</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'Y'</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">if
+		cal_report_type is 'html', should the default HTML header and trailer
+		be included? ('Y' or 'N')</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_report_name</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">50</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">name
+		of the report</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_time_range</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">time
+		range for report:
+		<ul>
+			<li>0 = tomorrow</li>
+			<li>1 = today</li>
+			<li>2 = yesterday</li>
+			<li>3 = day before yesterday</li>
+			<li>10 = next week</li>
+			<li>11 = current week</li>
+			<li>12 = last week</li>
+			<li>13 = week before last</li>
+			<li>20 = next week and week after</li>
+			<li>21 = current week and next week</li>
+			<li>22 = last week and this week</li>
+			<li>23 = last two weeks</li>
+			<li>30 = next month</li>
+			<li>31 = current month</li>
+			<li>32 = last month</li>
+			<li>33 = month before last</li>
+			<li>40 = next year</li>
+			<li>41 = current year</li>
+			<li>42 = last year</li>
+			<li>43 = year before last</li>
+		</ul>
+		</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_user</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">user
+		calendar to display (NULL indicates current user)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_allow_nav</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'Y'</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		allow user to navigate to different dates with next/previous ('Y' or
+		'N')</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_cat_id</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		category to filter on (optional)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_include_empty</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'N'</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		include empty dates in report ('Y' or 'N')</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_show_in_trailer</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'N'</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		include a link for this report in the "Go to" section of the
+		navigation in the page trailer ('Y' or 'N')</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_update_date</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">date
+		created or last updated (in YYYYMMDD format)</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_report_template">webcal_report_template</a></h3>
-<blockquote>
- Defines one of the templates used for a report. Each report has three templates: <ol> <li>Page template - Defines the entire page (except for header and   footer).  The following variables can be defined:   <ul>     <li>${days}<sup>*</sup> - the HTML of all dates (generated from the Date template)</li>   </ul></li> <li>Date template - Defines events for one day.  If the report   is for a week or month, then the results of each day will be   concatenated and used as the ${days} variable in the Page template.   The following variables can be defined:   <ul>     <li>${events}<sup>*</sup> - the HTML of all events          for the data (generated from the Event template)</li>     <li>${date} - the date</li>     <li>${fulldate} - date (includes weekday)</li>   </ul></li> <li>Event template - Defines a single event.      The following variables can be defined:   <ul>     <li>${name}<sup>*</sup> - Brief Description of event</li>     <li>${description} - Full Description of event</li>     <li>${date} - Date of event</li>     <li>${fulldate} - Date of event (includes weekday)</li>     <li>${time} - Time of event (4:00pm - 4:30pm)</li>     <li>${starttime} - Start time of event</li>     <li>${endtime} - End time of event</li>     <li>${duration} - Duration of event (in minutes)</li>     <li>${priority} - Priority of event</li>     <li>${href} - URL to view event details</li>   </ul></li> </ol> <sup>*</sup> denotes a required template variable <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_report_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> report id (in webcal_report table) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_template_type</span></td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">1</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> type of template: <ul> <li>'P': page template represents entire document</li> <li>'D': date template represents a single day of events</li> <li>'E': event template represents a single event</li> </ul> </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_template_text</td><td style="vertical-align:top; background-color:#E0E0E0;">TEXT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> text of template </td></table>
+<blockquote>Defines one of the templates used for a report.
+Each report has three templates:
+<ol>
+	<li>Page template - Defines the entire page (except for header and
+	footer). The following variables can be defined:
+	<ul>
+		<li>${days}<sup>*</sup> - the HTML of all dates (generated from
+		the Date template)</li>
+	</ul>
+	</li>
+	<li>Date template - Defines events for one day. If the report is
+	for a week or month, then the results of each day will be concatenated
+	and used as the ${days} variable in the Page template. The following
+	variables can be defined:
+	<ul>
+		<li>${events}<sup>*</sup> - the HTML of all events for the data
+		(generated from the Event template)</li>
+		<li>${date} - the date</li>
+		<li>${fulldate} - date (includes weekday)</li>
+	</ul>
+	</li>
+	<li>Event template - Defines a single event. The following
+	variables can be defined:
+	<ul>
+		<li>${name}<sup>*</sup> - Brief Description of event</li>
+		<li>${description} - Full Description of event</li>
+		<li>${date} - Date of event</li>
+		<li>${fulldate} - Date of event (includes weekday)</li>
+		<li>${time} - Time of event (4:00pm - 4:30pm)</li>
+		<li>${starttime} - Start time of event</li>
+		<li>${endtime} - End time of event</li>
+		<li>${duration} - Duration of event (in minutes)</li>
+		<li>${priority} - Priority of event</li>
+		<li>${href} - URL to view event details</li>
+	</ul>
+	</li>
+</ol>
+<sup>*</sup> denotes a required template variable <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_report_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		report id (in webcal_report table)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_template_type</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">type
+		of template:
+		<ul>
+			<li>'P': page template represents entire document</li>
+			<li>'D': date template represents a single day of events</li>
+			<li>'E': event template represents a single event</li>
+		</ul>
+		</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_template_text</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">TEXT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">text
+		of template</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_site_extras">webcal_site_extras</a></h3>
-<blockquote>
- This table holds data for site extra fields (customized in site_extra.php). <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">0</td><td style="vertical-align:top; background-color:#E0E0E0;"> event id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_name</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> the brief name of this type (first field in $site_extra array) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_type</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> $EXTRA_URL, $EXTRA_DATE, etc. </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_date</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">0</td><td style="vertical-align:top; background-color:#E0E0E0;"> only used for $EXTRA_DATE type fields (in YYYYMMDD format) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_remind</td><td style="vertical-al!
 ign:top;
 background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">0</td><td style="vertical-align:top; background-color:#E0E0E0;"> how many minutes before event should a reminder be sent </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_data</td><td style="vertical-align:top; background-color:#E0E0E0;">TEXT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> used to store text data </td></table>
+<blockquote>This table holds data for site extra fields
+(customized in site_extra.php). <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">0</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		event id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_name</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">the
+		brief name of this type (first field in $site_extra array)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_type</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		$EXTRA_URL, $EXTRA_DATE, etc.</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_date</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">0</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">only
+		used for $EXTRA_DATE type fields (in YYYYMMDD format)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_remind</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">0</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">how
+		many minutes before event should a reminder be sent</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_data</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">TEXT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">used
+		to store text data</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_user">webcal_user</a></h3>
-<blockquote>
- Defines a WebCalendar user. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_login</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> the unique user login </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_passwd</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">32</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> the user's password. (not used for http or ldap authentication) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_lastname</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user's last name </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_firstname</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user's first name </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_is_admin</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">1</td><td style="ve!
 rtical-a
lign:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">'N'</td><td style="vertical-align:top; background-color:#E0E0E0;"> is the user a WebCalendar administrator ('Y' = yes, 'N' = no) </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_email</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">75</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user's email address </td></table>
+<blockquote>Defines a WebCalendar user. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_login</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">the
+		unique user login</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_passwd</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">32</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">the
+		user's password. (not used for http or ldap authentication)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_lastname</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		user's last name</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_firstname</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		user's first name</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_is_admin</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'N'</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">is
+		the user a WebCalendar administrator ('Y' = yes, 'N' = no)</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_email</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">75</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		user's email address</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_user_layers">webcal_user_layers</a></h3>
-<blockquote>
- Define layers for a user. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_layerid</td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">0</td><td style="vertical-align:top; background-color:#E0E0E0;"> unique layer id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_login</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> login of owner of this layer </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_layeruser</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> login name of user that this layer represents </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_color</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> color to display this layer in </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_dups</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; ba!
 ckground
-color:#E0E0E0;">1</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">'N'</td><td style="vertical-align:top; background-color:#E0E0E0;"> show duplicates ('N' or 'Y') </td></table>
+<blockquote>Define layers for a user. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_layerid</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">0</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		unique layer id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_login</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		login of owner of this layer</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_layeruser</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		login name of user that this layer represents</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_color</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		color to display this layer in</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_dups</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'N'</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">show
+		duplicates ('N' or 'Y')</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_user_pref">webcal_user_pref</a></h3>
-<blockquote>
- Specify preferences for a user. Most preferences are set via pref.php. Values in this table are loaded after system settings found in <a href="#webcal_config">webcal_config</a>. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_login</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> user login </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_setting</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> setting name </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_value</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">100</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> setting value </td></table>
+<blockquote>Specify preferences for a user. Most
+preferences are set via pref.php. Values in this table are loaded after
+system settings found in <a href="#webcal_config">webcal_config</a>. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_login</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">user
+		login</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_setting</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		setting name</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_value</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">100</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		setting value</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_view">webcal_view</a></h3>
-<blockquote>
- A "view" allows a user to put the calendars of multiple users all on one page.  A "view" is valid only for the owner (cal_owner) of the view.  Users for the view are in <a href="#webcal_view_user">webcal_view_user</a>. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_view_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> unique view id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_owner</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> login name of owner of this view </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_name</td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">50</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> name of view </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_view_type</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">1</td><td style="vertical-align:top; background-color:#E0E0E0;">Y</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> "W" for week view, "D" for day view, "M" for month view </td><tr><td style="vertical-align:top; background-color:#E0E0E0;">cal_is_global</td><td style="vertical-align:top; background-color:#E0E0E0;">CHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">1</td><td style="vertical-ali!
 gn:top; 
background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">'N'</td><td style="vertical-align:top; background-color:#E0E0E0;"> is this a global view (can it be accessed by other users) ('Y' or 'N') </td></table>
+<blockquote>A "view" allows a user to put the calendars of
+multiple users all on one page. A "view" is valid only for the owner
+(cal_owner) of the view. Users for the view are in <a
+	href="#webcal_view_user">webcal_view_user</a>. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_view_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		unique view id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_owner</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">
+		login name of owner of this view</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_name</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">50</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">name
+		of view</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_view_type</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">Y</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">"W"
+		for week view, "D" for day view, "M" for month view</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;">cal_is_global</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">CHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">1</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">'N'</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">is
+		this a global view (can it be accessed by other users) ('Y' or 'N')</td>
+</table>
 </blockquote>
-<br /><br />
+<br />
+<br />
 <h3><a name="webcal_view_user">webcal_view_user</a></h3>
-<blockquote>
- Specify users in a view. See <a href="#webcal_view">webcal_view</a>. <br /><br />
-<table style="border-width:0px;"><tr><th style="vertical-align:top; background-color:#C0C0C0;">Column Name</th><th style="vertical-align:top; background-color:#C0C0C0;">Type</th><th style="vertical-align:top; background-color:#C0C0C0;">Length</th><th style="vertical-align:top; background-color:#C0C0C0;">Null</th><th style="vertical-align:top; background-color:#C0C0C0;">Default</th><th style="vertical-align:top; background-color:#C0C0C0;">Description</th></tr>
-<tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_view_id</span></td><td style="vertical-align:top; background-color:#E0E0E0;">INT</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> view id </td><tr><td style="vertical-align:top; background-color:#E0E0E0;"><span style="font-weight:bold; color:#A00000;">cal_login</span></td><td style="vertical-align:top; background-color:#E0E0E0;">VARCHAR</td><td style="vertical-align:top; background-color:#E0E0E0;">25</td><td style="vertical-align:top; background-color:#E0E0E0;">N</td><td style="vertical-align:top; background-color:#E0E0E0;">&nbsp;</td><td style="vertical-align:top; background-color:#E0E0E0;"> a user in the view </td></table>
+<blockquote>Specify users in a view. See <a
+	href="#webcal_view">webcal_view</a>. <br />
+<br />
+<table style="border-width: 0px;">
+	<tr>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Column
+		Name</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Type</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Length</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Null</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Default</th>
+		<th style="vertical-align: top; background-color: #C0C0C0;">Description</th>
+	</tr>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_view_id</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">INT</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">view
+		id</td>
+	<tr>
+		<td style="vertical-align: top; background-color: #E0E0E0;"><span
+			style="font-weight: bold; color: #A00000;">cal_login</span></td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">VARCHAR</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">25</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">N</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">&nbsp;</td>
+		<td style="vertical-align: top; background-color: #E0E0E0;">a
+		user in the view</td>
+</table>
 </blockquote>
 </body>
 </html>

Modified: trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-DeveloperGuide.html
===================================================================
--- trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-DeveloperGuide.html	2007-06-24 23:05:55 UTC (rev 6043)
+++ trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-DeveloperGuide.html	2007-06-26 21:32:31 UTC (rev 6044)
@@ -345,10 +345,10 @@
       <br/><br/>
       For example, if the patch file is called <tt>calmods.diff</tt>,
       then you would use:
-      <pre>patch --dry-run < calmods.diff</pre>
+      <pre>patch --dry-run &lt; calmods.diff</pre>
       If the program says it cannot determine which file to patch,
       try adding -p1: 
-      <pre>patch --dry-run -p1 < calmods.diff </pre>
+      <pre>patch --dry-run -p1 &lt; calmods.diff </pre>
       <br/><br/>
       If it goes through all the changes successfully, do the same
       command without the <tt>--dry-run</tt> option to install the patch.
@@ -380,7 +380,7 @@
 <li><a href="http://sourceforge.net/bugs/?group_id=3870">Bug Reports</a>
   on SourceForge.
   </li>
-<li><a href="phpdoc/">WebCalendar Function Documentation
+<li><a href="phpdoc/">WebCalendar Function Documentation</a>
   </li>
 <li><a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/webcalendar/webcalendar/docs/WebCalendar-Database.html?rev=HEAD&amp;content-type=text/html">WebCalendar-Database.html</a> describes the WebCalendar database schema
   </li>

Modified: trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-Styling.html
===================================================================
--- trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-Styling.html	2007-06-24 23:05:55 UTC (rev 6043)
+++ trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-Styling.html	2007-06-26 21:32:31 UTC (rev 6044)
@@ -84,7 +84,7 @@
 
 	<h3>Structure</h3>
 
-	<p>WebCalendar can be easily customized site-wide, or page-by-page. In other words, you can easily make every page in WebCalendar look similar to one another, or completely different from one another. WebCalendar achieves this effect by uniquely identifying each page.Each page in WebCalendar (obviously) has a filename. WebCalendar automatically takes each filename, removes any underscores (_), as well as the extension (.php), and assigns the resulting value as an ID attribute on that page's body tag. For example, the page "edit_entry.php" would have the following body tag: &lt;body id="editentry">. If you don't want to customize individual pages, you can disregard this information.</p>
+	<p>WebCalendar can be easily customized site-wide, or page-by-page. In other words, you can easily make every page in WebCalendar look similar to one another, or completely different from one another. WebCalendar achieves this effect by uniquely identifying each page.Each page in WebCalendar (obviously) has a filename. WebCalendar automatically takes each filename, removes any underscores (_), as well as the extension (.php), and assigns the resulting value as an ID attribute on that page's body tag. For example, the page "edit_entry.php" would have the following body tag: &lt;body id="editentry"&gt;. If you don't want to customize individual pages, you can disregard this information.</p>
 
 	<p>If you want to customize the look of a single page in WebCalendar, prefix all selectors for that page with its <code>&lt;body&gt;</code>'s <code>id</code>.  For example, to create styles that only apply to <code>month.php</code>, simply prefix all the selectors with <code>#month</code>.  The <code>id</code> for each page is shown below.</p>
 	<a id="bodyids"></a>
@@ -320,25 +320,26 @@
 	</table>
 
 	<p>WebCalendar has two basic types of calendars: full-sized calendars, and mini-calendars. Each of these types use a specific structure. Full-sized calendars are organized using the structure outlined below. The header of the page is a div with the "title" class (i.e. <code>&lt;div class="title"&gt;</code>). Within that div, there are several spans each with its own class. These classes include:
+	</p>
 	<ul><li>
 		weeknumber</li><li>
 		view</li><li>
 		date
 	</li></ul>
-	Also within this div are the left &amp; right navigation arrows. The left arrow link has the "prev" class, and the right arrow link has the "next" class. Pages that have mini-calendars in place of the arrows use "prevmonth" and "nextmonth" with the ID attribute.</p>
+	<p>Also within this div are the left &amp; right navigation arrows. The left arrow link has the "prev" class, and the right arrow link has the "next" class. Pages that have mini-calendars in place of the arrows use "prevmonth" and "nextmonth" with the ID attribute.</p>
 	<p>Structurally, the header of pages with a full-sized calendar will look similar to:</p>
 	<div class="example">
 		<a id="ex1"></a>
-		<pre>&lt;div class="title">
-	&lt;span class="weeknumber">&lt;/span>
-	&lt;span class="view">&lt;/span>
-	&lt;span class="date">&lt;/span>
-&lt;/div>
+		<pre>&lt;div class="title"&gt;
+	&lt;span class="weeknumber"&gt;&lt;/span&gt;
+	&lt;span class="view"&gt;&lt;/span&gt;
+	&lt;span class="date"&gt;&lt;/span&gt;
+&lt;/div&gt;
 </pre>
 		<p>Example 1</p>
 	</div>
 	
-	<p>Below the "title" div is a table with the "main" class. This is the full-size calendar itself. There are a variety of options available in styling the calendar. First, there are two types of cells in a table: tableheaders (<code>&lt;th></code> tags), and tablecells (<code>&lt;td></code> tags). WebCalendar distinguishes between <em>column</em> tableheaders &amp; <em>row</em> tableheaders. Headers containing dates, or days of the week utilize the classes <em>today</em>, and <em>weekend</em>. To style tableheaders for Monday through Friday, while today is eDays of the week that are not Saturday or Sunday, and that are also not today's date, can be styled by simply referring to the "th" tag itself. Alternatively, if you don't want to style tableheaders according to the weekend, or today colors, you can simply omit this style from the stylesheet. Row tableheaders (when they don't contain dates) are always styled using the class, "row".</p>
+	<p>Below the "title" div is a table with the "main" class. This is the full-size calendar itself. There are a variety of options available in styling the calendar. First, there are two types of cells in a table: tableheaders (<code>&lt;th&gt;</code> tags), and tablecells (<code>&lt;td&gt;</code> tags). WebCalendar distinguishes between <em>column</em> tableheaders &amp; <em>row</em> tableheaders. Headers containing dates, or days of the week utilize the classes <em>today</em>, and <em>weekend</em>. To style tableheaders for Monday through Friday, while today is eDays of the week that are not Saturday or Sunday, and that are also not today's date, can be styled by simply referring to the "th" tag itself. Alternatively, if you don't want to style tableheaders according to the weekend, or today colors, you can simply omit this style from the stylesheet. Row tableheaders (when they don't contain dates) are always styled using the class, "row".</p>
 	<p>Tablecells (td tags) within the "main" calendar table follow the same structure as tableheaders with dates, or days. Therefore, tablecells that fall on the weekend, will have the "weekend" class. If the cell is on today's date, but it's not on Saturday or Sunday, the cell will have the "today" class. If the cell is not on the weekend, nor today's date, it doesn't get a class (in this case, style these cells similar to how you styled tableheaders without a class). If the cell is both on the weekend, and on today's date, it has "weekend today" as the value for the class attribute. Below are some examples to help illustrate.</p>
 	<p>If you're customizing month.php &amp; want tablecells (td tags) on today's date to have a red background, you would use:</p>
 	<div class="example">

Modified: trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-SysAdmin.html
===================================================================
--- trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-SysAdmin.html	2007-06-24 23:05:55 UTC (rev 6043)
+++ trunk/gforge/plugins/webcalendar/www/docs/WebCalendar-SysAdmin.html	2007-06-26 21:32:31 UTC (rev 6044)
@@ -2,80 +2,94 @@
 <!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "DTD/xhtml1-transitional.dtd">
-    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-     <head>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
 <title>WebCalendar System Administrator's Guide</title>
 <style type="text/css">
 body {
- background-color: #FFFFFF;
- font-family: Arial, Helvetica, sans-serif;
+	background-color: #FFFFFF;
+	font-family: Arial, Helvetica, sans-serif;
 }
+
 a {
- text-decoration: none;
+	text-decoration: none;
 }
+
 dt {
- font-weight: bold;
- margin-left: 25px;
- margin-top: 20px;
+	font-weight: bold;
+	margin-left: 25px;
+	margin-top: 20px;
 }
+
 .valid {
- border-width: 0px;
+	border-width: 0px;
 }
+
 pre {
- font-family: courier, monospace;
- font-size: 14px;
- border: 1px solid #0000FF;
- background-color: #EEEEFF;
- padding: 4px;
- margin-left: 25px;
- margin-right: 25px;
+	font-family: courier, monospace;
+	font-size: 14px;
+	border: 1px solid #0000FF;
+	background-color: #EEEEFF;
+	padding: 4px;
+	margin-left: 25px;
+	margin-right: 25px;
 }
+
 tr {
- background-color: #606080;
- color: #F0F0F0;
+	background-color: #606080;
+	color: #F0F0F0;
 }
+
 td {
- vertical-align: top;
+	vertical-align: top;
 }
+
 th {
- background-color: #000000;
+	background-color: #000000;
 }
+
 .colorheader {
- background-color: #000000;
- color: #FFFFFF;
- margin-left: 3px;
- margin-right: 3px;
- padding: 2px;
+	background-color: #000000;
+	color: #FFFFFF;
+	margin-left: 3px;
+	margin-right: 3px;
+	padding: 2px;
 }
+
 .newwin {
- border-width: 0px;
+	border-width: 0px;
 }
+
 .tip {
- font-weight: bold;
- background-color: #FFFF00;
- border: 1px solid #000000;
- padding: 1px;
- padding-left: 5px;
- padding-right: 5px;
- margin-right: 10px;
+	font-weight: bold;
+	background-color: #FFFF00;
+	border: 1px solid #000000;
+	padding: 1px;
+	padding-left: 5px;
+	padding-right: 5px;
+	margin-right: 10px;
 }
+
 .note {
- font-weight: bold;
- background-color: blue;
- color: #FFFFFF;
- border: 1px solid #000000;
- padding: 2px;
+	font-weight: bold;
+	background-color: blue;
+	color: #FFFFFF;
+	border: 1px solid #000000;
+	padding: 2px;
 }
+
 hr {
- margin-bottom: 7px;
+	margin-bottom: 7px;
 }
+
 h2 {
- background-color: #191970;
- color: #FFFFFF;
- padding: 5px;
+	background-color: #191970;
+	color: #FFFFFF;
+	padding: 5px;
 }
+
 .top {
- text-align: right;
+	text-align: right;
 }
 </style>
 </head>
@@ -85,23 +99,26 @@
 
 <h2>Table of Contents</h2>
 <ul>
- <li><a href="#intro">Introduction</a></li>
- <li><a href="#requirements">System Requirements</a></li>
- <li><a href="#fileunpacking">File Unpacking</a></li>
- <li><a href="#dbsetup">Database Setup</a></li>
- <li><a href="#appsetup">Application Setup</a></li>
- <li><a href="#reminders">Setting Up Email Reminders</a></li>
- <li><a href="#systemsettings">System Settings</a></li>
- <li><a href="#siteextras">Custom Event Fields</a></li>
- <li><a href="#faq">FAQ</a></li>
- <li><a href="#trouble">Troubleshooting</a></li>
- <li><a href="#help">Getting Help</a></li>
- <li><a href="#license">Licensing</a></li>
- <li><a href="#glossary">Glossary</a></li>
- <li><a href="#appendixA">Appendix A: Database Setup with phpMyAdmin</a></li>
- <li><a href="#appendixB">Appendix B: Setting Up Reminders on Windows</a></li>
- <li><a href="#appendixC">Appendix C: Displaying Upcoming Events on Your Site</a></li>
- <li><a href="#appendixD">Appendix D: How To Configure For LDAP</a></li>
+	<li><a href="#intro">Introduction</a></li>
+	<li><a href="#requirements">System Requirements</a></li>
+	<li><a href="#fileunpacking">File Unpacking</a></li>
+	<li><a href="#dbsetup">Database Setup</a></li>
+	<li><a href="#appsetup">Application Setup</a></li>
+	<li><a href="#reminders">Setting Up Email Reminders</a></li>
+	<li><a href="#systemsettings">System Settings</a></li>
+	<li><a href="#siteextras">Custom Event Fields</a></li>
+	<li><a href="#faq">FAQ</a></li>
+	<li><a href="#trouble">Troubleshooting</a></li>
+	<li><a href="#help">Getting Help</a></li>
+	<li><a href="#license">Licensing</a></li>
+	<li><a href="#glossary">Glossary</a></li>
+	<li><a href="#appendixA">Appendix A: Database Setup with
+	phpMyAdmin</a></li>
+	<li><a href="#appendixB">Appendix B: Setting Up Reminders on
+	Windows</a></li>
+	<li><a href="#appendixC">Appendix C: Displaying Upcoming
+	Events on Your Site</a></li>
+	<li><a href="#appendixD">Appendix D: How To Configure For LDAP</a></li>
 </ul>
 <hr />
 
@@ -110,1167 +127,1288 @@
 
 <p>WebCalender is an open source PHP-based multi-user calendar.</p>
 
- <p><strong>Features:</strong></p>
- <ul>
-  <li>Multi-user support</li>
-  <li>Group support</li>
-  <li>View day-at-glance</li>
-  <li>View month-at-glance</li>
-  <li>View week-at-glance</li>
-  <li>View year-at-glance</li>
-  <li>View another user's calendar</li>
-  <li>View multiple users' calendars at the same time</li>
-  <li>View one or more users' calendar via layers on top of your own calendar</li>
-  <li>Public calendar (that requires no login) where anonymous users
-    submit events that are approved by an administrator</li>
-  <li>Add/Edit/Delete users</li>
-  <li>Add/Edit/Delete events</li>
-  <li>Repeating events</li>
-  <li>Custom event fields</li>
-  <li>Search interface for calendar entries</li>
-  <li>User-configurable preferences for colors, 12/24 time format,
-    Week start on Sun or Mon, default work hours</li>
-  <li>Online help</li>
-  <li>Checks for scheduling conflicts</li>
-  <li>Support for multiple timezones</li>
-  <li>Users can accept or reject events added by another user to their calendar</li>
-  <li>Email reminders</li>
-  <li>Email notifications for new events</li>
-  <li>Support for 30 different languages:
-  <ul>
-   <li>Basque</li>
-   <li>Bulgarian</li>
-   <li>Catalan</li>
-   <li>繁體中文(Big5)</li>
-   <li>简体中文(GB2312)</li>
-   <li>Czech</li>
-   <li>Danish</li>
-   <li>Deutsch (German)</li>
-   <li>English</li>
-   <li>Espa&#241;ol (Spanish)</li>
-   <li>Estonian</li>
-   <li>Fran&#231;ais (French)</li>
-   <li>Galician</li>
-   <li>Hollands (Dutch)</li>
-   <li>Holo (Taiwanese)</li>
-   <li>Hungarian</li>
-   <li>Icelandic</li>
-   <li>Italiano (Italian)</li>
-   <li>Japanese</li>
-   <li>Korean</li>
-   <li>Norsk (Norwegian)</li>
-   <li>Polish</li>
-   <li>Portuguese</li>
-   <li>Portuguese/Brazil</li>
-   <li>Romanian</li>
-   <li>Русско (Russian)</li>
-   <li>Suomalainen (Finnish)</li>
-   <li>Svensk (Swedish)</li>
-   <li>Turkish</li>
-   <li>Welsh</li>
-  </ul>
- </li>
- <li>Exporting to and importing from:
-  <ul>
-   <li>Palm Pilot</li>
-   <li>iCal</li>
-   <li>vCal</li>
-  </ul>
- </li>
- <li>Authentication using:
-  <ul>
-   <li>LDAP</li>
-   <li>HTTP authentication</li>
-   <li>NIS</li>
-   <li>web-based</li>
-  </ul>
- </li>
- <li>Activity log that tracks:
-  <ul>
-   <li>event creation</li>
-   <li>event updates</li>
-   <li>event acceptance</li>
-   <li>event rejection</li>
-   <li>email notifications</li>
-   <li>email reminders</li>
-  </ul>
- </li>
+<p><strong>Features:</strong></p>
+<ul>
+	<li>Multi-user support</li>
+	<li>Group support</li>
+	<li>View day-at-glance</li>
+	<li>View month-at-glance</li>
+	<li>View week-at-glance</li>
+	<li>View year-at-glance</li>
+	<li>View another user's calendar</li>
+	<li>View multiple users' calendars at the same time</li>
+	<li>View one or more users' calendar via layers on top of your own
+	calendar</li>
+	<li>Public calendar (that requires no login) where anonymous users
+	submit events that are approved by an administrator</li>
+	<li>Add/Edit/Delete users</li>
+	<li>Add/Edit/Delete events</li>
+	<li>Repeating events</li>
+	<li>Custom event fields</li>
+	<li>Search interface for calendar entries</li>
+	<li>User-configurable preferences for colors, 12/24 time format,
+	Week start on Sun or Mon, default work hours</li>
+	<li>Online help</li>
+	<li>Checks for scheduling conflicts</li>
+	<li>Support for multiple timezones</li>
+	<li>Users can accept or reject events added by another user to
+	their calendar</li>
+	<li>Email reminders</li>
+	<li>Email notifications for new events</li>
+	<li>Support for 30 different languages:
+	<ul>
+		<li>Basque</li>
+		<li>Bulgarian</li>
+		<li>Catalan</li>
+		<li>繁體中文(Big5)</li>
+		<li>简体中文(GB2312)</li>
+		<li>Czech</li>
+		<li>Danish</li>
+		<li>Deutsch (German)</li>
+		<li>English</li>
+		<li>Espa&#241;ol (Spanish)</li>
+		<li>Estonian</li>
+		<li>Fran&#231;ais (French)</li>
+		<li>Galician</li>
+		<li>Hollands (Dutch)</li>
+		<li>Holo (Taiwanese)</li>
+		<li>Hungarian</li>
+		<li>Icelandic</li>
+		<li>Italiano (Italian)</li>
+		<li>Japanese</li>
+		<li>Korean</li>
+		<li>Norsk (Norwegian)</li>
+		<li>Polish</li>
+		<li>Portuguese</li>
+		<li>Portuguese/Brazil</li>
+		<li>Romanian</li>
+		<li>Русско (Russian)</li>
+		<li>Suomalainen (Finnish)</li>
+		<li>Svensk (Swedish)</li>
+		<li>Turkish</li>
+		<li>Welsh</li>
+	</ul>
+	</li>
+	<li>Exporting to and importing from:
+	<ul>
+		<li>Palm Pilot</li>
+		<li>iCal</li>
+		<li>vCal</li>
+	</ul>
+	</li>
+	<li>Authentication using:
+	<ul>
+		<li>LDAP</li>
+		<li>HTTP authentication</li>
+		<li>NIS</li>
+		<li>web-based</li>
+	</ul>
+	</li>
+	<li>Activity log that tracks:
+	<ul>
+		<li>event creation</li>
+		<li>event updates</li>
+		<li>event acceptance</li>
+		<li>event rejection</li>
+		<li>email notifications</li>
+		<li>email reminders</li>
+	</ul>
+	</li>
 </ul>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="requirements"></a>
 <h2>System Requirements</h2>
- <ul>
-  <li>PHP 4 (PHP 5 not yet tested) with <tt>magic_quotes_gpc</tt> enabled</li>
-  <li>Database (see <a href="#database">below</a>)</li>
-  <li>CSS-enabled browser</li>
-  <li>JavaScript-enabled browser</li>
-  <li>If not using HTTP-based authentication, then browser cookies are required</li>
- </ul>
- <p><strong>Recommended:</strong></p>
- <ul>
-  <li>pilot-link (if exporting to Palm):
-  <a href="http://sourceforge.net/project/?group_id=2158">http://sourceforge.net/project/?group_id=2158</a>&nbsp;<a href="http://sourceforge.net/project/?group_id=2158" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
- </ul>
- <p><a name="database">You must have one of the following databases installed</a>:</p>
- <ul>
-  <li>MySQL</li>
-  <li>Oracle 8</li>
-  <li>PostgreSQL</li>
-  <li>Interbase</li>
-  <li>MS SQL Server</li>
-  <li>ODBC (PHP ODBC includes support for Adabas D, IBM DB2, Solid and Sybase SQL Anywhere as well as ODBC)</li>
- </ul>
- <p>For the database you choose, you must have its drivers built into
-  PHP.  For example, to use MySQL, PHP must be compiled with MySQL
-  support (which is the default setting when installing PHP).
-  See the PHP pages (<a href="http://www.php.net">www.php.net</a>&nbsp;<a href="http://www.php.net" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>)
-  for more information on setting up PHP.</p>
- <p>No optional PHP packages (other than MySQL) are required for this
-  application.  However, PHP shoud be compiled with <tt>--enable-track-vars</tt>
-  on some systems.</p>
- <p>Make sure that <tt>magic_quotes_gpc</tt> in <tt>php.ini</tt>
-  is turned on (otherwise, you will get an error message when you try to access WebCalendar.)</p>
- <p><span class="tip">TIP</span> If you are using Apache
-  as your web server and if you cannot or do not want to enable
-  <tt>magic_quotes_gpc</tt> for your entire site, you can enable
-  it just for WebCalendar.
-  Create a <tt>.htaccess</tt> file in the toplevel WebCalendar
-  directory that contains a single line:</p>
-  <pre>php_value magic_quotes_gpc 1</pre>
-  <p>(For this to work with Apache, you must have the Apache
-  <tt>AllowOverride All</tt> directive enabled for the directory
-  where WebCalendar is installed.
-  Additionally, PHP must be running as an Apache module, not
-  a CGI.)</p>
+<ul>
+	<li>PHP 4 (PHP 5 not yet tested) with <tt>magic_quotes_gpc</tt>
+	enabled</li>
+	<li>Database (see <a href="#database">below</a>)</li>
+	<li>CSS-enabled browser</li>
+	<li>JavaScript-enabled browser</li>
+	<li>If not using HTTP-based authentication, then browser cookies
+	are required</li>
+</ul>
+<p><strong>Recommended:</strong></p>
+<ul>
+	<li>pilot-link (if exporting to Palm): <a
+		href="http://sourceforge.net/project/?group_id=2158">http://sourceforge.net/project/?group_id=2158</a>&nbsp;<a
+		href="http://sourceforge.net/project/?group_id=2158"
+		title="Open in new window" target="_new"><img src="newwin.gif"
+		alt="new" class="newwin" /></a></li>
+</ul>
+<p><a name="database">You must have one of the following
+databases installed</a>:</p>
+<ul>
+	<li>MySQL</li>
+	<li>Oracle 8</li>
+	<li>PostgreSQL</li>
+	<li>Interbase</li>
+	<li>MS SQL Server</li>
+	<li>ODBC (PHP ODBC includes support for Adabas D, IBM DB2, Solid
+	and Sybase SQL Anywhere as well as ODBC)</li>
+</ul>
+<p>For the database you choose, you must have its drivers built into
+PHP. For example, to use MySQL, PHP must be compiled with MySQL support
+(which is the default setting when installing PHP). See the PHP pages (<a
+	href="http://www.php.net">www.php.net</a>&nbsp;<a
+	href="http://www.php.net" title="Open in new window" target="_new"><img
+	src="newwin.gif" alt="new" class="newwin" /></a>) for more information on
+setting up PHP.</p>
+<p>No optional PHP packages (other than MySQL) are required for this
+application. However, PHP shoud be compiled with <tt>--enable-track-vars</tt>
+on some systems.</p>
+<p>Make sure that <tt>magic_quotes_gpc</tt> in <tt>php.ini</tt> is
+turned on (otherwise, you will get an error message when you try to
+access WebCalendar.)</p>
+<p><span class="tip">TIP</span> If you are using Apache as your web
+server and if you cannot or do not want to enable <tt>magic_quotes_gpc</tt>
+for your entire site, you can enable it just for WebCalendar. Create a <tt>.htaccess</tt>
+file in the toplevel WebCalendar directory that contains a single line:</p>
+<pre>php_value magic_quotes_gpc 1</pre>
+<p>(For this to work with Apache, you must have the Apache <tt>AllowOverride
+All</tt> directive enabled for the directory where WebCalendar is installed.
+Additionally, PHP must be running as an Apache module, not a CGI.)</p>
 
- <p>You can run PHP either as a CGI or an Apache module.  You'll get better
-  performance with PHP setup as a module.  Not only will you not have to
-  deal with the CGI performance hit, but you'll be able to use PHP's
-  database connection pooling.  Additionally, this application can use
-  a form/cookie-based authentication or traditional HTTP authentication.
-  For traditional HTTP authentication, PHP must be built as an Apache
-  module.</p>
- <p>If you are planning on using email reminders, you will need to build
-  PHP as a CGI in order to run the <tt>send_reminders.php</tt> script.  I would
-  strongly recommend building a module-based PHP for your web server
-  and then a second PHP build to create the CGI version.</p>
- <p><span class="tip">TIP</span> Some Linux distributions come with both a module-based PHP
-  with Apache and a standalone PHP binary.
-  Check for <tt>/usr/bin/php</tt> to see if you already have the
-  PHP standalone executable.  If it's there, you can use
-  the following command to see what version of PHP you have:</p>
- <pre>/usr/bin/php -v</pre>
+<p>You can run PHP either as a CGI or an Apache module. You'll get
+better performance with PHP setup as a module. Not only will you not
+have to deal with the CGI performance hit, but you'll be able to use
+PHP's database connection pooling. Additionally, this application can
+use a form/cookie-based authentication or traditional HTTP
+authentication. For traditional HTTP authentication, PHP must be built
+as an Apache module.</p>
+<p>If you are planning on using email reminders, you will need to
+build PHP as a CGI in order to run the <tt>send_reminders.php</tt>
+script. I would strongly recommend building a module-based PHP for your
+web server and then a second PHP build to create the CGI version.</p>
+<p><span class="tip">TIP</span> Some Linux distributions come with
+both a module-based PHP with Apache and a standalone PHP binary. Check
+for <tt>/usr/bin/php</tt> to see if you already have the PHP standalone
+executable. If it's there, you can use the following command to see what
+version of PHP you have:</p>
+<pre>/usr/bin/php -v</pre>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="fileunpacking"></a>
 <h2>File Unpacking</h2>
- <p>Unpack the calendar software in its own directory somewhere where
-  your web server will find it.  (See your web server docs for info.)</p>
- <p>By default, WebCalendar should create its own directory
-  when you unpack it.  The new directory name will typically
-  contain the version name (such as <tt>WebCalendar-0.9.41</tt>).
-  You can rename this directory after unpacking the files if you
-  prefer a directory name like <tt>calendar</tt> or <tt>webcalendar</tt>.
-  Keep in mind that unless you remap the directory (via your web server's
-  configuration settings), it will be part of the URL for the calendar.</p>
+<p>Unpack the calendar software in its own directory somewhere where
+your web server will find it. (See your web server docs for info.)</p>
+<p>By default, WebCalendar should create its own directory when you
+unpack it. The new directory name will typically contain the version
+name (such as <tt>WebCalendar-0.9.41</tt>). You can rename this
+directory after unpacking the files if you prefer a directory name like
+<tt>calendar</tt> or <tt>webcalendar</tt>. Keep in mind that unless you
+remap the directory (via your web server's configuration settings), it
+will be part of the URL for the calendar.</p>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="dbsetup"></a>
- <h2>Database Setup</h2>
- <p>There are three steps in setting up the database:</p>
- <ol>
-  <li>Creating the database</li>
-  <li>Creating the user</li>
-  <li>Creating the required tables</li>
- </ol>
- <p>Follow the steps outlined below for the database you are using.
-  When complete, a single user account will be created
-  with the <strong>login "admin" and password "admin"</strong>, which you are encouraged
-  to use to create your own account.</p>
- <p><span class="note">Note:</span> In the examples below, text in <strong>bold</strong>
-  represents text that you must type in.</p>
-         <p><span class="note">Security:</span> The default values for database, login, and
-  password (<strong>intranet</strong>, <strong>webcalendar</strong>, and <strong>webcal01</strong>) are for demonstration purposes only
-  and should never be used in a production environment.</p>
- <h3 class="colorheader">MySQL</h3>
- <p>The following will create a database named "intranet".</p>
+<h2>Database Setup</h2>
+<p>There are three steps in setting up the database:</p>
+<ol>
+	<li>Creating the database</li>
+	<li>Creating the user</li>
+	<li>Creating the required tables</li>
+</ol>
+<p>Follow the steps outlined below for the database you are using.
+When complete, a single user account will be created with the <strong>login
+"admin" and password "admin"</strong>, which you are encouraged to use to create
+your own account.</p>
+<p><span class="note">Note:</span> In the examples below, text in <strong>bold</strong>
+represents text that you must type in.</p>
+<p><span class="note">Security:</span> The default values for
+database, login, and password (<strong>intranet</strong>, <strong>webcalendar</strong>,
+and <strong>webcal01</strong>) are for demonstration purposes only and
+should never be used in a production environment.</p>
+<h3 class="colorheader">MySQL</h3>
+<p>The following will create a database named "intranet".</p>
 <pre><strong>mysqladmin create intranet</strong></pre>
- <p>Next, create the database user account that will be used to access the database.</p>
- <pre><strong>mysql --user=root mysql</strong>
-mysql> <strong>GRANT ALL PRIVILEGES ON *.* TO webcalendar at localhost
+<p>Next, create the database user account that will be used to
+access the database.</p>
+<pre><strong>mysql --user=root mysql</strong>
+mysql&gt; <strong>GRANT ALL PRIVILEGES ON *.* TO webcalendar at localhost
 IDENTIFIED BY 'webcal01' WITH GRANT OPTION;</strong>
-mysql> <strong>FLUSH PRIVILEGES;</strong>
-mysql> <strong>QUIT</strong></pre>
- <p>If you will be accessing MySQL from a different machine than
-  the one running the web server, repeat the command above
-  and replace 'localhost' with the hostname of the other machine.</p>
- <p>Create the calendar tables using the supplied <tt>tables-mysql.sql</tt> file:</p>
- <pre><strong>mysql intranet &lt; tables-mysql.sql</strong></pre>
- <p>In the above example, "intranet" is the name of your database.</p>
+mysql&gt; <strong>FLUSH PRIVILEGES;</strong>
+mysql&gt; <strong>QUIT</strong></pre>
+<p>If you will be accessing MySQL from a different machine than the
+one running the web server, repeat the command above and replace
+'localhost' with the hostname of the other machine.</p>
+<p>Create the calendar tables using the supplied <tt>tables-mysql.sql</tt>
+file:</p>
+<pre><strong>mysql intranet &lt; tables-mysql.sql</strong></pre>
+<p>In the above example, "intranet" is the name of your database.</p>
 
- <p><span class="note">Note:</span> If you are using
- <a href="http://www.phpmyadmin.net">phpMyAdmin</a> to
- manage your MySQL database, follow the
- instructions in <a href="#appendixA">Appendix A</a>.
- </p>
+<p><span class="note">Note:</span> If you are using <a
+	href="http://www.phpmyadmin.net">phpMyAdmin</a> to manage your MySQL
+database, follow the instructions in <a href="#appendixA">Appendix A</a>.
+</p>
 
- <h3 class="colorheader">Oracle</h3>
- <p>The following will create a tablespace named "webcalendar".
-  From the command line, startup sqlplus and
-  issue the following command:</p>
- <pre><strong>sqlplus</strong>
+<h3 class="colorheader">Oracle</h3>
+<p>The following will create a tablespace named "webcalendar". From
+the command line, startup sqlplus and issue the following command:</p>
+<pre><strong>sqlplus</strong>
 SQL&gt; <strong>CREATE TABLESPACE webcalendar
 DATAFILE 'webcalendar.dat' SIZE 10M
 AUTOEXTEND ON NEXT 10M MAXSIZE 40M;</strong></pre>
- <p>Next, create the database user account that will be used to access the database.</p>
- <pre><strong>sqlplus</strong>
+<p>Next, create the database user account that will be used to
+access the database.</p>
+<pre><strong>sqlplus</strong>
 SQL&gt; <strong>CREATE USER webcalendar IDENTIFIED BY webcal01
 DEFAULT TABLESPACE webcalendar;</strong>
 SQL&gt; <strong>GRANT dba TO webcalendar;</strong>
 SQL&gt; <strong>quit</strong></pre>
- <p>Create the calendar tables using the supplied <tt>tables-oracle.sql</tt> file:</p>
- <pre><strong>sqlplus webcalendar/webcal01</strong>
+<p>Create the calendar tables using the supplied <tt>tables-oracle.sql</tt>
+file:</p>
+<pre><strong>sqlplus webcalendar/webcal01</strong>
 SQL&gt; <strong>@tables-oracle;</strong>
 SQL&gt; <strong>quit</strong></pre>
 
- <h3 class="colorheader">PostgreSQL</h3>
- <p>The following will create a database named "webcalendar".
-  From the command line, startup psql and
-  issue the following command:</p>
- <pre><strong>create database webcalendar;
+<h3 class="colorheader">PostgreSQL</h3>
+<p>The following will create a database named "webcalendar". From
+the command line, startup psql and issue the following command:</p>
+<pre><strong>create database webcalendar;
 \c webcalendar
 \i tables-postgres.sql
 \q</strong></pre>
 
- <h3 class="colorheader">Interbase</h3>
- <p>The following will create a database named "WEBCAL.gdb".
-  From the command line, startup usql and
-  issue the following command:</p>
- <pre><strong>CREATE DATABASE 'WEBCAL.gdb';</strong></pre>
+<h3 class="colorheader">Interbase</h3>
+<p>The following will create a database named "WEBCAL.gdb". From the
+command line, startup usql and issue the following command:</p>
+<pre><strong>CREATE DATABASE 'WEBCAL.gdb';</strong></pre>
 
- <p>Create the calendar tables using the supplied <tt>tables-ibase.sql</tt> file:</p>
- <pre><strong>isql
+<p>Create the calendar tables using the supplied <tt>tables-ibase.sql</tt>
+file:</p>
+<pre><strong>isql
 connect /path/WEBCAL.gdb;
 input path/table-ibase.sql;</strong></pre>
 
- <h3 class="colorheader">ODBC</h3>
- <p>Setup will depend on which database you are using.
-  When it comes time to create the tables,
-  the <tt>tables-postgres.sql</tt> file should work for most
-  databases.</p>
-   <h3 class="colorheader">MSSQL</h3>
- <p>Create a database, <strong>intranet,</strong>  and add a user, <strong>webcalendar</strong>, to access this database. The user should be granted public, db_datareader,
-   and db_datawriter privileges. Open SQL Query Analyzer then open
-   the file <tt>tables-postgres.sql</tt>. Make sure you have identified <strong>intranet</strong> as the target database and Execute the contents of the sql file.</p>
-          <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
+<h3 class="colorheader">ODBC</h3>
+<p>Setup will depend on which database you are using. When it comes
+time to create the tables, the <tt>tables-postgres.sql</tt> file should
+work for most databases.</p>
+<h3 class="colorheader">MSSQL</h3>
+<p>Create a database, <strong>intranet,</strong> and add a user, <strong>webcalendar</strong>,
+to access this database. The user should be granted public,
+db_datareader, and db_datawriter privileges. Open SQL Query Analyzer
+then open the file <tt>tables-postgres.sql</tt>. Make sure you have
+identified <strong>intranet</strong> as the target database and Execute
+the contents of the sql file.</p>
+<div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="appsetup"></a>
- <h2>Application Setup</h2>
- <p>Next, you will need to run the web-based database setup script
- (simply direct your browser to your new WebCalendar location).
- You will need to modify the permissions of the <tt>includes</tt>
- directory.  On Linux/UNIX, you should change this directory
- to be read/write for all users (<tt>chmod 777 includes</tt>).
- On Windows, change this directory to have full access for all users
- using Windows Explorer. Changing the write permissions will allow the web-based
- database configuration tool to create the <tt>settings.php</tt> file.</p>
- 
- <p><span class="tip">TIP</span> After you have created the
- <tt>settings.php</tt> file (with the "Save Settings" button),
- you can change the permissions back to a more restrictive setting.</p>
- 
- <p>After you test and save your database settings, you
- will be prompted to enter an installation password.
- <b>Write this password down somewhere.</b> There is no way to reset 
- this password. If you forget this password and need to change your database settings, 
- you will need to manually edit the <tt>settings.php</tt> file with a text editor.</p>
- 
- <p>If you choose not to use the web-based database configuration
- tool, you can manually edit the <tt>settings.php</tt> file.
- There is an example file <tt>settings.php.orig</tt> that you
- can use as a starting point. Simply rename this file to <tt>settings.php</tt>. 
- You will need to set the values as follows in <tt>settings.php</tt>:</p>
- <p>To configure your database access. Set the values for:</p>
- <table class="distinguish">
-  <tr><td>
-   db_type</td>
-  <td>
-   One of "mysql", "oracle", "postgresql", "odbc",
-   &quot;mssql&quot;,
-   or "ibase"
-  </td>
-  </tr>
-  <tr><td>
-   db_host</td><td>
-   The hostname that database is running on.
-   (Use localhost if it's the same machine as 
-   the web server.) (This variable is not used with ODBC)
-  </td></tr>
-  <tr><td>
-   db_login</td><td>
-   The database login
-  </td></tr>
-  <tr><td>
-   db_password</td><td>
-   The database password for the above login
-  </td></tr>
-  <tr><td>
-   db_database</td><td>
-   The name of the database that the calendar 
-   tables reside in.  ("intranet" in the <a href="#dbsetup">examples above</a>.) 
-   For ODBC, this should be the DSN.
-  </td></tr>
-  <tr><td>
-   db_persistent</td><td>
-   Enable use of persistent (pooled) database connections. 
-   This should typically be enabled.
-  </td></tr>
- </table>
+<h2>Application Setup</h2>
+<p>Next, you will need to run the web-based database setup script
+(simply direct your browser to your new WebCalendar location). You will
+need to modify the permissions of the <tt>includes</tt> directory. On
+Linux/UNIX, you should change this directory to be read/write for all
+users (<tt>chmod 777 includes</tt>). On Windows, change this directory
+to have full access for all users using Windows Explorer. Changing the
+write permissions will allow the web-based database configuration tool
+to create the <tt>settings.php</tt> file.</p>
 
- <p>You can configure the calendar to run in single-user<a href="#g_singleuser">*</a> mode or 
- multi-user<a href="#g_multiuser">*</a> mode. If this is your first time using the 
- calendar, it's easier to try single-user. You can always switch to multi-user 
- later. Leave <tt>single_user</tt> set to "N" (the default) for multi-user or set 
- it to "Y" and set the value of <tt>single_user_login</tt> to a login name of your liking 
- to set the system to single-user mode. (And be sure to set the value of 
- <tt>single_user_login</tt> to the login that you would choose if you decide to switch 
- to multi-user mode some day.)</p>
- <p><span class="note">Note:</span> If you do decide to switch from single-user mode to multi-user mode,
-  make sure you add in a user to the system for the login you set the
-  <tt>single_user_login</tt> variable to.  You will need to do this via the
-  database (mysql, sqlplus, etc.)  Look in the <tt>tables-mysql.sql</tt>
-  (or <tt>tables-oracle.sql</tt>, etc.) to see the example of adding in the "admin" user.</p>
- <p>If you are setting up a multi-user calendar, you will need to choose
-  how your users are authenticated. You must change the settings of 
-  <tt>use_http_auth</tt> and <tt>user_inc</tt>
-  to setup which authentication method to use.</p>
- <p>You currently have four choices:</p>
- <ol>
-  <li>Web-based authentication (login/passwords verified in the WebCalendar database):<br />
-   <tt>use_http_auth = false</tt><br />
-   <tt>user_inc = user.php</tt>
-  </li>
-  <li>HTTP-based authentication (login/passwords verified by the web server):<br />
-   <tt>use_http_auth = true</tt><br />
-   <tt>user_inc = user.php</tt><br />
-   ... and don't forget to setup your web server to handle user
-   authentication.<br />
-          <span class="note">Note:</span> In order to use HTTP-based authentication,
-    PHP must be setup as a module for your server rather than a CGI.
-  </li>
-  <li>NIS-based authentication (login/passwords verified by NIS):<br />
-   <tt>use_http_auth = false</tt><br />
-   <tt>user_inc = user-nis.php</tt><br />
-   Additional configuration settings will need to be set
-   in <tt>includes/user-nis.php</tt>.
-  </li>
-  <li>LDAP-based authentication (login/passwords verified by LDAP server):<br />
-   <tt>use_http_auth = false</tt><br />
-   <tt>user_inc = user-ldap.php</tt><br />
-   Additional configuration settings will need to be set
-   in <tt>includes/user-ldap.php</tt>.
-  </li>
- </ol>
-    <p>Keep in mind that if you want to use reminders, you will need to
-  setup the <tt>send_reminders.php</tt> script (see below) and keep your admin
-  setting for "Email enabled" set to "Yes" on the admin settings page.</p>
-    <p>At this point, your WebCalendar installation should be up and running.
-  To access WebCalendar open up your favorite web browser and
-  type in the URL.  The URL will depend on where you installed
-  WebCalendar.</p>
-    <p>When you unpacked/unzipped the WebCalendar distribution, it typically
-  creates a directory that includes the version number.
-  For example, if the zip file was named <tt>WebCalendar-0.9.99.zip</tt>
-  (or <tt>WebCalendar-0.9.99.tar.gz</tt>), then there
-  should be a <tt>WebCalendar-0.9.99</tt> directory.  For convenience, you
-  can rename this directory so that the URL does not include the version
-  number.  On Windows, you can do this from the Windows Explorer.
-  On Linux/UNIX, you can use the <tt>mv</tt> command to rename the directory.
-  Supposing you renamed the <tt>WebCalendar-0.9.99</tt> directory to just
-  be <tt>calendar</tt>, and you unpacked/unzipped the files into your toplevel
-  web server directory, the URL would be:</p>
-    <pre>http://yourserverhere/calendar/index.php</pre>
- <p>If you have not previously configured your database settings,
-  you will be automatically redirected to a web page for
-  configuring your database settings. After you have configured the database, 
-  use the URL again to access WebCalendar.</p>
-    <p>If you have configured your web server to use <tt>index.php</tt> as the
-  default index page for a directory, you can omit that from the URL.
-  On a single-user system, your browser should be redirected to week.php
-  initially. On a multi-user system, your browser should be redirected to login.php
-  so that you can login.</p>
- <p><span class="tip">TIP</span> On a multi-user system, the only user account created
- during installation has the username of "admin" and a password of "admin". You should create 
- a new admin account and delete this one for security reasons.</p>
+<p><span class="tip">TIP</span> After you have created the <tt>settings.php</tt>
+file (with the "Save Settings" button), you can change the permissions
+back to a more restrictive setting.</p>
+
+<p>After you test and save your database settings, you will be
+prompted to enter an installation password. <b>Write this password
+down somewhere.</b> There is no way to reset this password. If you forget
+this password and need to change your database settings, you will need
+to manually edit the <tt>settings.php</tt> file with a text editor.</p>
+
+<p>If you choose not to use the web-based database configuration
+tool, you can manually edit the <tt>settings.php</tt> file. There is an
+example file <tt>settings.php.orig</tt> that you can use as a starting
+point. Simply rename this file to <tt>settings.php</tt>. You will need
+to set the values as follows in <tt>settings.php</tt>:</p>
+<p>To configure your database access. Set the values for:</p>
+<table class="distinguish">
+	<tr>
+		<td>db_type</td>
+		<td>One of "mysql", "oracle", "postgresql", "odbc",
+		&quot;mssql&quot;, or "ibase"</td>
+	</tr>
+	<tr>
+		<td>db_host</td>
+		<td>The hostname that database is running on. (Use localhost if
+		it's the same machine as the web server.) (This variable is not used
+		with ODBC)</td>
+	</tr>
+	<tr>
+		<td>db_login</td>
+		<td>The database login</td>
+	</tr>
+	<tr>
+		<td>db_password</td>
+		<td>The database password for the above login</td>
+	</tr>
+	<tr>
+		<td>db_database</td>
+		<td>The name of the database that the calendar tables reside in.
+		("intranet" in the <a href="#dbsetup">examples above</a>.) For ODBC,
+		this should be the DSN.</td>
+	</tr>
+	<tr>
+		<td>db_persistent</td>
+		<td>Enable use of persistent (pooled) database connections. This
+		should typically be enabled.</td>
+	</tr>
+</table>
+
+<p>You can configure the calendar to run in single-user<a
+	href="#g_singleuser">*</a> mode or multi-user<a href="#g_multiuser">*</a>
+mode. If this is your first time using the calendar, it's easier to try
+single-user. You can always switch to multi-user later. Leave <tt>single_user</tt>
+set to "N" (the default) for multi-user or set it to "Y" and set the
+value of <tt>single_user_login</tt> to a login name of your liking to
+set the system to single-user mode. (And be sure to set the value of <tt>single_user_login</tt>
+to the login that you would choose if you decide to switch to multi-user
+mode some day.)</p>
+<p><span class="note">Note:</span> If you do decide to switch from
+single-user mode to multi-user mode, make sure you add in a user to the
+system for the login you set the <tt>single_user_login</tt> variable to.
+You will need to do this via the database (mysql, sqlplus, etc.) Look in
+the <tt>tables-mysql.sql</tt> (or <tt>tables-oracle.sql</tt>, etc.) to
+see the example of adding in the "admin" user.</p>
+<p>If you are setting up a multi-user calendar, you will need to
+choose how your users are authenticated. You must change the settings of
+<tt>use_http_auth</tt> and <tt>user_inc</tt> to setup which
+authentication method to use.</p>
+<p>You currently have four choices:</p>
+<ol>
+	<li>Web-based authentication (login/passwords verified in the
+	WebCalendar database):<br />
+	<tt>use_http_auth = false</tt><br />
+	<tt>user_inc = user.php</tt></li>
+	<li>HTTP-based authentication (login/passwords verified by the web
+	server):<br />
+	<tt>use_http_auth = true</tt><br />
+	<tt>user_inc = user.php</tt><br />
+	... and don't forget to setup your web server to handle user
+	authentication.<br />
+	<span class="note">Note:</span> In order to use HTTP-based
+	authentication, PHP must be setup as a module for your server rather
+	than a CGI.</li>
+	<li>NIS-based authentication (login/passwords verified by NIS):<br />
+	<tt>use_http_auth = false</tt><br />
+	<tt>user_inc = user-nis.php</tt><br />
+	Additional configuration settings will need to be set in <tt>includes/user-nis.php</tt>.
+	</li>
+	<li>LDAP-based authentication (login/passwords verified by LDAP
+	server):<br />
+	<tt>use_http_auth = false</tt><br />
+	<tt>user_inc = user-ldap.php</tt><br />
+	Additional configuration settings will need to be set in <tt>includes/user-ldap.php</tt>.
+	</li>
+</ol>
+<p>Keep in mind that if you want to use reminders, you will need to
+setup the <tt>send_reminders.php</tt> script (see below) and keep your
+admin setting for "Email enabled" set to "Yes" on the admin settings
+page.</p>
+<p>At this point, your WebCalendar installation should be up and
+running. To access WebCalendar open up your favorite web browser and
+type in the URL. The URL will depend on where you installed WebCalendar.</p>
+<p>When you unpacked/unzipped the WebCalendar distribution, it
+typically creates a directory that includes the version number. For
+example, if the zip file was named <tt>WebCalendar-0.9.99.zip</tt> (or <tt>WebCalendar-0.9.99.tar.gz</tt>),
+then there should be a <tt>WebCalendar-0.9.99</tt> directory. For
+convenience, you can rename this directory so that the URL does not
+include the version number. On Windows, you can do this from the Windows
+Explorer. On Linux/UNIX, you can use the <tt>mv</tt> command to rename
+the directory. Supposing you renamed the <tt>WebCalendar-0.9.99</tt>
+directory to just be <tt>calendar</tt>, and you unpacked/unzipped the
+files into your toplevel web server directory, the URL would be:</p>
+<pre>http://yourserverhere/calendar/index.php</pre>
+<p>If you have not previously configured your database settings, you
+will be automatically redirected to a web page for configuring your
+database settings. After you have configured the database, use the URL
+again to access WebCalendar.</p>
+<p>If you have configured your web server to use <tt>index.php</tt>
+as the default index page for a directory, you can omit that from the
+URL. On a single-user system, your browser should be redirected to
+week.php initially. On a multi-user system, your browser should be
+redirected to login.php so that you can login.</p>
+<p><span class="tip">TIP</span> On a multi-user system, the only
+user account created during installation has the username of "admin" and
+a password of "admin". You should create a new admin account and delete
+this one for security reasons.</p>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="users"></a>
- <h2>Creating Users</h2>
- <p>After logging in as an admin user (the initial username is "admin" with
-  password "admin"), you will see a common set of links at the bottom
-  of each page.  Follow these steps to create a new user:</p>
- <ol>
-  <li>Login to WebCalendar as an admin user</li>
-  <li>Click on the "Admin" link at the bottom of any WebCalendar page</li>
-  <li>Click on the "Users" button</li>
-  <li>Click on the "Add New User" link</li>
-  <li>Fill out the form with details for the new user (email address is optional)</li>
-  <li>Click on the "Save" button</li>
- </ol>
- <p><span class="tip">TIP</span> On a single-user system, you do not need to create any users.</p>
- <p><span class="tip">TIP</span> For an event calendar, you do not need to create a user for the "public user".</p>
+<h2>Creating Users</h2>
+<p>After logging in as an admin user (the initial username is
+"admin" with password "admin"), you will see a common set of links at
+the bottom of each page. Follow these steps to create a new user:</p>
+<ol>
+	<li>Login to WebCalendar as an admin user</li>
+	<li>Click on the "Admin" link at the bottom of any WebCalendar
+	page</li>
+	<li>Click on the "Users" button</li>
+	<li>Click on the "Add New User" link</li>
+	<li>Fill out the form with details for the new user (email address
+	is optional)</li>
+	<li>Click on the "Save" button</li>
+</ol>
+<p><span class="tip">TIP</span> On a single-user system, you do not
+need to create any users.</p>
+<p><span class="tip">TIP</span> For an event calendar, you do not
+need to create a user for the "public user".</p>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="reminders"></a>
- <h2>Setting Up Email Reminders</h2>
- <p>PHP does not come with a utility for executing time-based jobs.
-  So, in order to check periodically for email reminders, a shell
-  script was written in PHP.  You will need two things to get this working:</p>
- <ol>
-  <li>You should have a version of PHP built as a CGI (so that you can run
-    php from the command line).  This does not mean you must build all
-    of PHP as a CGI.  You can still build PHP as a module for your web
-  server and then build the CGI-based PHP later.<br />
-    <span class="note">Note:</span> Many Linux distributions and some Windows LAMP packages
-    come with the PHP built for CGI.</li>
-  <li>You must setup cron (on Linux/UNIX) or something like cron for Windows
-  to run the <tt>send_reminders.php</tt> script periodically.</li>
- </ol>
- <p>Building PHP as a CGI is outside the scope of these instructions.  But,
-  if you read the PHP instructions, you'll see that the default build
-  settings will build the CGI-based PHP.  If you really can't do this
-  (perhaps you don't have permission to install anything new on the
-  system), skip down a couple of paragraphs to an alternate solution
-  that does not require PHP CGI.</p>
- <p>For Linux/UNIX users, add the following line to the crontab entry of
-  a user.  (This would be the same user that the web server
-  process runs as.)</p>
- <pre><tt>1 * * * * cd /some/directory/webcalendar/tools; ./send_reminders.php</tt></pre>
-    <p>Of course, replace the directory location to wherever the
-  <tt>send_reminders.php</tt> file can be found.  If you moved this out of the
-  tools directory (which is recommended for security reasons),
-  be sure to update <tt>send_reminders.php</tt> since it needs
-  to know where to find other WebCalendar files.</p>
-    <p>If you cannot setup PHP as a CGI or have no idea how, you can leave
-  <tt>send_reminders.php</tt> in its current location and access it via a URL.
-  IMHO, this is not the best choice, but it still works.  Setup a cron
-  job to access the URL.  For Linux/UNIX users, add the following line to
-  the crontab entry of a user.</p>
- <pre><tt>1 * * * * wget http://yourserverhere/webcalendardirectoryhere/tools/send_reminders.php &gt; /dev/null</tt></pre>
-  <p>You should test this from the command line first to make sure your setup is 
-  correct. If you do not have <tt>wget</tt> installed on your system, you can use 
-  any tool (lynx, perl script, etc.) that is capable of making an HTTP request for this.</p>
+<h2>Setting Up Email Reminders</h2>
+<p>PHP does not come with a utility for executing time-based jobs.
+So, in order to check periodically for email reminders, a shell script
+was written in PHP. You will need two things to get this working:</p>
+<ol>
+	<li>You should have a version of PHP built as a CGI (so that you
+	can run php from the command line). This does not mean you must build
+	all of PHP as a CGI. You can still build PHP as a module for your web
+	server and then build the CGI-based PHP later.<br />
+	<span class="note">Note:</span> Many Linux distributions and some
+	Windows LAMP packages come with the PHP built for CGI.</li>
+	<li>You must setup cron (on Linux/UNIX) or something like cron for
+	Windows to run the <tt>send_reminders.php</tt> script periodically.</li>
+</ol>
+<p>Building PHP as a CGI is outside the scope of these instructions.
+But, if you read the PHP instructions, you'll see that the default build
+settings will build the CGI-based PHP. If you really can't do this
+(perhaps you don't have permission to install anything new on the
+system), skip down a couple of paragraphs to an alternate solution that
+does not require PHP CGI.</p>
+<p>For Linux/UNIX users, add the following line to the crontab entry
+of a user. (This would be the same user that the web server process runs
+as.)</p>
+<pre><tt>1 * * * * cd /some/directory/webcalendar/tools; ./send_reminders.php</tt></pre>
+<p>Of course, replace the directory location to wherever the <tt>send_reminders.php</tt>
+file can be found. If you moved this out of the tools directory (which
+is recommended for security reasons), be sure to update <tt>send_reminders.php</tt>
+since it needs to know where to find other WebCalendar files.</p>
+<p>If you cannot setup PHP as a CGI or have no idea how, you can
+leave <tt>send_reminders.php</tt> in its current location and access it
+via a URL. IMHO, this is not the best choice, but it still works. Setup
+a cron job to access the URL. For Linux/UNIX users, add the following
+line to the crontab entry of a user.</p>
+<pre><tt>1 * * * * wget http://yourserverhere/webcalendardirectoryhere/tools/send_reminders.php &gt; /dev/null</tt></pre>
+<p>You should test this from the command line first to make sure
+your setup is correct. If you do not have <tt>wget</tt> installed on
+your system, you can use any tool (lynx, perl script, etc.) that is
+capable of making an HTTP request for this.</p>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="systemsettings"></a>
- <h2>System Settings</h2>
- <p>System Settings allows the administrator to control what features are available to users 
- as well as default values for certain features.</p>
- <p>Many of these settings can be overridden by users in their Preferences (such as color).</p>
- <h3>Settings</h3>
- <dl>
-  <dt>Application Name</dt>
-  <dd>Specifies the document title (typically displayed in the window title bar 
-  of most browsers)</dd>
-  <dt>Server URL</dt>
-  <dd>Specifies the base URL of the calendar. This information is needed to 
-  accurately include URLs in email messages (Notifications and Reminders).</dd>
-  <dt>Language</dt>
-   <dd>Specifies the default language setting for all users.</dd>
-  <dt>Fonts</dt>
-   <dd>Specifies your preferred font.  Multiple font names should be comma-separated.</dd>
-  <dt>Preferred View</dt>
-   <dd>Specify if users should see the day, week, month, or year after loggin in.</dd>
-  <dt>Display weekends in view</dt>
-  <dd>Specifies default setting for if Saturdays and Sundays should appear in the 
-  calendar when viewing a month or week</dd>
-  <dt>Date format</dt>
-   <dd>Specifies the default format for displaying dates</dd>
-  <dt>Time format</dt>
-   <dd>Specifies the default time format as either 12-hour (3:45pm) or 24-hour (15:14)</dd>
-  <dt>Time interval</dt>
-  <dd>Specify the default number of minutes each time block represents in the day and 
-  week display</dd>
-  <dt>Auto-referesh calendars</dt>
-  <dd>If set to "yes," the day, week, and month pages will automatically 
-  reload after a specified duration</dd>
-  <dt>Auto-refresh time</dt>
-  <dd>Specifies how long to wait before the auto-refresh should force a page 
-  to be reloaded</dd>
-  <dt>Display unapproved</dt>
-  <dd>Specifies whether events that have been added to a calendar but not yet 
-  approved should display on the calendar (in a different color)</dd>
-  <dt>Display week number</dt>
-   <dd>Specifies whether the week number should be displayed in month and week views</dd>
-  <dt>Week starts on</dt>
-   <dd>Specifies if week start on Sunday or Monday</dd>
-  <dt>Work hours</dt>
-   <dd>Specifies the default time range to display in day and week views</dd>
-  <dt>Disable Priority field</dt>
-   <dd>If enabled, the Priority field will not be used</dd>
-  <dt>Disable Access field</dt>
-   <dd>If enabled, the Access field will not be used</dd>
-  <dt>Disable Participants field</dt>
-  <dd>If enabled, the Participants field will not be used, and users will not be 
-  able to add events to any calendar other than their own.</dd>
-  <dt>Disable Repeating field</dt>
-   <dd>If enabled, users will not be able to create repeating events</dd>
-  <dt>Allow viewing other user's calendars</dt>
-   <dd>If enabled, users will be able to view the calendar of another user</dd>
-  <dt>Allow public access</dt>
-  <dd>If enabled, anonymous users will be able to view the public access 
-  calendar without logging in.</dd>
-  <dt>Public access can view other users</dt>
-   <dd>If enabled, anonymous users will be able to view the calendars of other users</dd>
-  <dt>Public access can add events</dt>
-   <dd>If enabled, anonymous users will be able to submit new events.</dd>
-  <dt>Public access new events require approval</dt>
-  <dd>If enabled, events submitted to the public access calendar (by anonymous 
-  users) will require approval by an admin user.  If not enabled, then new events 
-  will appear on the public access calendar as soon as they are submitted.</dd>
-  <dt>Include add event link in views</dt>
-  <dd>If enabled, Views will include a link to quickly add events to the 
-  specified user's calendar.</dd>
-  <dt>Allow external users</dt>
-  <dd>If enabled, the create/edit event page will contain a text area to include 
-  the names (and optional email address) of event participants that are not calendar users.</dd>
-  <dt>External users can receive email notifications</dt>
-  <dd>If enabled, event participants entered into the External Participants 
-  area will receive email notifications at the same time as calendar users (if an email 
-  address was specified for the Exernal Participant).</dd>
-  <dt>External users can receive email reminders</dt>
-  <dd>If enabled, event participants entered into the External Participants 
-  area will receive email reminders at the same time as calendar users (if an email 
-  address was specified for the Exernal Participant).</dd>
-  <dt>Remember last login</dt>
-   <dd>If enabled, when a returning calendar user reaches the login page, their login name will be pre-filled with the last login username that they entered.  (The password field will still be blank.)</dd>
-  <dt>Check for event conflicts</dt>
-   <dd>Specifies if the system should check for scheduling conflicts when a user adds or updates an event.</dd>
-  <dt>Conflict checking months</dt>
-   <dd>If conflict checking is enabled, this specifies how many months past the initial date the system will check for conflicts when a user adds or updates a repeating event.</dd>
-  <dt>Allow users to override conflicts</dt>
-   <dd>If enabled, users will be warned when there is an event conflict and be presented with the option of scheduling the event anyhow.</dd>
-  <dt>Limit number of timed events per day</dt>
-   <dd>If enabled, users can can be limited to a specific number of timed events per day</dd>
-  <dt>Maximum timed events per day</dt>
-   <dd>Specifies that maximum number of events that can be scheduled in one day of any one user.</dd>
- </dl>
- <h3>Groups</h3>
- <dl>
-  <dt>Groups enabled</dt>
-   <dd>Specifies if group features should be enabled</dd>
-  <dt>User sees only his group</dt>
-   <dd>If enabled, users will be unaware of any users that are not in the same group as the user.</dd>
- </dl>
- <h3>Categories</h3>
- <dl>
-  <dt>Cagtegoies enabled</dt>
-   <dd>Specifies if category features should be enabled</dd>
- </dl>
- <h3>Email</h3>
- <dl>
-  <dt>Email enabled</dt>
-   <dd>Specifies if email functionality should be enabled.  If set to "No," then no email messages will be sent at any time.</dd>
-  <dt>Default sender address</dt>
-   <dd>Specifies the email originator to use when the system sends out email Notifications and Reminders</dd>
-  <dt>Event reminders</dt>
-     <dd>Specifies if email reminders for events that include a reminder should be sent</dd>
-  <dt>Events added to my calendar</dt>
-     <dd>Specifies if the system should send email when an event is added</dd>
-  <dt>Events updated on my calendar</dt>
-     <dd>Specifies if the system should send email when an event is updated</dd>
-  <dt>Events removed from my calendar</dt>
-     <dd>Specifies if the system should send email when an event is deleted</dd>
-  <dt>Event rejected by participant</dt>
-     <dd>Specifies if the system should send email when a participant to an event rejects the event</dd>
- </dl>
- <h3>Colors</h3>
- <dl>
-  <dt>Allow user to customize colors</dt>
-   <dd>Specifies whether color settings should be available to users in their Preferences</dd>
-  <dt>Document background</dt>
-     <dd>Specifies the background color of all pages</dd>
-  <dt>Document title</dt>
-     <dd>Specifies the color of page title on each page</dd>
-  <dt>Document text</dt>
-     <dd>Specifies the default text color on each page</dd>
-  <dt>Table grid color</dt>
-     <dd>Specifies color of the lines that make HTML table grids on each page</dd>
-  <dt>Table header background</dt>
-     <dd>Specifies the default background for the heading of any HTML table</dd>
-  <dt>Table header text</dt>
-     <dd>Specifies the default text color for the heading of any HTML table</dd>
-  <dt>Table cell background</dt>
-     <dd>Specifies the background color for table cells</dd>
-  <dt>Table cell background for current day</dt>
-     <dd>Specifies the background color for the table cell containing the current date</dd>
-  <dt>Table cell background for weekend</dt>
-   <dd>Specifies the background color for table cells that represent a Saturday or Sunday</dd>
-  <dt>Event popup background</dt>
-   <dd>Specifies the background color of event popup areas</dd>
-  <dt>Event popup text</dt>
-   <dd>Specifies the text color of event popup areas</dd>
- </dl>
+<h2>System Settings</h2>
+<p>System Settings allows the administrator to control what features
+are available to users as well as default values for certain features.</p>
+<p>Many of these settings can be overridden by users in their
+Preferences (such as color).</p>
+<h3>Settings</h3>
+<dl>
+	<dt>Application Name</dt>
+	<dd>Specifies the document title (typically displayed in the
+	window title bar of most browsers)</dd>
+	<dt>Server URL</dt>
+	<dd>Specifies the base URL of the calendar. This information is
+	needed to accurately include URLs in email messages (Notifications and
+	Reminders).</dd>
+	<dt>Language</dt>
+	<dd>Specifies the default language setting for all users.</dd>
+	<dt>Fonts</dt>
+	<dd>Specifies your preferred font. Multiple font names should be
+	comma-separated.</dd>
+	<dt>Preferred View</dt>
+	<dd>Specify if users should see the day, week, month, or year
+	after loggin in.</dd>
+	<dt>Display weekends in view</dt>
+	<dd>Specifies default setting for if Saturdays and Sundays should
+	appear in the calendar when viewing a month or week</dd>
+	<dt>Date format</dt>
+	<dd>Specifies the default format for displaying dates</dd>
+	<dt>Time format</dt>
+	<dd>Specifies the default time format as either 12-hour (3:45pm)
+	or 24-hour (15:14)</dd>
+	<dt>Time interval</dt>
+	<dd>Specify the default number of minutes each time block
+	represents in the day and week display</dd>
+	<dt>Auto-referesh calendars</dt>
+	<dd>If set to "yes," the day, week, and month pages will
+	automatically reload after a specified duration</dd>
+	<dt>Auto-refresh time</dt>
+	<dd>Specifies how long to wait before the auto-refresh should
+	force a page to be reloaded</dd>
+	<dt>Display unapproved</dt>
+	<dd>Specifies whether events that have been added to a calendar
+	but not yet approved should display on the calendar (in a different
+	color)</dd>
+	<dt>Display week number</dt>
+	<dd>Specifies whether the week number should be displayed in month
+	and week views</dd>
+	<dt>Week starts on</dt>
+	<dd>Specifies if week start on Sunday or Monday</dd>
+	<dt>Work hours</dt>
+	<dd>Specifies the default time range to display in day and week
+	views</dd>
+	<dt>Disable Priority field</dt>
+	<dd>If enabled, the Priority field will not be used</dd>
+	<dt>Disable Access field</dt>
+	<dd>If enabled, the Access field will not be used</dd>
+	<dt>Disable Participants field</dt>
+	<dd>If enabled, the Participants field will not be used, and users
+	will not be able to add events to any calendar other than their own.</dd>
+	<dt>Disable Repeating field</dt>
+	<dd>If enabled, users will not be able to create repeating events</dd>
+	<dt>Allow viewing other user's calendars</dt>
+	<dd>If enabled, users will be able to view the calendar of another
+	user</dd>
+	<dt>Allow public access</dt>
+	<dd>If enabled, anonymous users will be able to view the public
+	access calendar without logging in.</dd>
+	<dt>Public access can view other users</dt>
+	<dd>If enabled, anonymous users will be able to view the calendars
+	of other users</dd>
+	<dt>Public access can add events</dt>
+	<dd>If enabled, anonymous users will be able to submit new events.</dd>
+	<dt>Public access new events require approval</dt>
+	<dd>If enabled, events submitted to the public access calendar (by
+	anonymous users) will require approval by an admin user. If not
+	enabled, then new events will appear on the public access calendar as
+	soon as they are submitted.</dd>
+	<dt>Include add event link in views</dt>
+	<dd>If enabled, Views will include a link to quickly add events to
+	the specified user's calendar.</dd>
+	<dt>Allow external users</dt>
+	<dd>If enabled, the create/edit event page will contain a text
+	area to include the names (and optional email address) of event
+	participants that are not calendar users.</dd>
+	<dt>External users can receive email notifications</dt>
+	<dd>If enabled, event participants entered into the External
+	Participants area will receive email notifications at the same time as
+	calendar users (if an email address was specified for the Exernal
+	Participant).</dd>
+	<dt>External users can receive email reminders</dt>
+	<dd>If enabled, event participants entered into the External
+	Participants area will receive email reminders at the same time as
+	calendar users (if an email address was specified for the Exernal
+	Participant).</dd>
+	<dt>Remember last login</dt>
+	<dd>If enabled, when a returning calendar user reaches the login
+	page, their login name will be pre-filled with the last login username
+	that they entered. (The password field will still be blank.)</dd>
+	<dt>Check for event conflicts</dt>
+	<dd>Specifies if the system should check for scheduling conflicts
+	when a user adds or updates an event.</dd>
+	<dt>Conflict checking months</dt>
+	<dd>If conflict checking is enabled, this specifies how many
+	months past the initial date the system will check for conflicts when a
+	user adds or updates a repeating event.</dd>
+	<dt>Allow users to override conflicts</dt>
+	<dd>If enabled, users will be warned when there is an event
+	conflict and be presented with the option of scheduling the event
+	anyhow.</dd>
+	<dt>Limit number of timed events per day</dt>
+	<dd>If enabled, users can can be limited to a specific number of
+	timed events per day</dd>
+	<dt>Maximum timed events per day</dt>
+	<dd>Specifies that maximum number of events that can be scheduled
+	in one day of any one user.</dd>
+</dl>
+<h3>Groups</h3>
+<dl>
+	<dt>Groups enabled</dt>
+	<dd>Specifies if group features should be enabled</dd>
+	<dt>User sees only his group</dt>
+	<dd>If enabled, users will be unaware of any users that are not in
+	the same group as the user.</dd>
+</dl>
+<h3>Categories</h3>
+<dl>
+	<dt>Cagtegoies enabled</dt>
+	<dd>Specifies if category features should be enabled</dd>
+</dl>
+<h3>Email</h3>
+<dl>
+	<dt>Email enabled</dt>
+	<dd>Specifies if email functionality should be enabled. If set to
+	"No," then no email messages will be sent at any time.</dd>
+	<dt>Default sender address</dt>
+	<dd>Specifies the email originator to use when the system sends
+	out email Notifications and Reminders</dd>
+	<dt>Event reminders</dt>
+	<dd>Specifies if email reminders for events that include a
+	reminder should be sent</dd>
+	<dt>Events added to my calendar</dt>
+	<dd>Specifies if the system should send email when an event is
+	added</dd>
+	<dt>Events updated on my calendar</dt>
+	<dd>Specifies if the system should send email when an event is
+	updated</dd>
+	<dt>Events removed from my calendar</dt>
+	<dd>Specifies if the system should send email when an event is
+	deleted</dd>
+	<dt>Event rejected by participant</dt>
+	<dd>Specifies if the system should send email when a participant
+	to an event rejects the event</dd>
+</dl>
+<h3>Colors</h3>
+<dl>
+	<dt>Allow user to customize colors</dt>
+	<dd>Specifies whether color settings should be available to users
+	in their Preferences</dd>
+	<dt>Document background</dt>
+	<dd>Specifies the background color of all pages</dd>
+	<dt>Document title</dt>
+	<dd>Specifies the color of page title on each page</dd>
+	<dt>Document text</dt>
+	<dd>Specifies the default text color on each page</dd>
+	<dt>Table grid color</dt>
+	<dd>Specifies color of the lines that make HTML table grids on
+	each page</dd>
+	<dt>Table header background</dt>
+	<dd>Specifies the default background for the heading of any HTML
+	table</dd>
+	<dt>Table header text</dt>
+	<dd>Specifies the default text color for the heading of any HTML
+	table</dd>
+	<dt>Table cell background</dt>
+	<dd>Specifies the background color for table cells</dd>
+	<dt>Table cell background for current day</dt>
+	<dd>Specifies the background color for the table cell containing
+	the current date</dd>
+	<dt>Table cell background for weekend</dt>
+	<dd>Specifies the background color for table cells that represent
+	a Saturday or Sunday</dd>
+	<dt>Event popup background</dt>
+	<dd>Specifies the background color of event popup areas</dd>
+	<dt>Event popup text</dt>
+	<dd>Specifies the text color of event popup areas</dd>
+</dl>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="siteextras"></a>
- <h2>Custom Event Fields</h2>
- <p>You may want to customize the event-specific fields found in
-  the <tt>includes/site_extras.php</tt> field.
-  If this is your first time using the calendar, you can skip
-  this step and come back later since this step
-  is <i>optional</i>.</p>
- <p>You can use this feature to add extra
-  fields to your calendar events.  For example, you can add a URL,
-  a contact email address, or a location.</p>
- <p>By default, this file is configured with
-  a single reminder field that allows the user to specify how long
-  before the event the reminder should be sent.</p>
- <p><span class="tip">TIP</span> See <a href="#reminders">instructions</a> on setting
-  up reminders to enable sending of reminders.</p>
- <p>When defining a new custom field, the following types listed below
-  are available. "Arg 1" and "Arg 2" have different meaning depending on the type
-  of field.  In some cases, "Arg 1" and "Arg 2" are not used.</p>
- <center>
-  <table style="width: 100%;">
-   <tr><th>
-    Type</th><th>
-    Description</th><th>
-    Arg 1</th><th>
-    Arg 2
-   </th></tr>
-   <tr><td>
-    <tt>EXTRA_TEXT</tt></td><td>
-    Allows the user to enter a single line of text</td><td>
-    Specifies the size of the text form element as it would appear in the 
-    following ("NN" would be replaced with Arg 1):<br />
-    &nbsp;&nbsp; <tt>&lt;input&nbsp;size="NN"&nbsp;...</tt></td><td>
-    N/A
-   </td></tr>
-   <tr><td>
-    <tt>EXTRA_MULTILINETEXT</tt></td><td>
-    Allows the user to enter multiple lines of text</td><td>
-    Specifies how many characters wide the textform element should be as it 
-    would appear in the following ("NN" would be replaced with Arg 1):<br />
-    &nbsp;&nbsp; <tt>&lt;textarea&nbsp;cols="NN"&nbsp;...</tt></td><td>
-    Specifies how many lines long the textform element should be as it would 
-    appear in the following ("NN" would be replaced with Arg 1):<br />
-    &nbsp;&nbsp; <tt>&lt;textarea&nbsp;rows="NN"&nbsp;...</tt>
-   </td></tr>
-   <tr><td>
-    <tt>EXTRA_URL</tt></td><td>
-    Allows the user to enter a single line of text and will be displayed as a 
-    link when viewed</td><td>
-    N/A</td><td>
-    N/A
-   </td></tr>
-   <tr><td>
-    <tt>EXTRA_DATE</tt></td><td>
-    Allows the user to select a date using the standard date selection form 
-    elements</td><td>
-    N/A</td><td>
-    N/A
-   </td></tr>
-   <tr><td>
-    <tt>EXTRA_EMAIL</tt></td><td>
-    Allows the user to enter a single line of text and will be displayed as 
-    a mailto URL link</td><td>
-    N/A</td><td>
-    N/A
-   </td></tr>
-   <tr><td>
-    <tt>EXTRA_REMINDER</tt></td><td>
-    Allows the user to specify if a reminder should be sent out for 
-    the event</td><td>
-    Specifies how many minutes before the event that the reminder 
-    should be sent. </td><td>
-    Specifies other reminder-specific options. The following options are available:
-     <ul>
-      <li><tt>$EXTRA_REMINDER_WITH_DATE</tt></li>
-      <li><tt>$EXTRA_REMINDER_WITH_OFFSET</tt></li>
-      <li><tt>$EXTRA_REMINDER_DEFAULT_YES</tt></li>
-     </ul>
-    If more than one option is needed, they should be or-ed together with 
-    the <tt>|</tt> character.
-   </td></tr>
-   <tr><td>
-    <tt>EXTRA_REMINDER_DATE</tt></td><td>
-    Allows the user to specify if a reminder should be sent out for the event 
-    and and what time it should be sent</td><td>
-    Specifies the default for how many minutes before the event that the 
-    reminder should be sent. The user can override this when they create/edit 
-    the event.</td><td>
-    Specifies other reminder-specific options. The following options are available:
-     <ul>
-      <li><tt>$EXTRA_REMINDER_WITH_DATE</tt></li>
-      <li><tt>$EXTRA_REMINDER_WITH_OFFSET</tt></li>
-      <li><tt>$EXTRA_REMINDER_DEFAULT_YES</tt></li>
-        </ul>
-    If more than one option is needed, they should be or-ed together with 
-    the <tt>|</tt> character.
-   </td></tr>
-   <tr><td>
-    <tt>EXTRA_SELECTION_LIST</tt></td><td>
-    Presents the user with a selection list (single selection) to choose from</td><td>
-    Specifies the list of available options using the PHP <tt>array</tt> 
-    function</td><td>
-    N/A
-   </td></tr>
-  </table>
- </center>
+<h2>Custom Event Fields</h2>
+<p>You may want to customize the event-specific fields found in the
+<tt>includes/site_extras.php</tt> field. If this is your first time
+using the calendar, you can skip this step and come back later since
+this step is <i>optional</i>.</p>
+<p>You can use this feature to add extra fields to your calendar
+events. For example, you can add a URL, a contact email address, or a
+location.</p>
+<p>By default, this file is configured with a single reminder field
+that allows the user to specify how long before the event the reminder
+should be sent.</p>
+<p><span class="tip">TIP</span> See <a href="#reminders">instructions</a>
+on setting up reminders to enable sending of reminders.</p>
+<p>When defining a new custom field, the following types listed
+below are available. "Arg 1" and "Arg 2" have different meaning
+depending on the type of field. In some cases, "Arg 1" and "Arg 2" are
+not used.</p>
+<center>
+<table style="width: 100%;">
+	<tr>
+		<th>Type</th>
+		<th>Description</th>
+		<th>Arg 1</th>
+		<th>Arg 2</th>
+	</tr>
+	<tr>
+		<td><tt>EXTRA_TEXT</tt></td>
+		<td>Allows the user to enter a single line of text</td>
+		<td>Specifies the size of the text form element as it would
+		appear in the following ("NN" would be replaced with Arg 1):<br />
+		&nbsp;&nbsp; <tt>&lt;input&nbsp;size="NN"&nbsp;...</tt></td>
+		<td>N/A</td>
+	</tr>
+	<tr>
+		<td><tt>EXTRA_MULTILINETEXT</tt></td>
+		<td>Allows the user to enter multiple lines of text</td>
+		<td>Specifies how many characters wide the textform element
+		should be as it would appear in the following ("NN" would be replaced
+		with Arg 1):<br />
+		&nbsp;&nbsp; <tt>&lt;textarea&nbsp;cols="NN"&nbsp;...</tt></td>
+		<td>Specifies how many lines long the textform element should be
+		as it would appear in the following ("NN" would be replaced with Arg
+		1):<br />
+		&nbsp;&nbsp; <tt>&lt;textarea&nbsp;rows="NN"&nbsp;...</tt></td>
+	</tr>
+	<tr>
+		<td><tt>EXTRA_URL</tt></td>
+		<td>Allows the user to enter a single line of text and will be
+		displayed as a link when viewed</td>
+		<td>N/A</td>
+		<td>N/A</td>
+	</tr>
+	<tr>
+		<td><tt>EXTRA_DATE</tt></td>
+		<td>Allows the user to select a date using the standard date
+		selection form elements</td>
+		<td>N/A</td>
+		<td>N/A</td>
+	</tr>
+	<tr>
+		<td><tt>EXTRA_EMAIL</tt></td>
+		<td>Allows the user to enter a single line of text and will be
+		displayed as a mailto URL link</td>
+		<td>N/A</td>
+		<td>N/A</td>
+	</tr>
+	<tr>
+		<td><tt>EXTRA_REMINDER</tt></td>
+		<td>Allows the user to specify if a reminder should be sent out
+		for the event</td>
+		<td>Specifies how many minutes before the event that the reminder
+		should be sent.</td>
+		<td>Specifies other reminder-specific options. The following
+		options are available:
+		<ul>
+			<li><tt>$EXTRA_REMINDER_WITH_DATE</tt></li>
+			<li><tt>$EXTRA_REMINDER_WITH_OFFSET</tt></li>
+			<li><tt>$EXTRA_REMINDER_DEFAULT_YES</tt></li>
+		</ul>
+		If more than one option is needed, they should be or-ed together with
+		the <tt>|</tt> character.</td>
+	</tr>
+	<tr>
+		<td><tt>EXTRA_REMINDER_DATE</tt></td>
+		<td>Allows the user to specify if a reminder should be sent out
+		for the event and and what time it should be sent</td>
+		<td>Specifies the default for how many minutes before the event
+		that the reminder should be sent. The user can override this when they
+		create/edit the event.</td>
+		<td>Specifies other reminder-specific options. The following
+		options are available:
+		<ul>
+			<li><tt>$EXTRA_REMINDER_WITH_DATE</tt></li>
+			<li><tt>$EXTRA_REMINDER_WITH_OFFSET</tt></li>
+			<li><tt>$EXTRA_REMINDER_DEFAULT_YES</tt></li>
+		</ul>
+		If more than one option is needed, they should be or-ed together with
+		the <tt>|</tt> character.</td>
+	</tr>
+	<tr>
+		<td><tt>EXTRA_SELECTION_LIST</tt></td>
+		<td>Presents the user with a selection list (single selection) to
+		choose from</td>
+		<td>Specifies the list of available options using the PHP <tt>array</tt>
+		function</td>
+		<td>N/A</td>
+	</tr>
+</table>
+</center>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="faq"></a>
- <h2>Frequently Asked Questions</h2>
- <dl>
-<!-- cek: leave these comments here... extractfaqs.pl looks for them -->
-<!-- START FAQ: Installation/Setup -->
-  <dt>How do I setup PHP, MySQL and Apache on Windows?</dt>
-   <dd>The easiest way to do this is to try one of the prepackaged bundles that will install all of these for you:
-    <ul>
-   <li><a href="http://www.foxserv.net/">FoxServ</a>&nbsp;<a href="http://www.foxserv.net" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
-   <li><a href="http://www.sokkit.net/">Sokkit</a>&nbsp;<a href="http://www.sokkit.net" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a> (formlery PHPTriad)</li>
-    </ul>
-  </dd>
- <dt>How do I setup PHP, MySQL and Apache on UNIX/Linux?</dt>
-  <dd>There are many online instructions on how to do this. Here are a few:
-    <ul>
-   <li><a href="http://www.onlamp.com/pub/a/php/2000/11/17/php_admin.html">ONLamp.com: Basic Installtion of PHP on a Unix System</a>&nbsp;<a href="http://www.onlamp.com/pub/a/php/2000/11/17/php_admin.html" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
-   <li><a href="http://www.devshed.com/Server_Side/PHP/SoothinglySeamless/">Developer Shed: The Soothingly Seamless Setup of Apache, SSL, MySQL and PHP</a>&nbsp;<a href="http://www.devshed.com/Server_Side/PHP/SoothinglySeamless/" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
-   <li><a href="http://www.linuxhelp.net/guides/lamp/">Linux Help: LAMP Guide</a>&nbsp;<a href="http://www.linuxhelp.net/guides/lamp/" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
-   <li><a href="http://www.php.net/manual/en/installation.php">PHP.net</a>&nbsp;<a href="http://www.php.net/manual/en/installation.php" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
-    </ul>
-  </dd>
- <dt>I've finished the install.  What is the login to WebCalendar?</dt>
-  <dd>After the initial creation of the database tables, there will
-    be a single user account created with the username "admin" and
-    the password set to "admin" as well.
-    <br /><span class="note">Note:</span> This account is intended to get your started.
-    You should create a new admin account and delete this one.</dd>
- <dt><a name="samplepublic">I want to use WebCalendar as an events calendar for
-    my organization.  How do I set it up to do this?</a></dt>
-  <dd>You will want to setup WebCalendar to use public access.
-    <ol>
-    <li>Setup your <tt>settings.php</tt> file as a multi-user
-      system (see <a href="#appsetup">instructions</a>).</li>
-    <li>In System Settings, set "Allow public access" to "Yes."</li>
-    <li>If you want people to be able to submit new events
-      through public access, set "Public access can add events"
-      to "Yes."</li>
-    <li>If you set "Public access can add events" to "Yes",
-      set the setting for "Public access new events
-      require approval" to your liking.  If you set this to "Yes,"
-      an admin user will need to approve any new events before
-      they will appear on the public access calendar.</li>
-    <li>Login using one of the accounts you have setup.
-       Add a new event, and select "Public User" as one of the
-       participants.</li>
-    <li>If you have enabled "Require event approvals" in your
-       System Settings, then you will need to approve the new
-       event.  Choose the "Unapproved Events" at the bottom
-       of any page (you must be an admin user to access this).
-       You will be presented with a list of unapproved events
-       (for both the current user and for the Public User account).
-       Approve the new event for the Public User.</li>
-    <li>Go to the Login page.  You will see a "Access public calendar"
-       link that will bring you to the calendar for public access.</li>
-    <li>By default, the index.php page should send users to
-       the public calendar.</li>
-    </ol>
-  </dd>
+<h2>Frequently Asked Questions</h2>
+<dl>
+	<!-- cek: leave these comments here... extractfaqs.pl looks for them -->
+	<!-- START FAQ: Installation/Setup -->
+	<dt>How do I setup PHP, MySQL and Apache on Windows?</dt>
+	<dd>The easiest way to do this is to try one of the prepackaged
+	bundles that will install all of these for you:
+	<ul>
+		<li><a href="http://www.foxserv.net/">FoxServ</a>&nbsp;<a
+			href="http://www.foxserv.net" title="Open in new window"
+			target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></li>
+		<li><a href="http://www.sokkit.net/">Sokkit</a>&nbsp;<a
+			href="http://www.sokkit.net" title="Open in new window" target="_new"><img
+			src="newwin.gif" alt="new" class="newwin" /></a> (formlery PHPTriad)</li>
+	</ul>
+	</dd>
+	<dt>How do I setup PHP, MySQL and Apache on UNIX/Linux?</dt>
+	<dd>There are many online instructions on how to do this. Here are
+	a few:
+	<ul>
+		<li><a
+			href="http://www.onlamp.com/pub/a/php/2000/11/17/php_admin.html">ONLamp.com:
+		Basic Installtion of PHP on a Unix System</a>&nbsp;<a
+			href="http://www.onlamp.com/pub/a/php/2000/11/17/php_admin.html"
+			title="Open in new window" target="_new"><img src="newwin.gif"
+			alt="new" class="newwin" /></a></li>
+		<li><a
+			href="http://www.devshed.com/Server_Side/PHP/SoothinglySeamless/">Developer
+		Shed: The Soothingly Seamless Setup of Apache, SSL, MySQL and PHP</a>&nbsp;<a
+			href="http://www.devshed.com/Server_Side/PHP/SoothinglySeamless/"
+			title="Open in new window" target="_new"><img src="newwin.gif"
+			alt="new" class="newwin" /></a></li>
+		<li><a href="http://www.linuxhelp.net/guides/lamp/">Linux
+		Help: LAMP Guide</a>&nbsp;<a href="http://www.linuxhelp.net/guides/lamp/"
+			title="Open in new window" target="_new"><img src="newwin.gif"
+			alt="new" class="newwin" /></a></li>
+		<li><a href="http://www.php.net/manual/en/installation.php">PHP.net</a>&nbsp;<a
+			href="http://www.php.net/manual/en/installation.php"
+			title="Open in new window" target="_new"><img src="newwin.gif"
+			alt="new" class="newwin" /></a></li>
+	</ul>
+	</dd>
+	<dt>I've finished the install. What is the login to WebCalendar?</dt>
+	<dd>After the initial creation of the database tables, there will
+	be a single user account created with the username "admin" and the
+	password set to "admin" as well. <br />
+	<span class="note">Note:</span> This account is intended to get your
+	started. You should create a new admin account and delete this one.</dd>
+	<dt><a name="samplepublic">I want to use WebCalendar as an
+	events calendar for my organization. How do I set it up to do this?</a></dt>
+	<dd>You will want to setup WebCalendar to use public access.
+	<ol>
+		<li>Setup your <tt>settings.php</tt> file as a multi-user system
+		(see <a href="#appsetup">instructions</a>).</li>
+		<li>In System Settings, set "Allow public access" to "Yes."</li>
+		<li>If you want people to be able to submit new events through
+		public access, set "Public access can add events" to "Yes."</li>
+		<li>If you set "Public access can add events" to "Yes", set the
+		setting for "Public access new events require approval" to your
+		liking. If you set this to "Yes," an admin user will need to approve
+		any new events before they will appear on the public access calendar.</li>
+		<li>Login using one of the accounts you have setup. Add a new
+		event, and select "Public User" as one of the participants.</li>
+		<li>If you have enabled "Require event approvals" in your System
+		Settings, then you will need to approve the new event. Choose the
+		"Unapproved Events" at the bottom of any page (you must be an admin
+		user to access this). You will be presented with a list of unapproved
+		events (for both the current user and for the Public User account).
+		Approve the new event for the Public User.</li>
+		<li>Go to the Login page. You will see a "Access public calendar"
+		link that will bring you to the calendar for public access.</li>
+		<li>By default, the index.php page should send users to the
+		public calendar.</li>
+	</ol>
+	</dd>
 
- <dt>How can I add holidays to the calendar?</dt>
- <dd>There is no built-in support for holidays because it is
- not necessary.  You can add holidays into WebCalendar by importing
- one of the many iCal holiday files that are freely available.
- A good resource for free iCal files is
- <a href="http://www.icalshare.com">iCalShare
-        <img src="newwin.gif" alt="new" class="newwin" /></a>.
- For example, the U.S. holiday ics file can be downloaded from:
- <blockquote>
- <a href="http://icalshare.com/article.php?story=20020912105939521">http://icalshare.com/article.php?story=20020912105939521
-        <img src="newwin.gif" alt="new" class="newwin" /></a>
- </blockquote>
- If you don't want each individual user to have to import
- the holiday calendar, you can use nonuser calendars.
- First, make sure nonuser calendars are enabled in your
- system settings.  Then, from Admin->Users, you can
- access nonuser calendars.  Create a new nonuser calendar
- (such as "usholidays").  Then, notify your users that they
- can add this nonuser calendar as a layer to their own
- calendar in order to see the holidays.
- </dd>
+	<dt>How can I add holidays to the calendar?</dt>
+	<dd>There is no built-in support for holidays because it is not
+	necessary. You can add holidays into WebCalendar by importing one of
+	the many iCal holiday files that are freely available. A good resource
+	for free iCal files is <a href="http://www.icalshare.com">iCalShare
+	<img src="newwin.gif" alt="new" class="newwin" /></a>. For example, the
+	U.S. holiday ics file can be downloaded from:
+	<blockquote><a
+		href="http://icalshare.com/article.php?story=20020912105939521">http://icalshare.com/article.php?story=20020912105939521
+	<img src="newwin.gif" alt="new" class="newwin" /></a></blockquote>
+	If you don't want each individual user to have to import the holiday
+	calendar, you can use nonuser calendars. First, make sure nonuser
+	calendars are enabled in your system settings. Then, from
+	Admin-&gt;Users, you can access nonuser calendars. Create a new nonuser
+	calendar (such as "usholidays"). Then, notify your users that they can
+	add this nonuser calendar as a layer to their own calendar in order to
+	see the holidays.</dd>
 
- <dt>Why are deleted events still present in the database?</dt>
-  <dd>When you delete an event from your calendar, it is not
-    deleted from the database.  Instead, it is marked as deleted.
-    This allows the system administrator access to information
-    even after it is deleted.</dd>
- <dt>Can I setup more than one public calendar?</dt>
-  <dd>You cannot directly setup two public calendars. However,
-    there are two options for emulating this type of functionality:
-    <ul>
-    <li>You can <a href="WebCalendar-UserManual.html#categories">create global categories</a> and point users to the calendar with only a certain category displayed.</li>
-    <li>You can setup multiple NonUser calendars and enable
-        public access viewing of other users' calendars.
-        You can then link directly to the calendar of one of
-        the NonUser calendars, or you can 
-        <a href="WebCalendar-UserManual.html#views">setup a view</a>
-        that contains the calendar of one or more of the NonUser calendars.</li>
-    </ul>
-    </dd>
- <dt>How do I change the title "Public Access" at the top of
- the calendar?</dt>
-  <dd>In the file <tt>translations/English-US.txt</tt>,
-  change the line that says "Public Access" to what you want
-  it to say on the right side.<br/><br/>Example: 
-  <pre>Public Access: Foobar Event Calendar</pre>
-  </dd>
- <dt>Can I embed WebCalendar as a component on another web page?</dt>
-  <dd>WebCalendar is meant to be run as a standalone web application.
-    You can customize the appearance of WebCalendar to match your existing
-    site.
-    To do this, In System Settings, set both "Custom header" and
-  "Custom trailer" to "Yes" and press the "Edit" button to enter the
-    header and trailer content.
-    <br />
-    If you are looking to just include a list of upcoming events in one
-    of your web pages, you can use the <tt>upcoming.php</tt> page in
-    WebCalendar to do this.  Edit the top of this file to configure options.
-    (These settings will likely move into System Settings in subsequent release.)
-    You can then use an <tt>iframe</tt> elsewhere on your web site as
-    in the example below:
-    <pre>&lt;iframe height="250" width="300" scrolling="yes" src="upcoming.php">&lt;/iframe></pre>
-    Include this HTML anywhere on any of your pages.
-    By default, the events from the public calendar will be loaded (so
-    you must have "Public Access" enabled in System Settings).
-    You can override this with another user's calendar.
-    (See <tt>upcoming.php</tt> for instructions on this.)
-  </dd>
- <dt>How do I add a new translation?</dt>
-  <dd>
-  It's a fairly simple process.  If you've ever translated a C-based app
-     that used GNU's gettext tool, then you'll have no problem.  The I18N
-     support was based on GNU's <a href="http://www.gnu.org/software/gettext/gettext.html">gettext</a>&nbsp;<a href="http://www.gnu.org/software/gettext/gettext.html" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>.  Here's what you need to do.
-     <ol>
-     <li>look in the "translations" directory</li>
-     <li>copy the <tt>English-US.txt</tt> file into what you'd like to call your
-       language data file.  (e.g. <tt>cp English-US.txt French.txt</tt>)</li>
-     <li>Now translate all the text to the _right_ of the ":" into the
-       new language.  Do <i>not</i> alter the text to the left of the ":".</li>
-     <li>When you're done making changes, move into the "tools" directory.
-       Run the <tt>check_translation.pl</tt> script on your new data file to make
-       sure you have all the needed translations.
-       (e.g. <tt>perl check_translation.pl French</tt>)</li>
-     <li>Add the new language to both the $languages array and the
-       $browser_languages arrays defined in <tt>includes/config.php</tt>.</li>
-     <li>Test it out... </li>
-  <li>Post a copy of your translation (along with your changes to <tt>includes/config.php</tt>) to the <a href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=303870">SourceForge Patches</a>&nbsp;<a href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=303870" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a> for WebCalendar.</li>
-     </ol>
-  </dd>
- <dt>How do I update an existing translation?</dt>
-  <dd>Just open up the translation file in the <tt>translations</tt> directory
-     with your favorite text editor (like vi, vim, emacs, pico, Notepad, etc.).
-     In particular look for places where missing translations are indicated.
-     All missing translations should be marked with a
-  "&lt;&lt;&nbsp;MISSING&nbsp;>>" note.
-  and typically the English version of the translation will also be included on the following line (as in the example below):
-    <pre># &lt;&lt; MISSING >>
+	<dt>Why are deleted events still present in the database?</dt>
+	<dd>When you delete an event from your calendar, it is not deleted
+	from the database. Instead, it is marked as deleted. This allows the
+	system administrator access to information even after it is deleted.</dd>
+	<dt>Can I setup more than one public calendar?</dt>
+	<dd>You cannot directly setup two public calendars. However, there
+	are two options for emulating this type of functionality:
+	<ul>
+		<li>You can <a href="WebCalendar-UserManual.html#categories">create
+		global categories</a> and point users to the calendar with only a certain
+		category displayed.</li>
+		<li>You can setup multiple NonUser calendars and enable public
+		access viewing of other users' calendars. You can then link directly
+		to the calendar of one of the NonUser calendars, or you can <a
+			href="WebCalendar-UserManual.html#views">setup a view</a> that
+		contains the calendar of one or more of the NonUser calendars.</li>
+	</ul>
+	</dd>
+	<dt>How do I change the title "Public Access" at the top of the
+	calendar?</dt>
+	<dd>In the file <tt>translations/English-US.txt</tt>, change the
+	line that says "Public Access" to what you want it to say on the right
+	side.<br />
+	<br />
+	Example: <pre>Public Access: Foobar Event Calendar</pre></dd>
+	<dt>Can I embed WebCalendar as a component on another web page?</dt>
+	<dd>WebCalendar is meant to be run as a standalone web
+	application. You can customize the appearance of WebCalendar to match
+	your existing site. To do this, In System Settings, set both "Custom
+	header" and "Custom trailer" to "Yes" and press the "Edit" button to
+	enter the header and trailer content. <br />
+	If you are looking to just include a list of upcoming events in one of
+	your web pages, you can use the <tt>upcoming.php</tt> page in
+	WebCalendar to do this. Edit the top of this file to configure options.
+	(These settings will likely move into System Settings in subsequent
+	release.) You can then use an <tt>iframe</tt> elsewhere on your web
+	site as in the example below: <pre>&lt;iframe height="250" width="300" scrolling="yes" src="upcoming.php"&gt;&lt;/iframe&gt;</pre>
+	Include this HTML anywhere on any of your pages. By default, the events
+	from the public calendar will be loaded (so you must have "Public
+	Access" enabled in System Settings). You can override this with another
+	user's calendar. (See <tt>upcoming.php</tt> for instructions on this.)
+	</dd>
+	<dt>How do I add a new translation?</dt>
+	<dd>It's a fairly simple process. If you've ever translated a
+	C-based app that used GNU's gettext tool, then you'll have no problem.
+	The I18N support was based on GNU's <a
+		href="http://www.gnu.org/software/gettext/gettext.html">gettext</a>&nbsp;<a
+		href="http://www.gnu.org/software/gettext/gettext.html"
+		title="Open in new window" target="_new"><img src="newwin.gif"
+		alt="new" class="newwin" /></a>. Here's what you need to do.
+	<ol>
+		<li>look in the "translations" directory</li>
+		<li>copy the <tt>English-US.txt</tt> file into what you'd like to
+		call your language data file. (e.g. <tt>cp English-US.txt
+		French.txt</tt>)</li>
+		<li>Now translate all the text to the _right_ of the ":" into the
+		new language. Do <i>not</i> alter the text to the left of the ":".</li>
+		<li>When you're done making changes, move into the "tools"
+		directory. Run the <tt>check_translation.pl</tt> script on your new
+		data file to make sure you have all the needed translations. (e.g. <tt>perl
+		check_translation.pl French</tt>)</li>
+		<li>Add the new language to both the $languages array and the
+		$browser_languages arrays defined in <tt>includes/config.php</tt>.</li>
+		<li>Test it out...</li>
+		<li>Post a copy of your translation (along with your changes to <tt>includes/config.php</tt>)
+		to the <a
+			href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=303870">SourceForge
+		Patches</a>&nbsp;<a
+			href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=303870"
+			title="Open in new window" target="_new"><img src="newwin.gif"
+			alt="new" class="newwin" /></a> for WebCalendar.</li>
+	</ol>
+	</dd>
+	<dt>How do I update an existing translation?</dt>
+	<dd>Just open up the translation file in the <tt>translations</tt>
+	directory with your favorite text editor (like vi, vim, emacs, pico,
+	Notepad, etc.). In particular look for places where missing
+	translations are indicated. All missing translations should be marked
+	with a "&lt;&lt;&nbsp;MISSING&nbsp;&gt;&gt;" note. and typically the
+	English version of the translation will also be included on the
+	following line (as in the example below): <pre># &lt;&lt; MISSING &gt;&gt;
 # Edit:
 #</pre><br />
-  For some text, an abberviation may be used rather than the English text.
-  In those cases, the full text will be noted as in the following example:
-  <pre># &lt;&lt; MISSING >>
+	For some text, an abberviation may be used rather than the English
+	text. In those cases, the full text will be noted as in the following
+	example: <pre># &lt;&lt; MISSING &gt;&gt;
 # custom-script-help:
 # English text: Allows entry of custom Javascript or stylesheet text that
 # will be inserted into the HTML "head" section of every page.
 #</pre><br />
-     When you're done making changes, move into the <tt>tools</tt> directory.
-       Run the <tt>check_translation.pl</tt> script on your new data file to make
-       sure you have all the needed translations:
-  <pre><tt>perl check_translation.pl French</tt></pre>
-     Post a copy of your translation to the 
-  <a href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=303870">SourceForge Patches</a>&nbsp;<a href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=303870" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a> for WebCalendar.</dd>
+	When you're done making changes, move into the <tt>tools</tt>
+	directory. Run the <tt>check_translation.pl</tt> script on your new
+	data file to make sure you have all the needed translations: <pre><tt>perl check_translation.pl French</tt></pre>
+	Post a copy of your translation to the <a
+		href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=303870">SourceForge
+	Patches</a>&nbsp;<a
+		href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=303870"
+		title="Open in new window" target="_new"><img src="newwin.gif"
+		alt="new" class="newwin" /></a> for WebCalendar.</dd>
 
-<!-- END FAQ -->
- </dl>
+	<!-- END FAQ -->
+</dl>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="trouble"></a>
- <h2>Troubleshooting</h2>
-    <dl>
-<!-- cek: leave these comments here... extractfaqs.pl looks for them -->
-<!-- START FAQ: Troubleshooting -->
- <dt>I get error messages about undefined variables when I try to view any page.</dt>
-  <dd>On newer versions of PHP, the default setting of PHP is to display
-    messages when an undefined variable is referenced.  To prevent
-    these messages from being displayed, change the setting of <tt>error_reporting</tt>
-    in your <tt>php.ini</tt> file to be:
-    <pre>error_reporting = E_ALL &amp; ~E_NOTICE</pre>
-    Alternately, you can disable any error messages from being displayed
-    in the browser and have them logged to a file.  (See the comments
-    included in the <tt>php.ini</tt> file for instructions on how to do this.)</dd>
- <dt>I get errors when trying to add an event that contains a single quotation.</dt>
-  <dd>WebCalendar is designed to work with PHP's
-  <tt>magic_quotes_gpc</tt> feature (configured in <tt>php.ini</tt>).
-  If you do not have this enabled (<tt>On</tt> in <tt>php.ini</tt>),
-  you may get errors when adding events.
-  In WebCalendar version 0.9.43 or later, you will always get an error
-  message telling you to update <tt>php.ini</tt> if <tt>magic_quotes_gpc</tt>
-  is set to <tt>Off</tt>.
-  <br/><br/>
-  <span class="tip">TIP</span> If you are using Apache
-  as your web server and if you cannot or do not want to enable
-  <tt>magic_quotes_gpc</tt> for your entire site, you can enable
-  it just for WebCalendar.
-  Create a <tt>.htaccess</tt> file in the toplevel WebCalendar
-  directory that contains a single line:
-  <pre>php_value magic_quotes_gpc 1</pre>
-  <p>(For this to work with Apache, you must have the Apache
-  <tt>AllowOverride All</tt> directive enabled for the directory
-  where WebCalendar is installed.
-  Additionally, PHP must be running as an Apache module, not
-  a CGI.)</p>
-  <br />
-  <span class="note">Note for Oracle and PostgreSQL:</span> You must also change the value of
-  <tt>magic_quotes_sybase</tt> to <tt>On</tt> within the <tt>php.ini</tt>
-  settings.</dd>
- <dt>I get an error message from PHP saying "Call to undefined function: ..."</dt>
-  <dd>This tells you that your version of PHP is missing something that
-    WebCalendar needs.  If the function mentioned is a database login
-  function (<em>ociplogin</em>, <em>mysql_pconnect</em>, <em>ibase_connect</em>, <em>pg_pconnect</em>), 
-  then you probably do not have the needed database support for your database 
-  compiled into PHP.
-    If the function is not a database connect call, then check the
-    <a href="http://www.php.net/manual/en/">PHP manual</a>&nbsp;<a href="http://www.php.net/manual/en/" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a> 
-    to see if the function requires a specific version of PHP.  You
-    may have an out-dated version of PHP that requires upgrading.</dd>
- <dt>When I try and view certain pages, nothing happens for 30 seconds, then I get a time-out error.</dt>
-  <dd>On slower or very busy servers, it can take some time for the server
-    to get all the events.  Most PHP installations have a built-in timeout
-    out of 30 seconds and will interrupt any request that takes longer than
-    that.  This is most likely to happen on the year-long custom report or
-    on the month view when layers are being used.  If you have access,
-    you can increase the time-out value for PHP in the <tt>php.ini</tt>
-    file by changing the setting of the <tt>max_execution_time</tt> setting.</dd>
- <dt>I get an error message that says "Can't connect to local MySQL server through socket '/tmp/mysql.sock'."</dt>
-  <dd>This is a PHP/MySQL configuration issue. The value of <tt>mysql.default_socket</tt>
-  in your <tt>php.ini</tt> file must match the value of <tt>socket</tt> in your 
-  <tt>my.cnf</tt> file. Edit the <tt>php.ini</tt> file to fix this problem.</dd>
- <dt>I am not receiving any email messages from WebCalendar.</dt>
-  <dd>WebCalendar sends two types of email messages:
-    Notifications<a href="#g_notification">*</a> and Reminders<a href="#g_reminder">*</a>. 
-  Check the following if you are not receiving any email:
-    <ol>
-   <li>You have defined a valid SMTP server in your PHP configuration file 
-    <tt>php.ini</tt>.  (The setting is "SMTP" in the "mail_function" section.)</li>
-   <li>In WebCalendar's System Settings, you have set the "Email Enabled" setting to "Yes".</li>
-   <li>In WebCalendar's System Settings, make sure you have the "Default sender address" 
-   to something.
-   <br /><span class="note">Note:</span>
-          Some mail system will reject mail that has a "From" address
-          that is a different domain from the originating SMTP server.
-          So, if your SMTP server is smtp.mydomain.com and your "Default sender address" 
-   is calendar at someotherdomain.com, some mail systems may bounce the mail back.</li>
-       <li>For a Notification, make sure you have the type of Notification
-           set to "Yes" in the user's Preferences.</li>
-       <li>For a Reminder:
-    <ul>
-            <li>Make sure you have "Event reminders" set to "Yes" in the user's Preferences.</li>
-     <li>Make sure you have <a href="#reminders">setup a cron job</a> to periodically 
-      run the <tt>send_reminders.php</tt> script.</li>
-    </ul>
-   </li>
-    </ol>
-  </dd>
- <dt>Some of the pages are displaying text in English rather than &lt;insert your language here></dt>
-  <dd>The translations have been submitted at various points of WebCalendar development. 
-   Some have not been updated to include newer features.</dd>
- <dt>The text that I entered in the <a href="#siteextras">Custom Event Fields</a> is not being translated 
-  to different languages.</dt>
-  <dd>You will need to add an entry in each of the translation files for any text you add 
-   into the Custom Event Fields.</dd>
- <dt>How do I get the most recent version of WebCalendar?</dt>
-  <dd>You can download the latest public release from SourceForge's
-  <a href="http://sourceforge.net/project/showfiles.php?group_id=3870">file list for WebCalendar</a>&nbsp;<a href="http://sourceforge.net/project/showfiles.php?group_id=3870" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>.
-    <br />
-    You can download the latest development code from the CVS server using
-  the <a href="http://sourceforge.net/cvs/?group_id=3870">instructions provided by SourceForge</a>&nbsp;<a href="http://sourceforge.net/cvs/?group_id=3870" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>.  (You will need a CVS client to do this.)</dd>
- <dt>How do I install a patch file listed on SourceForge's
-    <a href="http://sourceforge.net/tracker?group_id=3870&amp;atid=303870">list of WebCalendar patches</a>&nbsp;<a href="http://sourceforge.net/tracker?group_id=3870&amp;atid=303870" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>?</dt>
-  <dd>Most patches are distributed as context diffs.  That means they were produced using the UNIX <tt>diff</tt> command with the <tt>-C</tt> option.  The patches are intended to be used with the <a href="http://www.fsf.org/software/patch/patch.html">GNU patch</a>&nbsp;<a href="http://www.fsf.org/software/patch/patch.html" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a> program. This program is standard on most Linux systems and can be obtained as part of the <a href="http://www.cygwin.com">Cygwin</a>&nbsp;<a href="http://www.cygwin.com" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a> package for Windows. Mac OS X will have the patch program installed if they install the developer tools CD.</dd>
- <dt>I forgot/lost my admin password.  How can I reset it?</dt>
-  <dd>The easiest way is to admin a new admin user and then use that
-    new user to reset the password for your old admin account.
-    Assuming you have deleted the original 'admin' login, you can use
-    the following SQL to insert a new admin user into the database:
-    <pre>INSERT INTO webcal_user ( cal_login, cal_passwd, cal_lastname,
+<h2>Troubleshooting</h2>
+<dl>
+	<!-- cek: leave these comments here... extractfaqs.pl looks for them -->
+	<!-- START FAQ: Troubleshooting -->
+	<dt>I get error messages about undefined variables when I try to
+	view any page.</dt>
+	<dd>On newer versions of PHP, the default setting of PHP is to
+	display messages when an undefined variable is referenced. To prevent
+	these messages from being displayed, change the setting of <tt>error_reporting</tt>
+	in your <tt>php.ini</tt> file to be: <pre>error_reporting = E_ALL &amp; ~E_NOTICE</pre>
+	Alternately, you can disable any error messages from being displayed in
+	the browser and have them logged to a file. (See the comments included
+	in the <tt>php.ini</tt> file for instructions on how to do this.)</dd>
+	<dt>I get errors when trying to add an event that contains a
+	single quotation.</dt>
+	<dd>WebCalendar is designed to work with PHP's <tt>magic_quotes_gpc</tt>
+	feature (configured in <tt>php.ini</tt>). If you do not have this
+	enabled (<tt>On</tt> in <tt>php.ini</tt>), you may get errors when
+	adding events. In WebCalendar version 0.9.43 or later, you will always
+	get an error message telling you to update <tt>php.ini</tt> if <tt>magic_quotes_gpc</tt>
+	is set to <tt>Off</tt>. <br />
+	<br />
+	<span class="tip">TIP</span> If you are using Apache as your web server
+	and if you cannot or do not want to enable <tt>magic_quotes_gpc</tt>
+	for your entire site, you can enable it just for WebCalendar. Create a
+	<tt>.htaccess</tt> file in the toplevel WebCalendar directory that
+	contains a single line: <pre>php_value magic_quotes_gpc 1</pre>
+	<p>(For this to work with Apache, you must have the Apache <tt>AllowOverride
+	All</tt> directive enabled for the directory where WebCalendar is installed.
+	Additionally, PHP must be running as an Apache module, not a CGI.)</p>
+	<br />
+	<span class="note">Note for Oracle and PostgreSQL:</span> You must also
+	change the value of <tt>magic_quotes_sybase</tt> to <tt>On</tt> within
+	the <tt>php.ini</tt> settings.</dd>
+	<dt>I get an error message from PHP saying "Call to undefined
+	function: ..."</dt>
+	<dd>This tells you that your version of PHP is missing something
+	that WebCalendar needs. If the function mentioned is a database login
+	function (<em>ociplogin</em>, <em>mysql_pconnect</em>, <em>ibase_connect</em>,
+	<em>pg_pconnect</em>), then you probably do not have the needed
+	database support for your database compiled into PHP. If the function
+	is not a database connect call, then check the <a
+		href="http://www.php.net/manual/en/">PHP manual</a>&nbsp;<a
+		href="http://www.php.net/manual/en/" title="Open in new window"
+		target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>
+	to see if the function requires a specific version of PHP. You may have
+	an out-dated version of PHP that requires upgrading.</dd>
+	<dt>When I try and view certain pages, nothing happens for 30
+	seconds, then I get a time-out error.</dt>
+	<dd>On slower or very busy servers, it can take some time for the
+	server to get all the events. Most PHP installations have a built-in
+	timeout out of 30 seconds and will interrupt any request that takes
+	longer than that. This is most likely to happen on the year-long custom
+	report or on the month view when layers are being used. If you have
+	access, you can increase the time-out value for PHP in the <tt>php.ini</tt>
+	file by changing the setting of the <tt>max_execution_time</tt>
+	setting.</dd>
+	<dt>I get an error message that says "Can't connect to local MySQL
+	server through socket '/tmp/mysql.sock'."</dt>
+	<dd>This is a PHP/MySQL configuration issue. The value of <tt>mysql.default_socket</tt>
+	in your <tt>php.ini</tt> file must match the value of <tt>socket</tt>
+	in your <tt>my.cnf</tt> file. Edit the <tt>php.ini</tt> file to fix
+	this problem.</dd>
+	<dt>I am not receiving any email messages from WebCalendar.</dt>
+	<dd>WebCalendar sends two types of email messages: Notifications<a
+		href="#g_notification">*</a> and Reminders<a href="#g_reminder">*</a>.
+	Check the following if you are not receiving any email:
+	<ol>
+		<li>You have defined a valid SMTP server in your PHP
+		configuration file <tt>php.ini</tt>. (The setting is "SMTP" in the
+		"mail_function" section.)</li>
+		<li>In WebCalendar's System Settings, you have set the "Email
+		Enabled" setting to "Yes".</li>
+		<li>In WebCalendar's System Settings, make sure you have the
+		"Default sender address" to something. <br />
+		<span class="note">Note:</span> Some mail system will reject mail that
+		has a "From" address that is a different domain from the originating
+		SMTP server. So, if your SMTP server is smtp.mydomain.com and your
+		"Default sender address" is calendar at someotherdomain.com, some mail
+		systems may bounce the mail back.</li>
+		<li>For a Notification, make sure you have the type of
+		Notification set to "Yes" in the user's Preferences.</li>
+		<li>For a Reminder:
+		<ul>
+			<li>Make sure you have "Event reminders" set to "Yes" in the
+			user's Preferences.</li>
+			<li>Make sure you have <a href="#reminders">setup a cron job</a>
+			to periodically run the <tt>send_reminders.php</tt> script.</li>
+		</ul>
+		</li>
+	</ol>
+	</dd>
+	<dt>Some of the pages are displaying text in English rather than
+	&lt;insert your language here&gt;</dt>
+	<dd>The translations have been submitted at various points of
+	WebCalendar development. Some have not been updated to include newer
+	features.</dd>
+	<dt>The text that I entered in the <a href="#siteextras">Custom
+	Event Fields</a> is not being translated to different languages.</dt>
+	<dd>You will need to add an entry in each of the translation files
+	for any text you add into the Custom Event Fields.</dd>
+	<dt>How do I get the most recent version of WebCalendar?</dt>
+	<dd>You can download the latest public release from SourceForge's
+	<a href="http://sourceforge.net/project/showfiles.php?group_id=3870">file
+	list for WebCalendar</a>&nbsp;<a
+		href="http://sourceforge.net/project/showfiles.php?group_id=3870"
+		title="Open in new window" target="_new"><img src="newwin.gif"
+		alt="new" class="newwin" /></a>. <br />
+	You can download the latest development code from the CVS server using
+	the <a href="http://sourceforge.net/cvs/?group_id=3870">instructions
+	provided by SourceForge</a>&nbsp;<a
+		href="http://sourceforge.net/cvs/?group_id=3870"
+		title="Open in new window" target="_new"><img src="newwin.gif"
+		alt="new" class="newwin" /></a>. (You will need a CVS client to do this.)</dd>
+	<dt>How do I install a patch file listed on SourceForge's <a
+		href="http://sourceforge.net/tracker?group_id=3870&amp;atid=303870">list
+	of WebCalendar patches</a>&nbsp;<a
+		href="http://sourceforge.net/tracker?group_id=3870&amp;atid=303870"
+		title="Open in new window" target="_new"><img src="newwin.gif"
+		alt="new" class="newwin" /></a>?</dt>
+	<dd>Most patches are distributed as context diffs. That means they
+	were produced using the UNIX <tt>diff</tt> command with the <tt>-C</tt>
+	option. The patches are intended to be used with the <a
+		href="http://www.fsf.org/software/patch/patch.html">GNU patch</a>&nbsp;<a
+		href="http://www.fsf.org/software/patch/patch.html"
+		title="Open in new window" target="_new"><img src="newwin.gif"
+		alt="new" class="newwin" /></a> program. This program is standard on most
+	Linux systems and can be obtained as part of the <a
+		href="http://www.cygwin.com">Cygwin</a>&nbsp;<a
+		href="http://www.cygwin.com" title="Open in new window" target="_new"><img
+		src="newwin.gif" alt="new" class="newwin" /></a> package for Windows. Mac
+	OS X will have the patch program installed if they install the
+	developer tools CD.</dd>
+	<dt>I forgot/lost my admin password. How can I reset it?</dt>
+	<dd>The easiest way is to admin a new admin user and then use that
+	new user to reset the password for your old admin account. Assuming you
+	have deleted the original 'admin' login, you can use the following SQL
+	to insert a new admin user into the database: <pre>INSERT INTO webcal_user ( cal_login, cal_passwd, cal_lastname,
 cal_firstname, cal_is_admin ) VALUES
 ( 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator',
-'Default', 'Y' );</pre>
-    This will add a user with login 'admin' and password 'admin' to the database.
-    If you still have a user named 'admin', then replace 'admin' in the above
-    SQL with a different username.
-  </dd>
- <dt>I get a database error indicating table <tt>webcal_config</tt> does not exist.</dt>
-  <dd>This is the first table that WebCalendar tries to access, so it 
-   typically means one of the following:
-   <ul>
-    <li>You have not created the database tables as described in the instructions</li>
-    <li>You have the wrong database name specified in your 
-    <tt>includes/settings.php</tt> file</li>
-   </ul>
-  </dd>
-<!-- END FAQ -->
+'Default', 'Y' );</pre> This will add a user with login 'admin' and password
+	'admin' to the database. If you still have a user named 'admin', then
+	replace 'admin' in the above SQL with a different username.</dd>
+	<dt>I get a database error indicating table <tt>webcal_config</tt>
+	does not exist.</dt>
+	<dd>This is the first table that WebCalendar tries to access, so
+	it typically means one of the following:
+	<ul>
+		<li>You have not created the database tables as described in the
+		instructions</li>
+		<li>You have the wrong database name specified in your <tt>includes/settings.php</tt>
+		file</li>
+	</ul>
+	</dd>
+	<!-- END FAQ -->
 </dl>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="help"></a>
- <h2>Getting Help</h2>
- <p>Try the Help/Troubleshooting forum for WebCalendar, hosted at SourceForge.net:</p>
- <pre><a href="https://sourceforge.net/forum/forum.php?forum_id=11588">https://sourceforge.net/forum/forum.php?forum_id=11588</a>&nbsp;<a href="http://sourceforge.net/forum/forum.php?forum_id=11588" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a></pre>
- <p>If you encounter a bug, please check the 
-  <a href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=103870">list of open and pending bugs</a>&nbsp;<a href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=103870" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>.
-  If you do <strong>not</strong> see anything similar, submit a new bug.
- </p>
+<h2>Getting Help</h2>
+<p>Try the Help/Troubleshooting forum for WebCalendar, hosted at
+SourceForge.net:</p>
+<pre><a
+	href="https://sourceforge.net/forum/forum.php?forum_id=11588">https://sourceforge.net/forum/forum.php?forum_id=11588</a>&nbsp;<a
+	href="http://sourceforge.net/forum/forum.php?forum_id=11588"
+	title="Open in new window" target="_new"><img src="newwin.gif"
+	alt="new" class="newwin" /></a></pre>
+<p>If you encounter a bug, please check the <a
+	href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=103870">list
+of open and pending bugs</a>&nbsp;<a
+	href="http://sourceforge.net/tracker/?group_id=3870&amp;atid=103870"
+	title="Open in new window" target="_new"><img src="newwin.gif"
+	alt="new" class="newwin" /></a>. If you do <strong>not</strong> see
+anything similar, submit a new bug.</p>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="license"></a>
- <h2>Licensing</h2>
- <p>WebCalendar is distributed under the open source
-  <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>&nbsp;<a href="http://www.gnu.org/licenses/gpl.html" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>.
-  If you have questions about this license, please
-  read their <a href="http://www.gnu.org/licenses/gpl-faq.html">GPL FAQ</a>&nbsp;<a href="http://www.gnu.org/licenses/gpl-faq.html" title="Open in new window" target="_new"><img src="newwin.gif" alt="new" class="newwin" /></a>.
- </p>
+<h2>Licensing</h2>
+<p>WebCalendar is distributed under the open source <a
+	href="http://www.gnu.org/licenses/gpl.html">GNU General Public
+License</a>&nbsp;<a href="http://www.gnu.org/licenses/gpl.html"
+	title="Open in new window" target="_new"><img src="newwin.gif"
+	alt="new" class="newwin" /></a>. If you have questions about this license,
+please read their <a href="http://www.gnu.org/licenses/gpl-faq.html">GPL
+FAQ</a>&nbsp;<a href="http://www.gnu.org/licenses/gpl-faq.html"
+	title="Open in new window" target="_new"><img src="newwin.gif"
+	alt="new" class="newwin" /></a>.</p>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="glossary"></a>
- <h2>Glossary</h2>
- <dl>
-  <dt><a name="g_activitylog">Activity Log</a></dt>
-   <dd>A summary of recent updates to calendar data</dd>
-  <dt><a name="g_assistant">Assistant</a></dt>
-   <dd>A calendar user that has been designated by another calendar user
-    (the Boss) to help manage their calendar</dd>
-  <dt><a name="g_boss">Boss</a></dt>
-   <dd>A calendar user that has designated another calendar user
-    (the Assistant) to help manage his calendar</dd>
-  <dt><a name="g_externaluser">External User</a></dt>
-   <dd>A calendar participant that does not have a calendar user account</dd>
-  <dt><a name="g_group">Group</a></dt>
-   <dd>A mechanism of dividing up a large set of users into smaller sets of users</dd>
-  <dt><a name="g_layer">Layer</a></dt>
-   <dd>A function that allows a user to overlay another user's calendar
-    on top of his own calendar so that the standard day, week and month
-    pages show both his own and the layered user's events</dd>
-  <dt><a name="g_ldap">LDAP</a></dt>
-   <dd>LDAP (Lighweight Directory Access Protocol) is an Internet protocol 
-    used to maintain user directories</dd>
-  <dt><a name="g_mulituser">Multi-User Mode</a></dt>
-   <dd>When WebCalendar is configued in Multi-User Mode,
-    there can be multiple user accounts, each with his
-    own calendar.  Unless Public Access is enalbed, all users 
-    will be required to login before they can access the system.</dd>
-  <dt><a name="g_nis">NIS</a></dt>
-   <dd>NIS (Network Information Service) is a UNIX-based user authentication 
-    system for managing user directories in a network</dd>
-  <dt><a name="g_nonuser">NonUser Calendar</a></dt>
-   <dd>A participant to a calendar event that is not a calendar user.  This is typically used either as a resource (conference room,
-  laptop computer) that needs to be shared or as a shared calendar
-  that other users overlay onto their own calendar using layers (company-wide calendar,
-  holiday calendar, etc.)</dd>
-  <dt><a name="g_notification">Notification</a></dt>
-   <dd>An email message that is sent when an event is added, removed
-    or updated in the user's calendar by another user</dd>
-  <dt><a name="g_preferredview">Preferred View</a></dt>
-   <dd>The standard page (day, week, month or year) that will
-    be presented to the user after logging in
-    (set in user <a href="#pref">Preferences</a>)</dd>
-  <dt><a name="g_preferredview">Public Access</a></dt>
-   <dd>A <a href="#systemsettings">System Setting</a> that will allow anonymous users
-    to access the calendar.
-    See the <a href="#samplepublic">simple instructions</a> for
-    setting this up in the <a href="#faq">FAQ section</a>.
-    (Requires WebCalendar to be configued in Multi-User Mode).</dd>
-  <dt><a name="g_reminder">Reminder</a></dt>
-   <dd>An email message that is sent before an event to remind
-    the participant</dd>
-  <dt><a name="g_singleuser">Single-User Mode</a></dt>
-   <dd>When WebCalendar is configued in Single-User Mode,
-    there is no concept of users.  You will be managing a single
-    calendar and no login will be required.
-    Anyone accessing this calendar will have full privileges to
-    view, add, edit and delete all events.</dd>
-  <dt><a name="g_timeinterval">Time Interval</a></dt>
-   <dd>The amount of time each "block" will represent in
-    either the day or week view
-    (set in user <a href="#pref">Preferences</a>)</dd>
-  <dt><a name="g_view">View</a></dt>
-   <dd>A customized page that presents the events of selected users</dd>
-  <dt><a name="g_workhours">Work Hours</a></dt>
-   <dd>The default hours to show in the week and day view where
-    events are displayed in blocks of time (set in
-    user <a href="#pref">Preferences</a>)</dd>
- </dl>
+<h2>Glossary</h2>
+<dl>
+	<dt><a name="g_activitylog">Activity Log</a></dt>
+	<dd>A summary of recent updates to calendar data</dd>
+	<dt><a name="g_assistant">Assistant</a></dt>
+	<dd>A calendar user that has been designated by another calendar
+	user (the Boss) to help manage their calendar</dd>
+	<dt><a name="g_boss">Boss</a></dt>
+	<dd>A calendar user that has designated another calendar user (the
+	Assistant) to help manage his calendar</dd>
+	<dt><a name="g_externaluser">External User</a></dt>
+	<dd>A calendar participant that does not have a calendar user
+	account</dd>
+	<dt><a name="g_group">Group</a></dt>
+	<dd>A mechanism of dividing up a large set of users into smaller
+	sets of users</dd>
+	<dt><a name="g_layer">Layer</a></dt>
+	<dd>A function that allows a user to overlay another user's
+	calendar on top of his own calendar so that the standard day, week and
+	month pages show both his own and the layered user's events</dd>
+	<dt><a name="g_ldap">LDAP</a></dt>
+	<dd>LDAP (Lighweight Directory Access Protocol) is an Internet
+	protocol used to maintain user directories</dd>
+	<dt><a name="g_mulituser">Multi-User Mode</a></dt>
+	<dd>When WebCalendar is configued in Multi-User Mode, there can be
+	multiple user accounts, each with his own calendar. Unless Public
+	Access is enalbed, all users will be required to login before they can
+	access the system.</dd>
+	<dt><a name="g_nis">NIS</a></dt>
+	<dd>NIS (Network Information Service) is a UNIX-based user
+	authentication system for managing user directories in a network</dd>
+	<dt><a name="g_nonuser">NonUser Calendar</a></dt>
+	<dd>A participant to a calendar event that is not a calendar user.
+	This is typically used either as a resource (conference room, laptop
+	computer) that needs to be shared or as a shared calendar that other
+	users overlay onto their own calendar using layers (company-wide
+	calendar, holiday calendar, etc.)</dd>
+	<dt><a name="g_notification">Notification</a></dt>
+	<dd>An email message that is sent when an event is added, removed
+	or updated in the user's calendar by another user</dd>
+	<dt><a name="g_preferredview">Preferred View</a></dt>
+	<dd>The standard page (day, week, month or year) that will be
+	presented to the user after logging in (set in user <a href="#pref">Preferences</a>)</dd>
+	<dt><a name="g_preferredview">Public Access</a></dt>
+	<dd>A <a href="#systemsettings">System Setting</a> that will allow
+	anonymous users to access the calendar. See the <a href="#samplepublic">simple
+	instructions</a> for setting this up in the <a href="#faq">FAQ section</a>.
+	(Requires WebCalendar to be configued in Multi-User Mode).</dd>
+	<dt><a name="g_reminder">Reminder</a></dt>
+	<dd>An email message that is sent before an event to remind the
+	participant</dd>
+	<dt><a name="g_singleuser">Single-User Mode</a></dt>
+	<dd>When WebCalendar is configued in Single-User Mode, there is no
+	concept of users. You will be managing a single calendar and no login
+	will be required. Anyone accessing this calendar will have full
+	privileges to view, add, edit and delete all events.</dd>
+	<dt><a name="g_timeinterval">Time Interval</a></dt>
+	<dd>The amount of time each "block" will represent in either the
+	day or week view (set in user <a href="#pref">Preferences</a>)</dd>
+	<dt><a name="g_view">View</a></dt>
+	<dd>A customized page that presents the events of selected users</dd>
+	<dt><a name="g_workhours">Work Hours</a></dt>
+	<dd>The default hours to show in the week and day view where
+	events are displayed in blocks of time (set in user <a href="#pref">Preferences</a>)</dd>
+</dl>
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
 
 <a name="appendixA"></a>
- <h2>Appendix A: Using phpMyAdmin</h2>
-<p>
-If you have <a href="http://www.phpmyadmin.net">phpMyAdmin</a>
+<h2>Appendix A: Using phpMyAdmin</h2>
+<p>If you have <a href="http://www.phpmyadmin.net">phpMyAdmin</a>
 installed and configured to manage your MySQL database, use the
-following steps to setup WebCalendar.
-(The following information is based on phpMyAdmin version 2.6.1.)
-</p>
+following steps to setup WebCalendar. (The following information is
+based on phpMyAdmin version 2.6.1.)</p>
 <ol>
-<li>On the initial phpMyAdmin page, under the "MySQL" heading, the first
-  option should be "Create new database."  Enter the name you have
-  chosen for the database and press the "Create" button.
-  (The default database name used by WebCalendar is "intranet".)
-  After pressing the "Create" button, it should say:
-  "Database &lt;your database name here&gt; has been created." </li>
-<li>Click on the home icon (the small house) in the left-side
-   navigation.  This will bring you back to your phpMyAdmin home page.</li>
-<li>(Optional) Create new MySQL user.  If you already have
-    a MySQL login that you would like to use, you can skip this step.</li>
-<li><ul>
-  <li>Click on the "Privileges" link under the "MySQL" heading.</li>
-  <li>Below any existing users listed, click on the link "Add a new User."</li>
-  <li>Fill in the details of your new database user.
-      The default username for WebCalendar is "webcalendar"
-      with a password of "webcal01".
-      Leave the "Host" field set to "Any host".</li>
-  <li>From the list of "Global privileges", be sure to select:
-      SELECT, INSERT, UPDATE, DELETE, FILE, CREATE, ALTER, INDEX, DROP </li>
-  <li>Click on the "Go" button.</li>
-  <li>You should see a page that says "You have added a new user."</li>
-</ul></li>
-<li>Click on the "Databases" tab at the top of the page.</li>
-<li>From the list of databases on the page, click on the name
-    of the database that you created.</li>
-<li>Click on the "SQL" tab at the top of the page.</li>
-<li>At the bottom of the page, there is an area to upload a SQL file.
-    Click on the "Browse" button and select the <tt>tables-mysql.sql</tt>
-    file in the WebCalendar toplevel directory.
-    Then, press the "Go" button.</li>
-<li>The top of the page should say "Your SQL-query has been executed
-    successfully."</li>
-<li>You have now finished creating the WebCalendar database tables.</li>
+	<li>On the initial phpMyAdmin page, under the "MySQL" heading, the
+	first option should be "Create new database." Enter the name you have
+	chosen for the database and press the "Create" button. (The default
+	database name used by WebCalendar is "intranet".) After pressing the
+	"Create" button, it should say: "Database &lt;your database name
+	here&gt; has been created."</li>
+	<li>Click on the home icon (the small house) in the left-side
+	navigation. This will bring you back to your phpMyAdmin home page.</li>
+	<li>(Optional) Create new MySQL user. If you already have a MySQL
+	login that you would like to use, you can skip this step.</li>
+	<li>
+	<ul>
+		<li>Click on the "Privileges" link under the "MySQL" heading.</li>
+		<li>Below any existing users listed, click on the link "Add a new
+		User."</li>
+		<li>Fill in the details of your new database user. The default
+		username for WebCalendar is "webcalendar" with a password of
+		"webcal01". Leave the "Host" field set to "Any host".</li>
+		<li>From the list of "Global privileges", be sure to select:
+		SELECT, INSERT, UPDATE, DELETE, FILE, CREATE, ALTER, INDEX, DROP</li>
+		<li>Click on the "Go" button.</li>
+		<li>You should see a page that says "You have added a new user."</li>
+	</ul>
+	</li>
+	<li>Click on the "Databases" tab at the top of the page.</li>
+	<li>From the list of databases on the page, click on the name of
+	the database that you created.</li>
+	<li>Click on the "SQL" tab at the top of the page.</li>
+	<li>At the bottom of the page, there is an area to upload a SQL
+	file. Click on the "Browse" button and select the <tt>tables-mysql.sql</tt>
+	file in the WebCalendar toplevel directory. Then, press the "Go"
+	button.</li>
+	<li>The top of the page should say "Your SQL-query has been
+	executed successfully."</li>
+	<li>You have now finished creating the WebCalendar database
+	tables.</li>
 
 </ol>
 
@@ -1281,115 +1419,95 @@
 <h2>Appendix B: Setting Up Reminders on Windows</h2>
 
 <p>You have two options to choose from when setting up email
-   reminders on a Windows platform.
-   You can either install a cron package for Windows,
-   or you can use the Windows Task Scheduler.
-</p>
+reminders on a Windows platform. You can either install a cron package
+for Windows, or you can use the Windows Task Scheduler.</p>
 
 <h3>Installing a Cron Package</h3>
-<p>
-If you install a cron package for Windows, you will need to setup
-to setup a cron job.
-(UNIX cron is a tool for used to run tasks as specified times anywhere
-from every minute to once a year.)
-</p>
-<p>
-First, you should create a <tt>sendreminders.bat</tt> file
-that contains a single line:
-</p>
+<p>If you install a cron package for Windows, you will need to setup
+to setup a cron job. (UNIX cron is a tool for used to run tasks as
+specified times anywhere from every minute to once a year.)</p>
+<p>First, you should create a <tt>sendreminders.bat</tt> file that
+contains a single line:</p>
 <pre>C:\your\path\to\php.exe C:\your\path\to\webcalendar\tools\send_reminders.php</pre>
-<p>You can place this <tt>sendreminders.bat</tt> file anywhere on your
-file system.
-</p>
-<p>Next, you need to setup the cron job.
-The crontab entry should look like
-the following (replace with the correct path to your
-newly created <tt>sendreminders.bat</tt> file):
-</p>
+<p>You can place this <tt>sendreminders.bat</tt> file anywhere on
+your file system.</p>
+<p>Next, you need to setup the cron job. The crontab entry should
+look like the following (replace with the correct path to your newly
+created <tt>sendreminders.bat</tt> file):</p>
 
 <pre>1 * * * * C:\your\path\to\sendreminders.bat</pre>
 
-<p>The "1 * * * *" will tell the cron schedule to run this task
-at 1 after the hour all day long (12:01am, 1:01am, 2:01am, etc.)
-If you only want to run it once per day, you could use:
-</p>
+<p>The "1 * * * *" will tell the cron schedule to run this task at 1
+after the hour all day long (12:01am, 1:01am, 2:01am, etc.) If you only
+want to run it once per day, you could use:</p>
 <pre>1 4 * * * C:\your\path\to\sendreminders.bat</pre>
 <p>This would tell the cron scheduler to run the task at 4:01am
-every day.
-For more information about the syntax of cron, check the documentation
-for the package you have installed or
-view the UNIX man page for crontab
-(like <a href="http://www.rt.com/man/crontab.5.html"
-  target="_blank">this one</a>).
-</p>
+every day. For more information about the syntax of cron, check the
+documentation for the package you have installed or view the UNIX man
+page for crontab (like <a href="http://www.rt.com/man/crontab.5.html"
+	target="_blank">this one</a>).</p>
 
 
-<p>There are many cron packages for Windows available.
-   Below is a list of packages to choose from.
-   (Note: use at your own risk.  These links are provided
-   for information only.)
-</p>
+<p>There are many cron packages for Windows available. Below is a
+list of packages to choose from. (Note: use at your own risk. These
+links are provided for information only.)</p>
 
 <ul>
-  <li><a href="http://cronw.sourceforge.net/"
-    target="_blank">CRONw</a> (open source) </li>
-  <li><a href="http://www.gold-software.com/VisualCron-review11507.htm"
-    target="_blank">VisualCron</a> (freeware)</li>
-  <li><a href="http://www.nncron.ru"
-    target="_blank">nnCron</a> (freeware and commercial versions)</li>
-  <li><a href="http://surguy.net/articles/icron.xml"
-    target="_blank">iCron</a> </li>
-  <li><a href="http://p.clark.home.mindspring.com/jcron/index.html"
-    target="_blank">jCron</a> (freeware) </li>
+	<li><a href="http://cronw.sourceforge.net/" target="_blank">CRONw</a>
+	(open source)</li>
+	<li><a
+		href="http://www.gold-software.com/VisualCron-review11507.htm"
+		target="_blank">VisualCron</a> (freeware)</li>
+	<li><a href="http://www.nncron.ru" target="_blank">nnCron</a>
+	(freeware and commercial versions)</li>
+	<li><a href="http://surguy.net/articles/icron.xml" target="_blank">iCron</a>
+	</li>
+	<li><a href="http://p.clark.home.mindspring.com/jcron/index.html"
+		target="_blank">jCron</a> (freeware)</li>
 </ul>
 
 <h3>Using the Windows Task Schedule</h3>
 
-<p>Follow the steps listed below to setup a new task
-   in the Windows Task Scheduler.
-   (These instructions were created with Windows XP Professional.
-   Other versions of Windows might be different.)
-</p>
+<p>Follow the steps listed below to setup a new task in the Windows
+Task Scheduler. (These instructions were created with Windows XP
+Professional. Other versions of Windows might be different.)</p>
 
 <ol>
 
-<li>Create a new batch file called <tt>sendreminders.bat</tt>.
-    The contents of this file should be a single line:
-    <pre>C:\your\path\to\php.exe C:\your\path\to\webcalendar\tools\send_reminders.php</pre>
-  </li>
+	<li>Create a new batch file called <tt>sendreminders.bat</tt>. The
+	contents of this file should be a single line: <pre>C:\your\path\to\php.exe C:\your\path\to\webcalendar\tools\send_reminders.php</pre>
+	</li>
 
-<li>On Windows XP, go to Control Panel</li>
-<li>Double-click on "Scheduled Tasks."
-  This brings up a window that says "Scheduled Task Wizard" </li>
- 
-<li>Click on "Browse..." </li>
- 
-<li>Select the location of your newly created
-    <tt>sendreminders.bat</tt> file.</li>
-<li>Click on "Open" </li>
- 
-<li>Change the name of the task. "WebCalendar Reminders" is a good name.
-  </li>
- 
-<li>Select how often to perform this task.  Select "Daily." </li>
-<li>Click on "Next" </li>
- 
-<li>Select the start time, then click "Next".
-    If you are planning on sending out reminders throughout the
-    day, pick a time shortly after midnight. </li>
- 
-<li> Enter your user password as required. Click on "Next." </li>
- 
-<li> Select the checkbox "Open advanced properites". </li>
-<li> Click on "Finish." </li>
- 
-<li> Under the "Schedule" tab, click on "Advanced." </li>
+	<li>On Windows XP, go to Control Panel</li>
+	<li>Double-click on "Scheduled Tasks." This brings up a window
+	that says "Scheduled Task Wizard"</li>
 
-<li> Click on "Repeat Task" and fill in the details of how often
-     the job should run.
-     For example, you can set it to run "every 15 minutes", then
-     click on "until" and set that time to 11:30pm.
-  </li>
+	<li>Click on "Browse..."</li>
+
+	<li>Select the location of your newly created <tt>sendreminders.bat</tt>
+	file.</li>
+	<li>Click on "Open"</li>
+
+	<li>Change the name of the task. "WebCalendar Reminders" is a good
+	name.</li>
+
+	<li>Select how often to perform this task. Select "Daily."</li>
+	<li>Click on "Next"</li>
+
+	<li>Select the start time, then click "Next". If you are planning
+	on sending out reminders throughout the day, pick a time shortly after
+	midnight.</li>
+
+	<li>Enter your user password as required. Click on "Next."</li>
+
+	<li>Select the checkbox "Open advanced properites".</li>
+	<li>Click on "Finish."</li>
+
+	<li>Under the "Schedule" tab, click on "Advanced."</li>
+
+	<li>Click on "Repeat Task" and fill in the details of how often
+	the job should run. For example, you can set it to run "every 15
+	minutes", then click on "until" and set that time to 11:30pm.</li>
 </ol>
 
 
@@ -1399,88 +1517,84 @@
 <a name="appendixC"></a>
 <h2>Appendix C: Displaying Upcoming Events on Your Site</h2>
 
-<p>
-If you would like to list upcoming events somewhere on a page on your site
-(someplace other than the WebCalendar pages),
-you can use the <tt>upcoming.php</tt> page to do this.
-This page is intended to be included in other pages using the
-<tt>iframe</tt> tag.
-</p>
-<p>You may need to modify some of the variables near the top of
-<tt>upcoming.php</tt> with a text editor:
-</p>
+<p>If you would like to list upcoming events somewhere on a page on
+your site (someplace other than the WebCalendar pages), you can use the
+<tt>upcoming.php</tt> page to do this. This page is intended to be
+included in other pages using the <tt>iframe</tt> tag.</p>
+<p>You may need to modify some of the variables near the top of <tt>upcoming.php</tt>
+with a text editor:</p>
 <table border="0" style="margin-left: 20px; margin-right: 20px;">
 
-<tr><td valign="top">$public_must_be_enabled</td>
-  <td>
-      Specifies if Public Access must be enabled in System Settings
-      for this page to be viewed.
-      <br/>Default setting: false
-  </td></tr>
+	<tr>
+		<td valign="top">$public_must_be_enabled</td>
+		<td>Specifies if Public Access must be enabled in System Settings
+		for this page to be viewed. <br />
+		Default setting: false</td>
+	</tr>
 
-<tr><td valign="top">$display_link</td>
-  <td>
-      Specifies if events should have a link to the URL
-      within WebCalendar to view the event.
-      <br/>Default setting: true
-  </td></tr>
+	<tr>
+		<td valign="top">$display_link</td>
+		<td>Specifies if events should have a link to the URL within
+		WebCalendar to view the event. <br />
+		Default setting: true</td>
+	</tr>
 
-<tr><td valign="top">$link_target</td>
-  <td>
-      Specifies the name of the window that be used for
-      the link target.
-      <br/>Default setting: _top
-  </td></tr>
+	<tr>
+		<td valign="top">$link_target</td>
+		<td>Specifies the name of the window that be used for the link
+		target. <br />
+		Default setting: _top</td>
+	</tr>
 
-<tr><td valign="top">$numDays</td>
-  <td>
-      Specifies how many days of events should be listed.
-      <br/>Can override this by passing "num" in within the URL
-           with "upcoming.php?num=60"
-      <br/>Default setting: 30
-  </td></tr>
+	<tr>
+		<td valign="top">$numDays</td>
+		<td>Specifies how many days of events should be listed. <br />
+		Can override this by passing "num" in within the URL with
+		"upcoming.php?num=60" <br />
+		Default setting: 30</td>
+	</tr>
 
-<tr><td valign="top">$maxEvents</td>
-  <td>
-      Specifies the maximum number of events to list.
-      <br/>Default setting: 10
-  </td></tr>
+	<tr>
+		<td valign="top">$maxEvents</td>
+		<td>Specifies the maximum number of events to list. <br />
+		Default setting: 10</td>
+	</tr>
 
-<tr><td valign="top">$username</td>
-  <td>
-      The login of the calendar to display upcoming events for.
-      If you want to see upcoming events for user login "joe",
-      then you would change this to "joe".
-      <br/>Default setting: __public__ (The public calendar)
-  </td></tr>
+	<tr>
+		<td valign="top">$username</td>
+		<td>The login of the calendar to display upcoming events for. If
+		you want to see upcoming events for user login "joe", then you would
+		change this to "joe". <br />
+		Default setting: __public__ (The public calendar)</td>
+	</tr>
 
-<tr><td valign="top">$allow_user_override</td>
-  <td>
-      Specifies whether the calendar user can be specified in the URL
-      (in which case the $username setting will be ignored) using
-      a URL like "upcoming.php?user=joe".
-      <br/>Default setting: true
-  </td></tr>
+	<tr>
+		<td valign="top">$allow_user_override</td>
+		<td>Specifies whether the calendar user can be specified in the
+		URL (in which case the $username setting will be ignored) using a URL
+		like "upcoming.php?user=joe". <br />
+		Default setting: true</td>
+	</tr>
 
-<tr><td valign="top">$load_layers</td>
-  <td>
-      Specifies if the calendar user's layers should also be
-      included in the upcoming events.
-      <br/>Note: Layers must be enabled in the user's preferences.
-      <br/>Default setting: true
-  </td></tr>
+	<tr>
+		<td valign="top">$load_layers</td>
+		<td>Specifies if the calendar user's layers should also be
+		included in the upcoming events. <br />
+		Note: Layers must be enabled in the user's preferences. <br />
+		Default setting: true</td>
+	</tr>
 
-<tr><td valign="top">$cat_id</td>
-  <td>
-      Specifies a category id to filter events on.
-      <br/>Note: Categories must be enabled in System Settings.
-      <br/>Default setting: (empty)
-  </td></tr>
+	<tr>
+		<td valign="top">$cat_id</td>
+		<td>Specifies a category id to filter events on. <br />
+		Note: Categories must be enabled in System Settings. <br />
+		Default setting: (empty)</td>
+	</tr>
 
 </table>
 
 <p>Below is an example of how you would include <tt>upcoming.php</tt>
-   in a simple HTML page.</p>
+in a simple HTML page.</p>
 <pre>
 &lt;html&gt;&lt;head&gt;&lt;title&gt;ACME Home Page&lt;/title&gt;&lt;/head&gt;
 &lt;body&gt;
@@ -1494,12 +1608,10 @@
 </pre>
 
 
-<p><span class="tip">TIP</span>
-  The <a href="http://www.w3schools.com/tags/tag_iframe.asp"
-  target="_blank">W3 Schools</a> site provides documentation
-  about the different options that you can use
-  with the <tt>iframe</tt> tag.
-</p>
+<p><span class="tip">TIP</span> The <a
+	href="http://www.w3schools.com/tags/tag_iframe.asp" target="_blank">W3
+Schools</a> site provides documentation about the different options that you
+can use with the <tt>iframe</tt> tag.</p>
 
 
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
@@ -1508,73 +1620,71 @@
 <a name="appendixD"></a>
 <h2>Appendix D: How To Configure For LDAP</h2>
 
-<p>Configuring WebCalendar to use an existing LDAP directory is fairly 
-simple.  It is know to work with OpenLDAP and Novell Edirectory and 
-should work with other systems as well. <span class="note">Note:</span> 
-If you use LDAP, the group functionailty of WebCalendar does not yet work.   
-</p>
+<p>Configuring WebCalendar to use an existing LDAP directory is
+fairly simple. It is know to work with OpenLDAP and Novell Edirectory
+and should work with other systems as well. <span class="note">Note:</span>
+If you use LDAP, the group functionailty of WebCalendar does not yet
+work.</p>
 
 <p>To configure WebCalendar to use LDAP, do the following:</p>
 <ol>
- <li>Configure <tt>settings.php</tt></li>
- <li>Configure <tt>includes/user-ldap.php</tt></li>
+	<li>Configure <tt>settings.php</tt></li>
+	<li>Configure <tt>includes/user-ldap.php</tt></li>
 </ol>
 
-<p>The first step is to set WebCalendar to use LDAP authentication in 
-<tt>settings.php</tt>.  Instructions on to do this can be found in the
-<a href="#appsetup">Application Setup</a> section above.
-In summary, the following should be set:<br />
+<p>The first step is to set WebCalendar to use LDAP authentication
+in <tt>settings.php</tt>. Instructions on to do this can be found in the
+<a href="#appsetup">Application Setup</a> section above. In summary, the
+following should be set:<br />
 <tt>use_http_auth = false</tt><br />
 <tt>user_inc = user-ldap.php</tt><br />
 </p>
 
-<p>The next step is a little more work and involves editing the 
-<tt>includes/user-ldap.php</tt> file with a text editor.  You will have
-to set several configuration variables.  If you don't know what to set 
-the variables to, consult your LDAP system administrator.  Documentation 
-exists for all variables in the file.  Finally, users have gotten LDAP 
-working with OpenLDAP and Novell Edirectory by just changing the 
-following:</p>
+<p>The next step is a little more work and involves editing the <tt>includes/user-ldap.php</tt>
+file with a text editor. You will have to set several configuration
+variables. If you don't know what to set the variables to, consult your
+LDAP system administrator. Documentation exists for all variables in the
+file. Finally, users have gotten LDAP working with OpenLDAP and Novell
+Edirectory by just changing the following:</p>
 
 <table border="0" style="margin-left: 20px; margin-right: 20px;">
 
-<tr><td valign="top">$ldap_server</td>
-  <td>
-      FQDN or IP address of the LDAP server (or localhost).
-      <br />ex. 'ldapserver.company.com'
-  </td></tr>
+	<tr>
+		<td valign="top">$ldap_server</td>
+		<td>FQDN or IP address of the LDAP server (or localhost). <br />
+		ex. 'ldapserver.company.com'</td>
+	</tr>
 
-<tr><td valign="top">$ldap_base_dn</td>
-  <td>
-      Specifies the base DN used to search for users
-      <br />ex. 'ou=people,dc=company,dc=com' or 'o=context,ou=subcontext'
-  </td></tr>
+	<tr>
+		<td valign="top">$ldap_base_dn</td>
+		<td>Specifies the base DN used to search for users <br />
+		ex. 'ou=people,dc=company,dc=com' or 'o=context,ou=subcontext'</td>
+	</tr>
 
-<tr><td valign="top">$ldap_admin_group_name</td>
-  <td>
-      Specifies a group (complete DN) with admin rights for WebCalendar
-      <br />You might have to create one in LDAP 
-      <br />ex. 'cn=it,ou=group,dc=company,dc=com'
-  </td></tr>
+	<tr>
+		<td valign="top">$ldap_admin_group_name</td>
+		<td>Specifies a group (complete DN) with admin rights for
+		WebCalendar <br />
+		You might have to create one in LDAP <br />
+		ex. 'cn=it,ou=group,dc=company,dc=com'</td>
+	</tr>
 
 </table>
 
 <h3>Using SSL with LDAP</h3>
-<p>If the LDAP server will accept connections over SSL, simply add 'ldaps://'
-to the beginning of <tt>$ldap_server</tt>.  <br />Example: ldaps://ldapserver.company.com
-</p>
+<p>If the LDAP server will accept connections over SSL, simply add
+'ldaps://' to the beginning of <tt>$ldap_server</tt>. <br />
+Example: ldaps://ldapserver.company.com</p>
 
 <h3>Using TLS with LDAP</h3>
-<p>If the LDAP server is set up to use TLS, just set <tt>$ldap_start_tls = true</tt>.
-</p>
+<p>If the LDAP server is set up to use TLS, just set <tt>$ldap_start_tls
+= true</tt>.</p>
 
 
 <div class="top"><a href="#" target="_top">↑&nbsp;top</a></div>
 <hr />
-<p>
- <a href="http://validator.w3.org/check?uri=referer"><img 
-  src="http://www.w3.org/Icons/valid-xhtml10" 
-  alt="Valid XHTML 1.0!" class="valid" /></a>
-</p>
+<p><a href="http://validator.w3.org/check?uri=referer"><img
+	src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!"
+	class="valid" /></a></p>
 </body>
 </html>

Modified: trunk/gforge/plugins/webcalendar/www/includes/index.php
===================================================================
--- trunk/gforge/plugins/webcalendar/www/includes/index.php	2007-06-24 23:05:55 UTC (rev 6043)
+++ trunk/gforge/plugins/webcalendar/www/includes/index.php	2007-06-26 21:32:31 UTC (rev 6044)
@@ -1,4 +1,6 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?php 
+echo '<?xml version="1.0" encoding="utf-8"?>';
+?>
 <!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "DTD/xhtml1-transitional.dtd">



More information about the Gforge-commits mailing list