Changeset 558

Show
Ignore:
Timestamp:
06/09/06 00:24:33
Author:
johnsa
Message:

improvements to the personal client subscription style settings

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/calendar3/deployment/webuser/webapp/resources/demoskins/default/default/default.css

    r557 r558  
    619619  display: inline; 
    620620} 
     621#monthCalendarTable a.event { 
     622  display: block; 
     623  padding: 0.1em 0.2em 0.1em 0.2em; 
     624  text-decoration: none; 
     625} 
    621626#monthCalendarTable a.eventLinkA:link, 
    622627#monthCalendarTable a.eventLinkA:visited, 
    623628#monthCalendarTable a.eventLinkA:active  { 
    624   display: block; 
    625   padding: 0.1em 0.2em 0.1em 0.2em; 
    626   text-decoration: none; 
    627629  background-color: #CCD7F5; 
    628630  color: black; 
     
    631633#monthCalendarTable a.eventLinkB:visited, 
    632634#monthCalendarTable a.eventLinkB:active  { 
    633   display: block; 
    634   padding: 0.1em 0.2em 0.1em 0.2em; 
    635   text-decoration: none; 
    636635  background-color: #EBF0FF; 
    637636  color: black; 
     
    640639#monthCalendarTable a.eventCancelled:visited, 
    641640#monthCalendarTable a.eventCancelled:active  { 
    642   display: block; 
    643   padding: 0.1em 0.2em 0.1em 0.2em; 
    644   text-decoration: none; 
    645641  background-color: #ccc; 
    646642  color: black; 
     
    649645#monthCalendarTable a.eventTentative:visited, 
    650646#monthCalendarTable a.eventTentative:active  { 
    651   display: block; 
    652   padding: 0.1em 0.2em 0.1em 0.2em; 
    653   text-decoration: none; 
    654647  border-bottom: 1px solid #ccc; 
    655648  border-top: 1px solid #ccc; 
     
    660653  color: black; 
    661654  background-color: #ffa !important; /* must be important to override subscription colors */ 
    662 } 
    663 #monthCalendarTable a.dayLink { 
    664   text-decoration: none; 
    665   color: black; 
    666   background-color: transparent; 
    667   padding-left: 2px; 
    668 } 
    669 #monthCalendarTable a:hover.dayLink { 
    670   text-decoration: none; 
    671   color: #eee !important; /* must be important to override a:hover selector above */ 
    672   background-color: black !important; /* must be important to override a:hover selector above */ 
    673 } 
    674 #monthCalendarTable a:hover { 
    675655  /* required for eventTip to hover correctly; 
    676656     apply only to the hover pseudo class, or 
    677657     the other anchors nearby will cover the eventTip in IE */ 
    678658  position: relative; 
     659} 
     660#monthCalendarTable a.dayLink { 
     661  text-decoration: none; 
     662  color: black; 
     663  background-color: transparent; 
     664  padding-left: 2px; 
     665} 
     666#monthCalendarTable a:hover.dayLink { 
     667  text-decoration: none; 
     668  color: #eee !important; /* must be important to override a:hover selector above */ 
     669  background-color: black !important; /* must be important to override a:hover selector above */ 
    679670} 
    680671#monthCalendarTable a span.eventTip, 
     
    884875} 
    885876#listTable td.description:hover { 
    886   background-color: #eee
     877  background-color: #eee !important
    887878  color: black; 
    888879  text-decoration: none; 
     
    965956.calendarTree li { 
    966957  padding-top: 0.25em; 
     958  position: relative; 
    967959} 
    968960.calendarTree li.folder { 
     
    983975.calendarTree a:visited { 
    984976  text-decoration: none; 
     977  border: none; 
    985978} 
    986979.calendarTree a:hover { 
     
    988981  background-color: #ff3; 
    989982} 
    990 .subStyle { 
     983img.subStyle { 
    991984  float: right; 
    992   clear: none; 
    993   width: 1em; 
    994   height: 1em; 
     985  /*position: absolute; 
     986  left: -20px; 
     987  top: 10px;*/ 
     988  padding: 0; 
    995989  margin: 0 10px 0 2px; 
    996   border: 1px solid #666; 
     990  width: 0.8em; 
     991  height: 0.5em; 
     992  border: 1px solid #666 !important; /* must override subColors.css borders */ 
    997993} 
    998994#submitTable { 
  • trunk/calendar3/deployment/webuser/webapp/resources/demoskins/default/default/default.xsl

    r557 r558  
    22<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    33<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" 
     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" 
    1010/> 
    11   <!-- ========================================= --> 
    12   <!--       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">https://mywebserver.edu/myresourcesdir</xsl:variable> 
    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="setViewPeriod" select="/bedework/urlPrefixes/setViewPeriod"/> 
    42   <xsl:variable name="eventView" select="/bedework/urlPrefixes/eventView"/> 
    43   <xsl:variable name="initEvent" select="/bedework/urlPrefixes/initEvent"/> 
    44   <xsl:variable name="addEvent" select="/bedework/urlPrefixes/addEvent"/> 
    45   <xsl:variable name="addEventUsingPage" select="/bedework/urlPrefixes/addEventUsingPage"/> 
    46   <xsl:variable name="event-addEventRefComplete" select="/bedework/urlPrefixes/event/addEventRefComplete/a/@href"/> 
    47   <xsl:variable name="event-setAccess" select="/bedework/urlPrefixes/event/setAccess/a/@href"/> 
    48   <xsl:variable name="event-selectCalForEvent" select="/bedework/urlPrefixes/event/selectCalForEvent/a/@href"/> 
    49   <xsl:variable name="editEvent" select="/bedework/urlPrefixes/editEvent"/> 
    50   <xsl:variable name="delEvent" select="/bedework/urlPrefixes/delEvent"/> 
    51   <xsl:variable name="addEventRef" select="/bedework/urlPrefixes/addEventRef"/> 
    52   <xsl:variable name="export" select="/bedework/urlPrefixes/export"/> 
    53   <xsl:variable name="mailEvent" select="/bedework/urlPrefixes/mailEvent"/> 
    54   <xsl:variable name="showPage" select="/bedework/urlPrefixes/showPage"/> 
    55   <xsl:variable name="manageLocations" select="/bedework/urlPrefixes/manageLocations"/> 
    56   <xsl:variable name="addLocation" select="/bedework/urlPrefixes/addLocation"/> 
    57   <xsl:variable name="editLocation" select="/bedework/urlPrefixes/editLocation"/> 
    58   <xsl:variable name="delLocation" select="/bedework/urlPrefixes/delLocation"/> 
    59   <xsl:variable name="initEventAlarm" select="/bedework/urlPrefixes/initEventAlarm"/> 
    60   <xsl:variable name="setAlarm" select="/bedework/urlPrefixes/setAlarm"/> 
    61   <xsl:variable name="initUpload" select="/bedework/urlPrefixes/initUpload"/> 
    62   <xsl:variable name="upload" select="/bedework/urlPrefixes/upload"/> 
    63   <xsl:variable name="freeBusy-fetch" select="/bedework/urlPrefixes/freeBusy/fetch/a/@href"/> 
    64   <xsl:variable name="freeBusy-setAccess" select="/bedework/urlPrefixes/freeBusy/setAccess/a/@href"/> 
    65   <!-- calendars --> 
    66   <xsl:variable name="fetchPublicCalendars" select="/bedework/urlPrefixes/fetchPublicCalendars"/> 
    67   <xsl:variable name="calendar-fetch" select="/bedework/urlPrefixes/calendar/fetch/a/@href"/><!-- used --> 
    68   <xsl:variable name="calendar-fetchDescriptions" select="/bedework/urlPrefixes/calendar/fetchDescriptions/a/@href"/><!-- used --> 
    69   <xsl:variable name="calendar-initAdd" select="/bedework/urlPrefixes/calendar/initAdd/a/@href"/><!-- used --> 
    70   <xsl:variable name="calendar-delete" select="/bedework/urlPrefixes/calendar/delete/a/@href"/> 
    71   <xsl:variable name="calendar-fetchForDisplay" select="/bedework/urlPrefixes/calendar/fetchForDisplay/a/@href"/> 
    72   <xsl:variable name="calendar-fetchForUpdate" select="/bedework/urlPrefixes/calendar/fetchForUpdate/a/@href"/><!-- used --> 
    73   <xsl:variable name="calendar-update" select="/bedework/urlPrefixes/calendar/update/a/@href"/><!-- used --> 
    74   <xsl:variable name="calendar-setAccess" select="/bedework/urlPrefixes/calendar/setAccess/a/@href"/> 
    75   <!-- subscriptions --> 
    76   <xsl:variable name="subscriptions-fetch" select="/bedework/urlPrefixes/subscriptions/fetch/a/@href"/> 
    77   <xsl:variable name="subscriptions-fetchForUpdate" select="/bedework/urlPrefixes/subscriptions/fetchForUpdate/a/@href"/> 
    78   <xsl:variable name="subscriptions-addSubByUri" select="/bedework/urlPrefixes/subscriptions/addSubByUri/a/@href"/> 
    79   <xsl:variable name="subscriptions-subscribeByUri" select="/bedework/urlPrefixes/subscriptions/subscribeByUri/a/@href"/> 
    80   <xsl:variable name="subscriptions-initAdd" select="/bedework/urlPrefixes/subscriptions/initAdd/a/@href"/> 
    81   <xsl:variable name="subscriptions-subscribe" select="/bedework/urlPrefixes/subscriptions/subscribe/a/@href"/> 
    82   <!-- preferences --> 
    83   <xsl:variable name="prefs-fetchForUpdate" select="/bedework/urlPrefixes/prefs/fetchForUpdate/a/@href"/> 
    84   <xsl:variable name="prefs-update" select="/bedework/urlPrefixes/prefs/update/a/@href"/> 
    85  
    86   <!-- URL of the web application - includes web context 
    87   <xsl:variable name="urlPrefix" select="/bedework/urlprefix"/> --> 
    88  
    89   <!-- Other generally useful global variables --> 
    90   <xsl:variable name="confId" select="/bedework/confirmationid"/> 
    91   <xsl:variable name="prevdate" select="/bedework/previousdate"/> 
    92   <xsl:variable name="nextdate" select="/bedework/nextdate"/> 
    93   <xsl:variable name="curdate" select="/bedework/currentdate/date"/> 
    94   <xsl:variable name="skin">default</xsl:variable> 
    95   <xsl:variable name="publicCal">/cal</xsl:variable> 
     11       <!-- ========================================= --> 
     12       <!--       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">https://mywebserver.edu/myresourcesdir</xsl:variable> 
     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="setViewPeriod" select="/bedework/urlPrefixes/setViewPeriod"/> 
     42       <xsl:variable name="eventView" select="/bedework/urlPrefixes/eventView"/> 
     43       <xsl:variable name="initEvent" select="/bedework/urlPrefixes/initEvent"/> 
     44       <xsl:variable name="addEvent" select="/bedework/urlPrefixes/addEvent"/> 
     45       <xsl:variable name="addEventUsingPage" select="/bedework/urlPrefixes/addEventUsingPage"/> 
     46       <xsl:variable name="event-addEventRefComplete" select="/bedework/urlPrefixes/event/addEventRefComplete/a/@href"/> 
     47       <xsl:variable name="event-setAccess" select="/bedework/urlPrefixes/event/setAccess/a/@href"/> 
     48       <xsl:variable name="event-selectCalForEvent" select="/bedework/urlPrefixes/event/selectCalForEvent/a/@href"/> 
     49       <xsl:variable name="editEvent" select="/bedework/urlPrefixes/editEvent"/> 
     50       <xsl:variable name="delEvent" select="/bedework/urlPrefixes/delEvent"/> 
     51       <xsl:variable name="addEventRef" select="/bedework/urlPrefixes/addEventRef"/> 
     52       <xsl:variable name="export" select="/bedework/urlPrefixes/export"/> 
     53       <xsl:variable name="mailEvent" select="/bedework/urlPrefixes/mailEvent"/> 
     54       <xsl:variable name="showPage" select="/bedework/urlPrefixes/showPage"/> 
     55       <xsl:variable name="manageLocations" select="/bedework/urlPrefixes/manageLocations"/> 
     56       <xsl:variable name="addLocation" select="/bedework/urlPrefixes/addLocation"/> 
     57       <xsl:variable name="editLocation" select="/bedework/urlPrefixes/editLocation"/> 
     58       <xsl:variable name="delLocation" select="/bedework/urlPrefixes/delLocation"/> 
     59       <xsl:variable name="initEventAlarm" select="/bedework/urlPrefixes/initEventAlarm"/> 
     60       <xsl:variable name="setAlarm" select="/bedework/urlPrefixes/setAlarm"/> 
     61       <xsl:variable name="initUpload" select="/bedework/urlPrefixes/initUpload"/> 
     62       <xsl:variable name="upload" select="/bedework/urlPrefixes/upload"/> 
     63       <xsl:variable name="freeBusy-fetch" select="/bedework/urlPrefixes/freeBusy/fetch/a/@href"/> 
     64       <xsl:variable name="freeBusy-setAccess" select="/bedework/urlPrefixes/freeBusy/setAccess/a/@href"/> 
     65       <!-- calendars --> 
     66       <xsl:variable name="fetchPublicCalendars" select="/bedework/urlPrefixes/fetchPublicCalendars"/> 
     67       <xsl:variable name="calendar-fetch" select="/bedework/urlPrefixes/calendar/fetch/a/@href"/><!-- used --> 
     68       <xsl:variable name="calendar-fetchDescriptions" select="/bedework/urlPrefixes/calendar/fetchDescriptions/a/@href"/><!-- used --> 
     69       <xsl:variable name="calendar-initAdd" select="/bedework/urlPrefixes/calendar/initAdd/a/@href"/><!-- used --> 
     70       <xsl:variable name="calendar-delete" select="/bedework/urlPrefixes/calendar/delete/a/@href"/> 
     71       <xsl:variable name="calendar-fetchForDisplay" select="/bedework/urlPrefixes/calendar/fetchForDisplay/a/@href"/> 
     72       <xsl:variable name="calendar-fetchForUpdate" select="/bedework/urlPrefixes/calendar/fetchForUpdate/a/@href"/><!-- used --> 
     73       <xsl:variable name="calendar-update" select="/bedework/urlPrefixes/calendar/update/a/@href"/><!-- used --> 
     74       <xsl:variable name="calendar-setAccess" select="/bedework/urlPrefixes/calendar/setAccess/a/@href"/> 
     75       <!-- subscriptions --> 
     76       <xsl:variable name="subscriptions-fetch" select="/bedework/urlPrefixes/subscriptions/fetch/a/@href"/> 
     77       <xsl:variable name="subscriptions-fetchForUpdate" select="/bedework/urlPrefixes/subscriptions/fetchForUpdate/a/@href"/> 
     78       <xsl:variable name="subscriptions-addSubByUri" select="/bedework/urlPrefixes/subscriptions/addSubByUri/a/@href"/> 
     79       <xsl:variable name="subscriptions-subscribeByUri" select="/bedework/urlPrefixes/subscriptions/subscribeByUri/a/@href"/> 
     80       <xsl:variable name="subscriptions-initAdd" select="/bedework/urlPrefixes/subscriptions/initAdd/a/@href"/> 
     81       <xsl:variable name="subscriptions-subscribe" select="/bedework/urlPrefixes/subscriptions/subscribe/a/@href"/> 
     82       <!-- preferences --> 
     83       <xsl:variable name="prefs-fetchForUpdate" select="/bedework/urlPrefixes/prefs/fetchForUpdate/a/@href"/> 
     84       <xsl:variable name="prefs-update" select="/bedework/urlPrefixes/prefs/update/a/@href"/> 
     85 
     86       <!-- URL of the web application - includes web context 
     87       <xsl:variable name="urlPrefix" select="/bedework/urlprefix"/> --> 
     88 
     89       <!-- Other generally useful global variables --> 
     90       <xsl:variable name="confId" select="/bedework/confirmationid"/> 
     91       <xsl:variable name="prevdate" select="/bedework/previousdate"/> 
     92       <xsl:variable name="nextdate" select="/bedework/nextdate"/> 
     93       <xsl:variable name="curdate" select="/bedework/currentdate/date"/> 
     94       <xsl:variable name="skin">default</xsl:variable> 
     95       <xsl:variable name="publicCal">/cal</xsl:variable> 
    9696 
    9797 <!-- BEGIN MAIN TEMPLATE --> 
    98   <xsl:template match="/"> 
    99     <html lang="en"> 
    100       <head> 
    101         <xsl:call-template name="headSection"/> 
    102       </head> 
    103       <body> 
    104       <xsl:choose> 
    105         <xsl:when test="/bedework/page='selectCalForEvent'"> 
    106           <xsl:call-template name="selectCalForEvent"/> 
    107         </xsl:when> 
    108         <xsl:otherwise> 
    109             <xsl:call-template name="headBar"/> 
    110             <xsl:if test="/bedework/message"> 
    111               <div id="messages"> 
    112                 <xsl:apply-templates select="/bedework/message"/> 
    113               </div> 
    114             </xsl:if> 
    115             <xsl:if test="/bedework/error"> 
    116               <div id="errors"> 
    117                 <xsl:apply-templates select="/bedework/error"/> 
    118               </div> 
    119             </xsl:if> 
    120             <table id="bodyBlock" cellspacing="0"> 
    121               <tr> 
    122                 <xsl:choose> 
    123                   <xsl:when test="/bedework/appvar[key='sidebar']/value='closed'"> 
    124                     <td id="sideBarClosed"> 
    125                       <img src="{$resourcesRoot}/resources/spacer.gif" width="1" height="1" border="0" alt="*"/> 
    126                     </td> 
    127                   </xsl:when> 
    128                   <xsl:otherwise> 
    129                     <td id="sideBar"> 
    130                       <xsl:call-template name="sideBar"/> 
    131                     </td> 
    132                   </xsl:otherwise> 
    133                 </xsl:choose> 
    134                 <td id="bodyContent"> 
    135                   <xsl:call-template name="tabs"/> 
    136                   <xsl:call-template name="navigation"/> 
    137                   <xsl:choose> 
    138                     <xsl:when test="/bedework/page='event'"> 
    139                       <!-- show an event --> 
    140                       <xsl:apply-templates select="/bedework/event"/> 
    141                     </xsl:when> 
    142                     <xsl:when test="/bedework/page='addEvent'"> 
    143                       <xsl:call-template name="addEvent"/> 
    144                     </xsl:when> 
    145                     <xsl:when test="/bedework/page='addEventRef'"> 
    146                       <xsl:apply-templates select="/bedework/event" mode="addEventRef"/> 
    147                     </xsl:when> 
    148                     <xsl:when test="/bedework/page='editEvent'"> 
    149                       <!-- edit an event --> 
    150                       <xsl:apply-templates select="/bedework/formElements" mode="editEvent"/> 
    151                     </xsl:when> 
    152                     <xsl:when test="/bedework/page='alarmOptions'"> 
    153                       <xsl:call-template name="alarmOptions" /> 
    154                     </xsl:when> 
    155                     <xsl:when test="/bedework/page='upload'"> 
    156                       <xsl:call-template name="upload" /> 
    157                     </xsl:when> 
    158                     <xsl:when test="/bedework/page='manageLocations'"> 
    159                       <xsl:call-template name="manageLocations" /> 
    160                     </xsl:when> 
    161                     <xsl:when test="/bedework/page='editLocation'"> 
    162                       <xsl:apply-templates select="/bedework/formElements" mode="editLocation"/> 
    163                     </xsl:when> 
    164                     <xsl:when test="/bedework/page='subscriptions' or 
    165                                     /bedework/page='modSubscription' or 
    166                                     /bedework/page='addSubByUri'"> 
    167                       <xsl:apply-templates select="/bedework/subscriptions"/> 
    168                     </xsl:when> 
    169                     <xsl:when test="/bedework/page='calendarList' or 
    170                                     /bedework/page='calendarDescriptions' or 
    171                                     /bedework/page='displayCalendar' or 
    172                                     /bedework/page='modCalendar' or 
    173                                     /bedework/page='deleteCalendarConfirm' or 
    174                                     /bedework/page='calendarReferenced'"> 
    175                       <xsl:apply-templates select="/bedework/calendars"/> 
    176                     </xsl:when> 
    177                     <xsl:when test="/bedework/page='freeBusy'"> 
    178                       <xsl:call-template name="utilBar"/> 
    179                       <xsl:apply-templates select="/bedework/freebusy"/> 
    180                     </xsl:when> 
    181                     <xsl:when test="/bedework/page='modPrefs'"> 
    182                       <xsl:apply-templates select="/bedework/prefs"/> 
    183                     </xsl:when> 
    184                     <xsl:when test="/bedework/page='other'"> 
    185                       <!-- show an arbitrary page --> 
    186                       <xsl:call-template name="selectPage"/> 
    187                     </xsl:when> 
    188                     <xsl:otherwise> 
    189                       <!-- otherwise, show the eventsCalendar --> 
    190                       <xsl:call-template name="utilBar"/> 
    191                       <!-- main eventCalendar content --> 
    192                       <xsl:choose> 
    193                         <xsl:when test="/bedework/periodname='Day'"> 
    194                           <xsl:call-template name="listView"/> 
    195                         </xsl:when> 
    196                         <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''"> 
    197                           <xsl:choose> 
    198                             <xsl:when test="/bedework/appvar[key='weekViewMode']/value='list'"> 
    199                               <xsl:call-template name="listView"/> 
    200                             </xsl:when> 
    201                             <xsl:otherwise> 
    202                               <xsl:call-template name="weekView"/> 
    203                             </xsl:otherwise> 
    204                           </xsl:choose> 
    205                         </xsl:when> 
    206                         <xsl:when test="/bedework/periodname='Month'"> 
    207                           <xsl:choose> 
    208                             <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'"> 
    209                               <xsl:call-template name="listView"/> 
    210                             </xsl:when> 
    211                             <xsl:otherwise> 
    212                               <xsl:call-template name="monthView"/> 
    213                             </xsl:otherwise> 
    214                           </xsl:choose> 
    215                         </xsl:when> 
    216                         <xsl:otherwise> 
    217                           <xsl:call-template name="yearView"/> 
    218                         </xsl:otherwise> 
    219                       </xsl:choose> 
    220                     </xsl:otherwise> 
    221                   </xsl:choose> 
    222                 </td> 
    223               </tr> 
    224             </table> 
    225             <!-- footer --> 
    226             <xsl:call-template name="footer"/> 
    227           </xsl:otherwise> 
    228         </xsl:choose> 
    229       </body> 
    230     </html> 
    231   </xsl:template> 
    232  
    233   <!--==== HEAD SECTION  ====--> 
    234  
    235   <xsl:template name="headSection"> 
    236     <title>Bedework: Personal Calendar Client</title> 
    237     <meta name="robots" content="noindex,nofollow"/> 
    238     <link rel="stylesheet" href="{$resourcesRoot}/default/default/default.css"/> 
    239     <link rel="stylesheet" href="{$resourcesRoot}/default/default/subColors.css"/> 
    240     <link rel="stylesheet" type="text/css" media="print" href="{$resourcesRoot}/default/default/print.css" /> 
    241     <link rel="icon" type="image/ico" href="{$resourcesRoot}/resources/bedework.ico" /> 
    242     <xsl:if test="/bedework/page='addEvent' or 
    243                   /bedework/page='addEventRef' or 
    244                   /bedework/page='editEvent' or 
    245                   /bedework/page='selectCalForEvent' or 
    246                   /bedework/page='upload' or 
    247                   /bedework/page='addSubByUri' or 
    248                   /bedework/page='modPrefs'"> 
    249       <script type="text/javascript" src="{$resourcesRoot}/resources/includes.js"></script> 
    250     </xsl:if> 
    251     <xsl:if test="/bedework/page='addEvent' or 
    252                   /bedework/page='editEvent'"> 
    253       <script type="text/javascript" src="{$resourcesRoot}/resources/bwClock.js"></script> 
    254       <link rel="stylesheet" href="{$resourcesRoot}/resources/bwClock.css"/> 
    255       <script type="text/javascript" src="{$resourcesRoot}/resources/dynCalendarWidget.js"></script> 
    256       <link rel="stylesheet" href="{$resourcesRoot}/resources/dynCalendarWidget.css"/> 
    257       <script type="text/javascript" src="{$resourcesRoot}/resources/browserSniffer.js"></script> 
    258     </xsl:if> 
    259   </xsl:template> 
    260  
    261   <!--==== HEADER TEMPLATES and NAVIGATION  ====--> 
    262  
    263   <xsl:template name="headBar"> 
    264     <table width="100%" border="0" cellpadding="0" cellspacing="0" id="logoTable"> 
    265       <tr> 
    266         <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> 
    267         <td colspan="2" id="schoolLinksCell"> 
    268           <h2>Personal Calendar</h2> 
    269           <a href="{$publicCal}">Public Calendar</a> | 
    270           <a href="http://www.yourschoolhere.edu">School Home</a> | 
    271           <a href="http://www.bedework.org/">Other Link</a> | 
    272           <a href="http://helpdesk.rpi.edu/update.do?catcenterkey=51"> 
    273             Example Calendar Help 
    274           </a> 
    275         </td> 
    276       </tr> 
    277     </table> 
    278     <table id="curDateRangeTable"  cellspacing="0"> 
    279       <td class="sideBarOpenCloseIcon"> 
    280         <xsl:choose> 
    281           <xsl:when test="/bedework/appvar[key='sidebar']/value='closed'"> 
    282             <a href="?setappvar=sidebar(opened)"> 
    283               <img alt="open sidebar" src="{$resourcesRoot}/resources/sideBarArrowOpen.gif" width="21" height="16" border="0" align="left"/> 
    284             </a> 
    285           </xsl:when> 
    286           <xsl:otherwise> 
    287             <a href="?setappvar=sidebar(closed)"> 
    288               <img alt="close sidebar" src="{$resourcesRoot}/resources/sideBarArrowClose.gif" width="21" height="16" border="0" align="left"/> 
    289             </a> 
    290           </xsl:otherwise> 
    291         </xsl:choose> 
    292       </td> 
    293       <td class="date"> 
    294         <xsl:value-of select="/bedework/firstday/longdate"/> 
    295         <xsl:if test="/bedework/periodname!='Day'"> 
    296           - 
    297           <xsl:value-of select="/bedework/lastday/longdate"/> 
    298         </xsl:if> 
    299       </td> 
    300       <td class="rssPrint"> 
    301         <a href="javascript:window.print()" title="print this view"> 
    302           <img alt="print this view" src="{$resourcesRoot}/resources/std-print-icon.gif" width="20" height="14" border="0"/> print 
    303         </a> 
    304         <a class="rss" href="{$setSelection}?setappvar=summaryMode(details)&amp;skinName=rss" title="RSS feed">RSS</a> 
    305       </td> 
    306     </table> 
    307   </xsl:template> 
    308  
    309   <xsl:template name="sideBar"> 
    310     <h3> 
    311       <img alt="manage views" src="{$resourcesRoot}/resources/glassFill-icon-menuButton.gif" width="12" height="11" border="0"/> views 
    312     </h3> 
    313     <ul id="myViews"> 
    314       <xsl:choose> 
    315         <xsl:when test="/bedework/views/view"> 
    316           <xsl:for-each select="/bedework/views/view"> 
    317             <xsl:variable name="viewName" select="name"/> 
    318             <xsl:choose> 
    319               <xsl:when test="/bedework/selectionState/selectionType = 'view' 
    320                               and name=/bedework/selectionState/view/name"> 
    321                 <li class="selected"><a href="{$setSelection}?viewName={$viewName}"><xsl:value-of select="name"/></a></li> 
    322               </xsl:when> 
    323               <xsl:otherwise> 
    324                 <li><a href="{$setSelection}?viewName={$viewName}"><xsl:value-of select="name"/></a></li> 
    325               </xsl:otherwise> 
    326             </xsl:choose> 
    327           </xsl:for-each> 
    328         </xsl:when> 
    329         <xsl:otherwise> 
    330           <li class="none">no views</li> 
    331         </xsl:otherwise> 
    332       </xsl:choose> 
    333     </ul> 
    334  
    335     <h3> 
    336       <a href="{$calendar-fetch}"> 
    337         <img alt="manage calendars" src="{$resourcesRoot}/resources/glassFill-icon-menuButton.gif" width="12" height="11" border="0"/> calendars 
    338       </a> 
    339     </h3> 
    340     <ul class="calendarTree"> 
    341       <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar" mode="myCalendars"/> 
    342     </ul> 
    343  
    344     <h3> 
    345       <a href="{$subscriptions-fetch}" title="manage subscriptions"> 
    346         <img alt="manage subscriptions" src="{$resourcesRoot}/resources/glassFill-icon-menuButton.gif" width="12" height="11" border="0"/> 
    347         subscriptions 
    348       </a> 
    349     </h3> 
    350     <ul class="calendarTree"> 
    351       <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/></xsl:variable> 
    352       <xsl:choose> 
    353         <xsl:when test="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]"> 
    354           <xsl:apply-templates select="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]" mode="mySubscriptions"/> 
    355         </xsl:when> 
    356         <xsl:otherwise> 
    357           <li class="none">no subscriptions</li> 
    358         </xsl:otherwise> 
    359       </xsl:choose> 
    360     </ul> 
    361  
    362     <h3>options</h3> 
    363     <ul id="sideBarMenu"> 
    364       <li><a href="{$manageLocations}">Manage Locations</a></li> 
    365       <li><a href="{$prefs-fetchForUpdate}">Preferences</a></li> 
    366     </ul> 
    367   </xsl:template> 
    368  
    369   <xsl:template name="tabs"> 
    370     <xsl:choose> 
    371       <xsl:when test="/bedework/page='eventscalendar' or /bedework/page='freeBusy'"> 
    372         <xsl:variable name="navAction"> 
    373           <xsl:choose> 
    374             <xsl:when test="/bedework/page='freeBusy'"><xsl:value-of select="$freeBusy-fetch"/></xsl:when> 
    375             <xsl:otherwise><xsl:value-of select="$setViewPeriod"/>?b=de</xsl:otherwise> 
    376           </xsl:choose> 
    377         </xsl:variable> 
    378         <table border="0" cellpadding="0" cellspacing="0" id="tabsTable"> 
    379           <tr> 
    380             <td> 
    381               <xsl:choose> 
    382                 <xsl:when test="/bedework/periodname='Day'"> 
    383                   <a href="{$navAction}&amp;viewType=dayView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-day-on.gif" width="91" height="20" border="0" alt="DAY"/></a> 
    384                 </xsl:when> 
    385                 <xsl:otherwise> 
    386                   <a href="{$navAction}&amp;viewType=dayView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-day-off.gif" width="91" height="20" border="0" alt="DAY"/></a> 
    387                 </xsl:otherwise> 
    388               </xsl:choose> 
    389             </td> 
    390             <td> 
    391               <xsl:choose> 
    392                 <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''"> 
    393                   <a href="{$navAction}&amp;viewType=weekView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-week-on.gif" width="92" height="20" border="0" alt="WEEK"/></a> 
    394                  </xsl:when> 
    395                 <xsl:otherwise> 
    396                   <a href="{$navAction}&amp;viewType=weekView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-week-off.gif" width="92" height="20" border="0" alt="WEEK"/></a> 
    397                  </xsl:otherwise> 
    398               </xsl:choose> 
    399             </td> 
    400             <td> 
    401               <xsl:choose> 
    402                 <xsl:when test="/bedework/periodname='Month'"> 
    403                   <a href="{$navAction}&amp;viewType=monthView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-month-on.gif" width="90" height="20" border="0" alt="MONTH"/></a> 
    404                 </xsl:when> 
    405                 <xsl:otherwise> 
    406                   <a href="{$navAction}&amp;viewType=monthView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-month-off.gif" width="90" height="20" border="0" alt="MONTH"/></a> 
    407                 </xsl:otherwise> 
    408               </xsl:choose> 
    409             </td> 
    410             <td> 
    411               <xsl:choose> 
    412                 <!-- don't allow switching to year for free busy view, so only use setViewPeriod action --> 
    413                 <xsl:when test="/bedework/periodname='Year'"> 
    414                   <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> 
    415                 </xsl:when> 
    416                 <xsl:otherwise> 
    417                   <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> 
    418                 </xsl:otherwise> 
    419               </xsl:choose> 
    420             </td> 
    421             <td class="rightCell"> 
    422               logged in as 
    423               <xsl:text> </xsl:text> 
    424               <strong><xsl:value-of select="/bedework/userid"/></strong> 
    425               <xsl:text> </xsl:text> 
    426               <span class="logout"><a href="{$setup}?logout=true">logout</a></span> 
    427             </td> 
    428           </tr> 
    429         </table> 
    430       </xsl:when> 
    431       <xsl:otherwise> 
    432         <table border="0" cellpadding="0" cellspacing="0" id="tabsTable"> 
    433           <tr> 
    434             <td> 
    435               <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> 
    436             </td> 
    437             <td> 
    438               <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> 
    439             </td> 
    440             <td> 
    441               <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> 
    442             </td> 
    443             <td> 
    444               <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> 
    445             </td> 
    446             <td class="rightCell"> 
    447               logged in as 
    448               <xsl:text> </xsl:text> 
    449               <strong><xsl:value-of select="/bedework/userid"/></strong> 
    450               <xsl:text> </xsl:text> 
    451               <span class="logout"><a href="{$setup}?logout=true">logout</a></span> 
    452             </td> 
    453           </tr> 
    454         </table> 
    455       </xsl:otherwise> 
    456     </xsl:choose> 
    457   </xsl:template> 
    458  
    459   <xsl:template name="navigation"> 
    460     <xsl:variable name="navAction"> 
    461       <xsl:choose> 
    462         <xsl:when test="/bedework/page='freeBusy'"><xsl:value-of select="$freeBusy-fetch"/></xsl:when> 
    463         <xsl:otherwise><xsl:value-of select="$setViewPeriod"/>?b=de</xsl:otherwise> 
    464       </xsl:choose> 
    465     </xsl:variable> 
    466     <table border="0" cellpadding="0" cellspacing="0" id="navigationBarTable"> 
    467       <tr> 
    468         <td class="leftCell"> 
    469           <a href="{$navAction}&amp;date={$prevdate}"><img src="{$resourcesRoot}/resources/std-arrow-left.gif" alt="previous" width="13" height="16" class="prevImg" border="0"/></a> 
    470           <a href="{$navAction}&amp;date={$nextdate}"><img src="{$resourcesRoot}/resources/std-arrow-right.gif" alt="next" width="13" height="16" class="nextImg" border="0"/></a> 
    471           <xsl:choose> 
    472             <xsl:when test="/bedework/periodname='Year'"> 
    473               <xsl:value-of select="substring(/bedework/firstday/date,1,4)"/> 
    474             </xsl:when> 
    475             <xsl:when test="/bedework/periodname='Month'"> 
    476               <xsl:value-of select="/bedework/firstday/monthname"/>, <xsl:value-of select="substring(/bedework/firstday/date,1,4)"/> 
    477             </xsl:when> 
    478             <xsl:when test="/bedework/periodname='Week'"> 
    479               Week of <xsl:value-of select="substring-after(/bedework/firstday/longdate,', ')"/> 
    480             </xsl:when> 
    481             <xsl:otherwise> 
    482               <xsl:value-of select="/bedework/firstday/longdate"/> 
    483             </xsl:otherwise> 
    484           </xsl:choose> 
    485         </td> 
    486         <td class="todayButton"> 
    487           <a href="{$navAction}&amp;viewType=todayView&amp;date={$curdate}"> 
    488             <img src="{$resourcesRoot}/resources/std-button-today-off.gif" width="54" height="22" border="0" alt="Go to Today" align="left"/> 
    489           </a> 
    490         </td> 
    491         <td align="right" class="gotoForm"> 
    492           <form name="calForm" method="get" action="{$navAction}"> 
    493              <table border="0" cellpadding="0" cellspacing="0"> 
    494               <tr> 
    495                 <xsl:if test="/bedework/periodname!='Year'"> 
    496                   <td> 
    497                     <select name="viewStartDate.month"> 
    498                       <xsl:for-each select="/bedework/monthvalues/val"> 
    499                         <xsl:variable name="temp" select="."/> 
    500                         <xsl:variable name="pos" select="position()"/> 
    501                         <xsl:choose> 
    502                           <xsl:when test="/bedework/monthvalues[start=$temp]"> 
    503                             <option value="{$temp}" selected="selected"> 
    504                               <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/> 
    505                             </option> 
    506                           </xsl:when> 
    507                           <xsl:otherwise> 
    508                             <option value="{$temp}"> 
    509                               <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/> 
    510                             </option> 
    511                           </xsl:otherwise> 
    512                         </xsl:choose> 
    513                       </xsl:for-each> 
    514                     </select> 
    515                   </td> 
    516                   <xsl:if test="/bedework/periodname!='Month'"> 
    517                     <td> 
    518                       <select name="viewStartDate.day"> 
    519                         <xsl:for-each select="/bedework/dayvalues/val"> 
    520                           <xsl:variable name="temp" select="."/> 
    521                           <xsl:variable name="pos" select="position()"/> 
    522                           <xsl:choose> 
    523                             <xsl:when test="/bedework/dayvalues[start=$temp]"> 
    524                               <option value="{$temp}" selected="selected"> 
    525                                 <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/> 
    526                               </option> 
    527                             </xsl:when> 
    528                             <xsl:otherwise> 
    529                               <option value="{$temp}"> 
    530                                 <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/> 
    531                               </option> 
    532                             </xsl:otherwise> 
    533                           </xsl:choose> 
    534                         </xsl:for-each> 
    535                       </select> 
    536                     </td> 
    537                   </xsl:if> 
    538                 </xsl:if> 
    539                 <td> 
    540                   <xsl:variable name="temp" select="/bedework/yearvalues/start"/> 
    541                   <input type="text" name="viewStartDate.year" maxlength="4" size="4" value="{$temp}"/> 
    542                 </td> 
    543                 <td> 
    544                   <input name="submit" type="submit" value="go"/> 
    545                 </td> 
    546               </tr> 
    547             </table> 
    548           </form> 
    549         </td> 
    550       </tr> 
    551     </table> 
    552   </xsl:template> 
    553  
    554   <xsl:template name="utilBar"> 
    555     <table width="100%" border="0" cellpadding="0" cellspacing="0" id="utilBarTable"> 
    556        <tr> 
    557          <td class="leftCell"> 
    558            <xsl:choose> 
    559              <xsl:when test="/bedework/periodname = 'day'"> 
    560                <xsl:variable name="date" select="/bedework/firstday/date"/> 
    561                <a href="{$initEvent}?startdate={$date}" title="add event"> 
    562                   <img src="{$resourcesRoot}/resources/add2mycal-icon-small.gif" width="12" height="16" border="0" alt="add event"/> 
    563                   add event 
    564                </a> 
    565              </xsl:when> 
    566              <xsl:otherwise> 
    567                <a href="{$initEvent}" title="add event"> 
    568                   <img src="{$resourcesRoot}/resources/add2mycal-icon-small.gif" width="12" height="16" border="0" alt="add event"/> 
    569                   add event 
    570                </a> 
    571              </xsl:otherwise> 
    572            </xsl:choose> 
    573            <a href="{$initUpload}" title="upload event"> 
    574               <img src="{$resourcesRoot}/resources/std-icalUpload-icon-small.gif" width="12" height="16" border="0" alt="upload event"/> 
    575               upload 
    576            </a> 
    577          </td> 
    578          <td class="rightCell"> 
    579  
    580            <!-- show free / busy --> 
    581            <xsl:choose> 
    582              <xsl:when test="/bedework/periodname!='Year'"> 
    583                <xsl:choose> 
    584                  <xsl:when test="/bedework/page='freeBusy'"> 
    585                    <a href="{$setViewPeriod}?date={$curdate}"><img src="{$resourcesRoot}/resources/std-button-events.gif" width="70" height="21" border="0" alt="show events"/></a> 
    586                  </xsl:when> 
    587                  <xsl:otherwise> 
    588                    <a href="{$freeBusy-fetch}&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-button-freebusy.gif" width="70" height="21" border="0" alt="show free/busy"/></a> 
    589                  </xsl:otherwise> 
    590                </xsl:choose> 
    591              </xsl:when> 
    592              <xsl:otherwise> 
    593                <img src="{$resourcesRoot}/resources/std-button-freebusy-off.gif" width="70" height="21" border="0" alt="show free/busy"/> 
    594              </xsl:otherwise> 
    595            </xsl:choose> 
    596  
    597            <!-- toggle list / calendar view --> 
    598            <xsl:choose> 
    599              <xsl:when test="/bedework/periodname='Day'"> 
    600                <img src="{$resourcesRoot}/resources/std-button-listview-off.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/> 
    601              </xsl:when> 
    602              <xsl:when test="/bedework/periodname='Year'"> 
    603                <img src="{$resourcesRoot}/resources/std-button-calview-off.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/> 
    604              </xsl:when> 
    605              <xsl:when test="/bedework/periodname='Month'"> 
    606                <xsl:choose> 
    607                  <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'"> 
    608                    <a href="{$setup}?setappvar=monthViewMode(cal)" title="toggle list/calendar view"> 
    609                      <img src="{$resourcesRoot}/resources/std-button-calview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/> 
    610                    </a> 
    611                  </xsl:when> 
    612                  <xsl:otherwise> 
    613                    <a href="{$setup}?setappvar=monthViewMode(list)" title="toggle list/calendar view"> 
    614                      <img src="{$resourcesRoot}/resources/std-button-listview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/> 
    615                    </a> 
    616                  </xsl:otherwise> 
    617                </xsl:choose> 
    618              </xsl:when> 
    619              <xsl:otherwise> 
    620                <xsl:choose> 
    621                  <xsl:when test="/bedework/appvar[key='weekViewMode']/value='list'"> 
    622                    <a href="{$setup}?setappvar=weekViewMode(cal)" title="toggle list/calendar view"> 
    623                      <img src="{$resourcesRoot}/resources/std-button-calview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/> 
    624                    </a> 
    625                  </xsl:when> 
    626                  <xsl:otherwise> 
    627                    <a href="{$setup}?setappvar=weekViewMode(list)" title="toggle list/calendar view"> 
    628                      <img src="{$resourcesRoot}/resources/std-button-listview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/> 
    629                    </a> 
    630                  </xsl:otherwise> 
    631                </xsl:choose> 
    632              </xsl:otherwise> 
    633            </xsl:choose> 
    634  
    635            <!-- summary / detailed mode toggle --> 
    636            <xsl:choose> 
    637              <xsl:when test="/bedework/periodname='Year' or 
    638                               (/bedework/periodname='Month' and 
    639                               (/bedework/appvar[key='monthViewMode']/value='cal' or 
    640                                not(/bedework/appvar[key='monthViewMode']))) or 
    641                               (/bedework/periodname='Week' and 
    642                               (/bedework/appvar[key='weekViewMode']/value='cal' or 
    643                                not(/bedework/appvar[key='weekViewMode'])))"> 
    644                <xsl:choose> 
    645                  <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'"> 
    646                    <img src="{$resourcesRoot}/resources/std-button-summary-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/> 
    647                  </xsl:when> 
    648                  <xsl:otherwise> 
    649                    <img src="{$resourcesRoot}/resources/std-button-details-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/> 
    650                  </xsl:otherwise> 
    651                </xsl:choose> 
    652              </xsl:when> 
    653              <xsl:otherwise> 
    654                <xsl:choose> 
    655                  <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'"> 
    656                    <a href="{$setup}?setappvar=summaryMode(summary)" title="toggle summary/detailed view"> 
    657                      <img src="{$resourcesRoot}/resources/std-button-summary.gif" width="62" height="21" border="0" alt="toggle summary/detailed view"/> 
    658                    </a> 
    659                  </xsl:when> 
    660                  <xsl:otherwise> 
    661                    <a href="{$setup}?setappvar=summaryMode(details)" title="toggle summary/detailed view"> 
    662                      <img src="{$resourcesRoot}/resources/std-button-details.gif" width="62" height="21" border="0" alt="toggle summary/detailed view"/> 
    663                    </a> 
    664                  </xsl:otherwise> 
    665                </xsl:choose> 
    666              </xsl:otherwise> 
    667            </xsl:choose> 
    668  
    669            <!-- refresh button --> 
    670            <a href="setup.do"><img src="{$resourcesRoot}/resources/std-button-refresh.gif" width="70" height="21" border="0" alt="refresh view"/></a> 
    671          </td> 
    672        </tr> 
    673     </table> 
    674   </xsl:template> 
    675  
    676   <!--==== LIST VIEW  (for day, week, and month) ====--> 
    677   <xsl:template name="listView"> 
    678     <table id="listTable" border="0" cellpadding="0" cellspacing="0"> 
    679       <xsl:choose> 
    680         <xsl:when test="not(/bedework/eventscalendar/year/month/week/day/event)"> 
    681           <tr> 
    682             <td class="noEventsCell"> 
    683               No events to display. 
    684             </td> 
    685           </tr> 
    686         </xsl:when> 
    687         <xsl:otherwise> 
    688           <xsl:for-each select="/bedework/eventscalendar/year/month/week/day[event]"> 
    689             <xsl:if test="/bedework/periodname='Week' or /bedework/periodname='Month' or /bedework/periodname=''"> 
    690               <tr> 
    691                 <td colspan="6" class="dateRow"> 
    692                    <xsl:variable name="date" select="date"/> 
    693                    <a href="{$initEvent}?startdate={$date}" class="listAdd"> 
    694                      add event 
    695                    </a> 
    696                    <a href="{$setViewPeriod}?viewType=dayView&amp;date={$date}"> 
    697                      <xsl:value-of select="name"/>, <xsl:value-of select="longdate"/> 
    698                    </a> 
    699                  </td> 
    700               </tr> 
    701             </xsl:if> 
    702             <xsl:for-each select="event"> 
    703               <xsl:variable name="id" select="id"/> 
    704               <xsl:variable name="subscriptionId" select="subscription/id"/> 
    705               <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    706               <xsl:variable name="guid" select="guid"/> 
    707               <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    708               <tr> 
    709                 <xsl:variable name="dateRangeStyle"> 
    710                   <xsl:choose> 
    711                     <xsl:when test="start/shortdate = parent::day/shortdate"> 
    712                       <xsl:choose> 
    713                         <xsl:when test="start/allday = 'true'">dateRangeCrossDay</xsl:when> 
    714                         <xsl:when test="start/hour24 &lt; 6">dateRangeEarlyMorning</xsl:when> 
    715                         <xsl:when test="start/hour24 &lt; 12">dateRangeMorning</xsl:when> 
    716                         <xsl:when test="start/hour24 &lt; 18">dateRangeAfternoon</xsl:when> 
    717                         <xsl:otherwise>dateRangeEvening</xsl:otherwise> 
    718                       </xsl:choose> 
    719                     </xsl:when> 
    720                     <xsl:otherwise>dateRangeCrossDay</xsl:otherwise> 
    721                   </xsl:choose> 
    722                 </xsl:variable> 
    723                 <xsl:choose> 
    724                   <xsl:when test="start/allday = 'true' and 
    725                                   start/shortdate = end/shortdate"> 
    726                     <td class="{$dateRangeStyle} center" colspan="3"> 
    727                       all day 
    728                     </td> 
    729                   </xsl:when> 
    730                   <xsl:when test="start/shortdate = end/shortdate and 
    731                                   start/time = end/time"> 
    732                     <td class="{$dateRangeStyle} center" colspan="3"> 
    733                       <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    734                         <xsl:value-of select="start/time"/> 
    735                       </a> 
    736                     </td> 
    737                   </xsl:when> 
    738                   <xsl:otherwise> 
    739                     <td class="{$dateRangeStyle} right"> 
    740                       <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    741                       <xsl:choose> 
    742                         <xsl:when test="start/allday = 'true' and 
    743                                         parent::day/shortdate = start/shortdate"> 
    744                           today 
    745                         </xsl:when> 
    746                         <xsl:when test="parent::day/shortdate != start/shortdate"> 
    747                           <span class="littleArrow">&#171;</span>&#160; 
    748                           <xsl:value-of select="start/month"/>/<xsl:value-of select="start/day"/> 
    749                         </xsl:when> 
    750                         <xsl:otherwise> 
    751                           <xsl:value-of select="start/time"/> 
    752                         </xsl:otherwise> 
    753                       </xsl:choose> 
    754                       </a> 
    755                     </td> 
    756                     <td class="{$dateRangeStyle} center"> 
    757                       <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">-</a> 
    758                     </td> 
    759                     <td class="{$dateRangeStyle} left"> 
    760                       <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    761                       <xsl:choose> 
    762                         <xsl:when test="end/allday = 'true' and 
    763                                         parent::day/shortdate = end/shortdate"> 
    764                           today 
    765                         </xsl:when> 
    766                         <xsl:when test="parent::day/shortdate != end/shortdate"> 
    767                           <xsl:value-of select="end/month"/>/<xsl:value-of select="end/day"/> 
    768                           &#160;<span class="littleArrow">&#187;</span> 
    769                         </xsl:when> 
    770                         <xsl:otherwise> 
    771                           <xsl:value-of select="end/time"/> 
    772                         </xsl:otherwise> 
    773                       </xsl:choose> 
    774                       </a> 
    775                     </td> 
    776                   </xsl:otherwise> 
    777                 </xsl:choose> 
    778                 <xsl:variable name="descriptionClass"> 
    779                   <xsl:choose> 
    780                     <xsl:when test="status='CANCELLED'">description bwStatusCancelled</xsl:when> 
    781                     <xsl:when test="status='TENTATIVE'">description bwStatusTentative</xsl:when> 
    782                     <xsl:otherwise>description</xsl:otherwise> 
    783                   </xsl:choose> 
    784                 </xsl:variable> 
    785                 <td class="{$descriptionClass}"> 
    786                   <xsl:if test="status='CANCELLED'"><strong>CANCELLED: </strong></xsl:if> 
    787                   <xsl:choose> 
    788                     <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'"> 
    789                       <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    790                         <strong> 
    791                           <xsl:value-of select="summary"/>: 
    792                         </strong> 
    793                         <xsl:value-of select="description"/>&#160; 
    794                         <em> 
    795                           <xsl:value-of select="location/address"/> 
    796                           <xsl:if test="location/subaddress != ''"> 
    797                             , <xsl:value-of select="location/subaddress"/> 
    798                           </xsl:if>.&#160; 
    799                           <xsl:if test="cost!=''"> 
    800                             <xsl:value-of select="cost"/>.&#160; 
    801                           </xsl:if> 
    802                           <xsl:if test="sponsor/name!='none'"> 
    803                             Contact: <xsl:value-of select="sponsor/name"/> 
    804                           </xsl:if> 
    805                         </em> 
    806                       </a> 
    807                       <xsl:if test="link != ''"> 
    808                         <xsl:variable name="link" select="link"/> 
    809                         <a href="{$link}" class="moreLink"><xsl:value-of select="link"/></a> 
    810                       </xsl:if> 
    811                     </xsl:when> 
    812                     <xsl:otherwise> 
    813                       <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
    814                         <xsl:value-of select="summary"/> 
    815                         <xsl:if test="location/address != ''">, <xsl:value-of select="location/address"/></xsl:if> 
    816                       </a> 
    817                     </xsl:otherwise> 
    818                   </xsl:choose> 
    819                 </td> 
    820                 <td class="eventLinks"> 
    821                   <xsl:call-template name="eventLinks"/> 
    822                 </td> 
    823                 <td class="smallIcon"> 
    824                   <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
    825                   <a href="{$export}?subid={$subscriptionId}&amp;calPath={$calPath}&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"> 
    826                     <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"/> 
    827                   </a> 
    828                 </td> 
    829               </tr> 
    830             </xsl:for-each> 
    831           </xsl:for-each> 
    832         </xsl:otherwise> 
    833       </xsl:choose> 
    834     </table> 
    835   </xsl:template> 
    836  
    837   <xsl:template name="eventLinks"> 
    838     <xsl:variable name="subscriptionId" select="subscription/id"/> 
    839     <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    840     <xsl:variable name="guid" select="guid"/> 
    841     <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    842     <xsl:choose> 
    843       <xsl:when test="isAnnotation"> 
    844         <xsl:choose> 
    845           <xsl:when test="recurring=true"> 
    846             <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;confirmationid={$confId}">Remove All</a> 
    847           </xsl:when> 
    848           <xsl:otherwise> 
    849             <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">Remove</a> 
    850           </xsl:otherwise> 
    851         </xsl:choose> 
    852       </xsl:when> 
    853       <xsl:when test="calendar/owner = /bedework/userid"> 
    854         <a href="{$editEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">Edit</a> | 
    855         <xsl:choose> 
    856           <xsl:when test="recurring=true"> 
    857             <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">Delete All</a> 
    858           </xsl:when> 
    859           <xsl:otherwise> 
    860             <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">Delete</a> 
    861           </xsl:otherwise> 
    862         </xsl:choose> 
    863       </xsl:when> 
    864       <xsl:otherwise> 
    865         <a href="{$subscriptions-fetch}">Subscription</a> 
    866       </xsl:otherwise> 
    867     </xsl:choose> 
    868   </xsl:template> 
    869  
    870   <!--==== WEEK CALENDAR VIEW ====--> 
    871   <xsl:template name="weekView"> 
    872     <table id="monthCalendarTable" border="0" cellpadding="0" cellspacing="0"> 
    873       <tr> 
    874         <xsl:for-each select="/bedework/daynames/val"> 
    875           <th class="dayHeading"><xsl:value-of select="."/></th> 
    876         </xsl:for-each> 
    877       </tr> 
    878       <tr> 
    879         <xsl:for-each select="/bedework/eventscalendar/year/month/week/day"> 
    880           <xsl:variable name="dayPos" select="position()"/> 
    881           <xsl:if test="filler='false'"> 
    882             <td> 
    883               <xsl:variable name="dayDate" select="date"/> 
    884               <a href="{$initEvent}?startdate={$dayDate}" class="gridAdd" title="add event"> 
    885                 <img src="{$resourcesRoot}/resources/addEvent-forGrid-icon.gif" width="9" height="10" border="0" alt="add event"/> 
    886               </a> 
    887               <a href="{$setViewPeriod}?viewType=dayView&amp;date={$dayDate}" class="dayLink" title="go to day"> 
    888                 <xsl:value-of select="value"/> 
    889               </a> 
    890               <ul> 
    891                 <xsl:apply-templates select="event" mode="calendarLayout"> 
    892                   <xsl:with-param name="dayPos" select="$dayPos"/> 
    893                 </xsl:apply-templates> 
    894               </ul> 
    895             </td> 
    896           </xsl:if> 
    897         </xsl:for-each> 
    898       </tr> 
    899     </table> 
    900   </xsl:template> 
    901  
    902   <!--==== MONTH CALENDAR VIEW ====--> 
    903   <xsl:template name="monthView"> 
    904     <table id="monthCalendarTable" border="0" cellpadding="0" cellspacing="0"> 
    905       <tr> 
    906         <xsl:for-each select="/bedework/daynames/val"> 
    907           <th class="dayHeading"><xsl:value-of select="."/></th> 
    908         </xsl:for-each> 
    909       </tr> 
    910       <xsl:for-each select="/bedework/eventscalendar/year/month/week"> 
    911         <tr> 
    912           <xsl:for-each select="day"> 
    913             <xsl:variable name="dayPos" select="position()"/> 
    914             <xsl:choose> 
    915               <xsl:when test="filler='true'"> 
    916                 <td class="filler">&#160;</td> 
    917               </xsl:when> 
    918               <xsl:otherwise> 
    919                 <td> 
    920                   <xsl:variable name="dayDate" select="date"/> 
    921                   <a href="{$initEvent}?startdate={$dayDate}" class="gridAdd" title="add event"> 
    922                     <img src="{$resourcesRoot}/resources/addEvent-forGrid-icon.gif" width="10" height="10" border="0" alt="add event"/> 
    923                   </a> 
    924                   <a href="{$setViewPeriod}?viewType=dayView&amp;date={$dayDate}" class="dayLink" title="go to day"> 
    925                     <xsl:value-of select="value"/> 
    926                   </a> 
    927                   <ul> 
    928                     <xsl:apply-templates select="event" mode="calendarLayout"> 
    929                       <xsl:with-param name="dayPos" select="$dayPos"/> 
    930                     </xsl:apply-templates> 
    931                   </ul> 
    932                 </td> 
    933               </xsl:otherwise> 
    934             </xsl:choose> 
    935           </xsl:for-each> 
    936         </tr> 
    937       </xsl:for-each> 
    938     </table> 
    939   </xsl:template> 
    940  
    941   <xsl:template match="event" mode="calendarLayout"> 
    942     <xsl:param name="dayPos"/> 
    943     <xsl:variable name="subscriptionId" select="subscription/id"/> 
    944     <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    945     <xsl:variable name="guid" select="guid"/> 
    946     <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    947     <xsl:variable name="eventClass"> 
    948       <xsl:choose> 
    949         <!-- Special styles for the month grid --> 
    950         <xsl:when test="status='CANCELLED'">eventCancelled</xsl:when> 
    951         <xsl:when test="status='TENTATIVE'">eventTentative</xsl:when> 
    952         <!-- Otherwise: Alternating colors for all standard events --> 
    953         <xsl:when test="position() mod 2 = 1">eventLinkA</xsl:when> 
    954         <xsl:otherwise>eventLinkB</xsl:otherwise> 
    955       </xsl:choose> 
    956     </xsl:variable> 
    957     <!-- User defined subscription styles. 
    958          These are set in the add/modify subscription forms which 
    959          rely (in this stylesheet) on subColors.css; if present, these 
    960          override the background-color set by eventClass. User styles should 
    961          not be used for cancelled events (tentative is ok). --> 
    962     <xsl:variable name="subColor"> 
    963       <xsl:choose> 
    964          <xsl:when test="status != 'CANCELLED' and 
    965                         subscription/style != '' and 
    966                         subscription/style != 'default'"><xsl:value-of select="subscription/style"/></xsl:when> 
    967         <xsl:otherwise></xsl:otherwise> 
    968       </xsl:choose> 
    969     </xsl:variable> 
    970     <li> 
    971       <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" class="{$eventClass} {$subColor}"> 
    972         <xsl:if test="status='CANCELLED'">CANCELLED: </xsl:if> 
    973         <xsl:value-of select="summary"/> 
    974         <xsl:variable name="eventTipClass"> 
    975           <xsl:choose> 
    976             <xsl:when test="$dayPos &gt; 5">eventTipReverse</xsl:when> 
    977             <xsl:otherwise>eventTip</xsl:otherwise> 
    978           </xsl:choose> 
    979         </xsl:variable> 
    980         <span class="{$eventTipClass}"> 
    981           <xsl:if test="status='CANCELLED'"><span class="eventTipStatusCancelled">CANCELLED</span></xsl:if> 
    982           <xsl:if test="status='TENTATIVE'"><span class="eventTipStatusTentative">TENTATIVE</span></xsl:if> 
    983           <strong><xsl:value-of select="summary"/></strong><br/> 
    984           Time: 
    985           <xsl:choose> 
    986             <xsl:when test="start/allday = 'false'"> 
    987               <xsl:value-of select="start/time"/> 
    988               <xsl:if test="start/time != end/time"> 
    989                 - <xsl:value-of select="end/time"/> 
    990               </xsl:if> 
    991             </xsl:when> 
    992             <xsl:otherwise> 
    993               all day 
    994             </xsl:otherwise> 
    995           </xsl:choose><br/> 
    996           <xsl:if test="location/address"> 
    997             Location: <xsl:value-of select="location/address"/><br/> 
    998           </xsl:if> 
    999           Calendar: 
    1000             <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
    1001             <xsl:choose> 
    1002               <xsl:when test="contains(calendar/path,$userPath)"> 
    1003                 <xsl:value-of select="substring-after(calendar/path,$userPath)"/> 
    1004               </xsl:when> 
    1005               <xsl:otherwise> 
    1006                 <xsl:value-of select="calendar/path"/> 
    1007               </xsl:otherwise> 
    1008             </xsl:choose><br/> 
    1009           Type: 
    1010           <xsl:choose> 
    1011             <xsl:when test="isAnnotation"> 
    1012               public event 
    1013             </xsl:when> 
    1014             <xsl:when test="calendar/owner = /bedework/userid"> 
    1015               personal event, editable 
    1016             </xsl:when> 
    1017             <xsl:otherwise> 
    1018               subscription 
    1019             </xsl:otherwise> 
    1020           </xsl:choose> 
    1021         </span> 
    1022       </a> 
    1023     </li> 
    1024   </xsl:template> 
    1025  
    1026   <!--==== YEAR VIEW ====--> 
    1027   <xsl:template name="yearView"> 
    1028     <table id="yearCalendarTable" border="0" cellpadding="0" cellspacing="0"> 
    1029       <tr> 
    1030         <xsl:apply-templates select="/bedework/eventscalendar/year/month[position() &lt;= 3]"/> 
    1031       </tr> 
    1032       <tr> 
    1033         <xsl:apply-templates select="/bedework/eventscalendar/year/month[(position() &gt; 3) and (position() &lt;= 6)]"/> 
    1034       </tr> 
    1035       <tr> 
    1036         <xsl:apply-templates select="/bedework/eventscalendar/year/month[(position() &gt; 6) and (position() &lt;= 9)]"/> 
    1037       </tr> 
    1038       <tr> 
    1039         <xsl:apply-templates select="/bedework/eventscalendar/year/month[position() &gt; 9]"/> 
    1040       </tr> 
    1041     </table> 
    1042   </xsl:template> 
    1043  
    1044   <!-- year view month tables --> 
    1045   <xsl:template match="month"> 
    1046     <td> 
    1047       <table class="yearViewMonthTable" border="0" cellpadding="0" cellspacing="0"> 
    1048         <tr> 
    1049           <td colspan="8" class="monthName"> 
    1050             <xsl:variable name="firstDayOfMonth" select="week/day/date"/> 
    1051             <a href="{$setViewPeriod}?viewType=monthView&amp;date={$firstDayOfMonth}"> 
    1052               <xsl:value-of select="longname"/> 
    1053             </a> 
    1054           </td> 
    1055         </tr> 
    1056         <tr> 
    1057           <th>&#160;</th> 
    1058           <xsl:for-each select="/bedework/shortdaynames/val"> 
    1059             <th><xsl:value-of select="."/></th> 
    1060           </xsl:for-each> 
    1061         </tr> 
    1062         <xsl:for-each select="week"> 
    1063           <tr> 
    1064             <td class="weekCell"> 
    1065               <xsl:variable name="firstDayOfWeek" select="day/date"/> 
    1066               <a href="{$setViewPeriod}?viewType=weekView&amp;date={$firstDayOfWeek}"> 
    1067                 <xsl:value-of select="value"/> 
    1068               </a> 
    1069             </td> 
    1070             <xsl:for-each select="day"> 
    1071               <xsl:choose> 
    1072                 <xsl:when test="filler='true'"> 
    1073                   <td class="filler">&#160;</td> 
    1074                 </xsl:when> 
    1075                 <xsl:otherwise> 
    1076                   <td> 
    1077                     <xsl:variable name="dayDate" select="date"/> 
    1078                     <a href="{$setViewPeriod}?viewType=dayView&amp;date={$dayDate}"> 
    1079                       <xsl:value-of select="value"/> 
    1080                     </a> 
    1081                   </td> 
    1082                 </xsl:otherwise> 
    1083               </xsl:choose> 
    1084             </xsl:for-each> 
    1085           </tr> 
    1086         </xsl:for-each> 
    1087       </table> 
    1088     </td> 
    1089   </xsl:template> 
    1090  
    1091   <!--==== SINGLE EVENT ====--> 
    1092   <xsl:template match="event"> 
    1093     <xsl:variable name="subscriptionId" select="subscription/id"/> 
    1094     <xsl:variable name="calPath" select="calendar/encodedPath"/> 
    1095     <xsl:variable name="guid" select="guid"/> 
    1096     <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    1097     <xsl:variable name="statusClass"> 
    1098       <xsl:choose> 
    1099         <xsl:when test="status='CANCELLED'">bwStatusCancelled</xsl:when> 
    1100         <xsl:when test="status='TENTATIVE'">bwStatusTentative</xsl:when> 
    1101         <xsl:otherwise>bwStatusConfirmed</xsl:otherwise> 
    1102       </xsl:choose> 
    1103     </xsl:variable> 
    1104     <h2 class="{$statusClass}"> 
    1105       <xsl:if test="status='CANCELLED'">CANCELLED: </xsl:if> 
    1106       <xsl:choose> 
    1107         <xsl:when test="link != ''"> 
    1108           <xsl:variable name="link" select="link"/> 
    1109           <a href="{$link}"> 
    1110             <xsl:value-of select="summary"/> 
    1111           </a> 
    1112         </xsl:when> 
    1113         <xsl:otherwise> 
    1114           <xsl:value-of select="summary"/> 
    1115         </xsl:otherwise> 
    1116       </xsl:choose> 
    1117     </h2> 
    1118     <table class="common" cellspacing="0"> 
    1119       <tr> 
    1120         <th colspan="2" class="commonHeader"> 
    1121           <div id="eventActions"> 
    1122             <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
    1123             <a href="{$export}?subid={$subscriptionId}&amp;calPath={$calPath}&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"> 
    1124               <img src="{$resourcesRoot}/resources/std-ical_iconDkGray.gif" width="12" height="13" border="0" alt="Download event as ical - for Outlook, PDAs, iCal, and other desktop calendars"/> 
    1125               Download 
    1126             </a> | 
    1127             <xsl:choose> 
    1128               <xsl:when test="isAnnotation"> 
    1129                 <xsl:choose> 
    1130                   <xsl:when test="recurring=true"> 
    1131                     <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;confirmationid={$confId}"> 
    1132                       <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    1133                       Remove All (recurring) 
    1134                     </a> 
    1135                   </xsl:when> 
    1136                   <xsl:otherwise> 
    1137                     <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}"> 
    1138                       <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    1139                       Remove 
    1140                     </a> 
    1141                   </xsl:otherwise> 
    1142                 </xsl:choose> 
    1143               </xsl:when> 
    1144               <xsl:when test="currentAccess/current-user-privilege-set/privilege/write-content"> 
    1145                 <a href="{$editEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}"> 
    1146                   <img src="{$resourcesRoot}/resources/std-ical_iconEditDkGray.gif" width="12" height="13" border="0" alt="edit"/> 
    1147                   Edit 
    1148                 </a> 
    1149               </xsl:when> 
    1150               <xsl:otherwise> 
    1151                 <a href="{$subscriptions-fetch}"> 
    1152                   <img src="{$resourcesRoot}/resources/std-ical_iconSubsDkGray.gif" width="12" height="13" border="0" alt="edit"/> 
    1153                   Manage Subscriptions 
    1154                 </a> 
    1155               </xsl:otherwise> 
    1156             </xsl:choose> 
    1157             <xsl:if test="currentAccess/current-user-privilege-set/privilege/unbind"> 
    1158                | 
    1159               <xsl:choose> 
    1160                 <xsl:when test="recurring=true"> 
    1161                   <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;confirmationid={$confId}"> 
    1162                     <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    1163                     Delete All (recurring) 
    1164                   </a> 
    1165                 </xsl:when> 
    1166                 <xsl:otherwise> 
    1167                   <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}"> 
    1168                     <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    1169                     Delete 
    1170                   </a> 
    1171                 </xsl:otherwise> 
    1172               </xsl:choose> 
    1173             </xsl:if> 
    1174           </div> 
    1175           <xsl:choose> 
    1176             <xsl:when test="calendar/owner = /bedework/userid"> 
    1177               Personal Event 
    1178             </xsl:when> 
    1179             <xsl:when test="starts-with(calendar/path,'/user/')"> 
    1180               User Event (<xsl:value-of select="calendar/owner"/>) 
    1181             </xsl:when> 
    1182             <xsl:when test="isAnnotation"> 
    1183               Public Event 
    1184             </xsl:when> 
    1185             <xsl:otherwise> 
    1186               <xsl:choose> 
    1187                 <xsl:when test="starts-with(calendar/path,'/public/')"> 
    1188                   Public Event from Subscription 
    1189                 </xsl:when> 
    1190                 <xsl:otherwise> 
    1191                   Event from Subscription 
    1192                 </xsl:otherwise> 
    1193               </xsl:choose> 
    1194             </xsl:otherwise> 
    1195           </xsl:choose> 
    1196         </th> 
    1197       </tr> 
    1198       <tr> 
    1199         <td class="fieldname">When:</td> 
    1200         <td class="fieldval"> 
    1201           <xsl:value-of select="start/dayname"/>, <xsl:value-of select="start/longdate"/><xsl:text> </xsl:text> 
    1202           <xsl:if test="start/allday = 'false'"> 
    1203             <span class="time"><xsl:value-of select="start/time"/></span> 
    1204           </xsl:if> 
    1205           <xsl:if test="(end/longdate != start/longdate) or 
    1206                         ((end/longdate = start/longdate) and (end/time != start/time))"> - </xsl:if> 
    1207           <xsl:if test="end/longdate != start/longdate"> 
    1208             <xsl:value-of select="substring(end/dayname,1,3)"/>, <xsl:value-of select="end/longdate"/><xsl:text> </xsl:text> 
    1209           </xsl:if> 
    1210           <xsl:choose> 
    1211             <xsl:when test="start/allday = 'true'"> 
    1212               <span class="time"><em>(all day)</em></span> 
    1213             </xsl:when> 
    1214             <xsl:when test="end/longdate != start/longdate"> 
    1215               <span class="time"><xsl:value-of select="end/time"/></span> 
    1216             </xsl:when> 
    1217             <xsl:when test="end/time != start/time"> 
    1218               <span class="time"><xsl:value-of select="end/time"/></span> 
    1219             </xsl:when> 
    1220           </xsl:choose> 
    1221         </td> 
    1222         <!--<th class="icon" rowspan="2"> 
    1223           <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
    1224           <a href="{$export}?subid={$subscriptionId}&amp;calPath={$calPath}&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"> 
    1225             <img src="{$resourcesRoot}/resources/std-ical-icon.gif" width="20" height="26" border="0" align="left" alt="Download this event"/> 
    1226           </a> 
    1227         </th>--> 
    1228       </tr> 
    1229       <tr> 
    1230         <td class="fieldname">Where:</td> 
    1231         <td class="fieldval"> 
    1232           <xsl:choose> 
    1233             <xsl:when test="location/link=''"> 
    1234               <xsl:value-of select="location/address"/> 
    1235             </xsl:when> 
    1236             <xsl:otherwise> 
    1237               <xsl:variable name="locationLink" select="location/link"/> 
    1238               <a href="{$locationLink}"> 
    1239                 <xsl:value-of select="location/address"/> 
    1240               </a> 
    1241             </xsl:otherwise> 
    1242           </xsl:choose> 
    1243           <xsl:if test="location/subaddress!=''"> 
    1244             <br/><xsl:value-of select="location/subaddress"/> 
    1245           </xsl:if> 
    1246         </td> 
    1247       </tr> 
    1248       <tr> 
    1249         <td class="fieldname">Description:</td> 
    1250         <td class="fieldval"> 
    1251           <xsl:call-template name="replace"> 
    1252             <xsl:with-param name="string" select="description"/> 
    1253             <xsl:with-param name="pattern" select="'&#xA;'"/> 
    1254             <xsl:with-param name="replacement"><br/></xsl:with-param> 
    1255           </xsl:call-template> 
    1256         </td> 
    1257       </tr> 
    1258       <xsl:if test="status !='' and status != 'CONFIRMED'"> 
    1259         <tr> 
    1260           <td class="fieldname">Status:</td> 
    1261           <td class="fieldval"> 
    1262             <xsl:value-of select="status"/> 
    1263           </td> 
    1264         </tr> 
    1265       </xsl:if> 
    1266       <xsl:if test="organizer"> 
    1267         <tr> 
    1268           <td class="fieldname">Organizer:</td> 
    1269           <xsl:variable name="organizerUri" select="organizer/organizerUri"/> 
    1270           <td class="fieldval"> 
    1271             <strong> 
    1272               <a href="{$organizerUri}"> 
    1273                 <xsl:value-of select="organizer/cn"/> 
    1274               </a> 
    1275             </strong> 
    1276           </td> 
    1277         </tr> 
    1278       </xsl:if> 
    1279       <xsl:if test="attendee"> 
    1280         <tr> 
    1281           <td class="fieldname">Attendees:</td> 
    1282           <td class="fieldval"> 
    1283             <table id="attendees" cellspacing="0"> 
    1284               <tr> 
    1285                 <th>role</th> 
    1286                 <th>status</th> 
    1287                 <th>attendee</th> 
    1288               </tr> 
    1289               <xsl:for-each select="attendee"> 
    1290                 <xsl:sort select="cn" order="ascending" case-order="upper-first"/> 
    1291                 <tr> 
    1292                   <td class="role"> 
    1293                     <xsl:value-of select="role"/> 
    1294                   </td> 
    1295                   <td class="status"> 
    1296                     <xsl:value-of select="partstat"/> 
    1297                   </td> 
    1298                   <td> 
    1299                     <xsl:variable name="attendeeUri" select="attendeeUri"/> 
    1300                     <a href="{$attendeeUri}"><xsl:value-of select="cn"/></a> 
    1301                   </td> 
    1302                 </tr> 
    1303               </xsl:for-each> 
    1304             </table> 
    1305           </td> 
    1306         </tr> 
    1307       </xsl:if> 
    1308       <xsl:if test="cost!=''"> 
    1309         <tr> 
    1310           <td class="fieldname">Cost:</td> 
    1311           <td class="fieldval"><xsl:value-of select="cost"/></td> 
    1312         </tr> 
    1313       </xsl:if> 
    1314       <xsl:if test="link != ''"> 
    1315         <tr> 
    1316           <td class="fieldname">See:</td> 
    1317           <td class="fieldval"> 
    1318             <xsl:variable name="link" select="link"/> 
    1319             <a href="{$link}"><xsl:value-of select="link"/></a> 
    1320           </td> 
    1321         </tr> 
    1322       </xsl:if> 
    1323       <xsl:if test="sponsor/name!='none'"> 
    1324         <tr> 
    1325           <td class="fieldname">Contact:</td> 
    1326           <td class="fieldval"> 
    1327             <xsl:choose> 
    1328               <xsl:when test="sponsor/link=''"> 
    1329                 <xsl:value-of select="sponsor/name"/> 
    1330               </xsl:when> 
    1331               <xsl:otherwise> 
    1332                 <xsl:variable name="sponsorLink" select="sponsor/link"/> 
    1333                 <a href="{$sponsorLink}"> 
    1334                   <xsl:value-of select="sponsor/name"/> 
    1335                 </a> 
    1336               </xsl:otherwise> 
    1337             </xsl:choose> 
    1338             <xsl:if test="sponsor/phone!=''"> 
    1339               <br /><xsl:value-of select="sponsor/phone"/> 
    1340             </xsl:if> 
    1341             <xsl:if test="sponsor/email!=''"> 
    1342               <br /> 
    1343               <xsl:variable name="email" select="sponsor/email"/> 
    1344               <xsl:variable name="subject" select="summary"/> 
    1345               <a href="mailto:{$email}?subject={$subject}"> 
    1346                 <xsl:value-of select="sponsor/email"/> 
    1347               </a> 
    1348             </xsl:if> 
    1349           </td> 
    1350         </tr> 
    1351       </xsl:if> 
    1352       <xsl:if test="calendar/path!=''"> 
    1353         <tr> 
    1354           <td class="fieldname">Calendar:</td> 
    1355           <td class="fieldval"> 
    1356             <xsl:variable name="calUrl" select="calendar/encodedPath"/> 
    1357             <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
    1358             <a href="{$setSelection}?calUrl={$calUrl}"> 
    1359               <xsl:choose> 
    1360                 <xsl:when test="contains(calendar/path,$userPath)"> 
    1361                   <xsl:value-of select="substring-after(calendar/path,$userPath)"/> 
    1362                 </xsl:when> 
    1363                 <xsl:otherwise> 
    1364                   <xsl:value-of select="calendar/path"/> 
    1365                 </xsl:otherwise> 
    1366               </xsl:choose> 
    1367             </a> 
    1368           </td> 
    1369         </tr> 
    1370       </xsl:if> 
    1371       <tr> 
    1372         <td class="fieldname filler">&#160;</td> 
    1373         <td class="fieldval">&#160;</td> 
    1374       </tr> 
    1375     </table> 
    1376   </xsl:template> 
     98        <xsl:template match="/"> 
     99                <html lang="en"> 
     100                        <head> 
     101                                <xsl:call-template name="headSection"/> 
     102                        </head> 
     103                        <body> 
     104                        <xsl:choose> 
     105                                <xsl:when test="/bedework/page='selectCalForEvent'"> 
     106                                        <xsl:call-template name="selectCalForEvent"/> 
     107                                </xsl:when> 
     108                                <xsl:otherwise> 
     109                                                <xsl:call-template name="headBar"/> 
     110                                                <xsl:if test="/bedework/message"> 
     111                                                        <div id="messages"> 
     112                                                                <xsl:apply-templates select="/bedework/message"/> 
     113                                                        </div> 
     114                                                </xsl:if> 
     115                                                <xsl:if test="/bedework/error"> 
     116                                                        <div id="errors"> 
     117                                                                <xsl:apply-templates select="/bedework/error"/> 
     118                                                        </div> 
     119                                                </xsl:if> 
     120                                                <table id="bodyBlock" cellspacing="0"> 
     121                                                        <tr> 
     122                                                                <xsl:choose> 
     123                                                                        <xsl:when test="/bedework/appvar[key='sidebar']/value='closed'"> 
     124                                                                                <td id="sideBarClosed"> 
     125                                                                                        <img src="{$resourcesRoot}/resources/spacer.gif" width="1" height="1" border="0" alt="*"/> 
     126                                                                                </td> 
     127                                                                        </xsl:when> 
     128                                                                        <xsl:otherwise> 
     129                                                                                <td id="sideBar"> 
     130                                                                                        <xsl:call-template name="sideBar"/> 
     131                                                                                </td> 
     132                                                                        </xsl:otherwise> 
     133                                                                </xsl:choose> 
     134                                                                <td id="bodyContent"> 
     135                                                                        <xsl:call-template name="tabs"/> 
     136                                                                        <xsl:call-template name="navigation"/> 
     137                                                                        <xsl:choose> 
     138                                                                                <xsl:when test="/bedework/page='event'"> 
     139                                                                                        <!-- show an event --> 
     140                                                                                        <xsl:apply-templates select="/bedework/event"/> 
     141                                                                                </xsl:when> 
     142                                                                                <xsl:when test="/bedework/page='addEvent'"> 
     143                                                                                        <xsl:call-template name="addEvent"/> 
     144                                                                                </xsl:when> 
     145                                                                                <xsl:when test="/bedework/page='addEventRef'"> 
     146                                                                                        <xsl:apply-templates select="/bedework/event" mode="addEventRef"/> 
     147                                                                                </xsl:when> 
     148                                                                                <xsl:when test="/bedework/page='editEvent'"> 
     149                                                                                        <!-- edit an event --> 
     150                                                                                        <xsl:apply-templates select="/bedework/formElements" mode="editEvent"/> 
     151                                                                                </xsl:when> 
     152                                                                                <xsl:when test="/bedework/page='alarmOptions'"> 
     153                                                                                        <xsl:call-template name="alarmOptions" /> 
     154                                                                                </xsl:when> 
     155                                                                                <xsl:when test="/bedework/page='upload'"> 
     156                                                                                        <xsl:call-template name="upload" /> 
     157                                                                                </xsl:when> 
     158                                                                                <xsl:when test="/bedework/page='manageLocations'"> 
     159                                                                                        <xsl:call-template name="manageLocations" /> 
     160                                                                                </xsl:when> 
     161                                                                                <xsl:when test="/bedework/page='editLocation'"> 
     162                                                                                        <xsl:apply-templates select="/bedework/formElements" mode="editLocation"/> 
     163                                                                                </xsl:when> 
     164                                                                                <xsl:when test="/bedework/page='subscriptions' or 
     165                                                                                                                                                /bedework/page='modSubscription' or 
     166                                                                                                                                                /bedework/page='addSubByUri'"> 
     167                                                                                        <xsl:apply-templates select="/bedework/subscriptions"/> 
     168                                                                                </xsl:when> 
     169                                                                                <xsl:when test="/bedework/page='calendarList' or 
     170                                                                                                                                                /bedework/page='calendarDescriptions' or 
     171                                                                                                                                                /bedework/page='displayCalendar' or 
     172                                                                                                                                                /bedework/page='modCalendar' or 
     173                                                                                                                                                /bedework/page='deleteCalendarConfirm' or 
     174                                                                                                                                                /bedework/page='calendarReferenced'"> 
     175                                                                                        <xsl:apply-templates select="/bedework/calendars"/> 
     176                                                                                </xsl:when> 
     177                                                                                <xsl:when test="/bedework/page='freeBusy'"> 
     178                                                                                        <xsl:call-template name="utilBar"/> 
     179                                                                                        <xsl:apply-templates select="/bedework/freebusy"/> 
     180                                                                                </xsl:when> 
     181                                                                                <xsl:when test="/bedework/page='modPrefs'"> 
     182                                                                                        <xsl:apply-templates select="/bedework/prefs"/> 
     183                                                                                </xsl:when> 
     184                                                                                <xsl:when test="/bedework/page='other'"> 
     185                                                                                        <!-- show an arbitrary page --> 
     186                                                                                        <xsl:call-template name="selectPage"/> 
     187                                                                                </xsl:when> 
     188                                                                                <xsl:otherwise> 
     189                                                                                        <!-- otherwise, show the eventsCalendar --> 
     190                                                                                        <xsl:call-template name="utilBar"/> 
     191                                                                                        <!-- main eventCalendar content --> 
     192                                                                                        <xsl:choose> 
     193                                                                                                <xsl:when test="/bedework/periodname='Day'"> 
     194                                                                                                        <xsl:call-template name="listView"/> 
     195                                                                                                </xsl:when> 
     196                                                                                                <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''"> 
     197                                                                                                        <xsl:choose> 
     198                                                                                                                <xsl:when test="/bedework/appvar[key='weekViewMode']/value='list'"> 
     199                                                                                                                        <xsl:call-template name="listView"/> 
     200                                                                                                                </xsl:when> 
     201                                                                                                                <xsl:otherwise> 
     202                                                                                                                        <xsl:call-template name="weekView"/> 
     203                                                                                                                </xsl:otherwise> 
     204                                                                                                        </xsl:choose> 
     205                                                                                                </xsl:when> 
     206                                                                                                <xsl:when test="/bedework/periodname='Month'"> 
     207                                                                                                        <xsl:choose> 
     208                                                                                                                <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'"> 
     209                                                                                                                        <xsl:call-template name="listView"/> 
     210                                                                                                                </xsl:when> 
     211                                                                                                                <xsl:otherwise> 
     212                                                                                                                        <xsl:call-template name="monthView"/> 
     213                                                                                                                </xsl:otherwise> 
     214                                                                                                        </xsl:choose> 
     215                                                                                                </xsl:when> 
     216                                                                                                <xsl:otherwise> 
     217                                                                                                        <xsl:call-template name="yearView"/> 
     218                                                                                                </xsl:otherwise> 
     219                                                                                        </xsl:choose> 
     220                                                                                </xsl:otherwise> 
     221                                                                        </xsl:choose> 
     222                                                                </td> 
     223                                                        </tr> 
     224                                                </table> 
     225                                                <!-- footer --> 
     226                                                <xsl:call-template name="footer"/> 
     227                                        </xsl:otherwise> 
     228                                </xsl:choose> 
     229                        </body> 
     230                </html> 
     231        </xsl:template> 
     232 
     233        <!--==== HEAD SECTION  ====--> 
     234 
     235        <xsl:template name="headSection"> 
     236                <title>Bedework: Personal Calendar Client</title> 
     237                <meta name="robots" content="noindex,nofollow"/> 
     238                <link rel="stylesheet" href="{$resourcesRoot}/default/default/default.css"/> 
     239                <link rel="stylesheet" href="{$resourcesRoot}/default/default/subColors.css"/> 
     240                <link rel="stylesheet" type="text/css" media="print" href="{$resourcesRoot}/default/default/print.css" /> 
     241                <link rel="icon" type="image/ico" href="{$resourcesRoot}/resources/bedework.ico" /> 
     242                <xsl:if test="/bedework/page='addEvent' or 
     243                                                                        /bedework/page='addEventRef' or 
     244                                                                        /bedework/page='editEvent' or 
     245                                                                        /bedework/page='selectCalForEvent' or 
     246                                                                        /bedework/page='upload' or 
     247                                                                        /bedework/page='addSubByUri' or 
     248                                                                        /bedework/page='modPrefs'"> 
     249                        <script type="text/javascript" src="{$resourcesRoot}/resources/includes.js"></script> 
     250                </xsl:if> 
     251                <xsl:if test="/bedework/page='addEvent' or 
     252                                                                        /bedework/page='editEvent'"> 
     253                        <script type="text/javascript" src="{$resourcesRoot}/resources/bwClock.js"></script> 
     254                        <link rel="stylesheet" href="{$resourcesRoot}/resources/bwClock.css"/> 
     255                        <script type="text/javascript" src="{$resourcesRoot}/resources/dynCalendarWidget.js"></script> 
     256                        <link rel="stylesheet" href="{$resourcesRoot}/resources/dynCalendarWidget.css"/> 
     257                        <script type="text/javascript" src="{$resourcesRoot}/resources/browserSniffer.js"></script> 
     258                </xsl:if> 
     259        </xsl:template> 
     260 
     261        <!--==== HEADER TEMPLATES and NAVIGATION  ====--> 
     262 
     263        <xsl:template name="headBar"> 
     264                <table width="100%" border="0" cellpadding="0" cellspacing="0" id="logoTable"> 
     265                        <tr> 
     266                                <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> 
     267                                <td colspan="2" id="schoolLinksCell"> 
     268                                        <h2>Personal Calendar</h2> 
     269                                        <a href="{$publicCal}">Public Calendar</a> | 
     270                                        <a href="http://www.yourschoolhere.edu">School Home</a> | 
     271                                        <a href="http://www.bedework.org/">Other Link</a> | 
     272                                        <a href="http://helpdesk.rpi.edu/update.do?catcenterkey=51"> 
     273                                                Example Calendar Help 
     274                                        </a> 
     275                                </td> 
     276                        </tr> 
     277                </table> 
     278                <table id="curDateRangeTable"  cellspacing="0"> 
     279                        <td class="sideBarOpenCloseIcon"> 
     280                                <xsl:choose> 
     281                                        <xsl:when test="/bedework/appvar[key='sidebar']/value='closed'"> 
     282                                                <a href="?setappvar=sidebar(opened)"> 
     283                                                        <img alt="open sidebar" src="{$resourcesRoot}/resources/sideBarArrowOpen.gif" width="21" height="16" border="0" align="left"/> 
     284                                                </a> 
     285                                        </xsl:when> 
     286                                        <xsl:otherwise> 
     287                                                <a href="?setappvar=sidebar(closed)"> 
     288                                                        <img alt="close sidebar" src="{$resourcesRoot}/resources/sideBarArrowClose.gif" width="21" height="16" border="0" align="left"/> 
     289                                                </a> 
     290                                        </xsl:otherwise> 
     291                                </xsl:choose> 
     292                        </td> 
     293                        <td class="date"> 
     294                                <xsl:value-of select="/bedework/firstday/longdate"/> 
     295                                <xsl:if test="/bedework/periodname!='Day'"> 
     296                                        - 
     297                                        <xsl:value-of select="/bedework/lastday/longdate"/> 
     298                                </xsl:if> 
     299                        </td> 
     300                        <td class="rssPrint"> 
     301                                <a href="javascript:window.print()" title="print this view"> 
     302                                        <img alt="print this view" src="{$resourcesRoot}/resources/std-print-icon.gif" width="20" height="14" border="0"/> print 
     303                                </a> 
     304                                <a class="rss" href="{$setSelection}?setappvar=summaryMode(details)&amp;skinName=rss" title="RSS feed">RSS</a> 
     305                        </td> 
     306                </table> 
     307        </xsl:template> 
     308 
     309        <xsl:template name="sideBar"> 
     310                <h3> 
     311                        <img alt="manage views" src="{$resourcesRoot}/resources/glassFill-icon-menuButton.gif" width="12" height="11" border="0"/> views 
     312                </h3> 
     313                <ul id="myViews"> 
     314                        <xsl:choose> 
     315                                <xsl:when test="/bedework/views/view"> 
     316                                        <xsl:for-each select="/bedework/views/view"> 
     317                                                <xsl:variable name="viewName" select="name"/> 
     318                                                <xsl:choose> 
     319                                                        <xsl:when test="/bedework/selectionState/selectionType = 'view' 
     320                                                                                                                        and name=/bedework/selectionState/view/name"> 
     321                                                                <li class="selected"><a href="{$setSelection}?viewName={$viewName}"><xsl:value-of select="name"/></a></li> 
     322                                                        </xsl:when> 
     323                                                        <xsl:otherwise> 
     324                                                                <li><a href="{$setSelection}?viewName={$viewName}"><xsl:value-of select="name"/></a></li> 
     325                                                        </xsl:otherwise> 
     326                                                </xsl:choose> 
     327                                        </xsl:for-each> 
     328                                </xsl:when> 
     329                                <xsl:otherwise> 
     330                                        <li class="none">no views</li> 
     331                                </xsl:otherwise> 
     332                        </xsl:choose> 
     333                </ul> 
     334 
     335                <h3> 
     336                        <a href="{$calendar-fetch}"> 
     337                                <img alt="manage calendars" src="{$resourcesRoot}/resources/glassFill-icon-menuButton.gif" width="12" height="11" border="0"/> calendars 
     338                        </a> 
     339                </h3> 
     340                <ul class="calendarTree"> 
     341                        <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar" mode="myCalendars"/> 
     342                </ul> 
     343 
     344                <h3> 
     345                        <a href="{$subscriptions-fetch}" title="manage subscriptions"> 
     346                                <img alt="manage subscriptions" src="{$resourcesRoot}/resources/glassFill-icon-menuButton.gif" width="12" height="11" border="0"/> 
     347                                subscriptions 
     348                        </a> 
     349                </h3> 
     350                <ul class="calendarTree"> 
     351                        <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/></xsl:variable> 
     352                        <xsl:choose> 
     353                                <xsl:when test="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]"> 
     354                                        <xsl:apply-templates select="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]" mode="mySubscriptions"/> 
     355                                </xsl:when> 
     356                                <xsl:otherwise> 
     357                                        <li class="none">no subscriptions</li> 
     358                                </xsl:otherwise> 
     359                        </xsl:choose> 
     360                </ul> 
     361 
     362                <h3>options</h3> 
     363                <ul id="sideBarMenu"> 
     364                        <li><a href="{$manageLocations}">Manage Locations</a></li> 
     365                        <li><a href="{$prefs-fetchForUpdate}">Preferences</a></li> 
     366                </ul> 
     367        </xsl:template> 
     368 
     369        <xsl:template name="tabs"> 
     370                <xsl:choose> 
     371                        <xsl:when test="/bedework/page='eventscalendar' or /bedework/page='freeBusy'"> 
     372                                <xsl:variable name="navAction"> 
     373                                        <xsl:choose> 
     374                                                <xsl:when test="/bedework/page='freeBusy'"><xsl:value-of select="$freeBusy-fetch"/></xsl:when> 
     375                                                <xsl:otherwise><xsl:value-of select="$setViewPeriod"/>?b=de</xsl:otherwise> 
     376                                        </xsl:choose> 
     377                                </xsl:variable> 
     378                                <table border="0" cellpadding="0" cellspacing="0" id="tabsTable"> 
     379                                        <tr> 
     380                                                <td> 
     381                                                        <xsl:choose> 
     382                                                                <xsl:when test="/bedework/periodname='Day'"> 
     383                                                                        <a href="{$navAction}&amp;viewType=dayView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-day-on.gif" width="91" height="20" border="0" alt="DAY"/></a> 
     384                                                                </xsl:when> 
     385                                                                <xsl:otherwise> 
     386                                                                        <a href="{$navAction}&amp;viewType=dayView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-day-off.gif" width="91" height="20" border="0" alt="DAY"/></a> 
     387                                                                </xsl:otherwise> 
     388                                                        </xsl:choose> 
     389                                                </td> 
     390                                                <td> 
     391                                                        <xsl:choose> 
     392                                                                <xsl:when test="/bedework/periodname='Week' or /bedework/periodname=''"> 
     393                                                                        <a href="{$navAction}&amp;viewType=weekView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-week-on.gif" width="92" height="20" border="0" alt="WEEK"/></a> 
     394                                                                 </xsl:when> 
     395                                                                <xsl:otherwise> 
     396                                                                        <a href="{$navAction}&amp;viewType=weekView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-week-off.gif" width="92" height="20" border="0" alt="WEEK"/></a> 
     397                                                                 </xsl:otherwise> 
     398                                                        </xsl:choose> 
     399                                                </td> 
     400                                                <td> 
     401                                                        <xsl:choose> 
     402                                                                <xsl:when test="/bedework/periodname='Month'"> 
     403                                                                        <a href="{$navAction}&amp;viewType=monthView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-month-on.gif" width="90" height="20" border="0" alt="MONTH"/></a> 
     404                                                                </xsl:when> 
     405                                                                <xsl:otherwise> 
     406                                                                        <a href="{$navAction}&amp;viewType=monthView&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-tab-month-off.gif" width="90" height="20" border="0" alt="MONTH"/></a> 
     407                                                                </xsl:otherwise> 
     408                                                        </xsl:choose> 
     409                                                </td> 
     410                                                <td> 
     411                                                        <xsl:choose> 
     412                                                                <!-- don't allow switching to year for free busy view, so only use setViewPeriod action --> 
     413                                                                <xsl:when test="/bedework/periodname='Year'"> 
     414                                                                        <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> 
     415                                                                </xsl:when> 
     416                                                                <xsl:otherwise> 
     417                                                                        <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> 
     418                                                                </xsl:otherwise> 
     419                                                        </xsl:choose> 
     420                                                </td> 
     421                                                <td class="rightCell"> 
     422                                                        logged in as 
     423                                                        <xsl:text> </xsl:text> 
     424                                                        <strong><xsl:value-of select="/bedework/userid"/></strong> 
     425                                                        <xsl:text> </xsl:text> 
     426                                                        <span class="logout"><a href="{$setup}?logout=true">logout</a></span> 
     427                                                </td> 
     428                                        </tr> 
     429                                </table> 
     430                        </xsl:when> 
     431                        <xsl:otherwise> 
     432                                <table border="0" cellpadding="0" cellspacing="0" id="tabsTable"> 
     433                                        <tr> 
     434                                                <td> 
     435                                                        <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> 
     436                                                </td> 
     437                                                <td> 
     438                                                        <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> 
     439                                                </td> 
     440                                                <td> 
     441                                                        <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> 
     442                                                </td> 
     443                                                <td> 
     444                                                        <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> 
     445                                                </td> 
     446                                                <td class="rightCell"> 
     447                                                        logged in as 
     448                                                        <xsl:text> </xsl:text> 
     449                                                        <strong><xsl:value-of select="/bedework/userid"/></strong> 
     450                                                        <xsl:text> </xsl:text> 
     451                                                        <span class="logout"><a href="{$setup}?logout=true">logout</a></span> 
     452                                                </td> 
     453                                        </tr> 
     454                                </table> 
     455                        </xsl:otherwise> 
     456                </xsl:choose> 
     457        </xsl:template> 
     458 
     459        <xsl:template name="navigation"> 
     460                <xsl:variable name="navAction"> 
     461                        <xsl:choose> 
     462                                <xsl:when test="/bedework/page='freeBusy'"><xsl:value-of select="$freeBusy-fetch"/></xsl:when> 
     463                                <xsl:otherwise><xsl:value-of select="$setViewPeriod"/>?b=de</xsl:otherwise> 
     464                        </xsl:choose> 
     465                </xsl:variable> 
     466                <table border="0" cellpadding="0" cellspacing="0" id="navigationBarTable"> 
     467                        <tr> 
     468                                <td class="leftCell"> 
     469                                        <a href="{$navAction}&amp;date={$prevdate}"><img src="{$resourcesRoot}/resources/std-arrow-left.gif" alt="previous" width="13" height="16" class="prevImg" border="0"/></a> 
     470                                        <a href="{$navAction}&amp;date={$nextdate}"><img src="{$resourcesRoot}/resources/std-arrow-right.gif" alt="next" width="13" height="16" class="nextImg" border="0"/></a> 
     471                                        <xsl:choose> 
     472                                                <xsl:when test="/bedework/periodname='Year'"> 
     473                                                        <xsl:value-of select="substring(/bedework/firstday/date,1,4)"/> 
     474                                                </xsl:when> 
     475                                                <xsl:when test="/bedework/periodname='Month'"> 
     476                                                        <xsl:value-of select="/bedework/firstday/monthname"/>, <xsl:value-of select="substring(/bedework/firstday/date,1,4)"/> 
     477                                                </xsl:when> 
     478                                                <xsl:when test="/bedework/periodname='Week'"> 
     479                                                        Week of <xsl:value-of select="substring-after(/bedework/firstday/longdate,', ')"/> 
     480                                                </xsl:when> 
     481                                                <xsl:otherwise> 
     482                                                        <xsl:value-of select="/bedework/firstday/longdate"/> 
     483                                                </xsl:otherwise> 
     484                                        </xsl:choose> 
     485                                </td> 
     486                                <td class="todayButton"> 
     487                                        <a href="{$navAction}&amp;viewType=todayView&amp;date={$curdate}"> 
     488                                                <img src="{$resourcesRoot}/resources/std-button-today-off.gif" width="54" height="22" border="0" alt="Go to Today" align="left"/> 
     489                                        </a> 
     490                                </td> 
     491                                <td align="right" class="gotoForm"> 
     492                                        <form name="calForm" method="get" action="{$navAction}"> 
     493                                                 <table border="0" cellpadding="0" cellspacing="0"> 
     494                                                        <tr> 
     495                                                                <xsl:if test="/bedework/periodname!='Year'"> 
     496                                                                        <td> 
     497                                                                                <select name="viewStartDate.month"> 
     498                                                                                        <xsl:for-each select="/bedework/monthvalues/val"> 
     499                                                                                                <xsl:variable name="temp" select="."/> 
     500                                                                                                <xsl:variable name="pos" select="position()"/> 
     501                                                                                                <xsl:choose> 
     502                                                                                                        <xsl:when test="/bedework/monthvalues[start=$temp]"> 
     503                                                                                                                <option value="{$temp}" selected="selected"> 
     504                                                                                                                        <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/> 
     505                                                                                                                </option> 
     506                                                                                                        </xsl:when> 
     507                                                                                                        <xsl:otherwise> 
     508                                                                                                                <option value="{$temp}"> 
     509                                                                                                                        <xsl:value-of select="/bedework/monthlabels/val[position()=$pos]"/> 
     510                                                                                                                </option> 
     511                                                                                                        </xsl:otherwise> 
     512                                                                                                </xsl:choose> 
     513                                                                                        </xsl:for-each> 
     514                                                                                </select> 
     515                                                                        </td> 
     516                                                                        <xsl:if test="/bedework/periodname!='Month'"> 
     517                                                                                <td> 
     518                                                                                        <select name="viewStartDate.day"> 
     519                                                                                                <xsl:for-each select="/bedework/dayvalues/val"> 
     520                                                                                                        <xsl:variable name="temp" select="."/> 
     521                                                                                                        <xsl:variable name="pos" select="position()"/> 
     522                                                                                                        <xsl:choose> 
     523                                                                                                                <xsl:when test="/bedework/dayvalues[start=$temp]"> 
     524                                                                                                                        <option value="{$temp}" selected="selected"> 
     525                                                                                                                                <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/> 
     526                                                                                                                        </option> 
     527                                                                                                                </xsl:when> 
     528                                                                                                                <xsl:otherwise> 
     529                                                                                                                        <option value="{$temp}"> 
     530                                                                                                                                <xsl:value-of select="/bedework/daylabels/val[position()=$pos]"/> 
     531                                                                                                                        </option> 
     532                                                                                                                </xsl:otherwise> 
     533                                                                                                        </xsl:choose> 
     534                                                                                                </xsl:for-each> 
     535                                                                                        </select> 
     536                                                                                </td> 
     537                                                                        </xsl:if> 
     538                                                                </xsl:if> 
     539                                                                <td> 
     540                                                                        <xsl:variable name="temp" select="/bedework/yearvalues/start"/> 
     541                                                                        <input type="text" name="viewStartDate.year" maxlength="4" size="4" value="{$temp}"/> 
     542                                                                </td> 
     543                                                                <td> 
     544                                                                        <input name="submit" type="submit" value="go"/> 
     545                                                                </td> 
     546                                                        </tr> 
     547                                                </table> 
     548                                        </form> 
     549                                </td> 
     550                        </tr> 
     551                </table> 
     552        </xsl:template> 
     553 
     554        <xsl:template name="utilBar"> 
     555                <table width="100%" border="0" cellpadding="0" cellspacing="0" id="utilBarTable"> 
     556                         <tr> 
     557                                 <td class="leftCell"> 
     558                                         <xsl:choose> 
     559                                                 <xsl:when test="/bedework/periodname = 'day'"> 
     560                                                         <xsl:variable name="date" select="/bedework/firstday/date"/> 
     561                                                         <a href="{$initEvent}?startdate={$date}" title="add event"> 
     562                                                                        <img src="{$resourcesRoot}/resources/add2mycal-icon-small.gif" width="12" height="16" border="0" alt="add event"/> 
     563                                                                        add event 
     564                                                         </a> 
     565                                                 </xsl:when> 
     566                                                 <xsl:otherwise> 
     567                                                         <a href="{$initEvent}" title="add event"> 
     568                                                                        <img src="{$resourcesRoot}/resources/add2mycal-icon-small.gif" width="12" height="16" border="0" alt="add event"/> 
     569                                                                        add event 
     570                                                         </a> 
     571                                                 </xsl:otherwise> 
     572                                         </xsl:choose> 
     573                                         <a href="{$initUpload}" title="upload event"> 
     574                                                        <img src="{$resourcesRoot}/resources/std-icalUpload-icon-small.gif" width="12" height="16" border="0" alt="upload event"/> 
     575                                                        upload 
     576                                         </a> 
     577                                 </td> 
     578                                 <td class="rightCell"> 
     579 
     580                                         <!-- show free / busy --> 
     581                                         <xsl:choose> 
     582                                                 <xsl:when test="/bedework/periodname!='Year'"> 
     583                                                         <xsl:choose> 
     584                                                                 <xsl:when test="/bedework/page='freeBusy'"> 
     585                                                                         <a href="{$setViewPeriod}?date={$curdate}"><img src="{$resourcesRoot}/resources/std-button-events.gif" width="70" height="21" border="0" alt="show events"/></a> 
     586                                                                 </xsl:when> 
     587                                                                 <xsl:otherwise> 
     588                                                                         <a href="{$freeBusy-fetch}&amp;date={$curdate}"><img src="{$resourcesRoot}/resources/std-button-freebusy.gif" width="70" height="21" border="0" alt="show free/busy"/></a> 
     589                                                                 </xsl:otherwise> 
     590                                                         </xsl:choose> 
     591                                                 </xsl:when> 
     592                                                 <xsl:otherwise> 
     593                                                         <img src="{$resourcesRoot}/resources/std-button-freebusy-off.gif" width="70" height="21" border="0" alt="show free/busy"/> 
     594                                                 </xsl:otherwise> 
     595                                         </xsl:choose> 
     596 
     597                                         <!-- toggle list / calendar view --> 
     598                                         <xsl:choose> 
     599                                                 <xsl:when test="/bedework/periodname='Day'"> 
     600                                                         <img src="{$resourcesRoot}/resources/std-button-listview-off.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/> 
     601                                                 </xsl:when> 
     602                                                 <xsl:when test="/bedework/periodname='Year'"> 
     603                                                         <img src="{$resourcesRoot}/resources/std-button-calview-off.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/> 
     604                                                 </xsl:when> 
     605                                                 <xsl:when test="/bedework/periodname='Month'"> 
     606                                                         <xsl:choose> 
     607                                                                 <xsl:when test="/bedework/appvar[key='monthViewMode']/value='list'"> 
     608                                                                         <a href="{$setup}?setappvar=monthViewMode(cal)" title="toggle list/calendar view"> 
     609                                                                                 <img src="{$resourcesRoot}/resources/std-button-calview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/> 
     610                                                                         </a> 
     611                                                                 </xsl:when> 
     612                                                                 <xsl:otherwise> 
     613                                                                         <a href="{$setup}?setappvar=monthViewMode(list)" title="toggle list/calendar view"> 
     614                                                                                 <img src="{$resourcesRoot}/resources/std-button-listview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/> 
     615                                                                         </a> 
     616                                                                 </xsl:otherwise> 
     617                                                         </xsl:choose> 
     618                                                 </xsl:when> 
     619                                                 <xsl:otherwise> 
     620                                                         <xsl:choose> 
     621                                                                 <xsl:when test="/bedework/appvar[key='weekViewMode']/value='list'"> 
     622                                                                         <a href="{$setup}?setappvar=weekViewMode(cal)" title="toggle list/calendar view"> 
     623                                                                                 <img src="{$resourcesRoot}/resources/std-button-calview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/> 
     624                                                                         </a> 
     625                                                                 </xsl:when> 
     626                                                                 <xsl:otherwise> 
     627                                                                         <a href="{$setup}?setappvar=weekViewMode(list)" title="toggle list/calendar view"> 
     628                                                                                 <img src="{$resourcesRoot}/resources/std-button-listview.gif" width="46" height="21" border="0" alt="toggle list/calendar view"/> 
     629                                                                         </a> 
     630                                                                 </xsl:otherwise> 
     631                                                         </xsl:choose> 
     632                                                 </xsl:otherwise> 
     633                                         </xsl:choose> 
     634 
     635                                         <!-- summary / detailed mode toggle --> 
     636                                         <xsl:choose> 
     637                                                 <xsl:when test="/bedework/periodname='Year' or 
     638                                                                                                                        (/bedework/periodname='Month' and 
     639                                                                                                                        (/bedework/appvar[key='monthViewMode']/value='cal' or 
     640                                                                                                                         not(/bedework/appvar[key='monthViewMode']))) or 
     641                                                                                                                        (/bedework/periodname='Week' and 
     642                                                                                                                        (/bedework/appvar[key='weekViewMode']/value='cal' or 
     643                                                                                                                         not(/bedework/appvar[key='weekViewMode'])))"> 
     644                                                         <xsl:choose> 
     645                                                                 <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'"> 
     646                                                                         <img src="{$resourcesRoot}/resources/std-button-summary-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/> 
     647                                                                 </xsl:when> 
     648                                                                 <xsl:otherwise> 
     649                                                                         <img src="{$resourcesRoot}/resources/std-button-details-off.gif" width="62" height="21" border="0" alt="only summaries of events supported in this view"/> 
     650                                                                 </xsl:otherwise> 
     651                                                         </xsl:choose> 
     652                                                 </xsl:when> 
     653                                                 <xsl:otherwise> 
     654                                                         <xsl:choose> 
     655                                                                 <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'"> 
     656                                                                         <a href="{$setup}?setappvar=summaryMode(summary)" title="toggle summary/detailed view"> 
     657                                                                                 <img src="{$resourcesRoot}/resources/std-button-summary.gif" width="62" height="21" border="0" alt="toggle summary/detailed view"/> 
     658                                                                         </a> 
     659                                                                 </xsl:when> 
     660                                                                 <xsl:otherwise> 
     661                                                                         <a href="{$setup}?setappvar=summaryMode(details)" title="toggle summary/detailed view"> 
     662                                                                                 <img src="{$resourcesRoot}/resources/std-button-details.gif" width="62" height="21" border="0" alt="toggle summary/detailed view"/> 
     663                                                                         </a> 
     664                                                                 </xsl:otherwise> 
     665                                                         </xsl:choose> 
     666                                                 </xsl:otherwise> 
     667                                         </xsl:choose> 
     668 
     669                                         <!-- refresh button --> 
     670                                         <a href="setup.do"><img src="{$resourcesRoot}/resources/std-button-refresh.gif" width="70" height="21" border="0" alt="refresh view"/></a> 
     671                                 </td> 
     672                         </tr> 
     673                </table> 
     674        </xsl:template> 
     675 
     676        <!--==== LIST VIEW  (for day, week, and month) ====--> 
     677        <xsl:template name="listView"> 
     678                <table id="listTable" border="0" cellpadding="0" cellspacing="0"> 
     679                        <xsl:choose> 
     680                                <xsl:when test="not(/bedework/eventscalendar/year/month/week/day/event)"> 
     681                                        <tr> 
     682                                                <td class="noEventsCell"> 
     683                                                        No events to display. 
     684                                                </td> 
     685                                        </tr> 
     686                                </xsl:when> 
     687                                <xsl:otherwise> 
     688                                        <xsl:for-each select="/bedework/eventscalendar/year/month/week/day[event]"> 
     689                                                <xsl:if test="/bedework/periodname='Week' or /bedework/periodname='Month' or /bedework/periodname=''"> 
     690                                                        <tr> 
     691                                                                <td colspan="6" class="dateRow"> 
     692                                                                         <xsl:variable name="date" select="date"/> 
     693                                                                         <a href="{$initEvent}?startdate={$date}" class="listAdd"> 
     694                                                                                 add event 
     695                                                                         </a> 
     696                                                                         <a href="{$setViewPeriod}?viewType=dayView&amp;date={$date}"> 
     697                                                                                 <xsl:value-of select="name"/>, <xsl:value-of select="longdate"/> 
     698                                                                         </a> 
     699                                                                 </td> 
     700                                                        </tr> 
     701                                                </xsl:if> 
     702                                                <xsl:for-each select="event"> 
     703                                                        <xsl:variable name="id" select="id"/> 
     704                                                        <xsl:variable name="subscriptionId" select="subscription/id"/> 
     705                                                        <xsl:variable name="calPath" select="calendar/encodedPath"/> 
     706                                                        <xsl:variable name="guid" select="guid"/> 
     707                                                        <xsl:variable name="recurrenceId" select="recurrenceId"/> 
     708                                                        <tr> 
     709                                                                <xsl:variable name="dateRangeStyle"> 
     710                                                                        <xsl:choose> 
     711                                                                                <xsl:when test="start/shortdate = parent::day/shortdate"> 
     712                                                                                        <xsl:choose> 
     713                                                                                                <xsl:when test="start/allday = 'true'">dateRangeCrossDay</xsl:when> 
     714                                                                                                <xsl:when test="start/hour24 &lt; 6">dateRangeEarlyMorning</xsl:when> 
     715                                                                                                <xsl:when test="start/hour24 &lt; 12">dateRangeMorning</xsl:when> 
     716                                                                                                <xsl:when test="start/hour24 &lt; 18">dateRangeAfternoon</xsl:when> 
     717                                                                                                <xsl:otherwise>dateRangeEvening</xsl:otherwise> 
     718                                                                                        </xsl:choose> 
     719                                                                                </xsl:when> 
     720                                                                                <xsl:otherwise>dateRangeCrossDay</xsl:otherwise> 
     721                                                                        </xsl:choose> 
     722                                                                </xsl:variable> 
     723                                                                <xsl:choose> 
     724                                                                        <xsl:when test="start/allday = 'true' and 
     725                                                                                                                                        start/shortdate = end/shortdate"> 
     726                                                                                <td class="{$dateRangeStyle} center" colspan="3"> 
     727                                                                                        all day 
     728                                                                                </td> 
     729                                                                        </xsl:when> 
     730                                                                        <xsl:when test="start/shortdate = end/shortdate and 
     731                                                                                                                                        start/time = end/time"> 
     732                                                                                <td class="{$dateRangeStyle} center" colspan="3"> 
     733                                                                                        <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
     734                                                                                                <xsl:value-of select="start/time"/> 
     735                                                                                        </a> 
     736                                                                                </td> 
     737                                                                        </xsl:when> 
     738                                                                        <xsl:otherwise> 
     739                                                                                <td class="{$dateRangeStyle} right"> 
     740                                                                                        <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
     741                                                                                        <xsl:choose> 
     742                                                                                                <xsl:when test="start/allday = 'true' and 
     743                                                                                                                                                                parent::day/shortdate = start/shortdate"> 
     744                                                                                                        today 
     745                                                                                                </xsl:when> 
     746                                                                                                <xsl:when test="parent::day/shortdate != start/shortdate"> 
     747                                                                                                        <span class="littleArrow">&#171;</span>&#160; 
     748                                                                                                        <xsl:value-of select="start/month"/>/<xsl:value-of select="start/day"/> 
     749                                                                                                </xsl:when> 
     750                                                                                                <xsl:otherwise> 
     751                                                                                                        <xsl:value-of select="start/time"/> 
     752                                                                                                </xsl:otherwise> 
     753                                                                                        </xsl:choose> 
     754                                                                                        </a> 
     755                                                                                </td> 
     756                                                                                <td class="{$dateRangeStyle} center"> 
     757                                                                                        <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">-</a> 
     758                                                                                </td> 
     759                                                                                <td class="{$dateRangeStyle} left"> 
     760                                                                                        <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
     761                                                                                        <xsl:choose> 
     762                                                                                                <xsl:when test="end/allday = 'true' and 
     763                                                                                                                                                                parent::day/shortdate = end/shortdate"> 
     764                                                                                                        today 
     765                                                                                                </xsl:when> 
     766                                                                                                <xsl:when test="parent::day/shortdate != end/shortdate"> 
     767                                                                                                        <xsl:value-of select="end/month"/>/<xsl:value-of select="end/day"/> 
     768                                                                                                        &#160;<span class="littleArrow">&#187;</span> 
     769                                                                                                </xsl:when> 
     770                                                                                                <xsl:otherwise> 
     771                                                                                                        <xsl:value-of select="end/time"/> 
     772                                                                                                </xsl:otherwise> 
     773                                                                                        </xsl:choose> 
     774                                                                                        </a> 
     775                                                                                </td> 
     776                                                                        </xsl:otherwise> 
     777                                                                </xsl:choose> 
     778                                                                <xsl:variable name="descriptionClass"> 
     779                                                                        <xsl:choose> 
     780                                                                                <xsl:when test="status='CANCELLED'">description bwStatusCancelled</xsl:when> 
     781                                                                                <xsl:when test="status='TENTATIVE'">description bwStatusTentative</xsl:when> 
     782                                                                                <xsl:otherwise>description</xsl:otherwise> 
     783                                                                        </xsl:choose> 
     784                                                                </xsl:variable> 
     785                                                                <xsl:variable name="subStyle" select="subscription/style"/> 
     786                                                                <td class="{$descriptionClass} {$subStyle}"> 
     787                                                                        <xsl:if test="status='CANCELLED'"><strong>CANCELLED: </strong></xsl:if> 
     788                                                                        <xsl:choose> 
     789                                                                                <xsl:when test="/bedework/appvar[key='summaryMode']/value='details'"> 
     790                                                                                        <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
     791                                                                                                <strong> 
     792                                                                                                        <xsl:value-of select="summary"/>: 
     793                                                                                                </strong> 
     794                                                                                                <xsl:value-of select="description"/>&#160; 
     795                                                                                                <em> 
     796                                                                                                        <xsl:value-of select="location/address"/> 
     797                                                                                                        <xsl:if test="location/subaddress != ''"> 
     798                                                                                                                , <xsl:value-of select="location/subaddress"/> 
     799                                                                                                        </xsl:if>.&#160; 
     800                                                                                                        <xsl:if test="cost!=''"> 
     801                                                                                                                <xsl:value-of select="cost"/>.&#160; 
     802                                                                                                        </xsl:if> 
     803                                                                                                        <xsl:if test="sponsor/name!='none'"> 
     804                                                                                                                Contact: <xsl:value-of select="sponsor/name"/> 
     805                                                                                                        </xsl:if> 
     806                                                                                                </em> 
     807                                                                                        </a> 
     808                                                                                        <xsl:if test="link != ''"> 
     809                                                                                                <xsl:variable name="link" select="link"/> 
     810                                                                                                <a href="{$link}" class="moreLink"><xsl:value-of select="link"/></a> 
     811                                                                                        </xsl:if> 
     812                                                                                </xsl:when> 
     813                                                                                <xsl:otherwise> 
     814                                                                                        <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}"> 
     815                                                                                                <xsl:value-of select="summary"/> 
     816                                                                                                <xsl:if test="location/address != ''">, <xsl:value-of select="location/address"/></xsl:if> 
     817                                                                                        </a> 
     818                                                                                </xsl:otherwise> 
     819                                                                        </xsl:choose> 
     820                                                                </td> 
     821                                                                <td class="eventLinks"> 
     822                                                                        <xsl:call-template name="eventLinks"/> 
     823                                                                </td> 
     824                                                                <td class="smallIcon"> 
     825                                                                        <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
     826                                                                        <a href="{$export}?subid={$subscriptionId}&amp;calPath={$calPath}&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"> 
     827                                                                                <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"/> 
     828                                                                        </a> 
     829                                                                </td> 
     830                                                        </tr> 
     831                                                </xsl:for-each> 
     832                                        </xsl:for-each> 
     833                                </xsl:otherwise> 
     834                        </xsl:choose> 
     835                </table> 
     836        </xsl:template> 
     837 
     838        <xsl:template name="eventLinks"> 
     839                <xsl:variable name="subscriptionId" select="subscription/id"/> 
     840                <xsl:variable name="calPath" select="calendar/encodedPath"/> 
     841                <xsl:variable name="guid" select="guid"/> 
     842                <xsl:variable name="recurrenceId" select="recurrenceId"/> 
     843                <xsl:choose> 
     844                        <xsl:when test="isAnnotation"> 
     845                                <xsl:choose> 
     846                                        <xsl:when test="recurring=true"> 
     847                                                <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;confirmationid={$confId}">Remove All</a> 
     848                                        </xsl:when> 
     849                                        <xsl:otherwise> 
     850                                                <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">Remove</a> 
     851                                        </xsl:otherwise> 
     852                                </xsl:choose> 
     853                        </xsl:when> 
     854                        <xsl:when test="calendar/owner = /bedework/userid"> 
     855                                <a href="{$editEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}">Edit</a> | 
     856                                <xsl:choose> 
     857                                        <xsl:when test="recurring=true"> 
     858                                                <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">Delete All</a> 
     859                                        </xsl:when> 
     860                                        <xsl:otherwise> 
     861                                                <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}">Delete</a> 
     862                                        </xsl:otherwise> 
     863                                </xsl:choose> 
     864                        </xsl:when> 
     865                        <xsl:otherwise> 
     866                                <a href="{$subscriptions-fetch}">Subscription</a> 
     867                        </xsl:otherwise> 
     868                </xsl:choose> 
     869        </xsl:template> 
     870 
     871        <!--==== WEEK CALENDAR VIEW ====--> 
     872        <xsl:template name="weekView"> 
     873                <table id="monthCalendarTable" border="0" cellpadding="0" cellspacing="0"> 
     874                        <tr> 
     875                                <xsl:for-each select="/bedework/daynames/val"> 
     876                                        <th class="dayHeading"><xsl:value-of select="."/></th> 
     877                                </xsl:for-each> 
     878                        </tr> 
     879                        <tr> 
     880                                <xsl:for-each select="/bedework/eventscalendar/year/month/week/day"> 
     881                                        <xsl:variable name="dayPos" select="position()"/> 
     882                                        <xsl:if test="filler='false'"> 
     883                                                <td> 
     884                                                        <xsl:variable name="dayDate" select="date"/> 
     885                                                        <a href="{$initEvent}?startdate={$dayDate}" class="gridAdd" title="add event"> 
     886                                                                <img src="{$resourcesRoot}/resources/addEvent-forGrid-icon.gif" width="9" height="10" border="0" alt="add event"/> 
     887                                                        </a> 
     888                                                        <a href="{$setViewPeriod}?viewType=dayView&amp;date={$dayDate}" class="dayLink" title="go to day"> 
     889                                                                <xsl:value-of select="value"/> 
     890                                                        </a> 
     891                                                        <ul> 
     892                                                                <xsl:apply-templates select="event" mode="calendarLayout"> 
     893                                                                        <xsl:with-param name="dayPos" select="$dayPos"/> 
     894                                                                </xsl:apply-templates> 
     895                                                        </ul> 
     896                                                </td> 
     897                                        </xsl:if> 
     898                                </xsl:for-each> 
     899                        </tr> 
     900                </table> 
     901        </xsl:template> 
     902 
     903        <!--==== MONTH CALENDAR VIEW ====--> 
     904        <xsl:template name="monthView"> 
     905                <table id="monthCalendarTable" border="0" cellpadding="0" cellspacing="0"> 
     906                        <tr> 
     907                                <xsl:for-each select="/bedework/daynames/val"> 
     908                                        <th class="dayHeading"><xsl:value-of select="."/></th> 
     909                                </xsl:for-each> 
     910                        </tr> 
     911                        <xsl:for-each select="/bedework/eventscalendar/year/month/week"> 
     912                                <tr> 
     913                                        <xsl:for-each select="day"> 
     914                                                <xsl:variable name="dayPos" select="position()"/> 
     915                                                <xsl:choose> 
     916                                                        <xsl:when test="filler='true'"> 
     917                                                                <td class="filler">&#160;</td> 
     918                                                        </xsl:when> 
     919                                                        <xsl:otherwise> 
     920                                                                <td> 
     921                                                                        <xsl:variable name="dayDate" select="date"/> 
     922                                                                        <a href="{$initEvent}?startdate={$dayDate}" class="gridAdd" title="add event"> 
     923                                                                                <img src="{$resourcesRoot}/resources/addEvent-forGrid-icon.gif" width="10" height="10" border="0" alt="add event"/> 
     924                                                                        </a> 
     925                                                                        <a href="{$setViewPeriod}?viewType=dayView&amp;date={$dayDate}" class="dayLink" title="go to day"> 
     926                                                                                <xsl:value-of select="value"/> 
     927                                                                        </a> 
     928                                                                        <ul> 
     929                                                                                <xsl:apply-templates select="event" mode="calendarLayout"> 
     930                                                                                        <xsl:with-param name="dayPos" select="$dayPos"/> 
     931                                                                                </xsl:apply-templates> 
     932                                                                        </ul> 
     933                                                                </td> 
     934                                                        </xsl:otherwise> 
     935                                                </xsl:choose> 
     936                                        </xsl:for-each> 
     937                                </tr> 
     938                        </xsl:for-each> 
     939                </table> 
     940        </xsl:template> 
     941 
     942        <xsl:template match="event" mode="calendarLayout"> 
     943                <xsl:param name="dayPos"/> 
     944                <xsl:variable name="subscriptionId" select="subscription/id"/> 
     945                <xsl:variable name="calPath" select="calendar/encodedPath"/> 
     946                <xsl:variable name="guid" select="guid"/> 
     947                <xsl:variable name="recurrenceId" select="recurrenceId"/> 
     948                <xsl:variable name="eventClass"> 
     949                        <xsl:choose> 
     950                                <!-- Special styles for the month grid --> 
     951                                <xsl:when test="status='CANCELLED'">eventCancelled</xsl:when> 
     952                                <xsl:when test="status='TENTATIVE'">eventTentative</xsl:when> 
     953                                <!-- Otherwise: Alternating colors for all standard events --> 
     954                                <xsl:when test="position() mod 2 = 1">eventLinkA</xsl:when> 
     955                                <xsl:otherwise>eventLinkB</xsl:otherwise> 
     956                        </xsl:choose> 
     957                </xsl:variable> 
     958                <!-- User defined subscription styles. 
     959                                 These are set in the add/modify subscription forms which 
     960                                 rely (in this stylesheet) on subColors.css; if present, these 
     961                                 override the background-color set by eventClass. User styles should 
     962                                 not be used for cancelled events (tentative is ok). --> 
     963                <xsl:variable name="subColor"> 
     964                        <xsl:choose> 
     965                                 <xsl:when test="status != 'CANCELLED' and 
     966                                                                                                subscription/style != '' and 
     967                                                                                                subscription/style != 'default'"><xsl:value-of select="subscription/style"/></xsl:when> 
     968                                <xsl:otherwise></xsl:otherwise> 
     969                        </xsl:choose> 
     970                </xsl:variable> 
     971                <li> 
     972                        <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}" class="event {$eventClass} {$subColor}"> 
     973                                <xsl:if test="status='CANCELLED'">CANCELLED: </xsl:if> 
     974                                <xsl:value-of select="summary"/> 
     975                                <xsl:variable name="eventTipClass"> 
     976                                        <xsl:choose> 
     977                                                <xsl:when test="$dayPos &gt; 5">eventTipReverse</xsl:when> 
     978                                                <xsl:otherwise>eventTip</xsl:otherwise> 
     979                                        </xsl:choose> 
     980                                </xsl:variable> 
     981                                <span class="{$eventTipClass}"> 
     982                                        <xsl:if test="status='CANCELLED'"><span class="eventTipStatusCancelled">CANCELLED</span></xsl:if> 
     983                                        <xsl:if test="status='TENTATIVE'"><span class="eventTipStatusTentative">TENTATIVE</span></xsl:if> 
     984                                        <strong><xsl:value-of select="summary"/></strong><br/> 
     985                                        Time: 
     986                                        <xsl:choose> 
     987                                                <xsl:when test="start/allday = 'false'"> 
     988                                                        <xsl:value-of select="start/time"/> 
     989                                                        <xsl:if test="start/time != end/time"> 
     990                                                                - <xsl:value-of select="end/time"/> 
     991                                                        </xsl:if> 
     992                                                </xsl:when> 
     993                                                <xsl:otherwise> 
     994                                                        all day 
     995                                                </xsl:otherwise> 
     996                                        </xsl:choose><br/> 
     997                                        <xsl:if test="location/address"> 
     998                                                Location: <xsl:value-of select="location/address"/><br/> 
     999                                        </xsl:if> 
     1000                                        Calendar: 
     1001                                                <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
     1002                                                <xsl:choose> 
     1003                                                        <xsl:when test="contains(calendar/path,$userPath)"> 
     1004                                                                <xsl:value-of select="substring-after(calendar/path,$userPath)"/> 
     1005                                                        </xsl:when> 
     1006                                                        <xsl:otherwise> 
     1007                                                                <xsl:value-of select="calendar/path"/> 
     1008                                                        </xsl:otherwise> 
     1009                                                </xsl:choose><br/> 
     1010                                        Type: 
     1011                                        <xsl:choose> 
     1012                                                <xsl:when test="isAnnotation"> 
     1013                                                        public event 
     1014                                                </xsl:when> 
     1015                                                <xsl:when test="calendar/owner = /bedework/userid"> 
     1016                                                        personal event, editable 
     1017                                                </xsl:when> 
     1018                                                <xsl:otherwise> 
     1019                                                        subscription 
     1020                                                </xsl:otherwise> 
     1021                                        </xsl:choose> 
     1022                                </span> 
     1023                        </a> 
     1024                </li> 
     1025        </xsl:template> 
     1026 
     1027        <!--==== YEAR VIEW ====--> 
     1028        <xsl:template name="yearView"> 
     1029                <table id="yearCalendarTable" border="0" cellpadding="0" cellspacing="0"> 
     1030                        <tr> 
     1031                                <xsl:apply-templates select="/bedework/eventscalendar/year/month[position() &lt;= 3]"/> 
     1032                        </tr> 
     1033                        <tr> 
     1034                                <xsl:apply-templates select="/bedework/eventscalendar/year/month[(position() &gt; 3) and (position() &lt;= 6)]"/> 
     1035                        </tr> 
     1036                        <tr> 
     1037                                <xsl:apply-templates select="/bedework/eventscalendar/year/month[(position() &gt; 6) and (position() &lt;= 9)]"/> 
     1038                        </tr> 
     1039                        <tr> 
     1040                                <xsl:apply-templates select="/bedework/eventscalendar/year/month[position() &gt; 9]"/> 
     1041                        </tr> 
     1042                </table> 
     1043        </xsl:template> 
     1044 
     1045        <!-- year view month tables --> 
     1046        <xsl:template match="month"> 
     1047                <td> 
     1048                        <table class="yearViewMonthTable" border="0" cellpadding="0" cellspacing="0"> 
     1049                                <tr> 
     1050                                        <td colspan="8" class="monthName"> 
     1051                                                <xsl:variable name="firstDayOfMonth" select="week/day/date"/> 
     1052                                                <a href="{$setViewPeriod}?viewType=monthView&amp;date={$firstDayOfMonth}"> 
     1053                                                        <xsl:value-of select="longname"/> 
     1054                                                </a> 
     1055                                        </td> 
     1056                                </tr> 
     1057                                <tr> 
     1058                                        <th>&#160;</th> 
     1059                                        <xsl:for-each select="/bedework/shortdaynames/val"> 
     1060                                                <th><xsl:value-of select="."/></th> 
     1061                                        </xsl:for-each> 
     1062                                </tr> 
     1063                                <xsl:for-each select="week"> 
     1064                                        <tr> 
     1065                                                <td class="weekCell"> 
     1066                                                        <xsl:variable name="firstDayOfWeek" select="day/date"/> 
     1067                                                        <a href="{$setViewPeriod}?viewType=weekView&amp;date={$firstDayOfWeek}"> 
     1068                                                                <xsl:value-of select="value"/> 
     1069                                                        </a> 
     1070                                                </td> 
     1071                                                <xsl:for-each select="day"> 
     1072                                                        <xsl:choose> 
     1073                                                                <xsl:when test="filler='true'"> 
     1074                                                                        <td class="filler">&#160;</td> 
     1075                                                                </xsl:when> 
     1076                                                                <xsl:otherwise> 
     1077                                                                        <td> 
     1078                                                                                <xsl:variable name="dayDate" select="date"/> 
     1079                                                                                <a href="{$setViewPeriod}?viewType=dayView&amp;date={$dayDate}"> 
     1080                                                                                        <xsl:value-of select="value"/> 
     1081                                                                                </a> 
     1082                                                                        </td> 
     1083                                                                </xsl:otherwise> 
     1084                                                        </xsl:choose> 
     1085                                                </xsl:for-each> 
     1086                                        </tr> 
     1087                                </xsl:for-each> 
     1088                        </table> 
     1089                </td> 
     1090        </xsl:template> 
     1091 
     1092        <!--==== SINGLE EVENT ====--> 
     1093        <xsl:template match="event"> 
     1094                <xsl:variable name="subscriptionId" select="subscription/id"/> 
     1095                <xsl:variable name="calPath" select="calendar/encodedPath"/> 
     1096                <xsl:variable name="guid" select="guid"/> 
     1097                <xsl:variable name="recurrenceId" select="recurrenceId"/> 
     1098                <xsl:variable name="statusClass"> 
     1099                        <xsl:choose> 
     1100                                <xsl:when test="status='CANCELLED'">bwStatusCancelled</xsl:when> 
     1101                                <xsl:when test="status='TENTATIVE'">bwStatusTentative</xsl:when> 
     1102                                <xsl:otherwise>bwStatusConfirmed</xsl:otherwise> 
     1103                        </xsl:choose> 
     1104                </xsl:variable> 
     1105                <h2 class="{$statusClass}"> 
     1106                        <xsl:if test="status='CANCELLED'">CANCELLED: </xsl:if> 
     1107                        <xsl:choose> 
     1108                                <xsl:when test="link != ''"> 
     1109                                        <xsl:variable name="link" select="link"/> 
     1110                                        <a href="{$link}"> 
     1111                                                <xsl:value-of select="summary"/> 
     1112                                        </a> 
     1113                                </xsl:when> 
     1114                                <xsl:otherwise> 
     1115                                        <xsl:value-of select="summary"/> 
     1116                                </xsl:otherwise> 
     1117                        </xsl:choose> 
     1118                </h2> 
     1119                <table class="common" cellspacing="0"> 
     1120                        <tr> 
     1121                                <th colspan="2" class="commonHeader"> 
     1122                                        <div id="eventActions"> 
     1123                                                <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
     1124                                                <a href="{$export}?subid={$subscriptionId}&amp;calPath={$calPath}&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"> 
     1125                                                        <img src="{$resourcesRoot}/resources/std-ical_iconDkGray.gif" width="12" height="13" border="0" alt="Download event as ical - for Outlook, PDAs, iCal, and other desktop calendars"/> 
     1126                                                        Download 
     1127                                                </a> | 
     1128                                                <xsl:choose> 
     1129                                                        <xsl:when test="isAnnotation"> 
     1130                                                                <xsl:choose> 
     1131                                                                        <xsl:when test="recurring=true"> 
     1132                                                                                <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;confirmationid={$confId}"> 
     1133                                                                                        <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
     1134                                                                                        Remove All (recurring) 
     1135                                                                                </a> 
     1136                                                                        </xsl:when> 
     1137                                                                        <xsl:otherwise> 
     1138                                                                                <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}"> 
     1139                                                                                        <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
     1140                                                                                        Remove 
     1141                                                                                </a> 
     1142                                                                        </xsl:otherwise> 
     1143                                                                </xsl:choose> 
     1144                                                        </xsl:when> 
     1145                                                        <xsl:when test="currentAccess/current-user-privilege-set/privilege/write-content"> 
     1146                                                                <a href="{$editEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}"> 
     1147                                                                        <img src="{$resourcesRoot}/resources/std-ical_iconEditDkGray.gif" width="12" height="13" border="0" alt="edit"/> 
     1148                                                                        Edit 
     1149                                                                </a> 
     1150                                                        </xsl:when> 
     1151                                                        <xsl:otherwise> 
     1152                                                                <a href="{$subscriptions-fetch}"> 
     1153                                                                        <img src="{$resourcesRoot}/resources/std-ical_iconSubsDkGray.gif" width="12" height="13" border="0" alt="edit"/> 
     1154                                                                        Manage Subscriptions 
     1155                                                                </a> 
     1156                                                        </xsl:otherwise> 
     1157                                                </xsl:choose> 
     1158                                                <xsl:if test="currentAccess/current-user-privilege-set/privilege/unbind"> 
     1159                                                         | 
     1160                                                        <xsl:choose> 
     1161                                                                <xsl:when test="recurring=true"> 
     1162                                                                        <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;confirmationid={$confId}"> 
     1163                                                                                <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
     1164                                                                                Delete All (recurring) 
     1165                                                                        </a> 
     1166                                                                </xsl:when> 
     1167                                                                <xsl:otherwise> 
     1168                                                                        <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}"> 
     1169                                                                                <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
     1170                                                                                Delete 
     1171                                                                        </a> 
     1172                                                                </xsl:otherwise> 
     1173                                                        </xsl:choose> 
     1174                                                </xsl:if> 
     1175                                        </div> 
     1176                                        <xsl:choose> 
     1177                                                <xsl:when test="calendar/owner = /bedework/userid"> 
     1178                                                        Personal Event 
     1179                                                </xsl:when> 
     1180                                                <xsl:when test="starts-with(calendar/path,'/user/')"> 
     1181                                                        User Event (<xsl:value-of select="calendar/owner"/>) 
     1182                                                </xsl:when> 
     1183                                                <xsl:when test="isAnnotation"> 
     1184                                                        Public Event 
     1185                                                </xsl:when> 
     1186                                                <xsl:otherwise> 
     1187                                                        <xsl:choose> 
     1188                                                                <xsl:when test="starts-with(calendar/path,'/public/')"> 
     1189                                                                        Public Event from Subscription 
     1190                                                                </xsl:when> 
     1191                                                                <xsl:otherwise> 
     1192                                                                        Event from Subscription 
     1193                                                                </xsl:otherwise> 
     1194                                                        </xsl:choose> 
     1195                                                </xsl:otherwise> 
     1196                                        </xsl:choose> 
     1197                                </th> 
     1198                        </tr> 
     1199                        <tr> 
     1200                                <td class="fieldname">When:</td> 
     1201                                <td class="fieldval"> 
     1202                                        <xsl:value-of select="start/dayname"/>, <xsl:value-of select="start/longdate"/><xsl:text> </xsl:text> 
     1203                                        <xsl:if test="start/allday = 'false'"> 
     1204                                                <span class="time"><xsl:value-of select="start/time"/></span> 
     1205                                        </xsl:if> 
     1206                                        <xsl:if test="(end/longdate != start/longdate) or 
     1207                                                                                                ((end/longdate = start/longdate) and (end/time != start/time))"> - </xsl:if> 
     1208                                        <xsl:if test="end/longdate != start/longdate"> 
     1209                                                <xsl:value-of select="substring(end/dayname,1,3)"/>, <xsl:value-of select="end/longdate"/><xsl:text> </xsl:text> 
     1210                                        </xsl:if> 
     1211                                        <xsl:choose> 
     1212                                                <xsl:when test="start/allday = 'true'"> 
     1213                                                        <span class="time"><em>(all day)</em></span> 
     1214                                                </xsl:when> 
     1215                                                <xsl:when test="end/longdate != start/longdate"> 
     1216                                                        <span class="time"><xsl:value-of select="end/time"/></span> 
     1217                                                </xsl:when> 
     1218                                                <xsl:when test="end/time != start/time"> 
     1219                                                        <span class="time"><xsl:value-of select="end/time"/></span> 
     1220                                                </xsl:when> 
     1221                                        </xsl:choose> 
     1222                                </td> 
     1223                                <!--<th class="icon" rowspan="2"> 
     1224                                        <xsl:variable name="eventIcalName" select="concat($guid,'.ics')"/> 
     1225                                        <a href="{$export}?subid={$subscriptionId}&amp;calPath={$calPath}&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"> 
     1226                                                <img src="{$resourcesRoot}/resources/std-ical-icon.gif" width="20" height="26" border="0" align="left" alt="Download this event"/> 
     1227                                        </a> 
     1228                                </th>--> 
     1229                        </tr> 
     1230                        <tr> 
     1231                                <td class="fieldname">Where:</td> 
     1232                                <td class="fieldval"> 
     1233                                        <xsl:choose> 
     1234                                                <xsl:when test="location/link=''"> 
     1235                                                        <xsl:value-of select="location/address"/> 
     1236                                                </xsl:when> 
     1237                                                <xsl:otherwise> 
     1238                                                        <xsl:variable name="locationLink" select="location/link"/> 
     1239                                                        <a href="{$locationLink}"> 
     1240                                                                <xsl:value-of select="location/address"/> 
     1241                                                        </a> 
     1242                                                </xsl:otherwise> 
     1243                                        </xsl:choose> 
     1244                                        <xsl:if test="location/subaddress!=''"> 
     1245                                                <br/><xsl:value-of select="location/subaddress"/> 
     1246                                        </xsl:if> 
     1247                                </td> 
     1248                        </tr> 
     1249                        <tr> 
     1250                                <td class="fieldname">Description:</td> 
     1251                                <td class="fieldval"> 
     1252                                        <xsl:call-template name="replace"> 
     1253                                                <xsl:with-param name="string" select="description"/> 
     1254                                                <xsl:with-param name="pattern" select="'&#xA;'"/> 
     1255                                                <xsl:with-param name="replacement"><br/></xsl:with-param> 
     1256                                        </xsl:call-template> 
     1257                                </td> 
     1258                        </tr> 
     1259                        <xsl:if test="status !='' and status != 'CONFIRMED'"> 
     1260                                <tr> 
     1261                                        <td class="fieldname">Status:</td> 
     1262                                        <td class="fieldval"> 
     1263                                                <xsl:value-of select="status"/> 
     1264                                        </td> 
     1265                                </tr> 
     1266                        </xsl:if> 
     1267                        <xsl:if test="organizer"> 
     1268                                <tr> 
     1269                                        <td class="fieldname">Organizer:</td> 
     1270                                        <xsl:variable name="organizerUri" select="organizer/organizerUri"/> 
     1271                                        <td class="fieldval"> 
     1272                                                <strong> 
     1273                                                        <a href="{$organizerUri}"> 
     1274                                                                <xsl:value-of select="organizer/cn"/> 
     1275                                                        </a> 
     1276                                                </strong> 
     1277                                        </td> 
     1278                                </tr> 
     1279                        </xsl:if> 
     1280                        <xsl:if test="attendee"> 
     1281                                <tr> 
     1282                                        <td class="fieldname">Attendees:</td> 
     1283                                        <td class="fieldval"> 
     1284                                                <table id="attendees" cellspacing="0"> 
     1285                                                        <tr> 
     1286                                                                <th>role</th> 
     1287                                                                <th>status</th> 
     1288                                                                <th>attendee</th> 
     1289                                                        </tr> 
     1290                                                        <xsl:for-each select="attendee"> 
     1291                                                                <xsl:sort select="cn" order="ascending" case-order="upper-first"/> 
     1292                                                                <tr> 
     1293                                                                        <td class="role"> 
     1294                                                                                <xsl:value-of select="role"/> 
     1295                                                                        </td> 
     1296                                                                        <td class="status"> 
     1297                                                                                <xsl:value-of select="partstat"/> 
     1298                                                                        </td> 
     1299                                                                        <td> 
     1300                                                                                <xsl:variable name="attendeeUri" select="attendeeUri"/> 
     1301                                                                                <a href="{$attendeeUri}"><xsl:value-of select="cn"/></a> 
     1302                                                                        </td> 
     1303                                                                </tr> 
     1304                                                        </xsl:for-each> 
     1305                                                </table> 
     1306                                        </td> 
     1307                                </tr> 
     1308                        </xsl:if> 
     1309                        <xsl:if test="cost!=''"> 
     1310                                <tr> 
     1311                                        <td class="fieldname">Cost:</td> 
     1312                                        <td class="fieldval"><xsl:value-of select="cost"/></td> 
     1313                                </tr> 
     1314                        </xsl:if> 
     1315                        <xsl:if test="link != ''"> 
     1316                                <tr> 
     1317                                        <td class="fieldname">See:</td> 
     1318                                        <td class="fieldval"> 
     1319                                                <xsl:variable name="link" select="link"/> 
     1320                                                <a href="{$link}"><xsl:value-of select="link"/></a> 
     1321                                        </td> 
     1322                                </tr> 
     1323                        </xsl:if> 
     1324                        <xsl:if test="sponsor/name!='none'"> 
     1325                                <tr> 
     1326                                        <td class="fieldname">Contact:</td> 
     1327                                        <td class="fieldval"> 
     1328                                                <xsl:choose> 
     1329                                                        <xsl:when test="sponsor/link=''"> 
     1330                                                                <xsl:value-of select="sponsor/name"/> 
     1331                                                        </xsl:when> 
     1332                                                        <xsl:otherwise> 
     1333                                                                <xsl:variable name="sponsorLink" select="sponsor/link"/> 
     1334                                                                <a href="{$sponsorLink}"> 
     1335                                                                        <xsl:value-of select="sponsor/name"/> 
     1336                                                                </a> 
     1337                                                        </xsl:otherwise> 
     1338                                                </xsl:choose> 
     1339                                                <xsl:if test="sponsor/phone!=''"> 
     1340                                                        <br /><xsl:value-of select="sponsor/phone"/> 
     1341                                                </xsl:if> 
     1342                                                <xsl:if test="sponsor/email!=''"> 
     1343                                                        <br /> 
     1344                                                        <xsl:variable name="email" select="sponsor/email"/> 
     1345                                                        <xsl:variable name="subject" select="summary"/> 
     1346                                                        <a href="mailto:{$email}?subject={$subject}"> 
     1347                                                                <xsl:value-of select="sponsor/email"/> 
     1348                                                        </a> 
     1349                                                </xsl:if> 
     1350                                        </td> 
     1351                                </tr> 
     1352                        </xsl:if> 
     1353                        <xsl:if test="calendar/path!=''"> 
     1354                                <tr> 
     1355                                        <td class="fieldname">Calendar:</td> 
     1356                                        <td class="fieldval"> 
     1357                                                <xsl:variable name="calUrl" select="calendar/encodedPath"/> 
     1358                                                <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
     1359                                                <a href="{$setSelection}?calUrl={$calUrl}"> 
     1360                                                        <xsl:choose> 
     1361                                                                <xsl:when test="contains(calendar/path,$userPath)"> 
     1362                                                                        <xsl:value-of select="substring-after(calendar/path,$userPath)"/> 
     1363                                                                </xsl:when> 
     1364                                                                <xsl:otherwise> 
     1365                                                                        <xsl:value-of select="calendar/path"/> 
     1366                                                                </xsl:otherwise> 
     1367                                                        </xsl:choose> 
     1368                                                </a> 
     1369                                        </td> 
     1370                                </tr> 
     1371                        </xsl:if> 
     1372                        <tr> 
     1373                                <td class="fieldname filler">&#160;</td> 
     1374                                <td class="fieldval">&#160;</td> 
     1375                        </tr> 
     1376                </table> 
     1377        </xsl:template> 
    13771378 
    13781379 <!--==== ADD EVENT ====--> 
    1379   <xsl:template name="addEvent"> 
    1380   <!-- The name "eventForm" is referenced by several javascript functions. Do not 
    1381     change it without modifying includes.js --> 
    1382     <form name="eventForm" method="post" action="{$addEventUsingPage}" id="standardForm"> 
    1383       <input type="hidden" name="confirmationid" value="{$confId}"/> 
    1384       <input type="hidden" name="endType" value="date"/> 
    1385       <h2>Add Event</h2> 
    1386       <table class="common" cellspacing="0"> 
    1387         <tr> 
    1388           <td class="fieldname"> 
    1389             Title: 
    1390           </td> 
    1391           <td class="fieldval"> 
    1392             <xsl:variable name="title" select="/bedework/formElements/form/title/input/@value"/> 
    1393             <input type="text" name="newEvent.summary" size="80" value="{$title}"/> 
    1394           </td> 
    1395         </tr> 
    1396         <tr> 
    1397           <td class="fieldname"> 
    1398             Calendar: 
    1399           </td> 
    1400           <td class="fieldval"> 
    1401             <xsl:variable name="newCalPath" select="/bedework/formElements/form/calendar/path"/> 
    1402             <input type="hidden" name="newCalPath" value="{$newCalPath}"/> 
    1403             <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
    1404             <span id="bwEventCalDisplay"> 
    1405               <xsl:choose> 
    1406                 <xsl:when test="contains(/bedework/formElements/form/calendar/path,$userPath)"> 
    1407                   <xsl:value-of select="substring-after(/bedework/formElements/form/calendar/path,$userPath)"/> 
    1408                 </xsl:when> 
    1409                 <xsl:otherwise> 
    1410                   <xsl:value-of select="/bedework/formElements/form/calendar/path"/> 
    1411                 </xsl:otherwise> 
    1412               </xsl:choose> 
    1413             </span> 
    1414             <a href="javascript:launchCalSelectWindow('{$event-selectCalForEvent}')" class="small">[change]</a> 
    1415           </td> 
    1416         </tr> 
    1417         <tr> 
    1418           <td class="fieldname"> 
    1419             Date &amp; Time: 
    1420           </td> 
    1421           <td class="fieldval"> 
    1422             <!-- Set the timefields class for the first load of the page; 
    1423                  subsequent changes will take place using javascript without a 
    1424                  page reload. --> 
    1425             <xsl:variable name="timeFieldsClass"> 
    1426               <xsl:choose> 
    1427                 <xsl:when test="/bedework/formElements/form/allDay/input/@checked='checked'">invisible</xsl:when> 
    1428                 <xsl:otherwise>timeFields</xsl:otherwise> 
    1429               </xsl:choose> 
    1430             </xsl:variable> 
    1431             <xsl:choose> 
    1432               <xsl:when test="/bedework/formElements/form/allDay/input/@checked='checked'"> 
    1433                 <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="on" checked="checked"/> 
    1434                 <input type="hidden" name="eventStartDate.dateOnly" value="on" id="allDayStartDateField"/> 
    1435                 <input type="hidden" name="eventEndDate.dateOnly" value="on" id="allDayEndDateField"/> 
    1436               </xsl:when> 
    1437               <xsl:otherwise> 
    1438                 <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="off"/> 
    1439                 <input type="hidden" name="eventStartDate.dateOnly" value="off" id="allDayStartDateField"/> 
    1440                 <input type="hidden" name="eventEndDate.dateOnly" value="off" id="allDayEndDateField"/> 
    1441               </xsl:otherwise> 
    1442             </xsl:choose> 
    1443             all day event<br/> 
    1444             <div class="dateStartEndBox"> 
    1445               <strong>Start:</strong> 
    1446               <div class="dateFields"> 
    1447                 <span class="startDateLabel">Date </span> 
    1448                 <xsl:copy-of select="/bedework/formElements/form/start/month/*"/> 
    1449                 <xsl:copy-of select="/bedework/formElements/form/start/day/*"/> 
    1450                 <xsl:choose> 
    1451                   <xsl:when test="/bedework/creating = 'true'"> 
    1452                     <xsl:copy-of select="/bedework/formElements/form/start/year/*"/> 
    1453                   </xsl:when> 
    1454                   <xsl:otherwise> 
    1455                     <xsl:copy-of select="/bedework/formElements/form/start/yearText/*"/> 
    1456                   </xsl:otherwise> 
    1457                 </xsl:choose> 
    1458               </div> 
    1459               <script language="JavaScript" type="text/javascript"> 
    1460               <xsl:comment> 
    1461                 startDateDynCalWidget = new dynCalendar('startDateDynCalWidget', <xsl:value-of select="number(/bedework/formElements/form/start/yearText/input/@value)"/>, <xsl:value-of select="number(/bedework/formElements/form/start/month/select/option[@selected='selected']/@value)-1"/>, <xsl:value-of select="number(/bedework/formElements/form/start/day/select/option[@selected='selected']/@value)"/>, 'startDateCalWidgetCallback'); 
    1462               </xsl:comment> 
    1463               </script> 
    1464               <!--<img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>--> 
    1465               <div class="{$timeFieldsClass}" id="startTimeFields"> 
    1466                 <span id="calWidgetStartTimeHider" class="show"> 
    1467                   <xsl:copy-of select="/bedework/formElements/form/start/hour/*"/> 
    1468                   <xsl:copy-of select="/bedework/formElements/form/start/minute/*"/> 
    1469                   <xsl:if test="/bedework/formElements/form/start/ampm"> 
    1470                     <xsl:copy-of select="/bedework/formElements/form/start/ampm/*"/> 
    1471                   </xsl:if> 
    1472                   <xsl:text> </xsl:text> 
    1473                   <a href="javascript:bwClockLaunch('eventStartDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/></a> 
    1474                 </span> 
    1475               </div> 
    1476             </div> 
    1477             <div class="dateStartEndBox"> 
    1478               <strong>End:</strong> 
    1479               <xsl:choose> 
    1480                 <xsl:when test="/bedework/formElements/form/end/type='E'"> 
    1481                   <input type="radio" name="eventEndType" value="E" checked="checked" onClick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/> 
    1482                 </xsl:when> 
    1483                 <xsl:otherwise> 
    1484                   <input type="radio" name="eventEndType" value="E" onClick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/> 
    1485                 </xsl:otherwise> 
    1486               </xsl:choose> 
    1487               Date 
    1488               <xsl:variable name="endDateTimeClass"> 
    1489                 <xsl:choose> 
    1490                   <xsl:when test="/bedework/formElements/form/end/type='E'">shown</xsl:when> 
    1491                   <xsl:otherwise>invisible</xsl:otherwise> 
    1492                 </xsl:choose> 
    1493               </xsl:variable> 
    1494               <div class="{$endDateTimeClass}" id="endDateTime"> 
    1495                 <div class="dateFields"> 
    1496                   <xsl:copy-of select="/bedework/formElements/form/end/dateTime/month/*"/> 
    1497                   <xsl:copy-of select="/bedework/formElements/form/end/dateTime/day/*"/> 
    1498                   <xsl:choose> 
    1499                     <xsl:when test="/bedework/creating = 'true'"> 
    1500                       <xsl:copy-of select="/bedework/formElements/form/end/dateTime/year/*"/> 
    1501                     </xsl:when> 
    1502                     <xsl:otherwise> 
    1503                       <xsl:copy-of select="/bedework/formElements/form/end/dateTime/yearText/*"/> 
    1504                     </xsl:otherwise> 
    1505                   </xsl:choose> 
    1506                 </div> 
    1507                 <script language="JavaScript" type="text/javascript"> 
    1508                 <xsl:comment> 
    1509                   endDateDynCalWidget = new dynCalendar('endDateDynCalWidget', <xsl:value-of select="number(/bedework/formElements/form/start/yearText/input/@value)"/>, <xsl:value-of select="number(/bedework/formElements/form/start/month/select/option[@selected='selected']/@value)-1"/>, <xsl:value-of select="number(/bedework/formElements/form/start/day/select/option[@selected='selected']/@value)"/>, 'endDateCalWidgetCallback'); 
    1510                 </xsl:comment> 
    1511                 </script> 
    1512                 <!--<img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>--> 
    1513                 <div class="{$timeFieldsClass}" id="endTimeFields"> 
    1514                   <span id="calWidgetEndTimeHider" class="show"> 
    1515                     <xsl:copy-of select="/bedework/formElements/form/end/dateTime/hour/*"/> 
    1516                     <xsl:copy-of select="/bedework/formElements/form/end/dateTime/minute/*"/> 
    1517                     <xsl:if test="/bedework/formElements/form/end/dateTime/ampm"> 
    1518                       <xsl:copy-of select="/bedework/formElements/form/end/dateTime/ampm/*"/> 
    1519                     </xsl:if> 
    1520                     <xsl:text> </xsl:text> 
    1521                     <a href="javascript:bwClockLaunch('eventEndDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/></a> 
    1522                   </span> 
    1523                 </div> 
    1524               </div><br/> 
    1525               <div id="clock" class="invisible"> 
    1526                 <xsl:call-template name="clock"/> 
    1527               </div> 
    1528               <div class="dateFields"> 
    1529                 <xsl:choose> 
    1530                   <xsl:when test="/bedework/formElements/form/end/type='D'"> 
    1531                     <input type="radio" name="eventEndType" value="D" checked="checked" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/> 
    1532                   </xsl:when> 
    1533                   <xsl:otherwise> 
    1534                     <input type="radio" name="eventEndType" value="D" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/> 
    1535                   </xsl:otherwise> 
    1536                 </xsl:choose> 
    1537                 Duration 
    1538                 <xsl:variable name="endDurationClass"> 
    1539                   <xsl:choose> 
    1540                     <xsl:when test="/bedework/formElements/form/end/type='D'">shown</xsl:when> 
    1541                     <xsl:otherwise>invisible</xsl:otherwise> 
    1542                   </xsl:choose> 
    1543                 </xsl:variable> 
    1544                 <xsl:variable name="durationHrMinClass"> 
    1545                   <xsl:choose> 
    1546                     <xsl:when test="/bedework/formElements/form/allDay/input/@checked='checked'">invisible</xsl:when> 
    1547                     <xsl:otherwise>shown</xsl:otherwise> 
    1548                   </xsl:choose> 
    1549                 </xsl:variable> 
    1550                 <div class="{$endDurationClass}" id="endDuration"> 
    1551                   <xsl:choose> 
    1552                     <xsl:when test="/bedework/formElements/form/end/duration/weeks/input/@value = '0'"> 
    1553                     <!-- we are using day, hour, minute format --> 
    1554                     <!-- must send either no week value or week value of 0 (zero) --> 
    1555                       <div class="durationBox"> 
    1556                         <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')" checked="checked"/> 
    1557                         <xsl:variable name="daysStr" select="/bedework/formElements/form/end/duration/days/input/@value"/> 
    1558                         <input type="text" name="eventDuration.daysStr" size="2" value="{$daysStr}" id="durationDays"/>days 
    1559                         <span id="durationHrMin" class="{$durationHrMinClass}"> 
    1560                           <xsl:variable name="hoursStr" select="/bedework/formElements/form/end/duration/hours/input/@value"/> 
    1561                           <input type="text" name="eventDuration.hoursStr" size="2" value="{$hoursStr}" id="durationHours"/>hours 
    1562                           <xsl:variable name="minutesStr" select="/bedework/formElements/form/end/duration/minutes/input/@value"/> 
    1563                           <input type="text" name="eventDuration.minutesStr" size="2" value="{$minutesStr}" id="durationMinutes"/>minutes 
    1564                         </span> 
    1565                       </div> 
    1566                       <span class="durationSpacerText">or</span> 
    1567                       <div class="durationBox"> 
    1568                         <input type="radio" name="eventDuration.type" value="weeks" onclick="swapDurationType('week')"/> 
    1569                         <xsl:variable name="weeksStr" select="/bedework/formElements/form/end/duration/weeks/input/@value"/> 
    1570                         <input type="text" name="eventDuration.weeksStr" size="2" value="{$weeksStr}" id="durationWeeks" disabled="true"/>weeks 
    1571                       </div> 
    1572                     </xsl:when> 
    1573                     <xsl:otherwise> 
    1574                       <!-- we are using week format --> 
    1575                       <div class="durationBox"> 
    1576                         <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')"/> 
    1577                         <xsl:variable name="daysStr" select="/bedework/formElements/form/end/duration/days/input/@value"/> 
    1578                         <input type="text" name="eventDuration.daysStr" size="2" value="{$daysStr}" id="durationDays" disabled="true"/>days 
    1579                         <span id="durationHrMin" class="{$durationHrMinClass}"> 
    1580                           <xsl:variable name="hoursStr" select="/bedework/formElements/form/end/duration/hours/input/@value"/> 
    1581                           <input type="text" name="eventDuration.hoursStr" size="2" value="{$hoursStr}" id="durationHours" disabled="true"/>hours 
    1582                           <xsl:variable name="minutesStr" select="/bedework/formElements/form/end/duration/minutes/input/@value"/> 
    1583                           <input type="text" name="eventDuration.minutesStr" size="2" value="{$minutesStr}" id="durationMinutes" disabled="true"/>minutes 
    1584                         </span> 
    1585                       </div> 
    1586                       <span class="durationSpacerText">or</span> 
    1587                       <div class="durationBox"> 
    1588                         <input type="radio" name="eventDuration.type" value="weeks" onclick="swapDurationType('week')" checked="checked"/> 
    1589                         <xsl:variable name="weeksStr" select="/bedework/formElements/form/end/duration/weeks/input/@value"/> 
    1590                         <input type="text" name="eventDuration.weeksStr" size="2" value="{$weeksStr}" id="durationWeeks"/>weeks 
    1591                       </div> 
    1592                     </xsl:otherwise> 
    1593                   </xsl:choose> 
    1594                 </div> 
    1595               </div><br/> 
    1596               <div class="dateFields" id="noDuration"> 
    1597                 <xsl:choose> 
    1598                   <xsl:when test="/bedework/formElements/form/end/type='N'"> 
    1599                     <input type="radio" name="eventEndType" value="N" checked="checked" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','invisible');"/> 
    1600                   </xsl:when> 
    1601                   <xsl:otherwise> 
    1602                     <input type="radio" name="eventEndType" value="N" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','invisible');"/> 
    1603                   </xsl:otherwise> 
    1604                 </xsl:choose> 
    1605                 This event has no duration / end date 
    1606               </div> 
    1607             </div> 
    1608           </td> 
    1609         </tr> 
    1610         <!--  Status  --> 
    1611         <tr> 
    1612           <td class="fieldname"> 
    1613             Status: 
    1614           </td> 
    1615           <td class="fieldval"> 
    1616             <xsl:choose> 
    1617               <xsl:when test="/bedework/formElements/form/status = 'TENTATIVE'"> 
    1618                 <input type="radio" name="newEvent.status" value="CONFIRMED"/>confirmed <input type="radio" name="newEvent.status" value="TENTATIVE" checked="checked"/>tentative <input type="radio" name="newEvent.status" value="CANCELLED"/>cancelled 
    1619               </xsl:when> 
    1620               <xsl:when test="/bedework/formElements/form/status = 'CANCELLED'"> 
    1621                 <input type="radio" name="newEvent.status" value="CONFIRMED"/>confirmed <input type="radio" name="newEvent.status" value="TENTATIVE"/>tentative <input type="radio" name="newEvent.status" value="CANCELLED" checked="checked"/>cancelled 
    1622               </xsl:when> 
    1623               <xsl:otherwise> 
    1624                 <input type="radio" name="newEvent.status" value="CONFIRMED" checked="checked"/>confirmed <input type="radio" name="newEvent.status" value="TENTATIVE"/>tentative <input type="radio" name="newEvent.status" value="CANCELLED"/>cancelled 
    1625               </xsl:otherwise> 
    1626             </xsl:choose> 
    1627           </td> 
    1628         </tr> 
    1629         <!--  Transparency  --> 
    1630         <tr> 
    1631           <td class="fieldname"> 
    1632             Effects free/busy: 
    1633           </td> 
    1634           <td class="fieldval"> 
    1635             <input type="radio" name="newEvent.transparency" value="OPAQUE" checked="checked"/>yes <input type="radio" name="newEvent.transparency" value="TRANSPARENT"/>no 
    1636           </td> 
    1637         </tr> 
    1638         <!--  Description  --> 
    1639         <tr> 
    1640           <td class="fieldname">Description:</td> 
    1641           <td class="fieldval"> 
    1642             <textarea name="newEvent.description" cols="60" rows="4"> 
    1643               <xsl:value-of select="/bedework/formElements/form/desc/textarea"/> 
    1644             </textarea> 
    1645           </td> 
    1646         </tr> 
    1647         <tr> 
    1648           <td class="fieldname">Location:</td> 
    1649           <td class="fieldval" align="left"> 
    1650             <span class="std-text">choose: </span> 
    1651             <span id="eventFormLocationList"> 
    1652               <select name="locationId"> 
    1653                 <option value="-1">select...</option> 
    1654                 <xsl:copy-of select="/bedework/formElements/form/location/locationmenu/select/*"/> 
    1655               </select> 
    1656             </span> 
    1657             <span class="std-text"> or add new: </span> 
    1658             <input type="text" name="newLocation.address" value="" /> 
    1659           </td> 
    1660         </tr> 
    1661         <tr> 
    1662           <td class="fieldname">Event Link:</td> 
    1663           <td class="fieldval"> 
    1664             <xsl:variable name="link" select="/bedework/formElements/form/link/input/@value"/> 
    1665             <input type="text" name="newEvent.link" size="80" value="{$link}"/> 
    1666           </td> 
    1667         </tr> 
    1668         <tr> 
    1669           <td class="fieldname">&#160;</td> 
    1670           <td class="fieldval"> 
    1671             <input name="submit" type="submit" value="Submit Event"/>&#160; 
    1672             <input name="cancelled" type="submit" value="Cancel"/> 
    1673           </td> 
    1674         </tr> 
    1675       </table> 
    1676     </form> 
    1677   </xsl:template> 
    1678  
    1679   <xsl:template name="clock"> 
    1680     <div id="bwClock"> 
    1681       <!-- Bedework 24-Hour Clock time selection widget 
    1682            used with resources/bwClock.js and resources/bwClock.css --> 
    1683       <div id="bwClockClock"> 
    1684         <img id="clockMap" src="{$resourcesRoot}/resources/clockMap.gif" width="368" height="368" border="0" alt="" usemap="#bwClockMap" /> 
    1685       </div> 
    1686       <div id="bwClockCover"> 
    1687         <!-- this is a special effect div used simply to cover the pixelated edge 
    1688              where the clock meets the clock box title --> 
    1689       </div> 
    1690       <div id="bwClockBox"> 
    1691         <h2> 
    1692           Bedework 24-Hour Clock 
    1693         </h2> 
    1694         <div id="bwClockDateTypeIndicator"> 
    1695           type 
    1696         </div> 
    1697         <div id="bwClockTime"> 
    1698           select time 
    1699         </div> 
    1700         <div id="bwClockCloseText"> 
    1701           close 
    1702         </div> 
    1703         <div id="bwClockCloseButton"> 
    1704           <a href="javascript:bwClockClose();">X</a> 
    1705         </div> 
    1706       </div> 
    1707       <map name="bwClockMap" id="bwClockMap"> 
    1708         <area shape="rect" alt="close clock" title="close clock" coords="160,167, 200,200" href="javascript:bwClockClose()"/> 
    1709         <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')" /> 
    1710         <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')" /> 
    1711         <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')" /> 
    1712         <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')" /> 
    1713         <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')" /> 
    1714         <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')" /> 
    1715         <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')" /> 
    1716         <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')" /> 
    1717         <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')" /> 
    1718         <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')" /> 
    1719         <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')" /> 
    1720         <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')" /> 
    1721         <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')" /> 
    1722         <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')" /> 
    1723         <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')" /> 
    1724         <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')" /> 
    1725         <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')" /> 
    1726         <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')" /> 
    1727         <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')" /> 
    1728         <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')" /> 
    1729         <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')" /> 
    1730         <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')" /> 
    1731         <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')" /> 
    1732         <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')" /> 
    1733         <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')" /> 
    1734         <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')" /> 
    1735         <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')" /> 
    1736         <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')" /> 
    1737         <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')" /> 
    1738         <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')" /> 
    1739         <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')" /> 
    1740         <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')" /> 
    1741         <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')" /> 
    1742         <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')" /> 
    1743         <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')" /> 
    1744         <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')" /> 
    1745       </map> 
    1746     </div> 
    1747   </xsl:template> 
    1748  
    1749   <!--==== EDIT EVENT ====--> 
    1750   <xsl:template match="formElements" mode="editEvent"> 
    1751     <xsl:variable name="subscriptionId" select="subscriptionId"/> 
    1752     <xsl:variable name="calPathEncoded" select="form/calendar/encodedPath"/> 
    1753     <xsl:variable name="calPath" select="form/calendar/path"/> 
    1754     <xsl:variable name="guid" select="guid"/> 
    1755     <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    1756     <!-- The name "eventForm" is referenced by several javascript functions. Do not 
    1757     change it without modifying includes.js --> 
    1758     <form name="eventForm" method="post" action="{$editEvent}" id="standardForm"> 
    1759       <input type="hidden" name="updateEvent" value="true"/> 
    1760       <input type="hidden" name="confirmationid" value="{$confId}"/> 
    1761       <input type="hidden" name="endType" value="date"/> 
    1762       <h2>Edit Event</h2> 
    1763       <table class="common" cellspacing="0"> 
    1764         <tr> 
    1765           <th colspan="2" class="commonHeader"> 
    1766             <div id="eventActions"> 
    1767               <a href="{$eventView}?subid={$subscriptionId}&amp;calPath={$calPath}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}"> 
    1768                 <img src="{$resourcesRoot}/resources/glassFill-icon-viewGray.gif" width="13" height="13" border="0" alt="view"/> 
    1769                 View 
    1770               </a> 
    1771               <xsl:if test="currentAccess/current-user-privilege-set/privilege/unbind"> 
    1772                 | 
    1773                 <a href="{$delEvent}?subid={$subscriptionId}&amp;calPath={$calPathEncoded}&amp;guid={$guid}&amp;recurrenceId={$recurrenceId}&amp;confirmationid={$confId}"> 
    1774                   <img src="{$resourcesRoot}/resources/trashIcon.gif" width="13" height="13" border="0" alt="delete"/> 
    1775                   Delete 
    1776                 </a> 
    1777               </xsl:if> 
    1778             </div> 
    1779             Personal Event 
    1780           </th> 
    1781         </tr> 
    1782         <tr> 
    1783           <td class="fieldname"> 
    1784             Title: 
    1785           </td> 
    1786           <td class="fieldval"> 
    1787             <xsl:variable name="title" select="form/title/input/@value"/> 
    1788             <input type="text" name="editEvent.summary" size="80" value="{$title}"/> 
    1789           </td> 
    1790         </tr> 
    1791         <tr> 
    1792           <td class="fieldname"> 
    1793             Calendar: 
    1794           </td> 
    1795           <td class="fieldval"> 
    1796             <xsl:variable name="newCalPath" select="/bedework/formElements/form/calendar/path"/> 
    1797             <input type="hidden" name="newCalPath" value="{$newCalPath}"/> 
    1798             <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
    1799             <span id="bwEventCalDisplay"> 
    1800               <xsl:choose> 
    1801                 <xsl:when test="contains(/bedework/formElements/form/calendar/path,$userPath)"> 
    1802                   <xsl:value-of select="substring-after(/bedework/formElements/form/calendar/path,$userPath)"/> 
    1803                 </xsl:when> 
    1804                 <xsl:otherwise> 
    1805                   <xsl:value-of select="/bedework/formElements/form/calendar/path"/> 
    1806                 </xsl:otherwise> 
    1807               </xsl:choose> 
    1808             </span> 
    1809             <a href="javascript:launchCalSelectWindow('{$event-selectCalForEvent}')" class="small">[change]</a> 
    1810           </td> 
    1811         </tr> 
    1812         <tr> 
    1813           <td class="fieldname"> 
    1814             Date &amp; Time: 
    1815           </td> 
    1816           <td class="fieldval"> 
    1817             <!-- Set the timefields class for the first load of the page; 
    1818                  subsequent changes will take place using javascript without a 
    1819                  page reload. --> 
    1820             <xsl:variable name="timeFieldsClass"> 
    1821               <xsl:choose> 
    1822                 <xsl:when test="form/allDay/input/@checked='checked'">invisible</xsl:when> 
    1823                 <xsl:otherwise>timeFields</xsl:otherwise> 
    1824               </xsl:choose> 
    1825             </xsl:variable> 
    1826             <xsl:choose> 
    1827               <xsl:when test="form/allDay/input/@checked='checked'"> 
    1828                 <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="on" checked="checked"/> 
    1829                 <input type="hidden" name="eventStartDate.dateOnly" value="on" id="allDayStartDateField"/> 
    1830                 <input type="hidden" name="eventEndDate.dateOnly" value="on" id="allDayEndDateField"/> 
    1831               </xsl:when> 
    1832               <xsl:otherwise> 
    1833                 <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="off"/> 
    1834                 <input type="hidden" name="eventStartDate.dateOnly" value="off" id="allDayStartDateField"/> 
    1835                 <input type="hidden" name="eventEndDate.dateOnly" value="off" id="allDayEndDateField"/> 
    1836               </xsl:otherwise> 
    1837             </xsl:choose> 
    1838             all day event<br/> 
    1839             <div class="dateStartEndBox"> 
    1840               <strong>Start:</strong> 
    1841               <div class="dateFields"> 
    1842                 <span class="startDateLabel">Date </span> 
    1843                 <xsl:copy-of select="form/start/month/*"/> 
    1844                 <xsl:copy-of select="form/start/day/*"/> 
    1845                 <xsl:choose> 
    1846                   <xsl:when test="/bedework/creating = 'true'"> 
    1847                     <xsl:copy-of select="form/start/year/*"/> 
    1848                   </xsl:when> 
    1849                   <xsl:otherwise> 
    1850                     <xsl:copy-of select="form/start/yearText/*"/> 
    1851                   </xsl:otherwise> 
    1852                 </xsl:choose> 
    1853               </div> 
    1854               <script language="JavaScript" type="text/javascript"> 
    1855               <xsl:comment> 
    1856                 startDateDynCalWidget = new dynCalendar('startDateDynCalWidget', <xsl:value-of select="number(/bedework/formElements/form/start/yearText/input/@value)"/>, <xsl:value-of select="number(/bedework/formElements/form/start/month/select/option[@selected='selected']/@value)-1"/>, <xsl:value-of select="number(/bedework/formElements/form/start/day/select/option[@selected='selected']/@value)"/>, 'startDateCalWidgetCallback'); 
    1857               </xsl:comment> 
    1858               </script> 
    1859               <!--<img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>--> 
    1860               <div class="{$timeFieldsClass}" id="startTimeFields"> 
    1861                 <span id="calWidgetStartTimeHider" class="show"> 
    1862                   <xsl:copy-of select="form/start/hour/*"/> 
    1863                   <xsl:copy-of select="form/start/minute/*"/> 
    1864                   <xsl:if test="form/start/ampm"> 
    1865                     <xsl:copy-of select="form/start/ampm/*"/> 
    1866                   </xsl:if> 
    1867                   <xsl:text> </xsl:text> 
    1868                   <a href="javascript:bwClockLaunch('eventStartDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/></a> 
    1869                 </span> 
    1870               </div> 
    1871             </div> 
    1872             <div class="dateStartEndBox"> 
    1873               <strong>End:</strong> 
    1874               <xsl:choose> 
    1875                 <xsl:when test="form/end/type='E'"> 
    1876                   <input type="radio" name="eventEndType" value="E" checked="checked" onClick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/> 
    1877                 </xsl:when> 
    1878                 <xsl:otherwise> 
    1879                   <input type="radio" name="eventEndType" value="E" onClick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/> 
    1880                 </xsl:otherwise> 
    1881               </xsl:choose> 
    1882               Date 
    1883               <xsl:variable name="endDateTimeClass"> 
    1884                 <xsl:choose> 
    1885                   <xsl:when test="form/end/type='E'">shown</xsl:when> 
    1886                   <xsl:otherwise>invisible</xsl:otherwise> 
    1887                 </xsl:choose> 
    1888               </xsl:variable> 
    1889               <div class="{$endDateTimeClass}" id="endDateTime"> 
    1890                 <div class="dateFields"> 
    1891                   <xsl:copy-of select="form/end/dateTime/month/*"/> 
    1892                   <xsl:copy-of select="form/end/dateTime/day/*"/> 
    1893                   <xsl:choose> 
    1894                     <xsl:when test="/bedework/creating = 'true'"> 
    1895                       <xsl:copy-of select="form/end/dateTime/year/*"/> 
    1896                     </xsl:when> 
    1897                     <xsl:otherwise> 
    1898                       <xsl:copy-of select="form/end/dateTime/yearText/*"/> 
    1899                     </xsl:otherwise> 
    1900                   </xsl:choose> 
    1901                 </div> 
    1902                 <script language="JavaScript" type="text/javascript"> 
    1903                 <xsl:comment> 
    1904                   endDateDynCalWidget = new dynCalendar('endDateDynCalWidget', <xsl:value-of select="number(/bedework/formElements/form/start/yearText/input/@value)"/>, <xsl:value-of select="number(/bedework/formElements/form/start/month/select/option[@selected='selected']/@value)-1"/>, <xsl:value-of select="number(/bedework/formElements/form/start/day/select/option[@selected='selected']/@value)"/>, 'endDateCalWidgetCallback'); 
    1905                 </xsl:comment> 
    1906                 </script> 
    1907                 <!--<img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>--> 
    1908                 <div class="{$timeFieldsClass}" id="endTimeFields"> 
    1909                   <span id="calWidgetEndTimeHider" class="show"> 
    1910                     <xsl:copy-of select="form/end/dateTime/hour/*"/> 
    1911                     <xsl:copy-of select="form/end/dateTime/minute/*"/> 
    1912                     <xsl:if test="form/end/dateTime/ampm"> 
    1913                       <xsl:copy-of select="form/end/dateTime/ampm/*"/> 
    1914                     </xsl:if> 
    1915                     <xsl:text> </xsl:text> 
    1916                     <a href="javascript:bwClockLaunch('eventEndDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/></a> 
    1917                   </span> 
    1918                 </div> 
    1919               </div><br/> 
    1920               <div id="clock" class="invisible"> 
    1921                 <xsl:call-template name="clock"/> 
    1922               </div> 
    1923               <div class="dateFields"> 
    1924                 <xsl:choose> 
    1925                   <xsl:when test="form/end/type='D'"> 
    1926                     <input type="radio" name="eventEndType" value="D" checked="checked" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/> 
    1927                   </xsl:when> 
    1928                   <xsl:otherwise> 
    1929                     <input type="radio" name="eventEndType" value="D" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/> 
    1930                   </xsl:otherwise> 
    1931                 </xsl:choose> 
    1932                 Duration 
    1933                 <xsl:variable name="endDurationClass"> 
    1934                   <xsl:choose> 
    1935                     <xsl:when test="form/end/type='D'">shown</xsl:when> 
    1936                     <xsl:otherwise>invisible</xsl:otherwise> 
    1937                   </xsl:choose> 
    1938                 </xsl:variable> 
    1939                 <xsl:variable name="durationHrMinClass"> 
    1940                   <xsl:choose> 
    1941                     <xsl:when test="form/allDay/input/@checked='checked'">invisible</xsl:when> 
    1942                     <xsl:otherwise>shown</xsl:otherwise> 
    1943                   </xsl:choose> 
    1944                 </xsl:variable> 
    1945                 <div class="{$endDurationClass}" id="endDuration"> 
    1946                   <xsl:choose> 
    1947                     <xsl:when test="form/end/duration/weeks/input/@value = '0'"> 
    1948                     <!-- we are using day, hour, minute format --> 
    1949                     <!-- must send either no week value or week value of 0 (zero) --> 
    1950                       <div class="durationBox"> 
    1951                         <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')" checked="checked"/> 
    1952                         <xsl:variable name="daysStr" select="form/end/duration/days/input/@value"/> 
    1953                         <input type="text" name="eventDuration.daysStr" size="2" value="{$daysStr}" id="durationDays"/>days 
    1954                         <span id="durationHrMin" class="{$durationHrMinClass}"> 
    1955                           <xsl:variable name="hoursStr" select="form/end/duration/hours/input/@value"/> 
    1956                           <input type="text" name="eventDuration.hoursStr" size="2" value="{$hoursStr}" id="durationHours"/>hours 
    1957                           <xsl:variable name="minutesStr" select="form/end/duration/minutes/input/@value"/> 
    1958                           <input type="text" name="eventDuration.minutesStr" size="2" value="{$minutesStr}" id="durationMinutes"/>minutes 
    1959                         </span> 
    1960                       </div> 
    1961                       <span class="durationSpacerText">or</span> 
    1962                       <div class="durationBox"> 
    1963                         <input type="radio" name="eventDuration.type" value="weeks" onclick="swapDurationType('week')"/> 
    1964                         <xsl:variable name="weeksStr" select="form/end/duration/weeks/input/@value"/> 
    1965                         <input type="text" name="eventDuration.weeksStr" size="2" value="{$weeksStr}" id="durationWeeks" disabled="true"/>weeks 
    1966                       </div> 
    1967                     </xsl:when> 
    1968                     <xsl:otherwise> 
    1969                       <!-- we are using week format --> 
    1970                       <div class="durationBox"> 
    1971                         <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')"/> 
    1972                         <xsl:variable name="daysStr" select="form/end/duration/days/input/@value"/> 
    1973                         <input type="text" name="eventDuration.daysStr" size="2" value="{$daysStr}" id="durationDays" disabled="true"/>days 
    1974                         <span id="durationHrMin" class="{$durationHrMinClass}"> 
    1975                           <xsl:variable name="hoursStr" select="form/end/duration/hours/input/@value"/> 
    1976                           <input type="text" name="eventDuration.hoursStr" size="2" value="{$hoursStr}" id="durationHours" disabled="true"/>hours 
    1977                           <xsl:variable name="minutesStr" select="form/end/duration/minutes/input/@value"/> 
    1978                           <input type="text" name="eventDuration.minutesStr" size="2" value="{$minutesStr}" id="durationMinutes" disabled="true"/>minutes 
    1979                         </span> 
    1980                       </div> 
    1981                       <span class="durationSpacerText">or</span> 
    1982                       <div class="durationBox"> 
    1983                         <input type="radio" name="eventDuration.type" value="weeks" onclick="swapDurationType('week')" checked="checked"/> 
    1984                         <xsl:variable name="weeksStr" select="form/end/duration/weeks/input/@value"/> 
    1985                         <input type="text" name="eventDuration.weeksStr" size="2" value="{$weeksStr}" id="durationWeeks"/>weeks 
    1986                       </div> 
    1987                     </xsl:otherwise> 
    1988                   </xsl:choose> 
    1989                 </div> 
    1990               </div><br/> 
    1991               <div class="dateFields" id="noDuration"> 
    1992                 <xsl:choose> 
    1993                   <xsl:when test="form/end/type='N'"> 
    1994                     <input type="radio" name="eventEndType" value="N" checked="checked" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','invisible');"/> 
    1995                   </xsl:when> 
    1996                   <xsl:otherwise> 
    1997                     <input type="radio" name="eventEndType" value="N" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','invisible');"/> 
    1998                   </xsl:otherwise> 
    1999                 </xsl:choose> 
    2000                 This event has no duration / end date 
    2001               </div> 
    2002             </div> 
    2003           </td> 
    2004         </tr> 
    2005         <!--  Status  --> 
    2006         <tr> 
    2007           <td class="fieldname"> 
    2008             Status: 
    2009           </td> 
    2010           <td class="fieldval"> 
    2011             <xsl:choose> 
    2012               <xsl:when test="form/status = 'TENTATIVE'"> 
    2013                 <input type="radio" name="editEvent.status" value="CONFIRMED"/>confirmed <input type="radio" name="editEvent.status" value="TENTATIVE" checked="checked"/>tentative <input type="radio" name="editEvent.status" value="CANCELLED"/>cancelled 
    2014               </xsl:when> 
    2015               <xsl:when test="form/status = 'CANCELLED'"> 
    2016                 <input type="radio" name="editEvent.status" value="CONFIRMED"/>confirmed <input type="radio" name="editEvent.status" value="TENTATIVE"/>tentative <input type="radio" name="editEvent.status" value="CANCELLED" checked="checked"/>cancelled 
    2017               </xsl:when> 
    2018               <xsl:otherwise> 
    2019                 <input type="radio" name="editEvent.status" value="CONFIRMED" checked="checked"/>confirmed <input type="radio" name="editEvent.status" value="TENTATIVE"/>tentative <input type="radio" name="editEvent.status" value="CANCELLED"/>cancelled 
    2020               </xsl:otherwise> 
    2021             </xsl:choose> 
    2022           </td> 
    2023         </tr> 
    2024         <!--  Transparency  --> 
    2025         <tr> 
    2026           <td class="fieldname"> 
    2027             Effects free/busy: 
    2028           </td> 
    2029           <td class="fieldval"> 
    2030             <xsl:choose> 
    2031               <xsl:when test="form/transparency = 'TRANSPARENT'"> 
    2032                 <input type="radio" name="editEvent.transparency" value="OPAQUE"/>yes <input type="radio" name="editEvent.transparency" value="TRANSPARENT" checked="checked"/>no 
    2033               </xsl:when> 
    2034               <xsl:otherwise> 
    2035                 <input type="radio" name="editEvent.transparency" value="OPAQUE" checked="checked"/>yes <input type="radio" name="editEvent.transparency" value="TRANSPARENT"/>no 
    2036               </xsl:otherwise> 
    2037             </xsl:choose> 
    2038           </td> 
    2039         </tr> 
    2040         <!--  Description  --> 
    2041         <tr> 
    2042           <td class="fieldname">Description:</td> 
    2043           <td class="fieldval"> 
    2044             <textarea name="editEvent.description" cols="60" rows="4"> 
    2045               <xsl:value-of select="/bedework/formElements/form/desc/textarea"/> 
    2046             </textarea> 
    2047           </td> 
    2048         </tr> 
    2049         <tr> 
    2050           <td class="fieldname">Location:</td> 
    2051           <td class="fieldval" align="left"> 
    2052             <span class="std-text">choose: </span> 
    2053             <span id="eventFormLocationList"> 
    2054               <select name="eventLocationId"> 
    2055                 <option value="-1">select...</option> 
    2056                 <xsl:copy-of select="/bedework/formElements/form/location/locationmenu/select/*"/> 
    2057               </select> 
    2058             </span> 
    2059             <span class="std-text"> or add new: </span> 
    2060             <input type="text" name="laddress" value="" /> 
    2061           </td> 
    2062         </tr> 
    2063         <tr> 
    2064           <td class="fieldname">Event Link:</td> 
    2065           <td class="fieldval"> 
    2066             <xsl:variable name="link" select="form/link/input/@value"/> 
    2067             <input type="text" name="editEvent.link" size="80" value="{$link}"/> 
    2068           </td> 
    2069         </tr> 
    2070         <tr> 
    2071           <td class="fieldname">&#160;</td> 
    2072           <td class="fieldval"> 
    2073             <input name="submit" type="submit" value="Submit Event"/>&#160; 
    2074             <input name="cancelled" type="submit" value="Cancel"/> 
    2075           </td> 
    2076         </tr> 
    2077       </table> 
    2078     </form> 
    2079  
    2080     <div id="sharingBox"> 
    2081       <h3>Sharing</h3> 
    2082       <!--<table class="common"> 
    2083         <tr> 
    2084           <th class="commonHeader" colspan="2">Current access:</th> 
    2085         </tr> 
    2086         <tr> 
    2087           <th>Owner:</th>--> 
    2088           <!-- NOTE: we are currently getting the acl information from the 
    2089                calendar listing NOT from the current calendar (which does not 
    2090                have the means of producing it out of the action form just now. 
    2091                We'll fix this soon. --> 
    2092           <!--<td class="fieldval"> 
    2093             <xsl:value-of select="name(acl/ace[principal/property/owner]/grant/*)"/> 
    2094           </td> 
    2095         </tr> 
    2096         <xsl:if test="acl/ace/principal/href"> 
    2097           <tr> 
    2098             <th>Users:</th> 
    2099             <td> 
    2100               <xsl:for-each select="acl/ace[principal/href]"> 
    2101                 <xsl:value-of select="principal/href"/> (<xsl:value-of select="name(grant/*)"/>)<br/> 
    2102               </xsl:for-each> 
    2103             </td> 
    2104           </tr> 
    2105         </xsl:if> 
    2106       </table>--> 
    2107       <form name="eventShareForm" action="{$event-setAccess}" id="shareForm"> 
    2108         <input type="hidden" name="calPath" value="{$calPath}"/> 
    2109         <input type="hidden" name="guid" value="{$guid}"/> 
    2110         <input type="hidden" name="recurid" value="{$recurrenceId}"/> 
    2111         <p> 
    2112           Share this event with:<br/> 
    2113           <input type="text" name="who" size="20"/> 
    2114           <input type="radio" value="user" name="whoType" checked="checked"/> user 
    2115           <input type="radio" value="group" name="whoType"/> group 
    2116         </p> 
    2117         <p> 
    2118           Access rights:<br/> 
    2119           <input type="radio" value="R" name="how" checked="checked"/> read<br/> 
    2120           <input type="radio" value="Rc" name="how"/> read/write content<br/> 
    2121           <input type="radio" value="f" name="how"/> read free/busy only<br/> 
    2122           <input type="radio" value="d" name="how"/> default (reset access) 
    2123         </p> 
    2124         <input type="submit" name="submit" value="Submit"/> 
    2125       </form> 
    2126     </div> 
    2127   </xsl:template> 
    2128  
    2129   <xsl:template match="event" mode="addEventRef"> 
    2130   <!-- The name "eventForm" is referenced by several javascript functions. Do not 
    2131     change it without modifying includes.js --> 
    2132     <form name="eventForm" method="post" action="{$event-addEventRefComplete}" id="standardForm"  enctype="multipart/form-data"> 
    2133       <xsl:variable name="subscriptionId" select="subscription/id"/> 
    2134       <xsl:variable name="calPath" select="calendar/path"/> 
    2135       <xsl:variable name="guid" select="guid"/> 
    2136       <xsl:variable name="recurrenceId" select="recurrenceId"/> 
    2137       <input type="hidden" name="subid" value="{$subscriptionId}"/> 
    2138       <input type="hidden" name="calPath" value="{$calPath}"/> 
    2139       <input type="hidden" name="guid" value="{$guid}"/> 
    2140       <input type="hidden" name="recurrenceId" value="{$recurrenceId}"/> 
    2141       <!-- newCalPath is the path to the calendar in which the reference 
    2142            should be placed.  If no value, then default calendar. --> 
    2143       <input type="hidden" name="newCalPath" value=""/> 
    2144  
    2145       <h2>Add Event Reference</h2> 
    2146       <table class="common" cellspacing="0"> 
    2147         <tr> 
    2148           <td class="fieldname"> 
    2149             Event: 
    2150           </td> 
    2151           <td> 
    2152             <xsl:value-of select="summary"/> 
    2153           </td> 
    2154         </tr> 
    2155         <tr> 
    2156           <td class="fieldname"> 
    2157             Into calendar: 
    2158           </td> 
    2159           <td align="left"> 
    2160             <span id="bwEventCalDisplay"> 
    2161               <em>default calendar</em> 
    2162             </span> 
    2163             <a href="javascript:launchCalSelectWindow('{$event-selectCalForEvent}')" class="small">[change]</a> 
    2164           </td> 
    2165         </tr> 
    2166         <tr> 
    2167           <td class="fieldname"> 
    2168             Affects Free/busy: 
    2169           </td> 
    2170           <td align="left"> 
    2171             <input type="radio" value="OPAQUE" name="transparency"/> yes 
    2172             <input type="radio" value="TRANSPARENT" name="transparency" checked="checked"/> no 
    2173           </td> 
    2174         </tr> 
    2175       </table> 
    2176       <table border="0" id="submitTable"> 
    2177         <tr> 
    2178           <td> 
    2179             <input name="submit" type="submit" value="Continue"/> 
    2180             <input name="cancelled" type="submit" value="Cancel"/> 
    2181           </td> 
    2182         </tr> 
    2183       </table> 
    2184     </form> 
    2185   </xsl:template> 
    2186  
    2187   <!--+++++++++++++++ Free / Busy ++++++++++++++++++++--> 
    2188   <xsl:template match="freebusy"> 
    2189     <h2>Free / Busy</h2> 
    2190     <div id="freeBusyWho">for <xsl:value-of select="day/who"/></div> 
    2191     <table id="freeBusy"> 
    2192       <tr> 
    2193         <td>&#160;</td> 
    2194         <xsl:for-each select="day[position()=1]/period"> 
    2195           <th> 
    2196             <xsl:choose> 
    2197               <xsl:when test="number(start) mod 200 = 0"> 
    2198                 <xsl:apply-templates select="start" mode="timeDisplay"/> 
    2199               </xsl:when> 
    2200               <xsl:otherwise> 
    2201                 &#160; 
    2202               </xsl:otherwise> 
    2203             </xsl:choose> 
    2204           </th> 
    2205         </xsl:for-each> 
    2206       </tr> 
    2207       <xsl:for-each select="day"> 
    2208         <tr> 
    2209           <th> 
    2210             <xsl:value-of select="substring(start,1,4)"/>-<xsl:value-of select="substring(start,5,2)"/>-<xsl:value-of select="substring(start,7,2)"/> 
    2211           </th> 
    2212           <xsl:for-each select="period"> 
    2213             <xsl:variable name="startTime"><xsl:apply-templates  select="start" mode="timeDisplay"/></xsl:variable> 
    2214             <!-- the start date for the add event link is a concat of the day's date plus the period's time (+ seconds)--> 
    2215             <xsl:variable name="startDate"><xsl:value-of select="substring(../start,1,8)"/>T<xsl:value-of select="start"/>00</xsl:variable> 
    2216             <xsl:variable name="minutes" select="length"/> 
    2217             <xsl:variable name="fbClass"> 
    2218               <xsl:choose> 
    2219                 <xsl:when test="fbtype = '0'">busy</xsl:when> 
    2220                 <xsl:when test="fbtype = '3'">tentative</xsl:when> 
    2221                 <xsl:otherwise>free</xsl:otherwise> 
    2222               </xsl:choose> 
    2223             </xsl:variable> 
    2224             <td class="{$fbClass}"> 
    2225               <a href="{$initEvent}?startdate={$startDate}&amp;minutes={$minutes}" title="{$startTime}">*</a> 
    2226             </td> 
    2227           </xsl:for-each> 
    2228         </tr> 
    2229       </xsl:for-each> 
    2230     </table> 
    2231  
    2232     <table id="freeBusyKey"> 
    2233       <tr> 
    2234         <td class="free">*</td> 
    2235         <td>free</td> 
    2236         <td>&#160;</td> 
    2237         <td class="busy">*</td> 
    2238         <td>busy</td> 
    2239         <td>&#160;</td> 
    2240         <td class="tentative">*</td> 
    2241         <td>tentative</td> 
    2242         <td>&#160;</td> 
    2243         <td> 
    2244           <form name="calendarShareForm" action="{$freeBusy-fetch}"> 
    2245             View user's free/busy:<br/> 
    2246             <input type="text" name="userid" size="20"/> 
    2247             <input type="submit" name="submit" value="Submit"/> 
    2248           </form> 
    2249         </td> 
    2250       </tr> 
    2251     </table> 
    2252  
    2253     <div id="sharingBox"> 
    2254       <h3>Sharing</h3> 
    2255       <table class="common"> 
    2256         <tr> 
    2257           <th class="commonHeader" colspan="2">Current access:</th> 
    2258         </tr> 
    2259         <tr> 
    2260           <th>Users:</th> 
    2261           <td> 
    2262             <xsl:choose> 
    2263               <xsl:when test="/bedework/myCalendars/calendars/calendar/acl/ace/principal/href"> 
    2264                 <xsl:for-each select="/bedework/myCalendars/calendars/calendar/acl/ace[principal/href]"> 
    2265                   <xsl:value-of select="principal/href"/> (<xsl:value-of select="name(grant/*)"/>)<br/> 
    2266                 </xsl:for-each> 
    2267               </xsl:when> 
    2268               <xsl:otherwise> 
    2269                 free/busy not shared 
    2270               </xsl:otherwise> 
    2271             </xsl:choose> 
    2272           </td> 
    2273         </tr> 
    2274       </table> 
    2275       <form name="calendarShareForm" action="{$freeBusy-setAccess}" id="shareForm"> 
    2276         <xsl:variable name="calPath" select="/bedework/myCalendars/calendars/calendar/path"/> 
    2277         <input type="hidden" name="calPath" value="{$calPath}"/> 
    2278         <p> 
    2279           Share my free/busy with:<br/> 
    2280           <input type="text" name="who" size="20"/> 
    2281           <input type="radio" value="user" name="whoType" checked="checked"/> user 
    2282           <input type="radio" value="group" name="whoType"/> group 
    2283         </p> 
    2284         <p> 
    2285           Access rights:<br/> 
    2286           <input type="radio" value="F" name="how" checked="checked"/> view my free/busy<br/> 
    2287           <input type="radio" value="d" name="how"/> default (reset access) 
    2288         </p> 
    2289         <input type="submit" name="submit" value="Submit"/> 
    2290       </form> 
    2291     </div> 
    2292   </xsl:template> 
    2293  
    2294   <xsl:template match="start" mode="timeDisplay"> 
    2295     <xsl:choose> 
    2296       <xsl:when test="node()=0000">12am</xsl:when> 
    2297       <xsl:when test="node()=0100">1am</xsl:when> 
    2298       <xsl:when test="node()=0200">2am</xsl:when> 
    2299       <xsl:when test="node()=0300">3am</xsl:when> 
    2300       <xsl:when test="node()=0400">4am</xsl:when> 
    2301       <xsl:when test="node()=0500">5am</xsl:when> 
    2302       <xsl:when test="node()=0600">6am</xsl:when> 
    2303       <xsl:when test="node()=0700">7am</xsl:when> 
    2304       <xsl:when test="node()=0800">8am</xsl:when> 
    2305       <xsl:when test="node()=0900">9am</xsl:when> 
    2306       <xsl:when test="node()=1000">10am</xsl:when> 
    2307       <xsl:when test="node()=1100">11am</xsl:when> 
    2308       <xsl:when test="node()=1200">NOON</xsl:when> 
    2309       <xsl:when test="node()=1300">1pm</xsl:when> 
    2310       <xsl:when test="node()=1400">2pm</xsl:when> 
    2311       <xsl:when test="node()=1500">3pm</xsl:when> 
    2312       <xsl:when test="node()=1600">4pm</xsl:when> 
    2313       <xsl:when test="node()=1700">5pm</xsl:when> 
    2314       <xsl:when test="node()=1800">6pm</xsl:when> 
    2315       <xsl:when test="node()=1900">7pm</xsl:when> 
    2316       <xsl:when test="node()=2000">8pm</xsl:when> 
    2317       <xsl:when test="node()=2100">9pm</xsl:when> 
    2318       <xsl:when test="node()=2200">10pm</xsl:when> 
    2319       <xsl:when test="node()=2300">11pm</xsl:when> 
    2320       <xsl:when test="node()=2400">12am</xsl:when> 
    2321       <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise> 
    2322     </xsl:choose> 
    2323   </xsl:template> 
    2324  
    2325   <!--+++++++++++++++ Calendars ++++++++++++++++++++--> 
    2326   <xsl:template match="calendars"> 
    2327     <h2>Manage Calendars</h2> 
    2328     <table id="calendarTable"> 
    2329       <tr> 
    2330         <td class="cals"> 
    2331           <h3>Calendars</h3> 
    2332           <ul class="calendarTree"> 
    2333             <xsl:choose> 
    2334               <xsl:when test="/bedework/page='calendarDescriptions' or 
    2335                               /bedework/page='displayCalendar'"> 
    2336                 <xsl:apply-templates select="calendar" mode="listForDisplay"/> 
    2337               </xsl:when> 
    2338               <xsl:otherwise> 
    2339                 <xsl:apply-templates select="calendar" mode="listForUpdate"/> 
    2340               </xsl:otherwise> 
    2341             </xsl:choose> 
    2342           </ul> 
    2343         </td> 
    2344         <td class="calendarContent"> 
    2345           <xsl:choose> 
    2346             <xsl:when test="/bedework/page='calendarList' or 
    2347                             /bedework/page='calendarReferenced'"> 
    2348               <xsl:call-template name="calendarList"/> 
    2349             </xsl:when> 
    2350             <xsl:when test="/bedework/page='calendarDescriptions'"> 
    2351               <xsl:call-template name="calendarDescriptions"/> 
    2352             </xsl:when> 
    2353             <xsl:when test="/bedework/page='displayCalendar'"> 
    2354               <xsl:apply-templates select="/bedework/currentCalendar" mode="displayCalendar"/> 
    2355             </xsl:when> 
    2356             <xsl:when test="/bedework/page='deleteCalendarConfirm'"> 
    2357               <xsl:apply-templates select="/bedework/currentCalendar" mode="deleteCalendarConfirm"/> 
    2358             </xsl:when> 
    2359             <xsl:when test="/bedework/creating='true'"> 
    2360               <xsl:apply-templates select="/bedework/currentCalendar" mode="addCalendar"/> 
    2361             </xsl:when> 
    2362             <xsl:otherwise> 
    2363               <xsl:apply-templates select="/bedework/currentCalendar" mode="modCalendar"/> 
    2364             </xsl:otherwise> 
    2365           </xsl:choose> 
    2366         </td> 
    2367       </tr> 
    2368     </table> 
    2369   </xsl:template> 
    2370  
    2371   <xsl:template match="calendar" mode="myCalendars"> 
    2372     <!-- supress Inbox and Outbox for the moment --> 
    2373     <xsl:if test="(name != 'Inbox') and (name != 'Outbox') and (name != 'Deleted')"> 
    2374       <xsl:variable name="id" select="id"/> 
    2375       <xsl:variable name="itemClass"> 
    2376         <xsl:choose> 
    2377           <xsl:when test="/bedework/selectionState/selectionType = 'calendar' 
    2378                           and path = /bedework/selectionState/subscriptions/subscription/calendar/path">selected</xsl:when> 
    2379           <xsl:when test="name='Trash'">trash</xsl:when> 
    2380           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    2381           <xsl:otherwise>calendar</xsl:otherwise> 
    2382         </xsl:choose> 
    2383       </xsl:variable> 
    2384       <li class="{$itemClass}"> 
    2385         <xsl:variable name="calPath" select="path"/> 
    2386         <a href="{$setSelection}?calUrl={$calPath}"> 
    2387           <xsl:value-of select="name"/> 
    2388         </a> 
    2389         <xsl:if test="calendar"> 
    2390           <ul> 
    2391             <xsl:apply-templates select="calendar" mode="myCalendars"/> 
    2392           </ul> 
    2393         </xsl:if> 
    2394         <xsl:if test="calendarCollection='true'"> 
    2395           <!-- set the start date for adding an event to the first day of the 
    2396                given period, the hour of "now", and give a duration of 60 minutes --> 
    2397           <xsl:variable name="startDate"><xsl:value-of select="/bedework/firstday/date"/>T<xsl:value-of select="substring(/bedework/now/time,1,2)"/>0000</xsl:variable> 
    2398           <a href="{$initEvent}?startdate={$startDate}&amp;newCalPath={$calPath}&amp;minutes=60" class="calendarAdd" title="add event"> 
    2399             <img src="{$resourcesRoot}/resources/addEvent-forCals-icon.gif" width="9" height="12" border="0" alt="add event"/> 
    2400           </a> 
    2401         </xsl:if> 
    2402       </li> 
    2403     </xsl:if> 
    2404   </xsl:template> 
    2405  
    2406   <xsl:template match="calendar" mode="listForUpdate"> 
    2407     <xsl:if test="(name != 'Inbox') and (name != 'Outbox') and (name != 'Deleted')"> 
    2408       <xsl:variable name="calPath" select="encodedPath"/> 
    2409       <xsl:variable name="itemClass"> 
    2410         <xsl:choose> 
    2411           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    2412           <xsl:otherwise>calendar</xsl:otherwise> 
    2413         </xsl:choose> 
    2414       </xsl:variable> 
    2415       <li class="{$itemClass}"> 
    2416         <a href="{$calendar-fetchForUpdate}&amp;calPath={$calPath}" title="update"> 
    2417           <xsl:value-of select="name"/> 
    2418         </a> 
    2419         <xsl:if test="calendarCollection='false'"> 
    2420           <xsl:text> </xsl:text> 
    2421           <a href="{$calendar-initAdd}&amp;calPath={$calPath}" title="add a calendar or folder"> 
    2422             <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="add a calendar or folder" border="0"/> 
    2423           </a> 
    2424         </xsl:if> 
    2425         <xsl:if test="calendar"> 
    2426           <ul> 
    2427             <xsl:apply-templates select="calendar" mode="listForUpdate"> 
    2428               <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>--> 
    2429             </xsl:apply-templates> 
    2430           </ul> 
    2431         </xsl:if> 
    2432       </li> 
    2433     </xsl:if> 
    2434   </xsl:template> 
    2435  
    2436   <xsl:template match="calendar" mode="listForDisplay"> 
    2437     <xsl:if test="(name != 'Inbox') and (name != 'Outbox') and (name != 'Deleted')"> 
    2438       <xsl:variable name="calPath" select="encodedPath"/> 
    2439       <xsl:variable name="itemClass"> 
    2440         <xsl:choose> 
    2441           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    2442           <xsl:otherwise>calendar</xsl:otherwise> 
    2443         </xsl:choose> 
    2444       </xsl:variable> 
    2445       <li class="{$itemClass}"> 
    2446         <a href="{$calendar-fetchForDisplay}&amp;calPath={$calPath}" title="display"> 
    2447           <xsl:value-of select="name"/> 
    2448         </a> 
    2449         <xsl:if test="calendar"> 
    2450           <ul> 
    2451             <xsl:apply-templates select="calendar" mode="listForDisplay"> 
    2452               <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>--> 
    2453             </xsl:apply-templates> 
    2454           </ul> 
    2455         </xsl:if> 
    2456       </li> 
    2457     </xsl:if> 
    2458   </xsl:template> 
    2459  
    2460   <!-- the selectCalForEvent listing creates a calendar tree in a pop-up window 
    2461        from myCalendars and mySubscriptions --> 
    2462   <xsl:template name="selectCalForEvent"> 
    2463     <h2>Select a calendar</h2> 
    2464     <form name="toggleCals" action="{$event-selectCalForEvent}"> 
    2465       <xsl:choose> 
    2466         <xsl:when test="/bedework/appvar[key='showAllCalsForEvent']/value = 'true'"> 
    2467           <input type="radio" name="setappvar" value="showAllCalsForEvent(false)" onchange="submit()"/> 
    2468           show only writable calendars 
    2469           <input type="radio" name="setappvar" value="showAllCalsForEvent(true)" checked="checked" onchange="submit()"/> 
    2470           show all calendars 
    2471         </xsl:when> 
    2472         <xsl:otherwise> 
    2473           <input type="radio" name="setappvar" value="showAllCalsForEvent(false)" checked="checked" onchange="submit()"/> 
    2474           show only writable calendars 
    2475           <input type="radio" name="setappvar" value="showAllCalsForEvent(true)" onchange="submit()"/> 
    2476           show all calendars 
    2477         </xsl:otherwise> 
    2478       </xsl:choose> 
    2479     </form> 
    2480     <h4>My Calendars</h4> 
    2481     <ul class="calendarTree"> 
    2482       <xsl:choose> 
    2483         <xsl:when test="/bedework/appvar[key='showAllCalsForEvent']/value = 'true'"> 
    2484           <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar" mode="selectCalForEventCalTree"/> 
    2485         </xsl:when> 
    2486         <xsl:otherwise> 
    2487           <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]" mode="selectCalForEventCalTree"/> 
    2488         </xsl:otherwise> 
    2489       </xsl:choose> 
    2490     </ul> 
    2491     <h4>Subscribed Calendars</h4> 
    2492     <ul class="calendarTree"> 
    2493       <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/></xsl:variable> 
    2494       <xsl:choose> 
    2495         <xsl:when test="/bedework/appvar[key='showAllCalsForEvent']/value = 'true'"> 
    2496           <xsl:apply-templates select="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]/calendars/calendar" mode="selectCalForEventCalTree"/> 
    2497         </xsl:when> 
    2498         <xsl:otherwise> 
    2499           <xsl:apply-templates select="/bedework/mySubscriptions/subscription[not(contains(uri,$userPath))]/calendars/calendar[currentAccess/current-user-privilege-set/privilege/write-content]" mode="selectCalForEventCalTree"/> 
    2500         </xsl:otherwise> 
    2501       </xsl:choose> 
    2502     </ul> 
    2503   </xsl:template> 
    2504  
    2505   <xsl:template match="calendar" mode="selectCalForEventCalTree"> 
    2506   <!-- supress Inbox and Outbox for the moment --> 
    2507     <xsl:if test="(name != 'Inbox') and (name != 'Outbox') and (name != 'Deleted')"> 
    2508       <xsl:variable name="id" select="id"/> 
    2509       <xsl:variable name="itemClass"> 
    2510         <xsl:choose> 
    2511           <xsl:when test="/bedework/selectionState/selectionType = 'calendar' 
    2512                           and name = /bedework/selectionState/subscriptions/subscription/calendar/name">selected</xsl:when> 
    2513           <xsl:when test="name='Trash'">trash</xsl:when> 
    2514           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    2515           <xsl:otherwise>calendar</xsl:otherwise> 
    2516         </xsl:choose> 
    2517       </xsl:variable> 
    2518       <li class="{$itemClass}"> 
    2519         <xsl:variable name="calPath" select="path"/> 
    2520         <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
    2521         <xsl:variable name="calDisplay"> 
    2522           <xsl:choose> 
    2523             <xsl:when test="contains(path,$userPath)"> 
    2524               <xsl:value-of select="substring-after(path,$userPath)"/> 
    2525             </xsl:when> 
    2526             <xsl:otherwise> 
    2527               <xsl:value-of select="path"/> 
    2528             </xsl:otherwise> 
    2529           </xsl:choose> 
    2530         </xsl:variable> 
    2531         <xsl:choose> 
    2532           <xsl:when test="currentAccess/current-user-privilege-set/privilege/write-content and (calendarCollection = 'true')"> 
    2533             <a href="javascript:updateEventFormCalendar('{$calPath}','{$calDisplay}')"> 
    2534               <strong><xsl:value-of select="name"/></strong> 
    2535             </a> 
    2536           </xsl:when> 
    2537           <xsl:otherwise> 
    2538             <xsl:value-of select="name"/> 
    2539           </xsl:otherwise> 
    2540         </xsl:choose> 
    2541         <xsl:if test="calendar"> 
    2542           <ul> 
    2543             <xsl:apply-templates select="calendar" mode="selectCalForEventCalTree"/> 
    2544           </ul> 
    2545         </xsl:if> 
    2546       </li> 
    2547     </xsl:if> 
    2548   </xsl:template> 
    2549  
    2550   <xsl:template match="currentCalendar" mode="addCalendar"> 
    2551     <h3>Add Calendar / Folder</h3> 
    2552     <form name="addCalForm" action="{$calendar-update}"> 
    2553       <table class="common"> 
    2554         <tr> 
    2555           <th>Name:</th> 
    2556           <td> 
    2557             <xsl:variable name="curCalName" select="name"/> 
    2558             <input name="calendar.name" value="{$curCalName}" size="40"/> 
    2559           </td> 
    2560         </tr> 
    2561         <tr> 
    2562           <th>Summary:</th> 
    2563           <td> 
    2564             <xsl:variable name="curCalSummary" select="summary"/> 
    2565             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/> 
    2566           </td> 
    2567         </tr> 
    2568         <tr> 
    2569           <th>Description:</th> 
    2570           <td> 
    2571             <textarea name="calendar.description" cols="40" rows="4"> 
    2572               <xsl:value-of select="desc"/> 
    2573             </textarea> 
    2574           </td> 
    2575         </tr> 
    2576         <tr> 
    2577           <th>Calendar/Folder:</th> 
    2578           <td> 
    2579             <xsl:choose> 
    2580               <xsl:when test="calendarCollection='true'"> 
    2581                 <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar 
    2582                 <input type="radio" value="false" name="calendarCollection"/> Folder 
    2583               </xsl:when> 
    2584               <xsl:otherwise> 
    2585                 <input type="radio" value="true" name="calendarCollection"/> Calendar 
    2586                 <input type="radio" value="false" name="calendarCollection" checked="checked"/> Folder 
    2587               </xsl:otherwise> 
    2588             </xsl:choose> 
    2589           </td> 
    2590         </tr> 
    2591       </table> 
    2592  
    2593       <table border="0" id="submitTable"> 
    2594         <tr> 
    2595           <td> 
    2596             <input type="submit" name="addCalendar" value="Add Calendar/Folder"/> 
    2597             <input type="submit" name="cancelled" value="Cancel"/> 
    2598             <input type="reset" value="Clear"/> 
    2599           </td> 
    2600         </tr> 
    2601       </table> 
    2602     </form> 
    2603  
    2604     <div id="sharingBox"> 
    2605       <h3>Sharing</h3> 
    2606       Sharing may be added to a calendar once created. 
    2607     </div> 
    2608  
    2609   </xsl:template> 
    2610  
    2611   <xsl:template match="currentCalendar" mode="modCalendar"> 
    2612     <xsl:choose> 
    2613       <xsl:when test="calendarCollection='true'"> 
    2614         <h3>Modify Calendar</h3> 
    2615       </xsl:when> 
    2616       <xsl:otherwise> 
    2617         <h3>Modify Folder</h3> 
    2618       </xsl:otherwise> 
    2619     </xsl:choose> 
    2620     <xsl:variable name="calPath" select="path"/> 
    2621     <form name="modCalForm" action="{$calendar-update}"> 
    2622       <table class="common"> 
    2623         <tr> 
    2624           <th class="commonHeader" colspan="2"> 
    2625             <xsl:value-of select="path"/> 
    2626           </th> 
    2627         </tr> 
    2628         <tr> 
    2629           <th>Name:</th> 
    2630           <td> 
    2631             <xsl:value-of select="name"/> 
    2632           </td> 
    2633         </tr> 
    2634         <tr> 
    2635           <th>Mailing List ID:</th> 
    2636           <td> 
    2637             <xsl:value-of select="mailListId"/> 
    2638           </td> 
    2639         </tr> 
    2640         <tr> 
    2641           <th>Summary:</th> 
    2642           <td> 
    2643             <xsl:variable name="curCalSummary" select="summary"/> 
    2644             <input type="text" name="calendar.summary" value="{$curCalSummary}" size="40"/> 
    2645           </td> 
    2646         </tr> 
    2647         <tr> 
    2648           <th>Description:</th> 
    2649           <td> 
    2650             <textarea name="calendar.description" cols="40" rows="4"> 
    2651               <xsl:value-of select="desc"/> 
    2652             </textarea> 
    2653           </td> 
    2654         </tr> 
    2655         <tr> 
    2656           <th>Calendar/Folder:</th> 
    2657           <td> 
    2658             <xsl:choose> 
    2659               <xsl:when test="calendarCollection='true'"> 
    2660                 <input type="radio" value="true" name="calendarCollection" checked="checked"/> Calendar 
    2661                 <input type="radio" value="false" name="calendarCollection"/> Folder 
    2662               </xsl:when> 
    2663               <xsl:otherwise> 
    2664                 <input type="radio" value="true" name="calendarCollection"/> Calendar 
    2665                 <input type="radio" value="false" name="calendarCollection" checked="checked"/> Folder 
    2666               </xsl:otherwise> 
    2667             </xsl:choose> 
    2668           </td> 
    2669         </tr> 
    2670       </table> 
    2671  
    2672       <table border="0" id="submitTable"> 
    2673         <tr> 
    2674           <td> 
    2675             <xsl:choose> 
    2676               <xsl:when test="calendarCollection='true'"> 
    2677                 <input type="submit" name="updateCalendar" value="Update Calendar"/> 
    2678               </xsl:when> 
    2679               <xsl:otherwise> 
    2680                 <input type="submit" name="updateCalendar" value="Update Folder"/> 
    2681               </xsl:otherwise> 
    2682             </xsl:choose> 
    2683             <input type="submit" name="cancelled" value="Cancel"/> 
    2684             <input type="reset" value="Reset"/> 
    2685           </td> 
    2686           <td align="right"> 
    2687             <xsl:choose> 
    2688               <xsl:when test="calendarCollection='true'"> 
    2689                 <input type="submit" name="delete" value="Delete Calendar"/> 
    2690               </xsl:when> 
    2691               <xsl:otherwise> 
    2692                 <input type="submit" name="delete" value="Delete Folder"/> 
    2693               </xsl:otherwise> 
    2694             </xsl:choose> 
    2695           </td> 
    2696         </tr> 
    2697       </table> 
    2698     </form> 
    2699     <div id="sharingBox"> 
    2700       <h3>Sharing</h3> 
    2701       <table class="common"> 
    2702         <tr> 
    2703           <th class="commonHeader" colspan="2">Current access:</th> 
    2704         </tr> 
    2705         <tr> 
    2706           <th>Owner:</th> 
    2707           <td> 
    2708             <xsl:value-of select="name(acl/ace[principal/property/owner]/grant/*)"/> 
    2709           </td> 
    2710         </tr> 
    2711         <xsl:if test="acl/ace/principal/href"> 
    2712           <tr> 
    2713             <th>Users:</th> 
    2714             <td> 
    2715               <xsl:for-each select="acl/ace[principal/href]"> 
    2716                 <xsl:value-of select="principal/href"/> (<xsl:value-of select="name(grant/*)"/>)<br/> 
    2717               </xsl:for-each> 
    2718             </td> 
    2719           </tr> 
    2720         </xsl:if> 
    2721       </table> 
    2722       <form name="calendarShareForm" action="{$calendar-setAccess}" id="shareForm"> 
    2723         <input type="hidden" name="calPath" value="{$calPath}"/> 
    2724         <p> 
    2725           Share with:<br/> 
    2726           <input type="text" name="who" size="20"/> 
    2727           <input type="radio" value="user" name="whoType" checked="checked"/> user 
    2728           <input type="radio" value="group" name="whoType"/> group 
    2729         </p> 
    2730         <p> 
    2731           Access rights:<br/> 
    2732           <input type="radio" value="R" name="how" checked="checked"/> read<br/> 
    2733           <input type="radio" value="Rc" name="how"/> read/write content<br/> 
    2734           <input type="radio" value="f" name="how"/> read free/busy only<br/> 
    2735           <input type="radio" value="d" name="how"/> default (reset access) 
    2736         </p> 
    2737         <input type="submit" name="submit" value="Submit"/> 
    2738       </form> 
    2739     </div> 
    2740   </xsl:template> 
    2741  
    2742   <xsl:template name="calendarList"> 
    2743     <h3>Managing Calendars</h3> 
    2744     <ul> 
    2745       <li>Select an item from the calendar list on the left to modify 
    2746       a calendar or folder.</li> 
    2747       <li>Select the 
    2748       <img src="{$resourcesRoot}/resources/calAddIcon.gif" width="13" height="13" alt="true" border="0"/> 
    2749       icon to add a new calendar or folder to the tree. 
    2750         <ul> 
    2751           <li>Folders may only contain calendars and subfolders.</li> 
    2752           <li>Calendars may only contain events (and other calendar items).</li> 
    2753           <li> 
    2754             If a calendar is empty, it may be converted to a folder and vice 
    2755             versa.  If a calendar or folder are not empty, it may not be 
    2756             converted. 
    2757           </li> 
    2758         </ul> 
    2759       </li> 
    2760     </ul> 
    2761   </xsl:template> 
    2762  
    2763   <xsl:template name="calendarDescriptions"> 
    2764     <h2>Calendar Information</h2> 
    2765     <ul> 
    2766       <li>Select an item from the calendar tree on the left to view all information 
    2767       about that calendar or folder.  The tree on the left represents the calendar 
    2768       heirarchy.</li> 
    2769     </ul> 
    2770  
    2771     <p><strong>All Calendar Descriptions:</strong></p> 
    2772     <table id="flatCalendarDescriptions" cellspacing="0"> 
    2773       <tr> 
    2774         <th>Name</th> 
    2775         <th>Description</th> 
    2776       </tr> 
    2777       <xsl:for-each select="//calendar"> 
    2778         <xsl:if test="(name != 'Inbox') and (name != 'Outbox') and (name != 'Deleted')"> 
    2779           <xsl:variable name="descClass"> 
    2780             <xsl:choose> 
    2781               <xsl:when test="position() mod 2 = 0">even</xsl:when> 
    2782               <xsl:otherwise>odd</xsl:otherwise> 
    2783             </xsl:choose> 
    2784           </xsl:variable> 
    2785           <tr class="{$descClass}"> 
    2786             <td> 
    2787               <xsl:value-of select="name"/> 
    2788             </td> 
    2789             <td> 
    2790               <xsl:value-of select="desc"/> 
    2791             </td> 
    2792           </tr> 
    2793         </xsl:if> 
    2794       </xsl:for-each> 
    2795     </table> 
    2796   </xsl:template> 
    2797  
    2798   <xsl:template match="currentCalendar" mode="displayCalendar"> 
    2799     <h2>Calendar Information</h2> 
    2800     <table class="common"> 
    2801       <tr> 
    2802         <th>Name:</th> 
    2803         <td> 
    2804           <xsl:value-of select="name"/> 
    2805         </td> 
    2806       </tr> 
    2807       <tr> 
    2808         <th>Path:</th> 
    2809         <td> 
    2810           <xsl:value-of select="path"/> 
    2811         </td> 
    2812       </tr> 
    2813       <tr> 
    2814         <th>Summary:</th> 
    2815         <td> 
    2816           <xsl:value-of select="summary"/> 
    2817         </td> 
    2818       </tr> 
    2819       <tr> 
    2820         <th>Description:</th> 
    2821         <td> 
    2822           <xsl:value-of select="desc"/> 
    2823         </td> 
    2824       </tr> 
    2825     </table> 
    2826   </xsl:template> 
    2827  
    2828   <xsl:template match="currentCalendar" mode="deleteCalendarConfirm"> 
    2829     <xsl:choose> 
    2830       <xsl:when test="calendarCollection='true'"> 
    2831         <h3>Delete Calendar</h3> 
    2832         <p> 
    2833           The following calendar will be deleted.  Continue? 
    2834         </p> 
    2835       </xsl:when> 
    2836       <xsl:otherwise> 
    2837         <h3>Delete Folder</h3> 
    2838         <p> 
    2839           The following folder <em>and all its contents</em> will be deleted. 
    2840           Continue? 
    2841         </p> 
    2842       </xsl:otherwise> 
    2843     </xsl:choose> 
    2844  
    2845     <form name="delCalForm" action="{$calendar-delete}"> 
    2846       <table class="common"> 
    2847         <tr> 
    2848           <th>Path:</th> 
    2849           <td> 
    2850             <xsl:value-of select="path"/> 
    2851           </td> 
    2852         </tr> 
    2853         <tr> 
    2854           <th>Name:</th> 
    2855           <td> 
    2856             <xsl:value-of select="name"/> 
    2857           </td> 
    2858         </tr> 
    2859         <tr> 
    2860           <th>Summary:</th> 
    2861           <td> 
    2862             <xsl:value-of select="summary"/> 
    2863           </td> 
    2864         </tr> 
    2865         <tr> 
    2866           <th>Description:</th> 
    2867           <td> 
    2868             <xsl:value-of select="desc"/> 
    2869           </td> 
    2870         </tr> 
    2871       </table> 
    2872  
    2873       <table border="0" id="submitTable"> 
    2874         <tr> 
    2875           <td> 
    2876             <input type="submit" name="cancelled" value="Cancel"/> 
    2877           </td> 
    2878           <td align="right"> 
    2879             <xsl:choose> 
    2880               <xsl:when test="calendarCollection='true'"> 
    2881                 <input type="submit" name="delete" value="Yes: Delete Calendar!"/> 
    2882               </xsl:when> 
    2883               <xsl:otherwise> 
    2884                 <input type="submit" name="delete" value="Yes: Delete Folder!"/> 
    2885               </xsl:otherwise> 
    2886             </xsl:choose> 
    2887           </td> 
    2888         </tr> 
    2889       </table> 
    2890     </form> 
    2891  
    2892   </xsl:template> 
    2893  
    2894   <!--+++++++++++++++ Subscriptions ++++++++++++++++++++--> 
    2895   <xsl:template match="subscriptions"> 
    2896     <h2>Manage Subscriptions</h2> 
    2897     <table id="subsTable"> 
    2898       <tr> 
    2899         <td class="cals"> 
    2900           <p class="smaller"> 
    2901             Select a calendar below to add a <em><strong>new</strong></em> 
    2902             internal subscription. <!-- or 
    2903             <a href="{$subscriptions-initAdd}&amp;calUri=please enter a calendar uri"> 
    2904             subscribe to an external calendar</a>.--> 
    2905           </p> 
    2906           <h3>My calendars</h3> 
    2907           <ul class="calendarTree"> 
    2908             <xsl:apply-templates select="/bedework/myCalendars/calendars/calendar" mode="subscribe"/> 
    2909           </ul> 
    2910           <h3>Public calendars</h3> 
    2911           <ul class="calendarTree"> 
    2912             <xsl:apply-templates select="/bedework/subscriptions/subscribe/calendars/calendar" mode="subscribe"/> 
    2913           </ul> 
    2914         </td> 
    2915         <td class="subs"> 
    2916           <xsl:choose> 
    2917             <xsl:when test="/bedework/page='subscriptions'"> 
    2918               <xsl:call-template name="subscriptionList"/> 
    2919             </xsl:when> 
    2920             <xsl:when test="/bedework/page='addSubByUri'"> 
    2921               <xsl:call-template name="addSubByUri"/> 
    2922             </xsl:when> 
    2923             <xsl:when test="/bedework/creating='true'"> 
    2924               <xsl:apply-templates select="subscription" mode="addSystemSubscription"/> 
    2925             </xsl:when> 
    2926             <xsl:otherwise> 
    2927               <xsl:apply-templates select="subscription" mode="modSubscription"/> 
    2928             </xsl:otherwise> 
    2929           </xsl:choose> 
    2930         </td> 
    2931       </tr> 
    2932     </table> 
    2933   </xsl:template> 
    2934  
    2935   <xsl:template match="calendar" mode="subscribe"> 
    2936     <xsl:if test="(name != 'Inbox') and (name != 'Outbox') and (name != 'Deleted')"> 
    2937       <xsl:variable name="calPath" select="encodedPath"/> 
    2938       <xsl:variable name="itemClass"> 
    2939         <xsl:choose> 
    2940           <xsl:when test="calendarCollection='false'">folder</xsl:when> 
    2941           <xsl:otherwise>calendar</xsl:otherwise> 
    2942         </xsl:choose> 
    2943       </xsl:variable> 
    2944       <li class="{$itemClass}"> 
    2945         <a href="{$subscriptions-initAdd}&amp;calPath={$calPath}"> 
    2946           <xsl:value-of select="name"/> 
    2947         </a> 
    2948         <xsl:if test="calendar"> 
    2949           <ul> 
    2950             <xsl:apply-templates select="calendar" mode="subscribe"> 
    2951               <!--<xsl:sort select="title" order="ascending" case-order="upper-first"/>--> 
    2952             </xsl:apply-templates> 
    2953           </ul> 
    2954         </xsl:if> 
    2955       </li> 
    2956     </xsl:if> 
    2957   </xsl:template> 
    2958  
    2959   <!-- add a subscription to a user calendar by user and path; this is actually 
    2960        a subscription to an arbitrary URI (which we can expose later) --> 
    2961   <xsl:template name="addSubByUri"> 
    2962     <h3>Add Subscription to User Calendar</h3> 
    2963     <p class="note">*the subsciption name must be unique</p> 
    2964     <form name="subscribeForm" action="{$subscriptions-initAdd}" onsubmit="return setSubscriptionUri(this)" method="post"> 
    2965       <table class="common" cellspacing="0"> 
    2966         <tr> 
    2967           <td class="fieldname">Name:</td> 
    2968           <td> 
    2969             <input type="text" value="" name="name" size="60"/> 
    2970           </td> 
    2971         </tr> 
    2972         <!-- the following would be for an arbitrary URI.  We'll add this later. 
    2973         <tr> 
    2974           <td class="fieldname">Uri:</td> 
    2975           <td> 
    2976             <input type="text" value="" name="calUri" size="60"/> 
    2977           </td> 
    2978         </tr>--> 
    2979         <tr> 
    2980           <td class="fieldname">User ID:</td> 
    2981           <td> 
    2982             <input type="hidden" value="" name="calUri"/> 
    2983             <input type="text" value="" name="userId" size="20"/> 
    2984             <span class="note">ex: douglm</span> 
    2985           </td> 
    2986         </tr> 
    2987         <tr> 
    2988           <td class="fieldname">User path:</td> 
    2989           <td> 
    2990             <input type="text" value="" name="userPath" size="20"/> 
    2991             <span class="note">(optional) ex: someDept/meetings</span> 
    2992           </td> 
    2993         </tr> 
    2994         <tr> 
    2995           <td class="fieldname">Display:</td> 
    2996           <td> 
    2997             <input type="radio" value="true" name="display" checked="checked"/> yes 
    2998             <input type="radio" value="false" name="display"/> no 
    2999           </td> 
    3000         </tr> 
    3001         <tr> 
    3002           <td class="fieldname">Affects Free/Busy:</td> 
    3003           <td> 
    3004             <input type="radio" value="true" name="affectsFreeBusy"/> yes 
    3005             <input type="radio" value="false" name="affectsFreeBusy" checked="checked"/> no 
    3006           </td> 
    3007         </tr> 
    3008         <tr> 
    3009           <td class="fieldname">Style:</td> 
    3010           <td> 
    3011             <select name="style"> 
    3012               <option value="default">default</option> 
    3013               <xsl:for-each select="document('subColors.xml')/subscriptionColors/color"> 
    3014                 <xsl:variable name="subColor" select="."/> 
    3015                 <option value="{$subColor}" class="{$subColor}"> 
    3016                   <xsl:value-of select="."/> 
    3017                 </option> 
    3018               </xsl:for-each> 
    3019             </select> 
    3020           </td> 
    3021         </tr> 
    3022         <!--<tr> 
    3023           <td class="fieldname">Unremovable:</td> 
    3024           <td> 
    3025             <input type="radio" value="true" name="unremoveable" size="60"/> true 
    3026             <input type="radio" value="false" name="unremoveable" size="60" checked="checked"/> false 
    3027           </td> 
    3028         </tr>--> 
    3029       </table> 
    3030       <table border="0" id="submitTable"> 
    3031         <tr> 
    3032           <td> 
    3033             <input type="submit" name="addSubscription" value="Add Subscription"/> 
    3034             <input type="submit" name="cancelled" value="Cancel"/> 
    3035             <input type="reset" value="Clear"/> 
    3036           </td> 
    3037         </tr> 
    3038       </table> 
    3039     </form> 
    3040   </xsl:template> 
    3041  
    3042   <!-- add a subscription to a public calendar within the system --> 
    3043   <xsl:template match="subscription" mode="addSystemSubscription"> 
    3044     <h3>Add New Subscription</h3> 
    3045     <p class="note">*the subsciption name must be unique</p> 
    3046     <form name="subscribeForm" action="{$subscriptions-subscribe}" method="post"> 
    3047       <table class="common" cellspacing="0"> 
    3048         <tr> 
    3049           <td class="fieldname">Name:</td> 
    3050           <td> 
    3051             <xsl:variable name="subName" select="name"/> 
    3052             <input type="text" value="{$subName}" name="name" size="60"/> 
    3053           </td> 
    3054         </tr> 
    3055         <xsl:if test="internal='false'"> 
    3056           <tr> 
    3057             <td class="fieldname">Uri:</td> 
    3058             <td> 
    3059               <xsl:variable name="calPath" select="uri"/> 
    3060               <input type="text" value="{$calPath}" name="calPath" size="60"/> 
    3061             </td> 
    3062           </tr> 
    3063         </xsl:if> 
    3064         <tr> 
    3065           <td class="fieldname">Display:</td> 
    3066           <td> 
    3067             <input type="radio" value="true" name="subscription.display" checked="checked"/> yes 
    3068             <input type="radio" value="false" name="subscription.display"/> no 
    3069           </td> 
    3070         </tr> 
    3071         <tr> 
    3072           <td class="fieldname">Affects Free/Busy:</td> 
    3073           <td> 
    3074             <input type="radio" value="true" name="subscription.affectsFreeBusy"/> yes 
    3075             <input type="radio" value="false" name="subscription.affectsFreeBusy" checked="checked"/> no 
    3076           </td> 
    3077         </tr> 
    3078         <tr> 
    3079           <td class="fieldname">Style:</td> 
    3080           <td> 
    3081             <select name="subscription.style"> 
    3082               <option value="default">default</option> 
    3083               <xsl:for-each select="document('subColors.xml')/subscriptionColors/color"> 
    3084                 <xsl:variable name="subColor" select="."/> 
    3085                 <option value="{$subColor}" class="{$subColor}"> 
    3086                   <xsl:value-of select="."/> 
    3087                 </option> 
    3088               </xsl:for-each> 
    3089             </select> 
    3090           </td> 
    3091         </tr> 
    3092         <!--<tr> 
    3093           <td class="fieldname">Unremovable:</td> 
    3094           <td> 
    3095             <input type="radio" value="true" name="subscription.unremoveable" size="60"/> true 
    3096             <input type="radio" value="false" name="subscription.unremoveable" size="60" checked="checked"/> false 
    3097           </td> 
    3098         </tr>--> 
    3099       </table> 
    3100       <table border="0" id="submitTable"> 
    3101         <tr> 
    3102           <td> 
    3103             <input type="submit" name="addSubscription" value="Add Subscription"/> 
    3104             <input type="submit" name="cancelled" value="Cancel"/> 
    3105             <input type="reset" value="Clear"/> 
    3106           </td> 
    3107         </tr> 
    3108       </table> 
    3109     </form> 
    3110   </xsl:template> 
    3111  
    3112   <xsl:template match="subscription" mode="modSubscription"> 
    3113     <h3>Modify Subscription</h3> 
    3114     <form name="subscribeForm" action="{$subscriptions-subscribe}" method="post"> 
    3115       <table class="common" cellspacing="0"> 
    3116         <tr> 
    3117           <td class="fieldname">Name:</td> 
    3118           <td> 
    3119             <xsl:value-of select="name"/> 
    3120             <xsl:variable name="subName" select="name"/> 
    3121             <input type="hidden" value="{$subName}" name="name"/> 
    3122           </td> 
    3123         </tr> 
    3124         <xsl:choose> 
    3125           <xsl:when test="internal='false'"> 
    3126             <tr> 
    3127               <td class="fieldname">Uri:</td> 
    3128               <td> 
    3129                 <xsl:variable name="subUri" select="uri"/> 
    3130                 <input type="text" value="{$subUri}" name="subscription.uri" size="60"/> 
    3131               </td> 
    3132             </tr> 
    3133           </xsl:when> 
    3134           <xsl:otherwise> 
    3135             <tr> 
    3136               <td class="fieldname">Uri:</td> 
    3137               <td> 
    3138                 <xsl:value-of select="uri"/> 
    3139               </td> 
    3140             </tr> 
    3141           </xsl:otherwise> 
    3142         </xsl:choose> 
    3143         <tr> 
    3144           <td class="fieldname">Display:</td> 
    3145           <td> 
    3146             <xsl:choose> 
    3147               <xsl:when test="display='true'"> 
    3148                 <input type="radio" value="true" name="subscription.display" checked="checked"/> yes 
    3149                 <input type="radio" value="false" name="subscription.display"/> no 
    3150               </xsl:when> 
    3151               <xsl:otherwise> 
    3152                 <input type="radio" value="true" name="subscription.display"/> yes 
    3153                 <input type="radio" value="false" name="subscription.display" checked="checked"/> no 
    3154               </xsl:otherwise> 
    3155             </xsl:choose> 
    3156           </td> 
    3157         </tr> 
    3158         <tr> 
    3159           <td class="fieldname">Affects Free/Busy:</td> 
    3160           <td> 
    3161             <xsl:choose> 
    3162               <xsl:when test="affectsFreeBusy='true'"> 
    3163                 <input type="radio" value="true" name="subscription.affectsFreeBusy" checked="checked"/> yes 
    3164                 <input type="radio" value="false" name="subscription.affectsFreeBusy"/> no 
    3165               </xsl:when> 
    3166               <xsl:otherwise> 
    3167                 <input type="radio" value="true" name="subscription.affectsFreeBusy"/> yes 
    3168                 <input type="radio" value="false" name="subscription.affectsFreeBusy" checked="checked"/> no 
    3169               </xsl:otherwise> 
    3170             </xsl:choose> 
    3171           </td> 
    3172         </tr> 
    3173         <tr> 
    3174           <td class="fieldname">Style:</td> 
    3175           <td> 
    3176             <xsl:variable name="subStyle" select="style"/> 
    3177             <select name="subscription.style"> 
    3178               <option value="default">default</option> 
    3179               <xsl:for-each select="document('subColors.xml')/subscriptionColors/color"> 
    3180                 <xsl:variable name="subColor" select="."/> 
    3181                 <xsl:choose> 
    3182                   <xsl:when test="$subStyle = $subColor"> 
    3183                     <option value="{$subColor}" class="{$subColor}" selected="selected"> 
    3184                       <xsl:value-of select="."/> 
    3185                     </option> 
    3186                   </xsl:when> 
    3187                   <xsl:otherwise> 
    3188                     <option value="{$subColor}" class="{$subColor}"> 
    3189                       <xsl:value-of select="."/> 
    3190                     </option> 
    3191                   </xsl:otherwise> 
    3192                 </xsl:choose> 
    3193               </xsl:for-each> 
    3194             </select> 
    3195           </td> 
    3196         </tr> 
    3197         <!--<tr> 
    3198           <td class="fieldname">Unremovable:</td> 
    3199           <td> 
    3200             <xsl:choose> 
    3201               <xsl:when test="unremoveable='true'"> 
    3202                 <input type="radio" value="true" name="unremoveable" size="60" checked="checked"/> true 
    3203                 <input type="radio" value="false" name="unremoveable" size="60"/> false 
    3204               </xsl:when> 
    3205               <xsl:otherwise> 
    3206                 <input type="radio" value="true" name="unremoveable" size="60"/> true 
    3207                 <input type="radio" value="false" name="unremoveable" size="60" checked="checked"/> false 
    3208               </xsl:otherwise> 
    3209             </xsl:choose> 
    3210           </td> 
    3211         </tr>--> 
    3212       </table> 
    3213       <table border="0" id="submitTable"> 
    3214         <tr> 
    3215           <td> 
    3216             <input type="submit" name="updateSubscription" value="Update Subscription"/> 
    3217             <input type="submit" name="cancelled" value="Cancel"/> 
    3218             <input type="reset" value="Reset"/> 
    3219           </td> 
    3220           <td align="right"> 
    3221             <input type="submit" name="delete" value="Delete Subscription"/> 
    3222           </td> 
    3223         </tr> 
    3224       </table> 
    3225     </form> 
    3226   </xsl:template> 
    3227  
    3228   <xsl:template name="subscriptionList"> 
    3229     <h3>Current subscriptions</h3> 
    3230     <table class="common" cellspacing="0"> 
    3231       <tr> 
    3232         <th>Name</th> 
    3233         <th>URI</th> 
    3234         <th>Style</th> 
    3235         <th>Display</th> 
    3236         <th>Free/Busy</th> 
    3237         <!--<th>Unremovable</th> 
    3238         <th>External</th> 
    3239         <th>Deleted?</th>--> 
    3240       </tr> 
    3241       <xsl:for-each select="subscription"> 
    3242         <xsl:variable name="style" select="style"/> 
    3243         <tr> 
    3244           <td> 
    3245             <xsl:variable name="subname" select="name"/> 
    3246             <a href="{$subscriptions-fetchForUpdate}&amp;subname={$subname}"> 
    3247               <xsl:value-of select="name"/> 
    3248             </a> 
    3249           </td> 
    3250           <td> 
    3251             <xsl:value-of select="uri"/> 
    3252           </td> 
    3253           <td class="{$style}"> 
    3254             <xsl:value-of select="style"/> 
    3255           </td> 
    3256           <td class="center"> 
    3257             <xsl:if test="display='true'"> 
    3258               <img src="{$resourcesRoot}/resources/greenCheckIcon.gif" width="13" height="13" alt="true" border="0"/> 
    3259             </xsl:if> 
    3260           </td> 
    3261           <td class="center"> 
    3262             <xsl:if test="affectsFreeBusy='true'"> 
    3263               <img src="{$resourcesRoot}/resources/greenCheckIcon.gif" width="13" height="13" alt="true" border="0"/> 
    3264             </xsl:if> 
    3265           </td> 
    3266           <!--<td class="center"> 
    3267             <xsl:if test="unremoveable='true'"> 
    3268               <img src="{$resourcesRoot}/resources/redCheckIcon.gif" width="13" height="13" alt="true" border="0"/> 
    3269             </xsl:if> 
    3270           </td> 
    3271           <td class="center"> 
    3272             <xsl:if test="internal='false'"> 
    3273               <img src="{$resourcesRoot}/resources/greenCheckIcon.gif" width="13" height="13" alt="true" border="0"/> 
    3274             </xsl:if> 
    3275           </td> 
    3276           <td class="center"> 
    3277             <xsl:if test="calendarDeleted='true'"> 
    3278               <img src="{$resourcesRoot}/resources/redCheckIcon.gif" width="13" height="13" alt="true" border="0"/> 
    3279             </xsl:if> 
    3280           </td>--> 
    3281         </tr> 
    3282       </xsl:for-each> 
    3283     </table> 
    3284     <h4><a href="{$subscriptions-addSubByUri}">Subscribe to another user's calendar</a></h4> 
    3285   </xsl:template> 
    3286  
    3287   <xsl:template match="subscription" mode="mySubscriptions"> 
    3288     <xsl:variable name="itemClass"> 
    3289       <xsl:choose> 
    3290         <xsl:when test="/bedework/selectionState/selectionType = 'calendar' 
    3291                         and calendars/calendar/path = /bedework/selectionState/subscriptions/subscription/calendar/path">selected</xsl:when> 
    3292         <xsl:otherwise>calendar</xsl:otherwise> 
    3293       </xsl:choose> 
    3294     </xsl:variable> 
    3295     <li class="{$itemClass}"> 
    3296       <xsl:variable name="subUri" select="uri"/> 
    3297       <xsl:if test="style != '' and style != 'default'"> 
    3298         <!-- div to display a block of color (or whatever) based on the subscription style --> 
    3299         <xsl:variable name="subStyle" select="style"/> 
    3300         <div class="subStyle {$subStyle}"></div> 
    3301       </xsl:if> 
    3302       <a href="{$setSelection}?calUrl={$subUri}"> 
    3303         <xsl:value-of select="name"/> 
    3304       </a> 
    3305       <xsl:if test="calendars/calendar/calendarCollection='true' and 
    3306                     calendars/calendar/currentAccess/current-user-privilege-set/privilege/write-content"> 
    3307         <!-- set the start date for adding an event to the first day of the 
    3308              given period, the hour of "now", and give a duration of 60 minutes --> 
    3309         <xsl:variable name="calPath" select="calendars/calendar/encodedPath"/> 
    3310         <xsl:variable name="startDate"><xsl:value-of select="/bedework/firstday/date"/>T<xsl:value-of select="substring(/bedework/now/time,1,2)"/>0000</xsl:variable> 
    3311         <a href="{$initEvent}?startdate={$startDate}&amp;newCalPath={$calPath}&amp;minutes=60" class="calendarAdd" title="add event"> 
    3312           <img src="{$resourcesRoot}/resources/addEvent-forCals-icon.gif" width="9" height="12" border="0" alt="add event"/> 
    3313         </a> 
    3314       </xsl:if> 
    3315     </li> 
    3316   </xsl:template> 
    3317  
    3318   <!--==== ALARM OPTIONS ====--> 
    3319   <xsl:template name="alarmOptions"> 
    3320     <form method="get" action="{$setAlarm}" id="standardForm"> 
    3321       <input type="hidden" name="updateAlarmOptions" value="true"/> 
    3322       <table class="common" cellspacing="0"> 
    3323         <tr> 
    3324           <th colspan="2" class="commonHeader">Alarm options</th> 
    3325         </tr> 
    3326         <tr> 
    3327           <td class="fieldname"> 
    3328             Alarm Date/Time: 
    3329             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmTriggerSelectorDate/*"/> 
    3330           </td> 
    3331           <td class="fieldval"> 
    3332             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmdate/*"/> 
    3333             <span class="std-text">at  </span> 
    3334             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmtime/*"/> 
    3335           </td> 
    3336         </tr> 
    3337         <tr> 
    3338           <td class="fieldname"> 
    3339             or Before/After event: 
    3340             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmTriggerSelectorDuration/*"/> 
    3341           </td> 
    3342           <td align="left"> 
    3343             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmduration/days/*"/> 
    3344             days 
    3345             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmduration/hours/*"/> 
    3346             hours 
    3347             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmduration/minutes/*"/> 
    3348             minutes 
    3349             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmduration/seconds/*"/> 
    3350             seconds OR: 
    3351             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmduration/weeks/*"/> 
    3352             weeks 
    3353             &#160; 
    3354             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmDurationBefore/*"/> 
    3355             before 
    3356             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmDurationAfter/*"/> 
    3357             after 
    3358             &#160; 
    3359             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmDurationRelStart/*"/> 
    3360             start 
    3361             <xsl:copy-of select="/bedework/alarmoptionsform/form/alarmDurationRelEnd/*"/> 
    3362             end 
    3363           </td> 
    3364         </tr> 
    3365         <tr> 
    3366           <td> 
    3367             Email Address: 
    3368           </td> 
    3369           <td align="left"> 
    3370             <xsl:copy-of select="/bedework/alarmoptionsform/form/email/*"/> 
    3371           </td> 
    3372         </tr> 
    3373         <tr> 
    3374           <td> 
    3375             Subject: 
    3376           </td> 
    3377           <td align="left"> 
    3378             <xsl:copy-of select="/bedework/alarmoptionsform/form/subject/*"/> 
    3379           </td> 
    3380         </tr> 
    3381         <tr> 
    3382           <td>&#160;</td> 
    3383           <td> 
    3384             <input name="submit" type="submit" value="Continue"/>&#160; 
    3385             <input name="cancelled" type="submit" value="Cancel"/> 
    3386           </td> 
    3387         </tr> 
    3388       </table> 
    3389     </form> 
    3390   </xsl:template> 
    3391  
    3392   <!--==== UPLOAD ====--> 
    3393   <xsl:template name="upload"> 
    3394   <!-- The name "eventForm" is referenced by several javascript functions. Do not 
    3395     change it without modifying includes.js --> 
    3396     <form name="eventForm" method="post" action="{$upload}" id="standardForm"  enctype="multipart/form-data"> 
    3397       <h2>Upload iCAL File</h2> 
    3398       <table class="common" cellspacing="0"> 
    3399         <tr> 
    3400           <td class="fieldname"> 
    3401             Filename: 
    3402           </td> 
    3403           <td align="left"> 
    3404             <input type="file" name="uploadFile" size="80" /> 
    3405           </td> 
    3406         </tr> 
    3407         <tr> 
    3408           <td class="fieldname"> 
    3409             Into calendar: 
    3410           </td> 
    3411           <td align="left"> 
    3412             <input type="hidden" name="newCalPath" value=""/> 
    3413             <span id="bwEventCalDisplay"> 
    3414               <em>default calendar</em> 
    3415             </span> 
    3416             <a href="javascript:launchCalSelectWindow('{$event-selectCalForEvent}')" class="small">[change]</a> 
    3417           </td> 
    3418         </tr> 
    3419         <tr> 
    3420           <td class="fieldname"> 
    3421             Affects Free/busy: 
    3422           </td> 
    3423           <td align="left"> 
    3424             <input type="radio" value="true" name="affectsFreeBusy"/> yes 
    3425             <input type="radio" value="false" name="affectsFreeBusy" checked="checked"/> no 
    3426           </td> 
    3427         </tr> 
    3428       </table> 
    3429       <table border="0" id="submitTable"> 
    3430         <tr> 
    3431           <td> 
    3432             <input name="submit" type="submit" value="Continue"/> 
    3433             <input name="cancelled" type="submit" value="Cancel"/> 
    3434           </td> 
    3435         </tr> 
    3436       </table> 
    3437     </form> 
    3438   </xsl:template> 
    3439  
    3440   <!--==== EMAIL OPTIONS ====--> 
    3441   <xsl:template name="emailOptions"> 
    3442     <form method="get" action="{$mailEvent}" id="standardForm"> 
    3443       <input type="hidden" name="updateEmailOptions" value="true"/> 
    3444       <table class="common" cellspacing="0"> 
    3445         <tr> 
    3446           <th colspan="2" class="commonHeader">Update email options</th> 
    3447         </tr> 
    3448         <tr> 
    3449           <td> 
    3450  
    3451             Email Address: 
    3452           </td> 
    3453           <td align="left"> 
    3454             <xsl:copy-of select="/bedework/emailoptionsform/form/email/*"/> 
    3455           </td> 
    3456         </tr> 
    3457         <tr> 
    3458           <td> 
    3459             Subject: 
    3460           </td> 
    3461           <td align="left"> 
    3462             <xsl:copy-of select="/bedework/emailoptionsform/form/subject/*"/> 
    3463           </td> 
    3464         </tr> 
    3465         <tr> 
    3466           <td>&#160;</td> 
    3467           <td> 
    3468             <input name="submit" type="submit" value="Continue"/>&#160; 
    3469             <input name="cancelled" type="submit" value="Cancel"/> 
    3470           </td> 
    3471         </tr> 
    3472       </table> 
    3473     </form> 
    3474   </xsl:template> 
    3475  
    3476   <!--==== MANAGE LOCATIONS ====--> 
    3477   <xsl:template name="manageLocations"> 
    3478     <form name="addLocationForm" method="post" action="{$addLocation}" id="standardForm"> 
    3479       <input type="hidden" name="confirmationid" value="{$confId}"/> 
    3480       <h2>Manage Locations</h2> 
    3481       <table class="common" cellspacing="0"> 
    3482         <tr> 
    3483           <th class="commonHeader" colspan="2">Add Location</th> 
    3484         </tr> 
    3485         <tr> 
    3486           <td class="fieldname"> 
    3487             Main Address: 
    3488           </td> 
    3489           <td> 
    3490             <input size="60" name="newLocation.address" type="text"/> 
    3491           </td> 
    3492         </tr> 
    3493         <tr> 
    3494           <td class="fieldname"> 
    3495             Subaddress: 
    3496           </td> 
    3497           <td> 
    3498             <input size="60" name="newLocation.subaddress" type="text"/> 
    3499           </td> 
    3500         </tr> 
    3501         <tr> 
    3502           <td class="fieldname"> 
    3503             Location Link: 
    3504           </td> 
    3505           <td> 
    3506             <input size="60" name="newLocation.link" type="text"/> 
    3507           </td> 
    3508         </tr> 
    3509       </table> 
    3510       <table border="0" id="submitTable"> 
    3511         <tr> 
    3512           <td> 
    3513             <input name="submit" type="submit" value="Submit Location"/> 
    3514             <input name="cancelled" type="submit" value="Cancel"/> 
    3515           </td> 
    3516         </tr> 
    3517       </table> 
    3518     </form> 
    3519     <div style="margin-bottom: 1em;">&#160;</div> 
    3520     <xsl:call-template name="editLocationList"/> 
    3521   </xsl:template> 
    3522  
    3523   <!--==== EDIT LOCATION ====--> 
    3524   <xsl:template match="formElements" mode="editLocation"> 
    3525     <form name="editLocationForm" method="post" action="{$editLocation}" id="standardForm"> 
    3526       <input type="hidden" name="updateLocation" value="true"/> 
    3527       <input type="hidden" name="confirmationid" value="{$confId}"/> 
    3528       <h2>Manage Locations</h2> 
    3529       <table class="common" cellspacing="0"> 
    3530         <tr> 
    3531           <th colspan="2" class="commonHeader"> 
    3532             Edit Location 
    3533           </th> 
    3534         </tr> 
    3535         <tr> 
    3536           <td class="fieldname"> 
    3537             Main Address: 
    3538           </td> 
    3539           <td align="left"> 
    3540             <xsl:variable name="addr" select="form/address/input/@value"/> 
    3541             <input size="60" name="editLocation.address" value="{$addr}" type="text"/> 
    3542           </td> 
    3543         </tr> 
    3544         <tr> 
    3545           <td class="fieldname"> 
    3546             Subaddress: 
    3547           </td> 
    3548           <td align="left"> 
    3549             <xsl:variable name="subaddr" select="form/subaddress/textarea"/> 
    3550             <input size="60" name="editLocation.subaddress" value="{$subaddr}" type="text"/> 
    3551           </td> 
    3552         </tr> 
    3553         <tr> 
    3554           <td class="fieldname"> 
    3555             Location Link: 
    3556           </td> 
    3557           <td> 
    3558             <xsl:variable name="link" select="form/link/input/@value"/> 
    3559             <input size="60" name="editLocation.link" value="{$link}" type="text"/> 
    3560           </td> 
    3561         </tr> 
    3562       </table> 
    3563       <table border="0" id="submitTable"> 
    3564         <tr> 
    3565           <td> 
    3566             <input name="submit" type="submit" value="Submit Location"/> 
    3567             <input name="cancelled" type="submit" value="Cancel"/> 
    3568             <input type="reset" value="Reset"/> 
    3569           </td> 
    3570           <td align="right"> 
    3571             <xsl:variable name="locId" select="form/id"/> 
    3572             <a href="{$delLocation}?locationId={$locId}"> 
    3573               <input type="button" name="delete" value="Delete Location"/> 
    3574             </a> 
    3575           </td> 
    3576         </tr> 
    3577       </table> 
    3578     </form> 
    3579     <div style="margin-bottom: 1em;">&#160;</div> 
    3580     <xsl:call-template name="editLocationList"/> 
    3581   </xsl:template> 
    3582  
    3583   <xsl:template name="editLocationList"> 
    3584     <table class="common" cellspacing="0"> 
    3585       <tr> 
    3586         <th class="commonHeader" colspan="2">Edit/Delete Locations</th> 
    3587       </tr> 
    3588       <td colspan="2" class="plain"> 
    3589         <ul> 
    3590           <xsl:for-each select="/bedework/formElements/form/locationmenu/select/option[@value>'3']"> 
    3591             <xsl:sort select="."/> 
    3592             <li> 
    3593               <xsl:variable name="locationId" select="@value"/> 
    3594               <a href="{$editLocation}?locationId={$locationId}"><xsl:value-of select="."/></a> 
    3595             </li> 
    3596           </xsl:for-each> 
    3597         </ul> 
    3598       </td> 
    3599     </table> 
    3600   </xsl:template> 
    3601  
    3602   <!--==== PREFERENCES ====--> 
    3603   <xsl:template match="prefs"> 
    3604     <h2>Manage Preferences</h2> 
    3605     <!-- The name "eventForm" is referenced by several javascript functions. Do not 
    3606     change it without modifying includes.js --> 
    3607     <form name="eventForm" method="post" action="{$prefs-update}" onSubmit="setWorkDays(this)"> 
    3608       <table class="common"> 
    3609         <tr><td colspan="2" class="fill">User settings:</td></tr> 
    3610         <tr> 
    3611           <td class="fieldname"> 
    3612             User: 
    3613           </td> 
    3614           <td> 
    3615             <xsl:value-of select="user"/> 
    3616             <xsl:variable name="user" select="user"/> 
    3617             <input type="hidden" name="user" value="{$user}"/> 
    3618           </td> 
    3619         </tr> 
    3620         <tr> 
    3621           <td class="fieldname"> 
    3622             Email address: 
    3623           </td> 
    3624           <td> 
    3625             <xsl:variable name="email" select="email"/> 
    3626             <input type="text" name="email" value="{$email}" size="40"/> 
    3627           </td> 
    3628         </tr> 
    3629         <tr><td colspan="2">&#160;</td></tr> 
    3630         <tr><td colspan="2" class="fill">Adding events:</td></tr> 
    3631         <!-- hide if only one calendar to select --> 
    3632         <xsl:if test="count(/bedework/myCalendars/calendars//calendar[currentAccess/current-user-privilege-set/privilege/write-content and calType = '1']) &gt; 1"> 
    3633           <tr> 
    3634             <td class="fieldname"> 
    3635               Default calendar: 
    3636             </td> 
    3637             <td> 
    3638               <xsl:variable name="newCalPath" select="defaultCalendar/path"/> 
    3639               <input type="hidden" name="newCalPath" value="{$newCalPath}"/> 
    3640               <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
    3641               <span id="bwEventCalDisplay"> 
    3642                 <xsl:choose> 
    3643                   <xsl:when test="contains(defaultCalendar,$userPath)"> 
    3644                     <xsl:value-of select="substring-after(defaultCalendar,$userPath)"/> 
    3645                   </xsl:when> 
    3646                   <xsl:otherwise> 
    3647                     <xsl:value-of select="defaultCalendar"/> 
    3648                   </xsl:otherwise> 
    3649                 </xsl:choose> 
    3650               </span> 
    3651               <a href="javascript:launchCalSelectWindow('{$event-selectCalForEvent}')" class="small">[change]</a> 
    3652             </td> 
    3653           </tr> 
    3654         </xsl:if> 
    3655         <tr> 
    3656           <td class="fieldname"> 
    3657             Preferred end date/time type: 
    3658           </td> 
    3659           <td> 
    3660             <select name="preferredEndType"> 
    3661               <xsl:choose> 
    3662                 <xsl:when test="preferredEndType = 'duration'"> 
    3663                   <option value="duration" selected="selected">duration</option> 
    3664                 </xsl:when> 
    3665                 <xsl:otherwise> 
    3666                   <option value="duration">duration</option> 
    3667                 </xsl:otherwise> 
    3668               </xsl:choose> 
    3669               <xsl:choose> 
    3670                 <xsl:when test="preferredEndType = 'date'"> 
    3671                   <option value="date" selected="selected">date/time</option> 
    3672                 </xsl:when> 
    3673                 <xsl:otherwise> 
    3674                   <option value="date">date/time</option> 
    3675                 </xsl:otherwise> 
    3676               </xsl:choose> 
    3677             </select> 
    3678           </td> 
    3679         </tr> 
    3680         <tr><td colspan="2">&#160;</td></tr> 
    3681         <tr><td colspan="2" class="fill">Workday settings:</td></tr> 
    3682         <tr> 
    3683           <td class="fieldname"> 
    3684             Workdays: 
    3685           </td> 
    3686           <td> 
    3687             <xsl:variable name="workDays" select="workDays"/> 
    3688             <input type="hidden" name="workDays" value="{$workDays}"/> 
    3689             <xsl:choose> 
    3690               <xsl:when test="substring(workDays,1,1) = 'W'"> 
    3691                 <input type="checkbox" name="workDayIndex" value="0" checked="checked"/>Sun 
    3692               </xsl:when> 
    3693               <xsl:otherwise> 
    3694                 <input type="checkbox" name="workDayIndex" value="0"/>Sun 
    3695               </xsl:otherwise> 
    3696             </xsl:choose> 
    3697             <xsl:choose> 
    3698               <xsl:when test="substring(workDays,2,1) = 'W'"> 
    3699                 <input type="checkbox" name="workDayIndex" value="1" checked="checked"/>Mon 
    3700               </xsl:when> 
    3701               <xsl:otherwise> 
    3702                 <input type="checkbox" name="workDayIndex" value="1"/>Mon 
    3703               </xsl:otherwise> 
    3704             </xsl:choose> 
    3705             <xsl:choose> 
    3706               <xsl:when test="substring(workDays,3,1) = 'W'"> 
    3707                 <input type="checkbox" name="workDayIndex" value="2" checked="checked"/>Tue 
    3708               </xsl:when> 
    3709               <xsl:otherwise> 
    3710                 <input type="checkbox" name="workDayIndex" value="2"/>Tue 
    3711               </xsl:otherwise> 
    3712             </xsl:choose> 
    3713             <xsl:choose> 
    3714               <xsl:when test="substring(workDays,4,1) = 'W'"> 
    3715                 <input type="checkbox" name="workDayIndex" value="3" checked="checked"/>Wed 
    3716               </xsl:when> 
    3717               <xsl:otherwise> 
    3718                 <input type="checkbox" name="workDayIndex" value="3"/>Wed 
    3719               </xsl:otherwise> 
    3720             </xsl:choose> 
    3721             <xsl:choose> 
    3722               <xsl:when test="substring(workDays,5,1) = 'W'"> 
    3723                 <input type="checkbox" name="workDayIndex" value="4" checked="checked"/>Thu 
    3724               </xsl:when> 
    3725               <xsl:otherwise> 
    3726                 <input type="checkbox" name="workDayIndex" value="4"/>Thu 
    3727               </xsl:otherwise> 
    3728             </xsl:choose> 
    3729             <xsl:choose> 
    3730               <xsl:when test="substring(workDays,6,1) = 'W'"> 
    3731                 <input type="checkbox" name="workDayIndex" value="5" checked="checked"/>Fri 
    3732               </xsl:when> 
    3733               <xsl:otherwise> 
    3734                 <input type="checkbox" name="workDayIndex" value="5"/>Fri 
    3735               </xsl:otherwise> 
    3736             </xsl:choose> 
    3737             <xsl:choose> 
    3738               <xsl:when test="substring(workDays,7,1) = 'W'"> 
    3739                 <input type="checkbox" name="workDayIndex" value="6" checked="checked"/>Sat 
    3740               </xsl:when> 
    3741               <xsl:otherwise> 
    3742                 <input type="checkbox" name="workDayIndex" value="6"/>Sat 
    3743               </xsl:otherwise> 
    3744             </xsl:choose> 
    3745           </td> 
    3746         </tr> 
    3747         <tr> 
    3748           <td class="fieldname"> 
    3749             Workday start: 
    3750           </td> 
    3751           <td> 
    3752             <select name="workDayStart"> 
    3753               <xsl:call-template name="buildWorkdayOptionsList"> 
    3754                 <xsl:with-param name="selectedVal" select="workDayStart"/> 
    3755               </xsl:call-template> 
    3756             </select> 
    3757           </td> 
    3758         </tr> 
    3759         <tr> 
    3760           <td class="fieldname"> 
    3761             Workday end: 
    3762           </td> 
    3763           <td> 
    3764             <xsl:variable name="workDayEnd" select="workDayEnd"/> 
    3765             <select name="workDayEnd"> 
    3766               <xsl:call-template name="buildWorkdayOptionsList"> 
    3767                 <xsl:with-param name="selectedVal" select="workDayEnd"/> 
    3768               </xsl:call-template> 
    3769             </select> 
    3770           </td> 
    3771         </tr> 
    3772         <tr><td colspan="2">&#160;</td></tr> 
    3773         <tr><td colspan="2" class="fill">Display options:</td></tr> 
    3774         <xsl:if test="/bedework/views/view[position()=2]"> 
    3775           <!-- only display if there is more than one to select --> 
    3776           <tr> 
    3777             <td class="fieldname"> 
    3778               Preferred view: 
    3779             </td> 
    3780             <td> 
    3781               <xsl:variable name="preferredView" select="preferredView"/> 
    3782               <select name="preferredView"> 
    3783                 <xsl:for-each select="/bedework/views/view"> 
    3784                   <xsl:variable name="viewName" select="name"/> 
    3785                   <xsl:choose> 
    3786                     <xsl:when test="viewName = $preferredView"> 
    3787                       <option value="{$viewName}" selected="selected"><xsl:value-of select="name"/></option> 
    3788                     </xsl:when> 
    3789                     <xsl:otherwise> 
    3790                       <option value="{$viewName}"><xsl:value-of select="name"/></option> 
    3791                     </xsl:otherwise> 
    3792                   </xsl:choose> 
    3793                 </xsl:for-each> 
    3794               </select> 
    3795             </td> 
    3796           </tr> 
    3797         </xsl:if> 
    3798         <tr> 
    3799           <td class="fieldname"> 
    3800             Preferred view period: 
    3801           </td> 
    3802           <td> 
    3803             <select name="viewPeriod"> 
    3804               <!-- picking the selected item could be done with javascript. for 
    3805                    now, this will do.  --> 
    3806               <xsl:choose> 
    3807                 <xsl:when test="preferredViewPeriod = 'dayView'"> 
    3808                   <option value="dayView" selected="selected">day</option> 
    3809                 </xsl:when> 
    3810                 <xsl:otherwise> 
    3811                   <option value="dayView">day</option> 
    3812                 </xsl:otherwise> 
    3813               </xsl:choose> 
    3814               <xsl:choose> 
    3815                 <xsl:when test="preferredViewPeriod = 'todayView'"> 
    3816                   <option value="todayView" selected="selected">today</option> 
    3817                 </xsl:when> 
    3818                 <xsl:otherwise> 
    3819                   <option value="todayView">today</option> 
    3820                 </xsl:otherwise> 
    3821               </xsl:choose> 
    3822               <xsl:choose> 
    3823                 <xsl:when test="preferredViewPeriod = 'weekView'"> 
    3824                   <option value="weekView" selected="selected">week</option> 
    3825                 </xsl:when> 
    3826                 <xsl:otherwise> 
    3827                   <option value="weekView">week</option> 
    3828                 </xsl:otherwise> 
    3829               </xsl:choose> 
    3830               <xsl:choose> 
    3831                 <xsl:when test="preferredViewPeriod = 'monthView'"> 
    3832                   <option value="monthView" selected="selected">month</option> 
    3833                 </xsl:when> 
    3834                 <xsl:otherwise> 
    3835                   <option value="monthView">month</option> 
    3836                 </xsl:otherwise> 
    3837               </xsl:choose> 
    3838               <xsl:choose> 
    3839                 <xsl:when test="preferredViewPeriod = 'yearView'"> 
    3840                   <option value="yearView" selected="selected">year</option> 
    3841                 </xsl:when> 
    3842                 <xsl:otherwise> 
    3843                   <option value="yearView">year</option> 
    3844                 </xsl:otherwise> 
    3845               </xsl:choose> 
    3846             </select> 
    3847           </td> 
    3848         </tr> 
    3849         <!-- as you add skins, update this list and set the selected flag 
    3850                  as required; hide if not in use --> 
    3851         <!--<tr> 
    3852           <td class="fieldname"> 
    3853             Skin name: 
    3854           </td> 
    3855           <td> 
    3856             <xsl:variable name="skinName" select="skinName"/> 
    3857             <select name="skin"> 
    3858               <option value="default">default</option> 
    3859             </select> 
    3860           </td> 
    3861         </tr> --> 
    3862         <!-- if you have skin styles, update this list and set the selected flag 
    3863                  as required; hide if not in use --> 
    3864         <!-- 
    3865         <tr> 
    3866           <td class="fieldname"> 
    3867             Skin style: 
    3868           </td> 
    3869           <td> 
    3870             <xsl:variable name="skinStyle" select="skinStyle"/> 
    3871             <select name="skinStyle"> 
    3872               <option value="default">default</option> 
    3873             </select> 
    3874           </td> 
    3875         </tr> --> 
    3876         <!-- hide if not in use: --> 
    3877         <!--<tr> 
    3878           <td class="fieldname"> 
    3879             Interface mode: 
    3880           </td> 
    3881           <td> 
    3882             <xsl:variable name="userMode" select="userMode"/> 
    3883             <select name="userMode"> 
    3884               <xsl:choose> 
    3885                 <xsl:when test="userMode = 0"> 
    3886                   <option value="0" selected="selected">basic</option> 
    3887                 </xsl:when> 
    3888                 <xsl:otherwise> 
    3889                   <option value="0">basic</option> 
    3890                 </xsl:otherwise> 
    3891               </xsl:choose> 
    3892               <xsl:choose> 
    3893                 <xsl:when test="userMode = 1"> 
    3894                   <option value="1" selected="selected">simple</option> 
    3895                 </xsl:when> 
    3896                 <xsl:otherwise> 
    3897                   <option value="1">simple</option> 
    3898                 </xsl:otherwise> 
    3899               </xsl:choose> 
    3900               <xsl:choose> 
    3901                 <xsl:when test="userMode = 3"> 
    3902                   <option value="3" selected="selected">advanced</option> 
    3903                 </xsl:when> 
    3904                 <xsl:otherwise> 
    3905                   <option value="3">advanced</option> 
    3906                 </xsl:otherwise> 
    3907               </xsl:choose> 
    3908             </select> 
    3909           </td> 
    3910         </tr>--> 
    3911       </table> 
    3912       <br /> 
    3913  
    3914       <input type="submit" name="modPrefs" value="Update"/> 
    3915       <input type="reset" value="Reset"/> 
    3916       <input type="submit" name="cancelled" value="Cancel"/> 
    3917     </form> 
    3918   </xsl:template> 
    3919  
    3920   <!-- construct the workDay times options listings from minute 0 to less than 
    3921        minute 1440 (midnight inclusive); initialize the template with the currently 
    3922        selected value. Change the default value for "increment" here. minTime 
    3923        and maxTime are constants. --> 
    3924   <xsl:template name="buildWorkdayOptionsList"> 
    3925     <xsl:param name="selectedVal"/> 
    3926     <xsl:param name="increment" select="number(30)"/> 
    3927     <xsl:param name="currentTime" select="number(0)"/> 
    3928     <xsl:variable name="minTime" select="number(0)"/> 
    3929     <xsl:variable name="maxTime" select="number(1440)"/> 
    3930     <xsl:if test="$currentTime &lt; $maxTime"> 
    3931       <xsl:choose> 
    3932         <xsl:when test="$currentTime = $selectedVal"> 
    3933           <option value="{$currentTime}" selected="selected"> 
    3934             <xsl:if test="ceiling($currentTime div 60) &lt; 10">0</xsl:if><xsl:value-of select="ceiling($currentTime div 60)"/>:<xsl:if test="string-length($currentTime mod 60)=1">0</xsl:if><xsl:value-of select="$currentTime mod 60"/> 
    3935           </option> 
    3936         </xsl:when> 
    3937         <xsl:otherwise> 
    3938           <option value="{$currentTime}"> 
    3939             <xsl:if test="ceiling($currentTime div 60) &lt; 10">0</xsl:if><xsl:value-of select="ceiling($currentTime div 60)"/>:<xsl:if test="string-length($currentTime mod 60)=1">0</xsl:if><xsl:value-of select="$currentTime mod 60"/> 
    3940           </option> 
    3941         </xsl:otherwise> 
    3942       </xsl:choose> 
    3943       <xsl:call-template name="buildWorkdayOptionsList"> 
    3944         <xsl:with-param name="selectedVal" select="$selectedVal"/> 
    3945         <xsl:with-param name="currentTime" select="$currentTime + $increment"/> 
    3946       </xsl:call-template> 
    3947     </xsl:if> 
    3948   </xsl:template> 
    3949  
    3950   <!--==== SIDE CALENDAR MENU ====--> 
    3951   <xsl:template match="calendar" mode="sideList"> 
    3952     <xsl:variable name="calPath" select="encodedPath"/> 
    3953     <div class="std-text"> 
    3954       <a href="{$setSelection}?calPath={$calPath}"><xsl:value-of select="title"/></a> 
    3955     </div> 
    3956   </xsl:template> 
    3957  
    3958   <!--==== STAND-ALONE PAGES ====--> 
    3959   <!-- not currently in use --> 
    3960   <xsl:template name="selectPage"> 
    3961     <!-- <xsl:choose> 
    3962       <xsl:when test="/bedework/appvar[key='page']"> 
    3963         <xsl:choose> 
    3964           <xsl:otherwise> 
    3965             <xsl:call-template name="noPage"/> 
    3966           </xsl:otherwise> 
    3967         </xsl:choose> 
    3968       </xsl:when> 
    3969       <xsl:otherwise> --> 
    3970         <xsl:call-template name="noPage"/> 
    3971       <!--</xsl:otherwise> 
    3972     </xsl:choose>--> 
    3973   </xsl:template> 
    3974  
    3975   <xsl:template name="noPage"> 
    3976     <p> 
    3977       Error: there is no page with that name.  Please select a navigational 
    3978       link to continue. 
    3979     </p> 
    3980   </xsl:template> 
    3981  
    3982   <!--==== UTILITY TEMPLATES ====--> 
    3983  
    3984   <!-- search and replace template taken from 
    3985        http://www.biglist.com/lists/xsl-list/archives/200211/msg00337.html --> 
    3986   <xsl:template name="replace"> 
    3987     <xsl:param name="string" select="''"/> 
    3988     <xsl:param name="pattern" select="''"/> 
    3989     <xsl:param name="replacement" select="''"/> 
    3990     <xsl:choose> 
    3991       <xsl:when test="$pattern != '' and $string != '' and contains($string, $pattern)"> 
    3992         <xsl:value-of select="substring-before($string, $pattern)"/> 
    3993         <xsl:copy-of select="$replacement"/> 
    3994         <xsl:call-template name="replace"> 
    3995           <xsl:with-param name="string" select="substring-after($string, $pattern)"/> 
    3996           <xsl:with-param name="pattern" select="$pattern"/> 
    3997           <xsl:with-param name="replacement" select="$replacement"/> 
    3998         </xsl:call-template> 
    3999       </xsl:when> 
    4000       <xsl:otherwise> 
    4001         <xsl:value-of select="$string"/> 
    4002       </xsl:otherwise> 
    4003     </xsl:choose> 
    4004   </xsl:template> 
    4005  
    4006   <!--==== FOOTER ====--> 
    4007   <xsl:template name="footer"> 
    4008     <div id="footer"> 
    4009       Demonstration calendar; place footer information here. 
    4010     </div> 
    4011     <table id="skinSelectorTable" border="0" cellpadding="0" cellspacing="0"> 
    4012       <tr> 
    4013         <td class="leftCell"> 
    4014           <a href="http://www.bedework.org/">Bedework Calendar</a> | 
    4015           <a href="?noxslt=yes">show XML</a> | 
    4016           <a href="?refreshXslt=yes">refresh XSLT</a> 
    4017         </td> 
    4018         <td class="rightCell"> 
    4019           <!--<form name="skinSelectForm" method="get" action="{$setup}"> 
    4020             skin selector: 
    4021             <select name="skinNameSticky" onChange="submit()"> 
    4022               <option>select a skin</option> 
    4023               <option value="default">Demo Calendar</option> 
    4024               <option value="rensselaer">Rensselaer</option> 
    4025               <option value="washington">Washington</option> 
    4026             </select> 
    4027           </form>--> 
    4028         </td> 
    4029       </tr> 
    4030     </table> 
    4031   </xsl:template> 
     1380        <xsl:template name="addEvent"> 
     1381        <!-- The name "eventForm" is referenced by several javascript functions. Do not 
     1382                change it without modifying includes.js --> 
     1383                <form name="eventForm" method="post" action="{$addEventUsingPage}" id="standardForm"> 
     1384                        <input type="hidden" name="confirmationid" value="{$confId}"/> 
     1385                        <input type="hidden" name="endType" value="date"/> 
     1386                        <h2>Add Event</h2> 
     1387                        <table class="common" cellspacing="0"> 
     1388                                <tr> 
     1389                                        <td class="fieldname"> 
     1390                                                Title: 
     1391                                        </td> 
     1392                                        <td class="fieldval"> 
     1393                                                <xsl:variable name="title" select="/bedework/formElements/form/title/input/@value"/> 
     1394                                                <input type="text" name="newEvent.summary" size="80" value="{$title}"/> 
     1395                                        </td> 
     1396                                </tr> 
     1397                                <tr> 
     1398                                        <td class="fieldname"> 
     1399                                                Calendar: 
     1400                                        </td> 
     1401                                        <td class="fieldval"> 
     1402                                                <xsl:variable name="newCalPath" select="/bedework/formElements/form/calendar/path"/> 
     1403                                                <input type="hidden" name="newCalPath" value="{$newCalPath}"/> 
     1404                                                <xsl:variable name="userPath">user/<xsl:value-of select="/bedework/userid"/>/</xsl:variable> 
     1405                                                <span id="bwEventCalDisplay"> 
     1406                                                        <xsl:choose> 
     1407                                                                <xsl:when test="contains(/bedework/formElements/form/calendar/path,$userPath)"> 
     1408                                                                        <xsl:value-of select="substring-after(/bedework/formElements/form/calendar/path,$userPath)"/> 
     1409                                                                </xsl:when> 
     1410                                                                <xsl:otherwise> 
     1411                                                                        <xsl:value-of select="/bedework/formElements/form/calendar/path"/> 
     1412                                                                </xsl:otherwise> 
     1413                                                        </xsl:choose> 
     1414                                                </span> 
     1415                                                <a href="javascript:launchCalSelectWindow('{$event-selectCalForEvent}')" class="small">[change]</a> 
     1416                                        </td> 
     1417                                </tr> 
     1418                                <tr> 
     1419                                        <td class="fieldname"> 
     1420                                                Date &amp; Time: 
     1421                                        </td> 
     1422                                        <td class="fieldval"> 
     1423                                                <!-- Set the timefields class for the first load of the page; 
     1424                                                                 subsequent changes will take place using javascript without a 
     1425                                                                 page reload. --> 
     1426                                                <xsl:variable name="timeFieldsClass"> 
     1427                                                        <xsl:choose> 
     1428                                                                <xsl:when test="/bedework/formElements/form/allDay/input/@checked='checked'">invisible</xsl:when> 
     1429                                                                <xsl:otherwise>timeFields</xsl:otherwise> 
     1430                                                        </xsl:choose> 
     1431                                                </xsl:variable> 
     1432                                                <xsl:choose> 
     1433                                                        <xsl:when test="/bedework/formElements/form/allDay/input/@checked='checked'"> 
     1434                                                                <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="on" checked="checked"/> 
     1435                                                                <input type="hidden" name="eventStartDate.dateOnly" value="on" id="allDayStartDateField"/> 
     1436                                                                <input type="hidden" name="eventEndDate.dateOnly" value="on" id="allDayEndDateField"/> 
     1437                                                        </xsl:when> 
     1438                                                        <xsl:otherwise> 
     1439                                                                <input type="checkbox" name="allDayFlag" onclick="swapAllDayEvent(this)" value="off"/> 
     1440                                                                <input type="hidden" name="eventStartDate.dateOnly" value="off" id="allDayStartDateField"/> 
     1441                                                                <input type="hidden" name="eventEndDate.dateOnly" value="off" id="allDayEndDateField"/> 
     1442                                                        </xsl:otherwise> 
     1443                                                </xsl:choose> 
     1444                                                all day event<br/> 
     1445                                                <div class="dateStartEndBox"> 
     1446                                                        <strong>Start:</strong> 
     1447                                                        <div class="dateFields"> 
     1448                                                                <span class="startDateLabel">Date </span> 
     1449                                                                <xsl:copy-of select="/bedework/formElements/form/start/month/*"/> 
     1450                                                                <xsl:copy-of select="/bedework/formElements/form/start/day/*"/> 
     1451                                                                <xsl:choose> 
     1452                                                                        <xsl:when test="/bedework/creating = 'true'"> 
     1453                                                                                <xsl:copy-of select="/bedework/formElements/form/start/year/*"/> 
     1454                                                                        </xsl:when> 
     1455                                                                        <xsl:otherwise> 
     1456                                                                                <xsl:copy-of select="/bedework/formElements/form/start/yearText/*"/> 
     1457                                                                        </xsl:otherwise> 
     1458                                                                </xsl:choose> 
     1459                                                        </div> 
     1460                                                        <script language="JavaScript" type="text/javascript"> 
     1461                                                        <xsl:comment> 
     1462                                                                startDateDynCalWidget = new dynCalendar('startDateDynCalWidget', <xsl:value-of select="number(/bedework/formElements/form/start/yearText/input/@value)"/>, <xsl:value-of select="number(/bedework/formElements/form/start/month/select/option[@selected='selected']/@value)-1"/>, <xsl:value-of select="number(/bedework/formElements/form/start/day/select/option[@selected='selected']/@value)"/>, 'startDateCalWidgetCallback'); 
     1463                                                        </xsl:comment> 
     1464                                                        </script> 
     1465                                                        <!--<img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>--> 
     1466                                                        <div class="{$timeFieldsClass}" id="startTimeFields"> 
     1467                                                                <span id="calWidgetStartTimeHider" class="show"> 
     1468                                                                        <xsl:copy-of select="/bedework/formElements/form/start/hour/*"/> 
     1469                                                                        <xsl:copy-of select="/bedework/formElements/form/start/minute/*"/> 
     1470                                                                        <xsl:if test="/bedework/formElements/form/start/ampm"> 
     1471                                                                                <xsl:copy-of select="/bedework/formElements/form/start/ampm/*"/> 
     1472                                                                        </xsl:if> 
     1473                                                                        <xsl:text> </xsl:text> 
     1474                                                                        <a href="javascript:bwClockLaunch('eventStartDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/></a> 
     1475                                                                </span> 
     1476                                                        </div> 
     1477                                                </div> 
     1478                                                <div class="dateStartEndBox"> 
     1479                                                        <strong>End:</strong> 
     1480                                                        <xsl:choose> 
     1481                                                                <xsl:when test="/bedework/formElements/form/end/type='E'"> 
     1482                                                                        <input type="radio" name="eventEndType" value="E" checked="checked" onClick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/> 
     1483                                                                </xsl:when> 
     1484                                                                <xsl:otherwise> 
     1485                                                                        <input type="radio" name="eventEndType" value="E" onClick="changeClass('endDateTime','shown');changeClass('endDuration','invisible');"/> 
     1486                                                                </xsl:otherwise> 
     1487                                                        </xsl:choose> 
     1488                                                        Date 
     1489                                                        <xsl:variable name="endDateTimeClass"> 
     1490                                                                <xsl:choose> 
     1491                                                                        <xsl:when test="/bedework/formElements/form/end/type='E'">shown</xsl:when> 
     1492                                                                        <xsl:otherwise>invisible</xsl:otherwise> 
     1493                                                                </xsl:choose> 
     1494                                                        </xsl:variable> 
     1495                                                        <div class="{$endDateTimeClass}" id="endDateTime"> 
     1496                                                                <div class="dateFields"> 
     1497                                                                        <xsl:copy-of select="/bedework/formElements/form/end/dateTime/month/*"/> 
     1498                                                                        <xsl:copy-of select="/bedework/formElements/form/end/dateTime/day/*"/> 
     1499                                                                        <xsl:choose> 
     1500                                                                                <xsl:when test="/bedework/creating = 'true'"> 
     1501                                                                                        <xsl:copy-of select="/bedework/formElements/form/end/dateTime/year/*"/> 
     1502                                                                                </xsl:when> 
     1503                                                                                <xsl:otherwise> 
     1504                                                                                        <xsl:copy-of select="/bedework/formElements/form/end/dateTime/yearText/*"/> 
     1505                                                                                </xsl:otherwise> 
     1506                                                                        </xsl:choose> 
     1507                                                                </div> 
     1508                                                                <script language="JavaScript" type="text/javascript"> 
     1509                                                                <xsl:comment> 
     1510                                                                        endDateDynCalWidget = new dynCalendar('endDateDynCalWidget', <xsl:value-of select="number(/bedework/formElements/form/start/yearText/input/@value)"/>, <xsl:value-of select="number(/bedework/formElements/form/start/month/select/option[@selected='selected']/@value)-1"/>, <xsl:value-of select="number(/bedework/formElements/form/start/day/select/option[@selected='selected']/@value)"/>, 'endDateCalWidgetCallback'); 
     1511                                                                </xsl:comment> 
     1512                                                                </script> 
     1513                                                                <!--<img src="{$resourcesRoot}/resources/calIcon.gif" width="16" height="15" border="0"/>--> 
     1514                                                                <div class="{$timeFieldsClass}" id="endTimeFields"> 
     1515                                                                        <span id="calWidgetEndTimeHider" class="show"> 
     1516                                                                                <xsl:copy-of select="/bedework/formElements/form/end/dateTime/hour/*"/> 
     1517                                                                                <xsl:copy-of select="/bedework/formElements/form/end/dateTime/minute/*"/> 
     1518                                                                                <xsl:if test="/bedework/formElements/form/end/dateTime/ampm"> 
     1519                                                                                        <xsl:copy-of select="/bedework/formElements/form/end/dateTime/ampm/*"/> 
     1520                                                                                </xsl:if> 
     1521                                                                                <xsl:text> </xsl:text> 
     1522                                                                                <a href="javascript:bwClockLaunch('eventEndDate');"><img src="{$resourcesRoot}/resources/clockIcon.gif" width="16" height="15" border="0"/></a> 
     1523                                                                        </span> 
     1524                                                                </div> 
     1525                                                        </div><br/> 
     1526                                                        <div id="clock" class="invisible"> 
     1527                                                                <xsl:call-template name="clock"/> 
     1528                                                        </div> 
     1529                                                        <div class="dateFields"> 
     1530                                                                <xsl:choose> 
     1531                                                                        <xsl:when test="/bedework/formElements/form/end/type='D'"> 
     1532                                                                                <input type="radio" name="eventEndType" value="D" checked="checked" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/> 
     1533                                                                        </xsl:when> 
     1534                                                                        <xsl:otherwise> 
     1535                                                                                <input type="radio" name="eventEndType" value="D" onClick="changeClass('endDateTime','invisible');changeClass('endDuration','shown');"/> 
     1536                                                                        </xsl:otherwise> 
     1537                                                                </xsl:choose> 
     1538                                                                Duration 
     1539                                                                <xsl:variable name="endDurationClass"> 
     1540                                                                        <xsl:choose> 
     1541                                                                                <xsl:when test="/bedework/formElements/form/end/type='D'">shown</xsl:when> 
     1542                                                                                <xsl:otherwise>invisible</xsl:otherwise> 
     1543                                                                        </xsl:choose> 
     1544                                                                </xsl:variable> 
     1545                                                                <xsl:variable name="durationHrMinClass"> 
     1546                                                                        <xsl:choose> 
     1547                                                                                <xsl:when test="/bedework/formElements/form/allDay/input/@checked='checked'">invisible</xsl:when> 
     1548                                                                                <xsl:otherwise>shown</xsl:otherwise> 
     1549                                                                        </xsl:choose> 
     1550                                                                </xsl:variable> 
     1551                                                                <div class="{$endDurationClass}" id="endDuration"> 
     1552                                                                        <xsl:choose> 
     1553                                                                                <xsl:when test="/bedework/formElements/form/end/duration/weeks/input/@value = '0'"> 
     1554                                                                                <!-- we are using day, hour, minute format --> 
     1555                                                                                <!-- must send either no week value or week value of 0 (zero) --> 
     1556                                                                                        <div class="durationBox"> 
     1557                                                                                                <input type="radio" name="eventDuration.type" value="daytime" onclick="swapDurationType('daytime')" checked="checked"/> 
     1558                                                                                                <xsl:variable name="daysStr" select="/bedework/formElements/form/end/duration/days/input/@value"/> 
     1559