root/trunk/deployment/webadmin/webapp/resources/default/default/default.xsl

Revision 1077 (checked in by johnsa, 7 years ago)

updates to event editing and adding in user client; beginnings of category support in user client

Line 
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3   <xsl:output
4       method="html"
5       indent="yes"
6       media-type="text/html"
7       doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
8       doctype-system="http://www.w3.org/TR/html4/strict.dtd"
9       standalone="yes"
10       omit-xml-declaration="yes"/>
11
12   <!-- ======================================== -->
13   <!--      BEDEWORK ADMIN CLIENT STYLESHEET     -->
14   <!-- ========================================= -->
15
16   <!-- **********************************************************************
17     Copyright 2006 Rensselaer Polytechnic Institute. All worldwide rights reserved.
18
19     Redistribution and use of this distribution in source and binary forms,
20     with or without modification, are permitted provided that:
21        The above copyright notice and this permission notice appear in all
22         copies and supporting documentation;
23
24         The name, identifiers, and trademarks of Rensselaer Polytechnic
25         Institute are not used in advertising or publicity without the
26         express prior written permission of Rensselaer Polytechnic Institute;
27
28     DISCLAIMER: The software is distributed" AS IS" without any express or
29     implied warranty, including but not limited to, any implied warranties
30     of merchantability or fitness for a particular purpose or any warrant)'
31     of non-infringement of any current or pending patent rights. The authors
32     of the software make no representations about the suitability of this
33     software for any particular purpose. The entire risk as to the quality
34     and performance of the software is with the user. Should the software
35     prove defective, the user assumes the cost of all necessary servicing,
36     repair or correction. In particular, neither Rensselaer Polytechnic
37     Institute, nor the authors of the software are liable for any indirect,
38     special, consequential, or incidental damages related to the software,
39     to the maximum extent the law permits. -->
40
41   <!-- DEFINE INCLUDES -->
42   <xsl:include href="errors.xsl"/>
43   <xsl:include href="messages.xsl"/>
44
45   <!-- DEFINE GLOBAL CONSTANTS -->
46   <!-- URL of html resources (images, css, other html); by default this is
47        set to the application root, but for the admin client
48        this should be changed to point to a
49        web server over https to avoid mixed content errors, e.g.,
50   <xsl:variable name="resourcesRoot" select="'https://mywebserver.edu/myresourcesdir'"/>
51     -->
52   <xsl:variable name="resourcesRoot" select="/bedeworkadmin/approot"/>
53
54   <!-- URL of the XSL template directory -->
55   <!-- The approot is an appropriate place to put
56        included stylesheets and xml fragments. These are generally
57        referenced relatively (like errors.xsl and messages.xsl above);
58        this variable is here for your convenience if you choose to
59        reference it explicitly.  It is not used in this stylesheet, however,
60        and can be safely removed if you so choose. -->
61   <xsl:variable name="appRoot" select="/bedeworkadmin/approot"/>
62
63   <!-- Properly encoded prefixes to the application actions; use these to build
64        urls; allows the application to be used without cookies or within a portal.
65        we will probably change the way we create these before long (e.g. build them
66        dynamically in the xslt). -->
67   <xsl:variable name="setup" select="/bedeworkadmin/urlPrefixes/setup/a/@href"/>
68   <xsl:variable name="logout" select="/bedeworkadmin/urlPrefixes/logout/a/@href"/>
69   <xsl:variable name="search" select="/bedeworkadmin/urlPrefixes/search/search/a/@href"/>
70   <xsl:variable name="search-next" select="/bedeworkadmin/urlPrefixes/search/next/a/@href"/>
71   <!-- events -->
72   <xsl:variable name="event-showEvent" select="/bedeworkadmin/urlPrefixes/event/showEvent/a/@href"/>
73   <xsl:variable name="event-showModForm" select="/bedeworkadmin/urlPrefixes/event/showModForm/a/@href"/>
74   <xsl:variable name="event-showUpdateList" select="/bedeworkadmin/urlPrefixes/event/showUpdateList/a/@href"/>
75   <xsl:variable name="event-showDeleteConfirm" select="/bedeworkadmin/urlPrefixes/event/showDeleteConfirm/a/@href"/>
76   <xsl:variable name="event-initAddEvent" select="/bedeworkadmin/urlPrefixes/event/initAddEvent/a/@href"/>
77   <xsl:variable name="event-initUpdateEvent" select="/bedeworkadmin/urlPrefixes/event/initUpdateEvent/a/@href"/>
78   <xsl:variable name="event-delete" select="/bedeworkadmin/urlPrefixes/event/delete/a/@href"/>
79   <xsl:variable name="event-fetchForDisplay" select="/bedeworkadmin/urlPrefixes/event/fetchForDisplay/a/@href"/>
80   <xsl:variable name="event-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/event/fetchForUpdate/a/@href"/>
81   <xsl:variable name="event-update" select="/bedeworkadmin/urlPrefixes/event/update/a/@href"/>
82   <xsl:variable name="event-selectCalForEvent" select="/bedeworkadmin/urlPrefixes/event/selectCalForEvent/a/@href"/>
83   <xsl:variable name="event-initUpload" select="/bedeworkadmin/urlPrefixes/event/initUpload/a/@href"/>
84   <xsl:variable name="event-upload" select="/bedeworkadmin/urlPrefixes/event/upload/a/@href"/>
85   <!-- sponsors -->
86   <xsl:variable name="sponsor-showSponsor" select="/bedeworkadmin/urlPrefixes/sponsor/showSponsor/a/@href"/>
87   <xsl:variable name="sponsor-showReferenced" select="/bedeworkadmin/urlPrefixes/sponsor/showReferenced/a/@href"/>
88   <xsl:variable name="sponsor-showModForm" select="/bedeworkadmin/urlPrefixes/sponsor/showModForm/a/@href"/>
89   <xsl:variable name="sponsor-showUpdateList" select="/bedeworkadmin/urlPrefixes/sponsor/showUpdateList/a/@href"/>
90   <xsl:variable name="sponsor-showDeleteConfirm" select="/bedeworkadmin/urlPrefixes/sponsor/showDeleteConfirm/a/@href"/>
91   <xsl:variable name="sponsor-initAdd" select="/bedeworkadmin/urlPrefixes/sponsor/initAdd/a/@href"/>
92   <xsl:variable name="sponsor-initUpdate" select="/bedeworkadmin/urlPrefixes/sponsor/initUpdate/a/@href"/>
93   <xsl:variable name="sponsor-delete" select="/bedeworkadmin/urlPrefixes/sponsor/delete/a/@href"/>
94   <xsl:variable name="sponsor-fetchForDisplay" select="/bedeworkadmin/urlPrefixes/sponsor/fetchForDisplay/a/@href"/>
95   <xsl:variable name="sponsor-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/sponsor/fetchForUpdate/a/@href"/>
96   <xsl:variable name="sponsor-update" select="/bedeworkadmin/urlPrefixes/sponsor/update/a/@href"/>
97   <!-- locations -->
98   <xsl:variable name="location-showLocation" select="/bedeworkadmin/urlPrefixes/location/showLocation/a/@href"/>
99   <xsl:variable name="location-showReferenced" select="/bedeworkadmin/urlPrefixes/location/showReferenced/a/@href"/>
100   <xsl:variable name="location-showModForm" select="/bedeworkadmin/urlPrefixes/location/showModForm/a/@href"/>
101   <xsl:variable name="location-showUpdateList" select="/bedeworkadmin/urlPrefixes/location/showUpdateList/a/@href"/>
102   <xsl:variable name="location-showDeleteConfirm" select="/bedeworkadmin/urlPrefixes/location/showDeleteConfirm/a/@href"/>
103   <xsl:variable name="location-initAdd" select="/bedeworkadmin/urlPrefixes/location/initAdd/a/@href"/>
104   <xsl:variable name="location-initUpdate" select="/bedeworkadmin/urlPrefixes/location/initUpdate/a/@href"/>
105   <xsl:variable name="location-delete" select="/bedeworkadmin/urlPrefixes/location/delete/a/@href"/>
106   <xsl:variable name="location-fetchForDisplay" select="/bedeworkadmin/urlPrefixes/location/fetchForDisplay/a/@href"/>
107   <xsl:variable name="location-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/location/fetchForUpdate/a/@href"/>
108   <xsl:variable name="location-update" select="/bedeworkadmin/urlPrefixes/location/update/a/@href"/>
109   <!-- categories -->
110   <xsl:variable name="category-showReferenced" select="/bedeworkadmin/urlPrefixes/category/showReferenced/a/@href"/>
111   <xsl:variable name="category-showModForm" select="/bedeworkadmin/urlPrefixes/category/showModForm/a/@href"/>
112   <xsl:variable name="category-showUpdateList" select="/bedeworkadmin/urlPrefixes/category/showUpdateList/a/@href"/>
113   <xsl:variable name="category-showDeleteConfirm" select="/bedeworkadmin/urlPrefixes/category/showDeleteConfirm/a/@href"/>
114   <xsl:variable name="category-initAdd" select="/bedeworkadmin/urlPrefixes/category/initAdd/a/@href"/>
115   <xsl:variable name="category-initUpdate" select="/bedeworkadmin/urlPrefixes/category/initUpdate/a/@href"/>
116   <xsl:variable name="category-delete" select="/bedeworkadmin/urlPrefixes/category/delete/a/@href"/>
117   <xsl:variable name="category-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/category/fetchForUpdate/a/@href"/>
118   <xsl:variable name="category-update" select="/bedeworkadmin/urlPrefixes/category/update/a/@href"/>
119   <!-- calendars -->
120   <xsl:variable name="calendar-fetch" select="/bedeworkadmin/urlPrefixes/calendar/fetch/a/@href"/>
121   <xsl:variable name="calendar-fetchDescriptions" select="/bedeworkadmin/urlPrefixes/calendar/fetchDescriptions/a/@href"/>
122   <xsl:variable name="calendar-initAdd" select="/bedeworkadmin/urlPrefixes/calendar/initAdd/a/@href"/>
123   <xsl:variable name="calendar-delete" select="/bedeworkadmin/urlPrefixes/calendar/delete/a/@href"/>
124   <xsl:variable name="calendar-fetchForDisplay" select="/bedeworkadmin/urlPrefixes/calendar/fetchForDisplay/a/@href"/>
125   <xsl:variable name="calendar-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/calendar/fetchForUpdate/a/@href"/>
126   <xsl:variable name="calendar-update" select="/bedeworkadmin/urlPrefixes/calendar/update/a/@href"/>
127   <xsl:variable name="calendar-setAccess" select="/bedeworkadmin/urlPrefixes/calendar/setAccess/a/@href"/>
128   <!-- subscriptions -->
129   <xsl:variable name="subscriptions-fetch" select="/bedeworkadmin/urlPrefixes/subscriptions/fetch/a/@href"/>
130   <xsl:variable name="subscriptions-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/subscriptions/fetchForUpdate/a/@href"/>
131   <xsl:variable name="subscriptions-initAdd" select="/bedeworkadmin/urlPrefixes/subscriptions/initAdd/a/@href"/>
132   <xsl:variable name="subscriptions-subscribe" select="/bedeworkadmin/urlPrefixes/subscriptions/subscribe/a/@href"/>
133   <!-- views -->
134   <xsl:variable name="view-fetch" select="/bedeworkadmin/urlPrefixes/view/fetch/a/@href"/>
135   <xsl:variable name="view-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/view/fetchForUpdate/a/@href"/>
136   <xsl:variable name="view-addView" select="/bedeworkadmin/urlPrefixes/view/addView/a/@href"/>
137   <xsl:variable name="view-update" select="/bedeworkadmin/urlPrefixes/view/update/a/@href"/>
138   <xsl:variable name="view-remove" select="/bedeworkadmin/urlPrefixes/view/remove/a/@href"/>
139   <!-- system -->
140   <xsl:variable name="system-fetch" select="/bedeworkadmin/urlPrefixes/system/fetch/a/@href"/>
141   <xsl:variable name="system-update" select="/bedeworkadmin/urlPrefixes/system/update/a/@href"/>
142   <!-- calsuites -->
143   <xsl:variable name="calsuite-fetch" select="/bedeworkadmin/urlPrefixes/calsuite/fetch/a/@href"/>
144   <xsl:variable name="calsuite-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/calsuite/fetchForUpdate/a/@href"/>
145   <xsl:variable name="calsuite-add" select="/bedeworkadmin/urlPrefixes/calsuite/add/a/@href"/>
146   <xsl:variable name="calsuite-update" select="/bedeworkadmin/urlPrefixes/calsuite/update/a/@href"/>
147   <xsl:variable name="calsuite-showAddForm" select="/bedeworkadmin/urlPrefixes/calsuite/showAddForm/a/@href"/>
148   <xsl:variable name="calsuite-setAccess" select="/bedeworkadmin/urlPrefixes/calsuite/setAccess/a/@href"/>
149   <xsl:variable name="calsuite-fetchPrefsForUpdate" select="/bedeworkadmin/urlPrefixes/calsuite/fetchPrefsForUpdate/a/@href"/>
150   <xsl:variable name="calsuite-updatePrefs" select="/bedeworkadmin/urlPrefixes/calsuite/updatePrefs/a/@href"/>
151   <!-- timezones and stats -->
152   <xsl:variable name="timezones-initUpload" select="/bedeworkadmin/urlPrefixes/timezones/initUpload/a/@href"/>
153   <xsl:variable name="timezones-upload" select="/bedeworkadmin/urlPrefixes/timezones/upload/a/@href"/>
154   <xsl:variable name="stats-update" select="/bedeworkadmin/urlPrefixes/stats/update/a/@href"/>
155   <!-- authuser and prefs -->
156   <xsl:variable name="authuser-showModForm" select="/bedeworkadmin/urlPrefixes/authuser/showModForm/a/@href"/>
157   <xsl:variable name="authuser-showUpdateList" select="/bedeworkadmin/urlPrefixes/authuser/showUpdateList/a/@href"/>
158   <xsl:variable name="authuser-initUpdate" select="/bedeworkadmin/urlPrefixes/authuser/initUpdate/a/@href"/>
159   <xsl:variable name="authuser-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/authuser/fetchForUpdate/a/@href"/>
160   <xsl:variable name="authuser-update" select="/bedeworkadmin/urlPrefixes/authuser/update/a/@href"/>
161   <xsl:variable name="prefs-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/prefs/fetchForUpdate/a/@href"/>
162   <xsl:variable name="prefs-update" select="/bedeworkadmin/urlPrefixes/prefs/update/a/@href"/>
163   <!-- admin groups -->
164   <xsl:variable name="admingroup-showModForm" select="/bedeworkadmin/urlPrefixes/admingroup/showModForm/a/@href"/>
165   <xsl:variable name="admingroup-showModMembersForm" select="/bedeworkadmin/urlPrefixes/admingroup/showModMembersForm/a/@href"/>
166   <xsl:variable name="admingroup-showUpdateList" select="/bedeworkadmin/urlPrefixes/admingroup/showUpdateList/a/@href"/>
167   <xsl:variable name="admingroup-showChooseGroup" select="/bedeworkadmin/urlPrefixes/admingroup/showChooseGroup/a/@href"/>
168   <xsl:variable name="admingroup-showDeleteConfirm" select="/bedeworkadmin/urlPrefixes/admingroup/showDeleteConfirm/a/@href"/>
169   <xsl:variable name="admingroup-initAdd" select="/bedeworkadmin/urlPrefixes/admingroup/initAdd/a/@href"/>
170   <xsl:variable name="admingroup-initUpdate" select="/bedeworkadmin/urlPrefixes/admingroup/initUpdate/a/@href"/>
171   <xsl:variable name="admingroup-delete" select="/bedeworkadmin/urlPrefixes/admingroup/delete/a/@href"/>
172   <xsl:variable name="admingroup-fetchUpdateList" select="/bedeworkadmin/urlPrefixes/admingroup/fetchUpdateList/a/@href"/>
173   <xsl:variable name="admingroup-fetchForUpdate" select="/bedeworkadmin/urlPrefixes/admingroup/fetchForUpdate/a/@href"/>
174   <xsl:variable name="admingroup-fetchForUpdateMembers" select="/bedeworkadmin/urlPrefixes/admingroup/fetchForUpdateMembers/a/@href"/>
175   <xsl:variable name="admingroup-update" select="/bedeworkadmin/urlPrefixes/admingroup/update/a/@href"/>
176   <xsl:variable name="admingroup-updateMembers" select="/bedeworkadmin/urlPrefixes/admingroup/updateMembers/a/@href"/>
177   <xsl:variable name="admingroup-switch" select="/bedeworkadmin/urlPrefixes/admingroup/switch/a/@href"/>
178
179   <!-- URL of the web application - includes web context
180   <xsl:variable name="urlPrefix" select="/bedeworkadmin/urlprefix"/> -->
181
182   <!-- Other generally useful global variables -->
183   <xsl:variable name="publicCal">/cal</xsl:variable>
184
185   <!--==== MAIN TEMPLATE  ====-->
186   <xsl:template match="/">
187     <html lang="en">
188       <head>
189         <title>Calendar Admin: Events Calendar Administration</title>
190         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
191         <link rel="stylesheet" href="{$resourcesRoot}/default/default/default.css"/>
192         <link rel="stylesheet" href="{$resourcesRoot}/default/default/subColors.css"/>
193         <xsl:if test="/bedeworkadmin/page='modEvent'">
194           <script type="text/javascript" src="{$resourcesRoot}/resources/includes.js"></script>
195           <script type="text/javascript" src="{$resourcesRoot}/resources/bwClock.js"></script>
196           <link rel="stylesheet" href="{$resourcesRoot}/resources/bwClock.css"/>
197           <script type="text/javascript" src="{$resourcesRoot}/resources/dynCalendarWidget.js"></script>
198           <link rel="stylesheet" href="{$resourcesRoot}/resources/dynCalendarWidget.css"/>
199           <script type="text/javascript" src="{$resourcesRoot}/resources/browserSniffer.js"></script>
200         </xsl:if>
201         <xsl:if test="/bedeworkadmin/page='upload' or /bedeworkadmin/page='selectCalForEvent'">
202           <script type="text/javascript" src="{$resourcesRoot}/resources/includes.js"></script>
203         </xsl:if>
204         <xsl:if test="/bedeworkadmin/page='calendarDescriptions' or /bedeworkadmin/page='displayCalendar'">
205           <link rel="stylesheet" href="{$resourcesRoot}/resources/calendarDescriptions.css"/>
206         </xsl:if>
207         <link rel="icon" type="image/ico" href="{$resourcesRoot}/resources/bedework.ico" />
208         <script language="JavaScript" type="text/javascript">
209           <xsl:comment>
210         <![CDATA[
211         // places the cursor in the first available form element when the page is loaded
212         // (if a form exists on the page)
213         function focusFirstElement() {
214           if (window.document.forms[0]) {
215             window.document.forms[0].elements[0].focus();
216           }
217         }]]>
218         </xsl:comment>
219         </script>
220       </head>
221       <body onLoad="focusFirstElement()">
222         <xsl:choose>
223           <xsl:when test="/bedeworkadmin/page='selectCalForEvent'">
224             <xsl:call-template name="selectCalForEvent"/>
225           </xsl:when>
226           <xsl:otherwise>
227             <xsl:call-template name="header"/>
228             <div id="content">
229               <xsl:choose>
230                 <xsl:when test="/bedeworkadmin/page='eventList'">
231                   <xsl:call-template name="eventList"/>
232                 </xsl:when>
233                 <xsl:when test="/bedeworkadmin/page='modEvent'">
234                   <xsl:call-template name="modEvent"/>
235                 </xsl:when>
236                 <xsl:when test="/bedeworkadmin/page='displayEvent' or /bedeworkadmin/page='deleteEventConfirm'">
237                   <xsl:apply-templates select="/bedeworkadmin/event" mode="displayEvent"/>
238                 </xsl:when>
239                 <xsl:when test="/bedeworkadmin/page='sponsorList'">
240                   <xsl:call-template name="sponsorList"/>
241                 </xsl:when>
242                 <xsl:when test="/bedeworkadmin/page='modSponsor'">
243                   <xsl:call-template name="modSponsor"/>
244                 </xsl:when>
245                 <xsl:when test="/bedeworkadmin/page='deleteSponsorConfirm' or /bedeworkadmin/page='sponsorReferenced'">
246                   <xsl:call-template name="deleteSponsorConfirm"/>
247                 </xsl:when>
248                 <xsl:when test="/bedeworkadmin/page='locationList'">
249                   <xsl:call-template name="locationList"/>
250                 </xsl:when>
251                 <xsl:when test="/bedeworkadmin/page='modLocation'">
252                   <xsl:call-template name="modLocation"/>
253                 </xsl:when>
254                 <xsl:when test="/bedeworkadmin/page='deleteLocationConfirm'">
255                   <xsl:call-template name="deleteLocationConfirm"/>
256                 </xsl:when>
257                 <xsl:when test="/bedeworkadmin/page='categoryList'">
258                   <xsl:call-template name="categoryList"/>
259                 </xsl:when>
260                 <xsl:when test="/bedeworkadmin/page='modCategory'">
261                   <xsl:call-template name="modCategory"/>
262                 </xsl:when>
263                 <xsl:when test="/bedeworkadmin/page='deleteCategoryConfirm'">
264                   <xsl:call-template name="deleteCategoryConfirm"/>
265                 </xsl:when>
266                 <xsl:when test="/bedeworkadmin/page='calendarList' or /bedeworkadmin/page='calendarDescriptions' or /bedeworkadmin/page='displayCalendar' or /bedeworkadmin/page='modCalendar' or /bedeworkadmin/page='deleteCalendarConfirm' or /bedeworkadmin/page='calendarReferenced'">
267                   <xsl:apply-templates select="/bedeworkadmin/calendars"/>
268                 </xsl:when>
269                 <xsl:when test="/bedeworkadmin/page='subscriptions' or /bedeworkadmin/page='modSubscription'">
270                   <xsl:apply-templates select="/bedeworkadmin/subscriptions"/>
271                 </xsl:when>
272                 <xsl:when test="/bedeworkadmin/page='views'">
273                   <xsl:apply-templates select="/bedeworkadmin/views" mode="viewList"/>
274                 </xsl:when>
275                 <xsl:when test="/bedeworkadmin/page='modView'">
276                   <xsl:call-template name="modView"/>
277                 </xsl:when>
278                 <xsl:when test="/bedeworkadmin/page='deleteViewConfirm'">
279                   <xsl:call-template name="deleteViewConfirm"/>
280                 </xsl:when>
281                 <xsl:when test="/bedeworkadmin/page='modSyspars'">
282                   <xsl:call-template name="modSyspars"/>
283                 </xsl:when>
284                 <xsl:when test="/bedeworkadmin/page='calSuiteList'">
285                   <xsl:apply-templates select="/bedeworkadmin/calSuites" mode="calSuiteList"/>
286                 </xsl:when>
287                 <xsl:when test="/bedeworkadmin/page='addCalSuite'">
288                   <xsl:call-template name="addCalSuite"/>
289                 </xsl:when>
290                 <xsl:when test="/bedeworkadmin/page='modCalSuite'">
291                   <xsl:apply-templates select="/bedeworkadmin/calSuite"/>
292                 </xsl:when>
293                 <xsl:when test="/bedeworkadmin/page='calSuitePrefs'">
294                   <xsl:call-template name="calSuitePrefs"/>
295                 </xsl:when>
296                 <xsl:when test="/bedeworkadmin/page='authUserList'">
297                   <xsl:call-template name="authUserList"/>
298                 </xsl:when>
299                 <xsl:when test="/bedeworkadmin/page='modAuthUser'">
300                   <xsl:call-template name="modAuthUser"/>
301                 </xsl:when>
302                 <xsl:when test="/bedeworkadmin/page='modPrefs'">
303                   <xsl:call-template name="modPrefs"/>
304                 </xsl:when>
305                 <xsl:when test="/bedeworkadmin/page='chooseGroup'">
306                   <xsl:apply-templates select="/bedeworkadmin/groups" mode="chooseGroup"/>
307                 </xsl:when>
308                 <xsl:when test="/bedeworkadmin/page='adminGroupList'">
309                   <xsl:call-template name="listAdminGroups"/>
310                 </xsl:when>
311                 <xsl:when test="/bedeworkadmin/page='modAdminGroup'">
312                   <xsl:call-template name="modAdminGroup"/>
313                 </xsl:when>
314                 <xsl:when test="/bedeworkadmin/page='modAdminGroupMembers'">
315                   <xsl:call-template name="modAdminGroupMembers"/>
316                 </xsl:when>
317                 <xsl:when test="/bedeworkadmin/page='deleteAdminGroupConfirm'">
318                   <xsl:call-template name="deleteAdminGroupConfirm"/>
319                 </xsl:when>
320                 <xsl:when test="/bedeworkadmin/page='searchResult'">
321                   <xsl:call-template name="searchResult"/>
322                 </xsl:when>
323                 <xsl:when test="/bedeworkadmin/page='noGroup'">
324                   <h2>No administrative group</h2>
325                   <p>Your userid has not been assigned to an administrative group.
326                     Please inform your administrator.</p>
327                 </xsl:when>
328                 <xsl:when test="/bedeworkadmin/page='upload'">
329                   <xsl:call-template name="upload"/>
330                 </xsl:when>
331                 <xsl:when test="/bedeworkadmin/page='uploadTimezones'">
332                   <xsl:call-template name="uploadTimezones"/>
333                 </xsl:when>
334                 <xsl:when test="/bedeworkadmin/page='showSysStats'">
335                   <xsl:apply-templates select="/bedeworkadmin/sysStats" mode="showSysStats"/>
336                 </xsl:when>
337                 <xsl:when test="/bedeworkadmin/page='noAccess'">
338                   <h2>No Access</h2>
339                   <p>
340                     You have no access to the action you just attempted. If you believe
341                     you should have access and the problem persists, contact your
342                     administrator.
343                   </p>
344                   <p>
345                     <a href="{$setup}">continue</a>
346                   </p>
347                 </xsl:when>
348                 <xsl:when test="/bedeworkadmin/page='error'">
349                   <h2>Application error</h2>
350                   <p>An application error occurred.</p>
351                   <p>
352                     <a href="{$setup}">continue</a>
353                   </p>
354                 </xsl:when>
355                 <xsl:otherwise>
356                   <xsl:call-template name="mainMenu"/>
357                 </xsl:otherwise>
358               </xsl:choose>
359             </div>
360             <!-- footer -->
361             <xsl:call-template name="footer"/>
362           </xsl:otherwise>
363         </xsl:choose>
364       </body>
365     </html>
366   </xsl:template>
367
368   <!--==============================================-->
369   <!--==============================================-->
370   <!--============= PAGE TEMPLATES =================-->
371   <!--==============================================-->
372   <!--==============================================-->
373
374   <!--+++++++++++++++ Main Menu ++++++++++++++++++++-->
375   <xsl:template name="mainMenu">
376     <div id="adminLeftColumn">
377       <h2 class="menuTitle">Main Menu</h2>
378       <table id="mainMenuTable">
379         <tr>
380           <th>Events</th>
381           <td>
382             <a id="addEventLink" href="{$event-initAddEvent}">
383               Add
384             </a>
385           </td>
386           <td>
387             <a href="{$event-initUpdateEvent}">
388               Edit / Delete
389             </a>
390           </td>
391           <!--
392           Disable direct selection by ID; we'll need to find another way
393           of quickly getting to events: search and grid views should be implemented. -->
394           <!--
395           <td>
396             Event ID:
397             <xsl:copy-of select="/bedeworkadmin/formElements/*"/>
398           </td>-->
399         </tr>
400         <tr>
401           <th>Contacts</th>
402           <td>
403             <a id="addSponsorLink" href="{$sponsor-initAdd}">
404               Add
405             </a>
406           </td>
407           <td>
408             <a href="{$sponsor-initUpdate}">
409               Edit / Delete
410             </a>
411           </td>
412         </tr>
413         <tr>
414           <th>Locations</th>
415           <td>
416             <a id="addLocationLink" href="{$location-initAdd}">
417               Add
418             </a>
419           </td>
420           <td>
421             <a href="{$location-initUpdate}">
422               Edit / Delete
423             </a>
424           </td>
425         </tr>
426         <tr>
427           <th>Categories</th>
428           <td>
429             <a id="addCategoryLink" href="{$category-initAdd}">
430               Add
431             </a>
432           </td>
433           <td>
434             <a href="{$category-initUpdate}">
435               Edit / Delete
436             </a>
437           </td>
438         </tr>
439       </table>
440
441       <h4 class="menuTitle">Event search:</h4>
442       <form name="searchForm" method="post" action="{$search}" id="searchForm">
443         <input type="text" name="query" size="30">
444           <xsl:attribute name="value"><xsl:value-of select="/bedeworkadmin/searchResults/query"/></xsl:attribute>
445         </input>
446         <input type="submit" name="submit" value="go"/>
447         <div id="searchFields">
448           Limit to:
449           <input type="radio" name="searchLimit" value="future"/>future
450           <input type="radio" name="searchLimit" value="future"/>past
451           <input type="radio" name="searchLimit" value="all" checked="checked"/>all dates
452         </div>
453       </form>
454
455     </div>
456
457     <div id="adminRightColumn">
458       <xsl:if test="/bedeworkadmin/currentCalSuite/currentAccess/current-user-privilege-set/privilege/write or /bedeworkadmin/userInfo/superUser='true'">
459         <h4 class="menuTitle">
460           Manage calendar suite:
461           <em><xsl:value-of select="/bedeworkadmin/currentCalSuite/name"/>
462           </em>
463         </h4>
464         <ul class="adminMenu">
465           <li>
466             <a href="{$calendar-fetch}">
467               Manage calendars
468             </a>
469           </li>
470           <li>
471             <a href="{$subscriptions-fetch}">
472               Manage subscriptions
473             </a>
474           </li>
475           <li>
476             <a href="{$view-fetch}">
477               Manage views
478             </a>
479           </li>
480           <li>
481             <a href="{$calsuite-fetchPrefsForUpdate}">
482               Manage preferences
483             </a>
484           </li>
485           <li>
486             <a href="{$event-initUpload}">
487               Upload iCAL file
488             </a>
489           </li>
490         </ul>
491       </xsl:if>
492
493       <xsl:if test="/bedeworkadmin/userInfo/contentAdminUser='true'">
494         <h4 class="menuTitle">Manage users:</h4>
495         <ul class="adminMenu">
496           <xsl:if test="/bedeworkadmin/userInfo/userMaintOK='true'">
497             <li>
498               <a href="{$authuser-initUpdate}">
499                 Manage public event administrators
500               </a>
501             </li>
502           </xsl:if>
503           <xsl:if test="/bedeworkadmin/userInfo/adminGroupMaintOk='true'">
504             <li>
505               <a href="{$admingroup-initUpdate}">
506                 Manage admin groups
507               </a>
508             </li>
509           </xsl:if>
510           <li>
511             <a href="{$admingroup-switch}">
512               Choose/change group...
513             </a>
514           </li>
515           <xsl:if test="/bedeworkadmin/userInfo/userMaintOK='true'">
516             <li>
517               <form action="{$prefs-fetchForUpdate}" method="post">
518                 Edit user preferences (enter userid):<br/>
519                 <input type="text" name="user" size="15"/>
520                 <input type="submit" name="getPrefs" value="go"/>
521               </form>
522             </li>
523           </xsl:if>
524         </ul>
525       </xsl:if>
526
527       <xsl:if test="/bedeworkadmin/userInfo/superUser='true'">
528         <h4 class="menuTitle">Super user features:</h4>
529         <ul class="adminMenu">
530           <li>
531             <a href="{$calsuite-fetch}">
532               Manage calendar suites
533             </a>
534           </li>
535           <li>
536             <a href="{$system-fetch}">
537               Manage system preferences
538             </a>
539           </li>
540           <li>
541             <a href="{$timezones-initUpload}">
542               Upload and replace system timezones
543             </a>
544           </li>
545           <li>
546             System statistics:
547             <ul>
548               <li>
549                 <a href="{$stats-update}&amp;fetch=yes">
550                   admin web client
551                 </a>
552               </li>
553               <li>
554                 <a href="{$publicCal}/stats.do" target="pubClient">
555                   public web client
556                 </a>
557               </li>
558             </ul>
559           </li>
560         </ul>
561       </xsl:if>
562     </div>
563   </xsl:template>
564
565   <!--++++++++++++++++++ Events ++++++++++++++++++++-->
566   <xsl:template name="eventList">
567     <h2>Edit Events</h2>
568     <p>
569       Select the event that you would like to update:
570       <input type="button" name="return" value="Add new event" onclick="javascript:location.replace('{$event-initAddEvent}')"/>
571     </p>
572
573     <form name="peForm" method="post" action="{$event-initUpdateEvent}">
574       <table>
575         <tr>
576           <td style="padding-right: 1em;">Show:</td>
577           <td>
578             <xsl:copy-of select="/bedeworkadmin/formElements/form/listAllSwitchFalse/*"/>
579             Active
580           </td>
581           <td>
582             <xsl:copy-of select="/bedeworkadmin/formElements/form/listAllSwitchTrue/*"/>
583             All
584           </td>
585         </tr>
586       </table>
587     </form>
588
589     <table id="commonListTable">
590       <tr>
591         <th>Title</th>
592         <th>Start Date</th>
593         <th>End Date</th>
594         <th>Calendar</th>
595         <th>Description</th>
596       </tr>
597
598       <xsl:for-each select="/bedeworkadmin/events/event">
599         <xsl:variable name="subscriptionId" select="subscription/id"/>
600         <xsl:variable name="calPath" select="calendar/encodedPath"/>
601         <xsl:variable name="guid" select="guid"/>
602         <xsl:variable name="recurrenceId" select="recurrenceId"/>
603         <tr>
604           <td>
605             <a href="{$event-fetchForUpdate}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">
606               <xsl:value-of select="title"/>
607             </a>
608           </td>
609           <td class="date">
610             <xsl:value-of select="start"/>
611           </td>
612           <td class="date">
613             <xsl:value-of select="end"/>
614           </td>
615           <td>
616             <xsl:value-of select="calendar/name"/>
617           </td>
618           <td>
619             <xsl:value-of select="desc"/>
620           </td>
621         </tr>
622       </xsl:for-each>
623     </table>
624   </xsl:template>
625
626   <xsl:template name="modEvent">
627     <h2>Event Information</h2>
628
629     <xsl:variable name="modEventAction" select="/bedeworkadmin/formElements/form/@action"/>
630     <form name="peForm" method="post" action="{$modEventAction}">
631       <table class="eventFormTable">
632         <tr>
633           <td class="fieldName">
634             Title:
635           </td>
636           <td>
637             <xsl:copy-of select="/bedeworkadmin/formElements/form/title/*"/>
638           </td>
639         </tr>
640         <tr>
641           <td class="fieldName">
642             Calendar:**
643           </td>
644           <td>
645             <xsl:if test="/bedeworkadmin/formElements/form/calendar/preferred/select/option">
646               <select name="prefCalendarId">
647                 <option value="-1">
648                   Select preferred:
649                 </option>
650                 <xsl:copy-of select="/bedeworkadmin/formElements/form/calendar/preferred/select/*"/>
651               </select>
652               or Calendar (all):
653             </xsl:if>
654             <select name="calendarId">
655               <option value="-1">
656                 Select:
657               </option>
658               <xsl:copy-of select="/bedeworkadmin/formElements/form/calendar/all/select/*"/>
659             </select>
660             <xsl:text> </xsl:text>
661             <span id="calDescriptionsLink">
662               <a href="javascript:launchSimpleWindow('{$calendar-fetchDescriptions}')">calendar descriptions</a>
663             </span>
664           </td>
665         </tr>
666
667         <tr>
668           <td class="fieldName">
669             Date &amp; Time:
670           </td>
671           <td>
672             <!-- Set the timefields class for the first load of the page;
673                  subsequent changes will take place using javascript without a
674                  page reload. -->
675             <xsl:variable name="timeFieldsClass">
676               <xsl:choose>
677                 <xsl:when test="/bedeworkadmin/formElements/form/allDay/input/@checked='checked'">invisible</xsl:when>
678                 <xsl:otherwise>timeFields</xsl:otherwise>
679               </xsl:choose>
680             </xsl:variable>
681             <xsl:choose>
682               <xsl:when test="/bedeworkadmin/formElements/form/allDay/input/@checked='checked'">
683                 <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="on" checked="checked"/>
684                 <input type="hidden" name="eventStartDate.dateOnly" value="on" id="allDayStartDateField"/>
685                 <input type="hidden" name="eventEndDate.dateOnly" value="on" id="allDayEndDateField"/>
686               </xsl:when>
687               <xsl:otherwise>
688                 <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="off"/>
689                 <input type="hidden" name="eventStartDate.dateOnly" value="off" id="allDayStartDateField"/>
690                 <input type="hidden" name="eventEndDate.dateOnly" value="off" id="allDayEndDateField"/>
691               </xsl:otherwise>
692             </xsl:choose>
693             all day event<br/>
694             <div class="dateStartEndBox">
695               <strong>Start:</strong>
696               <div class="dateFields">
697                 <span class="startDateLabel">Date </span>
698                 <xsl:copy-of select="/bedeworkadmin/formElements/form/start/month/*"/>
699                 <xsl:copy-of select="/bedeworkadmin/formElements/form/start/day/*"/>
700                 <xsl:choose>
701                   <xsl:when test="/bedeworkadmin/creating = 'true'">
702                     <xsl:copy-of select="/bedeworkadmin/formElements/form/start/year/*"/>
703                   </xsl:when>
704                   <xsl:otherwise>
705                     <xsl:copy-of select="/bedeworkadmin/formElements/form/start/yearText/*"/>
706                   </xsl:otherwise>
707                 </xsl:choose>
708               </div>
709               <script language="JavaScript" type="text/javascript">
710                 <xsl:comment>
711                 startDateDynCalWidget = new dynCalendar('startDateDynCalWidget', 'startDateCalWidgetCallback', '<xsl:value-of select="$resourcesRoot"/>/resources/');
712               </xsl:comment>
713               </script>
714               <!--<img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>-->
715               <div class="{$timeFieldsClass}" id="startTimeFields">
716                 <span id="calWidgetStartTimeHider" class="show">
717                   <xsl:copy-of select="/bedeworkadmin/formElements/form/start/hour/*"/>
718                   <xsl:copy-of select="/bedeworkadmin/formElements/form/start/minute/*"/>
719                   <xsl:if test="/bedeworkadmin/formElements/form/start/ampm">
720                     <xsl:copy-of select="/bedeworkadmin/formElements/form/start/ampm/*"/>
721                   </xsl:if>
722                   <xsl:text> </xsl:text>
723                   <a href="javascript:bwClockLaunch('eventStartDate');">
724                     <img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/>
725                   </a>
726                 </span>
727               </div>
728             </div>
729             <div class="dateStartEndBox">
730               <strong>End:</strong>
731               <xsl:choose>
732                 <xsl:when test="/bedeworkadmin/formElements/form/end/type='E'">
733                   <input type="radio" name="eventEndType" value="E" checked="checked" onClick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/>
734                 </xsl:when>
735                 <xsl:otherwise>
736                   <input type="radio" name="eventEndType" value="E" onClick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/>
737                 </xsl:otherwise>
738               </xsl:choose>
739               Date
740               <xsl:variable name="endDateTimeClass">
741                 <xsl:choose>
742                   <xsl:when test="/bedeworkadmin/formElements/form/end/type='E'">shown</xsl:when>
743                   <xsl:otherwise>invisible</xsl:otherwise>
744                 </xsl:choose>
745               </xsl:variable>
746               <div class="{$endDateTimeClass}" id="endDateTime">
747                 <div class="dateFields">
748                   <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/month/*"/>
749                   <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/day/*"/>
750                   <xsl:choose>
751                     <xsl:when test="/bedeworkadmin/creating = 'true'">
752                       <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/year/*"/>
753                     </xsl:when>
754                     <xsl:otherwise>
755                       <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/yearText/*"/>
756                     </xsl:otherwise>
757                   </xsl:choose>
758                 </div>
759                 <script language="JavaScript" type="text/javascript">
760                   <xsl:comment>
761                   endDateDynCalWidget = new dynCalendar('endDateDynCalWidget', 'endDateCalWidgetCallback', '<xsl:value-of select="$resourcesRoot"/>/resources/');
762                 </xsl:comment>
763                 </script>
764                 <!--<img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>-->
765                 <div class="{$timeFieldsClass}" id="endTimeFields">
766                   <span id="calWidgetEndTimeHider" class="show">
767                     <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/hour/*"/>
768                     <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/minute/*"/>
769                     <xsl:if test="/bedeworkadmin/formElements/form/end/dateTime/ampm">
770                       <xsl:copy-of select="/bedeworkadmin/formElements/form/end/dateTime/ampm/*"/>
771                     </xsl:if>
772                     <xsl:text> </xsl:text>
773                     <a href="javascript:bwClockLaunch('eventEndDate');">
774                       <img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/>
775                     </a>
776                   </span>
777                 </div>
778               </div>
779               <br/>
780               <div id="clock" class="invisible">
781                 <xsl:call-template name="clock"/>
782               </div>
783               <div class="dateFields">
784                 <xsl:choose>
785                   <xsl:when test="/bedeworkadmin/formElements/form/end/type='D'">
786                     <input type="radio" name="eventEndType" value="D" checked="checked" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/>
787                   </xsl:when>
788                   <xsl:otherwise>
789                     <input type="radio" name="eventEndType" value="D" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/>
790                   </xsl:otherwise>
791                 </xsl:choose>
792                 Duration
793                 <xsl:variable name="endDurationClass">
794                   <xsl:choose>
795                     <xsl:when test="/bedeworkadmin/formElements/form/end/type='D'">shown</xsl:when>
796                     <xsl:otherwise>invisible</xsl:otherwise>
797                   </xsl:choose>
798                 </xsl:variable>
799                 <xsl:variable name="durationHrMinClass">
800                   <xsl:choose>
801                     <xsl:when test="/bedeworkadmin/formElements/form/allDay/input/@checked='checked'">invisible</xsl:when>
802                     <xsl:otherwise>shown</xsl:otherwise>
803                   </xsl:choose>
804                 </xsl:variable>
805                 <div class="{$endDurationClass}" id="endDuration">
806                   <xsl:choose>
807                     <xsl:when test="/bedeworkadmin/formElements/form/end/duration/weeks/input/@value = '0'">
808                     <!-- we are using day, hour, minute format -->
809                     <!-- must send either no week value or week value of 0 (zero) -->
810                       <div class="durationBox">
811                         <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')" checked="checked"/>
812                         <xsl:variable name="daysStr" select="/bedeworkadmin/formElements/form/end/duration/days/input/@value"/>
813                         <input type="text" name="eventDuration.daysStr" size="2" value="{$daysStr}" id="durationDays"/>days
814                         <span id="durationHrMin" class="{$durationHrMinClass}">
815                           <xsl:variable name="hoursStr" select="/bedeworkadmin/formElements/form/end/duration/hours/input/@value"/>
816                           <input type="text" name="eventDuration.hoursStr" size="2" value="{$hoursStr}" id="durationHours"/>hours
817                           <xsl:variable name="minutesStr" select="/bedeworkadmin/formElements/form/end/duration/minutes/input/@value"/>
818                           <input type="text" name="eventDuration.minutesStr" size="2" value="{$minutesStr}" id="durationMinutes"/>minutes
819                         </span>
820                       </div>
821                       <span class="durationSpacerText">or</span>
822                       <div class="durationBox">
823                         <input type="radio" name="eventDuration.type" value="weeks" onclick="swapDurationType('week')"/>
824                         <xsl:variable name="weeksStr" select="/bedeworkadmin/formElements/form/end/duration/weeks/input/@value"/>
825                         <input type="text" name="eventDuration.weeksStr" size="2" value="{$weeksStr}" id="durationWeeks" disabled="true"/>weeks
826                       </div>
827                     </xsl:when>
828                     <xsl:otherwise>
829                       <!-- we are using week format -->
830                       <div class="durationBox">
831                         <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')"/>
832                         <xsl:variable name="daysStr" select="/bedeworkadmin/formElements/form/end/duration/days/input/@value"/>
833                         <input type="text" name="eventDuration.daysStr" size="2" value="{$daysStr}" id="durationDays" disabled="true"/>days
834                         <span id="durationHrMin" class="{$durationHrMinClass}">
835                           <xsl:variable name="hoursStr" select="/bedeworkadmin/formElements/form/end/duration/hours/input/@value"/>
836                           <input type="text" name="eventDuration.hoursStr" size="2" value="{$hoursStr}" id="durationHours" disabled="true"/>hours
837                           <xsl:variable name="minutesStr" select="/bedeworkadmin/formElements/form/end/duration/minutes/input/@value"/>
838                           <input type="text" name="eventDuration.minutesStr" size="2" value="{$minutesStr}" id="durationMinutes" disabled="true"/>minutes
839                         </span>
840                       </div>
841                       <span class="durationSpacerText">or</span>
842                       <div class="durationBox">
843                         <input type="radio" name="eventDuration.type" value="weeks" onclick="swapDurationType('week')" checked="checked"/>
844                         <xsl:variable name="weeksStr" select="/bedeworkadmin/formElements/form/end/duration/weeks/input/@value"/>
845                         <input type="text" name="eventDuration.weeksStr" size="2" value="{$weeksStr}" id="durationWeeks"/>weeks
846                       </div>
847                     </xsl:otherwise>
848                   </xsl:choose>
849                 </div>
850               </div>
851               <br/>
852               <div class="dateFields" id="noDuration">
853                 <xsl:choose>
854                   <xsl:when test="/bedeworkadmin/formElements/form/end/type='N'">
855                     <input type="radio" name="eventEndType" value="N" checked="checked" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','invisible');"/>
856                   </xsl:when>
857                   <xsl:otherwise>
858                     <input type="radio" name="eventEndType" value="N" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','invisible');"/>
859                   </xsl:otherwise>
860                 </xsl:choose>
861                 This event has no duration / end date
862               </div>
863             </div>
864           </td>
865         </tr>
866         <!--  Status  -->
867         <tr>
868           <td class="fieldName">
869             Status:
870           </td>
871           <td>
872             <xsl:choose>
873               <xsl:when test="/bedeworkadmin/formElements/form/status = 'TENTATIVE'">
874                 <input type="radio" name="event.status" value="CONFIRMED"/>confirmed <input type="radio" name="event.status" value="TENTATIVE" checked="checked"/>tentative <input type="radio" name="event.status" value="CANCELLED"/>cancelled
875               </xsl:when>
876               <xsl:when test="/bedeworkadmin/formElements/form/status = 'CANCELLED'">
877                 <input type="radio" name="event.status" value="CONFIRMED"/>confirmed <input type="radio" name="event.status" value="TENTATIVE"/>tentative <input type="radio" name="event.status" value="CANCELLED" checked="checked"/>cancelled
878               </xsl:when>
879               <xsl:otherwise>
880                 <input type="radio" name="event.status" value="CONFIRMED" checked="checked"/>confirmed <input type="radio" name="event.status" value="TENTATIVE"/>tentative <input type="radio" name="event.status" value="CANCELLED"/>cancelled
881               </xsl:otherwise>
882             </xsl:choose>
883           </td>
884         </tr>
885         <!--  Description  -->
886         <tr>
887           <td class="fieldName">
888             Description:
889           </td>
890           <td>
891             <xsl:copy-of select="/bedeworkadmin/formElements/form/desc/*"/>
892             <div class="fieldInfo">
893               Enter all pertinent information, including the academic titles of
894               all speakers and/or participants.
895               <span class="maxCharNotice">(<xsl:value-of select="/bedeworkadmin/formElements/form/descLength"/> characters max.)</span>
896             </div>
897           </td>
898         </tr>
899         <!-- Cost -->
900         <tr>
901           <td class="optional">
902             Price:
903           </td>
904           <td>
905             <xsl:copy-of select="/bedeworkadmin/formElements/form/cost/*"/>
906             <xsl:text> </xsl:text>
907             <span class="fieldInfo">(optional: if any, and place to purchase tickets)</span>
908           </td>
909         </tr>
910         <!-- Url -->
911         <tr>
912           <td class="optional">
913             URL:
914           </td>
915           <td>
916             <xsl:copy-of select="/bedeworkadmin/formElements/form/link/*"/>
917             <xsl:text> </xsl:text>
918             <span class="fieldInfo">(optional: for more information about the event)</span>
919           </td>
920         </tr>
921         <!-- Location -->
922         <tr>
923           <td class="fieldName">
924             Location:**
925           </td>
926           <td>
927             <xsl:if test="/bedeworkadmin/formElements/form/location/preferred/select/option">
928               <select name="prefLocationId" id="eventFormPrefLocationList">
929                 <option value="-1">
930                   Select preferred:
931                 </option>
932                 <xsl:copy-of select="/bedeworkadmin/formElements/form/location/preferred/select/*"/>
933               </select>
934               or Location (all):
935             </xsl:if>
936             <select name="locationId" id="eventFormLocationList">
937               <option value="-1">
938                 Select:
939               </option>
940               <xsl:copy-of select="/bedeworkadmin/formElements/form/location/all/select/*"/>
941             </select>
942           </td>
943         </tr>
944
945         <xsl:if test="/bedeworkadmin/formElements/form/location/address">
946           <tr>
947             <td class="fieldName" colspan="2">
948               <span class="std-text">
949                 <span class="bold">or</span> add</span>
950             </td>
951           </tr>
952           <tr>
953             <td class="fieldName">
954               Address:
955             </td>
956             <td>
957               <xsl:variable name="addressFieldName" select="/bedeworkadmin/formElements/form/location/address/input/@name"/>
958               <xsl:variable name="calLocations">
959                 <xsl:for-each select="/bedeworkadmin/formElements/form/location/all/select/option">"<xsl:value-of select="."/>"<xsl:if test="position()!=last()">,</xsl:if>
960                 </xsl:for-each>
961               </xsl:variable>
962               <input type="text" size="30" name="{$addressFieldName}" autocomplete="off" onfocus="autoComplete(this,event,new Array({$calLocations}));"/>
963               <div class="fieldInfo">
964                 Please include room, building, and campus (if not Seattle).
965               </div>
966             </td>
967           </tr>
968           <tr>
969             <td class="optional">
970               <span class="std-text">Location URL:</span>
971             </td>
972             <td>
973               <xsl:copy-of select="/bedeworkadmin/formElements/form/location/link/*"/>
974               <xsl:text> </xsl:text>
975               <span class="fieldInfo">(optional: for information about the location)</span>
976             </td>
977           </tr>
978         </xsl:if>
979
980         <!-- Sponsor -->
981         <tr>
982           <td class="fieldName">
983             Contact:**
984           </td>
985           <td>
986             <xsl:if test="/bedeworkadmin/formElements/form/sponsor/preferred/select/option">
987               <select name="prefSponsorId" id="eventFormSponsorList">
988                 <option value="-1">
989                   Select preferred:
990                 </option>option>
991                 <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/preferred/select/*"/>
992               </select>
993               or Contact (all):
994             </xsl:if>
995             <select name="sponsorId" id="eventFormPrefSponsorList">
996               <option value="-1">
997                 Select:
998               </option>
999               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/all/select/*"/>
1000             </select>
1001           </td>
1002         </tr>
1003
1004
1005         <!--  Category  -->
1006         <tr>
1007           <td class="fieldName">
1008             Categories:**
1009           </td>
1010           <td>
1011             <input type="radio" name="categoryCheckboxes" value="preferred" checked="checked" onclick="changeClass('preferredCategoryCheckboxes','shown');changeClass('allCategoryCheckboxes','invisible');"/>show preferred
1012             <input type="radio" name="categoryCheckboxes" value="all" onclick="changeClass('preferredCategoryCheckboxes','invisible');changeClass('allCategoryCheckboxes','shown')"/>show all<br/>
1013             <xsl:choose>
1014               <xsl:when test="/bedeworkadmin/formElements/form/categories/preferred/category">
1015                 <table cellpadding="0" id="preferredCategoryCheckboxes">
1016                   <tr>
1017                     <xsl:variable name="catCount" select="count(/bedeworkadmin/formElements/form/categories/preferred/category)"/>
1018                     <td>
1019                       <xsl:for-each select="/bedeworkadmin/formElements/form/categories/preferred/category[position() &lt;= ceiling($catCount div 2)]">
1020                         <input type="checkbox" name="categoryKey">
1021                           <xsl:attribute name="value"><xsl:value-of select="keyword"/></xsl:attribute>
1022                           <xsl:attribute name="id">pref-<xsl:value-of select="keyword"/></xsl:attribute>
1023                           <xsl:attribute name="onchange">setCatChBx('pref-<xsl:value-of select="keyword"/>','all-<xsl:value-of select="keyword"/>')</xsl:attribute>
1024                           <xsl:if test="keyword = /bedeworkadmin/formElements/form/categories/current//category/keyword"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if>
1025                           <xsl:value-of select="keyword"/>
1026                         </input><br/>
1027                       </xsl:for-each>
1028                     </td>
1029                     <td>
1030                       <xsl:for-each select="/bedeworkadmin/formElements/form/categories/preferred/category[position() &gt; ceiling($catCount div 2)]">
1031                         <input type="checkbox" name="categoryKey">
1032                           <xsl:attribute name="value"><xsl:value-of select="keyword"/></xsl:attribute>
1033                           <xsl:attribute name="id">pref-<xsl:value-of select="keyword"/></xsl:attribute>
1034                           <xsl:attribute name="onchange">setCatChBx('pref-<xsl:value-of select="keyword"/>','all-<xsl:value-of select="keyword"/>')</xsl:attribute>
1035                           <xsl:if test="keyword = /bedeworkadmin/formElements/form/categories/current//category/keyword"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if>
1036                           <xsl:value-of select="keyword"/>
1037                         </input><br/>
1038                       </xsl:for-each>
1039                     </td>
1040                   </tr>
1041                 </table>
1042               </xsl:when>
1043               <xsl:otherwise>
1044                 <table cellpadding="0" id="preferredCategoryCheckboxes">
1045                   <tr>
1046                     <td>
1047                       No preferred categories (yet).
1048                     </td>
1049                   </tr>
1050                 </table>
1051               </xsl:otherwise>
1052             </xsl:choose>
1053             <table cellpadding="0" id="allCategoryCheckboxes" class="invisible">
1054               <tr>
1055                 <xsl:variable name="catCount" select="count(/bedeworkadmin/formElements/form/categories/all/category)"/>
1056                 <td>
1057                   <xsl:for-each select="/bedeworkadmin/formElements/form/categories/all/category[position() &lt;= ceiling($catCount div 2)]">
1058                     <input type="checkbox" name="categoryKey">
1059                       <xsl:attribute name="value"><xsl:value-of select="keyword"/></xsl:attribute>
1060                       <xsl:attribute name="id">all-<xsl:value-of select="keyword"/></xsl:attribute>
1061                       <xsl:attribute name="onchange">setCatChBx('all-<xsl:value-of select="keyword"/>','pref-<xsl:value-of select="keyword"/>')</xsl:attribute>
1062                       <xsl:if test="keyword = /bedeworkadmin/formElements/form/categories/current//category/keyword"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if>
1063                       <xsl:value-of select="keyword"/>
1064                     </input><br/>
1065                   </xsl:for-each>
1066                 </td>
1067                 <td>
1068                   <xsl:for-each select="/bedeworkadmin/formElements/form/categories/all/category[position() &gt; ceiling($catCount div 2)]">
1069                     <input type="checkbox" name="categoryKey">
1070                       <xsl:attribute name="value"><xsl:value-of select="keyword"/></xsl:attribute>
1071                       <xsl:attribute name="id">all-<xsl:value-of select="keyword"/></xsl:attribute>
1072                       <xsl:attribute name="onchange">setCatChBx('all-<xsl:value-of select="keyword"/>','pref-<xsl:value-of select="keyword"/>')</xsl:attribute>
1073                       <xsl:if test="keyword = /bedeworkadmin/formElements/form/categories/current//category/keyword"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if>
1074                       <xsl:value-of select="keyword"/>
1075                     </input><br/>
1076                   </xsl:for-each>
1077                 </td>
1078               </tr>
1079             </table>
1080           </td>
1081         </tr>
1082         <!-- note -->
1083         <tr>
1084           <td colspan="2" style="padding-top: 1em;">
1085             <span class="fieldInfo">
1086               **<strong>If "preferred values" are enabled</strong>
1087               by your administrator, the category, location, and contact lists will
1088               contain only those value you've used previously.  If you don't find the value
1089               you need in one of these lists, use the "all" list adjacent to each
1090               of these fields.  The event you select from the "all" list will be added
1091               to your preferred list from that point on.  <strong>Note: if you don't
1092               find a location or contact at all, you can add a new one from the
1093               <a href="{$setup}">main menu</a>.</strong>
1094               Only administrators can create categories, however.
1095               To make sure you've used the
1096               correct category, please see the
1097               <a href="" target="_blank">Calendar Definitions</a>
1098             </span>
1099           </td>
1100         </tr>
1101
1102         <xsl:if test="/bedeworkadmin/formElements/form/sponsor/name">
1103           <tr>
1104             <td class="fieldName" colspan="2">
1105               <span class="std-text">
1106                 <span class="bold">or</span> add</span>
1107             </td>
1108           </tr>
1109           <tr>
1110             <td class="fieldName">
1111               Contact (name):
1112             </td>
1113             <td>
1114               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/name/*"/>
1115             </td>
1116           </tr>
1117           <tr>
1118             <td class="fieldName">
1119               Contact Phone Number:
1120             </td>
1121             <td>
1122               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/phone/*"/>
1123               <xsl:text> </xsl:text>
1124               <span class="fieldInfo">(optional)</span>
1125             </td>
1126           </tr>
1127           <tr>
1128             <td class="optional">
1129               Contact's URL:
1130             </td>
1131             <td>
1132               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/link/*"/>
1133               <xsl:text> </xsl:text>
1134               <span class="fieldInfo">(optional)</span>
1135             </td>
1136           </tr>
1137           <tr>
1138             <td class="optional">
1139               Contact Email Address:
1140             </td>
1141             <td>
1142               <xsl:copy-of select="/bedeworkadmin/formElements/form/sponsor/email/*"/>
1143               <xsl:text> </xsl:text>
1144               <span class="fieldInfo">(optional)</span> test
1145               <div id="sponsorEmailAlert">&#160;</div> <!-- space for email warning -->
1146             </td>
1147           </tr>
1148         </xsl:if>
1149       </table>
1150
1151       <table border="0" id="submitTable">
1152         <tr>
1153           <xsl:choose>
1154             <xsl:when test="/bedeworkadmin/creating='true'">
1155               <td>
1156                 <input type="submit" name="addEvent" value="Add Event"/>
1157                 <input type="submit" name="cancelled" value="Cancel"/>
1158                 <input type="reset" value="Clear"/>
1159               </td>
1160             </xsl:when>
1161             <xsl:otherwise>
1162               <td>
1163                 <input type="submit" name="updateEvent" value="Update Event"/>
1164                 <input type="submit" name="cancelled" value="Cancel"/>
1165                 <input type="submit" name="copy" value="Duplicate Event"/>
1166               </td>
1167               <td align="right">
1168                 <input type="submit" name="delete" value="Delete Event"/>
1169               </td>
1170             </xsl:otherwise>
1171           </xsl:choose>
1172         </tr>
1173       </table>
1174     </form>
1175   </xsl:template>
1176
1177   <xsl:template name="clock">
1178     <div id="bwClock">
1179       <!-- Bedework 24-Hour Clock time selection widget
1180            used with resources/bwClock.js and resources/bwClock.css -->
1181       <div id="bwClockClock">
1182         <img id="clockMap" src="{$resourcesRoot}/resources/clockMap.gif" width="368" height="368" border="0" alt="" usemap="#bwClockMap" />
1183       </div>
1184       <div id="bwClockCover">
1185         <!-- this is a special effect div used simply to cover the pixelated edge
1186              where the clock meets the clock box title --></div>
1187       <div id="bwClockBox">
1188         <h2>
1189           Bedework 24-Hour Clock
1190         </h2>
1191         <div id="bwClockDateTypeIndicator">
1192           type
1193         </div>
1194         <div id="bwClockTime">
1195           select time
1196         </div>
1197         <div id="bwClockCloseText">
1198           close
1199         </div>
1200         <div id="bwClockCloseButton">
1201           <a href="javascript:bwClockClose();">X</a>
1202         </div>
1203       </div>
1204       <map name="bwClockMap" id="bwClockMap">
1205         <area shape="rect" alt="close clock" title="close clock" coords="160,167, 200,200" href="javascript:bwClockClose()"/>
1206         <area shape="poly" alt="minute 00:55" title="minute 00:55" coords="156,164, 169,155, 156,107, 123,128" href="javascript:bwClockUpdateDateTimeForm('minute','55')" />
1207         <area shape="poly" alt="minute 00:50" title="minute 00:50" coords="150,175, 156,164, 123,128, 103,161" href="javascript:bwClockUpdateDateTimeForm('minute','50')" />
1208         <area shape="poly" alt="minute 00:45" title="minute 00:45" coords="150,191, 150,175, 103,161, 103,206" href="javascript:bwClockUpdateDateTimeForm('minute','45')" />
1209         <area shape="poly" alt="minute 00:40" title="minute 00:40" coords="158,208, 150,191, 105,206, 123,237" href="javascript:bwClockUpdateDateTimeForm('minute','40')" />
1210         <area shape="poly" alt="minute 00:35" title="minute 00:35" coords="171,218, 158,208, 123,238, 158,261" href="javascript:bwClockUpdateDateTimeForm('minute','35')" />
1211         <area shape="poly" alt="minute 00:30" title="minute 00:30" coords="193,218, 172,218, 158,263, 209,263" href="javascript:bwClockUpdateDateTimeForm('minute','30')" />
1212         <area shape="poly" alt="minute 00:25" title="minute 00:25" coords="209,210, 193,218, 209,261, 241,240" href="javascript:bwClockUpdateDateTimeForm('minute','25')" />
1213         <area shape="poly" alt="minute 00:20" title="minute 00:20" coords="216,196, 209,210, 241,240, 261,206" href="javascript:bwClockUpdateDateTimeForm('minute','20')" />
1214         <area shape="poly" alt="minute 00:15" title="minute 00:15" coords="216,178, 216,196, 261,206, 261,159" href="javascript:bwClockUpdateDateTimeForm('minute','15')" />
1215         <area shape="poly" alt="minute 00:10" title="minute 00:10" coords="209,164, 216,178, 261,159, 240,126" href="javascript:bwClockUpdateDateTimeForm('minute','10')" />
1216         <area shape="poly" alt="minute 00:05" title="minute 00:05" coords="196,155, 209,164, 238,126, 206,107" href="javascript:bwClockUpdateDateTimeForm('minute','05')" />
1217         <area shape="poly" alt="minute 00:00" title="minute 00:00" coords="169,155, 196,155, 206,105, 156,105" href="javascript:bwClockUpdateDateTimeForm('minute','00')" />
1218         <area shape="poly" alt="11 PM, 2300 hour" title="11 PM, 2300 hour" coords="150,102, 172,96, 158,1, 114,14" href="javascript:bwClockUpdateDateTimeForm('hour','23')" />
1219         <area shape="poly" alt="10 PM, 2200 hour" title="10 PM, 2200 hour" coords="131,114, 150,102, 114,14, 74,36" href="javascript:bwClockUpdateDateTimeForm('hour','22')" />
1220         <area shape="poly" alt="9 PM, 2100 hour" title="9 PM, 2100 hour" coords="111,132, 131,114, 74,36, 40,69" href="javascript:bwClockUpdateDateTimeForm('hour','21')" />
1221         <area shape="poly" alt="8 PM, 2000 hour" title="8 PM, 2000 hour" coords="101,149, 111,132, 40,69, 15,113" href="javascript:bwClockUpdateDateTimeForm('hour','20')" />
1222         <area shape="poly" alt="7 PM, 1900 hour" title="7 PM, 1900 hour" coords="95,170, 101,149, 15,113, 1,159" href="javascript:bwClockUpdateDateTimeForm('hour','19')" />
1223         <area shape="poly" alt="6 PM, 1800 hour" title="6 PM, 1800 hour" coords="95,196, 95,170, 0,159, 0,204" href="javascript:bwClockUpdateDateTimeForm('hour','18')" />
1224         <area shape="poly" alt="5 PM, 1700 hour" title="5 PM, 1700 hour" coords="103,225, 95,196, 1,205, 16,256" href="javascript:bwClockUpdateDateTimeForm('hour','17')" />
1225         <area shape="poly" alt="4 PM, 1600 hour" title="4 PM, 1600 hour" coords="116,245, 103,225, 16,256, 41,298" href="javascript:bwClockUpdateDateTimeForm('hour','16')" />
1226         <area shape="poly" alt="3 PM, 1500 hour" title="3 PM, 1500 hour" coords="134,259, 117,245, 41,298, 76,332" href="javascript:bwClockUpdateDateTimeForm('hour','15')" />
1227         <area shape="poly" alt="2 PM, 1400 hour" title="2 PM, 1400 hour" coords="150,268, 134,259, 76,333, 121,355" href="javascript:bwClockUpdateDateTimeForm('hour','14')" />
1228         <area shape="poly" alt="1 PM, 1300 hour" title="1 PM, 1300 hour" coords="169,273, 150,268, 120,356, 165,365" href="javascript:bwClockUpdateDateTimeForm('hour','13')" />
1229         <area shape="poly" alt="Noon, 1200 hour" title="Noon, 1200 hour" coords="193,273, 169,273, 165,365, 210,364" href="javascript:bwClockUpdateDateTimeForm('hour','12')" />
1230         <area shape="poly" alt="11 AM, 1100 hour" title="11 AM, 1100 hour" coords="214,270, 193,273, 210,363, 252,352" href="javascript:bwClockUpdateDateTimeForm('hour','11')" />
1231         <area shape="poly" alt="10 AM, 1000 hour" title="10 AM, 1000 hour" coords="232,259, 214,270, 252,352, 291,330" href="javascript:bwClockUpdateDateTimeForm('hour','10')" />
1232         <area shape="poly" alt="9 AM, 0900 hour" title="9 AM, 0900 hour" coords="251,240, 232,258, 291,330, 323,301" href="javascript:bwClockUpdateDateTimeForm('hour','09')" />
1233         <area shape="poly" alt="8 AM, 0800 hour" title="8 AM, 0800 hour" coords="263,219, 251,239, 323,301, 349,261" href="javascript:bwClockUpdateDateTimeForm('hour','08')" />
1234         <area shape="poly" alt="7 AM, 0700 hour" title="7 AM, 0700 hour" coords="269,194, 263,219, 349,261, 363,212" href="javascript:bwClockUpdateDateTimeForm('hour','07')" />
1235         <area shape="poly" alt="6 AM, 0600 hour" title="6 AM, 0600 hour" coords="269,172, 269,193, 363,212, 363,155" href="javascript:bwClockUpdateDateTimeForm('hour','06')" />
1236         <area shape="poly" alt="5 AM, 0500 hour" title="5 AM, 0500 hour" coords="263,150, 269,172, 363,155, 351,109" href="javascript:bwClockUpdateDateTimeForm('hour','05')" />
1237         <area shape="poly" alt="4 AM, 0400 hour" title="4 AM, 0400 hour" coords="251,130, 263,150, 351,109, 325,68" href="javascript:bwClockUpdateDateTimeForm('hour','04')" />
1238         <area shape="poly" alt="3 AM, 0300 hour" title="3 AM, 0300 hour" coords="234,112, 251,130, 325,67, 295,37" href="javascript:bwClockUpdateDateTimeForm('hour','03')" />
1239         <area shape="poly" alt="2 AM, 0200 hour" title="2 AM, 0200 hour" coords="221,102, 234,112, 295,37, 247,11" href="javascript:bwClockUpdateDateTimeForm('hour','02')" />
1240         <area shape="poly" alt="1 AM, 0100 hour" title="1 AM, 0100 hour" coords="196,96, 221,102, 247,10, 209,-1, 201,61, 206,64, 205,74, 199,75" href="javascript:bwClockUpdateDateTimeForm('hour','01')" />
1241         <area shape="poly" alt="Midnight, 0000 hour" title="Midnight, 0000 hour" coords="172,96, 169,74, 161,73, 161,65, 168,63, 158,-1, 209,-1, 201,61, 200,62, 206,64, 205,74, 198,75, 196,96, 183,95" href="javascript:bwClockUpdateDateTimeForm('hour','00')" />
1242       </map>
1243     </div>
1244   </xsl:template>
1245
1246   <xsl:template match="event" mode="displayEvent">
1247     <xsl:choose>
1248       <xsl:when test="/bedeworkadmin/page='deleteEventConfirm'">
1249         <h2>Ok to delete this event?</h2>
1250         <p style="width: 400px;">Note: we do not encourage deletion of old but correct events; we prefer to keep
1251            old events for historical reasons.  Please remove only those events
1252            that are truly erroneous.</p>
1253         <p id="confirmButtons">
1254           <xsl:copy-of select="/bedeworkadmin/formElements/*"/>
1255         </p>
1256       </xsl:when>
1257       <xsl:otherwise>
1258         <h2>Event Information</h2>
1259       </xsl:otherwise>
1260     </xsl:choose>
1261
1262     <table class="eventFormTable">
1263       <tr>
1264         <th>
1265           ID:
1266         </th>
1267         <td>
1268           <xsl:value-of select="id"/>
1269         </td>
1270       </tr>
1271
1272       <tr>
1273         <th>
1274           Title:
1275         </th>
1276         <td>
1277           <xsl:value-of select="title"/>
1278         </td>
1279       </tr>
1280
1281       <tr>
1282         <th>
1283           Calendar:
1284         </th>
1285         <td>
1286           <xsl:value-of select="calendar"/>
1287         </td>
1288       </tr>
1289
1290       <tr>
1291         <th>
1292           Start:
1293         </th>
1294         <td>
1295           <xsl:value-of select="start/year"/>-<xsl:value-of select="start/month"/>-<xsl:value-of select="start/day"/>
1296           <xsl:text> </xsl:text>
1297           <xsl:choose>
1298             <xsl:when test="start/allDay='true'">
1299               <strong>all day event</strong>
1300             </xsl:when>
1301             <xsl:otherwise>
1302               <xsl:value-of select="start/hour"/>:<xsl:value-of select="start/minute"/>
1303               <xsl:if test="start/ampm">
1304                 <xsl:value-of select="start/ampm"/>
1305               </xsl:if>
1306             </xsl:otherwise>
1307           </xsl:choose>
1308         </td>
1309       </tr>
1310       <tr>
1311         <th>
1312           End:
1313         </th>
1314         <td>
1315           <xsl:choose>
1316             <xsl:when test="end/endtype = 'none'">
1317               <div class="dateFields" id="noDuration">
1318                 This event has no duration / end date
1319               </div>
1320             </xsl:when>
1321             <xsl:when test="end/endtype = 'duration'">
1322               <div class="dateFields">
1323                 <div class="invisible" id="endDuration">
1324                   <div class="durationBox">
1325                     <input type="text" name="eventDuration.daysStr" size="2" value="0" onChange="window.document.peForm.durationType[0].checked = true;"/>days
1326                     <input type="text" name="eventDuration.hoursStr" size="2" value="1" onChange="window.document.peForm.durationType[0].checked = true;"/>hours
1327                     <input type="text" name="eventDuration.minutesStr" size="2" value="0" onChange="window.document.peForm.durationType[0].checked = true;"/>minutes
1328                   </div>
1329                   <span class="durationSpacerText">or</span>
1330                   <div class="durationBox">
1331                     <input type="text" name="eventDuration.weeksStr" size="2" value="0" onChange="window.document.peForm.durationType[1].checked = true;"/>weeks
1332                   </div>
1333                 </div>
1334               </div>
1335             </xsl:when>
1336             <xsl:otherwise>
1337               <xsl:value-of select="end/dateTime/year"/>-<xsl:value-of select="end/dateTime/month"/>-<xsl:value-of select="end/dateTime/day"/>
1338               <xsl:text> </xsl:text>
1339               <xsl:value-of select="end/dateTime/hour"/>:<xsl:value-of select="end/dateTime/minute"/>
1340               <xsl:text> </xsl:text>
1341               <xsl:if test="end/dateTime/ampm">
1342                 <xsl:value-of select="end/dateTime/ampm"/>
1343               </xsl:if>
1344             </xsl:otherwise>
1345           </xsl:choose>
1346         </td>
1347       </tr>
1348
1349       <!--  Category  -->
1350       <tr>
1351         <th>
1352           Category:
1353         </th>
1354         <td>
1355           <xsl:value-of select="category"/>
1356         </td>
1357       </tr>
1358
1359       <!--  Description  -->
1360       <tr>
1361         <th>
1362           Description:
1363         </th>
1364         <td>
1365           <xsl:value-of select="desc"/>
1366         </td>
1367       </tr>
1368       <!-- Cost -->
1369       <tr>
1370         <th class="optional">
1371           Price:
1372         </th>
1373         <td>
1374           <xsl:value-of select="cost"/>
1375         </td>
1376       </tr>
1377       <!-- Url -->
1378       <tr>
1379         <th class="optional">
1380           URL:
1381         </th>
1382         <td>
1383           <xsl:variable name="eventLink" select="link"/>
1384           <a href="{$eventLink}">
1385             <xsl:value-of select="link"/>
1386           </a>
1387         </td>
1388       </tr>
1389       <!-- Location -->
1390       <tr>
1391         <th>
1392           Location:
1393         </th>
1394         <td>
1395           <xsl:value-of select="location"/>
1396         </td>
1397       </tr>
1398
1399       <!-- Sponsor -->
1400       <tr>
1401         <th>
1402           Contact:
1403         </th>
1404         <td>
1405           <xsl:value-of select="sponsor"/>
1406         </td>
1407       </tr>
1408
1409       <!-- Owner -->
1410       <tr>
1411         <th>
1412           Owner:
1413         </th>
1414         <td>
1415           <xsl:value-of select="creator"/>
1416         </td>
1417       </tr>
1418
1419     </table>
1420
1421
1422     <!--<xsl:if test="/bedeworkadmin/canEdit = 'true' or /bedeworkadmin/userInfo/superUser = 'true'">
1423       <xsl:variable name="subscriptionId" select="subscription/id"/>
1424       <xsl:variable name="calPath" select="calendar/encodedPath"/>
1425       <xsl:variable name="guid" select="guid"/>
1426       <xsl:variable name="recurrenceId" select="recurrenceId"/>
1427       <h3>
1428         <a href="{$event-fetchForUpdate}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">
1429           Edit Event
1430         </a>
1431       </h3>
1432     </xsl:if>-->
1433   </xsl:template>
1434
1435   <!--+++++++++++++++ Sponsors (Contacts) ++++++++++++++++++++-->
1436   <xsl:template name="sponsorList">
1437     <h2>Edit Contacts</h2>
1438     <p>
1439       Select the contact you would like to update:
1440       <input type="button" name="return" value="Add new contact" onclick="javascript:location.replace('{$sponsor-initAdd}')"/>
1441     </p>
1442
1443     <table id="commonListTable">
1444       <tr>
1445         <th>Name</th>
1446         <th>Phone</th>
1447         <th>Email</th>
1448         <th>URL</th>
1449       </tr>
1450
1451       <xsl:for-each select="/bedeworkadmin/sponsors/sponsor">
1452         <tr>
1453           <td>
1454             <xsl:copy-of select="name" />
1455           </td>
1456           <td>
1457             <xsl:value-of select="phone" />
1458           </td>
1459           <td>
1460             <xsl:variable name="email" select="email"/>
1461             <a href="mailto:{$email}">
1462               <xsl:value-of select="email"/>
1463             </a>
1464           </td>
1465           <td>
1466             <xsl:variable name="link" select="link" />
1467             <a href="{$link}" target="linktest">
1468               <xsl:value-of select="link" />
1469             </a>
1470           </td>
1471         </tr>
1472       </xsl:for-each>
1473     </table>
1474   </xsl:template>
1475
1476   <xsl:template name="modSponsor">
1477     <form action="{$sponsor-update}" method="post">
1478       <h2>Contact Information</h2>
1479
1480       <table id="eventFormTable">
1481         <tr>
1482           <td class="fieldName">
1483             Contact:
1484           </td>
1485           <td>
1486             <xsl:copy-of select="/bedeworkadmin/formElements/form/name/*"/>
1487           </td>
1488         </tr>
1489         <tr>
1490           <td class="fieldName">
1491             Contact Phone Number:
1492           </td>
1493           <td>
1494             <xsl:copy-of select="/bedeworkadmin/formElements/form/phone/*"/>
1495             <span class="fieldInfo"> (optional)</span>
1496           </td>
1497         </tr>
1498         <tr>
1499           <td class="optional">
1500             Contact's URL:
1501           </td>
1502           <td>
1503             <xsl:copy-of select="/bedeworkadmin/formElements/form/link/*"/>
1504             <span class="fieldInfo"> (optional)</span>
1505           </td>
1506         </tr>
1507         <tr>
1508           <td class="optional">
1509             Contact Email Address:
1510           </td>
1511           <td>
1512             <xsl:copy-of select="/bedeworkadmin/formElements/form/email/*"/>
1513             <span class="fieldInfo"> (optional)</span>
1514           </td>
1515         </tr>
1516       </table>
1517
1518       <table border="0" id="submitTable">
1519         <tr>
1520           <xsl:choose>
1521             <xsl:when test="/bedeworkadmin/creating='true'">
1522               <td>
1523                 <input type="submit" name="addSponsor" value="Add Contact"/>
1524                 <input type="submit" name="cancelled" value="Cancel"/>
1525                 <input type="reset" value="Clear"/>
1526               </td>
1527             </xsl:when>
1528             <xsl:otherwise>
1529               <td>
1530                 <input type="submit" name="updateSponsor" value="Update Contact"/>
1531                 <input type="submit" name="cancelled" value="Cancel"/>
1532                 <input type="reset" value="Reset"/>
1533               </td>
1534               <td align="right">
1535                 <input type="submit" name="delete" value="Delete Contact"/>
1536               </td>
1537             </xsl:otherwise>
1538           </xsl:choose>
1539         </tr>
1540       </table>
1541
1542     </form>
1543   </xsl:template>
1544
1545   <xsl:template name="deleteSponsorConfirm">
1546     <h2>Ok to delete this contact?</h2>
1547     <p id="confirmButtons">
1548       <xsl:copy-of select="/bedeworkadmin/formElements/*"/>
1549     </p>
1550
1551     <table class="eventFormTable">
1552       <tr>
1553         <th>Name</th>
1554         <td>
1555           <xsl:value-of select="/bedeworkadmin/sponsor/name" />
1556         </td>
1557       </tr>
1558       <tr>
1559         <th>Phone</th>
1560         <td>
1561           <xsl:value-of select="/bedeworkadmin/sponsor/phone" />
1562         </td>
1563       </tr>
1564       <tr>
1565         <th>Email</th>
1566         <td>
1567           <xsl:value-of select="/bedeworkadmin/sponsor/email" />
1568         </td>
1569       </tr>
1570       <tr>
1571         <th>URL</th>
1572         <td>
1573           <xsl:value-of select="/bedeworkadmin/sponsor/link" />
1574         </td>
1575       </tr>
1576     </table>
1577   </xsl:template>
1578
1579    <!--+++++++++++++++ Locations ++++++++++++++++++++-->
1580   <xsl:template name="locationList">
1581     <h2>Edit Locations</h2>
1582     <p>
1583       Select the location that you would like to update:
1584       <input type="button" name="return" value="Add new location" onclick="javascript:location.replace('{$location-initAdd}')"/>
1585     </p>
1586
1587     <table id="commonListTable">
1588       <tr>
1589         <th>Address</th>
1590         <th>Subaddress</th>
1591         <th>URL</th>
1592       </tr>
1593
1594       <xsl:for-each select="/bedeworkadmin/locations/location">
1595         <tr>
1596           <td>
1597             <xsl:copy-of select="address/*"/>
1598           </td>
1599           <td>
1600             <xsl:value-of select="subaddress"/>
1601           </td>
1602           <td>
1603             <xsl:variable name="link" select="link" />
1604             <a href="{$link}" target="linktest">
1605               <xsl:value-of select="link" />
1606             </a>
1607           </td>
1608         </tr>
1609       </xsl:for-each>
1610     </table>
1611   </xsl:template>
1612
1613   <xsl:template name="modLocation">
1614     <xsl:choose>
1615       <xsl:when test="/bedeworkadmin/creating='true'">
1616         <h2>Add Location</h2>
1617       </xsl:when>
1618       <xsl:otherwise>
1619         <h2>Update Location</h2>
1620       </xsl:otherwise>
1621     </xsl:choose>
1622
1623     <form action="{$location-update}" method="post">
1624       <table id="eventFormTable">
1625         <tr>
1626           <td class="fieldName">
1627             Address:
1628           </td>
1629           <td>
1630             <xsl:copy-of select="/bedeworkadmin/formElements/form/address/*"/>
1631           </td>
1632         </tr>
1633         <tr>
1634           <td class="optional">
1635             Subaddress:
1636           </td>
1637           <td>
1638             <xsl:copy-of select="/bedeworkadmin/formElements/form/subaddress/*"/>
1639             <span class="fieldInfo"> (optional)</span>
1640           </td>
1641         </tr>
1642         <tr>
1643           <td class="optional">
1644             Location's URL:
1645           </td>
1646           <td>
1647             <xsl:copy-of select="/bedeworkadmin/formElements/form/link/*"/>
1648             <span class="fieldInfo"> (optional)</span>
1649           </td>
1650         </tr>
1651       </table>
1652
1653       <table border="0" id="submitTable">
1654         <tr>
1655           <xsl:choose>
1656             <xsl:when test="/bedeworkadmin/creating='true'">
1657               <td>
1658                 <input type="submit" name="addLocation" value="Add Location"/>
1659                 <input type="submit" name="cancelled" value="Cancel"/>
1660                 <input type="reset" value="Clear"/>
1661               </td>
1662             </xsl:when>
1663             <xsl:otherwise>
1664               <td>
1665                 <input type="submit" name="updateLocation" value="Update Location"/>
1666                 <input type="submit" name="cancelled" value="Cancel"/>
1667                 <input type="reset" value="Reset"/>
1668               </td>
1669               <td align="right">
1670                 <input type="submit" name="delete" value="Delete Location"/>
1671               </td>
1672             </xsl:otherwise>
1673           </xsl:choose>
1674         </tr>
1675       </table>
1676     </form>
1677   </xsl:template>
1678
1679   <xsl:template name="deleteLocationConfirm">
1680     <h2>Ok to delete this location?</h2>
1681     <p id="confirmButtons">
1682       <xsl:copy-of select="/bedeworkadmin/formElements/*"/>
1683     </p>
1684
1685     <table class="eventFormTable">
1686       <tr>
1687         <td class="fieldName">
1688             Address:
1689           </td>
1690         <td>
1691           <xsl:value-of select="/bedeworkadmin/location/address"/>
1692         </td>
1693       </tr>
1694       <tr>
1695         <td class="optional">
1696             Subaddress:
1697           </td>
1698         <td>
1699           <xsl:value-of select="/bedeworkadmin/location/subaddress"/>
1700         </td>
1701       </tr>
1702       <tr>
1703         <td class="optional">
1704             Location's URL:
1705           </td>
1706         <td>
1707           <xsl:variable name="link" select="/bedeworkadmin/location/link"/>
1708           <a href="{$link}">
1709             <xsl:value-of select="/bedeworkadmin/location/link"/>
1710           </a>
1711         </td>
1712       </tr>
1713     </table>
1714   </xsl:template>
1715
1716   <!--+++++++++++++++ Categories ++++++++++++++++++++-->
1717   <xsl:template name="categoryList">
1718     <h2>Edit Categories</h2>
1719     <p>
1720       Select the category you would like to update:
1721       <input type="button" name="return" value="Add new category" onclick="javascript:location.replace('{$category-initAdd}')"/>
1722     </p>
1723
1724     <table id="commonListTable">
1725       <tr>
1726         <th>Keyword</th>
1727         <th>Description</th>
1728       </tr>
1729
1730       <xsl:for-each select="/bedeworkadmin/categories/category">
1731         <xsl:variable name="categoryKey" select="normalize-space(keyword)"/>
1732         <tr>
1733           <td>
1734             <a href="{$category-fetchForUpdate}&amp;categoryKey={$categoryKey}">
1735               <xsl:value-of select="keyword"/>
1736             </a>
1737           </td>
1738           <td>
1739             <xsl:value-of select="desc"/>
1740           </td>
1741         </tr>
1742       </xsl:for-each>
1743     </table>
1744   </xsl:template>
1745
1746   <xsl:template name="modCategory">
1747     <xsl:choose>
1748       <xsl:when test="/bedeworkadmin/creating='true'">
1749         <h2>Add Category</h2>
1750         <form action="{$category-update}" method="post">
1751           <table id="eventFormTable">
1752             <tr>
1753               <td class="fieldName">
1754                 Keyword:
1755               </td>
1756               <td>
1757                 <input type="text" name="categoryWord.value" value="" size="40"/>
1758               </td>
1759             </tr>
1760             <tr>
1761               <td class="optional">
1762                 Description:
1763               </td>
1764               <td>
1765                 <textarea name="categoryDesc.value" rows="3" cols="60">
1766                 </textarea>
1767               </td>
1768             </tr>
1769           </table>
1770           <table border="0" id="submitTable">
1771             <tr>
1772               <td>
1773                 <input type="submit" name="addCategory" value="Add Category"/>
1774                 <input type="submit" name="cancelled" value="Cancel"/>
1775                 <input type="reset" value="Clear"/>
1776               </td>
1777             </tr>
1778           </table>
1779         </form>
1780       </xsl:when>
1781       <xsl:otherwise>
1782         <h2>Update Category</h2>
1783         <form action="{$category-update}" method="post">
1784           <table id="eventFormTable">
1785             <tr>
1786               <td class="fieldName">
1787             Keyword:
1788             </td>
1789               <td>
1790                 <xsl:variable name="keyword" select="normalize-space(/bedeworkadmin/currentCategory/category/keyword)"/>
1791                 <input type="text" name="categoryWord.value" value="{$keyword}" size="40"/>
1792               </td>
1793             </tr>
1794             <tr>
1795               <td class="optional">
1796             Description:
1797             </td>
1798               <td>
1799                 <textarea name="categoryDesc.value" rows="3" cols="60">
1800                   <xsl:value-of select="normalize-space(/bedeworkadmin/currentCategory/category/desc)"/>
1801                 </textarea>
1802               </td>
1803             </tr>
1804           </table>
1805
1806           <table border="0" id="submitTable">
1807             <tr>
1808               <td>
1809                 <input type="submit" name="updateCategory" value="Update Category"/>
1810                 <input type="submit" name="cancelled" value="Cancel"/>
1811                 <input type="reset" value="Reset"/>
1812               </td>
1813               <td align="right">
1814                 <input type="submit" name="delete" value="Delete Category"/>
1815               </td>
1816             </tr>
1817           </table>
1818         </form>
1819       </xsl:otherwise>
1820     </xsl:choose>
1821
1822
1823   </xsl:template>
1824
1825   <xsl:template name="deleteCategoryConfirm">
1826     <h2>Ok to delete this category?</h2>
1827     <p id="confirmButtons">
1828       <xsl:copy-of select="/bedeworkadmin/formElements/*"/>
1829     </p>
1830
1831     <table class="eventFormTable">
1832       <tr>
1833         <td class="fieldName">
1834           Keyword:
1835         </td>
1836         <td>
1837           <xsl:value-of select="/bedeworkadmin/currentCategory/category/keyword"/>
1838         </td>
1839       </tr>
1840       <tr>
1841         <td class="optional">
1842           Description:
1843         </td>
1844         <td>
1845           <xsl:value-of select="/bedeworkadmin/currentCategory/category/desc"/>
1846         </td>
1847       </tr>
1848     </table>
1849   </xsl:template>
1850
1851 <!--+++++++++++++++ Calendars ++++++++++++++++++++-->
1852   <xsl:template match="calendars">
1853     <table id="calendarTable">
1854       <tr>
1855         <td class="cals">
1856           <h3>Public calendars</h3>
1857           <ul id="calendarTree">
1858             <xsl:choose>
1859               <xsl:when test="/bedeworkadmin/page='calendarDescriptions' or /bedeworkadmin/page='displayCalendar'">
1860                 <xsl:apply-templates select="calendar" mode="listForDisplay"/>
1861               </xsl:when>
1862               <xsl:otherwise>
1863                 <xsl:apply-templates select="calendar" mode="listForUpdate"/>
1864               </xsl:otherwise>
1865             </xsl:choose>
1866           </ul>
1867         </td>
1868         <td class="calendarContent">
1869           <xsl:choose>
1870             <xsl:when test="/bedeworkadmin/page='calendarList' or /bedeworkadmin/page='calendarReferenced'">
1871               <xsl:call-template name="calendarList"/>
1872             </xsl:when>
1873             <xsl:when test="/bedeworkadmin/page='calendarDescriptions'">
1874               <xsl:call-template name="calendarDescriptions"/>
1875             </xsl:when>
1876             <xsl:when test="/bedeworkadmin/page='displayCalendar'">
1877               <xsl:apply-templates select="/bedeworkadmin/currentCalendar" mode="displayCalendar"/>
1878             </xsl:when>
1879             <xsl:when test="/bedeworkadmin/page='deleteCalendarConfirm'">
1880               <xsl:apply-templates select="/bedeworkadmin/currentCalendar" mode="deleteCalendarConfirm"/>
1881             </xsl:when>
1882             <xsl:when test="/bedeworkadmin/creating='true'">
1883               <xsl:apply-templates select="/bedeworkadmin/currentCalendar" mode="addCalendar"/>
1884             </xsl:when>
1885             <xsl:otherwise>
1886               <xsl:apply-templates select="/bedeworkadmin/currentCalendar" mode="modCalendar"/>
1887             </xsl:otherwise>
1888           </xsl:choose>
1889         </td>
1890       </tr>
1891     </table>
1892   </xsl:template>
1893
1894   <xsl:template match="calendar" mode="listForUpdate">
1895     <xsl:variable name="calPath" select="encodedPath"/>
1896     <xsl:variable name="itemClass">
1897       <xsl:choose>
1898         <xsl:when test="calendarCollection='false'">folder</xsl:when>
1899         <xsl:otherwise>calendar</xsl:otherwise>
1900       </xsl:choose>
1901     </xsl:variable>
1902     <li class="{$itemClass}">
1903       <a href="{$calendar-fetchForUpdate}&amp;calPath={$calPath}" title="update">
1904         <xsl:value-of select="name"/>
1905       </a>
1906       <xsl:if test="calendarCollection='false'">
1907         <xsl:text> </xsl:text>
1908         <a href="{$calendar-initAdd}&amp;calPath={$calPath}" title="add a calendar or folder">
1909           <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="add a calendar or folder" border="0"/>
1910         </a>
1911       </xsl:if>
1912       <xsl:if test="calendar">
1913         <ul>
1914           <xsl:apply-templates select="calendar" mode="listForUpdate">
1915             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>--></xsl:apply-templates>
1916         </ul>
1917       </xsl:if>
1918     </li>
1919   </xsl:template>
1920
1921   <xsl:template match="calendar" mode="listForDisplay">
1922     <xsl:variable name="calPath" select="encodedPath"/>
1923     <xsl:variable name="itemClass">
1924       <xsl:choose>
1925         <xsl:when test="calendarCollection='false'">folder</xsl:when>
1926         <xsl:otherwise>calendar</xsl:otherwise>
1927       </xsl:choose>
1928     </xsl:variable>
1929     <li class="{$itemClass}">
1930       <a href="{$calendar-fetchForDisplay}&amp;calPath={$calPath}" title="display">
1931         <xsl:value-of select="name"/>
1932       </a>
1933       <xsl:if test="calendar">
1934         <ul>
1935           <xsl:apply-templates select="calendar" mode="listForDisplay">
1936             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>--></xsl:apply-templates>
1937         </ul>
1938       </xsl:if>
1939     </li>
1940   </xsl:template>
1941
1942   <xsl:template match="currentCalendar" mode="addCalendar">
1943     <h3>Add Calendar / Folder</h3>
1944     <form name="addCalForm" action="{$calendar-update}">
1945       <table class="eventFormTable">
1946         <tr>
1947           <th>Name:</th>
1948           <td>
1949             <xsl:variable name="curCalName" select="name"/>
1950             <input name="calendar.name" value="{$curCalName}" size="40"/>
1951           </td>
1952         </tr>
1953         <tr>
1954           <th>Summary:</th>
1955           <td>
1956             <xsl:variable name="curCalSummary" select="summary"/>
1957             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/>
1958           </td>
1959         </tr>
1960         <tr>
1961           <th>Description:</th>
1962           <td>
1963             <textarea name="calendar.description" cols="40" rows="4">
1964               <xsl:value-of select="desc"/>
1965             </textarea>
1966           </td>
1967         </tr>
1968         <tr>
1969           <th>Calendar/Folder:</th>
1970           <td>
1971             <xsl:choose>
1972               <xsl:when test="calendarCollection='true'">
1973                 <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar
1974                 <input type="radio" value="false" name="calendarCollection"/> Folder
1975               </xsl:when>
1976               <xsl:otherwise>
1977                 <input type="radio" value="true" name="calendarCollection"/> Calendar
1978                 <input type="radio" value="false" name="calendarCollection" checked="checked"/> Folder
1979               </xsl:otherwise>
1980             </xsl:choose>
1981           </td>
1982         </tr>
1983       </table>
1984
1985       <table border="0" id="submitTable">
1986         <tr>
1987           <td>
1988             <input type="submit" name="addCalendar" value="Add Calendar/Folder"/>
1989             <input type="submit" name="cancelled" value="Cancel"/>
1990             <input type="reset" value="Clear"/>
1991           </td>
1992         </tr>
1993       </table>
1994     </form>
1995     <div id="sharingBox">
1996       <h3>Sharing</h3>
1997       Sharing may be added to a calendar once created.
1998     </div>
1999   </xsl:template>
2000
2001   <xsl:template match="currentCalendar" mode="modCalendar">
2002     <xsl:choose>
2003       <xsl:when test="calendarCollection='true'">
2004         <h3>Modify Calendar</h3>
2005       </xsl:when>
2006       <xsl:otherwise>
2007         <h3>Modify Folder</h3>
2008       </xsl:otherwise>
2009     </xsl:choose>
2010     <form name="modCalForm" action="{$calendar-update}">
2011       <table class="eventFormTable">
2012         <tr>
2013           <th>Path:</th>
2014           <td>
2015             <xsl:value-of select="path"/>
2016           </td>
2017         </tr>
2018         <tr>
2019           <th>Name:</th>
2020           <td>
2021             <xsl:value-of select="name"/>
2022           </td>
2023         </tr>
2024         <tr>
2025           <th>Mailing List ID:</th>
2026           <td>
2027             <xsl:value-of select="mailListId"/>
2028           </td>
2029         </tr>
2030         <tr>
2031           <th>Summary:</th>
2032           <td>
2033             <xsl:variable name="curCalSummary" select="summary"/>
2034             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/>
2035           </td>
2036         </tr>
2037         <tr>
2038           <th>Description:</th>
2039           <td>
2040             <textarea name="calendar.description" cols="40" rows="4">
2041               <xsl:value-of select="desc"/>
2042             </textarea>
2043           </td>
2044         </tr>
2045         <tr>
2046           <th>Calendar/Folder:</th>
2047           <td>
2048             <xsl:choose>
2049               <xsl:when test="calendarCollection='true'">
2050                 <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar
2051                 <input type="radio" value="false" name="calendarCollection"/> Folder
2052               </xsl:when>
2053               <xsl:otherwise>
2054                 <input type="radio" value="true" name="calendarCollection"/> Calendar
2055                 <input type="radio" value="false" name="calendarCollection" checked="checked"/> Folder
2056               </xsl:otherwise>
2057             </xsl:choose>
2058           </td>
2059         </tr>
2060       </table>
2061
2062       <table border="0" id="submitTable">
2063         <tr>
2064           <td>
2065             <xsl:choose>
2066               <xsl:when test="calendarCollection='true'">
2067                 <input type="submit" name="updateCalendar" value="Update Calendar"/>
2068               </xsl:when>
2069               <xsl:otherwise>
2070                 <input type="submit" name="updateCalendar" value="Update Folder"/>
2071               </xsl:otherwise>
2072             </xsl:choose>
2073             <input type="submit" name="cancelled" value="Cancel"/>
2074             <input type="reset" value="Reset"/>
2075           </td>
2076           <td align="right">
2077             <xsl:choose>
2078               <xsl:when test="calendarCollection='true'">
2079                 <input type="submit" name="delete" value="Delete Calendar"/>
2080               </xsl:when>
2081               <xsl:otherwise>
2082                 <input type="submit" name="delete" value="Delete Folder"/>
2083               </xsl:otherwise>
2084             </xsl:choose>
2085           </td>
2086         </tr>
2087       </table>
2088     </form>
2089     <div id="sharingBox">
2090       <xsl:variable name="calPath" select="path"/>
2091       <h3>Sharing</h3>
2092       <table class="common">
2093         <tr>
2094           <th class="commonHeader" colspan="2">Current access:</th>
2095         </tr>
2096         <xsl:for-each select="acl/ace">
2097           <tr>
2098             <th class="thin">
2099               <xsl:choose>
2100                 <xsl:when test="invert">
2101                   <em>Deny to
2102                   <xsl:choose>
2103                     <xsl:when test="invert/principal/href">
2104                       <xsl:value-of select="invert/principal/href"/>
2105                       </xsl:when>
2106                       <xsl:when test="invert/principal/property">
2107                         <xsl:value-of select="name(invert/principal/property/*)"/>
2108                       </xsl:when>
2109                       <xsl:otherwise>
2110                         <xsl:value-of select="name(invert/principal/*)"/>
2111                       </xsl:otherwise>
2112                     </xsl:choose>
2113                   </em>
2114                 </xsl:when>
2115                 <xsl:otherwise>
2116                   <xsl:choose>
2117                     <xsl:when test="principal/href">
2118                       <xsl:value-of select="principal/href"/>
2119                     </xsl:when>
2120                     <xsl:when test="principal/property">
2121                       <xsl:value-of select="name(principal/property/*)"/>
2122                     </xsl:when>
2123                     <xsl:otherwise>
2124                       <xsl:value-of select="name(principal/*)"/>
2125                     </xsl:otherwise>
2126                   </xsl:choose>
2127                 </xsl:otherwise>
2128               </xsl:choose>
2129             </th>
2130             <td>
2131               <xsl:for-each select="grant/node()">
2132                 <xsl:value-of select="name(.)"/>&#160;&#160;
2133               </xsl:for-each>
2134             </td>
2135           </tr>
2136         </xsl:for-each>
2137       </table>
2138       <form name="calendarShareForm" action="{$calendar-setAccess}" id="shareForm" method="post">
2139         <input type="hidden" name="calPath" value="{$calPath}"/>
2140         <table cellpadding="0" id="shareFormTable" class="common">
2141           <tr>
2142             <th colspan="2" class="commonHeader">Add:</th>
2143           </tr>
2144           <tr>
2145             <td>
2146               <h5>Who:</h5>
2147               <input type="text" name="who" size="20"/>
2148               <br/>
2149               <input type="radio" value="user" name="whoType" checked="checked"/> user
2150               <input type="radio" value="group" name="whoType"/> group
2151               <p>OR</p>
2152               <p>
2153                 <input type="radio" value="auth" name="whoType"/> all authorized users<br/>
2154                 <input type="radio" value="other" name="whoType"/> other users
2155               </p>
2156             </td>
2157             <td>
2158               <h5>Rights:</h5>
2159               <ul id="howList">
2160
2161                 <!--<li>
2162                   <input type="radio" value="A" name="how"/> All
2163                   <ul>
2164                     <li>
2165                       <input type="radio" value="R" name="how" checked="checked"/> Read
2166                       <ul>
2167                         <li>
2168                           <input type="radio" value="r" name="how" disabled="disabled"/> Read acl
2169                         </li>
2170                         <li>
2171                           <input type="radio" value="P" name="how" disabled="disabled"/> Read current user privilege set
2172                         </li>
2173                         <li>
2174                           <input type="radio" value="f" name="how"/> Read free/busy
2175                         </li>
2176                       </ul>
2177                     </li>
2178                     <li>
2179                       <input type="radio" value="W" name="how"/> Write
2180                       <ul>
2181                         <li>
2182                           <input type="radio" value="a" name="how" disabled="disabled"/> Write acl
2183                         </li>
2184                         <li>
2185                           <input type="radio" value="p" name="how" disabled="disabled"/> Write properties
2186                         </li>
2187                         <li>
2188                           <input type="radio" value="c" name="how"/> Write content
2189                         </li>
2190                         <li>
2191                           <input type="radio" value="b" name="how" disabled="disabled"/> Bind (includes scheduling)
2192                         </li>
2193                         <li>
2194                           <input type="radio" value="u" name="how"/> Unbind (destroy)
2195                         </li>
2196                       </ul>
2197                     </li>
2198                   </ul>
2199                 </li>
2200                 <li>
2201                   <input type="radio" value="N" name="how"/> None
2202                 </li>-->
2203
2204                 <li>
2205                   <input type="radio" value="A" name="how"/>
2206                   <strong>All</strong> (read, write, delete)</li>
2207                 <li class="padTop">
2208                   <input type="radio" value="R" name="how" checked="checked"/>
2209                   <strong>Read</strong> (content, access, freebusy)
2210                 </li>
2211                 <li>
2212                   <input type="radio" value="f" name="how"/> Read freebusy only
2213                 </li>
2214                 <li class="padTop">
2215                   <input type="radio" value="W" name="how"/>
2216                   <strong>Write and delete</strong> (content, access, properties)
2217                 </li>
2218                 <li>
2219                   <input type="radio" value="c" name="how"/> Write content only
2220                 </li>
2221                 <li>
2222                   <input type="radio" value="u" name="how"/> Delete only
2223                 </li>
2224                 <li class="padTop">
2225                   <input type="radio" value="Rc" name="how"/>
2226                   <strong>Read</strong> and <strong>Write content only</strong>
2227                 </li>
2228                 <li class="padTop">
2229                   <input type="radio" value="N" name="how"/>
2230                   <strong>None</strong>
2231                 </li>
2232               </ul>
2233             </td>
2234           </tr>
2235         </table>
2236         <input type="submit" name="submit" value="Submit"/>
2237       </form>
2238     </div>
2239   </xsl:template>
2240
2241   <xsl:template name="calendarList">
2242     <h3>Manage Calendars</h3>
2243     <ul>
2244       <li>Select an item from the calendar list on the left to modify
2245       a calendar or folder.</li>
2246       <li>Select the
2247       <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="true" border="0"/>
2248       icon to add a new calendar or folder to the tree.
2249         <ul>
2250           <li>Folders may only contain calendars and subfolders.</li>
2251           <li>Calendars may only contain events (and other calendar items).</li>
2252           <li>
2253             If a calendar is empty, it may be converted to a folder and vice
2254             versa.  If a calendar or folder are not empty, it may not be
2255             converted.
2256           </li>
2257         </ul>
2258       </li>
2259     </ul>
2260   </xsl:template>
2261
2262   <xsl:template name="calendarDescriptions">
2263     <h2>Calendar Information</h2>
2264     <ul>
2265       <li>Select an item from the calendar tree on the left to view all information
2266       about that calendar or folder.  The tree on the left represents the calendar
2267       heirarchy.</li>
2268     </ul>
2269
2270     <p>
2271       <strong>All Calendar Descriptions:</strong>
2272     </p>
2273     <table id="flatCalendarDescriptions" cellspacing="0">
2274       <tr>
2275         <th>Name</th>
2276         <th>Description</th>
2277       </tr>
2278       <xsl:for-each select="//calendar">
2279         <xsl:variable name="descClass">
2280           <xsl:choose>
2281             <xsl:when test="position() mod 2 = 0">even</xsl:when>
2282             <xsl:otherwise>odd</xsl:otherwise>
2283           </xsl:choose>
2284         </xsl:variable>
2285         <tr class="{$descClass}">
2286           <td>
2287             <xsl:value-of select="name"/>
2288           </td>
2289           <td>
2290             <xsl:value-of select="desc"/>
2291           </td>
2292         </tr>
2293       </xsl:for-each>
2294     </table>
2295   </xsl:template>
2296
2297   <xsl:template match="currentCalendar" mode="displayCalendar">
2298     <h2>Calendar Information</h2>
2299     <table class="eventFormTable">
2300       <tr>
2301         <th>Name:</th>
2302         <td>
2303           <xsl:value-of select="name"/>
2304         </td>
2305       </tr>
2306       <tr>
2307         <th>Path:</th>
2308         <td>
2309           <xsl:value-of select="path"/>
2310         </td>
2311       </tr>
2312       <tr>
2313         <th>Summary:</th>
2314         <td>
2315           <xsl:value-of select="summary"/>
2316         </td>
2317       </tr>
2318       <tr>
2319         <th>Description:</th>
2320         <td>
2321           <xsl:value-of select="desc"/>
2322         </td>
2323       </tr>
2324     </table>
2325   </xsl:template>
2326
2327   <xsl:template match="currentCalendar" mode="deleteCalendarConfirm">
2328     <xsl:choose>
2329       <xsl:when test="calendarCollection='true'">
2330         <h3>Delete Calendar</h3>
2331         <p>
2332           The following calendar will be deleted.  Continue?
2333         </p>
2334       </xsl:when>
2335       <xsl:otherwise>
2336         <h3>Delete Folder</h3>
2337         <p>
2338           The following folder <em>and all its contents</em> will be deleted.
2339           Continue?
2340         </p>
2341       </xsl:otherwise>
2342     </xsl:choose>
2343
2344     <form name="delCalForm" action="{$calendar-delete}">
2345       <table class="eventFormTable">
2346         <tr>
2347           <th>Path:</th>
2348           <td>
2349             <xsl:value-of select="path"/>
2350           </td>
2351         </tr>
2352         <tr>
2353           <th>Name:</th>
2354           <td>
2355             <xsl:value-of select="name"/>
2356           </td>
2357         </tr>
2358         <tr>
2359           <th>Summary:</th>
2360           <td>
2361             <xsl:value-of select="summary"/>
2362           </td>
2363         </tr>
2364         <tr>
2365           <th>Description:</th>
2366           <td>
2367             <xsl:value-of select="desc"/>
2368           </td>
2369         </tr>
2370       </table>
2371
2372       <table border="0" id="submitTable">
2373         <tr>
2374           <td>
2375             <input type="submit" name="cancelled" value="Cancel"/>
2376           </td>
2377           <td align="right">
2378             <xsl:choose>
2379               <xsl:when test="calendarCollection='true'">
2380                 <input type="submit" name="delete" value="Yes: Delete Calendar!"/>
2381               </xsl:when>
2382               <xsl:otherwise>
2383                 <input type="submit" name="delete" value="Yes: Delete Folder!"/>
2384               </xsl:otherwise>
2385             </xsl:choose>
2386           </td>
2387         </tr>
2388       </table>
2389     </form>
2390   </xsl:template>
2391
2392   <!-- the selectCalForEvent listing creates a calendar tree in a pop-up window -->
2393   <xsl:template name="selectCalForEvent">
2394     <div id="calTreeBlock">
2395       <h2>Select a calendar</h2>
2396       <!--<form name="toggleCals" action="{$event-selectCalForEvent}">
2397         <xsl:choose>
2398           <xsl:when test="/bedework/appvar[key='showAllCalsForEvent']/value = 'true'">
2399             <input type="radio" name="setappvar" value="showAllCalsForEvent(false)" onclick="submit()"/>
2400             show only writable calendars
2401             <input type="radio" name="setappvar" value="showAllCalsForEvent(true)" checked="checked" onclick="submit()"/>
2402             show all calendars
2403           </xsl:when>
2404           <xsl:otherwise>
2405             <input type="radio" name="setappvar" value="showAllCalsForEvent(false)" checked="checked" onclick="submit()"/>
2406             show only writable calendars
2407             <input type="radio" name="setappvar" value="showAllCalsForEvent(true)" onclick="submit()"/>
2408             show all calendars
2409           </xsl:otherwise>
2410         </xsl:choose>
2411       </form>-->
2412       <h4>Calendars</h4>
2413       <ul id="calendarTree">
2414         <xsl:apply-templates select="/bedeworkadmin/calendars/calendar" mode="selectCalForEventCalTree"/>
2415       </ul>
2416     </div>
2417   </xsl:template>
2418
2419   <xsl:template match="calendar" mode="selectCalForEventCalTree">
2420     <xsl:variable name="id" select="id"/>
2421     <li>
2422       <xsl:attribute name="class">
2423         <xsl:choose>
2424           <xsl:when test="calendarCollection='false'">folder</xsl:when>
2425           <xsl:otherwise>calendar</xsl:otherwise>
2426         </xsl:choose>
2427       </xsl:attribute>
2428       <xsl:variable name="calPath" select="path"/><!-- not the encodedPath when put in a form - otherwise it gets double encoded -->
2429       <xsl:variable name="calDisplay" select="path"/>
2430       <xsl:choose>
2431         <xsl:when test="currentAccess/current-user-privilege-set/privilege/write-content and (calendarCollection = 'true')">
2432           <a href="javascript:updateEventFormCalendar('{$calPath}','{$calDisplay}')">
2433             <strong>
2434               <xsl:value-of select="name"/>
2435             </strong>
2436           </a>
2437         </xsl:when>
2438         <xsl:otherwise>
2439           <xsl:value-of select="name"/>
2440         </xsl:otherwise>
2441       </xsl:choose>
2442       <xsl:if test="calendar">
2443         <ul>
2444           <xsl:apply-templates select="calendar" mode="selectCalForEventCalTree"/>
2445         </ul>
2446       </xsl:if>
2447     </li>
2448   </xsl:template>
2449
2450   <!--+++++++++++++++ Subscriptions ++++++++++++++++++++-->
2451   <xsl:template match="subscriptions">
2452     <table id="subsTable">
2453       <tr>
2454         <td class="cals">
2455           <h3>Public calendars</h3>
2456           <p class="smaller">
2457             Select a calendar below to add a <em><strong>new</strong>
2458             </em>
2459             internal subscription. <!-- or
2460             <a href="{$subscriptions-initAdd}&amp;calUri=please enter a calendar uri">
2461             subscribe to an external calendar</a>.-->
2462           </p>
2463           <ul id="calendarTree">
2464             <xsl:apply-templates select="/bedeworkadmin/subscriptions/subscribe/calendars/calendar" mode="subscribe"/>
2465           </ul>
2466         </td>
2467         <td class="subs">
2468           <xsl:choose>
2469             <xsl:when test="/bedeworkadmin/page='subscriptions'">
2470               <xsl:call-template name="subscriptionList"/>
2471             </xsl:when>
2472             <xsl:when test="/bedeworkadmin/creating='true'">
2473               <xsl:apply-templates select="subscription" mode="addSubscription"/>
2474             </xsl:when>
2475             <xsl:otherwise>
2476               <xsl:apply-templates select="subscription" mode="modSubscription"/>
2477             </xsl:otherwise>
2478           </xsl:choose>
2479         </td>
2480       </tr>
2481     </table>
2482   </xsl:template>
2483
2484   <xsl:template match="calendar" mode="subscribe">
2485     <xsl:variable name="calPath" select="encodedPath"/>
2486     <xsl:variable name="itemClass">
2487       <xsl:choose>
2488         <xsl:when test="calendarCollection='false'">folder</xsl:when>
2489         <xsl:otherwise>calendar</xsl:otherwise>
2490       </xsl:choose>
2491     </xsl:variable>
2492     <li class="{$itemClass}">
2493       <a href="{$subscriptions-initAdd}&amp;calPath={$calPath}">
2494         <xsl:value-of select="name"/>
2495       </a>
2496       <xsl:if test="calendar">
2497         <ul>
2498           <xsl:apply-templates select="calendar" mode="subscribe">
2499             <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>--></xsl:apply-templates>
2500         </ul>
2501       </xsl:if>
2502     </li>
2503   </xsl:template>
2504
2505   <xsl:template match="subscription" mode="addSubscription">
2506     <h2>Add New Subscription</h2>
2507     <p class="note">*the subsciption name must be unique</p>
2508     <form name="subscribeForm" action="{$subscriptions-subscribe}" method="post">
2509       <table class="eventFormTable">
2510         <tr>
2511           <th>Name*:</th>
2512           <td>
2513             <xsl:variable name="subName" select="name"/>
2514             <input type="text" value="{$subName}" name="subscription.name" size="60"/>
2515           </td>
2516         </tr>
2517         <xsl:if test="internal='false'">
2518           <tr>
2519             <th>Uri:</th>
2520             <td>
2521               <xsl:variable name="subUri" select="uri"/>
2522               <input type="text" value="{$subUri}" name="subscription.uri" size="60"/>
2523             </td>
2524           </tr>
2525         </xsl:if>
2526         <tr>
2527           <th>Display:</th>
2528           <td>
2529             <input type="radio" value="true" name="subscription.display"/> yes
2530             <input type="radio" value="false" name="subscription.display" checked="checked"/> no
2531           </td>
2532         </tr>
2533         <xsl:if test="/bedeworkadmin/userInfo/superUser='true'">
2534           <tr>
2535             <th>Unremovable:</th>
2536             <td>
2537               <input type="radio" value="true" name="unremoveable" size="60"/> true
2538               <input type="radio" value="false" name="unremoveable" size="60" checked="checked"/> false
2539             </td>
2540           </tr>
2541         </xsl:if>
2542         <tr>
2543           <th>Style:</th>
2544           <td>
2545             <xsl:variable name="subStyle" select="style"/>
2546             <input type="text" value="{$subStyle}" name="subscription.style" size="50"/>
2547             <div style="width: 400px">
2548               Enter a css class to style events rendered in the list and grid
2549               views.  Leave blank to render with the default colors, or select from
2550               one of the system-wide choices:
2551               <select name="bwColors" onchange="document.subscribeForm['subscription.style'].value = this.value">
2552                 <option value="">default</option>
2553                 <xsl:for-each select="document('subColors.xml')/subscriptionColors/color">
2554                   <xsl:variable name="subColor" select="."/>
2555                   <option value="{$subColor}" class="{$subColor}">
2556                     <xsl:value-of select="@name"/>
2557                   </option>
2558                 </xsl:for-each>
2559               </select>
2560               <p class="note">Note: This class is added alongside the default class used
2561               in the list and grid views.  It does not replace it, so create your
2562               style appropriately.</p>
2563             </div>
2564           </td>
2565         </tr>
2566       </table>
2567       <table border="0" id="submitTable">
2568         <tr>
2569           <td>
2570             <input type="submit" name="addSubscription" value="Add Subscription"/>
2571             <input type="submit" name="cancelled" value="Cancel"/>
2572             <input type="reset" value="Clear"/>
2573           </td>
2574         </tr>
2575       </table>
2576     </form>
2577   </xsl:template>
2578
2579   <xsl:template match="subscription" mode="modSubscription">
2580     <h2>Modify Subscription</h2>
2581     <form name="subscribeForm" action="{$subscriptions-subscribe}" method="post">
2582       <table class="eventFormTable">
2583         <tr>
2584           <th>Name*:</th>
2585           <td>
2586             <xsl:value-of select="name"/>
2587             <xsl:variable name="subName" select="name"/>
2588             <input type="hidden" value="{$subName}" name="name"/>
2589           </td>
2590         </tr>
2591         <xsl:choose>
2592           <xsl:when test="internal='false'">
2593             <tr>
2594               <th>Uri:</th>
2595               <td>
2596                 <xsl:variable name="subUri" select="uri"/>
2597                 <input type="text" value="{$subUri}" name="subscription.uri" size="60"/>
2598               </td>
2599             </tr>
2600           </xsl:when>
2601           <xsl:otherwise>
2602             <tr>
2603               <th>Uri:</th>
2604               <td>
2605                 <xsl:value-of select="uri"/>
2606               </td>
2607             </tr>
2608           </xsl:otherwise>
2609         </xsl:choose>
2610         <tr>
2611           <th>Display:</th>
2612           <td>
2613             <xsl:choose>
2614               <xsl:when test="display='true'">
2615                 <input type="radio" value="true" name="subscription.display" checked="checked"/> yes
2616                 <input type="radio" value="false" name="subscription.display"/> no
2617               </xsl:when>
2618               <xsl:otherwise>
2619                 <input type="radio" value="true" name="subscription.display"/> yes
2620                 <input type="radio" value="false" name="subscription.display" checked="checked"/> no
2621               </xsl:otherwise>
2622             </xsl:choose>
2623           </td>
2624         </tr>
2625         <xsl:if test="/bedeworkadmin/userInfo/superUser='true'">
2626           <tr>
2627             <th>Unremovable:</th>
2628             <td>
2629               <xsl:choose>
2630                 <xsl:when test="unremoveable='true'">
2631                   <input type="radio" value="true" name="unremoveable" size="60" checked="checked"/> true
2632                   <input type="radio" value="false" name="unremoveable" size="60"/> false
2633                 </xsl:when>
2634                 <xsl:otherwise>
2635                   <input type="radio" value="true" name="unremoveable" size="60"/> true
2636                   <input type="radio" value="false" name="unremoveable" size="60" checked="checked"/> false
2637                 </xsl:otherwise>
2638               </xsl:choose>
2639             </td>
2640           </tr>
2641         </xsl:if>
2642         <tr>
2643           <th>Style:</th>
2644           <td>
2645             <xsl:variable name="subStyle" select="style"/>
2646             <input type="text" value="{$subStyle}" name="subscription.style" size="60"/>
2647             <div style="width: 400px">
2648               Enter a css class to style events rendered in the list and grid
2649               views.  Leave blank to render with the default colors, or select from
2650               one of the system-wide choices:
2651               <select name="bwColors" onchange="document.subscribeForm['subscription.style'].value = this.value">
2652                 <option value="">default</option>
2653                 <xsl:for-each select="document('subColors.xml')/subscriptionColors/color">
2654                   <xsl:variable name="subColor" select="."/>
2655                   <option value="{$subColor}" class="{$subColor}">
2656                     <xsl:value-of select="@name"/>
2657                   </option>
2658                 </xsl:for-each>
2659               </select>
2660               <p class="note">Note: This class is added alongside the default class used
2661               in the list and grid views.  It does not replace it, so create your
2662               style appropriately.</p>
2663             </div>
2664           </td>
2665         </tr>
2666       </table>
2667       <table border="0" id="submitTable">
2668         <tr>
2669           <td>
2670             <input type="submit" name="updateSubscription" value="Update Subscription"/>
2671             <input type="submit" name="cancelled" value="Cancel"/>
2672             <input type="reset" value="Reset"/>
2673           </td>
2674           <td align="right">
2675             <input type="submit" name="delete" value="Delete Subscription"/>
2676           </td>
2677         </tr>
2678       </table>
2679     </form>
2680   </xsl:template>
2681
2682   <xsl:template name="subscriptionList">
2683     <h3>Current subscriptions</h3>
2684     <table id="commonListTable">
2685       <tr>
2686         <th>Name</th>
2687         <th>URI</th>
2688         <th>Style</th>
2689         <th>Display</th>
2690         <th>Unremovable</th>
2691         <th>External</th>
2692         <th>Deleted?</th>
2693       </tr>
2694       <xsl:for-each select="subscription">
2695         <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2696         <tr>
2697           <td>
2698             <xsl:variable name="subname" select="name"/>
2699             <a href="{$subscriptions-fetchForUpdate}&amp;subname={$subname}">
2700               <xsl:value-of select="name"/>
2701             </a>
2702           </td>
2703           <td>
2704             <xsl:value-of select="uri"/>
2705           </td>
2706           <td>
2707             <xsl:value-of select="style"/>
2708           </td>
2709           <td class="center">
2710             <xsl:if test="display='true'">
2711               <img src="{$resourcesRoot}/resources/greenCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
2712             </xsl:if>
2713           </td>
2714           <td class="center">
2715             <xsl:if test="unremoveable='true'">
2716               <img src="{$resourcesRoot}/resources/redCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
2717             </xsl:if>
2718           </td>
2719           <td class="center">
2720             <xsl:if test="internal='false'">
2721               <img src="{$resourcesRoot}/resources/greenCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
2722             </xsl:if>
2723           </td>
2724           <td class="center">
2725             <xsl:if test="calendarDeleted='true'">
2726               <img src="{$resourcesRoot}/resources/redCheckIcon.gif" width="13" height="13" alt="true" border="0"/>
2727             </xsl:if>
2728           </td>
2729         </tr>
2730       </xsl:for-each>
2731     </table>
2732     <!--<h4><a href="{$subscriptions-initAdd}&amp;calUri=please enter a calendar uri">Subscribe to a remote calendar</a> (by URI)</h4>-->
2733   </xsl:template>
2734
2735   <!--+++++++++++++++ Views ++++++++++++++++++++-->
2736   <xsl:template match="views" mode="viewList">
2737
2738     <h3>Add a new view</h3>
2739     <form name="addView" action="{$view-addView}" method="post">
2740       <input type="text" name="name" size="60"/>
2741       <input type="submit" value="add view" name="addview"/>
2742     </form>
2743
2744     <h3>Views</h3>
2745     <table id="commonListTable">
2746       <tr>
2747         <th>Name</th>
2748         <th>Included subscriptions</th>
2749       </tr>
2750
2751       <xsl:for-each select="view">
2752         <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2753         <tr>
2754           <td>
2755             <xsl:variable name="viewName" select="name"/>
2756             <a href="{$view-fetchForUpdate}&amp;name={$viewName}">
2757               <xsl:value-of select="name"/>
2758             </a>
2759           </td>
2760           <td>
2761             <xsl:for-each select="subscriptions/subscription">
2762               <xsl:value-of select="name"/>
2763               <xsl:if test="position()!=last()">, </xsl:if>
2764             </xsl:for-each>
2765           </td>
2766         </tr>
2767       </xsl:for-each>
2768     </table>
2769   </xsl:template>
2770
2771   <xsl:template name="modView">
2772     <h2>Update View</h2>
2773     <xsl:variable name="viewName" select="/bedeworkadmin/views/view/name"/>
2774     <h3 class="viewName">
2775       <xsl:value-of select="$viewName"/>
2776     </h3>
2777     <table id="viewsTable">
2778       <tr>
2779         <td class="subs">
2780           <h3>Available Subscriptions:</h3>
2781
2782           <table class="subscriptionsListSubs">
2783             <xsl:for-each select="/bedeworkadmin/subscriptions/subscription">
2784               <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2785               <xsl:if test="not(/bedeworkadmin/views/view/subscriptions/subscription/name=name)">
2786                 <tr>
2787                   <td>
2788                     <xsl:value-of select="name"/>
2789                   </td>
2790                   <td class="arrows">
2791                     <xsl:variable name="subAddName" select="name"/>
2792                     <a href="{$view-update}&amp;name={$viewName}&amp;add={$subAddName}">
2793                       <img src="{$resourcesRoot}/resources/arrowRight.gif"
2794                           width="13" height="13" border="0"
2795                           alt="add subscription"/>
2796                     </a>
2797                   </td>
2798                 </tr>
2799               </xsl:if>
2800             </xsl:for-each>
2801           </table>
2802         </td>
2803         <td class="view">
2804           <h3>Active Subscriptions:</h3>
2805           <table class="subscriptionsListView">
2806             <xsl:for-each select="/bedeworkadmin/views/view/subscriptions/subscription">
2807               <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
2808               <tr>
2809                 <td class="arrows">
2810                   <xsl:variable name="subRemoveName" select="name"/>
2811                   <a href="{$view-update}&amp;name={$viewName}&amp;remove={$subRemoveName}">
2812                     <img src="{$resourcesRoot}/resources/arrowLeft.gif"
2813                         width="13" height="13" border="0"
2814                         alt="add subscription"/>
2815                   </a>
2816                 </td>
2817                 <td>
2818                   <xsl:value-of select="name"/>
2819                 </td>
2820               </tr>
2821             </xsl:for-each>
2822           </table>
2823         </td>
2824       </tr>
2825     </table>
2826     <table border="0" id="submitTable">
2827       <tr>
2828         <td>
2829           <input type="button" name="return" value="Return to Views Listing" onclick="javascript:location.replace('{$view-fetch}')"/>
2830         </td>
2831         <td align="right">
2832           <form name="deleteViewForm" action="{$view-fetchForUpdate}" method="post">
2833             <input type="submit" name="deleteButton" value="Delete View"/>
2834             <input type="hidden" name="name" value="{$viewName}"/>
2835             <input type="hidden" name="delete" value="yes"/>
2836           </form>
2837         </td>
2838       </tr>
2839     </table>
2840   </xsl:template>
2841
2842   <xsl:template name="deleteViewConfirm">
2843     <h2>Remove View?</h2>
2844
2845     <xsl:variable name="viewName" select="/bedeworkadmin/views/view/name"/>
2846     <p>The following view will be removed. Continue?</p>
2847
2848     <h3 class="viewName">
2849       <xsl:value-of select="$viewName"/>
2850     </h3>
2851     <form name="removeView" action="{$view-remove}">
2852       <input type="hidden" name="name" value="{$viewName}"/>
2853       <input type="submit" name="delete" value="Yes: Remove View"/>
2854       <input type="submit" name="cancelled" value="No: Cancel"/>
2855     </form>
2856
2857   </xsl:template>
2858
2859   <!--==== UPLOAD ====-->
2860   <xsl:template name="upload">
2861   <!-- The name "eventForm" is referenced by several javascript functions. Do not
2862     change it without modifying includes.js -->
2863     <form name="eventForm" method="post" action="{$event-upload}" id="standardForm" enctype="multipart/form-data">
2864       <h2>Upload iCAL File</h2>
2865       <table class="common" cellspacing="0">
2866         <tr>
2867           <td class="fieldname">
2868             Filename:
2869           </td>
2870           <td align="left">
2871             <input type="file" name="uploadFile" size="60" />
2872           </td>
2873         </tr>
2874         <tr>
2875           <td class="fieldname padMeTop">
2876             Into calendar:
2877           </td>
2878           <td align="left" class="padMeTop">
2879             <input type="hidden" name="newCalPath" value=""/>
2880             <span id="bwEventCalDisplay">
2881               <em>none selected</em>
2882             </span>
2883             <xsl:text> </xsl:text>
2884             [<a href="javascript:launchCalSelectWindow('{$event-selectCalForEvent}')" class="small">change</a>]
2885           </td>
2886         </tr>
2887         <!--<tr>
2888           <td class="fieldname padMeTop">
2889             Effects free/busy:
2890           </td>
2891           <td align="left" class="padMeTop">
2892             <input type="radio" value="" name="transparency" checked="checked"/> accept event's settings<br/>
2893             <input type="radio" value="OPAQUE" name="transparency"/> yes <span class="note">(opaque: event status affects your free/busy)</span><br/>
2894             <input type="radio" value="TRANSPARENT" name="transparency"/> no <span class="note">(transparent: event status does not affect your free/busy)</span><br/>
2895           </td>
2896         </tr>-->
2897         <tr>
2898           <td class="fieldname padMeTop">
2899             Status:
2900           </td>
2901           <td align="left" class="padMeTop">
2902             <input type="radio" value="" name="status" checked="checked"/> accept event's status<br/>
2903             <input type="radio" value="CONFIRMED" name="status"/> confirmed<br/>
2904             <input type="radio" value="TENTATIVE" name="status"/> tentative<br/>
2905             <input type="radio" value="CANCELLED" name="status"/> cancelled<br/>
2906           </td>
2907         </tr>
2908       </table>
2909       <table border="0" id="submitTable">
2910         <tr>
2911           <td>
2912             <input name="submit" type="submit" value="Continue"/>
2913             <input name="cancelled" type="submit" value="Cancel"/>
2914           </td>
2915         </tr>
2916       </table>
2917     </form>
2918   </xsl:template>
2919
2920   <!--+++++++++++++++ System Parameters (preferences) ++++++++++++++++++++-->
2921   <xsl:template name="modSyspars">
2922     <h2>Modify System Parameters</h2>
2923     <p>
2924       Do not change unless you know what you're doing.<br/>
2925       Changes to these parameters have wide impact on the system.
2926     </p>
2927     <form name="systemParamsForm" action="{$system-update}" method="post">
2928       <table class="eventFormTable">
2929         <tr>
2930           <th>Default timezone:</th>
2931           <td>
2932             <xsl:variable name="tzid" select="/bedeworkadmin/system/tzid"/>
2933             <input value="{$tzid}" name="tzid" size="20"/>
2934           </td>
2935           <td>
2936             Default timezone id for date/time values. This should normally be your local timezone
2937           </td>
2938         </tr>
2939         <tr>
2940           <th>Default user view name:</th>
2941           <td>
2942             <xsl:variable name="defaultViewName" select="/bedeworkadmin/system/defaultUserViewName"/>
2943             <input value="{$defaultViewName}" name="defaultUserViewName" size="20"/>
2944           </td>
2945           <td>
2946             Name used for default view created when a new user is added
2947           </td>
2948         </tr>
2949         <tr>
2950           <th>Http connections per user:</th>
2951           <td>
2952             <xsl:variable name="httpPerUser" select="/bedeworkadmin/system/httpConnectionsPerUser"/>
2953             <input value="{$httpPerUser}" name="httpConnectionsPerUser" size="20"/>
2954           </td>
2955           <td></td>
2956         </tr>
2957         <tr>
2958           <th>Http connections per host:</th>
2959           <td>
2960             <xsl:variable name="httpPerHost" select="/bedeworkadmin/system/httpConnectionsPerHost"/>
2961             <input value="{$httpPerHost}" name="httpConnectionsPerHost" size="20"/>
2962           </td>
2963           <td></td>
2964         </tr>
2965         <tr>
2966           <th>Total http connections:</th>
2967           <td>
2968             <xsl:variable name="httpTotal" select="/bedeworkadmin/system/httpConnections"/>
2969             <input value="{$httpTotal}" name="httpConnections" size="20"/>
2970           </td>
2971           <td></td>
2972         </tr>
2973         <tr>
2974           <th>Maximum length of public event description:</th>
2975           <td>
2976             <xsl:variable name="maxPublicDescriptionLength" select="/bedeworkadmin/system/maxPublicDescriptionLength"/>
2977             <input value="{$maxPublicDescriptionLength}" name="maxPublicDescriptionLength" size="20"/>
2978           </td>
2979           <td></td>
2980         </tr>
2981         <tr>
2982           <th>Maximum length of user event description:</th>
2983           <td>
2984             <xsl:variable name="maxUserDescriptionLength" select="/bedeworkadmin/system/maxUserDescriptionLength"/>
2985             <input value="{$maxUserDescriptionLength}" name="maxUserDescriptionLength" size="20"/>
2986           </td>
2987           <td></td>
2988         </tr>
2989         <tr>
2990           <th>Maximum size of a user entity:</th>
2991           <td>
2992             <xsl:variable name="maxUserEntitySize" select="/bedeworkadmin/system/maxUserEntitySize"/>
2993             <input value="{$maxUserEntitySize}" name="maxUserEntitySize" size="20"/>
2994           </td>
2995           <td></td>
2996         </tr>
2997         <tr>
2998           <th>Default user quota:</th>
2999           <td>
3000             <xsl:variable name="defaultUserQuota" select="/bedeworkadmin/system/defaultUserQuota"/>
3001             <input value="{$defaultUserQuota}" name="defaultUserQuota" size="20"/>
3002           </td>
3003           <td></td>
3004         </tr>
3005       </table>
3006       <table border="0" id="submitTable">
3007         <tr>
3008           <td>
3009             <input type="submit" name="updateSystemParams" value="Update"/>
3010             <input type="submit" name="cancelled" value="Cancel"/>
3011             <input type="reset" value="Reset"/>
3012           </td>
3013         </tr>
3014       </table>
3015     </form>
3016   </xsl:template>
3017
3018   <!--+++++++++++++++ Calendar Suites (calsuite) ++++++++++++++++++++-->
3019   <xsl:template match="calSuites" mode="calSuiteList">
3020     <h2>Manage Calendar Suites</h2>
3021
3022     <h4>Calendar suites:</h4>
3023     <p>
3024       <input type="button" name="return" value="Add calendar suite" onclick="javascript:location.replace('{$calsuite-showAddForm}')"/>
3025     </p>
3026
3027     <ul>
3028       <xsl:for-each select="calSuite">
3029         <li>
3030           <xsl:variable name="name" select="name"/>
3031           <a href="{$calsuite-fetchForUpdate}&amp;name={$name}">
3032             <xsl:value-of select="name"/>
3033           </a>
3034         </li>
3035       </xsl:for-each>
3036     </ul>
3037
3038   </xsl:template>
3039
3040   <xsl:template name="addCalSuite">
3041     <h2>Add Calendar Suite</h2>
3042     <form name="calSuiteForm" action="{$calsuite-add}" method="post">
3043       <table class="eventFormTable">
3044         <tr>
3045           <th>Name:</th>
3046           <td>
3047             <input name="name" size="20"/>
3048           </td>
3049           <td>
3050             Name of your calendar suite
3051           </td>
3052         </tr>
3053         <tr>
3054           <th>Group:</th>
3055           <td>
3056             <input name="groupName" size="20"/>
3057           </td>
3058           <td>
3059             Name of admin group which contains event administrators and event owner to which preferences for the suite are attached
3060           </td>
3061         </tr>
3062         <tr>
3063           <th>Root calendar:</th>
3064           <td>
3065             <input name="calPath" size="20"/>
3066           </td>
3067           <td>
3068             Path of root calendar (not required if suite only consists of subscriptions and views)
3069           </td>
3070         </tr>
3071       </table>
3072       <table border="0" id="submitTable">
3073         <tr>
3074           <td>
3075             <input type="submit" name="updateCalSuite" value="Add"/>
3076             <input type="submit" name="cancelled" value="Cancel"/>
3077             <input type="reset" value="Reset"/>
3078           </td>
3079         </tr>
3080       </table>
3081     </form>
3082   </xsl:template>
3083
3084   <xsl:template match="calSuite" name="modCalSuite">
3085     <h2>Modify Calendar Suite</h2>
3086     <xsl:variable name="calSuiteName" select="name"/>
3087     <form name="calSuiteForm" action="{$calsuite-update}" method="post">
3088       <table class="eventFormTable">
3089         <tr>
3090           <th>Name:</th>
3091           <td>
3092             <input name="name" value="{$calSuiteName}" size="20"/>
3093           </td>
3094           <td>
3095             Name of your calendar suite
3096           </td>
3097         </tr>
3098         <tr>
3099           <th>Group:</th>
3100           <td>
3101             <xsl:variable name="group" select="group"/>
3102             <input name="groupName" value="{$group}" size="20"/>
3103           </td>
3104           <td>
3105             Name of admin group which contains event administrators and event owner to which preferences for the suite are attached
3106           </td>
3107         </tr>
3108         <tr>
3109           <th>Root calendar:</th>
3110           <td>
3111             <xsl:variable name="calPath" select="calPath"/>
3112             <input name="calPath" value="{$calPath}" size="20"/>
3113           </td>
3114           <td>
3115             Path of root calendar (not required if suite only consists of subscriptions and views)
3116           </td>
3117         </tr>
3118       </table>
3119       <table border="0" id="submitTable">
3120         <tr>
3121           <td>
3122             <input type="submit" name="updateCalSuite" value="Update"/>
3123             <input type="submit" name="cancelled" value="Cancel"/>
3124             <input type="reset" value="Reset"/>
3125           </td>
3126         </tr>
3127       </table>
3128     </form>
3129     <div id="sharingBox">
3130       <h3>Manage suite administrators</h3>
3131       <table class="common">
3132         <tr>
3133           <th class="commonHeader" colspan="2">Current access:</th>
3134         </tr>
3135
3136         <xsl:for-each select="acl/ace">
3137           <tr>
3138             <th class="thin">
3139               <xsl:choose>
3140                 <xsl:when test="invert">
3141                   <em>Deny to
3142                   <xsl:choose>
3143                     <xsl:when test="invert/principal/href">
3144                       <xsl:value-of select="invert/principal/href"/>
3145                       </xsl:when>
3146                       <xsl:when test="invert/principal/property">
3147                         <xsl:value-of select="name(invert/principal/property/*)"/>
3148                       </xsl:when>
3149                       <xsl:otherwise>
3150                         <xsl:value-of select="name(invert/principal/*)"/>
3151                       </xsl:otherwise>
3152                     </xsl:choose>
3153                   </em>
3154                 </xsl:when>
3155                 <xsl:otherwise>
3156                   <xsl:choose>
3157                     <xsl:when test="principal/href">
3158                       <xsl:value-of select="principal/href"/>
3159                     </xsl:when>
3160                     <xsl:when test="principal/property">
3161                       <xsl:value-of select="name(principal/property/*)"/>
3162                     </xsl:when>
3163                     <xsl:otherwise>
3164                       <xsl:value-of select="name(principal/*)"/>
3165                     </xsl:otherwise>
3166                   </xsl:choose>
3167                 </xsl:otherwise>
3168               </xsl:choose>
3169             </th>
3170             <td>
3171               <xsl:for-each select="grant/node()">
3172                 <xsl:value-of select="name(.)"/>&#160;&#160;
3173               </xsl:for-each>
3174             </td>
3175           </tr>
3176         </xsl:for-each>
3177       </table>
3178       <form name="calsuiteShareForm" action="{$calsuite-setAccess}" id="shareForm" method="post">
3179         <input type="hidden" name="calSuiteName" value="{$calSuiteName}"/>
3180         <input type="hidden" name="how" value="RW" />
3181         <p>
3182           Add administrator:<br/>
3183           <input type="text" name="who" size="20"/>
3184           <input type="radio" value="user" name="whoType" checked="checked"/> user
3185           <input type="radio" value="group" name="whoType"/> group
3186         </p>
3187         <input type="submit" name="submit" value="Submit"/>
3188       </form>
3189     </div>
3190   </xsl:template>
3191
3192   <xsl:template name="calSuitePrefs">
3193     <h2>Edit Calendar Suite Preferences</h2>
3194     <form name="userPrefsForm" method="post" action="{$calsuite-updatePrefs}">
3195       <table id="eventFormTable">
3196         <tr>
3197           <td class="fieldName">
3198             Calendar Suite:
3199           </td>
3200           <td>
3201             <xsl:value-of select="/bedeworkadmin/currentCalSuite/name"/>
3202           </td>
3203         </tr>
3204         <tr>
3205           <td class="fieldName">
3206             Preferred view:
3207           </td>
3208           <td>
3209             <xsl:variable name="preferredView" select="/bedeworkadmin/prefs/preferredView"/>
3210             <input type="text" name="preferredView" value="{$preferredView}" size="40"/>
3211           </td>
3212         </tr>
3213         <tr>
3214           <td class="fieldName">
3215             Preferred view period:
3216           </td>
3217           <td>
3218             <xsl:variable name="preferredViewPeriod" select="/bedeworkadmin/prefs/preferredViewPeriod"/>
3219             <select name="viewPeriod">
3220               <!-- picking the selected item could be done with javascript. for
3221                    now, this will do.  -->
3222               <xsl:choose>
3223                 <xsl:when test="$preferredViewPeriod = 'dayView'">
3224                   <option value="dayView" selected="selected">day</option>
3225                 </xsl:when>
3226                 <xsl:otherwise>
3227                   <option value="dayView">day</option>
3228                 </xsl:otherwise>
3229               </xsl:choose>
3230               <xsl:choose>
3231                 <xsl:when test="$preferredViewPeriod = 'todayView'">
3232                   <option value="todayView" selected="selected">today</option>
3233                 </xsl:when>
3234                 <xsl:otherwise>
3235                   <option value="todayView">today</option>
3236                 </xsl:otherwise>
3237               </xsl:choose>
3238               <xsl:choose>
3239                 <xsl:when test="$preferredViewPeriod = 'weekView'">
3240                   <option value="weekView" selected="selected">week</option>
3241                 </xsl:when>
3242                 <xsl:otherwise>
3243                   <option value="weekView">week</option>
3244                 </xsl:otherwise>
3245               </xsl:choose>
3246               <xsl:choose>
3247                 <xsl:when test="$preferredViewPeriod = 'monthView'">
3248                   <option value="monthView" selected="selected">month</option>
3249                 </xsl:when>
3250                 <xsl:otherwise>
3251                   <option value="monthView">month</option>
3252                 </xsl:otherwise>
3253               </xsl:choose>
3254               <xsl:choose>
3255                 <xsl:when test="$preferredViewPeriod = 'yearView'">
3256                   <option value="yearView" selected="selected">year</option>
3257                 </xsl:when>
3258                 <xsl:otherwise>
3259                   <option value="yearView">year</option>
3260                 </xsl:otherwise>
3261               </xsl:choose>
3262             </select>
3263           </td>
3264         </tr>
3265         <tr>
3266           <td class="fieldName">
3267             Skin name:
3268           </td>
3269           <td>
3270             <xsl:variable name="skinName" select="/bedeworkadmin/prefs/skinName"/>
3271             <input type="text" name="skin" value="{$skinName}" size="40"/>
3272           </td>
3273         </tr>
3274         <tr>
3275           <td class="fieldName">
3276             Skin style:
3277           </td>
3278           <td>
3279             <xsl:variable name="skinStyle" select="/bedeworkadmin/prefs/skinStyle"/>
3280             <input type="text" name="skinStyle" value="{$skinStyle}" size="40"/>
3281           </td>
3282         </tr>
3283       </table>
3284       <br />
3285
3286       <input type="submit" name="modPrefs" value="Update"/>
3287       <input type="reset" value="Reset"/>
3288       <input type="submit" name="cancelled" value="Cancel"/>
3289     </form>
3290   </xsl:template>
3291
3292   <!--+++++++++++++++ Timezones ++++++++++++++++++++-->
3293   <xsl:template name="uploadTimezones">
3294     <h2>Upload Timezones</h2>
3295     <form name="peForm" method="post" action="{$timezones-upload}" enctype="multipart/form-data">
3296       <input type="file" name="uploadFile" size="40" value=""/>
3297       <input type="submit" name="doUpload" value="Upload Timezones"/>
3298       <input type="submit" name="cancelled" value="Cancel"/>
3299     </form>
3300   </xsl:template>
3301
3302   <!--+++++++++++++++ Authuser ++++++++++++++++++++-->
3303   <xsl:template name="authUserList">
3304     <h2>Modify Administrators</h2>
3305
3306     <div id="authUserInputForms">
3307       <form name="getUserRolesForm" action="{$authuser-fetchForUpdate}" method="post">
3308         Edit admin roles by userid: <input type="text" name="editAuthUserId" size="20"/>
3309         <input type="submit" value="go" name="submit"/>
3310       </form>
3311     </div>
3312
3313     <table id="commonListTable">
3314       <tr>
3315         <th>UserId</th>
3316         <th>Roles</th>
3317         <th></th>
3318       </tr>
3319
3320       <xsl:for-each select="bedeworkadmin/authUsers/authUser">
3321         <!--<xsl:sort select="account" order="ascending" case-order="upper-first"/>-->
3322         <tr>
3323           <td>
3324             <xsl:value-of select="account"/>
3325           </td>
3326           <td>
3327             <xsl:if test="publicEventUser='true'">
3328               publicEvent; <xsl:text> </xsl:text>
3329             </xsl:if>
3330             <xsl:if test="superUser='true'">
3331               superUser; <xsl:text> </xsl:text>
3332             </xsl:if>
3333             <xsl:if test="alertUser='true'">
3334               alert; <xsl:text> </xsl:text>
3335             </xsl:if>
3336           </td>
3337           <td>
3338             <xsl:variable name="account" select="account"/>
3339             <a href="{$authuser-fetchForUpdate}&amp;editAuthUserId={$account}">
3340               edit
3341             </a>
3342           </td>
3343         </tr>
3344       </xsl:for-each>
3345     </table>
3346   </xsl:template>
3347
3348   <xsl:template name="modAuthUser">
3349     <h2>Update Administrator</h2>
3350     <xsl:variable name="modAuthUserAction" select="/bedeworkadmin/formElements/form/@action"/>
3351     <form action="{$modAuthUserAction}" method="post">
3352       <table id="eventFormTable">
3353         <tr>
3354           <td class="fieldName">
3355             Account:
3356           </td>
3357           <td>
3358             <xsl:value-of select="/bedeworkadmin/formElements/form/account"/>
3359           </td>
3360         </tr>
3361         <tr>
3362           <td class="fieldName">
3363             Alerts:
3364           </td>
3365           <td>
3366             <xsl:copy-of select="/bedeworkadmin/formElements/form/alerts/*"/>
3367           </td>
3368         </tr>
3369         <tr>
3370           <td class="fieldName">
3371             Public Events:
3372           </td>
3373           <td>
3374             <xsl:copy-of select="/bedeworkadmin/formElements/form/publicEvents/*"/>
3375           </td>
3376         </tr>
3377         <tr>
3378           <td class="fieldName">
3379             Super User:
3380           </td>
3381           <td>
3382             <xsl:copy-of select="/bedeworkadmin/formElements/form/superUser/*"/>
3383           </td>
3384         </tr>
3385         <!--<tr>
3386           <td class="optional">
3387             Email:
3388           </td>
3389           <td>
3390             <xsl:copy-of select="/bedeworkadmin/formElements/form/email/*"/>
3391             <span class="fieldInfo"></span>
3392           </td>
3393         </tr>
3394         <tr>
3395           <td class="optional">
3396             Phone:
3397           </td>
3398           <td>
3399             <xsl:copy-of select="/bedeworkadmin/formElements/form/phone/*"/>
3400             <span class="fieldInfo"></span>
3401           </td>
3402         </tr>
3403         <tr>
3404           <td class="optional">
3405             Department:
3406           </td>
3407           <td>
3408             <xsl:copy-of select="/bedeworkadmin/formElements/form/dept/*"/>
3409             <span class="fieldInfo"></span>
3410           </td>
3411         </tr>
3412         <tr>
3413           <td class="optional">
3414             Last name:
3415           </td>
3416           <td>
3417             <xsl:copy-of select="/bedeworkadmin/formElements/form/lastName/*"/>
3418             <span class="fieldInfo"></span>
3419           </td>
3420         </tr>
3421         <tr>
3422           <td class="optional">
3423             First name:
3424           </td>
3425           <td>
3426             <xsl:copy-of select="/bedeworkadmin/formElements/form/firstName/*"/>
3427             <span class="fieldInfo"></span>
3428           </td>
3429         </tr>-->
3430       </table>
3431       <br />
3432
3433       <input type="submit" name="modAuthUser" value="Update"/>
3434       <input type="reset" value="Reset"/>
3435       <input type="submit" name="cancelled" value="Cancel"/>
3436     </form>
3437   </xsl:template>
3438
3439   <!--+++++++++++++++ User Prefs ++++++++++++++++++++-->
3440   <xsl:template name="modPrefs">
3441     <h2>Edit User Preferences</h2>
3442     <form name="userPrefsForm" method="post" action="{$prefs-update}">
3443       <table id="eventFormTable">
3444         <tr>
3445           <td class="fieldName">
3446             User:
3447           </td>
3448           <td>
3449             <xsl:value-of select="/bedeworkadmin/prefs/user"/>
3450             <xsl:variable name="user" select="/bedeworkadmin/prefs/user"/>
3451             <input type="hidden" name="user" value="{$user}"/>
3452           </td>
3453         </tr>
3454         <tr>
3455           <td class="fieldName">
3456             Preferred view:
3457           </td>
3458           <td>
3459             <xsl:variable name="preferredView" select="/bedeworkadmin/prefs/preferredView"/>
3460             <input type="text" name="preferredView" value="{$preferredView}" size="40"/>
3461           </td>
3462         </tr>
3463         <tr>
3464           <td class="fieldName">
3465             Preferred view period:
3466           </td>
3467           <td>
3468             <xsl:variable name="preferredViewPeriod" select="/bedeworkadmin/prefs/preferredViewPeriod"/>
3469             <select name="viewPeriod">
3470               <!-- picking the selected item could be done with javascript. for
3471                    now, this will do.  -->
3472               <xsl:choose>
3473                 <xsl:when test="$preferredViewPeriod = 'dayView'">
3474                   <option value="dayView" selected="selected">day</option>
3475                 </xsl:when>
3476                 <xsl:otherwise>
3477                   <option value="dayView">day</option>
3478                 </xsl:otherwise>
3479               </xsl:choose>
3480               <xsl:choose>
3481                 <xsl:when test="$preferredViewPeriod = 'todayView'">
3482                   <option value="todayView" selected="selected">today</option>
3483                 </xsl:when>
3484                 <xsl:otherwise>
3485                   <option value="todayView">today</option>
3486                 </xsl:otherwise>
3487               </xsl:choose>
3488               <xsl:choose>
3489                 <xsl:when test="$preferredViewPeriod = 'weekView'">
3490                   <option value="weekView" selected="selected">week</option>
3491                 </xsl:when>
3492                 <xsl:otherwise>
3493                   <option value="weekView">week</option>
3494                 </xsl:otherwise>
3495               </xsl:choose>
3496               <xsl:choose>
3497                 <xsl:when test="$preferredViewPeriod = 'monthView'">
3498                   <option value="monthView" selected="selected">month</option>
3499                 </xsl:when>
3500                 <xsl:otherwise>
3501                   <option value="monthView">month</option>
3502                 </xsl:otherwise>
3503               </xsl:choose>
3504               <xsl:choose>
3505                 <xsl:when test="$preferredViewPeriod = 'yearView'">
3506                   <option value="yearView" selected="selected">year</option>
3507                 </xsl:when>
3508                 <xsl:otherwise>
3509                   <option value="yearView">year</option>
3510                 </xsl:otherwise>
3511               </xsl:choose>
3512             </select>
3513           </td>
3514         </tr>
3515         <tr>
3516           <td class="fieldName">
3517             Skin name:
3518           </td>
3519           <td>
3520             <xsl:variable name="skinName" select="/bedeworkadmin/prefs/skinName"/>
3521             <input type="text" name="skin" value="{$skinName}" size="40"/>
3522           </td>
3523         </tr>
3524         <tr>
3525           <td class="fieldName">
3526             Skin style:
3527           </td>
3528           <td>
3529             <xsl:variable name="skinStyle" select="/bedeworkadmin/prefs/skinStyle"/>
3530             <input type="text" name="skinStyle" value="{$skinStyle}" size="40"/>
3531           </td>
3532         </tr>
3533       </table>
3534       <br />
3535
3536       <input type="submit" name="modPrefs" value="Update"/>
3537       <input type="reset" value="Reset"/>
3538       <input type="submit" name="cancelled" value="Cancel"/>
3539     </form>
3540   </xsl:template>
3541
3542   <!--+++++++++++++++ Admin Groups ++++++++++++++++++++-->
3543   <xsl:template name="listAdminGroups">
3544     <h2>Modify Groups</h2>
3545     <form name="adminGroupMembersForm" method="post" action="{$admingroup-initUpdate}">
3546       <xsl:choose>
3547         <xsl:when test="/bedeworkadmin/groups/showMembers='true'">
3548           <input type="radio" name="showAgMembers" value="false" onclick="document.adminGroupMembersForm.submit();"/>
3549           Hide members
3550           <input type="radio" name="showAgMembers" value="true" checked="checked" onclick="document.adminGroupMembersForm.submit();"/>
3551           Show members
3552         </xsl:when>
3553         <xsl:otherwise>
3554           <input type="radio" name="showAgMembers" value="false" checked="checked" onclick="document.adminGroupMembersForm.submit();"/>
3555           Hide members
3556           <input type="radio" name="showAgMembers" value="true" onclick="document.adminGroupMembersForm.submit();"/>
3557           Show members
3558         </xsl:otherwise>
3559       </xsl:choose>
3560     </form>
3561
3562     <p>Click on the group name to modify the group owner or description.<br/>
3563     Click "add/remove members" to modify group membership.</p>
3564     <p>
3565       <input type="button" name="return" onclick="javascript:location.replace('{$admingroup-initAdd}')" value="Add a new group"/>
3566     </p>
3567     <table id="commonListTable">
3568       <tr>
3569         <th>Name</th>
3570         <th>Description</th>
3571         <xsl:if test="/bedeworkadmin/groups/showMembers='true'">
3572           <th>Members</th>
3573         </xsl:if>
3574         <th></th>
3575       </tr>
3576       <xsl:for-each select="/bedeworkadmin/groups/group">
3577         <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
3578         <xsl:variable name="groupName" select="name"/>
3579         <tr>
3580           <td>
3581             <a href="{$admingroup-fetchForUpdate}&amp;adminGroupName={$groupName}">
3582               <xsl:value-of select="name"/>
3583             </a>
3584           </td>
3585           <td>
3586             <xsl:value-of select="desc"/>
3587           </td>
3588           <xsl:if test="/bedeworkadmin/groups/showMembers='true'">
3589             <td>
3590               <xsl:for-each select="members/member/account">
3591                 <xsl:value-of select="."/>&#160;
3592               </xsl:for-each>
3593             </td>
3594           </xsl:if>
3595           <td>
3596             <a href="{$admingroup-fetchForUpdateMembers}&amp;adminGroupName={$groupName}">Add/Remove members</a>
3597           </td>
3598         </tr>
3599       </xsl:for-each>
3600     </table>
3601     <p>
3602       <input type="button" name="return" onclick="javascript:location.replace('{$admingroup-initAdd}')" value="Add a new group"/>
3603     </p>
3604   </xsl:template>
3605
3606   <xsl:template match="groups" mode="chooseGroup">
3607     <h2>Choose Your Administrative Group</h2>
3608
3609     <table id="commonListTable">
3610
3611       <tr>
3612         <th>Name</th>
3613         <th>Description</th>
3614       </tr>
3615
3616       <xsl:for-each select="group">
3617         <!--<xsl:sort select="name" order="ascending" case-order="upper-first"/>-->
3618         <tr>
3619           <td>
3620             <xsl:variable name="admGroupName" select="name"/>
3621             <a href="{$setup}&amp;adminGroupName={$admGroupName}">
3622               <xsl:copy-of select="name"/>
3623             </a>
3624           </td>
3625           <td>
3626             <xsl:value-of select="desc"/>
3627           </td>
3628         </tr>
3629       </xsl:for-each>
3630     </table>
3631   </xsl:template>
3632
3633   <xsl:template name="modAdminGroup">
3634     <xsl:choose>
3635       <xsl:when test="/bedeworkadmin/creating = 'true'">
3636         <h2>Add Group</h2>
3637       </xsl:when>
3638       <xsl:otherwise>
3639         <h2>Modify Group</h2>
3640       </xsl:otherwise>
3641     </xsl:choose>
3642     <form name="peForm" method="post" action="{$admingroup-update}">
3643       <table id="adminGroupFormTable">
3644         <tr>
3645           <td class="fieldName">
3646             Name:
3647           </td>
3648           <td>
3649             <xsl:choose>
3650               <xsl:when test="/bedeworkadmin/creating = 'true'">
3651                 <xsl:copy-of select="/bedeworkadmin/formElements/form/name/*"/>
3652               </xsl:when>
3653               <xsl:otherwise>
3654                 <xsl:value-of select="/bedeworkadmin/formElements/form/name"/>
3655               </xsl:otherwise>
3656             </xsl:choose>
3657           </td>
3658         </tr>
3659         <tr>
3660           <td class="fieldName">
3661             Description:
3662           </td>
3663           <td>
3664             <xsl:copy-of select="/bedeworkadmin/formElements/form/desc/*"/>
3665           </td>
3666         </tr>
3667         <tr>
3668           <td class="fieldName">
3669             Group owner:
3670           </td>
3671           <td>
3672             <xsl:copy-of select="/bedeworkadmin/formElements/form/groupOwner/*"/>
3673           </td>
3674         </tr>
3675         <tr>
3676           <td class="fieldName">
3677             Events owner:
3678           </td>
3679           <td>
3680             <xsl:copy-of select="/bedeworkadmin/formElements/form/eventsOwner/*"/>
3681           </td>
3682         </tr>
3683       </table>
3684       <table border="0" id="submitTable">
3685         <tr>
3686           <td>
3687             <xsl:choose>
3688               <xsl:when test="/bedeworkadmin/creating = 'true'">
3689                 <input type="submit" name="updateAdminGroup" value="Add Admin Group"/>
3690                 <input type="submit" name="cancelled" value="Cancel"/>
3691                 <input type="reset" value="Clear"/>
3692               </xsl:when>
3693               <xsl:otherwise>
3694                 <input type="submit" name="updateAdminGroup" value="Update Admin Group"/>
3695                 <input type="submit" name="cancelled" value="Cancel"/>
3696                 <input type="reset" value="Reset"/>
3697               </xsl:otherwise>
3698             </xsl:choose>
3699           </td>
3700           <td align="right">
3701             <input type="submit" name="delete" value="Delete"/>
3702           </td>
3703         </tr>
3704       </table>
3705     </form>
3706   </xsl:template>
3707
3708   <xsl:template name="modAdminGroupMembers">
3709     <h2>Update Group Membership</h2>
3710     <p>Enter a userid (for user or group) and click "add" to update group membership.
3711     Click the trash icon to remove a user from the group.</p>
3712
3713     <form name="adminGroupMembersForm" method="post" action="{$admingroup-updateMembers}">
3714       <p>Add member:
3715         <input type="text" name="updGroupMember" size="15"/>
3716         <input type="radio" value="user" name="kind" checked="checked"/>user
3717         <input type="radio" value="group" name="kind"/>group
3718         <input type="submit" name="addGroupMember" value="Add"/>
3719       </p>
3720     </form>
3721     <p>
3722       <input type="button" name="return" onclick="javascript:location.replace('{$admingroup-initUpdate}')" value="Return to Admin Group listing"/>
3723     </p>
3724
3725     <table id="adminGroupFormTable">
3726       <tr>
3727         <td class="fieldName">
3728           Name:
3729         </td>
3730         <td>
3731           <xsl:value-of select="/bedeworkadmin/adminGroup/name"/>
3732         </td>
3733       </tr>
3734       <tr>
3735         <td class="fieldName">
3736           Members:
3737         </td>
3738         <td>
3739           <table id="memberAccountList">
3740             <xsl:for-each select="/bedeworkadmin/adminGroup/members/member">
3741               <xsl:choose>
3742                 <xsl:when test="kind='0'"><!-- kind = user -->
3743                   <tr>
3744                     <td>
3745                       <img src="{$resourcesRoot}/resources/userIcon.gif" width="13" height="13" border="0" alt="user"/>
3746                     </td>
3747                     <td>
3748                       <xsl:value-of select="account"/>
3749                     </td>
3750                     <td>
3751                       <xsl:variable name="acct" select="account"/>
3752                       <a href="{$admingroup-updateMembers}&amp;removeGroupMember={$acct}&amp;kind=user" title="remove">
3753                         <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="remove"/>
3754                       </a>
3755                     </td>
3756                   </tr>
3757                 </xsl:when>
3758                 <xsl:otherwise><!-- kind = group -->
3759                   <tr>
3760                     <td>
3761                       <img src="{$resourcesRoot}/resources/groupIcon.gif" width="13" height="13" border="0" alt="group"/>
3762                     </td>
3763                     <td>
3764                       <strong>
3765                         <xsl:value-of select="account"/>
3766                       </strong>
3767                     </td>
3768                     <td>
3769                       <xsl:variable name="acct" select="account"/>
3770                       <a href="{$admingroup-updateMembers}&amp;removeGroupMember={$acct}&amp;kind=group" title="remove">
3771                         <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="remove"/>
3772                       </a>
3773                     </td>
3774                   </tr>
3775                 </xsl:otherwise>
3776               </xsl:choose>
3777             </xsl:for-each>
3778           </table>
3779         </td>
3780       </tr>
3781     </table>
3782     <p>
3783       <img src="{$resourcesRoot}/resources/userIcon.gif" width="13" height="13" border="0" alt="user"/> user,
3784       <img src="{$resourcesRoot}/resources/groupIcon.gif" width="13" height="13" border="0" alt="group"/>
3785       <xsl:text> </xsl:text>
3786       <strong>group</strong>
3787     </p>
3788   </xsl:template>
3789
3790   <xsl:template name="deleteAdminGroupConfirm">
3791     <h2>Delete Admin Group?</h2>
3792     <p>The following group will be deleted. Continue?</p>
3793     <p>
3794       <strong>
3795         <xsl:value-of select="/bedeworkadmin/groups/group/name"/>
3796       </strong>:
3797       <xsl:value-of select="/bedeworkadmin/groups/group/desc"/>
3798     </p>
3799     <form name="adminGroupDelete" method="post" action="{$admingroup-delete}">
3800       <input type="submit" name="removeAdminGroupOK" value="Yes: Delete!"/>
3801       <input type="submit" name="cancelled" value="No: Cancel"/>
3802     </form>
3803   </xsl:template>
3804
3805   <!--+++++++++++++++ System Stats ++++++++++++++++++++-->
3806
3807   <xsl:template match="sysStats" mode="showSysStats">
3808     <h2>System Statistics</h2>
3809
3810     <p>
3811       Stats collection:
3812     </p>
3813     <ul>
3814       <li>
3815         <a href="{$stats-update}&amp;enable=yes">enable</a> |
3816         <a href="{$stats-update}&amp;disable=yes">disable</a>
3817       </li>
3818       <li>
3819         <a href="{$stats-update}&amp;fetch=yes">fetch statistics</a>
3820       </li>
3821       <li>
3822         <a href="{$stats-update}&amp;dump=yes">dump stats to log</a>
3823       </li>
3824     </ul>
3825     <table id="statsTable" cellpadding="0">
3826       <xsl:for-each select="*">
3827         <xsl:choose>
3828           <xsl:when test="name(.) = 'header'">
3829             <tr>
3830               <th colspan="2">
3831                 <xsl:value-of select="."/>
3832               </th>
3833             </tr>
3834           </xsl:when>
3835           <xsl:otherwise>
3836             <tr>
3837               <td class="label">
3838                 <xsl:value-of select="label"/>
3839               </td>
3840               <td class="value">
3841                 <xsl:value-of select="value"/>
3842               </td>
3843             </tr>
3844           </xsl:otherwise>
3845         </xsl:choose>
3846       </xsl:for-each>
3847     </table>
3848   </xsl:template>
3849
3850   <!--==== SEARCH RESULT ====-->
3851   <xsl:template name="searchResult">
3852     <h2 class="bwStatusConfirmed">
3853       <div id="searchFilter">
3854         Limit search to:
3855         <input type="radio" name="searchLimit" value="future"/>today forward
3856         <input type="radio" name="searchLimit" value="future"/>past dates
3857         <input type="radio" name="searchLimit" value="all" checked="checked"/>all dates
3858       </div>
3859       Search Result
3860     </h2>
3861     <table id="searchTable" cellpadding="0" cellspacing="0">
3862       <tr>
3863         <th colspan="5">
3864           <xsl:if test="/bedeworkadmin/searchResults/numPages &gt; 1">
3865             <xsl:variable name="curPage" select="/bedeworkadmin/searchResults/curPage"/>
3866             <div id="searchPageForm">
3867               page:
3868               <xsl:if test="/bedeworkadmin/searchResults/curPage != 1">
3869                 <xsl:variable name="prevPage" select="number($curPage) - 1"/>
3870                 &lt;<a href="{$search-next}&amp;pageNum={$prevPage}">prev</a>
3871               </xsl:if>
3872               <xsl:text> </xsl:text>
3873
3874               <xsl:call-template name="searchResultPageNav">
3875                 <xsl:with-param name="page">
3876                   <xsl:choose>
3877                     <xsl:when test="number($curPage) - 10 &lt; 1">1</xsl:when>
3878                     <xsl:otherwise><xsl:value-of select="number($curPage) - 6"/></xsl:otherwise>
3879                   </xsl:choose>
3880                 </xsl:with-param>
3881               </xsl:call-template>
3882
3883               <xsl:text> </xsl:text>
3884               <xsl:choose>
3885                 <xsl:when test="$curPage != /bedeworkadmin/searchResults/numPages">
3886                   <xsl:variable name="nextPage" select="number($curPage) + 1"/>
3887                   <a href="{$search-next}&amp;pageNum={$nextPage}">next</a>&gt;
3888                 </xsl:when>
3889                 <xsl:otherwise>
3890                   <span class="hidden">next&gt;</span><!-- occupy the space to keep the navigation from moving around -->
3891                 </xsl:otherwise>
3892               </xsl:choose>
3893             </div>
3894           </xsl:if>
3895           <xsl:value-of select="/bedeworkadmin/searchResults/resultSize"/>
3896           result<xsl:if test="/bedeworkadmin/searchResults/resultSize != 1">s</xsl:if> returned
3897           for <em><xsl:value-of select="/bedeworkadmin/searchResults/query"/></em>
3898         </th>
3899       </tr>
3900       <xsl:if test="/bedeworkadmin/searchResults/searchResult">
3901         <tr class="fieldNames">
3902           <td>
3903             relevance
3904           </td>
3905           <td>
3906             summary
3907           </td>
3908           <td>
3909             date &amp; time
3910           </td>
3911           <td>
3912             calendar
3913           </td>
3914           <td>
3915             location
3916           </td>
3917         </tr>
3918       </xsl:if>
3919       <xsl:for-each select="/bedeworkadmin/searchResults/searchResult">
3920         <xsl:variable name="subscriptionId" select="event/subscription/id"/>
3921         <xsl:variable name="calPath" select="event/calendar/encodedPath"/>
3922         <xsl:variable name="guid" select="event/guid"/>
3923         <xsl:variable name="recurrenceId" select="event/recurrenceId"/>
3924         <tr>
3925           <td class="relevance">
3926             <xsl:value-of select="ceiling(number(score)*100)"/>%
3927             <img src="{$resourcesRoot}/images/spacer.gif" height="4" class="searchRelevance">
3928               <xsl:attribute name="width"><xsl:value-of select="ceiling((number(score)*100) div 1.5)"/></xsl:attribute>
3929             </img>
3930           </td>
3931           <td>
3932             <a href="{$event-showEvent}&amp;subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">
3933               <xsl:value-of select="event/summary"/>
3934             </a>
3935           </td>
3936           <td>
3937             <xsl:value-of select="event/start/longdate"/>
3938             <xsl:text> </xsl:text>
3939             <xsl:value-of select="event/start/time"/>
3940             <xsl:choose>
3941               <xsl:when test="event/start/longdate != event/end/longdate">
3942                 - <xsl:value-of select="event/start/longdate"/>
3943                 <xsl:text> </xsl:text>
3944                 <xsl:value-of select="event/end/time"/>
3945               </xsl:when>
3946               <xsl:when test="event/start/time != event/end/time">
3947                 - <xsl:value-of select="event/end/time"/>
3948               </xsl:when>
3949             </xsl:choose>
3950           </td>
3951           <td>
3952             <xsl:value-of select="event/calendar/name"/>
3953           </td>
3954           <td>
3955             <xsl:value-of select="event/location/address"/>
3956           </td>
3957         </tr>
3958       </xsl:for-each>
3959     </table>
3960   </xsl:template>
3961
3962   <xsl:template name="searchResultPageNav">
3963     <xsl:param name="page">1</xsl:param>
3964     <xsl:variable name="curPage" select="/bedeworkadmin/searchResults/curPage"/>
3965     <xsl:variable name="numPages" select="/bedeworkadmin/searchResults/numPages"/>
3966     <xsl:variable name="endPage">
3967       <xsl:choose>
3968         <xsl:when test="number($curPage) + 6 &gt; number($numPages)"><xsl:value-of select="$numPages"/></xsl:when>
3969         <xsl:otherwise><xsl:value-of select="number($curPage) + 6"/></xsl:otherwise>
3970       </xsl:choose>
3971     </xsl:variable>
3972     <xsl:choose>
3973       <xsl:when test="$page = $curPage">
3974         <xsl:value-of select="$page"/>
3975       </xsl:when>
3976       <xsl:otherwise>
3977         <a href="{$search-next}&amp;pageNum={$page}">
3978           <xsl:value-of select="$page"/>
3979         </a>
3980       </xsl:otherwise>
3981     </xsl:choose>
3982     <xsl:text> </xsl:text>
3983     <xsl:if test="$page &lt; $endPage">
3984        <xsl:call-template name="searchResultPageNav">
3985          <xsl:with-param name="page" select="number($page)+1"/>
3986       </xsl:call-template>
3987     </xsl:if>
3988   </xsl:template>
3989
3990   <!--==== HEADER TEMPLATES and NAVIGATION  ====-->
3991
3992   <xsl:template name="header">
3993     <div id="header">
3994       <a href="http://www.bedework.org">
3995         <img id="logo"
3996             alt="logo"
3997             src="{$resourcesRoot}/resources/bedeworkAdminLogo.gif"
3998             width="217"
3999             height="40"
4000             border="0"/>
4001       </a>
4002       <!-- set the page heading: -->
4003       <h1>
4004         <xsl:choose>
4005           <xsl:when test="/bedeworkadmin/page='modEvent' or /bedeworkadmin/page='eventList' or /bedeworkadmin/page='displayEvent'">
4006             Manage Events
4007           </xsl:when>
4008           <xsl:when test="/bedeworkadmin/page='sponsorList' or /bedeworkadmin/page='modSponsor' or /bedeworkadmin/page='deleteSponsorConfirm'">
4009             Manage Contacts
4010           </xsl:when>
4011           <xsl:when test="/bedeworkadmin/page='locationList' or /bedeworkadmin/page='modLocation' or /bedeworkadmin/page='deleteLocationConfirm'">
4012             Manage Locations
4013           </xsl:when>
4014           <xsl:when test="/bedeworkadmin/page='calendarList' or /bedeworkadmin/page='modCalendar' or /bedeworkadmin/page='calendarReferenced' or /bedeworkadmin/page='deleteCalendarConfirm'">
4015             Manage Calendars
4016           </xsl:when>
4017           <xsl:when test="/bedeworkadmin/page='calendarDescriptions' or /bedeworkadmin/page='displayCalendar'">
4018             Public Calendars
4019           </xsl:when>
4020           <xsl:when test="/bedeworkadmin/page='subscriptions' or /bedeworkadmin/page='modSubscription'">
4021             Manage Subscriptions
4022           </xsl:when>
4023           <xsl:when test="/bedeworkadmin/page='views' or /bedeworkadmin/page='modView'">
4024             Manage Views
4025           </xsl:when>
4026           <xsl:when test="/bedeworkadmin/page='modSyspars'">
4027             Manage System Preferences
4028           </xsl:when>
4029           <xsl:when test="/bedeworkadmin/page='authUserList' or /bedeworkadmin/page='modAuthUser'">
4030             Manage Public Events Administrators
4031           </xsl:when>
4032           <xsl:when test="/bedeworkadmin/page='chooseGroup'">
4033             Choose Administrative Group
4034           </xsl:when>
4035           <xsl:when test="/bedeworkadmin/page='adminGroupList' or /bedeworkadmin/page='modAdminGroup' or /bedeworkadmin/page='modAdminGroup' or /bedeworkadmin/page='modAdminGroupMembers'">
4036             Manage Administrative Groups
4037           </xsl:when>
4038           <xsl:when test="/bedeworkadmin/page='noGroup'">
4039             No Administrative Group
4040           </xsl:when>
4041           <xsl:when test="/bedeworkadmin/page='uploadTimezones'">
4042             Manage Time Zones
4043           </xsl:when>
4044           <xsl:when test="/bedeworkadmin/page='noAccess'">
4045             Access Denied
4046           </xsl:when>
4047           <xsl:when test="/bedeworkadmin/page='error'">
4048             Error
4049           </xsl:when>
4050           <xsl:otherwise>
4051             Bedework Calendar Administration
4052           </xsl:otherwise>
4053         </xsl:choose>
4054       </h1>
4055
4056       <xsl:if test="/bedeworkadmin/message">
4057         <div id="messages">
4058           <p>
4059             <xsl:apply-templates select="/bedeworkadmin/message"/>
4060           </p>
4061         </div>
4062       </xsl:if>
4063       <xsl:if test="/bedeworkadmin/error">
4064         <div id="errors">
4065           <p>
4066             <xsl:apply-templates select="/bedeworkadmin/error"/>
4067           </p>
4068         </div>
4069       </xsl:if>
4070
4071     </div>
4072     <table id="statusBarTable">
4073       <tr>
4074         <td class="leftCell">
4075           <a href="{$setup}">Main Menu</a> |
4076           <a href="{$publicCal}" target="calendar">Launch Calendar</a> |
4077           <a href="{$logout}">Log Out</a>
4078         </td>
4079         <xsl:if test="/bedeworkadmin/userInfo/user">
4080           <td class="rightCell">
4081             <xsl:if test="/bedeworkadmin/currentCalSuite/name">
4082               Calendar Suite:
4083               <span class="status">
4084                 <xsl:value-of select="/bedeworkadmin/currentCalSuite/name"/>
4085               </span>
4086               &#160;
4087             </xsl:if>
4088             Logged in as:
4089             <span class="status">
4090               <xsl:value-of select="/bedeworkadmin/userInfo/user"/>
4091             </span>
4092             &#160;
4093             <xsl:if test="/bedeworkadmin/userInfo/group">
4094               Group:
4095               <span class="status">
4096                 <xsl:value-of select="/bedeworkadmin/userInfo/group"/>
4097               </span>
4098             </xsl:if>
4099           </td>
4100         </xsl:if>
4101       </tr>
4102     </table>
4103     <div id="titleBar">
4104       CALENDAR of EVENTS
4105     </div>
4106   </xsl:template>
4107
4108   <!--==== FOOTER ====-->
4109   <xsl:template name="footer">
4110     <div id="footer">
4111       <a href="http://www.bedework.org/">Bedework Calendar</a> |
4112       <!-- Enable the following two items when debugging skins only -->
4113       <a href="?noxslt=yes">show XML</a> |
4114       <a href="?refreshXslt=yes">refresh XSLT</a>
4115     </div>
4116   </xsl:template>
4117 </xsl:stylesheet>
Note: See TracBrowser for help on using the browser.