root/trunk/calendar3/deployment/webuser/webapp/resources/demoskins/default/default/default.xsl

Revision 297 (checked in by douglm, 7 years ago)

Fixes to personal client.
Use ArrayList? instead of Vector

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/loose.dtd"
9   standalone="yes"
10 />
11    <!-- ======================================== -->
12   <!--  Rensselaer PERSONAL CALENDAR STYLESHEET  -->
13   <!-- ========================================= -->
14
15   <!-- DEFINE INCLUDES -->
16   <xsl:include href="errors.xsl"/>
17   <xsl:include href="messages.xsl"/>
18
19   <!-- DEFINE GLOBAL CONSTANTS -->
20   <!-- URL of html resources (images, css, other html); by default this is
21        set to the application root, but for the personal calendar
22        this should be changed to point to a
23        web server over https to avoid mixed content errors, e.g.,
24   <xsl:variable name="resourcesRoot" select="'https://mywebserver.edu/myresourcesdir'"/>
25     -->
26   <xsl:variable name="resourcesRoot" select="/bedework/approot"/>
27
28   <!-- URL of the XSL template directory -->
29   <!-- The approot is an appropriate place to put
30        included stylesheets and xml fragments. These are generally
31        referenced relatively (like errors.xsl and messages.xsl above);
32        this variable is here for your convenience if you choose to
33        reference it explicitly.  It is not used in this stylesheet, however,
34        and can be safely removed if you so choose. -->
35   <xsl:variable name="appRoot" select="/bedework/approot"/>
36
37   <!-- Properly encoded prefixes to the application actions; use these to build
38        urls; allows the application to be used without cookies or within a portal. -->
39   <xsl:variable name="setup" select="/bedework/urlPrefixes/setup"/>
40   <xsl:variable name="setSelection" select="/bedework/urlPrefixes/setSelection"/>
41   <xsl:variable name="fetchPublicCalendars" select="/bedework/urlPrefixes/fetchPublicCalendars"/>
42   <xsl:variable name="setViewPeriod" select="/bedework/urlPrefixes/setViewPeriod"/>
43   <xsl:variable name="eventView" select="/bedework/urlPrefixes/eventView"/>
44   <xsl:variable name="initEvent" select="/bedework/urlPrefixes/initEvent"/>
45   <xsl:variable name="addEvent" select="/bedework/urlPrefixes/addEvent"/>
46   <xsl:variable name="addEventUsingPage" select="/bedework/urlPrefixes/addEventUsingPage"/>
47   <xsl:variable name="editEvent" select="/bedework/urlPrefixes/editEvent"/>
48   <xsl:variable name="delEvent" select="/bedework/urlPrefixes/delEvent"/>
49   <xsl:variable name="addEventRef" select="/bedework/urlPrefixes/addEventRef"/>
50   <xsl:variable name="export" select="/bedework/urlPrefixes/export"/>
51   <xsl:variable name="mailEvent" select="/bedework/urlPrefixes/mailEvent"/>
52   <xsl:variable name="showPage" select="/bedework/urlPrefixes/showPage"/>
53   <xsl:variable name="manageLocations" select="/bedework/urlPrefixes/manageLocations"/>
54   <xsl:variable name="addLocation" select="/bedework/urlPrefixes/addLocation"/>
55   <xsl:variable name="editLocation" select="/bedework/urlPrefixes/editLocation"/>
56   <xsl:variable name="delLocation" select="/bedework/urlPrefixes/delLocation"/>
57   <xsl:variable name="subscribe" select="/bedework/urlPrefixes/subscribe"/>
58   <xsl:variable name="initEventAlarm" select="/bedework/urlPrefixes/initEventAlarm"/>
59   <xsl:variable name="setAlarm" select="/bedework/urlPrefixes/setAlarm"/>
60   <xsl:variable name="initUpload" select="/bedework/urlPrefixes/initUpload"/>
61   <xsl:variable name="upload" select="/bedework/urlPrefixes/upload"/>
62
63   <!-- URL of the web application - includes web context
64   <xsl:variable name="urlPrefix" select="/bedework/urlprefix"/> -->
65
66   <!-- Other generally useful global variables -->
67   <xsl:variable name="confId" select="/bedework/confirmationid"/>
68   <xsl:variable name="prevdate" select="/bedework/previousdate"/>
69   <xsl:variable name="nextdate" select="/bedework/nextdate"/>
70   <xsl:variable name="curdate" select="/bedework/currentdate/date"/>
71   <xsl:variable name="skin">default</xsl:variable>
72   <xsl:variable name="publicCal">/cal</xsl:variable>
73
74  <!-- BEGIN MAIN TEMPLATE -->
75   <xsl:template match="/">
76     <html lang="en">
77       <head>
78         <xsl:call-template name="headSection"/>
79       </head>
80       <body>
81         <xsl:call-template name="headBar"/>
82         <xsl:if test="/bedework/message">
83           <div id="messages">
84             <p><xsl:apply-templates select="/bedework/message"/></p>
85           </div>
86         </xsl:if>
87         <xsl:if test="/bedework/error">
88           <div id="errors">
89             <p><xsl:apply-templates select="/bedework/error"/></p>
90           </div>
91         </xsl:if>
92         <table id="bodyBlock" cellspacing="0">
93           <tr>
94             <xsl:choose>
95               <xsl:when test="/bedework/appvar[key='sidebar']/value='closed'">
96                 <td id="sideBarClosed">
97                   <img src="{$resourcesRoot}/resources/spacer.gif" width="1" height="1" border="0" alt="*"/>
98                 </td>
99               </xsl:when>
100               <xsl:otherwise>
101                 <td id="sideBar">
102                   <xsl:call-template name="sideBar"/>
103                 </td>
104               </xsl:otherwise>
105             </xsl:choose>
106             <td id="bodyContent">
107               <xsl:call-template name="tabs"/>
108               <xsl:choose>
109                 <xsl:when test="/bedework/page='event'">
110                   <!-- show an event -->
111                   <xsl:apply-templates select="/bedework/event"/>
112                 </xsl:when>
113                 <xsl:when test="/bedework/page='addEvent'">
114                   <xsl:call-template name="addEvent"/>
115                 </xsl:when>
116                 <xsl:when test="/bedework/page='editEvent'">
117                   <!-- edit an event -->
118                   <xsl:apply-templates select="/bedework/formElements"/>
119                 </xsl:when>
120                 <xsl:when test="/bedework/page='alarmOptions'">
121                   <xsl:call-template name="alarmOptions" />
122                 </xsl:when>
123                 <xsl:when test="/bedework/page='upload'">
124                   <xsl:call-template name="upload" />
125                 </xsl:when>
126                 <xsl:when test="/bedework/page='manageLocations'">
127                   <xsl:call-template name="manageLocations" />
128                 </xsl:when>
129                 <xsl:when test="/bedework/page='editLocation'">
130                   <!-- edit an event -->
131                   <xsl:apply-templates select="/bedework/locationform"/>
132                 </xsl:when>
133                 <xsl:when test="/bedework/page='calendars'">
134                   <!-- show a list of all calendars and manage subscriptions -->
135                   <xsl:apply-templates select="/bedework/calendars"/>
136                 </xsl:when>
137                 <xsl:when test="/bedework/page='other'">
138                   <!-- show an arbitrary page -->
139                   <xsl:call-template name="selectPage"/>
140                 </xsl:when>
141                 <xsl:otherwise>
142                   <!-- otherwise, show the eventsCalendar -->
143                   <xsl:call-template name="navigation"/>
144                   <xsl:call-template name="userBar"/>
145                   <!-- main eventCalendar content -->
146                   <xsl:choose>
147                     <xsl:when test="/bedework/periodname='Day'">
148                       <xsl:call-template name="listView"/>
149                     </xsl:when>
150                     <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''">
151                       <xsl:choose>
152                         <xsl:when test="/bedework/appvar[key='weekViewMode']/value='list'">
153                           <xsl:call-template name="listView"/>
154                         </xsl:when>
155                         <xsl:otherwise>
156                           <xsl:call-template name="weekView"/>
157                         </xsl:otherwise>
158                       </xsl:choose>
159                     </xsl:when>
160                     <xsl:when test="/bedework/periodname='Month'">
161                       <xsl:choose>
162                         <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'">
163                           <xsl:call-template name="listView"/>
164                         </xsl:when>
165                         <xsl:otherwise>
166                           <xsl:call-template name="monthView"/>
167                         </xsl:otherwise>
168                       </xsl:choose>
169                     </xsl:when>
170                     <xsl:otherwise>
171                       <xsl:call-template name="yearView"/>
172                     </xsl:otherwise>
173                   </xsl:choose>
174                 </xsl:otherwise>
175               </xsl:choose>
176             </td>
177           </tr>
178         </table>
179         <!-- footer -->
180         <xsl:call-template name="footer"/>
181       </body>
182     </html>
183   </xsl:template>
184
185   <!--==== HEAD SECTION  ====-->
186
187   <xsl:template name="headSection">
188      <title>Bedework: Personal Calendar Client</title>
189       <meta name="robots" content="noindex,nofollow"/>
190       <link rel="stylesheet" href="{$resourcesRoot}/default/default/default.css"/>
191       <link rel="stylesheet" type="text/css" media="print" href="{$resourcesRoot}/default/default/print.css" />
192       <link rel="icon" type="image/ico" href="{$resourcesRoot}/resources/bedework.ico" />
193       <xsl:if test="/bedework/page='addEvent' or /bedework/page='editEvent'">
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:template>
202
203   <!--==== HEADER TEMPLATES and NAVIGATION  ====-->
204
205   <xsl:template name="headBar">
206     <h1 id="titleBar">
207       BEDEWORK PERSONAL CLIENT
208     </h1>
209     <table width="100%" border="0" cellpadding="0" cellspacing="0" id="logoTable">
210       <tr>
211         <td colspan="3" id="logoCell"><a href="http://www.bedework.org/"><img src="{$resourcesRoot}/resources/bedeworkLogo.gif" width="292" height="75" border="0" alt="Bedework"/></a></td>
212         <td colspan="2" id="schoolLinksCell">
213           <h2>Personal Calendar</h2>
214           <a href="{$publicCal}">Public Calendar</a> |
215           <a href="http://www.yourschoolhere.edu">School Home</a> |
216           <a href="http://www.washington.edu/ucal/">Other Link</a> |
217           <a href="http://helpdesk.rpi.edu/update.do?catcenterkey=51">
218             Example Calendar Help
219           </a>
220         </td>
221       </tr>
222     </table>
223     <table width="100%" border="0" cellpadding="0" cellspacing="0">
224       <tr>
225         <td width="50%"><img alt="" src="{$resourcesRoot}/resources/metacal-topBorder.gif" width="100%" height="23" border="0"/></td>
226         <td><img src="{$resourcesRoot}/resources/metacal-topTitlePersonal.gif" width="221" height="23" border="0" alt="Bedework Personal Events Calendar"/></td>
227         <td width="50%"><img alt="" src="{$resourcesRoot}/resources/metacal-topBorder.gif" width="100%" height="23" border="0"/></td>
228       </tr>
229     </table>
230     <div id="curDateRange">
231       <div id="sideBarOpenCloseIcon">
232         <xsl:choose>
233           <xsl:when test="/bedework/appvar[key='sidebar']/value='closed'">
234             <a href="?setappvar=sidebar(opened)">
235               <img alt="open sidebar" src="{$resourcesRoot}/resources/std-sidebaropen-icon.gif" width="13" height="13" border="0" align="left"/>
236             </a>
237           </xsl:when>
238           <xsl:otherwise>
239             <a href="?setappvar=sidebar(closed)">
240               <img alt="close sidebar" src="{$resourcesRoot}/resources/std-sidebarclose-icon.gif" width="13" height="13" border="0" align="left"/>
241             </a>
242           </xsl:otherwise>
243         </xsl:choose>
244       </div>
245       <xsl:value-of select="/bedework/firstday/longdate"/>
246       <xsl:if test="/bedework/periodname!='Day'">
247         -
248         <xsl:value-of select="/bedework/lastday/longdate"/>
249       </xsl:if>
250     </div>
251   </xsl:template>
252
253   <xsl:template name="sideBar">
254     <table id="sideBarTabs" cellspacing="0">
255       <tr>
256         <td class="selected first">Menu</td>
257         <td>Calendars</td>
258       </tr>
259     </table>
260     <ul id="sideBarMenu">
261       <li><a href="{$initEvent}">Add Event</a></li>
262       <li><a href="{$initUpload}">Upload Events (iCal)</a></li>
263       <li><a href="{$manageLocations}">Manage Locations</a></li>
264       <li><a href="{$fetchPublicCalendars}">Manage Subscriptions</a></li>
265       <li>Preferences</li>
266     </ul>
267   </xsl:template>
268
269   <xsl:template name="tabs">
270     <xsl:choose>
271       <xsl:when test="/bedework/page='eventscalendar'">
272         <table border="0" cellpadding="0" cellspacing="0" id="tabsTable">
273           <tr>
274             <td>
275               <xsl:choose>
276                 <xsl:when test="/bedework/periodname='Day'">
277                   <a href="{$setViewPeriod}?viewType=dayView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-day-on.gif" width="91" height="20" border="0" alt="DAY"/></a>
278                 </xsl:when>
279                 <xsl:otherwise>
280                   <a href="{$setViewPeriod}?viewType=dayView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-day-off.gif" width="91" height="20" border="0" alt="DAY"/></a>
281                 </xsl:otherwise>
282               </xsl:choose>
283             </td>
284             <td>
285               <xsl:choose>
286                 <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''">
287                   <a href="{$setViewPeriod}?viewType=weekView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-week-on.gif" width="92" height="20" border="0" alt="WEEK"/></a>
288                  </xsl:when>
289                 <xsl:otherwise>
290                   <a href="{$setViewPeriod}?viewType=weekView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-week-off.gif" width="92" height="20" border="0" alt="WEEK"/></a>
291                  </xsl:otherwise>
292               </xsl:choose>
293             </td>
294             <td>
295               <xsl:choose>
296                 <xsl:when test="/bedework/periodname='Month'">
297                   <a href="{$setViewPeriod}?viewType=monthView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-month-on.gif" width="90" height="20" border="0" alt="MONTH"/></a>
298                 </xsl:when>
299                 <xsl:otherwise>
300                   <a href="{$setViewPeriod}?viewType=monthView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-month-off.gif" width="90" height="20" border="0" alt="MONTH"/></a>
301                 </xsl:otherwise>
302               </xsl:choose>
303             </td>
304             <td>
305               <xsl:choose>
306                 <xsl:when test="/bedework/periodname='Year'">
307                   <a href="{$setViewPeriod}?viewType=yearView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-year-on.gif" width="92" height="20" border="0" alt="YEAR"/></a>
308                 </xsl:when>
309                 <xsl:otherwise>
310                   <a href="{$setViewPeriod}?viewType=yearView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-year-off.gif" width="92" height="20" border="0" alt="YEAR"/></a>
311                 </xsl:otherwise>
312               </xsl:choose>
313             </td>
314             <td class="centerCell">
315               &#160;
316             </td>
317             <td class="rssPrint">
318               <a href="javascript:window.print()" title="print this view">
319                 <img alt="print this view" src="{$resourcesRoot}/resources/std-print-icon.gif" width="20" height="14" border="0"/> print
320               </a>
321               <a class="rss" href="{$setSelection}?calId=&amp;setappvar=summaryMode(details)&amp;skinName=rss" title="RSS feed">RSS</a>
322             </td>
323
324             <td class="rightCell">
325               &#160;
326             </td>
327           </tr>
328         </table>
329       </xsl:when>
330       <xsl:otherwise>
331         <table border="0" cellpadding="0" cellspacing="0" id="tabsTable">
332           <tr>
333             <td>
334               <a href="{$setViewPeriod}?viewType=dayView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-day-off.gif" width="91" height="20" border="0" alt="DAY"/></a>
335             </td>
336             <td>
337               <a href="{$setViewPeriod}?viewType=weekView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-week-off.gif" width="92" height="20" border="0" alt="WEEK"/></a>
338             </td>
339             <td>
340               <a href="{$setViewPeriod}?viewType=monthView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-month-off.gif" width="90" height="20" border="0" alt="MONTH"/></a>
341             </td>
342             <td>
343               <a href="{$setViewPeriod}?viewType=yearView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-year-off.gif" width="92" height="20" border="0" alt="YEAR"/></a>
344             </td>
345             <td class="centerCell">
346                 &#160;<!--<a href="http://www.rpi.edu/dept/cct/apps/pubeventsxml/calendarfeatures.html">login</a>-->
347             </td>
348             <td class="rightCell">
349               &#160;
350             </td>
351           </tr>
352         </table>
353       </xsl:otherwise>
354     </xsl:choose>
355   </xsl:template>
356
357   <xsl:template name="navigation">
358     <table border="0" cellpadding="0" cellspacing="0" id="navigationBarTable">
359       <tr>
360         <td class="leftCell">
361           <a href="{$setViewPeriod}?date={$prevdate}"><img src="{$resourcesRoot}/resources/std-arrow-left.gif" alt="previous" width="13" height="16" class="prevImg" border="0"/></a>
362           <a href="{$setViewPeriod}?date={$nextdate}"><img src="{$resourcesRoot}/resources/std-arrow-right.gif" alt="next" width="13" height="16" class="nextImg" border="0"/></a>
363           <xsl:choose>
364             <xsl:when test="/bedework/periodname='Day'">
365               <xsl:value-of select="substring(/bedework/eventscalendar/year/month/week/day/name,1,3)"/>, <xsl:value-of select="/bedework/eventscalendar/year/month/shortname"/>&#160;<xsl:value-of select="/bedework/eventscalendar/year/month/week/day/value"/>, <xsl:value-of select="/bedework/eventscalendar/year/value"/>
366             </xsl:when>
367             <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''">
368               Week of <xsl:value-of select="/bedework/eventscalendar/year/month/shortname"/>&#160;<xsl:value-of select="/bedework/eventscalendar/year/month/week/day/value"/>, <xsl:value-of select="/bedework/eventscalendar/year/value"/>
369             </xsl:when>
370             <xsl:when test="/bedework/periodname='Month'">
371               <xsl:value-of select="/bedework/eventscalendar/year/month/longname"/>, <xsl:value-of select="/bedework/eventscalendar/year/value"/>
372             </xsl:when>
373             <xsl:otherwise>
374               <xsl:value-of select="/bedework/eventscalendar/year/value"/>
375             </xsl:otherwise>
376           </xsl:choose>
377         </td>
378         <td align="right" class="gotoForm">
379           <form name="calForm" method="get" action="{$setViewPeriod}">
380              <table border="0" cellpadding="0" cellspacing="0">
381               <tr>
382                 <xsl:if test="/bedework/periodname!='Year'">
383                   <td>
384                     <select name="viewStartDate.month">
385                       <xsl:for-each select="/bedework/monthvalues/val">
386                         <xsl:variable name="temp" select="."/>
387                         <xsl:variable name="pos" select="position()"/>
388                         <xsl:choose>
389                           <xsl:when test="/bedework/monthvalues[start=$temp]">
390                             <option value="{$temp}" selected="selected">
391                               <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/>
392                             </option>
393                           </xsl:when>
394                           <xsl:otherwise>
395                             <option value="{$temp}">
396                               <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/>
397                             </option>
398                           </xsl:otherwise>
399                         </xsl:choose>
400                       </xsl:for-each>
401                     </select>
402                   </td>
403                   <xsl:if test="/bedework/periodname!='Month'">
404                     <td>
405                       <select name="viewStartDate.day">
406                         <xsl:for-each select="/bedework/dayvalues/val">
407                           <xsl:variable name="temp" select="."/>
408                           <xsl:variable name="pos" select="position()"/>
409                           <xsl:choose>
410                             <xsl:when test="/bedework/dayvalues[start=$temp]">
411                               <option value="{$temp}" selected="selected">
412                                 <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/>
413                               </option>
414                             </xsl:when>
415                             <xsl:otherwise>
416                               <option value="{$temp}">
417                                 <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/>
418                               </option>
419                             </xsl:otherwise>
420                           </xsl:choose>
421                         </xsl:for-each>
422                       </select>
423                     </td>
424                   </xsl:if>
425                 </xsl:if>
426                 <td>
427                   <xsl:variable name="temp" select="/bedework/yearvalues/start"/>
428                   <input type="text" name="viewStartDate.year" maxlength="4" size="4" value="{$temp}"/>
429                 </td>
430                 <td>
431                   <input name="submit" type="submit" value="go"/>
432                 </td>
433               </tr>
434             </table>
435           </form>
436         </td>
437         <td class="todayButton">
438           <a href="{$setViewPeriod}?viewType=todayView&amp;date={$curdate}">
439             <img src="{$resourcesRoot}/resources/std-button-today-off.gif" width="54" height="22" border="0" alt="Go to Today" align="left"/>
440           </a>
441         </td>
442         <!--
443         <td class="rightCell">
444           <form method="post" action="{$setSelection}">
445             <select name="calId" onChange="submit()" >
446               <option>select a calendar</option>
447               <xsl:for-each select="/bedework/calendars/calendar">
448                 <xsl:variable name="id" select="id"/>
449                 <xsl:choose>
450                   <xsl:when test="title=/bedework/title">
451                     <option value="{$id}" selected="selected"><xsl:value-of select="title"/></option>
452                   </xsl:when>
453                   <xsl:otherwise>
454                     <option value="{$id}"><xsl:value-of select="title"/></option>
455                   </xsl:otherwise>
456                 </xsl:choose>
457               </xsl:for-each>
458             </select>
459           </form>
460           <span class="calLinks"><a href="{$setSelection}?calId=">show all</a> | <a href="{$fetchPublicCalendars}">calendar list</a></span>
461         </td> -->
462       </tr>
463     </table>
464   </xsl:template>
465
466   <xsl:template name="userBar">
467     <table width="100%" border="0" cellpadding="0" cellspacing="0" id="userBarTable">
468        <tr>
469          <td class="leftCell">
470            Logged in as:
471            <xsl:text> </xsl:text>
472            <strong><xsl:value-of select="/bedework/userid"/></strong>
473            <xsl:text> </xsl:text>
474            <span class="logout"><a href="{$setup}?logout=true">logout</a></span>
475            <!--<xsl:choose>
476              <xsl:when test="/bedework/title!=''">
477                Calendar: <xsl:value-of select="/bedework/title"/>
478                <span class="link">[<a href="{$setSelection}?calId=">clear</a>]</span>
479              </xsl:when>
480              <xsl:when test="/bedework/search!=''">
481                Current search: <xsl:value-of select="/bedework/search"/>
482                <span class="link">[<a href="{$setSelection}?calId=">clear</a>]</span>
483              </xsl:when>
484              <xsl:otherwise>
485                Current calendar: All
486              </xsl:otherwise>
487            </xsl:choose> -->
488          </td>
489          <td class="rightCell">
490            <xsl:choose>
491             <xsl:when test="/bedework/periodname='Day'">
492               <img src="{$resourcesRoot}/resources/std-button-listview-off.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
493             </xsl:when>
494             <xsl:when test="/bedework/periodname='Year'">
495               <img src="{$resourcesRoot}/resources/std-button-calview-off.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
496             </xsl:when>
497             <xsl:when test="/bedework/periodname='Month'">
498               <xsl:choose>
499                 <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'">
500                   <a href="{$setup}?setappvar=monthViewMode(cal)" title="toggle list/calendar view">
501                     <img src="{$resourcesRoot}/resources/std-button-calview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
502                   </a>
503                 </xsl:when>
504                 <xsl:otherwise>
505                   <a href="{$setup}?setappvar=monthViewMode(list)" title="toggle list/calendar view">
506                     <img src="{$resourcesRoot}/resources/std-button-listview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
507                   </a>
508                 </xsl:otherwise>
509               </xsl:choose>
510             </xsl:when>
511             <xsl:otherwise>
512               <xsl:choose>
513                 <xsl:when test="/bedework/appvar[key='weekViewMode']/value='list'">
514                   <a href="{$setup}?setappvar=weekViewMode(cal)" title="toggle list/calendar view">
515                     <img src="{$resourcesRoot}/resources/std-button-calview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
516                   </a>
517                 </xsl:when>
518                 <xsl:otherwise>
519                   <a href="{$setup}?setappvar=weekViewMode(list)" title="toggle list/calendar view">
520                     <img src="{$resourcesRoot}/resources/std-button-listview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/>
521                   </a>
522                 </xsl:otherwise>
523               </xsl:choose>
524             </xsl:otherwise>
525           </xsl:choose>
526            <xsl:choose>
527               <xsl:when test="/bedework/periodname='Year' or
528                               (/bedework/periodname='Month' and
529                               (/bedework/appvar[key='monthViewMode']/value='cal' or
530                                count(/bedework/appvar[key='monthViewMode'])=0)) or
531                               (/bedework/periodname='Week' and
532                               (/bedework/appvar[key='weekViewMode']/value='cal' or
533                                count(/bedework/appvar[key='weekViewMode'])=0))">
534                 <xsl:choose>
535                   <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'">
536                     <img src="{$resourcesRoot}/resources/std-button-summary-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/>
537                   </xsl:when>
538                   <xsl:otherwise>
539                     <img src="{$resourcesRoot}/resources/std-button-details-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/>
540                   </xsl:otherwise>
541                 </xsl:choose>
542               </xsl:when>
543               <xsl:otherwise>
544                 <xsl:choose>
545                   <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'">
546                     <a href="{$setup}?setappvar=summaryMode(summary)" title="toggle summary/detailed view">
547                       <img src="{$resourcesRoot}/resources/std-button-summary.gif" width="62" height="21" border="0" alt="toggle summary/detailed view"/>
548                     </a>
549                   </xsl:when>
550                   <xsl:otherwise>
551                     <a href="{$setup}?setappvar=summaryMode(details)" title="toggle summary/detailed view">
552                       <img src="{$resourcesRoot}/resources/std-button-details.gif" width="62" height="21" border="0" alt="toggle summary/detailed view"/>
553                     </a>
554                   </xsl:otherwise>
555                 </xsl:choose>
556               </xsl:otherwise>
557             </xsl:choose>
558             <a href="setup.do"><img src="{$resourcesRoot}/resources/std-button-refresh.gif" width="70" height="21" border="0" alt="refresh view"/></a>
559          </td>
560        </tr>
561     </table>
562   </xsl:template>
563
564   <!--==== LIST VIEW  (for day, week, and month) ====-->
565   <xsl:template name="listView">
566     <table id="listTable" border="0" cellpadding="0" cellspacing="0">
567       <xsl:choose>
568         <xsl:when test="count(/bedework/eventscalendar/year/month/week/day/event)=0">
569           <tr>
570             <td class="noEventsCell">
571               There are no events posted
572               <xsl:choose>
573                 <xsl:when test="/bedework/periodname='Day'">
574                   today<xsl:if test="/bedework/title!=''"> for <strong><xsl:value-of select="/bedework/title"/></strong></xsl:if><xsl:if test="/bedework/search!=''"> for search term <strong>"<xsl:value-of select="/bedework/search"/>"</strong></xsl:if>.
575                 </xsl:when>
576                 <xsl:when test="/bedework/periodname='Month'">
577                   this month<xsl:if test="/bedework/title!=''"> for <strong><xsl:value-of select="/bedework/title"/></strong></xsl:if><xsl:if test="/bedework/search!=''"> for search term <strong>"<xsl:value-of select="/bedework/search"/>"</strong></xsl:if>.
578                 </xsl:when>
579                 <xsl:otherwise>
580                   this week<xsl:if test="/bedework/title!=''"> for <strong><xsl:value-of select="/bedework/title"/></strong></xsl:if><xsl:if test="/bedework/search!=''"> for search term <strong>"<xsl:value-of select="/bedework/search"/>"</strong></xsl:if>.
581                 </xsl:otherwise>
582               </xsl:choose>
583             </td>
584           </tr>
585         </xsl:when>
586         <xsl:otherwise>
587           <xsl:for-each select="/bedework/eventscalendar/year/month/week/day[count(event)!=0]">
588             <xsl:if test="/bedework/periodname='Week' or /bedework/periodname='Month' or /bedework/periodname=''">
589               <tr>
590                 <td colspan="6" class="dateRow">
591                    <xsl:variable name="date" select="date"/>
592                    <a href="{$setViewPeriod}?viewType=dayView&amp;date={$date}">
593                      <xsl:value-of select="name"/>, <xsl:value-of select="longdate"/>
594                    </a>
595                 </td>
596               </tr>
597             </xsl:if>
598             <xsl:for-each select="event">
599               <xsl:variable name="id" select="id"/>
600               <xsl:variable name="subscriptionId" select="subscription/id"/>
601               <xsl:variable name="calendarId" select="calendar/id"/>
602               <xsl:variable name="guid" select="guid"/>
603               <xsl:variable name="recurrenceId" select="recurrenceId"/>
604               <tr>
605                 <xsl:variable name="dateRangeStyle">
606                   <xsl:choose>
607                     <xsl:when test="start/shortdate = parent::day/shortdate">
608                       <xsl:choose>
609                         <xsl:when test="start/allday = 'true'">dateRangeCrossDay</xsl:when>
610                         <xsl:when test="start/hour24 &lt; 6">dateRangeEarlyMorning</xsl:when>
611                         <xsl:when test="start/hour24 &lt; 12">dateRangeMorning</xsl:when>
612                         <xsl:when test="start/hour24 &lt; 18">dateRangeAfternoon</xsl:when>
613                         <xsl:otherwise>dateRangeEvening</xsl:otherwise>
614                       </xsl:choose>
615                     </xsl:when>
616                     <xsl:otherwise>dateRangeCrossDay</xsl:otherwise>
617                   </xsl:choose>
618                 </xsl:variable>
619                 <xsl:choose>
620                   <xsl:when test="start/allday = 'true' and
621                                   start/shortdate = end/shortdate">
622                     <td class="{$dateRangeStyle} center" colspan="3">
623                       all day
624                     </td>
625                   </xsl:when>
626                   <xsl:otherwise>
627                     <td class="{$dateRangeStyle} right">
628                       <a href="{$eventView}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">
629                       <xsl:choose>
630                         <xsl:when test="start/allday = 'true' and
631                                         parent::day/shortdate = start/shortdate">
632                           today
633                         </xsl:when>
634                         <xsl:when test="parent::day/shortdate != start/shortdate">
635                           <span class="littleArrow">&#171;</span>&#160;
636                           <xsl:value-of select="start/month"/>/<xsl:value-of select="start/day"/>
637                         </xsl:when>
638                         <xsl:otherwise>
639                           <xsl:value-of select="start/time"/>
640                         </xsl:otherwise>
641                       </xsl:choose>
642                       </a>
643                     </td>
644                     <td class="{$dateRangeStyle} center">
645                       <a href="{$eventView}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">-</a>
646                     </td>
647                     <td class="{$dateRangeStyle} left">
648                       <a href="{$eventView}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">
649                       <xsl:choose>
650                         <xsl:when test="end/allday = 'true' and
651                                         parent::day/shortdate = end/shortdate">
652                           today
653                         </xsl:when>
654                         <xsl:when test="parent::day/shortdate != end/shortdate">
655                           <xsl:value-of select="end/month"/>/<xsl:value-of select="end/day"/>
656                           &#160;<span class="littleArrow">&#187;</span>
657                         </xsl:when>
658                         <xsl:otherwise>
659                           <xsl:value-of select="end/time"/>
660                         </xsl:otherwise>
661                       </xsl:choose>
662                       </a>
663                     </td>
664                   </xsl:otherwise>
665                 </xsl:choose>
666                 <xsl:variable name="descriptionClass">
667                   <xsl:choose>
668                     <xsl:when test="priority='cancelled'">description cancelled</xsl:when>
669                     <xsl:otherwise>description</xsl:otherwise>
670                   </xsl:choose>
671                 </xsl:variable>
672                 <td class="{$descriptionClass}">
673                   <xsl:choose>
674                     <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'">
675                       <a href="{$eventView}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">
676                         <strong><xsl:value-of select="summary"/>: </strong>
677                         <xsl:value-of select="description"/>&#160;
678                         <em>
679                           <xsl:value-of select="location/address"/>
680                           <xsl:if test="location/subaddress != ''">
681                             , <xsl:value-of select="location/subaddress"/>
682                           </xsl:if>.&#160;
683                           <xsl:if test="cost!=''">
684                             <xsl:value-of select="cost"/>.&#160;
685                           </xsl:if>
686                           <xsl:if test="sponsor/name!='none'">
687                             Contact: <xsl:value-of select="sponsor/name"/>
688                           </xsl:if>
689                         </em>
690                       </a>
691                       <xsl:if test="link != ''">
692                         <xsl:variable name="link" select="link"/>
693                         <a href="{$link}" class="moreLink"><xsl:value-of select="link"/></a>
694                       </xsl:if>
695                     </xsl:when>
696                     <xsl:otherwise>
697                       <a href="{$eventView}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">
698                         <xsl:value-of select="summary"/>, <xsl:value-of select="location/address"/>
699                       </a>
700                     </xsl:otherwise>
701                   </xsl:choose>
702                 </td>
703                 <td class="eventLinks">
704                   <xsl:call-template name="eventLinks"/>
705                 </td>
706                 <td class="smallIcon">
707                   <xsl:variable name="eventIcalName" select="concat($id,'.ics')"/>
708                   <a href="{$export}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;nocache=no&amp;skinName=ical&amp;contentType=text/calendar&amp;contentName={$eventIcalName}" title="Download event as ical - for Outlook, PDAs, iCal, and other desktop calendars">
709                     <img src="{$resourcesRoot}/resources/std-ical_icon_small.gif" width="12" height="16" border="0" alt="Download event as ical - for Outlook, PDAs, iCal, and other desktop calendars"/>
710                   </a>
711                 </td>
712               </tr>
713             </xsl:for-each>
714           </xsl:for-each>
715         </xsl:otherwise>
716       </xsl:choose>
717     </table>
718   </xsl:template>
719
720   <xsl:template name="eventLinks">
721     <xsl:variable name="subscriptionId" select="subscription/id"/>
722           <xsl:variable name="calendarId" select="calendar/id"/>
723     <xsl:variable name="guid" select="guid"/>
724     <xsl:variable name="recurrenceId" select="recurrenceId"/>
725     <xsl:choose>
726       <xsl:when test="kind='0'">
727         <a href="{$editEvent}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">Edit</a> |
728         <xsl:choose>
729           <xsl:when test="recurring=true">
730             <a href="{$delEvent}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">Delete All</a>
731           </xsl:when>
732           <xsl:otherwise>
733             <a href="{$delEvent}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">Delete</a>
734           </xsl:otherwise>
735         </xsl:choose>
736       </xsl:when>
737       <xsl:when test="kind='1'">
738         <xsl:choose>
739           <xsl:when test="recurring=true">
740             <a href="{$delEvent}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;confirmationid={$confId}">Remove All</a>
741           </xsl:when>
742           <xsl:otherwise>
743             <a href="{$delEvent}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">Remove</a>
744           </xsl:otherwise>
745         </xsl:choose>
746       </xsl:when>
747       <xsl:otherwise>
748         <a href="{$fetchPublicCalendars}">Subscription</a>
749       </xsl:otherwise>
750     </xsl:choose>
751   </xsl:template>
752
753   <!--==== WEEK CALENDAR VIEW ====-->
754   <xsl:template name="weekView">
755     <table id="monthCalendarTable" border="0" cellpadding="0" cellspacing="0">
756       <tr>
757         <xsl:for-each select="/bedework/daynames/val">
758           <th class="dayHeading"><xsl:value-of select="."/></th>
759         </xsl:for-each>
760       </tr>
761       <tr>
762         <xsl:for-each select="/bedework/eventscalendar/year/month/week/day">
763           <xsl:variable name="dayPos" select="position()"/>
764           <xsl:if test="filler='false'">
765             <td>
766               <xsl:variable name="dayDate" select="date"/>
767               <a href="{$initEvent}?date={$dayDate}" class="gridAdd">[add]</a>
768               <a href="{$setViewPeriod}?viewType=dayView&amp;date={$dayDate}" class="dayLink">
769                 <xsl:value-of select="value"/>
770               </a>
771               <ul>
772                 <xsl:apply-templates select="event" mode="calendarLayout">
773                   <xsl:with-param name="dayPos" select="$dayPos"/>
774                 </xsl:apply-templates>
775               </ul>
776             </td>
777           </xsl:if>
778         </xsl:for-each>
779       </tr>
780     </table>
781   </xsl:template>
782
783   <!--==== MONTH CALENDAR VIEW ====-->
784   <xsl:template name="monthView">
785     <table id="monthCalendarTable" border="0" cellpadding="0" cellspacing="0">
786       <tr>
787         <xsl:for-each select="/bedework/daynames/val">
788           <th class="dayHeading"><xsl:value-of select="."/></th>
789         </xsl:for-each>
790       </tr>
791       <xsl:for-each select="/bedework/eventscalendar/year/month/week">
792         <tr>
793           <xsl:for-each select="day">
794             <xsl:variable name="dayPos" select="position()"/>
795             <xsl:choose>
796               <xsl:when test="filler='true'">
797                 <td class="filler">&#160;</td>
798               </xsl:when>
799               <xsl:otherwise>
800                 <td>
801                   <xsl:variable name="dayDate" select="date"/>
802                   <a href="{$initEvent}?date={$dayDate}" class="gridAdd">[add]</a>
803                   <a href="{$setViewPeriod}?viewType=dayView&amp;date={$dayDate}" class="dayLink">
804                     <xsl:value-of select="value"/>
805                   </a>
806                   <ul>
807                     <xsl:apply-templates select="event" mode="calendarLayout">
808                       <xsl:with-param name="dayPos" select="$dayPos"/>
809                     </xsl:apply-templates>
810                   </ul>
811                 </td>
812               </xsl:otherwise>
813             </xsl:choose>
814           </xsl:for-each>
815         </tr>
816       </xsl:for-each>
817     </table>
818   </xsl:template>
819
820   <xsl:template match="event" mode="calendarLayout">
821     <xsl:param name="dayPos"/>
822     <xsl:variable name="subscriptionId" select="subscription/id"/>
823     <xsl:variable name="calendarId" select="calendar/id"/>
824     <xsl:variable name="guid" select="guid"/>
825     <xsl:variable name="recurrenceId" select="recurrenceId"/>
826     <xsl:variable name="eventClass">
827       <xsl:choose>
828         <!-- Special styles for the month grid -->
829         <xsl:when test="status='cancelled'">eventCancelled</xsl:when>
830         <xsl:when test="calendar/name='Holidays'">holiday</xsl:when>
831         <!-- Alternating colors for all standard events -->
832         <xsl:when test="position() mod 2 = 1">eventLinkA</xsl:when>
833         <xsl:otherwise>eventLinkB</xsl:otherwise>
834       </xsl:choose>
835     </xsl:variable>
836     <li>
837       <a href="{$eventView}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" class="{$eventClass}">
838         <xsl:value-of select="summary"/>
839         <xsl:variable name="eventTipClass">
840           <xsl:choose>
841             <xsl:when test="$dayPos &gt; 5">eventTipReverse</xsl:when>
842             <xsl:otherwise>eventTip</xsl:otherwise>
843           </xsl:choose>
844         </xsl:variable>
845         <span class="{$eventTipClass}">
846           <strong><xsl:value-of select="summary"/></strong><br/>
847           Time:
848           <xsl:choose>
849             <xsl:when test="start/allday = 'false'">
850               <xsl:value-of select="start/time"/>
851                - <xsl:value-of select="end/time"/>
852             </xsl:when>
853             <xsl:otherwise>
854               all day
855             </xsl:otherwise>
856           </xsl:choose><br/>
857           <xsl:if test="location/address">
858             Location: <xsl:value-of select="location/address"/><br/>
859           </xsl:if>
860           Calendar: <xsl:value-of select="calendar/name"/>
861           Type:
862           <xsl:choose>
863             <xsl:when test="kind='0'">
864               personal event, editable
865             </xsl:when>
866             <xsl:when test="kind='1'">
867               public event
868             </xsl:when>
869             <xsl:otherwise>
870               subscription
871             </xsl:otherwise>
872           </xsl:choose>
873         </span>
874       </a>
875     </li>
876   </xsl:template>
877
878   <!--==== YEAR VIEW ====-->
879   <xsl:template name="yearView">
880     <table id="yearCalendarTable" border="0" cellpadding="0" cellspacing="0">
881       <tr>
882         <xsl:apply-templates select="/bedework/eventscalendar/year/month[position() &lt;= 3]"/>
883       </tr>
884       <tr>
885         <xsl:apply-templates select="/bedework/eventscalendar/year/month[(position() &gt; 3) and (position() &lt;= 6)]"/>
886       </tr>
887       <tr>
888         <xsl:apply-templates select="/bedework/eventscalendar/year/month[(position() &gt; 6) and (position() &lt;= 9)]"/>
889       </tr>
890       <tr>
891         <xsl:apply-templates select="/bedework/eventscalendar/year/month[position() &gt; 9]"/>
892       </tr>
893     </table>
894   </xsl:template>
895
896   <!-- year view month tables -->
897   <xsl:template match="month">
898     <td>
899       <table class="yearViewMonthTable" border="0" cellpadding="0" cellspacing="0">
900         <tr>
901           <td colspan="8" class="monthName">
902             <xsl:variable name="firstDayOfMonth" select="week/day/date"/>
903             <a href="{$setViewPeriod}?viewType=monthView&amp;date={$firstDayOfMonth}">
904               <xsl:value-of select="longname"/>
905             </a>
906           </td>
907         </tr>
908         <tr>
909           <th>&#160;</th>
910           <xsl:for-each select="/bedework/shortdaynames/val">
911             <th><xsl:value-of select="."/></th>
912           </xsl:for-each>
913         </tr>
914         <xsl:for-each select="week">
915           <tr>
916             <td class="weekCell">
917               <xsl:variable name="firstDayOfWeek" select="day/date"/>
918               <a href="{$setViewPeriod}?viewType=weekView&amp;date={$firstDayOfWeek}">
919                 <xsl:value-of select="value"/>
920               </a>
921             </td>
922             <xsl:for-each select="day">
923               <xsl:choose>
924                 <xsl:when test="filler='true'">
925                   <td class="filler">&#160;</td>
926                 </xsl:when>
927                 <xsl:otherwise>
928                   <td>
929                     <xsl:variable name="dayDate" select="date"/>
930                     <a href="{$setViewPeriod}?viewType=dayView&amp;date={$dayDate}">
931                       <xsl:value-of select="value"/>
932                     </a>
933                   </td>
934                 </xsl:otherwise>
935               </xsl:choose>
936             </xsl:for-each>
937           </tr>
938         </xsl:for-each>
939       </table>
940     </td>
941   </xsl:template>
942
943   <!--==== CALENDAR LISTING / MANAGE SUBSCRIPTIONS ====-->
944   <xsl:template match="calendars">
945     <xsl:variable name="publicCalCount" select="count(calendar[name='public']/calendar)"/>
946     <table id="calPageTable" border="0" cellpadding="0" cellspacing="0">
947       <tr>
948         <th colspan="2">
949           Calendar Subscriptions
950         </th>
951       </tr>
952       <tr>
953         <td colspan="2" class="infoCell">
954           Add and remove subscriptions to public calendars
955         </td>
956       </tr>
957       <tr>
958         <td class="leftCell">
959           <ul class="calendarTree">
960             <xsl:apply-templates select="calendar[name='public']/calendar[position() &lt;= ceiling($publicCalCount div 2)]" mode="calTree"/>
961           </ul>
962         </td>
963         <td>
964           <ul class="calendarTree">
965             <xsl:apply-templates select="calendar[name='public']/calendar[position() &gt; ceiling($publicCalCount div 2)]" mode="calTree"/>
966           </ul>
967         </td>
968       </tr>
969     </table>
970   </xsl:template>
971
972   <xsl:template match="calendar" mode="calTree">
973    <xsl:variable name="itemClass">
974       <xsl:choose>
975         <xsl:when test="calendarCollection='false'">folder</xsl:when>
976         <xsl:otherwise>calendar</xsl:otherwise>
977       </xsl:choose>
978     </xsl:variable>
979     <xsl:variable name="id" select="id"/>
980     <xsl:variable name="name" select="name"/>
981     <li class="{$itemClass}">
982       <a href="{$subscribe}?calid={$id}&amp;name={$name}"><xsl:value-of select="name"/></a>
983       <xsl:if test="calendar">
984         <ul>
985           <xsl:apply-templates select="calendar" mode="calTree"/>
986         </ul>
987       </xsl:if>
988     </li>
989   </xsl:template>
990
991   <!--==== SINGLE EVENT ====-->
992   <xsl:template match="event">
993     <xsl:variable name="subscriptionId" select="subscription/id"/>
994     <xsl:variable name="calendarId" select="calendar/id"/>
995     <xsl:variable name="guid" select="guid"/>
996     <xsl:variable name="recurrenceId" select="recurrenceId"/>
997     <table id="commonTable" cellpadding="0" cellspacing="0">
998       <tr>
999         <th colspan="3" id="commonHeader">
1000           <div id="eventActions">
1001             <xsl:choose>
1002               <xsl:when test="kind='0'">
1003                 <a href="{$editEvent}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">
1004                   Edit Event
1005                 </a> |
1006                 <xsl:choose>
1007                   <xsl:when test="recurring=true">
1008                     <a href="{$delEvent}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;confirmationid={$confId}">
1009                       Delete All (recurring)
1010                     </a>
1011                   </xsl:when>
1012                   <xsl:otherwise>
1013                     <a href="{$delEvent}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">
1014                       Delete Event
1015                     </a>
1016                   </xsl:otherwise>
1017                 </xsl:choose>
1018               </xsl:when>
1019               <xsl:when test="kind='1'">
1020                 <xsl:choose>
1021                   <xsl:when test="recurring=true">
1022                     <a href="{$delEvent}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;confirmationid={$confId}">
1023                       Remove All (recurring)
1024                     </a>
1025                   </xsl:when>
1026                   <xsl:otherwise>
1027                     <a href="{$delEvent}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">
1028                       Remove
1029                     </a>
1030                   </xsl:otherwise>
1031                 </xsl:choose>
1032               </xsl:when>
1033               <xsl:otherwise>
1034                 <a href="{$fetchPublicCalendars}">
1035                   Manage Subscriptions
1036                 </a>
1037               </xsl:otherwise>
1038             </xsl:choose>
1039           </div>
1040           <xsl:choose>
1041             <xsl:when test="kind='0'">
1042               Private Event
1043             </xsl:when>
1044             <xsl:when test="kind='1'">
1045               Public Event
1046             </xsl:when>
1047             <xsl:otherwise>
1048               Public Event from Subscription
1049             </xsl:otherwise>
1050           </xsl:choose>
1051         </th>
1052       </tr>
1053       <tr>
1054         <th class="fieldname">Event:</th>
1055         <th class="fieldval">
1056           <xsl:choose>
1057             <xsl:when test="link != ''">
1058               <xsl:variable name="link" select="link"/>
1059               <a href="{$link}">
1060                 <xsl:value-of select="summary"/>
1061               </a>
1062             </xsl:when>
1063             <xsl:otherwise>
1064               <xsl:value-of select="summary"/>
1065             </xsl:otherwise>
1066           </xsl:choose>
1067         </th>
1068         <th class="icon" rowspan="2">
1069           <xsl:variable name="icalName" select="concat($guid,'.ics')"/>
1070           <a href="{$eventView}?subid={$subscriptionId}&amp;&amp;nocache=no&amp;skinName=ical&amp;contentType=text/calendar&amp;contentName={$icalName}" title="Download event as ical - for Outlook, PDAs, iCal, and other desktop calendars">
1071             <img src="{$resourcesRoot}/resources/std-ical-icon.gif" width="20" height="26" border="0" align="left" alt="Download this event"/>
1072           </a><!-- <br />
1073           [<a href="">help</a>] -->
1074         </th>
1075       </tr>
1076       <tr>
1077         <td class="fieldname">When:</td>
1078         <td class="fieldval">
1079           <!-- was using abbrev dayname: substring(start/dayname,1,3) -->
1080           <xsl:value-of select="start/dayname"/>, <xsl:value-of select="start/longdate"/><xsl:text> </xsl:text>
1081           <span class="time"><xsl:value-of select="start/time"/></span>
1082           <xsl:if test="end/time != '' or end/longdate != start/longdate"> - </xsl:if>
1083           <xsl:if test="end/longdate != start/longdate"><xsl:value-of select="substring(end/dayname,1,3)"/>, <xsl:value-of select="end/longdate"/><xsl:text> </xsl:text></xsl:if>
1084           <xsl:if test="end/time != ''"><span class="time"><xsl:value-of select="end/time"/></span></xsl:if>
1085         </td>
1086       </tr>
1087       <tr>
1088         <td class="fieldname">Where:</td>
1089         <td colspan="3" class="fieldval">
1090           <xsl:choose>
1091             <xsl:when test="location/link=''">
1092               <xsl:value-of select="location/address"/>
1093             </xsl:when>
1094             <xsl:otherwise>
1095               <xsl:variable name="locationLink" select="location/link"/>
1096               <a href="{$locationLink}">
1097                 <xsl:value-of select="location/address"/>
1098               </a>
1099             </xsl:otherwise>
1100           </xsl:choose>
1101           <xsl:if test="location/subaddress!=''">
1102             <br/><xsl:value-of select="location/subaddress"/>
1103           </xsl:if>
1104         </td>
1105       </tr>
1106       <tr>
1107         <td class="fieldname">Description:</td>
1108         <td colspan="3" class="fieldval">
1109           <xsl:value-of select="description"/>
1110         </td>
1111       </tr>
1112        <xsl:if test="cost!=''">
1113         <tr>
1114           <td class="fieldname">Cost:</td>
1115           <td colspan="2" class="fieldval"><xsl:value-of select="cost"/></td>
1116         </tr>
1117       </xsl:if>
1118       <xsl:if test="link != ''">
1119         <tr>
1120           <td class="fieldname">See:</td>
1121           <td colspan="3" class="fieldval">
1122             <xsl:variable name="link" select="link"/>
1123             <a href="{$link}"><xsl:value-of select="link"/></a>
1124           </td>
1125         </tr>
1126       </xsl:if>
1127       <xsl:if test="sponsor/name!='none'">
1128         <tr>
1129           <td class="fieldname">Contact:</td>
1130           <td colspan="3" class="fieldval">
1131             <xsl:choose>
1132               <xsl:when test="sponsor/link=''">
1133                 <xsl:value-of select="sponsor/name"/>
1134               </xsl:when>
1135               <xsl:otherwise>
1136                 <xsl:variable name="sponsorLink" select="sponsor/link"/>
1137                 <a href="{$sponsorLink}">
1138                   <xsl:value-of select="sponsor/name"/>
1139                 </a>
1140               </xsl:otherwise>
1141             </xsl:choose>
1142             <xsl:if test="sponsor/phone!=''">
1143               <br /><xsl:value-of select="sponsor/phone"/>
1144             </xsl:if>
1145             <xsl:if test="sponsor/email!=''">
1146               <br />
1147               <xsl:variable name="email" select="sponsor/email"/>
1148               <xsl:variable name="subject" select="summary"/>
1149               <a href="mailto:{$email}?subject={$subject}">
1150                 <xsl:value-of select="sponsor/email"/>
1151               </a>
1152             </xsl:if>
1153           </td>
1154         </tr>
1155       </xsl:if>
1156       <xsl:if test="calendar/name!=''">
1157         <tr>
1158           <td class="fieldname">Calendar:</td>
1159           <td class="fieldval"><xsl:value-of select="calendar/name"/></td>
1160         </tr>
1161       </xsl:if>
1162     </table>
1163   </xsl:template>
1164
1165  <!--==== ADD EVENT ====-->
1166   <xsl:template name="addEvent">
1167     <form name="addEventForm" method="post" action="{$addEventUsingPage}" id="standardForm">
1168       <input type="hidden" name="confirmationid" value="{$confId}"/>
1169       <input type="hidden" name="endType" value="date"/>
1170       <table id="commonTable" cellpadding="0" cellspacing="0">
1171         <tr>
1172           <th colspan="2" id="commonHeader">Add Event</th>
1173         </tr>
1174         <tr>
1175           <td class="fieldname">
1176             Title:
1177           </td>
1178           <td class="fieldval">
1179             <xsl:variable name="title" select="/bedework/eventform/form/title/input/@value"/>
1180             <input type="text" name="newEvent.summary" size="80" value="{$title}"/>
1181           </td>
1182         </tr>
1183         <tr>
1184           <td class="fieldname">
1185             Date &amp; Time:
1186           </td>
1187           <td class="fieldval">
1188             <!-- Set the timefields class for the first load of the page;
1189                  subsequent changes will take place using javascript without a
1190                  page reload. -->
1191             <xsl:variable name="timeFieldsClass">
1192               <xsl:choose>
1193                 <xsl:when test="/bedework/formElements/form/allDay/input/@checked='checked'">invisible</xsl:when>
1194                 <xsl:otherwise>timeFields</xsl:otherwise>
1195               </xsl:choose>
1196             </xsl:variable>
1197             <xsl:choose>
1198               <xsl:when test="/bedework/formElements/form/allDay/input/@checked='checked'">
1199                 <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="on" checked="checked"/>
1200                 <input type="hidden" name="eventStartDate.dateOnly" value="on" id="allDayStartDateField"/>
1201                 <input type="hidden" name="eventEndDate.dateOnly" value="on" id="allDayEndDateField"/>
1202               </xsl:when>
1203               <xsl:otherwise>
1204                 <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="off"/>
1205                 <input type="hidden" name="eventStartDate.dateOnly" value="off" id="allDayStartDateField"/>
1206                 <input type="hidden" name="eventEndDate.dateOnly" value="off" id="allDayEndDateField"/>
1207               </xsl:otherwise>
1208             </xsl:choose>
1209             all day event<br/>
1210             <div class="dateStartEndBox">
1211               <strong>Start:</strong>
1212               <div class="dateFields">
1213                 <span class="startDateLabel">Date </span>
1214                 <xsl:copy-of select="/bedework/formElements/form/start/month/*"/>
1215                 <xsl:copy-of select="/bedework/formElements/form/start/day/*"/>
1216                 <xsl:choose>
1217                   <xsl:when test="/bedework/creating = 'true'">
1218                     <xsl:copy-of select="/bedework/formElements/form/start/year/*"/>
1219                   </xsl:when>
1220                   <xsl:otherwise>
1221                     <xsl:copy-of select="/bedework/formElements/form/start/yearText/*"/>
1222                   </xsl:otherwise>
1223                 </xsl:choose>
1224               </div>
1225               <script language="JavaScript" type="text/javascript">
1226               <xsl:comment>
1227                 startDateDynCalWidget = new dynCalendar('startDateDynCalWidget', 'startDateCalWidgetCallback');
1228               </xsl:comment>
1229               </script>
1230               <!--<img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>-->
1231               <div class="{$timeFieldsClass}" id="startTimeFields">
1232                 <span id="calWidgetStartTimeHider" class="show">
1233                   <xsl:copy-of select="/bedework/formElements/form/start/hour/*"/>
1234                   <xsl:copy-of select="/bedework/formElements/form/start/minute/*"/>
1235                   <xsl:if test="/bedework/formElements/form/start/ampm">
1236                     <xsl:copy-of select="/bedework/formElements/form/start/ampm/*"/>
1237                   </xsl:if>
1238                   <xsl:text> </xsl:text>
1239                   <a href="javascript:bwClockLaunch('eventStartDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/></a>
1240                 </span>
1241               </div>
1242             </div>
1243             <div class="dateStartEndBox">
1244               <strong>End:</strong>
1245               <xsl:choose>
1246                 <xsl:when test="/bedework/formElements/form/end/type='E'">
1247                   <input type="radio" name="eventEndType" value="E" checked="checked" onClick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/>
1248                 </xsl:when>
1249                 <xsl:otherwise>
1250                   <input type="radio" name="eventEndType" value="E" onClick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/>
1251                 </xsl:otherwise>
1252               </xsl:choose>
1253               Date
1254               <xsl:variable name="endDateTimeClass">
1255                 <xsl:choose>
1256                   <xsl:when test="/bedework/formElements/form/end/type='E'">shown</xsl:when>
1257                   <xsl:otherwise>invisible</xsl:otherwise>
1258                 </xsl:choose>
1259               </xsl:variable>
1260               <div class="{$endDateTimeClass}" id="endDateTime">
1261                 <div class="dateFields">
1262                   <xsl:copy-of select="/bedework/formElements/form/end/dateTime/month/*"/>
1263                   <xsl:copy-of select="/bedework/formElements/form/end/dateTime/day/*"/>
1264                   <xsl:choose>
1265                     <xsl:when test="/bedework/creating = 'true'">
1266                       <xsl:copy-of select="/bedework/formElements/form/end/dateTime/year/*"/>
1267                     </xsl:when>
1268                     <xsl:otherwise>
1269                       <xsl:copy-of select="/bedework/formElements/form/end/dateTime/yearText/*"/>
1270                     </xsl:otherwise>
1271                   </xsl:choose>
1272                 </div>
1273                 <script language="JavaScript" type="text/javascript">
1274                 <xsl:comment>
1275                   endDateDynCalWidget = new dynCalendar('endDateDynCalWidget', 'endDateCalWidgetCallback');
1276                 </xsl:comment>
1277                 </script>
1278                 <!--<img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>-->
1279                 <div class="{$timeFieldsClass}" id="endTimeFields">
1280                   <span id="calWidgetEndTimeHider" class="show">
1281                     <xsl:copy-of select="/bedework/formElements/form/end/dateTime/hour/*"/>
1282                     <xsl:copy-of select="/bedework/formElements/form/end/dateTime/minute/*"/>
1283                     <xsl:if test="/bedework/formElements/form/end/dateTime/ampm">
1284                       <xsl:copy-of select="/bedework/formElements/form/end/dateTime/ampm/*"/>
1285                     </xsl:if>
1286                     <xsl:text> </xsl:text>
1287                     <a href="javascript:bwClockLaunch('eventEndDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/></a>
1288                   </span>
1289                 </div>
1290               </div><br/>
1291               <div id="clock" class="invisible">
1292                 <xsl:call-template name="clock"/>
1293               </div>
1294               <div class="dateFields">
1295                 <xsl:choose>
1296                   <xsl:when test="/bedework/formElements/form/end/type='D'">
1297                     <input type="radio" name="eventEndType" value="D" checked="checked" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/>
1298                   </xsl:when>
1299                   <xsl:otherwise>
1300                     <input type="radio" name="eventEndType" value="D" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/>
1301                   </xsl:otherwise>
1302                 </xsl:choose>
1303                 Duration
1304                 <xsl:variable name="endDurationClass">
1305                   <xsl:choose>
1306                     <xsl:when test="/bedework/formElements/form/end/type='D'">shown</xsl:when>
1307                     <xsl:otherwise>invisible</xsl:otherwise>
1308                   </xsl:choose>
1309                 </xsl:variable>
1310                 <xsl:variable name="durationHrMinClass">
1311                   <xsl:choose>
1312                     <xsl:when test="/bedework/formElements/form/allDay/input/@checked='checked'">invisible</xsl:when>
1313                     <xsl:otherwise>shown</xsl:otherwise>
1314                   </xsl:choose>
1315                 </xsl:variable>
1316                 <div class="{$endDurationClass}" id="endDuration">
1317                   <xsl:choose>
1318                     <xsl:when test="/bedework/formElements/form/end/duration/weeks/input/@value = '0'">
1319                     <!-- we are using day, hour, minute format -->
1320                     <!-- must send either no week value or week value of 0 (zero) -->
1321                       <div class="durationBox">
1322                         <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')" checked="checked"/>
1323                         <xsl:variable name="daysStr" select="/bedework/formElements/form/end/duration/days/input/@value"/>
1324                         <input type="text" name="eventDuration.daysStr" size="2" value="{$daysStr}" id="durationDays"/>days
1325                         <span id="durationHrMin" class="{$durationHrMinClass}">
1326                           <xsl:variable name="hoursStr" select="/bedework/formElements/form/end/duration/hours/input/@value"/>
1327                           <input type="text" name="eventDuration.hoursStr" size="2" value="{$hoursStr}" id="durationHours"/>hours
1328                           <xsl:variable name="minutesStr" select="/bedework/formElements/form/end/duration/minutes/input/@value"/>
1329                           <input type="text" name="eventDuration.minutesStr" size="2" value="{$minutesStr}" id="durationMinutes"/>minutes
1330                         </span>
1331                       </div>
1332                       <span class="durationSpacerText">or</span>
1333                       <div class="durationBox">
1334                         <input type="radio" name="eventDuration.type" value="weeks" onclick="swapDurationType('week')"/>
1335                         <xsl:variable name="weeksStr" select="/bedework/formElements/form/end/duration/weeks/input/@value"/>
1336                         <input type="text" name="eventDuration.weeksStr" size="2" value="{$weeksStr}" id="durationWeeks" disabled="true"/>weeks
1337                       </div>
1338                     </xsl:when>
1339                     <xsl:otherwise>
1340                       <!-- we are using week format -->
1341                       <div class="durationBox">
1342                         <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')"/>
1343                         <xsl:variable name="daysStr" select="/bedework/formElements/form/end/duration/days/input/@value"/>
1344                         <input type="text" name="eventDuration.daysStr" size="2" value="{$daysStr}" id="durationDays" disabled="true"/>days
1345                         <span id="durationHrMin" class="{$durationHrMinClass}">
1346                           <xsl:variable name="hoursStr" select="/bedework/formElements/form/end/duration/hours/input/@value"/>
1347                           <input type="text" name="eventDuration.hoursStr" size="2" value="{$hoursStr}" id="durationHours" disabled="true"/>hours
1348                           <xsl:variable name="minutesStr" select="/bedework/formElements/form/end/duration/minutes/input/@value"/>
1349                           <input type="text" name="eventDuration.minutesStr" size="2" value="{$minutesStr}" id="durationMinutes" disabled="true"/>minutes
1350                         </span>
1351                       </div>
1352                       <span class="durationSpacerText">or</span>
1353                       <div class="durationBox">
1354                         <input type="radio" name="eventDuration.type" value="weeks" onclick="swapDurationType('week')" checked="checked"/>
1355                         <xsl:variable name="weeksStr" select="/bedework/formElements/form/end/duration/weeks/input/@value"/>
1356                         <input type="text" name="eventDuration.weeksStr" size="2" value="{$weeksStr}" id="durationWeeks"/>weeks
1357                       </div>
1358                     </xsl:otherwise>
1359                   </xsl:choose>
1360                 </div>
1361               </div><br/>
1362               <div class="dateFields" id="noDuration">
1363                 <xsl:choose>
1364                   <xsl:when test="/bedework/formElements/form/end/type='N'">
1365                     <input type="radio" name="eventEndType" value="N" checked="checked" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','invisible');"/>
1366                   </xsl:when>
1367                   <xsl:otherwise>
1368                     <input type="radio" name="eventEndType" value="N" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','invisible');"/>
1369                   </xsl:otherwise>
1370                 </xsl:choose>
1371                 This event has no duration / end date
1372               </div>
1373             </div>
1374           </td>
1375         </tr>
1376         <!--  Status  -->
1377         <tr>
1378           <td class="fieldname">
1379             Status:
1380           </td>
1381           <td class="fieldval">
1382             <xsl:choose>
1383               <xsl:when test="/bedework/formElements/form/status = 'TENTATIVE'">
1384                 <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
1385               </xsl:when>
1386               <xsl:when test="/bedework/formElements/form/status = 'CANCELLED'">
1387                 <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
1388               </xsl:when>
1389               <xsl:otherwise>
1390                 <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
1391               </xsl:otherwise>
1392             </xsl:choose>
1393           </td>
1394         </tr>
1395         <tr>
1396           <td class="fieldname">Description:</td>
1397           <td class="fieldval">
1398             <xsl:copy-of select="/bedeworkadmin/formElements/form/desc/*"/>
1399           </td>
1400         </tr>
1401         <tr>
1402           <td class="fieldname">Location:</td>
1403           <td class="fieldval" align="left">
1404             <span class="std-text">choose: </span>
1405             <span id="eventFormLocationList">
1406               <xsl:copy-of select="/bedework/formElements/form/location/locationmenu/*"/>
1407             </span>
1408             <span class="std-text"> or add new: </span>
1409             <xsl:copy-of select="/bedework/formElements/form/location/locationtext/*"/>
1410           </td>
1411         </tr>
1412         <tr>
1413           <td class="fieldname">Event Link:</td>
1414           <td class="fieldval">
1415             <xsl:variable name="link" select="/bedework/formElements/form/link/input/@value"/>
1416             <input type="text" name="newEvent.link" size="80" value="{$link}"/>
1417           </td>
1418         </tr>
1419         <tr>
1420           <td class="fieldname">&#160;</td>
1421           <td class="fieldval">
1422             <input name="submit" type="submit" value="Submit Event"/>&#160;
1423             <input name="cancelled" type="submit" value="Cancel"/>
1424           </td>
1425         </tr>
1426       </table>
1427     </form>
1428   </xsl:template>
1429
1430   <xsl:template name="clock">
1431     <div id="bwClock">
1432       <!-- Bedework 24-Hour Clock time selection widget
1433            used with resources/bwClock.js and resources/bwClock.css -->
1434       <div id="bwClockClock">
1435         <img id="clockMap" src="{$resourcesRoot}/resources/clockMap.gif" width="368" height="368" border="0" alt="" usemap="#bwClockMap" />
1436       </div>
1437       <div id="bwClockCover">
1438         <!-- this is a special effect div used simply to cover the pixelated edge
1439              where the clock meets the clock box title -->
1440       </div>
1441       <div id="bwClockBox">
1442         <h2>
1443           Bedework 24-Hour Clock
1444         </h2>
1445         <div id="bwClockDateTypeIndicator">
1446           type
1447         </div>
1448         <div id="bwClockTime">
1449           select time
1450         </div>
1451         <div id="bwClockCloseText">
1452           close
1453         </div>
1454         <div id="bwClockCloseButton">
1455           <a href="javascript:bwClockClose();">X</a>
1456         </div>
1457       </div>
1458       <map name="bwClockMap" id="bwClockMap">
1459         <area shape="rect" alt="close clock" title="close clock" coords="160,167, 200,200" href="javascript:bwClockClose()"/>
1460         <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')" />
1461         <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')" />
1462         <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')" />
1463         <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')" />
1464         <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')" />
1465         <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')" />
1466         <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')" />
1467         <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')" />
1468         <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')" />
1469         <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')" />
1470         <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')" />
1471         <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')" />
1472         <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')" />
1473         <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')" />
1474         <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')" />
1475         <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')" />
1476         <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')" />
1477         <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')" />
1478         <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')" />
1479         <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')" />
1480         <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')" />
1481         <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')" />
1482         <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')" />
1483         <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')" />
1484         <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')" />
1485         <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')" />
1486         <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')" />
1487         <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')" />
1488         <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')" />
1489         <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')" />
1490         <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')" />
1491         <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')" />
1492         <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')" />
1493         <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')" />
1494         <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')" />
1495         <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')" />
1496       </map>
1497     </div>
1498   </xsl:template>
1499
1500   <!--==== EDIT EVENT ====-->
1501   <xsl:template match="formElements">
1502     <form name="editEventForm" method="post" action="{$editEvent}" id="standardForm">
1503       <input type="hidden" name="updateEvent" value="true"/>
1504       <input type="hidden" name="confirmationid" value="{$confId}"/>
1505       <input type="hidden" name="endType" value="date"/>
1506       <table id="commonTable" cellpadding="0" cellspacing="0">
1507         <tr>
1508           <th colspan="2" id="commonHeader">
1509             <div id="eventActions">
1510               <xsl:variable name="subscriptionId" select="subscription/id"/>
1511               <xsl:variable name="calendarId" select="calendar/id"/>
1512               <xsl:variable name="guid" select="guid"/>
1513               <xsl:variable name="recurrenceId" select="recurrenceId"/>
1514               <a href="{$eventView}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">
1515                 View Event
1516               </a> |
1517               <a href="{$delEvent}?subid={$subscriptionId}&amp;calid={$calendarId}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">
1518                 Delete Event
1519               </a>
1520             </div>
1521             Edit Event
1522           </th>
1523         </tr>
1524         <tr>
1525           <td class="fieldname">
1526             Title/Summary:
1527           </td>
1528           <td class="fieldval">
1529             <xsl:variable name="title" select="/bedework/eventform/form/title/input/@value"/>
1530             <input type="text" name="editEvent.summary" size="80" value="{$title}"/>
1531           </td>
1532         </tr>
1533         <tr>
1534           <td class="fieldname">
1535             Start Date/Time:
1536           </td>
1537           <td class="fieldval">
1538             <xsl:copy-of select="/bedework/eventform/form/startdate/*"/>
1539             <span class="std-text">at  </span>
1540             <xsl:copy-of select="/bedework/eventform/form/starttime/*"/>
1541           </td>
1542         </tr>
1543         <tr>
1544           <td class="fieldname">
1545             End Date/Time:
1546           </td>
1547           <td class="fieldval">
1548             <xsl:copy-of select="/bedework/eventform/form/enddate/*"/>
1549             <span class="std-text">at  </span>
1550             <xsl:copy-of select="/bedework/eventform/form/endtime/*"/>
1551           </td>
1552         </tr>
1553         <tr>
1554           <td class="fieldname">
1555             Description:
1556           </td>
1557           <td class="fieldval">
1558             <textarea name="editEvent.description" rows="10" cols="60">
1559               <xsl:value-of select="/bedework/eventform/form/description/textarea"/>
1560             </textarea>
1561           </td>
1562         </tr>
1563         <tr>
1564           <td class="fieldname">
1565             Location:
1566           </td>
1567           <td class="fieldval" align="left">
1568             <span class="std-text">choose </span>
1569             <xsl:copy-of select="/bedework/eventform/form/location/locationmenu/*"/>
1570             <span class="std-text"><span class="bold">or</span> add </span>
1571             <xsl:copy-of select="/bedework/eventform/form/location/locationtext/*"/>
1572           </td>
1573         </tr>
1574         <tr>
1575           <td class="fieldname">
1576             Event Link:
1577           </td>
1578           <td class="fieldval">
1579             <xsl:variable name="link" select="/bedework/eventform/form/link/input/@value"/>
1580             <input type="text" name="editEvent.link" size="80" value="{$link}"/>
1581           </td>
1582         </tr>
1583         <tr>
1584           <td class="fieldname">&#160;</td>
1585           <td class="fieldval">
1586             <input name="submit" type="submit" value="Submit Event"/>&#160;
1587             <input name="cancelled" type="submit" value="Cancel"/>
1588           </td>
1589         </tr>
1590       </table>
1591     </form>
1592   </xsl:template>
1593
1594   <!--==== ALARM OPTIONS ====-->
1595   <xsl:template name="alarmOptions">
1596     <form method="get" action="{$setAlarm}" id="standardForm">
1597       <input type="hidden" name="updateAlarmOptions" value="true"/>
1598       <table id="commonTable" cellpadding="0" cellspacing="0">
1599         <tr>
1600           <th colspan="2" id="commonHeader">Alarm options</th>
1601         </tr>
1602         <tr>
1603           <td class="fieldname">
1604             Alarm Date/Time:
1605             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmTriggerSelectorDate/*"/>
1606           </td>
1607           <td class="fieldval">
1608             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmdate/*"/>
1609             <span class="std-text">at  </span>
1610             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmtime/*"/>
1611           </td>
1612         </tr>
1613         <tr>
1614           <td class="fieldname">
1615             or Before/After event:
1616             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmTriggerSelectorDuration/*"/>
1617           </td>
1618           <td align="left">
1619             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmduration/days/*"/>
1620             days
1621             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmduration/hours/*"/>
1622             hours
1623             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmduration/minutes/*"/>
1624             minutes
1625             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmduration/seconds/*"/>
1626             seconds OR:
1627             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmduration/weeks/*"/>
1628             weeks
1629             &#160;
1630             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmDurationBefore/*"/>
1631             before
1632             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmDurationAfter/*"/>
1633             after
1634             &#160;
1635             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmDurationRelStart/*"/>
1636             start
1637             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmDurationRelEnd/*"/>
1638             end
1639           </td>
1640         </tr>
1641         <tr>
1642           <td>
1643             <span class="required-field" title="required">*</span>
1644             Email Address:
1645           </td>
1646           <td align="left">
1647             <xsl:copy-of select="/bedework/alarmoptionsform/form/email/*"/>
1648           </td>
1649         </tr>
1650         <tr>
1651           <td>
1652             Subject:
1653           </td>
1654           <td align="left">
1655             <xsl:copy-of select="/bedework/alarmoptionsform/form/subject/*"/>
1656           </td>
1657         </tr>
1658         <tr>
1659           <td>&#160;</td>
1660           <td>
1661             <input name="submit" type="submit" value="Continue"/>&#160;
1662             <input name="cancelled" type="submit" value="Cancel"/>
1663           </td>
1664         </tr>
1665         <tr>
1666           <td class="footnoteCell">
1667             <span style="color:red;">*</span> = required field
1668           </td>
1669         </tr>
1670       </table>
1671     </form>
1672   </xsl:template>
1673
1674   <!--==== UPLOAD ====-->
1675   <xsl:template name="upload">
1676     <form method="post" action="{$upload}" id="standardForm"  enctype="multipart/form-data">
1677       <table id="commonTable" cellpadding="0" cellspacing="0">
1678         <tr>
1679           <td>
1680             Filename:
1681           </td>
1682           <td align="left">
1683             <input type="file" name="uploadFile" size="80" />
1684           </td>
1685         </tr>
1686         <tr>
1687           <td>&#160;</td>
1688           <td>
1689             <input name="submit" type="submit" value="Continue"/>&#160;
1690             <input name="cancelled" type="submit" value="Cancel"/>
1691           </td>
1692         </tr>
1693       </table>
1694     </form>
1695   </xsl:template>
1696
1697   <!--==== EMAIL OPTIONS ====-->
1698   <xsl:template name="emailOptions">
1699     <form method="get" action="{$mailEvent}" id="standardForm">
1700       <input type="hidden" name="updateEmailOptions" value="true"/>
1701       <table id="commonTable" cellpadding="0" cellspacing="0">
1702         <tr>
1703           <th colspan="2" id="commonHeader">Update email options</th>
1704         </tr>
1705         <tr>
1706           <td>
1707             <span class="required-field" title="required">*</span>
1708             Email Address:
1709           </td>
1710           <td align="left">
1711             <xsl:copy-of select="/bedework/emailoptionsform/form/email/*"/>
1712           </td>
1713         </tr>
1714         <tr>
1715           <td>
1716             Subject:
1717           </td>
1718           <td align="left">
1719             <xsl:copy-of select="/bedework/emailoptionsform/form/subject/*"/>
1720           </td>
1721         </tr>
1722         <tr>
1723           <td>&#160;</td>
1724           <td>
1725             <input name="submit" type="submit" value="Continue"/>&#160;
1726             <input name="cancelled" type="submit" value="Cancel"/>
1727           </td>
1728         </tr>
1729         <tr>
1730           <td class="footnoteCell">
1731             <span style="color:red;">*</span> = required field
1732           </td>
1733         </tr>
1734       </table>
1735     </form>
1736   </xsl:template>
1737
1738   <!--==== MANAGE LOCATIONS ====-->
1739   <xsl:template name="manageLocations">
1740     <form name="addLocationForm" method="post" action="{$addLocation}" id="standardForm">
1741       <input type="hidden" name="confirmationid" value="{$confId}"/>
1742       <table border="0" id="commonTable">
1743         <colgroup>
1744           <col span="1" class="fieldname"/>
1745           <col span="1" class="fieldval"/>
1746        </colgroup>
1747         <tr>
1748           <th colspan="2" id="commonHeader">Manage Locations</th>
1749         </tr>
1750         <tr>
1751           <th colspan="2" class="form-header">Add Location</th>
1752         </tr>
1753         <tr>
1754           <td>
1755             Main Address:
1756           </td>
1757           <td>
1758             <input size="60" name="newLocation.address" type="text"/>
1759           </td>
1760         </tr>
1761         <tr>
1762           <td>
1763             Subaddress:
1764           </td>
1765           <td>
1766             <input size="60" name="newLocation.subaddress" type="text"/>
1767           </td>
1768         </tr>
1769         <tr>
1770           <td>
1771             Location Link:
1772           </td>
1773           <td>
1774             <input size="60" name="newLocation.link" type="text"/>
1775           </td>
1776         </tr>
1777         <tr>
1778           <td colspan="2" class="plain">
1779             <input name="submit" type="submit" value="Submit Location"/>&#160;
1780             <input name="cancelled" type="submit" value="Cancel"/>
1781           </td>
1782         </tr>
1783         <tr>
1784           <th colspan="2" class="form-header">Edit/Delete Locations</th>
1785         </tr>
1786         <td colspan="2" class="plain">
1787           <ul>
1788             <xsl:for-each select="/bedework/eventform/form/location/locationmenu/select/option[@value>'3']">
1789               <xsl:sort select="."/>
1790               <li>
1791                 <xsl:variable name="locationId" select="@value"/>
1792                 <a href="{$editLocation}?locationId={$locationId}"><xsl:value-of select="."/></a>
1793               </li>
1794             </xsl:for-each>
1795           </ul>
1796         </td>
1797       </table>
1798     </form>
1799   </xsl:template>
1800
1801   <!--==== EDIT LOCATION ====-->
1802   <xsl:template match="locationform">
1803     <form name="editLocationForm" method="post" action="{$editLocation}" id="standardForm">
1804       <input type="hidden" name="updateLocation" value="true"/>
1805       <input type="hidden" name="confirmationid" value="{$confId}"/>
1806       <table id="commonTable" cellpadding="0" cellspacing="0">
1807         <tr>
1808           <th colspan="2" id="commonHeader">
1809             <xsl:variable name="locId" select="/bedework/locationform/form/id"/>
1810             <div id="eventActions">
1811               <a href="{$delLocation}?locationId={$locId}">Delete Location</a>
1812             </div>
1813             Edit Location
1814           </th>
1815         </tr>
1816         <tr>
1817           <td>
1818             <span class="required-field" title="required">*</span>
1819             Address:
1820           </td>
1821           <td align="left">
1822             <xsl:copy-of select="/bedework/locationform/form/address/*"/>
1823           </td>
1824         </tr>
1825         <tr>
1826           <td>
1827             Subaddress:
1828           </td>
1829           <td align="left">
1830             <xsl:copy-of select="/bedework/locationform/form/subaddress/*"/>
1831           </td>
1832         </tr>
1833         <tr>
1834           <td>Location's URL:</td>
1835           <td>
1836             <xsl:copy-of select="/bedework/locationform/form/link/*"/>
1837           </td>
1838         </tr>
1839         <tr>
1840           <td>&#160;</td>
1841           <td>
1842             <input name="submit" type="submit" value="Submit Location"/>&#160;
1843             <input name="cancelled" type="submit" value="Cancel"/>
1844           </td>
1845         </tr>
1846         <tr>
1847           <td class="footnoteCell">
1848             <span style="color:red;">*</span> = required field
1849           </td>
1850         </tr>
1851       </table>
1852     </form>
1853   </xsl:template>
1854
1855   <!--==== SIDE CALENDAR MENU ====-->
1856   <xsl:template match="calendar" mode="sideList">
1857     <xsl:variable name="id" select="id"/>
1858     <div class="std-text">
1859       <a href="{$setSelection}?calId={$id}"><xsl:value-of select="title"/></a>
1860     </div>
1861   </xsl:template>
1862
1863   <!--==== STAND-ALONE PAGES ====-->
1864   <!-- not currently in use -->
1865   <xsl:template name="selectPage">
1866     <!-- <xsl:choose>
1867       <xsl:when test="/bedework/appvar[key='page']">
1868         <xsl:choose>
1869           <xsl:otherwise>
1870             <xsl:call-template name="noPage"/>
1871           </xsl:otherwise>
1872         </xsl:choose>
1873       </xsl:when>
1874       <xsl:otherwise> -->
1875         <xsl:call-template name="noPage"/>
1876       <!--</xsl:otherwise>
1877     </xsl:choose>-->
1878   </xsl:template>
1879
1880   <xsl:template name="noPage">
1881     <p>
1882       Error: there is no page with that name.  Please select a navigational
1883       link to continue.
1884     </p>
1885   </xsl:template>
1886
1887   <!--==== FOOTER ====-->
1888   <xsl:template name="footer">
1889     <div id="footer">
1890       Demonstration calendar; place footer information here.
1891     </div>
1892     <table id="skinSelectorTable" border="0" cellpadding="0" cellspacing="0">
1893       <tr>
1894         <td class="leftCell">
1895           <a href="http://www.bedework.org/">Bedework Calendar</a> |
1896           <a href="/ucal/showMain.rdo?refreshXslt=yes">refresh XSLT</a>
1897         </td>
1898         <td class="rightCell">
1899           <!--<form name="skinSelectForm" method="get" action="{$setup}">
1900             skin selector:
1901             <select name="skinNameSticky" onChange="submit()">
1902               <option>select a skin</option>
1903               <option value="default">Demo Calendar</option>
1904               <option value="rensselaer">Rensselaer</option>
1905               <option value="washington">Washington</option>
1906             </select>
1907           </form>-->
1908         </td>
1909       </tr>
1910     </table>
1911   </xsl:template>
1912 </xsl:stylesheet>
Note: See TracBrowser for help on using the browser.